c语言大作业--学生管理系统.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《c语言大作业--学生管理系统.doc》由会员分享,可在线阅读,更多相关《c语言大作业--学生管理系统.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#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( * 请选择相应的功能: * n); printf
2、( * 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;if(fp=fopen(
3、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); printf(n 请
4、输入数学的成绩:); 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.ywen; fwrite(&x
5、s,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 查找失败!); /*学生不存在*/ fc
7、lose(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 %6s %6s %6s %6
8、s %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( 请输入按何种方式查询:n); pri
9、ntf(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(%s,name); if
10、(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 %6.2f %6.2f
11、%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 +xs.ywen)/4;
12、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,xs.aver,xs.s
13、um); 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);
14、printf(n 请输入插入的学生的姓名:);scanf(%s,&s.name); printf(n 学生的学号:);scanf(%d,&s.num); printf(n 学生的性别:);scanf(%s,&s.sex); printf(n 数学成绩:);scanf(%f,&s.math); printf(n 英语成绩:);scanf(%f,&s.yingyu); printf(n 政治成绩:);scanf(%f,&s.zhengzhi); printf(n 语文成绩:);scanf(%f,&s.ywen); s.aver=(s.math+s.yingyu+s.zhengzhi+s.ywen)
15、/4; s.sum= s.math+s.yingyu+s.zhengzhi+s.ywen; printf(n 插入位置:);scanf(%d,&k);/ i=0; if(fp=fopen(student.dat,rb)=NULL) printf( cant open file!n);exit(0); while(!feof(fp) fread(&xsi,sizeof(stu),1,fp);/*把数据读入到结构体数组中*/ if(feof(fp) break; i+; fclose(fp); lenth=i; if(k=0)/*k的位置要位于数组范围之内*/ /插入 for(j=lenth-1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 作业 学生 管理 系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内