C语言学生信息管理系统(代码).pdf

上传人:g****s 文档编号:85912357 上传时间:2023-04-13 格式:PDF 页数:16 大小:448.23KB
返回 下载 相关 举报
C语言学生信息管理系统(代码).pdf_第1页
第1页 / 共16页
C语言学生信息管理系统(代码).pdf_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《C语言学生信息管理系统(代码).pdf》由会员分享,可在线阅读,更多相关《C语言学生信息管理系统(代码).pdf(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 X X 师范大学 实验报告 课程 C 语言课程设计 任课老师 学号 姓名 院系 _年_月至_年_月 注意事项 1.使用 C 语言,代码已在 vs 中运行过,可以运行(主要功能都能实现)2.需求分析,前期设计都没写,请同学们自己完成 3.附带有 student.txt 文件,将其移动至 F:stu 文件夹中,运行程序时可直接选 6 号指令,从中读取学生信息。如果没有该 txt 文件(可能会在上传过程中丢失),仍需在 F 盘下新建 stu 文件夹,各文件将保存于该文件夹中 4.按 word 格式输出尚未设计好,有兴趣可自己完成 5.按 excel 格式输出,完成后需自行调整相应列宽(拉宽),使内

2、容美观 6.从下一页开始,复制余下全文,粘贴即可运行#includestdio.h define M 30 /班级总人数,暂定 30,可修改 define N 3 /课程成绩门数,暂定 3,可修改 int inputstu(struct student stu,int m,int n);void prinstu(struct student stu,int m,int n);int sortsno(struct student stu,int m);int sortage(struct student stu,int m);int sortmark(struct student stu,int

3、 sm,int m,int n);void prinsort(struct student stu,int m,int n);int writefile(struct student stu,FILE fp,int m,int n);int readfile(struct student stu,FILE*fp,int m,int n);int fprinword(struct student stu,FILE*fp,int m,int n);int fprinexcel(struct student stu,FILE*fp,int m,int n);int seachsno(struct s

4、tudent stu,long sno,int m,int n);int seachsname(struct student stu,char sname,int m,int n);int desno(struct student stu,long sno,int m);int desname(struct student stu,char sname,int m);int cutin(struct student stu,int m,int n);struct student int turn;long sno;char sname20;char sgrade10;char sbirth10

5、;int smarkN;;void main()int i=0;int con1=0;int con2=0;long sno;char sname20;FILE*fp=NULL;struct student stuM;for(i=0;i M;i+)stui。turn=-1;do printf(”nn*n);printf(”n 学生信息管理系统 *nn”);printf(请按提示输入相应命令:*nn”);printf(”1 键盘输入所有学生的基本信息n);printf(2 屏幕输出所有学生的基本信息n);printf(3 子菜单:按一定顺序对学生进行排序n);printf(4 按顺序屏幕输出学生

6、信息n”);printf(”5 保存学生信息(二进制文件)n);printf(”6 从上次保存的二进制文件中读取学生信息n”);printf(7 子菜单:将学生信息保存为文本文档(人工阅读)n);printf(”8 子菜单:对单个学生的插入删除查询修改n);printf(”1 退出系统n”);scanf(%d,&con1);switch(con1)case 1:printf(”n*注意!*n);printf(”继续进行输入会覆盖原数据!!n);printf(”第一次使用本软件或需重新写信息请继续:n”);printf(”1 继续n);printf(”-1 返回n”);scanf(%d,con2

7、);if(con2=1)inputstu(stu,M,N);break;case 2:prinstu(stu,M,N);break;case 3:do printf(n*n”);printf(”1 按学号顺序进行排序n);printf(2 按年龄从小到大排序n”);printf(3 按总成绩由高到低排序n”);printf(-1 返回上一级菜单n”);scanf(d”,&con2);switch(con2)case 1:sortsno(stu,M);con2=0;break;case 2:/sortage(stu,M);break;case 3:int smM;sortmark(stu,sm,

8、M,N);break;case 1:break;default:printf(二级命令输入错误,请重试!n”);fflush(stdin);while(con2!=-1);break;case 4:prinsort(stu,M,N);break;case 5:writefile(stu,fp,M,N);break;case 6:readfile(stu,fp,M,N);break;case 7:printf(n*n”);printf(”1 将学生信息输出为 txt 文档,路径:F:stustudent.txtn);printf(2 将学生信息输出为 word 文档,路径:F:stustuden

9、t.doc n);printf(3 将学生信息输出为 excel 文档,路径:F:stustudent。xls n);printf(1 返回上一级菜单n”);scanf(%d”,con2);switch(con2)case 1:break;case 2:fprinword(stu,fp,M,N);break;case 3:fprinexcel(stu,fp,M,N);break;break;case 8:do printf(”n*nn);printf(”1 按学号查询单个学生n);printf(2 按姓名查询单个学生n”);printf(3 按学号删除单个学生n”);printf(”4 按姓名

10、删除单个学生n);printf(5 插入单个学生信息n”);printf(”1 返回主菜单n);scanf(”%d,&con2);switch(con2)case 1:printf(”请输入单个学号:n”);scanf(%10ld”,sno);seachsno(stu,sno,M,N);break;case 2:printf(”请输入单个学生姓名:n”);scanf(”20s”,sname);seachsname(stu,sname,M,N);break;case 3:printf(请输入单个学号:n”);scanf(”%10ld,sno);desno(stu,sno,M);break;cas

11、e 4:printf(请输入单个学生姓名:n);scanf(”s,sname);desname(stu,sname,M);break;case 5:cutin(stu,M,N);break;default:printf(”二级指令错误,请重新输入!n);break;while(con2!=1);case 1:printf(感谢使用本系统!n”);break;default:printf(一级命令输入错误,请重试”);fflush(stdin);break;while(con1!=1);/输入学生的基本信息 int inputstu(struct student stu,int m,int n)

12、int i=0;int j=0;printf(”请按说明输入学生信息:n);while(i m)printf(”请输入第%d 个学生的学号,姓名,班级,出生日期:n”,i+1);scanf(”10ld%20s10s10s,&stu i.sno,stu i.sname,stui。sgrade,&stui。sbirth);for(j=0;j n;j+)printf(”请输入第%d 个学生的第%d 门成绩n,i+1,j+1);scanf(d”,&stui。smarkj);i+;return i;/屏幕输出学生信息 void prinstu(struct student stu,int m,int n

13、)int i=0;int j=0;printf(*n);printf(”学生基本信息如下:n”);printf(学号姓名班级出生年月成绩 1 成绩 2 成绩 3n”);while(i m)if(stui。sno=0)i+;continue;printf(%10ld%20s%10s 10s ,stui.sno,stui。sname,stui。sgrade,stui.sbirth);for(j=0;j n;j+)printf(”d ,stui。smarkj);printf(”n);i+;/按学号顺序进行排序 int sortsno(struct student stu,int m)int i=0;

14、int j=0;int s;long snoM;for(i=0;i M;i+)snoi=stui.sno;for(i=0;i snoj)s=snoj;snoj=snoi;snoi=s;for(i=0;i m;i+)for(j=0;j m;j+)if(stuj。sno=snoi)stuj。turn=i;return i;/按年龄对学生进行排序;int sortage(struct student stu,int m)/按总成绩由高到低排序 int sortmark(struct student stu,int sm,int m,int n)int i=0;int j=0;int s=0;for(

15、i=0;i m;i+)smi=0;for(i=0;i m;i+)for(j=0;j n;j+)smi=smi+stui。smarkj;for(i=0;i m;i+)for(j=i+1;j m;j+)s=smi;if(s smj)s=j;sms=0;stus。turn=i;return i;/按顺序屏幕输出 void prinsort(struct student stu,int m,int n)int i=0;int j=0;int k=0;printf(n*n”);printf(按排序,学生基本信息如下:n”);printf(”学号姓名班级出生年月成绩 1 成绩 2 成绩 3n);while

16、(k m)if(stui.sno=0)continue;for(i=0;i m;i+)if(stui.turn=k)printf(”%10ld%20s%10s 10s ,stui。sno,stui。sname,stui.sgrade,stui.sbirth);for(j=0;j n;j+)printf(%d ”,stui.smarkj);printf(”n”);k+;/写数据进二进制文件 int writefile(struct student stu,FILE*fp,int m,int n)int i=1;fp=fopen(f:stustudent。txt,wb);if(fp=NULL)pr

17、intf(”打开文件失败!n”);exit(0);fwrite(&stu0,sizeof(struct student),m,fp);i=fclose(fp);return i;/从二进制中读取学生信息 int readfile(struct student stu,FILE*fp,int m,int n)int i=1;fp=fopen(”f:stustudent.txt,rb);if(fp=NULL)printf(”打开文件失败!n”);exit(0);fread(stu0,sizeof(struct student),m,fp);i=fclose(fp);return i;/将学生信息写

18、入 word 文档,保存于 F:stustudent.doc int fprinword(struct student stu,FILE fp,int m,int n)int i=0;int j=0;fp=fopen(”F:stustudent。doc”,”w);if(fp=NULL)printf(”文件打开失败!);exit(0);while(i m)if(stui.sno=0);continue;fprintf(fp,”%10ld 20s%10s10s”,stui.sno,stui.sname,stui.sgrade,stui.sbirth);for(j=0;j n;j+)fprintf(

19、fp,%d ”,stui.smarkj);printf(”n”);i+;fclose(fp);return i;/将学生信息写入 excel 文档,保存于 F:stustudent。xls int fprinexcel(struct student stu,FILE*fp,int m,int n)int i=0;int j=0;char t=t;char lin20=”成绩”;char str420;strcpy(str0,学号”);strcpy(str1,”姓名);strcpy(str2,”班级”);strcpy(str3,”生日);fp=fopen(F:stustudent.xls”,”w

20、”);if(fp=NULL)printf(文件打开失败!);exit(0);fprintf(fp,”%sc%scs%c%s”,str0,t,str1,t,str2,t,str3);for(i=0;i n;i+)fprintf(fp,”c%s%d”,t,lin,i+1);fprintf(fp,n);i=0;while(i m)if(stui.sno=1)continue;fprintf(fp,%10ld%c20s%c%10sc10s,stui。sno,t,stu i.sname,t,stui。sgrade,t,stui。sbirth);for(j=0;j n;j+)fprintf(fp,cd,t

21、,stui。smarkj);fprintf(fp,”n);i+;fclose(fp);return i;/按学号查询单个学生 int seachsno(struct student stu,long sno,int m,int n)int i=0;int j=0;for(i=0;i m;i+)if(stui.sno=sno)printf(按学号查询到的学生基本信息如下:n);printf(学号姓名班级出生年月成绩 1 成绩 2 成绩 3n);printf(”10ld 20s10s 10s ”,stui。sno,stui.sname,stui。sgrade,stui。sbirth);for(j=

22、0;j n;j+)printf(%d ”,stui。smarkj);printf(n);break;return i;/按姓名查询单个学生 int seachsname(struct student stu,char sname,int m,int n)int i=0;int j=0;int s=-1;for(i=0;i m;i+)s=strcmp(stui.sname,sname);if(s=0)printf(按姓名查询到的学生基本信息如下:n);printf(”学号姓名班级出生年月成绩 1 成绩 2 成绩 3n”);printf(”10ld 20s%10s%10s ,stui。sno,st

23、ui。sname,stui.sgrade,stui。sbirth);for(j=0;j n;j+)printf(%d ”,stui.smarkj);printf(”n”);break;return i;/按学号删除单个学生信息 desno(struct student stu,long sno,int m)int i=0;for(i=0;i m;i+)if(stui。sno=sno)stui。sno=0;break;return i;/按姓名删除单个学生 int desname(struct student stu,char sname,int m)int i=0;int j=0;int s=

24、-1;for(i=0;i m;i+)s=strcmp(stui。sname,sname);if(s=0)stui.sno=0;break;return i;/插入单个学生 int cutin(struct student stu,int m,int n)int i=0;int j=0;for(i=0;im;i+)if(stui。sno=0)printf(请输入第d 个学生的学号,姓名,班级,出生日期:n”,i+1);scanf(%10ld20s%10s10s”,stui.sno,stui。sname,&stui。sgrade,&stui.sbirth);for(j=0;j n;j+)printf(请输入第d 个学生的第%d 门成绩n”,i+1,j+1);scanf(”%d,stui.smarkj);break;if(i=m 1)printf(”暂时没有空结构!n”);return i;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 文案大全

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com