c语言课程设计学生信息管理系统.pdf

上传人:索**** 文档编号:83436872 上传时间:2023-03-30 格式:PDF 页数:18 大小:121.84KB
返回 下载 相关 举报
c语言课程设计学生信息管理系统.pdf_第1页
第1页 / 共18页
c语言课程设计学生信息管理系统.pdf_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《c语言课程设计学生信息管理系统.pdf》由会员分享,可在线阅读,更多相关《c语言课程设计学生信息管理系统.pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-1-题目名称:学生信息管理系统算法分析:1 用结构体标出信息系统的成员:学生学号,学生姓名,班级,成绩,排名2 利用 c 语言的文件知识将系统的信息存放在c 盘下的“”的文件夹下3 定义各个子函数(1)定义输入信息函数,将学生信息按一定格式用 scanf 函数输入(统计M个学生的信息);(2)定义输出函数,每两个表一页直到最后一个;(3)定义信息查询函数。a,定义按学号查询函数,如果输入的学号等于学生学号则输出要查询的信息;b,定义按姓名查询函数,如果输入的姓名字符串等于其中一个学生的姓名字符串则输出信息;c,定义按班级查找函数,如果输入的数字等于其中学生的班级数,则输出该信息;d,定义按成

2、绩查找函数,如果输入的数字等于其中学生的成绩数,则输出该信息;e,定义查找总函数,输入一个数选择查找方式,1-4 分别对应调用 abcd 四个函数。(4)定义删除信息函数。输入的数字作为要删除的学生学号,输出要删除的学生信息后选择是否删除,删除后将第 g+1 个的信息赋给第 g 个,输出删除后的信息表。(5)定义信息修改函数。输入的数字等于要修改的学生学号,输出要修改的学生信息后选择是否修改,用switch,case 语句选择要修改的项目,输入 n,y 决定是否继续直到不继续修改,输出学生信息。(6)定义信息统计函数。输入一个数字作为成绩,比较M个学生成绩是否等于输入的数字,统计相等的个数n

3、输出。(7)定义成绩排序函数。用冒泡排序法将M个学生的成绩按从大到小的顺序排列后输出。4 定义主函数。调用读取文件函数,输入数字 1-5 分别对应调用修改学生信息函数,删除学生信息函数,查找学生信息函数,统计学-2-生信息函数,学生成绩排行信息函数,0 表示退出系统。最后调用保存文件函数。结束程序。流程设计:学 生 信 息 管 理 系 统用结构体说明各个成员定义各个子函数定 义 信息查询函数switch,case语句 选 择 查定 义 按学号,姓名,班级,成绩的函数定义 修 改信 息 函数选择要 修 改 的信息 1-4判断是 否 继 续修 改 直 到不继续,结定义删 除 信 息函数选择要 删

4、除 的学号,判断是否删除将第g+1 个信息赋 给 第g个定 义统计函数比较成绩数是否等于输入数计数,输出 n定 义成绩排序函数用 冒 泡排序法将M个学生的成绩按从大到小排列定义主函数,用switch case 选择要调用的子函数定 义 输入输出函数-3-代码设计:#include#include#include#define M 2#define PAGE 2/*学生信息结构体类型*/typedef struct int num;/*学号*/char name20;/*姓名*/int banji;/*班级*/int chengji;/*成绩*/int paiming;/*排名*/STUDENT

5、S;int read_file(STUDENTS students)/*文件的读取*/FILE*fp;/*定义一个文件指针变量*/int i=0;if(fp=fopen(,r)=NULL)/*文件空判断,fopen打开一个文件*/printf(nn*库存文件不存在!请创建);return 0;while(feof(fp)!=1)/*文件是否结束*/fread(&studentsi,sizeof(STUDENTS),1,fp);/*读取文件*/保存文 件 退 出系 统 结 束程序-4-if(studentsi.num=0)/*学号是否为零*/break;else i+;fclose(fp);/*

6、关闭文件*/return i;void save_file(STUDENTS students,int sum)/*保存文件*/FILE*fp;int i;if(fp=fopen(,wb)=NULL)/*判断文件是否为空*/printf(读文件错误!n);return;for(i=0;isum;i+)if(fwrite(&studentsi,sizeof(STUDENTS),1,fp)!=1)/*向文件写入的数据块不等于1*/printf(写文件错误!n);fclose(fp);/*输入模块*/int input(STUDENTS students)int i=0;printf(nn 录入学生

7、信息 (最多%d人)n,M);printf(-n);do-5-printf(n 第%d人,i+1);printf(n 学生学号:);scanf(%d,&studentsi.num);if(studentsi.num=0)break;printf(n 学生姓名:);scanf(%s,studentsi.name);printf(n 班级:);scanf(%d,&studentsi.banji);printf(n 成绩:);scanf(%d,&studentsi.chengji);printf(n 排名:);scanf(%d,&studentsi.paiming);i+;while(iM);pri

8、ntf(n-%d 个 学 生 信 息 输 入 完毕!-n,i);printf(n 按任意键返回主菜单!);getchar();return i;/*输出模块*/void output(STUDENTS students)int i=0,j=0,page=1;printf(nn -学生信息表-第%d页nn,page);/*每两个一页*/printf(学生学号-姓名-班级-成绩-排名n);printf(-n);do if(studentsi.num!=0)-6-j+;if(j%PAGE!=0)printf(%12d%10s%2d%3d%4d n,studentsi.num,studentsi.na

9、me,studentsi.banji,studentsi.chengji,studentsi.paiming);printf(-n);else printf(按任意键继续!);getchar();printf(nn -学生信息表-第%d页nn,+page);printf(学生学号-姓名-班级-成绩-排名n);printf(-n);printf(%12d%10s%2d%3d%4d n,studentsi.num,studentsi.name,studentsi.banji,studentsi.chengji,studentsi.paiming);printf(-n);i+;while(stude

10、ntsi.numM);printf(按任意键返回主菜单!);-7-getchar();/*学生信息查询*/void find_by_num(STUDENTS students,int sum)/*按学号查找*/int i,find_num;printf(n 请输入要查找的学生学号:);scanf(%d,&find_num);for(i=0;isum;i+)if(studentsi.num=find_num)printf(这是您所查找到的学生信息:n);printf(学生学号-姓名-班级-成绩-排名n);printf(-n);printf(%12d%10s%2d%3d%4d n,students

11、i.num,studentsi.name,studentsi.banji,studentsi.chengji,studentsi.paiming);printf(-n);break;else printf(n 未找到要查找的学生信息,按任意键返回!);getchar();-8-void find_by_name(STUDENTS students,int sum)/*按姓名查找*/int i;char find_name20;printf(n 请输入要查找的学生姓名:);scanf(%s,find_name);for(i=0;isum;i+);if(strcmp(studentsi.name,

12、find_name)=0)/*字符串比较相等返回 0*/printf(这是您所查找到属于该学生的信息:);printf(学生学号-姓名-班级-成绩-排名n);printf(-n);printf(%12d%10s%2d%3d%4d n,studentsi.num,studentsi.name,studentsi.banji,studentsi.chengji,studentsi.paiming);printf(-n);else printf(n 未找到要查找的学生信息,按任意键返回!);getchar();-9-void find_by_banji(STUDENTS students,int s

13、um)/*按班级查找*/int i;int find_banji;printf(n 请输入要查找的学生班级:);scanf(%d,&find_banji);for(i=0;isum;i+)if(studentsi.banji=find_banji)printf(这是您所查找到属于该班级的学生:);printf(学生学号-姓名-班级-成绩-排名n);printf(-n);printf(%12d%10s%2d%3d%4d n,studentsi.num,studentsi.name,studentsi.banji,studentsi.chengji,studentsi.paiming);print

14、f(-n);else printf(n 未找到要查找的班级信息,按任意键返回!);getchar();-10-void find_by_chengji(STUDENTS students,int sum)/*按成级查找*/int i;int find_chengji;printf(n 请输入要查找的学生成绩:);scanf(%d,&find_chengji);for(i=0;isum;i+)if(studentsi.chengji=find_chengji)printf(这是您所查找到有该成绩的学生:);printf(学生学号-姓名-班级-成绩-排名n);printf(-n);printf(%

15、12d%10s%2d%3d%4d n,studentsi.num,studentsi.name,studentsi.banji,studentsi.chengji,studentsi.paiming);printf(-n);else printf(n 未找到要查找的学生信息,按任意键返回!);getchar();-11-void find(STUDENTS students,int sum)/*定义查找总函数*/int choice;printf(n 您要按照哪种方式查找 n);/*用 switch 语句*/printf(n 1.按学生学号查找 n);printf(n 2.按学生姓名查找 n)

16、;printf(n 3.按学生班级查找 n);printf(n 4.按学生成绩查找 n);printf(n 0.退出n);printf(n 请选择(0-4):n);scanf(%d,&choice);switch(choice)case 1:find_by_num(students,sum);break;case 2:find_by_name(students,sum);break;case 3:find_by_banji(students,sum);break;case 4:find_by_chengji(students,sum);break;case 0:break;/*删除信息模块*/

17、void del(STUDENTS students)int i,g,sum;int del_num;printf(n 请输入要删除的学生学号:);scanf(%d,&del_num);for(i=0;isum;i+)if(studentsi.num=del_num)/*通过学号判断*/-12-printf(这是您所要删除学生信息:n);printf(学生学号-姓名-班级-成绩-排名n);printf(-n);printf(%12d%10s%2d%3d%4d n,studentsi.num,studentsi.name,studentsi.banji,studentsi.chengji,stu

18、dentsi.paiming);printf(-n);printf(您确认要删除吗);printf(按任意键继续!);getchar();printf(已成功删除学生信息!);for(g=i;gsum;g+)studentsg=studentsg+1;printf(删除后的信息表:n);printf(学生学号-姓名-班级-成绩-排名n);printf(-n);printf(%12d%10s%2d%3d%4d n,studentsi.num,studentsi.name,studentsi.banji,studentsi.chengji,studentsi.paiming);-13-printf

19、(-n);/*信息修改模块*/void modify(STUDENTS students,int sum)int i=0,choice,modify_num,flag;do printf(请输入要修改的学生学号:);scanf(%d,&modify_num);for(i=0;isum;i+)if(studentsi.num=modify_num)printf(nn-学 生 信 息-nn);printf(学生学号-姓名-班级-成绩-排名n);printf(-n);printf(%12d%10s%2d%3d%4d n,studentsi.num,studentsi.name,studentsi.b

20、anji,studentsi.chengji,studentsi.paiming);printf(-n);printf(n 您要修改哪一项 n);printf(n 1.学生姓名 n);printf(n 2.学生班级 n);printf(n 3.成绩n);printf(n 4.排名n);printf(n 请选择(1-4):n);scanf(%d,&choice);-14-switch(choice)case 1:printf(n 请输入修改后的学生姓名:);scanf(%s,studentsi.name);break;case 2:printf(n 请输入修改后的学生班级:);scanf(%s,

21、studentsi.banji);break;case 3:printf(n 请输入修改后的成绩:);scanf(%s,studentsi.chengji);break;case 4:printf(n 请输入修改后的排名:);scanf(%d,&studentsi.paiming);break;printf(nn-学 生 信 息-nn);printf(学生学号-姓名-班级-成绩-排名n);printf(-n);printf(%12d%10s%2d%3d%4d n,studentsi.num,studentsi.name,studentsi.banji,studentsi.chengji,stu

22、dentsi.paiming);printf(-n);break;else printf(n 该学生不存在!);-15-printf(n 修改成功!n);printf(您要继续修改吗(Y/N);if(choice=Y|choice=y)flag=1;printf(n 继续!n);else flag=0;while(flag=1);/*直到不修改结束循环*/printf(n 按任意键返回主菜单!);getchar();/*学生信息统计模块*/void count(STUDENTS students,int sum)/*统计某个成绩的学生个数*/int i;int count_chengji;in

23、t n=0;printf(请输入一个成绩:n);scanf(%d,&count_chengji);for(i=0;isum;i+)if(studentsi.chengji=count_chengji)/*计数*/n+;break;printf(统计出属于该成绩的一共有%d个人n,n);-16-/*成绩排序模块*/void sort(STUDENTS students,int sum)STUDENTS t;int i,j;printf(nn-学 生 信 息-nn);printf(学生学号-姓名-班级-成绩-排名n);printf(-n);for(i=1;isum;i+)for(j=i+1;jst

24、udentsi.chengji)/*冒 泡 排 序法*/t=studentsj;studentsj=studentsi;studentsi=t;for(i=0;isum;i+)printf(%12d%10s%2d%3d%4d n,studentsi.num,studentsi.name,studentsi.banji,studentsi.chengji,studentsi.paiming);printf(-n);void main()-17-STUDENTS studentsM;int choice,sum;sum=read_file(students);/*文件读取*/if(sum=0)pr

25、intf(请录入学生信息!*n);sum=input(students);/*输入信息*/do printf(nnn*学 生 信 息 管 理 系 统*nn);printf(1.修改学生信息 nn);printf(2.删除学生信息 nn);printf(3.查找学生信息 nn);printf(4.统计学生信息 nn);printf(5.学生成绩排行信息 nn);printf(0.退出系统 nn);printf(请选择 nn);scanf(%d,&choice);switch(choice)case 1:modify(students,sum);break;case 2:del(students);break;case 3:find(students,sum);break;case 4:count(students,sum);break;case 5:sort(students,sum);break;case 0:break;while(choice!=0);/*直到选择退出系统*/save_file(students,sum);-18-运行结果:

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

当前位置:首页 > 教育专区 > 高考资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁