




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 一、课程设计的目的 提高程序设计能力,检验课堂教学内容,掌程序设计的基本方法和调试技能。二、课程设计报告正文题目 该系统应该具有下列功能:(1) 录入某位学生的学生证信息。(2) 给定学号,显示某位学生的学生证信息。(3) 给定某个班级的班号,显示该班所有学生的学生证信息。(4) 给定某位学生的学号,修改该学生的学生证信息。(5) 给定某位学生的学号,删除该学生的学生证信息。(6) 提供一些统计给类信息的功能。【输入要求】应用程序运行后,在屏幕上显示一个菜单。用户可以根据要求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。【输出要求】(1) 应用程序运行后
2、,要在屏幕上显示一个菜单。(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。【提示】设计时可采用结构体类型和一维数组类型,用来保存学生证的内容。三、分析 由于题目要求给出清晰明确懂得信息,所以在程序中要提供各种 不同功能的模块。四、总体设计 信息输入模块信息查询模块信息修改模块信息删除模块信息统计模块功能选择系统模块五、具体设计及分析1.主函数主函数主要提供菜单界面以及各模板函数的调用。以结构体的形式定义。通过直到型循环以及switch语句来实现各功能模块的调用以及循环。 #include#define M 30main() /*主函数 菜单*/in
3、t n,w;doputs(tt*MENU*nn);puts(tttt 1. 录入n);puts(tttt 2. 查询n);puts(tttt 3. 修改n);puts(tttt 4. 删除n);puts(tttt 5. 统计n);puts(tttt 6. 退出n);puts(ntt*n);printf(请选择你需要做什么(1-6): bb);scanf(%d,&n);if(n6)w=1;getchar();else w=0;while(w=1);switch(n) case 1:scanf_student();break; case 2:search();break; case 3:revis
4、e();break; case 4:delete_student();break; case 5:stat();break; case 6:exit(0);struct student /*定义结构体*/char num10;char class_num10;char name10;char sex4;char nation10;char native10;int born;int ave;2.各功能模块的设计(1)输入模块主要用于录入学生的学生证信息,调用添加各文件函数int scanf_student() int n;n=load(); /*调用加载文件函数*/ input(n); /*调
5、用添加记录函数*/save(n); /*调用保存函数*/printf_back(); /*调用选择返回或结束函数*/int load() /*加载文件记录并计算学生个数函数*/FILE *fp;int i;if(fp=fopen(student card.txt,rb)=NULL)printf(n Can not open filen);return NULL;for(i=0;!feof(fp);i+) fscanf(fp,%s%s%s%s%s%s%d%d,sti.num,sti.class_num,,sti.sex,sti.nation,sti.native,&sti.bor
6、n,&sti.ave);fclose(fp);return(i);int input(int i)bijiao_num(i); /*调用确认学号不重复函数*/class_input(i); /*调用输入班号函数*/printf(n 姓名:); scanf(%s,);printf(n 性别:);scanf(%s,sti.sex);printf(n 民族:);scanf(%s,sti.nation);printf(n 籍贯:);scanf(%s,sti.native);printf(n 出生年月:);scanf(%d,&sti.born);sti.ave=1;int num_inp
7、ut(int i) /*输入学号函数*/int j,k,w;dow=0;printf(n学号:);scanf(%s,sti.num);for(j=0;sti.numj!=0;j+) /*确认学号仅由数字组成*/if(sti.numj9)printf(输入错误! 学号仅有0-9的数字组成! 请重新输入);w=1;break;while(w=1);int bijiao_num(int i) /*确认学号不重复函数*/ int j,k,w;dow=0;printf(n学号:);scanf(%s,sti.num);for(j=0;sti.numj!=0;j+) /*确认学号仅由数字组成*/if(sti
8、.numj9)printf(输入错误! 学号仅有0-9的数字组成! 请重新输入);w=1;break;if(w!=1)for(k=0;ki;k+) /*确认学号不重复*/if(strcmp(stk.num,sti.num)=0)printf(这个学号已经存在! 请重新输入! n);w=1;break;while(w=1);int class_input(int i) /*班号输入函数*/int j,k,w;dow=0;printf(n班号:);scanf(%s,sti.class_num);for(j=0;sti.class_numj!=0;j+) /*确认班号仅由数字组成*/if(sti.c
9、lass_numj9)printf(输入错误! 班号仅有0-9的数字组成! 请重新输入);w=1;break;while(w=1); (2) 查询模块主要用于根据题目的要求来查询各学生的信息。search() int n,w;doputs(tt*MENU*nn);puts(tttt 1. 按学号查询n);puts(tttt 2. 按班号查询n);puts(tttt 3. 返回n);puts(ntt*n);printf(请选择你需要做什么(1-3): bb);scanf(%d,&n);if(n3)w=1;getchar();else w=0;while(w=1);switch(n) case 1
10、:search_num();break; /*调用按学号查询函数*/ case 2:search_class();break; /*调用按班号查询函数*/ case 3:menu(); /*调用主菜单函数*/int search_num() /*按学号查询函数*/int n,i;char a10;printf(n请输入要查询学生的学号:); scanf(%s,a);n=load(); /*调用加载函数*/for(i=0;in;i+)if(strcmp(sti.num,a)=0)printf_face(); /*调用显示数据结构项目函数*/printf_one(i); /*调用输出一个学生数据函
11、数*/break;if(i=n) /*判断是否查找到*/printf(n没有找到您要查询的学生!请核对无误后重新输入!);printf_back();printf_face()printf(n学号 班号 姓名 性别 民族 籍贯 出生年份n);printf_one(int i)printf(%s %s %s %s %s %s %dn,sti.num,sti.class_num,,sti.sex,sti.nation,sti.native,sti.born);int search_class() /*按班号查询函数*/int n,i,k=0;char b10;printf(n请输入
12、要查询的班号:); scanf(%s,b);n=load(); /*调用加载函数*/printf_face(); /*调用显示数据结构项目函数*/for(i=0;in;i+)if(strcmp(sti.class_num,b)=0)printf_one(i); /*调用输出一个学生数据函数*/k+;if(k=0) /*判断是否查找到*/printf(n没有找到您要查询的班号!请核对无误后重新输入!);else printf(n共查找到该班学生 %d 个,k);printf_back();(3) 修改模块主要用于根据学生的学号,修改该学生的学生证信息。nt revise() int n,m;n=
13、load(); /*调用加载文件函数*/m=queren(); /*调用确认修改函数*/revise_one(m); /*调用修改一个学生信息函数*/save(n); /*调用保存函数*/printf_back();int queren() /*确认修改或删除函数*/int i,n,c;n=load();printf(n请输入要修改或删除学生的学号: );num_input(n+1);for(i=0;in+1;i+) /*查找要修改或删除的学生*/ if(strcmp(stn+1.num,sti.num)=0) break;if(i=n+1) printf(没有找到你输入的学号的学生!请确认无
14、误后重新输入!); elseprintf_one(i); /*输出该学生信息*/printf(输入 1 确认修改或删除n输入 0 返回主菜单 :); /*确认修改*/ scanf(%d,&c);if(c=1)return(i);elseprintf_back(); revise_one(int i) /*修改一个学生信息函数*/printf_face;input(i); /*调用学生信息输入函数*/(4) 删除模块主要用于根据学生的学号,删除该学生的学生证信息。int delete_student()int m,n;n=load(); m=queren();stm.ave=0; /*表示该记录
15、要删除*/save(n);printf_back();(5) 统计模块主要用于提供和统计各类信息,显示学生的信息。主要按班号,性别,籍贯,民族,出生来统计。int stat() int n,w;doputs(tt*MENU*nn);puts(tttt 1. 按班号统计n);puts(tttt 2. 按性别统计n);puts(tttt 3. 按民族统计n);puts(tttt 4. 按籍贯统计n);puts(tttt 5. 按出生时间n);puts(tttt 6. 返回n);puts(ntt*n);printf(请选择你需要做什么(1-6): bb);scanf(%d,&n);if(n6)w=1
16、;getchar();else w=0;while(w=1);switch(n) case 1:stat_class();break; case 2:stat_sex();break; case 3:stat_nation();break; case 4:stat_native();break; case 5:stat_born();break; case 6:menu();int stat_class() /*按班号统计函数*/int i,n,j=0,b,dM;char a10;n=load();printf(n请输入要统计的班号:);scanf(%s,a);for(i=0;in;i+)if
17、(strcmp(a,sti.class_num)=0)dj+=i;printf(共查找到 %d 位符合要求的学生n,j);printf(输入 1 查看详细信息n输入 0 返回主菜单:);scanf(%d,&b);if(b=1)printf_face();for(i=0;ij;i+)printf_one(di);printf_back();int stat_sex() /*按性别统计函数*/int i,n,j=0,dM;char a4,b;n=load();printf(n请输入要统计的性别:);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,sti.sex)=0)d
18、j+=i;printf(共查找到 %d 位符合要求的学生n,j);printf(输入 1 查看详细信息n输入 0 返回主菜单:);scanf(%d,&b);if(b=1)printf_face();for(i=0;ij;i+)printf_one(di); printf_back();int stat_nation() /*按民族统计函数*/int i,n,j=0,dM;char a10,b;n=load();printf(n请输入要统计的民族:);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,sti.nation)=0)dj+=i;printf(共查找到 %d
19、位符合要求的学生n,j); printf(输入 1 查看详细信息n输入 0 返回主菜单:);scanf(%d,&b);if(b=1)printf_face();for(i=0;ij;i+)printf_one(di); printf_back();int stat_native() /*按籍贯统计函数*/int i,n,j=0,dM;char a10,b;n=load();printf(n请输入要统计的籍贯:);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,sti.native)=0)dj+=i;printf(共查找到 %d 位符合要求的学生n,j);printf
20、(输入 1 查看详细信息n输入 0 返回主菜单:);scanf(%d,&b);if(b=1)printf_face();for(i=0;ij;i+)printf_one(di); printf_back();int stat_born() /*按出生年份统计*/int i,n,j=0,a,dM;char b;n=load();printf(n请输入要统计的出生年份:);scanf(%d,&a);for(i=0;in;i+)if(a=sti.born)dj+=i;printf(共查找到 %d 位符合要求的学生n,j);printf(输入 1 查看详细信息n输入 0 返回主菜单:);scanf(%
21、d,&b);if(b=1)printf_face();for(i=0;ij;i+)printf_one(di);printf_back();int menu()int n,w;doputs(tt*MENU*nn);puts(tttt 1. 录入n);puts(tttt 2. 查询n);puts(tttt 3. 修改n);puts(tttt 4. 删除n);puts(tttt 5. 统计n);puts(tttt 6. 退出n);puts(ntt*n);printf(请选择你需要做什么(1-6): bb);scanf(%d,&n);if(n6)w=1;getchar();else w=0;while(w=1);switch(n) case 1:scanf_student();break; case 2:search();break; case 3:revise();break; case 4:del
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无毒无害助剂研发-洞察及研究
- 药店饮片策划方案模板
- 二零二五年度办公租赁合同模板:含企业品牌推广
- 2025版医药研发成果保密协议翻译及许可合同
- 2025年度房地产项目采购计划编制及目标达成合同
- 中药推广引流方案模板
- 二零二五年交通运输设备采购合同补充协议
- 商务诚信构建方案
- 2025年采摘园特色农业产业链综合服务合同
- 2025年搬家搬运与家具清洁服务协议
- 小猪佩奇中译英练习打印版
- 冯恩学田野考古学教案
- 20120309-奇瑞KD索赔培训材料(new)
- 社区获得性肺炎ppt
- 直流屏检修作业指导书(word文档)
- GB/T 19404-2003微波铁氧体器件主要性能测量方法
- GB/T 18418-2017家用卫生杀虫用品电热蚊香液
- GB/T 17456.2-2010球墨铸铁管外表面锌涂层第2部分:带终饰层的富锌涂料涂层
- 政府用地项目用地报批流程
- 高校毕业生学籍档案管理课件
- 徐健顺吟诵文集(.12.16)
评论
0/150
提交评论