C程序的设计实习报告_学生证管理系统方案_第1页
C程序的设计实习报告_学生证管理系统方案_第2页
C程序的设计实习报告_学生证管理系统方案_第3页
C程序的设计实习报告_学生证管理系统方案_第4页
C程序的设计实习报告_学生证管理系统方案_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C程序设计实习报告题目:学生证管理系统学 院:机电学院专 业:机械设计制造及其自动化姓 名:奇班级学号:072095-05指导教师:徐凯2011年 _7_ 月 16 日目录一、需求分析 . 31.1 题目要求 3二、 总体设计 . 32.1 设计思想 32.2 运行平台及开发环境 . 32.3 数据结构 42.4 系统结构简图 43.1 主函数 43.2 信息输入 53.3 总信息的显示 63.4 查询信息 63.4.1 按学号查询 . 63.4.2 按班级查询 73.5 修改信息 83.6 删除信息 93.7 统计信息 93.7.1 统计班级总人数 93.7.2 统计学院或专业总人数 103

2、.7.3 排序 10四、测试结果分析 . 104.1 输入信息部分效果图 104.2 输出总信息效果图 114.3 查询信息效果图 124.4 修改信息效果图 134.5 删除效果图 144.6 统计信息效果图 15五、心得体会 . 16六、参考文献 . 16七、附录 16一、需求分析1.1 题目要求题目:学生证管理系统该系统应该具有下列功能:(1)录入某位学生的学生证信息(2)给定学号,显示某位学生的学生证信息(3)给定某个班级的班号,显示该班所有学生的学生证信息(4)给定某位学生的学号,修改该学生的学生证信息(5)给定某位学生的学号,删除该学生的学生证信息(6)提供一些统计各类信息的功能输

3、入要求: 应用程序运行之后,在屏幕生显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后, 根据应用程序的提示信息,从键盘输入相应的信息。输出要求:(1)应用程序运行之后,要在屏幕上显示一个菜单。(2)要求用户输入数据时,要给出清、晰明确的提示信息,包括输入的数据容、格式及结束方式等。 提示:设计时可以采用结构体类型和以为数组类型,用来保存学生证的容。二、总体设计2.1 设计思想经分析,整个系统可分为以下几大块: (1)学生证信息的输入和输出:输入输出学号、班号、性别、民族、学院、专业、生日、身份证号等信 息。(2)学生证信息的保存:在输入、修改或删除后,通过文件将学生的信息保存

4、。(3)学生证信息的的查询:根据学号查询某学生的信息或者根据班号查找该班所有学生的信息。(4)学生证信息的修改:根据学号修改该学生的信息。(5)学生证信息的删除:根据学号删除该学生的信息。(6)信息的统计: 根据班号统计该班总人数、 根据学院统计该学院的总人数或者根据专业统计该专业的总 人数。(7)信息的排序:按照学号从大到小对学生的信息进行排序。2.2 运行平台及开发环境此程序是在Microsoft Visual C+ 软件平台上编译的,具有集成开发环境,可提供编辑C语言,C+以及C+/CLI等等编程语言。VC+整合了便利的除错工具,特别是整合了微软视窗程式设计( Windows API )

5、、 三维动画 DirectX API , Microsoft .NET 框架2.3数据结构综合以上的分析及开发平台特点,我决定采用结构体数据结构,将学生的基本信息与成绩设计为结构体数 据,用来存放多个学生的信息,把学生的、学号、宿舍号、成绩作为结构体成员,从而实现信息之间的对 应输入输岀。但要注意的是要用两个不同的结构体分别定义学生基本信息和学生成绩,以便于后续的一些 功能的实现。2.4系统结构简图图2-1三、详细设计3.1主函数主函数的功能是对各个子函数进行调用,并且输岀一个菜单界面,只需按照菜单输入相应数字就可以选择相应功能。实现这一功能主要通过switch语句,首先通过printf函数打

6、印出菜单,然后通过scanf函数输入数字选择菜单,经过 switch语句判断调用相应的函数,从而实现预定的功能。开始结束3.2信息输入在定义变量时采用结构体数据结构,学号、班号、生日、身份证号是整型,、性别民族、学院、专业是字 符型,采用字符型数组,但数组长度一定要足够,否则会岀现数据丢失错误,考虑到性别的字符长度,定 义它们为长度为20的字符数组。且由于涉及到学生一系列的的基本信息,将基本信息定义为结构体。在将学生的基本信息输入时,要将其保存为.txt文件,用来存放学生的信息。这时就涉及到文件的建立和写入,由于fwrite 、fread函数是以二进制形式将数据写入、读出文件的,所以在文件中会

7、出现乱码,而 fprintf 、fscanf烦函数则会将 ASCII码转化为二进制码,不会出现乱码,所以决定选取较为简单的fprintf函数作为写入文件的函数。首先定义一个指向文件的指针,再定义一个整型的外部变量变量N,定义整形的外部变量是为了控制输入的人数,并用for函数进行循环,在输入数据之后当然,自动调用save函数,循环N次,通过指针打开建立一个文本文件,fprintf函数自动建立一个文本文件,实现向文件中写入N组数据的功能。循环结束后文件件中已经写入要输入的信息。在程序的最后通过一个if和else判断语句,结合printf 和scanf函数判断是否继续执行输入函数或者返回菜单。流程图

8、如图3-2。图3-23.3总信息的显示这部分比较简单,主要是通过主函数调用,先打开文件用fprintf函数将数据全部读入,然后经过for循环,经数据全部输出,最后通过一个if和else判断语句,结合printf 和scanf函数判断是否继续执行本函数或者返回菜单。流程图如图3-3 。图3-33.4查询信息3.4.1按学号查询此函数通过主函数调用,先将文件打开读入数据,然后输入学号,经过循环查找最终确定该学生的位置, 进行输岀;当输入的学号没有时,会重新执行本函数。342按班级查询此函数通过主函数调用, 先将文件打开读入数据, 然后输入班号,经过循环查找最终确定该 班所有学生的位置,进行输出;当

9、输入的班号没有时,会重新执行本函数。主函数主函数图3-53.5修改信息循环,输入最后保存。本程序采用的基本思路是先查找, 找到之后再对信息逐条修改。 查找仍是用for 一个学号,然后逐个进行比对,找到之后再输入你想修改的信息, 将原数据替换, 开始仍然有对学号的判断,最后仍然有返回主菜单的判断。图3-63.6删除信息删除的基本思想就是后面的信息覆盖前面的信息,后面的信息被0代替,从而实现删除功能。具体实现方法就是选择删除功能,利用文件指针和fscanf函数,将文件容读出,显示在屏幕上,让用户决定删除哪一个学生的基本信息,然后输入该学生的学号赋值给一个整型变量,利用for循环在文件中查找与该变量

10、值相同的学生,找到之后将后面一个结构体的全部信息赋值给前面一个结构体,从而将该学生信息“删除”。 同时要实现的是在存放成绩的文件中也要该同学的成绩信息删除,原理相同,就是在找到该同学的信息之 后,保留循环变量的值,再对成绩文件里该同学的进行相同覆盖操作,即可实现同时在B文件删除信息。流程图如下;图3-73.7统计信息首先定义一个变量x=0,读入数据,然后输入你想统计的班号,学院或专业名称,然后通过for循环,进行比较,当数据中的班号,学院或专业名称与你输入的相同时,x+1,循环结束最后将x的值输岀,即为统计的总人数。3.7.1统计班级总人数图3-8排序的基本思想即为“冒泡法”。在编写函数时,要

11、注意如何实现结构体变量之间的交换,由于结构体中 成员较多,数据结构较为复杂,因此需要采用中间变量进行替换。具体的操作在程序开始成绩定义结构体 变量时,需要定义两组成绩结构体变量,一组用于存放数据,另一组即用来作为零时替换变量,用来接受 将需要交换的变量值。首先还是需要进行问基金按容的读岀。再用冒泡法排序,冒泡法就是用第一个值分 别与后面的每一个值进行比较,如果小于后一个值则交换它们的值,再将已变换过的第一个值与后面的每 一个值比较,直到一个 for循环结束,然后再进行相同的过程,直到一个大的 for循环结束。然后将排序 后的文件容显示出来,。流程图如下:开始1 f选择排序1T读出文件内容1按实

12、得学分排序显示结果图 3-10以上就是各模块的详细设计,在主菜单中选择调用各个模块子的函数,从而实现不同功能四、测试结果分析4.1输入信息部分效果图44-M- 舸覺 wut-MFMXM-MMK字生证資理示绘请输入数宇匚选痒菜至靳需悪录入几位学生的信息BDvcxtDebuqzhu 卜曰軸 shuutxe-K-KM总MMU.息主皐息证的 更生息且 靠电 IMS有UT证 青書一“ 蠶垂i. 率班4矍 * 聲.-3-1* 12a45fi789菲卄I s;1991 il: CH50返回主菜单按江重新录入務具他杜意数字一-I * QvcKtDebu!qzhu han sh j-exe*图牛2匸01蛊議上0

13、2牡1(32 李男竹号号就由喻引号:暑4性益着生 4.2输出总信息效果图生日摞穹盧銘性别弼民族收 :i99i 却f井证jjr 回甲 * 1-重和就九扶貸他任囂数宇一一扁输人数芋后选样柔色/:i(wi班号诅姓實1李誓曲:机点专业训觀K-MXWX土耳蔦亠-一 1亠一E零鴉亠关急十M虽窘如下图4-4礬个学令 = 1002班号汨琳虫;兆至祛:机电专业汗J規图4-3文件如图4-4224.3查询信息效果图创 5vcXxt、De_:;_gnu u- bh e-Kb岂订的亠?養E证证 uz-Jhs-数 HJtt.l娄 建更的的黍的 EP密:+的农& J/QY4AMJ1L 眾显蜃BS#r7-flv_MK萨输入諜

14、字后选璋菓单 停输扎堡婪显示的学生的学号 逢再克学生二關软聶魏任惑戸二图4-5图4-6庐論人数字后诜嘩呆阜口已*D-vrVtXDeKjgXzLi heir shu-ejce 有证证*-* 0- 2a4Rb7A9=一冃 E 总主 场-ML人渝 启幵茨序业當 一二更于散-査 4SI 牛革慕上*S叫”上 SIM羞班学苴 箜竇董華按 拶卩叩第售出借軸人愜菱昱示的学生的学吗1QR1匡学工;自如匚誉号詔阳 班号迟 訣够:李性另卜鹑 同族:沃严厮机电专业;机粛生日卅帖 静沁咖H旦JUPvcvLJ?bugzhj Fan sbu.eXie41#X94Jt JL %範貝旦界锂貝貝: :M曩矢St E Jt JUJ

15、t決弭Jti!貝貝貝貝鼻处握鬓E吉洞人.数寸后选悻英单诸値丿化*.要显示的班的班号二聽鶴蠶任意数宇二请输入您要显示的班的班号希的所有学吿的信息却耳 +a I乍字擬;机巨专业机需 生3 ij?9l舟血证:斓溯二警常寺费昜郵肝意戦宇二二图4-74.4修改信息效果图D:vc xtXUcbughiij h-an shu-ie? a TL卒.U诘谕卢门莊停药学生的字E1HM1魁生的匱恰自如IV R itfUl J!1 只 2 屛 r 申和机电专业;赫武聲;输西学生的新信息 d鼠:李性别:男民m生日訂99(身忧证俺殆N110035 李BwEi 20ie戻宁性Fn新蒂启如下己茫W吊齐*可以古询晞讦)牙:丄0

16、03班巳沔產塞:半44别=円 民他=沢毕皖=机申誓业=敦械生日沁班1島符证,=西翊91:2Q20舞款瓠他数宇二笙=图4-8图4-94.5删除效果图U? vt kvObuy11 jer 1 i ly严阳l.uLiejcu-T十日陥 A?t 纟$L中1 二覽退T 学班歪 桑HL谊:信息MM 盲息*谙辎人数字后燈掙荚单请報I人您鉴删除的营土罰号 A 002张性別=玄氏沾冷Ei3 :lV9i身份远=L他M诔节主的庾伯旦如匚兹宁土的信息已经删廨(已经保存.可以齊询盘 沪),学号却翻珂空 摊名:HULL4沖|:NULL 民燕:NULL学院;MILL专卅=KILL+ -| 0 気fiHiF=0P*1參聶魏任

17、意敵宇一一图 4-114.6统计信息效果图退谙输人数字后选择菜单9声辐人数字后诜捋芸单極嚅统计学降趙人數还是专业対vA歡 I哥靂萼亘余任意皴宁返回土素单按u董嶄录入孫直也枉蛮数字一一虑审降的關人哉九1-渥回主军单揑巫新录芙按箕他任尊藪宇一- 翩翱銃计学陨总人歡还是专业昌/数丰疆莹余柱囂数字 醐严称 養品耒7貸祗任意數斗 |半;NULL专业;HIIL4以適询鉴证)EtilJsMILL民族汕UG生口汁 身份证:囂髓班号毒紙艙李生日篇吗施翳觀總 排序后的总信息I上!SSDiWCXxtXCebiLjgXzhiJ han E-hu.eice图 4-120 DAvcXftOehugXzKij han Sh

18、u.exj& .i u| stu lisi ” 记事本1=1 翼文粗鬥豆石00 0NULLNULLNULL NULLNULL0 0*1003 5李男汉机电机械1991 2020二4卜图 4-14五、心得体会在本次实习中,我又重新熟悉了一遍c,感觉很多东西都已经遗忘了,所以在编程的时候需要不断的翻书查资料,用了很多时间,不过编程还算顺利,遇到的问题在看课本之后都解决了。程序的缺点还有很多, 比如没有实现对文本的添加功能,不能在已有的数据上添加新的数据,在程序的输入和输出的地方也有很 多的不足,输出的效果也不是很好。我会在以后进一步熟悉 C,改掉这些缺点和错误。六、参考文献1 谭浩强C程序设计 第

19、三版 清华大学20052 冬梅等C语言课程设计与实习指导第一版 中国铁道2008七、附录主函数主函数通过菜单,用switch函数调用子函数,来实现各个模块的功能。void main()int a;void di1();void di2();void di3();void di4();void di5();void di6(); /*子函数的申明*/void di7();void di8();void di9();printf(学生证管理系统 nn);printf(菜单 n);printf(*printf(* 1.录入学生的学生证信息*n);printf(* 2.显示所有学生的学生证信息*n);

20、printf(* 3.按学号查找某学生的学生证信息*n);printf(* 4.按班级查找某班所有学生的学生证信息 *n);printf(* 5.修改某学生的学生证信息*n);printf(* 6.删除某学生的学生证信息*n);printf(* 7.统计某班的总人数*n);printf(* 8.统计某学院或某专业的总人数*n);printf(* 9.按照学号从小到大排序并输出排序后的总信息 *printf(*退出请按其余的任意键*n);printf(nn);printf(*);printf(nnn);printf( 请输入数字后选择菜单 n); scanf(%d,&a);switch(a)ca

21、se 1 : di1();break;case 2 : di2();break;case 3 : di3();break;/* 选择菜单 */case 4 : di4();break;case 5 : di5();break;case 6 : di6();break;case 7 : di7();break;case 8 : di8();break;case 9 : di9();break;default: printf( 按任意键确认 n);/*打开一个文件并写入数据 */保存模块 void save() FILE *fp;int i;if(fp=fopen(stu_list.txt,w)=

22、NULL)printf(cannot open filen);return;for(i=0;iN;i+)fprintf(fp,%-5d%-5d%-10s%-5s%-5s%-10s%-10s%-5d%-5dnn,stui.xuehao,stui.banhao,st ,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,stui.shengri,stui.shenfe nzheng);fclose(fp);录入函数void di1() /* 录入数据 */int i;int t;FILE *fp3;fp3=fopen(Num.txt,w);pr

23、intf( 你需要录入几位学生的信息 n);scanf(%d,&N);putw(N,fp3);printf( 请依次输入 n);for(i=0;iN;i+)printf(”第4个学生 n,i+1);printf( 学号: );scanf(%d,&stui.xuehao);printf( 班号: );scanf(%d,&stui.banhao);printf( :);scanf(%s,);printf( 性别: );scanf(%s,stui.sex);printf( 民族: );scanf(%s,stui.minzu);printf( 学院: );scanf(%s,stui.

24、xueyuan);printf( 专业: );scanf(%s,stui.zhuanye);printf( 生日: );scanf(%d,&stui.shengri);printf( 身份证: ); scanf(%d,&stui.shenfenzheng);save();fclose(fp3);printf( 录入成功 n);printf(-返回主菜单按 :1 n);printf(-重新录入按其他任意数字 n);scanf(%d,&t);if(t=1) main();else di1();显示所有学生的信息void di2() /* 显示所有学生的数据 */int i;int t;FILE *

25、fp;FILE *fp3; fp3=fopen(Num.txt,r);fp=fopen(stu_list.txt,r);N=getw(fp3);printf( 所有学生信息如下 n );for(i=0;iN;i+) fscanf(fp,%d%d%s%s%s%s%s%d%d,&stui.xuehao,&stui.banhao,,&stui.sex,&stui.minzu,&stui.xueyuan,&stui.zhuanye,&stui.shengri,&stui.shenfenzheng);printf(”第4个学生 n,i+1);printf(”学号:-5d 班号:-5d:

26、%-10s 性别:-5s 民族:-5sn 学院:%-10s 专业:%-10s 生日:-5d身份证:-5dnn,stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan, stui.zhuanye,stui.shengri,stui.shenfenzheng);fclose(fp);fclose(fp3);printf(- 返回主菜单按 :1n);printf(- 重新录入按其他任意数字 n);scanf(%d,&t);if(t=1) main(); else di2();按学号查找void di3() /* 按学号查找

27、学生信息 */int i;int b;int t;int g=0;FILE *fp;FILE *fp3; fp3=fopen(Num.txt,r);fp=fopen(stu_list.txt,r);N=getw(fp3);printf( 请输入您要显示的学生的学号 n );scanf(%d,&b);for(i=0;iN;i+)fscanf(fp,%d%d%s%s%s%s%s%d%d,&stui.xuehao,&stui.banhao,,stui.sex,stu i.minzu,stui.xueyuan,stui.zhuanye,&stui.shengri,&stui.shen

28、fenzheng);if(stui.xuehao=b)g=g+1;if(g!=0)printf( 该学生信息如下 n );for(i=0;iN;i+) if(stui.xuehao=b)printf( 学号 :%-5d 班号 :%-5d:%-10s 性别 :%-5s 民族 :%-5sn 学院 :%-10s 专业 :%-10s 生 日:-5d身份证:-5dnn,stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan, stui.zhuanye,stui.shengri,stui.shenfenzheng);elsepr

29、intf( 没有该学生 n);fclose(fp);fclose(fp3);printf(n);printf(-返回主菜单按 :1n);printf(-重新录入按其他任意数字 n);scanf(%d,&t);if(t=1) main();else di3();按班号查找void di4() /* 显示某班所有学生的数据 */int i;int c;int t;int g=0;FILE *fp;FILE *fp3; fp3=fopen(Num.txt,r);fp=fopen(stu_list.txt,r);N=getw(fp3);printf( 请输入您要显示的班的班号 n );scanf(%d

30、,&c);for(i=0;iN;i+)fscanf(fp,%d%d%s%s%s%s%s%d%d,&stui.xuehao,&stui.banhao,,stui.sex,stu i.minzu,stui.xueyuan,stui.zhuanye,&stui.shengri,&stui.shenfenzheng);if(stui.banhao=c)g=g+1;if(g!=0)printf( 该班的所有学生的信息如下 n );for(i=0;iN;i+)if(stui.banhao=c)printf( 学号 :%-5d 班号 :%-5d:%-10s 性别 :%-5s 民族 :%-5

31、sn 学院 :%-10s 专业 :%-10s 生 日:-5d身份证:-5dnn,stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan, stui.zhuanye,stui.shengri,stui.shenfenzheng);elseprintf( 没有该班 n);fclose(fp);fclose(fp3);printf(n);printf(-返回主菜单按 :1n);printf(-重新录入按其他任意数字 n);scanf(%d,&t);if(t=1) main();else di4();修改void di5()

32、 /* 按学号修改学生的信息 */int i;int d;int m;int n;int t;int g=0;char p20;char q20;char r20;char s20;char t120;int u;int v;FILE *fp;FILE *fp3; fp3=fopen(Num.txt,r);fp=fopen(stu_list.txt,r);N=getw(fp3);printf( 请输入您要修改的学生的学号 n );scanf(%d,&d);for(i=0;iN;i+)fscanf(fp,%d%d%s%s%s%s%s%d%d,&stui.xuehao,&stui.banhao,s

33、,stui.sex,stu i.minzu,stui.xueyuan,stui.zhuanye,&stui.shengri,&stui.shenfenzheng);if(stui.xuehao=d)g=g+1;if(g!=0)for(i=0;iN;i+)if(stui.xuehao=d)printf( 该学生的原信息如下 n );printf(学号 :%-5d 班号 :%-5d:%-10s 性别 :%-5s 民族 :%-5sn 学院 :%-10s 专业 :%-10s 生日:-5d身份 证:-5dnn,stui.xuehao,stui.banhao,,stui.

34、sex,stui.minzu,stui.xueyuan, stui.zhuanye,stui.shengri,stui.shenfenzheng);printf(请依次输入该学生的新信息 n );printf( 学号: );scanf(%d,&m);printf( 班号: );scanf(%d,&n);printf(:);scanf(%s,p);printf(性别: );scanf(%s,q);printf( 民族: );scanf(%s,r);printf( 学院: );scanf(%s,s);printf(专业: );scanf(%s,t1);printf(生日: );scanf(%d,&

35、u);printf(身份证: );scanf(%d,&v);stui.xuehao=m;stui.banhao=n;strcpy(,p);strcpy(stui.sex,q);strcpy(stui.minzu,r);strcpy(stui.xueyuan,s);strcpy(stui.zhuanye,t1);stui.shengri=u;stui.shenfenzheng=v;printf(n);printf(该学生的新信息如下(已经保存,可以查询验证) n );printf(”学号:%-5d 班号:-5d:%-10s 性别:%-5s 民族:%-5sn 学院:%-10s 专

36、业:%-10s 生日:%-5d身份证:-5dnn,stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan, stui.zhuanye,stui.shengri,stui.shenfenzheng);save();elseprintf( 没有该学生 n);fclose(fp);fclose(fp3);printf(n);printf(-返回主菜单按 :1 n);printf(-重新录入按其他任意数字 n);scanf(%d,&t);if(t=1) main();else di5();删除void di6() /* 按学

37、号删除学生的信息 */ int i;int e;int t;int m=0;int n=0;char q20=NULL;char p20=NULL;int g=0;char r20=NULL;char s20=NULL;char t120=NULL;int u=0;int v=0;FILE *fp;FILE *fp3;fp3=fopen(Num.txt,r);fp=fopen(stu_list.txt,r);N=getw(fp3);printf( 请输入您要删除的学生的学号 n );scanf(%d,&e);for(i=0;iN;i+)fscanf(fp,%d%d%s%s%s%s%s%d%d,

38、&stui.xuehao,&stui.banhao,,stui.sex,stu i.minzu,stui.xueyuan,stui.zhuanye,&stui.shengri,&stui.shenfenzheng);if(stui.xuehao=e)g=g+1;if(g!=0) for(i=0;iN;i+)if(stui.xuehao=e)printf( 该学生的原信息如下 n );printf( 学号 :%-5d 班号 :%-5d:%-10s 性别 :%-5s 民族 :%-5sn 学院 :%-10s 专业 :%-10s 生 日:-5d身份证:-5dnn,stui.xueha

39、o,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan, stui.zhuanye,stui.shengri,stui.shenfenzheng);stui.xuehao=m;stui.banhao=n;strcpy(,p);strcpy(stui.sex,q);strcpy(stui.minzu,r);strcpy(stui.xueyuan,s);strcpy(stui.zhuanye,t1); stui.shengri=u;stui.shenfenzheng=v;printf(该学生的信息已经删除(已经保存,可以查

40、询验证) n );printf(”学号:%-5d 班号:-5d:%-10s 性别:%-5s 民族:%-5sn 学院:%-10s 专业:%-10s 生日 :%-5d 身份证:-5dnn,stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan, stui.zhuanye,stui.shengri,stui.shenfenzheng);save();elseprintf( 没有该学生 n);fclose(fp);fclose(fp3);printf(n);printf(-返回主菜单按 :1n);printf(-重新录入按其

41、他任意数字 n);scanf(%d,&t);if(t=1) main(); else di6();统计某班学生总人数void di7()/*统计某班的学生总数 */int i;int f;int t;int g=0;FILE *fp;FILE *fp3; fp3=fopen(Num.txt,r);fp=fopen(stu_list.txt,r);N=getw(fp3); for(i=0;iN;i+)fscanf(fp,%d%d%s%s%s%s%s%d%d,&stui.xuehao,&stui.banhao,,stui.sex,stu i.minzu,stui.xueyuan,

42、stui.zhuanye,&stui.shengri,&stui.shenfenzheng);printf( 请输入班号 n );scanf(%d,&f);for(i=0;i3;i+) if(stui.banhao=f)g=g+1;fclose(fp);fclose(fp3);if(g=0)printf( 该班的总人数为: 0 或没有该班 n);elseprintf( 该班的总人数为: %dn,g);printf(n);printf(-返回主菜单按 :1 n);printf(-重新录入按其他任意数字 n);scanf(%d,&t);if(t=1) main(); else di7();统计学院

43、或专业的总人数void di8() /* 统计学院或专业的总人数 */int i;char x20;int y;int t;int g=0;FILE *fp;FILE *fp3; fp3=fopen(Num.txt,r);fp=fopen(stu_list.txt,r);N=getw(fp3);for(i=0;iN;i+)fscanf(fp,%d%d%s%s%s%s%s%d%d,&stui.xuehao,&stui.banhao,,stui.sex,stu i.minzu,stui.xueyuan,stui.zhuanye,&stui.shengri,&stui.shenfe

44、nzheng);printf( 请问您要统计学院总人数还是专业总人数 n );printf( 学院按 1n );printf( 专业按其余任意数字 n ); scanf(%d,&y);if(y=1)printf( 请输入学院名称 n );scanf(%s,&x);for(i=0;iN;i+) if(strcmp(stui.xueyuan,x)=0) g=g+1;if(g=0)printf( 该学院的总人数为: 0 或没有该学院 n);elseprintf( 该学院的总人数为: %dn,g);elseprintf( 请输入专业名称 n );scanf(%s,&x); for(i=0;iN;i+)

45、if(strcmp(stui.zhuanye,x)=0)g=g+1;if(g=0)printf( 该专业的总人数为: 0 或没有该专业 );elseprintf( 该专业的总人数为: %d,g);fclose(fp);fclose(fp3);printf(n);printf(-返回主菜单按 :1 n);printf(-重新录入按其他任意数字 n);scanf(%d,&t);if(t=1) main();else di8();3.11 排序void di9() /* 按学号的大小对所有学生的信息进行排序 */ int i;int h;int t;int s;char k20;FILE *fp;FIL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论