ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:18.94KB ,
资源ID:12992134      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-12992134.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计学生成绩管理系统完整.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计学生成绩管理系统完整.docx

1、C语言课程设计学生成绩管理系统完整/* strcmp函数原型包含*/ #define N 100/*定义最大学生人数为100*/struct student /*学生结构体定义*/ char no11; /*学号,10位*/ char name10;/*姓名,3个汉字*/ char grade10;/*班级*/ char pro20;/*专业*/ float score5;/*储存5门功课的成绩*/ float ave;/*储存平均分*/ int year;/*入学年*/stuN;int num;void panduani(int); /*通过i的值,判断信息要查找的信息是否存在*/void

2、output(); /*输出学生成绩函数(公共函数)*/void init(); /*系统初始化函数*/void newfile(); /*建立新的数据文件*/void read1(); /*从数据文件中读取数据*/void weihu(); /*维护界面函数*/void new1(); /*新增一个学生成绩函数*/void xiugai(); /*修改学生成绩*/void xgcj(int); /*修改成绩*/void delete1(); /*删除学生信息函数*/void tongji(); /*统计界面函数*/void tongji1(); /*计算每个学生平均分*/void tongj

3、i2(); /*计算每门课程的平均分*/void paixu1(); /*排序函数*/void paino(); /*按学号排序*/void paiave(); /*按平均分排序*/void paidkcj(); /*按单科成绩排序*/void change(int,int); /*交换结构体数组中的两个记录*/void outputx(int); /*选择输出单科成绩*/void find1(); /*查找界面函数*/int find(char sno); /*按学号查找*/int findname(char cname);/*按姓名查找*/void findyear(int cyear);

4、 /*按入学年查找*/void save(); /*保存文件*/void stop(); /*停顿函数*/void stop() /*停顿函数 (公共函数)*/ printf(Press Any Key To Continue.n); getchar();void output() /*输出学生成绩函数(公共函数)*/ int i,j; printf(=n); printf(学号 姓名 班级 专业 入学年 C语言 高数 大物 电路 模电n); printf(=n); for(i=0;inum;i+) printf(%s %s %s %s %d,stui.no,stui.name,stui.gr

5、ade,stui.pro,stui.year); for(j=0;j5;j+) printf( %.1f,stui.scorej); printf(n); stop();void init() /*系统初始化函数 */ if(access(stu.dat,0) /*判断文件是否存在*/ newfile(); /*若不存在,新建数据文件*/ else read1(); /*若存在,读取数据*/void newfile() /*建立新的数据文件 */ int i; FILE *fp; if(fp=fopen(stu.dat,wb)=NULL) /*创建二进制文件*/ printf(创建文件失败,请

6、重新运行程序.n); /*显示创建文件失败,请重新运行程序*/ exit(0); /*终止程序*/ printf(初次运行,进行数据初始化.n);/*显示初次运行,进行数据初始化.*/ stop(); printf(请输入学生人数:);/*显示请输入学生人数:*/ scanf(%d,&num); for(i=0;inum;i+) printf(请输入第 %d个学生的学号:,i+1); /*显示请输入第i+1个学生的学号:*/ getchar(); /*吃回车*/ gets(stui.no); printf(姓名:); /*显示姓名:*/ gets(stui.name); printf(班级:)

7、; /*显示班级:*/ gets(stui.grade); printf(专业:); /*显示专业:*/ gets(stui.pro); printf(入学年n:);/*显示入学年*/ scanf(%d,&stui.year); printf(C语言成绩:);/*显示C语言成绩*/ scanf(%f,&stui.score0); printf(高数成绩:);/*显示高数成绩*/ scanf(%f,&stui.score1); printf(大物成绩:);/*显示大物成绩*/ scanf(%f,&stui.score2); printf(电路成绩:);/*显示电路成绩*/ scanf(%f,&s

8、tui.score3); printf(模电成绩:);/*显示模电成绩*/ scanf(%f,&stui.score4); fwrite(&stui,1,sizeof(struct student),fp); /*把第i+1名学生成绩写入文件*/ fclose(fp); printf(=n); printf( 刚才输入的 %d 个数据为:n,num); /*显示刚才输入的 num 个数据为:*/ printf(=nn); output();void read1() /*从数据文件中读取数据 */ FILE *fp; num=0; /*num为数据文件中实际存储的学生人数*/ fp=fopen(

9、stu.dat,r); if(fp=NULL) /*数据文件不存在*/ printf(文件打开失败!重新运行程序n); /*显示文件打开失败!重新运行程序*/ exit(0); while(!feof(fp) /*文件结束检测*/ fread(&stunum,1,sizeof(struct student),fp); num+; num-; fclose(fp); printf(ttt=n); printf( ttt现有 %d 个学生的成绩:n,num); /*显示现有 NUM个学生的成绩:*/ printf(ttt=nn); output();void weihu() /*维护界面函数 */

10、 char c1; while(1) printf(nnnttt*n); printf(ttt* 维护 *n); printf(ttt* 1. 新增 *n); /*新增*/ printf(ttt* 2. 删除 *n); /*删除(按学号)*/ printf(ttt* 3. 修改 *n); /*修改*/ printf(ttt* 9. 返回 *n); /*返回*/ printf(ttt*n); printf(ttt 请选择:n);/*请选择:*/ c1=getchar(); getchar(); if(c1=9) break; switch(c1) case 1: new1(); break; c

11、ase 2: delete1(); case 3: xiugai(); break; default: printf(选择有误,请重选!n);/*选择有误,请重选!*/ void new1() /*新增一个学生成绩函数 */ printf(请输入学号:); /*显示请输入学号:*/ gets(stunum.no); printf(姓名:); /*显示姓名:*/ gets(stunum.name); printf(班级:); /*显示班级:*/ gets(stunum.grade); printf(专业:); /*显示专业:*/ gets(stunum.pro); printf(入学年:);/*

12、显示入学年*/ scanf(%d,&stunum.year); printf(C语言成绩:);/*显示C语言成绩*/ scanf(%f,&stunum.score0); printf(高数成绩:);/*显示高数成绩*/ scanf(%f,&stunum.score1); printf(大物成绩:);/*显示大物成绩*/ scanf(%f,&stunum.score2); printf(电路成绩:);/*显示电路成绩*/ scanf(%f,&stunum.score3); printf(模电成绩:);/*显示模电成绩*/ scanf(%f,&stunum.score4); num+; print

13、f(n=n); printf(现有 %d个学生的成绩:n,num); /*显示现有 NUM个学生的成绩:*/ printf(=nn); output();void xiugai() /*修改学生成绩*/ char xg11; int i; printf(n请输入要修改学生的学号:nn); gets(xg); for(i=0;i=1&c=5) k=c-49; printf(n请输入 %s 成绩:n,p+k); scanf(%f,&stux.scorek); printf(n修 息为:n); printf(学号 姓名 班级 专业 入学年 C语言 高数 大物 电路 模电n); printf(=n);

14、 printf(%s %s %s %s %d,stux.no,stux.name,stux.grade,stux.pro,stux.year); for(j=0;j5;j+) printf( %.1f,stux.scorej); printf(n); else printf(n选择有误,请重选!nn); stop(); int find(char sno) /*按学号查找 */ int i; for(i=0;inum;i+) if(strcmp(stui.no,sno)=0) /*判断两个字符串相等*/ return i;/*查找成功*/ return -1;/*查找失败*/void dele

15、te1() /*删除学生信息函数*/ char cno11; int i,j; printf(请输入要删除的学生学号:); /*请输入要删除的学生学号*/ gets(cno); i=find(cno); if(i!=-1) for(j=i;jnum;j+) stuj=stuj+1; num-; printf(现有%d 个学生的成绩:n,num); /*显示现有 NUM个学生的成绩:*/ output(); else printf(请输入正确的学号. n); stop();void tongji() /*统计界面函数 */ int i; char c2; while(1) printf(nnnt

16、tt*n); printf(ttt* 统计 *n); printf(ttt* 1. 学生平均分 *n); /*计算学生平均分*/ printf(ttt* 2. 课程平均分 *n); /*计算每门课程平均分*/ printf(ttt* 9. 返回 *n); /*返回*/ printf(ttt*n); printf(ttt请选择:n);/*请选择:*/ c2=getchar(); getchar(); if(c2=9) break; switch(c2) case 1: tongji1(); printf(nn学生平均分为:n); printf(=n); printf(学号 姓名 入学年 平均分n

17、); printf(=n); for(i=0;inum;i+) printf(%s %s %d %.2fn,stui.no,stui.name,stui.year,stui.ave); stop(); break; case 2: tongji2(); break; default: printf(选择有误,请重选n);/*选择有误,请重选!*/ void tongji1() /*计算每个学生平均分*/ int i,j; for(i=0;inum;i+) stui.ave=0; for(j=0;j5;j+) stui.ave+=stui.scorej; stui.ave=stui.ave/5;

18、 void tongji2() /*计算每门课程的平均分*/ int i,j; float sum; float avec5; /*储存每门课的平均分*/ for(j=0;j5;j+) sum=0; for(i=0;inum;i+) sum+=stui.scorej; avecj=sum/num; printf(nn各科平均分:n);/*各科平均分:*/ printf(=n); printf(C语言 高数 大物 电路 模电n); printf(=n); for(i=0;i5;i+) printf(%-7.1f,aveci); printf(n); stop();void paixu1() /*

19、排序界面*/ char c3; for(;) printf(nnn); printf(ttt*n); printf(ttt* 排序 * n); printf(ttt* 1. 按学号排序 * n); /*按学号排序*/ printf(ttt* 2. 按平均分排序 * n); /*按平均分排序*/ printf(ttt* 3. 按单科成绩排序 * n); /*按单科成绩排序*/ printf(ttt* 9. 返回 * n); /*返回*/ printf(ttt*nn); printf(t请选择:(按1.2.3.9):n);/*请选择:*/ c3=getchar(); getchar(); if(c

20、3=9) break; switch(c3) case 1:paino();break; case 2:paiave();break; case 3:paidkcj();break; default: printf(n选择有误,请重选!nn);/*选择有误,请重选!*/ stop(); void paino() /*按学号排序*/ /*按学号从低到高冒泡法排序*/ int i,j; for(i=0;inum;i+) for(j=0;j0) change(j,j+1); printf(n排序后为:n); /*排序后为:*/ output();void paiave() /*按平均分排序 */ /

21、*按平均分从高到低冒泡法排序*/ int i,j; tongji1(); /*计算平均成绩*/ for(i=0;inum;i+) for(j=0;jnum-i-1;j+) if(stuj.avestuj+1.ave) change(j,j+1); printf(nt排序后为:n); /*排序后为:*/ printf(t=n); printf(t学号 姓名 入学年 平均分 排名n); printf(t=n); for(i=0;inum;i+) printf(t%s %s %d %.2f %4dn,stui.no, stui.name,stui.year,stui.ave,i+1); stop()

22、;void paidkcj() /*按单科成绩排序*/ char c; int i,j,k; while(1) printf(n); printf(ttt*nn); printf(ttt 单科成绩 n); printf(ttt 1.C 语言 n); /*C语言*/ printf(ttt 2.高数 n); /*高数*/ printf(ttt 3.物理 n); /*大学物理*/ printf(ttt 4.电路 n); /*电路*/ printf(ttt 5.模电 n); /*模电*/ printf(ttt 9.返回 nn); /*返回上级*/ printf(ttt*nn); printf(t请选择:(按1.2.3.4.5.9):n); c=getchar(); getchar(); if(c=9)break;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2