1、学生成绩管理系统C语言版#include /*常用的标准输入输出函数*/#include /*access函数原型包含*/#include /*exit函数原型包含*/#include /*strcmp函数原型包含*/#include #include#include #define N 100 /*最多的学生人数*/struct student /*学生结构体定义*/ char clas15; /*班级*/ char no13; /*学号,最多为12位*/ char name20; /*姓名*/ char sex8; /*性别*/ char addr30; /*地址*/ char phone
2、15; /*电话*/ float score5; /*存储五门课成绩*/ float ave; /*平均分*/stuN;int num;void init();void weihu();void tongji();void tongji1();void tongji2();void sort1();void find1();void save();void newfile();void read1();void newfile();void new1();void delete1();void modify();void sortscore();int findname(char cname)
3、;void main() int choice=1; system(COLOR 2f); printf( 学生信息管理系统 n); printf( * *n); printf( * 欢迎进入 *n); printf( * *n); printf( n); init(); while(choice!=5) system(COLOR 1F); printf( *n); printf( * *n); printf( * 主菜单 *n); printf( * 1:学生成绩维护 *n); printf( * 2:学生成绩统计 *n); printf( * 3:学生成绩排序 *n); printf( *
4、4:学生成绩查询 *n); printf( * 5:退出 *n); printf( * *n); printf( *n); printf( 请选择:); scanf(%d,&choice); switch(choice) case 1: weihu(); break; case 2: tongji(); break; case 3: sort1(); break; case 4: find1(); break; case 5: save(); printf(谢谢使用本系统!n); break; default: printf(选择错误,请重新选择!); /1)输出学生成绩(公共函数)void
5、output() /*输出学生数据*/ int i,j; for(i=0;inum;i+) printf(班级 姓名 学号 性别 地址 电话n ); printf(%s %s %s %s %s %sn,stui.clas,stui.name,stui.no,stui.sex,stui.addr,stui.phone); printf(n); printf(C语言 大学物理 网页设计 高数 英语 n); for(j=0;j5;j+) printf(%-12.f,stui.scorej); printf(n); printf(n); /2)系统初始化代码void init() if(access(
6、stui.dat,0) /*判断文件是否存在*/ newfile(); /*不存在创建新的数据文件*/ else read1(); /*若存在,从文件中读取数据*/ /3)创立新的数据文件void newfile() /*从键盘输入学生成绩并保存到文件中*/ int i; FILE *fp; if(fp=fopen(F:stu.dat,wb)=NULL) /*创建二进制文件*/ printf(文件创建失败!请重新运行程序。n); exit(0); /*终止程序运行*/ printf(请输入学生人数:); scanf(%d,&num); for(i=0;inum;i+) printf(班级:);
7、 getchar(); gets(stui.clas); printf(姓名:); gets(stui.name); printf(请输入第%d位学生的学号:,i+1); gets(stui.no); printf(性别:); gets(stui.sex); printf(地址:); gets(stui.addr); printf(电话:); gets(stui.phone); printf(C语言:); scanf(%f,&stui.score0); printf(大学物理:); scanf(%f,&stui.score1); printf(网页设计:); scanf(%f,&stui.sc
8、ore2); printf(高数:); scanf(%f,&stui.score3); printf(英语:); scanf(%f,&stui.score4); fwrite(&stu,sizeof(stu),1,fp); printf(请输入下一条学生信息n); /*把第i+1名学生成绩写入文件*/ fclose(fp); printf(你刚刚输入的数据共有%d个学生成绩。详细数据为:n,num); output();/4)从数据文件中读取成绩void read1() FILE *fp; num=0; /*num为数据文件实际存储成绩人数*/ fp=fopen(stu.dat,r); if(
9、fp=NULL) /*文件不存在*/ printf(文件打开失败!请重新运行程序。n); exit(0); /*终止程序运行*/ while(!feof(fp) fread(&stunum,1,sizeof(struct student),fp); num+; num-; fclose(fp); printf(现在共有%d个学生成绩,初始数据为:n,num); output(); /*输出读取结果*/5)学生成绩维护void weihu() int choice1; system(COLOR 2F); printf( *n); printf( * *n); printf( * 学生成绩维护子菜
10、单 *n); printf( * 1.新增 *n); printf( * 2.删除(按学号) *n); printf( * 3.修改 *n); printf( * *n); printf( *n); printf( 请选择); scanf(%d,&choice1); switch(choice1) case 1: new1(); break; case 2: delete1(); break; case 3: modify(); break; default: printf(选择错误,请重新选择!n); /6)新增一个学生成绩void new1() printf(请输入班级:); getcha
11、r(); gets(stunum.clas); printf(请输入学号:); gets(stunum.no); printf(姓名:); gets(stunum.name); printf(性别:); gets(stunum.sex); printf(地址:); gets(stunum.addr); printf(电话:); gets(stunum.phone); printf(C语言:); scanf(%f,&stunum.score0); printf(大学物理:); scanf(%f,&stunum.score1); printf(网页设计:); scanf(%f,&stunum.sc
12、ore2); printf(高数:); scanf(%f,&stunum.score3); printf(英语:); scanf(%f,&stunum.score4); num+; printf(现在共有%d个学生成绩,数据为:n,num); output();/7)按学号查找int find(char sno) int i; for(i=0;inum;i+) if(strcmp(stui.no,sno)=0) /*判断两个字符串相等*/ return i; /*查找成功*/ return -1; /*查找失败*/ /删除学生信息void delete1() char cno13; int i,j; printf(请输入要删除的学号:n); ge
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1