鱼C论坛

 找回密码
 立即注册
查看: 2305|回复: 0

求救课题学生管理系统!

[复制链接]
发表于 2012-3-17 09:42:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
变了一早上都没编出来,头都大了,帮忙看看吧别嫌乱!!
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define LEN sizeof(stu)
typedef struct student
{
        char name[10];/* 学生名字*/
        char xb[5];/* 性别*/
        int  xh[10];/* 学号*/
        int  yy[5];/* 英语成绩*/
        int  cyy[5];/* C语言成绩*/
        struct student *next;
}stu;
void input(char arr[])/* 定义写入函数*/
{
        printf("录入系统\n");
        FILE *fg;/* 定义文件指针*/
        stu s;
        if((fg=fopen(arr,"rb+"))==NULL)
                fg=fopen(arr,"wb+");
        fseek(fg,0L,2);
        printf("请输入姓名:");
        scanf("%s",s.name);
        printf("请输入学号:");
        scanf("%d",s.xh);
        printf("请输入性别:");
        scanf("%s",s.xb);
        printf("请输入英语成绩:");
        scanf("%s",s.yy);
        printf("请输入C成绩:");
        scanf("%s",s.cyy);
        fwrite(&s,LEN,1,fg);
        int shu=1;/* 做循环用*/
        printf("退出输入0,否则输入1:");
        scanf("%d",&shu);/* 判断是否循环*/
        if(shu==0)s.next=NULL;/* 链表结尾s.next添加NULL*/
        while(shu)
        {
                s=*s.next;/* 链接下个链表*/
        printf("请输入学号:");
        scanf("%d",s.xh);
        printf("请输入姓名:");
        scanf("%s",s.name);
        printf("请输入性别:");
        scanf("%s",s.xb);
        printf("请输入英语成绩:");
        scanf("%s",s.yy);
        printf("请输入C成绩:");
        scanf("%s",s.cyy);
        fwrite(&s,LEN,1,fg);
        printf("退出输入0,否则输入1:");
                scanf("%d",&shu);
                if(shu==0)s.next=NULL;
        }
        fclose(fg);/*关闭指针文件 */


}
void liulan(char brr[])/* 定义浏览函数*/
{
        FILE *fp;
        stu a;
        if((fp=fopen(brr,"rb+"))==NULL)
        {printf("不存在文件");
        return ;
        }
fseek(fp,0L,0);/*定位文件指针位置 */
fread(&a,LEN,1,fp);/*读取文件 */
while(a.next!=NULL)/*从头读取,知道a.next为NULL */
{
printf("%s,%s,%d,%d,%d\n",a.name,a.xb,a.xh,a.yy,a.cyy);
a=*a.next;/*链接下个结构体 */
}
        a.next=NULL;
        fclose(fp);
}
void chaxun(char crr[])/*定义查询函数和浏览函数基本上一样的 */
{
        int i;
        printf("请输入学号:%d",i);
        scanf("%d",&i);
        FILE *ap;
stu k;
if((ap=fopen(crr,"rb+"))==NULL)
        {printf("不存在文件");
        return ;
        }       
printf("请输入学号\n");
fseek(ap,0L,0);
fread(&k,LEN,1,ap);
while(k.next!=NULL||k.xh[0]!=i)/* k.next不为NULL和k.xh不是想要的学号就继续循环*/
{
k=*k.next;
}
if(k.next==NULL)
printf("学号输入错误或不存在此学生");
printf("%s,%s,%d,%d,%d",k.name,k.xb,k.xh,k.yy,k.cyy);
        fclose(ap);

}
void main()
{
   int flag=1,n;
   while(flag)
   {
    system("cls");
   printf("1----------学生录入\n");
   printf("2----------学生浏览\n");
   printf("3----------学生查询\n");
   printf("4----------学生删除\n");
   printf("5----------成绩统计\n");
   printf("0----------退出系统\n");

   printf("请选择(0----5)\n");
   scanf("%d",&n);
   switch(n)
   {
   case 0:flag=0;break;
   case 1:input("f:\\stu.dat");break;
   case 2:liulan("f:\\stu.dat");break;
   case 3:chaxun("f:\\stu.dat");break;
   }
  }
}
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-12 02:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表