1、c语言大作业学生管理完整整理#include stdafx.h #include #include #include #include #define N 100struct student char name10。 int num。 char sex10。 float math。 float yingyu。 float zhengzhi。 float ywen。 float aver。 float sum。stu。void menu() system(cls)。 printf( * 欢迎使用学生成绩管理系统 * n)。 printf( * = * n)。 printf( * 请选择相应的功能
2、: * n)。 printf( * 1.成绩录入 * n)。 printf( * 2.查询成绩 * n)。 printf( * 3.修改成绩 * n)。 printf( * 4.插入成绩 * n)。 printf( * 5.报表输出 * n)。printf( * 6.删除操作 * n)。 printf( * 0.退出系统 * n )。 printf( * = * n)。printf( nnnnnnnnn * * * * n)。/成绩录入void input() system(cls)。 FILE *fp。 student xs。 /*定义一个结构体变量来装从文件中读出来的数据*/int c=1
3、。if(fp=fopen(student.dat,ab)=NULL) printf(cant open file!n)。exit(0)。 printf(n 成绩录入 )。 printf(n*)。 while(c+) /*中间加油break,可使循环中断*/ printf(n 请输入您的姓名(姓名为end结束):)。 scanf(%s,xs.name)。 if(strcmp(xs.name,end)=0) break。/*判断姓名是否为end,用字符串判断*/ printf(n 请输入学号:)。 scanf(%d,&xs.num)。 printf(n 性别:)。 scanf(%s,&xs.sex
4、)。 printf(n 请输入数学的成绩:)。 scanf(%f,&xs.math)。 printf(n 请输入英语的成绩:)。 scanf(%f,&xs.yingyu)。 printf(n 请输入政治的成绩:)。 scanf(%f,&xs.zhengzhi)。 printf(n 请输入语文的成绩:)。 scanf(%f,&xs.ywen)。 xs.aver=0。/*给平均分变量赋初值*/ xs.aver=(xs.math+xs.yingyu+xs.zhengzhi+xs.ywen)/4。 xs.sum=0。 xs.sum=xs.math+xs.yingyu+xs.zhengzhi+xs.yw
5、en。 fwrite(&xs,sizeof(stu),1,fp)。 /将成绩信息写入文件 system(cls)。 fclose(fp)。void xingming() FILE *fp。 student xs。 char name10。 printf(n 输入要查学生的姓名: )。scanf(%s,name)。 if(fp=fopen(student.dat,rb)=NULL) printf(cant open file!n)。exit(0)。 while(!feof(fp) fread(&xs,sizeof(stu),1,fp)。 if(strcmp(xs.name,name)=0)/*按
6、姓名查询时判断输入的姓名是否存在,会循环从数据中找取*/ printf(n 学生的信息如下:n)。 printf(n %10s %6s %6s %6s %6s %6s %6s %6s %6sn,姓名,学号,性别,数学,英语,政治 ,语文,平均成绩,总成绩)。 printf(n %10s %6d%6s %6.2f %6.2f %6.2f %6.2f %6.2f %6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum)。 break。 if(feof(fp) printf(n 查找失败!)。
7、 /*学生不存在*/ fclose(fp)。void xuehao() FILE *fp。 student xs。 int num。 printf(n 输入要查学生的学号: )。scanf(%d,&num)。 if(fp=fopen(student.dat,rb)=NULL) printf(cant open file!n)。exit(0)。 while(!feof(fp) fread(&xs,sizeof(stu),1,fp)。 if(xs.num=num)/*按学号查询时判断输入的学号是否存在,会循环从数据中找取*/ printf(n 学生的信息如下:n)。 printf(n %10s %
8、6s %6s %6s %6s %6s %6s %6s %6sn,姓名,学号,性别,数学,英语,政治 ,语文,平均成绩,总成绩)。 printf(n %10s %6d%6s %6.2f %6.2f %6.2f %6.2f %6.2f %6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum)。 break。 if(feof(fp) printf(n 查找失败!)。 fclose(fp)。/查询void search() char ch1。 system(cls)。 printf( 请输入按何
9、种方式查询:n)。 printf(n 1-姓名,2-学号:)。 ch1=getchar()。/*用字符接收*/ switch(ch1)/*判断*/ case 1:xingming()。break。 case 2:xuehao()。break。 printf(n 按任意键返回主菜单 )。 getch()。/*让屏幕停留同时按任意键返回*/修改:输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;void modi() student xs。 FILE *fp。 char name10。 system(cls)。 printf(n 输入要修改的学生的姓名: )。scanf
10、(%s,name)。 if(fp=fopen(student.dat,rb+)=NULL) printf(cant open file!n)。exit(0)。 while(!feof(fp) fread(&xs,sizeof(stu),1,fp)。 if(strcmp(xs.name,name)=0)/*判断输入要修改的姓名是否存在*/ printf( 修改前学生的信息如下:n)。 printf(n %10s %6s %6s %6s %6s %6s %6s %6s %6sn,姓名,学号,性别,数学,英语,政治 ,语文,平均成绩,总成绩)。 printf(n %10s %6d %6s %6.2f
11、 %6.2f %6.2f %6.2f %6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum)。 printf(n 请输入该生的数学成绩:)。scanf(%f,&xs.math)。 printf(n 英语成绩:)。scanf(%f,&xs.yingyu)。 printf(n 政治成绩:)。scanf(%f,&xs.zhengzhi)。 printf(n 语文成绩:)。scanf(%f,&xs.ywen)。 xs.aver=(xs.math +xs.yingyu +xs.zhengzhi
12、+xs.ywen)/4。 xs.sum=xs.math +xs.yingyu +xs.zhengzhi +xs.ywen。 break。 if(!feof(fp) printf( n 修改后的学生的信息如下:n)。 printf(n %10s %6s %6s %6s %6s %6s %6s %6s %6sn,姓名,学号,性别,数学,英语,政治 ,语文,平均成绩,总成绩)。 printf(n %10s %6d %6s %6.2f %6.2f %6.2f %6.2f %6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.zhengzhi,xs.ywen
13、,xs.aver,xs.sum)。 fseek(fp,sizeof(stu),1)。/*负号表示后退,1表示文件当前位置*/ fwrite(&xs,sizeof(stu),1,fp)。/*再写入,同时把要修改的那个覆盖掉*/ else printf(n 学生不存在,修改失败!)。 fclose(fp)。 printf(n 按任意键返回主菜单 )。getch()。/插入:输入学生的平时的各项成绩,插入到指定位置;当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果。void insert() int i=0,j,k,lenth。 FILE *fp。 student s,xsN。 system(cls)。 printf(n 请输入插入的学生的姓名:)。scanf(%s,&s.name)。 printf(n 学生的学号:)。scanf(%d,&s.num)。 printf(n 学生的性别:)。scanf(%s,&s.sex)。 printf(n 数学成绩:)。scanf(%f,&s.m
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1