《c语言实验学生学籍管理 .docx》由会员分享,可在线阅读,更多相关《c语言实验学生学籍管理 .docx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结一、试验要求:同学学籍治理系统可编辑资料 - - - 欢迎下载精品名师归纳总结一个班级有如干名同学(不超过10 名),共有三门课程,分别是语文、数学、英语,要求编写一个成果的治理系统,每个同学要求有学号、姓名、性 别、三门课的成果以及平均成果,要实现从键盘上输入学号(必需为数字)、 姓名、性别、三门课程的成果,并求每一位同学的平均成果(即每一行的平均 值)、每一位同学的最高分(每一行的最大值),求每一门课程的平均分(即 每一列的平均值)、每一门课的最高分(即每一列的最大值),并输出全部结 果。依据同学的平均成果进行排序,对语文、数学、英语成果进行排序,并输 出排序结果,排序必需
2、使用冒泡排序法。并且具有如下的菜单:同学学籍治理系统*MENU*1、Enter new data 2、Browse all3、Search by num 4、Order by average5、Exit*用户可以依据菜单来选择操作,菜单的含义如下:1、Enter new data输入新数据2、Browse al浏览全部数据3、Search by num依据学号查询同学信息4、Order by average依据平均成果排序5、Exit 退出系统试验步骤:二、试验目的1、明白和熟识 Visual C+软件编程开发环境2、娴熟把握结构化程序设计的步骤和模块化设计方法3、娴熟把握 C 语言数据类型,
3、熟记字符型数据和整形数据的定义和使用4、娴熟把握用 while 语句、dowhile 语句和 for 语句实现循环结构程序设计的方法5、把握一维数组、二维数组的定义、赋值和输入输出的方法6、把握与数组有关的算法(特别是排序算法,娴熟把握冒泡排序法)7、熟识函数的定义、声明方法及全局变量和局部变量的概念与用法,把握函数的调用方法8、把握结构体类型变量的定义和使用及结构体类型数组的概念和应用三、试验步骤1、分析设计题目:依据题目要求,可以使用结构体数组来储备同学的信息,包括学号、姓名、性别、各科成果、平均成果五个成员,分别使用字符数组、整型数组、浮点型变量来表示。在主函数之外,分别编写菜单函数me
4、nu、输入函数 enter、浏览函数 browse、查找函数 search、排序函数 order等函数,通过主函数调用 menu来实现。2、试验流程图:可编辑资料 - - - 欢迎下载精品名师归纳总结3、试验模块:输入模块、浏览模块、查找模块、排序模块、退出系统4、程序的调试与测试:所谓程序调试是指对程序的查错与排错。在编写完一个源程序之后,不要马上进行编译,而应对程序进行全面的人工检查一遍,检查无误后,可以开头进行程序调试。由编译系统进行检查、发觉错误,依据编译系统提示的错误类型和警告及显现的位置,我们可以定位到错误的点进行修改, 然后再编译,如此反复进行,直至不再显现错误位置,最终才进行程
5、序的连接于运行。调试完以后,下一步就是对程序进行测试,运行程序,向程序中输入数据,依据输出结果是否正确(是否符合自己的想法)来判定程序是否正确,假如不正确或不符合自己的目的,就需要对程序进行修改。然后再调试,再测试,直至结果无误或符合要求后,测试才算终止,此 时,程序才算是中意题目要求的正确程序。5、运行结果:(1) )运行结果界面如下:(2) )选择 1 号菜单,输入 10 名同学信息,运行结果如下:(3) )选择 2 号菜单,浏览全部信息,运行结果如下:(4) )选择 3 号菜单,按学号查找同学信息,例如查找学号为03 的同德信息,输入格式如下 :(5) )查询学号为 03 的同学的信息运
6、行结果如下:(6) )选择 4 号菜单,进入同学成果排序功能菜单,运行结果如下:(7) )选择 1 号功能菜单,按每位同学的平均成果从小到大排序,运行结果如下:(8) )选择 2 号功能菜单,按语文成果从小到大排序,运行结果如下:(9) )选择 3 号功能菜单,按数学成果从小到大排序,运行结果如下:(10) )选择 4 号功能菜单,按英语成果从小到大排序,运行结果如下:(11) )选择 5 号功能菜单,返回主菜单,运行结果如下:(12) )选择 5 号菜单,退出系统,按任意键终止程序,运行结果如下:四、试验体会通过完成这个综合的设计实例,从中我熟识了Visual C+开发环境,娴熟把握了在 V
7、isual C+软件环境下编写和调试程序。通过对程序的调试,我从学可编辑资料 - - - 欢迎下载精品名师归纳总结到了许多学问,依据编译时系统供应的错误提示,我能很快的找到错误并排除这些错误,是程序能正确运行。通过这个环节的不断练习,我积存了丰富的体会,为以后编程和调试程序奠定了基础。通过运行程序,对程序不断改动,仔细观看和分析所显现的情形,锤炼了我对立摸索的才能,而且增强了我对C 语言应用这门课程的爱好。五、源程序#include #include #include #define N 100#define M 3typedef struct studentchar num11。char n
8、ame20。char sex3。int scoreM 。float ave。int Max_course。STU 。STU stuN,stu_ChineseN,stu_MathN,stu_EnglishN 。int MaxM 。 float ave_Chinese。float ave_Math。float ave_English。int n。void no_inputint i,int nint j,k,w1 。dow1=0。printfNO.: 。scanf%s,&stui.num 。forj=0 。stui.numj.=0 。j+ ifstui.numj9可编辑资料 - - - 欢迎下载精
9、品名师归纳总结reinput.n 。putsInput error. Onlybe made up of0-9.Pleasew1=1。break。可编辑资料 - - - 欢迎下载精品名师归纳总结ifw1.=1fork=0。kn。k+可编辑资料 - - - 欢迎下载精品名师归纳总结ifk.=i&strcmpstuk.num,stui.num=0可编辑资料 - - - 欢迎下载精品名师归纳总结reinput.n 。whilew1=1 。putsThisrecordisexist.Pleasew1=1。break。可编辑资料 - - - 欢迎下载精品名师归纳总结void inputint iint
10、j,sum。no_inputi,i 。printfname: 。scanf%s,&stui.name。printfsex: 。scanf%s,&stui.sex 。forj=0 。jM 。j+printfscore %d:,j+1 。scanf%d,&stui.scorej 。forsum=0,j=0。jM 。j+ sum+=stui.scorej 。stui.ave=sum*1.0/M 。void menu。void enter。int i,j,f 。systemCLS。printfHow many students0-%d.:,N。scanf%d,&n 。printfnEnter data
11、 nownn 。fori=0 。in 。i+printfnInput %dth student record.n,i+1 。inputi 。fori=0 。in 。i+stui.Max_course=stui.score0 。forj=1 。jM 。j+可编辑资料 - - - 欢迎下载精品名师归纳总结ifstui.Max_coursestui.scorej stui.Max_course=stui.scorej 。fori=0 。in 。i+ stu_ChineseN,stu_MathN,stu_EnglishN 中*/stu_Chinesei=stui。stu_Mathi=stui 。stu
12、_Englishi=stui 。printfplease enter 0n。doscanf%d,&f 。iff=0menu。break。else printfrepeat :。whilef.=0 。void printf_oneint iint j。printf%3s :%3s,stui.num,stui.name 。forj=0 。jM 。j+printf%10d,stui.scorej 。printf%10.2f,stui.ave 。printf%9dn,stui.Max_course 。void browseint i,j,f,k=0 。systemCLS。fori=0 。in 。i+可
13、编辑资料 - - - 欢迎下载精品名师归纳总结k=0。k=k+stui.score0 。ave_Chinese=k*1.0/n。可编辑资料 - - - 欢迎下载精品名师归纳总结fori=0 。in 。i+可编辑资料 - - - 欢迎下载精品名师归纳总结k=0。k=k+stui.score1 。ave_Math=k*1.0/n。可编辑资料 - - - 欢迎下载精品名师归纳总结fori=0 。in 。i+k=k+stui.score2 。ave_English=k*1.0/n。Max0=stu0.score0 。fori=1 。in 。i+ifMax0stui.score0Max0=stui.sc
14、ore0 。Max1=stu0.score1 。fori=1 。in 。i+ifMax1stui.score1Max1=stui.score1 。Max2=stu0.score2 。fori=1 。in 。i+ifMax2stui.score2Max2=stui.score2 。putsn-。printfnNO:nameChineseMathEnglishaverage Max_coursen。fori=0 。in 。i+ifi.=0&i%10=0printfnnPass any key to continue.。getchar。putsnn。printf_onei 。putsn-。print
15、f ave_Chinese ave_Math ave_Englishn。printf%10.2f%10.2f%10.2fn,ave_Chinese,ave_Math,ave_English。putsn-。可编辑资料 - - - 欢迎下载精品名师归纳总结printf Max_ChineseMax_MathMax_Englishn 。printf%10d%10d%10dn,Max0,Max1,Max2。putsn-。printfntThere are %d record.n,n。putsn-。printf “please enter0n。 doscanf%d,&f 。iff=0menu。break
16、。else printfrepeatenter:。whilef.=0 。void searchint i,k,f 。 struct student s。k=-1。systemCLS。printfnnEnter name that you wang to search. num:。scanf%s,&s.num。printfnNO :nameChineseMathEnglishaverage Max_coursen。for i=0 。in。i+ifstrcmps.num,stui.num=0k=i 。printf_onek。break。ifk=-1printfnnNO exist. 。printf
17、please enter0n。doscanf%d,&f 。iff=0可编辑资料 - - - 欢迎下载精品名师归纳总结menu。break。else printfrepeat enter:。whilef.=0 。void order_ave。void order_Chinese。void order_Math。void order_English。void orderint i,j,f,m,w1 。struct student s。systemCLS。dosystemCLS。putsttt 学 生 成 绩 排 序nn。可编辑资料 - - - 欢迎下载精品名师归纳总结n。putst*ORDER*p
18、utsttt1.对每一位同学的平均成果排序 n。putsttt2.对语文课成果排序 n。putsttt3.对数学课成果排序 n。putsttt4.对英语课成果排序 n。putsttt5.返回主菜单 n。putst*n printfChoice your number1-5: bb 。scanf%d,&m 。ifm5可编辑资料 - - - 欢迎下载精品名师归纳总结again:。w1=1。printfyourchoiceisnotbetween 1and 5,Please inputgetchar。可编辑资料 - - - 欢迎下载精品名师归纳总结else w1=0。whilew1=1 。switc
19、hm/* 选择功能 */case 1:order_ave。 break。可编辑资料 - - - 欢迎下载精品名师归纳总结case 2:order_Chinese。 break。case 3:order_Math。break。case 4:order_English。break。case 5:menu。 。printfThe ordered data is:n。browse。void order_aveint i,j,f 。struct student s。systemCLS。fori=0 。in 。i+forj=i 。jstuj.aves=stui。stui=stuj 。stuj=s。puts
20、n-。printf 每位同学的平均成果从小到大的排序结果n。printf NO : nameaverage n。fori=0 。in 。i+printf%3s :%3s%11fn,stui.num,stui.name,stui.ave 。putsn-。printf 返回上一级请按数字 0n 。doscanf%d,&f 。iff=0order。break。else printf输入有误,请重新输入 : 。whilef.=0 。void order_Chinese可编辑资料 - - - 欢迎下载精品名师归纳总结int i,j,f 。struct student s。systemCLS。fori=0
21、 。in 。i+forj=i 。jstu_Chinesej.score0s=stu_Chinesei。stu_Chinesei=stu_Chinesej。stu_Chinesej=s。putsn-。printf 语文成果从小到大的排序结果 n。printf NO : nameChinese n。 fori=0 。in 。i+printf%3s :%5s%6dn,stu_Chinesei.num,stu_Chinesei.name,stu_Chin esei.score0。putsn-。printf 返回上一级请按数字 0n 。doscanf%d,&f 。iff=0order。break。els
22、e printf输入有误,请重新输入 : 。whilef.=0 。void order_Mathint i,j,f 。struct student s。systemCLS。fori=0 。in 。i+forj=i 。jstu_Mathj.score1s=stu_Mathi。stu_Mathi=stu_Mathj 。stu_Mathj=s。putsn-。printf 数学成果从小到大的排序结果 n。printf NO : nameMath n 。fori=0 。in 。i+printf%3s :%5s%6dn,stu_Mathi.num,stu_Mathi.name,stu_Mathi.sc o
23、re1 。putsn-。printf 返回上一级请按数字 0n 。doscanf%d,&f 。iff=0order。break。else printf输入有误,请重新输入 : 。whilef.=0 。void order_English/* 对英语成果从小到大进行冒泡排序法 */int i,j,f 。struct student s。systemCLS。fori=0 。in。i+forj=i 。jstu_Englishj.score2s=stu_Englishi。stu_Englishi=stu_Englishj 。stu_Englishj=s。可编辑资料 - - - 欢迎下载精品名师归纳总结
24、putsn-。printf 英语成果从小到大的排序结果 n。printf NO : nameEnglish n。fori=0 。in 。i+printf%3s :%5s%6dn,stu_Englishi.num,stu_Englishi.name,stu_Englis hi.score2 。putsn-。printf 返回上一级请按数字 0n 。doscanf%d,&f 。iff=0order。break。else printf输入有误,请重新输入 : 。whilef.=0 。void menuint n,w1 。dosystemCLS。putsttt 学 生 学 籍 管 理 系 统nn。可编
25、辑资料 - - - 欢迎下载精品名师归纳总结n 。putsttt1.Enter new datan。putsttt2.Browse alln 。putsttt3.Search by numn。putsttt4.Order by averagen。putsttt5.Exitn 。putst*n printfChoice your number1-5: bb 。scanf%d,&n 。ifn5可编辑资料 - - - 欢迎下载精品名师归纳总结again:。w1=1。printfyourchoiceisnotbetween 1and 5,Please inputgetchar。可编辑资料 - - - 欢迎下载精品名师归纳总结else w1=0。whilew1=1 。switchncase 1:enter。break。可编辑资料 - - - 欢迎下载精品名师归纳总结case 2:browse。 case 3:search。break。break。可编辑资料 - - - 欢迎下载精品名师归纳总结case 4:order。 case 5:exit0。break。可编辑资料 - - - 欢迎下载精品名师归纳总结void mainmenu。可编辑资料 - - - 欢迎下载