欢迎来到天天文库
浏览记录
ID:41762431
大小:151.47 KB
页数:18页
时间:2019-09-01
《C实训1报告模版(1)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
《C语言程序设计实训1》报告设学专班姓学指提计题目:基于数组的学生信息管理系统院名称:信息科学技术学院业:软件工程级:4班名:顾若加弓2220153457号教师:于纯妍交日期:2016.7.3 一、实验内容:编写并调试程序,实现学校各专业班级学生信息的管理。定义学生信息的链表结点类型,包括:学号、姓名、专业、班级、3门成绩。N定义为符号常量(学生数)。全局类型的定义如下:#defineN10structStudent)charnum[15];//学号charname[15J;//姓名charmajor]10];//专业(computer,software,network)intclassNo;//班级(1-2)intscore[3];//3门课的成绩(0・2)structStudent*next;//指向下一结点的指针};typedefstructStudentSTU;二、实验要求:(1)main函数:以菜单形式将各项功能提供给用八,根据用八的选择,调用相应的函数。(2)定义函数CreateList:按学号由小到大,建立有序的链表。逆序输入N个学生信息(调用N次input),学号大的先输入,建立带头结点的单链表。(3)定义函数Oulpm:以指向某个学牛结点的指针为参数,将学生信息表格化输出。(4)定义函数Save:将某个学牛信息存入文件。(5)定义函数Fetch:从文件中读取各个学生的姓名和专业信息。(6)定义函数Scarch_num:查找指定学号的学生,返回指向该学生结点的指针。⑺定义函数InscrtList:在函数中输入一个学生的信息,将该学生信息插入到链表中的相应位置,并保持此链表按学号的冇序性。⑻定义函数Dclctc_num:从链表中删除指定学号的学生。(9)定义函数Search_major_subject_score:査找某个专业的、某门课程的成绩小于某个分数的学生,返回指向该学生结点的指针。(10)定义函数Delete_class_subject_score:从链表中删除某个班级的、某门课程的成绩小于某个分数的学生。除main函数、CreateList和Output函数外,其它函数中不允许有键盘输入和屏幕输出的操作。函数Delete_class_subject_score的算法流程图四、程序清单(关键语句和变量加注释)#include#include #include//类型定义structStudent{charnum]15];charname[15J;charmajor[10J;intclassNo;intscore[3J;};typedefstructStudentSTU;//函数声明voidinput(STU*p);voidsave(STU*p,intn);voidoutput(STU*p);voidfetch();voidMax();voidsort_buble();voidsort_insert();voidsort_select();voidsearch();//-……主函数・■■…#defineN4intmain()intj,id;STUstudentLNJ;while(l){printf(M请输入功能编号,运行系统相应功能 ”); printf(*fl-从键盘输入一个学生信息; 2■将某个学生信息格式化输岀; 3•将某个学生信息存入文件 4■从文件屮随机读取某个学牛的信息; 5■求所有学生某门课程的最高分和分数最高的学生的姓名; ”);printf(*f6-对某个专业的学牛,按总平均成绩由低到高进行简单选择排序; 7■对某个班级的学牛,按总平均成绩由高到低进行起泡排序; ”);printf(“8-对某个班级的学牛,按某门课程成绩由低到高进行直接插入排序; 9■实现班级和成绩的综合查找;5其他■退出。 “);scanf(“%d”,&id);getchar();switch(id){case1:{for(j=0;j9)break; //输入函数voidinput(STU*p){inti;printfC学号(回车结束):“);scanf("%sn,&((*p).num));getchar();printfC姓名(回车结束):“);gets(p->name);printff专业(回车结束):”);gets(p・>major);printff班级(回车结束):");scanf("%d",&((*p).classNo));printf(“三门成绩(每门回车结束):”);for(i=0;i<=2;i++){scanf(M%d,&((*p).score[i]));}getchar();)//写文件函数voidsave(STU*p,intn){FILE*fp;inti;charfilenamel20J;printfC输入要保存的文件名: “);gets(filename);//获取文件名if((fp=fopen(filename,"w"))==NULL) printfC'openerror! ");exit(O);for(i=0;inum,printf(H%-10s%-10s%・1Os%d%d%d%d “,p->name,p->major,p->classNo,p->score[0],p->score[l],p->scoreL2J);)//随机读取voidfetch(){FILE*fp;STUstudent;inti;charfilename[20J;printfC输入要读取的文件名: “);gets(filename);if((fp=fopen(filename,"r',))==NULL){printf("openerror! ");exit(O);}printfC请输入要查找某个的学生号码(0・3):“);scanf(“%d”,&i);fseek(fp,i*sizeof(STU),0);if((fread(&student,sizeof(STU),1,fp))!=1)exit(O);printfC学号姓名专业班级成绩0成绩1成绩2 “); output(&student);fclose(fp);}//最大值voidMax(){inti,j;FILE*fp;STUstudent[N],*max;charfilename[20J;printfC输入要读取的文件夹名: u);gets(filename);if((fp=fopen(filename,"r,'))==NULL){printfC'readerror! u);exit(O);}for(i=0;i2|ljv0)printf(”您查找的内容不存在!”);max=&studcnt[0];for(i=0;iscore[jjscore[j],max->name);//!!fclose(fp);}//对某个专业的学生,按总平均成绩由低到高进行简单选择排序函数voidsort_select() chara[10];doubleave[NJ;FILE*fp;STUstudent[N],t;charfilename[20J;printfC输入要读取的文件夹名: u);gets(filename);if((fp=fopen(filename,"rH))==NULL){printf(uopenenor! ");exit(O);}for(i=0;i=O;j-){if(stu_class_subject|j].score[cj=j+l;k-){stu_class_subject[kj=stu_class_subject[k-1];}stu_class_subject|j+lJ=stulOJ;printff排序后的信息为: “);成绩2 u);prirnff学号姓名专业班级成绩0成绩1for(i=0;iInsertList>Delete,class_subject_score的调用及执行结果的截图)•C:UsersDELLDesktopll4fci^binDebug4^^exe厶S"Hrs充头排序,的面起行学进进高息纂绩成信和宓成程.>的八药均课••出生亠皐平CK息^0<念总蕃_亠皂Z卜內安安菱n行生式入某程…综辜格存取课生生菁1心息读Q盂$千绩号一^5^的的規編八生生随生业5^霜盂歪書班班级乩^J?2-3-———7--B-—苴8Ap<<彳a.JAn卡件束丄卡软4结车1111nHH>>>>叵Un结结结结每回回回回射X号爺瞥回回回回••22>>>-R-R-R一LKJF一H_士口士口士B幺"幺"幺"、回回回KI<<<2"号至J¥C:UsersDELLDesktopHfM息binDebug(M息exe|—JZTnTjT»CTrj~rftu:.j-序排••择序插各选姓鑫直SI间加行学迸进I®的亠06^5Bis息;的八将均课;生亠皐平骡:吗舌取总总善_肓文个的口—As:,综U学格需课生生生的T心息盂盂子绩「-的的黒••岀总岀入求实他输-LfL_3~缶^-6-7-JP」苴八2请699889高的学生的姓名;2能息八畐绩成功信和噩程应;的八将均课相;岀生亠皐舌络统息黑舍取总总某景走文个的^行生式入養…运学格生生生2息盂子琪号一的的的琪编入生生畢业翁:件有A11SKM!青 回最高的学生的姓名;疊卿亍瞪艇排序;由徒封高逹行直球插入排序;•C:UsersDELLDesktopllV言亘binDebug。言导exe学迸进高的甘自i生高平平黒•■出相•■岀擒岀程能功应综;數日田濒息分绩畫信和成成程的八药均课.,.,择序插名选姓暑直的简>仃生〔toy0冋由信和成成程的易均课;生高平平駅息書販总总蕃-蔓文个的:口生式入某「「学格存取课生生生的亍息息读。盂盂于绩-的的餐入生生随生业级级和盘不件有^键某菱鑒某某哪求实他统息舌W忌总蕃一系更文个的:^0^口行生式入某程‘,,综运学格存取课生生生的,个息息读聿绩号一的的黒编入生生塁业级级和:入键某某某玉••'•'求"^7^实他1-^-3-4fe-6-eA」苴〔3输啊请」2-3-4-5-6--」些•,择序插名选姓屠直的简起行¥进进高的甘亠最低咼由31和成成程鳥均课;高平平以最总总善一的®口屋亠示Wr,,,纟一课生生生的QSS某的的黒生业级级和書班專io璽某某呼求7^7^实他|5~—一|8--I9-苴八4;序辰排排;入•,择序插名选姓曇直的简起行学进进高的甘亠®最低咼由;n息八绪需信和成成程的八药均课;生高F養集息®#2{千最总总蕃一生養系至文个的口学行生式入某程‘‘*的运宀于格存取课生生生的<^pT心息读0£>季绩某姓玉号一n找玉编入生生墨业级级和查要入输号2绩成?9F05(0-)2级2斤■,9目应功功盘-件有入键某費鑒某某呼求^^实他其i*•■丿•,择序插名选矍姓黑直的简起行学进进高oro至至但自穴集绩成信和成戍程的八药均课;生高平平黒詈販总总蕃一个的口某程…综取课生生生的读OWW绩鑿的的黒随生业级级和史着班專氏文所某某某呼从求Fs-需一直・TiUU争序插囂;n琪能琪功2为应;••岀2)姓统■门—0-素是文个的口生—学行義入某程::「犬程^S子格存取课生生生的忏课182息读OWW绩X的的黒旳找辭编人生券级和诩件有^A企冃谓膏■■一___・・・2•订123456789・•»0?EE£<息八畐器信和成成程的八药均课;生高平平X吃冬——宀示71、对对实他6-7-A-其 C:UsersDELLDesktopll信息binDebug隹身exe和成成程均课;高平平B最总总善Kls°程:,综课生生生的^$>£>丹绩某的的黒生业级级和界某某呼头他Z7序FFfl••入•j序插各选姓盘直的简起行生学进进高的古番I入你想查看的专业黃专露叢祥麴平均成绩由低到高排序结果为:盤7944•,岀成均国89成880/ZK88成99总岀高由息八绪・信和成的八将均高文个的按到行生式入某程‘倔运学格存取课生由名心息读01于绩号一^8^^圭编入生生舉业件存•ASSXS最高的学生的姓名;超亍简单选择排序;由尿刼高雜行直接插入排序,出戶C:UsersDELL'Disktopl1信歌bin'Debug'信呈.exe三:数由由绩息八畐喘信和噩的八%均课:生高平平黒相•,岀行生式入某程‘运学格存取课生心息读0于肖89成880/ZK88应99八弋匕班功应的简生行竽迸的高亠劇^4書取总总善式入某程:,综名格存取课生生生的夹息息读□$■>于绩件的的的成文生生塁业级级和的迸庄着班專±1;取某某某呼要求实他入__-__■一■圭、询23456789主丿?息八鑑信和宓的生亠咼平牛息取总钿4.••••业级专班名的s^wl号一^8^^菠卡玉编入生生墨业”IIAA:•:•啊请事13请1-2-二56件存下Allsk-zzz 9898成绩18988成绩27985回••名^4业程专课的的027989丿二894能功应-EiK相;岀C:UsersDELLDesktopll信獸binDebug信5exe;序序排排;A•,择序插H姓畫直的简起行生狂g学进进高的辜到曰冋由息八-信和成亠的八為均课;生古旱平息^#21舌取总总蕃一软系花文个的:^^口行生式入某程——综运学格存取课生生生的,2息读OWO绩土号一的的土编入生生星业级级和itTIATTT^求3请」r4」5-—一卜」苴八4功应;相;岀业息输行生式运学格兰口的查查息取要读你ms要入人后A号输{于玉卡号一玉卡编入生:署个入键某请」2-9898拯排序,啟排序;成匏8889由成绩28579fiwf®绩2988979988885irC:UsersDELLDesktoplifBBbinDebug4>^.exe卡玉号-信卡玉编入生入键某13请二世岀号•如由离■穴畐霊信和感成程;的八福均课••级弋匕決44乂冃莎功应姓暑直的简起行失ffg学辔高相;岀生高平系走文个的口行生式入某程…综运学格存取课生生善名,2息绩姓玉卡号一玉卡编人生生和学:请二匸二一二其024级弋匕4幷44冒勺功限应,下相••岀行生式运学格六、实验总结(实验过程屮遇到的具体问题,如何解决,不要说空话、套话,雷同扣分)
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处