


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 实验题目:学生成绩管理系统一、实验目的熟悉c语言的编译连接和运行过程。2. 掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。3. 掌握if语句及switch语句的运用方法及嵌套应用方法。4. 掌握实现循环结构的三种语句while、do-while.、for的使用。5. 掌握函数的定义方法和调用方法。6. 能够采用模块化思想调试程序。1. 实验内容编写程序并进行调试运行。2. 输入学生资料,并保存于文件。每个学生包含信息如:姓名、学号、性别、物理成绩、数学成绩、英语成绩、计算机成绩。3. 对已存入的学生信息进行更新操作,包括更新学生信息信息、删除某个学生信息和修
2、改学生信息。4. 通过按学生姓名的方式查询学生信息。5. 输入某学生各门成绩进行统计。6对学生物理成绩排序。7. 最后输出学生信息,供需要时打印。1. 二、需求分析该程序可用于对学生的基本信息的存储、更新、查询、输出、统计、排序等操作。2. 其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多个学生信息,也可对个别学生信息进行适当的删除或修改。以便随时更新学生信息。程序中设计的查询功能可根据需要从若十数据中查询某信息,四、概要设计1、方案设计对系统进行分析,给出结构图分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计一自顶向下、逐步细化,将系统设计任务
3、分解出许多子功能模块进行设计结构图如下:学生成绩管五功能模块的说明1输入初始学生信息:其中包括学生姓名,学号,性别,物理数学英语计算机成绩等相关信息;可用函数cin(stu*p1)来实现此操作。2查询模块:可用stu*lookdata(stu*p1)来实现。找到就输出此学生全部信息包括学生物理数学英语计算机的成绩。3插入模块:可用insert()来实现。其中通过学号的大小比较的,并且以此来排序。4输出学生的信息及成绩:通过学生的姓名来查看学生的语文数学英语计算机的有关成绩,同时也可以分别通过paverage()maverage()eaverage()comaverage()来输出物理数学英语计
4、算机等成绩的平均分最高分最低分。5退出系统:可以用一个函数来实现,首先将信息保存在文件中,释放动态创建的内存空间,再退出次程序。流程图如下六.调试情况及运行结果1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。此次实践课编写的是一个应用程序,相对丁以前我们华到的程序,它要大得多,丁是就按课本上的例子编了超市管理系统,先把界面弄好然后再添加各模块,而且各模块也出现了不少问题,在同学们WW的帮助下,我很有耐心的一次乂一次的进行修改,最后运行的结果基本上达到了预期的目的。可结果还不是太理想。由丁时间很短,在选题报告中设想到的好多功能都没有实现。已有的那些功能虽已能基本上满足管理者和消费者的
5、需要,但如果还有更多的功能程序就会更加完美。如:进入系统时没有设制密码,保护性不够强;在输入商品号时没有出错提示,如果商品号输入负值2、在设计过程中的感受。本次C语言的实习课让我对C语言的学习乂有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。在同学的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力
6、取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。七.参考文献«C语言程序设计王曙燕曹铤科学出版社八。附录:#include<stdio.h>#include<stddef.h>#include<stddef.h>#include<string.h>#include<stdlib.h>#include<conio.h>#defineMAX10intsum=10;/*定义结构体*/*姓名*/*学号*/*性别*/*语文*/*数学*/*英语*/*计算机*/*结构体指针*/typedefstructstuden
7、tcharnameMAX;intnum;charsexMAX;floatphysic;floatmathematic;floatenglish;floatcomputer;structstudent*next;stu;stu*head;/*读取信息*/intread_message()FILE*fp;stu*p;inti=0;if(fp=fopen("student_manage.txt”,"rb")=NULL)printf("nn*暂时还没有任何信息,输入密码进入主菜单选择基本信息录入!*n");return0;while(feof(fp)!
8、=1)fread(head,sizeof(stu),1,fp);if(p->num=0)break;elsei+;fclose(fp);return(i);/*显示或打印函数*/voidprint()(printf("tttScoreManageSystemn");/*成绩管理系统*/printf("ttt成绩管理系统n");printf("<1>EnterRecord:输入数据n");/*输入数据*/printf("<2>Display:显示或打印n");/*显示*/printf(&
9、quot;<3>find:查找数据n");/*访问数据*/printf("<4>Renew_message:更新模块n");/*更新模块*/printf("<5>Save:保存数据n");printf("<6>sort_physic:成绩排名n");/*物理成绩排名*/printf("<7>Count:数据统计n");/*数据统计*/printf("<8>PhysicAverage:物理平均成绩n");/*物理平均
10、成绩*/printf("<9>MathAverage:数学平均成绩n");/*数学平均成绩*/printf("<10>EnglishAverage:英语平均成绩n");/*英语平均成绩*/printf("<11>ComputerAverage:计算机平均成绩n");/*计算机平均成绩*/printf("<12>Quit退出tn");/*退出*/*输入相关数据函数*/voidcin(stu*p1)(printf("nEntername:n");sca
11、nf("%s”,&p1->name);printf("Enternum:n");scanf("%d”,&p1->num);printf("Entersex:n");scanf("%s”,&p1->sex);printf("Enterscoren");printf("Enterphysic:n");scanf("%f",&p1->physic);printf("Entermathematic:n&quo
12、t;);scanf("%f",&p1->mathematic);printf("Enterenglish:n");scanf("%f",&p1->english);printf("Entercomputer:n");scanf("%f",&p1->computer);/*其他数据是否输入函数*/stu*cindata()stu*p1,*p2;inti=1;charch;p1=(stu*)malloc(sizeof(stu);head=p1;while(i
13、)cin(p1);printf("Doyouwanttocontinue?Yesorno:n");fflush(stdin);ch=getchar();if(ch='n'|ch='N')i=0;p1->next=NULL;elsep2=p1;p1=(stu*)malloc(sizeof(stu);p2->next=p1;return(p1->next);/*查看数据函数*/stu*lookdata(stu*p1)(while(p1!=NULL)(printf("Name:%st”,p1->name);prin
14、tf("Num:%dt”,p1->num);printf("Sex:%st”,p1->sex);printf("n");printf("Physic:%ft”,p1->physic);printf("Math:%ft”,p1->mathematic);printf("English:%ft”,p1->english);printf("Computer:%ft",p1->computer);printf("n");p1=p1->next;retu
15、rnp1;/*通过比较学号来插入数据的函数*/voidinsert()(stu*p1,*p3,*p2;p1=head;p3=(stu*)malloc(sizeof(stu);p3->next=NULL;if(head=NULL)(head=p3;return;cin(p3);while(p1!=NULL&&(p1->num<p3->num)(p2=p1;p1=p1->next;if(p2=head)(p3->next=head;head=p3;return;p3->next=p1;p2->next=p3;/*通过姓名来查找的函数*
16、/voidfind(stu*p2)(charname20;intb=0;printf("Enterthenameofthesutdentyouwanttofind:");scanf("%s",name);while(p2!=NULL)(if(strcmp(name,p2->name)=0)(printf("Thedatayouwanthasbefind");printf("Name:%st”,p2->name);printf("Num:%dt”,p2->num);printf("Sex:
17、%st”,p2->sex);printf("n");printf("Physic%ft”,p2->physic);printf("Math%ft",p2->mathematic);printf("English%ft",p2->english);printf("Computer%ft",p2->computer);printf("n");b=1;elseif(b=0)printf("sorrynotfinddata!");p2=p2-&
18、gt;next;if(b=1)(print();printf("Findonen");else(print();printf("Notfindn");/*求各学生物理平均成绩*/voidpaverage()(stu*p1;inti;floatmax=0.0,min=200.0;floatsum=0.0,aver=0;p1=head;if(p1=NULL)printf("notdata!");elsefor(i=0;p1!=NULL;p1=p1->next)sum+=p1->physic;aver=sum/i;p1=head
19、;for(i=0;p1!=NULL;i+,p1=p1->next)if(max<p1->physic)max=p1->physic;p1=head;for(i=0;p1!=NULL;i+,p1=p1->next)if(min>p1->physic)min=p1->physic;printf("PhysicAverage:%f",aver);printf("PhysicMax:%f",max);printf("PhysicMin:%f",max);/*求各学生数学平均分最高和最低分成绩的函
20、数*/voidmaverage()stu*p1;inti;floatmax=0.0,min=200.0;floatsum=0.0,aver=0;p1=head;if(p1=NULL)printf("notdata!");elsefor(i=0;p1!=NULL;i+,p1=p1->next)sum+=p1->mathematic;aver=sum/i;p1=head;for(i=0;p1!=NULL;i+,p1=p1->next)if(max<p1->mathematic)max=p1->mathematic;p1=head;for(i=
21、0;p1!=NULL;i+,p1=p1->next)if(min>p1->mathematic)min=p1->mathematic;printf("MathAverage:%f",aver);printf("MathMax:%f",max);printf("MathMin:%f",min);/*求各学生英语平均分最高和最低分成绩的函数*/voideaverage()stu*p1;inti;floatmax=0.0,min=200.0;floatsum=0.0,aver=0;p1=head;if(p1=NULL
22、)printf("notdata!");elsefor(i=0;p1!=NULL;i+,p1=p1->next)sum+=p1->english;aver=sum/i;p1=head;for(i=0;p1!=NULL;i+,p1=p1->next)(if(max<p1->english)max=p1->english;p1=head;for(i=0;p1!=NULL;i+,p1=p1->next)if(min>p1->english)min=p1->english;printf("EnglishAvera
23、ge:%f",aver);printf("EnglishMax:%f",max);printf("EnglishMin:%f",min);/*求各学生计算机平均成绩最高和最低分*/voidcomaverage()(stu*p1;inti;floatmax=0.0,min=200.0;floatsum=0.0,aver=0;p1=head;if(p1=NULL)printf("notdata!");else(for(i=0;p1!=NULL;i+,p1=p1->next)sum+=p1->computer;aver
24、=sum/i;p1=head;for(i=0;p1!=NULL;i+,p1=p1->next)(if(max<p1->computer)max=p1->computer;p1=head;for(i=0;p1!=NULL;i+,p1=p1->next)if(min>p1->computer)min=p1->computer;printf("ComputerAverage:%f",aver);printf("ComputerMax:%f",max);printf("ComputerMin:%f&quo
25、t;,min);/*统计物理平均和总分*/voidaver_sum_physic()stu*p1;inti;floatsum=0,aver;p1=head;if(p1=NULL)printf("notdata!");elsefor(i=0;p1!=NULL;i+,p1=p1->next)sum+=p1->physic;aver=sum/i;printf("PhysicAverage:%f",aver);printf("PhysicSum:%f",sum);/*统计数学平均和总分*/voidaver_sum_mathemat
26、ic()stu*p1;inti;floatsum=0,aver;p1=head;if(p1=NULL)printf("notdata!");elsefor(i=0;p1!=NULL;i+,p1=p1->next)sum+=p1->mathematic;aver=sum/i;printf("MathematicAverage:%f",aver);printf("MathematicSum:%f",sum);/*统计英语平均和总分*/voidaver_sum_english()stu*p1;inti;floatsum=0,av
27、er;p1=head;if(p1=NULL)printf("notdata!");elsefor(i=0;p1!=NULL;i+,p1=p1->next)sum+=p1->english;aver=sum/i;printf("EnglishAverage:%f",aver);printf("EnglishSum:%f",sum);/*统计计算机平均和总分*/voidaver_sum_computer()stu*p1;inti;floatsum=0,aver;p1=head;if(p1=NULL)printf("n
28、otdata!");elsefor(i=0;p1!=NULL;i+,p1=p1->next)sum+=p1->computer;aver=sum/i;printf("ComputerAverage:%f",aver);printf("ComputerSum:%f",sum);voidcount()intchoice;doprintf("*printf("printf("printf("printf("printf("printf("/*统计模块*/统计学生平均分和
29、总分*n");<1>:物理平均和总分n");<2>:数学平均和总分n");<3>:英语平均和总分n");<4>:计算机平均和总分n");<0>返回主菜单:n");请选择(04):n");scanf("%d”,&choice);switch(choice)case1:aver_sum_physic();break;case2:aver_sum_mathematic();break;case3:aver_sum_english();break;case
30、4:aver_sum_computer();break;case0:break;while(choice!=0);/*物理成绩排序*/*库存排行*/sort_physic()inti=1,j=1;floatmin;stu*newh,*newp,*tp1,*tp2,*p;newp=newh=NULL;tp1=tp2=NULL;p=head;do(i+;p=p->next;while(p->next);while(head!=NULL)(p=head;tp1=tp2=p;min=p->physic;while(p->next!=NULL)(if(p->next->
31、;physic<min)(min=p->next->physic;tp1=p;tp2=p->next;p=p->next;if(newh=NULL)newp=newh=tp2;else(newp->next=tp2;newp=tp2;if(tp2=head)head=tp2->next;else(tp1->next=tp2->next;tp2->next=NULL;head=newh;p=head;for(j=1;j<=i;j+)(if(p!=NULL)(printf("n物理成绩排行n");printf(&
32、quot;");printf("n排名姓名性别学号物理成绩n");printf("n%18d%6s%8s%11d%10fn”,j,p->name,p->sex,p->num,p->physic);p=p->next;elsebreak;printf("n按任意键返回n");getch();/*删除相关数据*/shanchu()intnum;stu*p,*p0;p=head;cin(p);printf("请输入要删除的学号:”);scanf("%d”,&num);head=p-&
33、gt;next;free(p);return1;p0=p->next;while(p0!=NULL)if(p0->num=num)p->next=p;free(p0);return1;p=p0;p0=p0->next;return0;/*修改模块*/voidrevise_message(stu*h)(intchoice,revise_num,flag;stu*p;p=head;do(printf("n输入要修改的学生的学号:");scanf("%d”,&revise_num);while(p->num!=revise_num)
34、p=p->next;/*查找*/if(p->num=revise_num)(printf("n-学生信息-n");printf("n");printf("学号-姓名-性别-物理成绩-数学成绩-英语成绩-计算机成绩n");printf("%8s%4d%8s%8f%8f%8f%8fn",p->name,p->num,p->sex,p->physic,p->mathematic,p->english,p->computer);printf("nprintf(
35、"nprintf("nprintf("nprintf("nprintf("nprintf("nprintf("nprintf("nscanf("%d",&choice);switch(choice)(您要修改哪一项?n");1、姓名n");2、学号n");3、性别n");4物理成绩n");5、数学成绩n");6、英语成绩n");7、计算机成绩n");请选择(1-7):");case1:printf(
36、"n输入修改后的学生姓名:")scanf("%s",p->name);break;case2:printf("n输入修改后的学生学号:")scanf("%d",p->num);break;case3:printf("n输入修改后的性别:");scanf("%s”,&p->sex);case4:printf("n输入修改后的物理成绩scanf("%f",&p->physic);case5:printf("n输
37、入修改后的数学成绩scanf("%f",&p->mathematic);:");case6:printf("n输入修改后的英语成绩scanf("%f",&p->english);break;case7:printf("n输入修改后的计算机成绩:");scanf("%f",&p->computer);break;printf("n");printf("学号-姓名-性别-物理成绩-数学成绩-英语成绩-计算机成绩n");
38、printf("%8s%4d%8s%8f%8f%8f%8fn”,p->name,p->num,p->sex,p->physic,p->mathematic,p->english,p->computer);break;if(p->next=NULL)printf("n该学生不存在!");printf("nn要继续吗?(y/n)”);choice=getch();if(choice='y')|(choice='Y')printf("n继续!n”);flag=1;else
39、flag=0;while(flag=1);printf("n按任意键返回主菜单!n");/*更新模块*/voidrenew_message()intchoice;do*nn");(printf("nn*更新学生信息printf("1.添加信息nn");printf(-2.删除信息nn");printf("3.修改信息nn");printf("4.返回主菜单nn");printf("请选择(03):");scanf("%d”,&choice);swi
40、tch(choice)(case1:insert();break;case2:shanchu();break;case3:revise_message(head);break;case0:;break;while(choice!=0);/*保留数据函数*/voidsave(stu*p2)(FILE*fp;char;printf("Enter");scanf("%s",file);fp=fopen(file,"w");while(p2!=NULL)(fprintf(fp,"%s”,p2->name);fprintf(fp
41、,"%d”,p2->num);fprintf(fp,"%s”,p2->sex);fprintf(fp,"%f",p2->physic);fprintf(fp,"%f",p2->mathematic);fprintf(fp,"%f",p2->english);fprintf(fp,"%f",p2->computer);p2=p2->next;fclose(fp);*主函数*charpassword7="123456"voidmain()/*初始化*/(charchoices;stu*p2;chars8;intflag=0,i;/*标志项*/intn=3;sum=read_message();do(printf("Enterpassword:n");scanf("%s”,s);if(!strcmp(s,password)(printf("PASSnnn&q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年产科胎儿窘迫抢救处理模拟试卷答案及解析
- 民族常识课件
- 2025年心理医学常见疾病诊断治疗模拟试卷答案及解析
- 2025年产科手术操作规范考试答案及解析
- 2025年护理专业基础护理知识运用模拟考试答案及解析
- 2025年肾脏透析疗程护理考核答案及解析
- 民族团结石榴籽课件
- 2025年老年医学常见老年病诊疗挑战答案及解析
- 中央关于新质生产力解读
- 组织部学期方案
- T/CACEM 22.6-2022校车运营服务管理第6部分:评价与改进
- 购物中心行业研究报告2024-2025商业洞察
- AI智能体的感知与理解
- 新闻记者职业资格高频真题含答案2025年
- 教科版(2024)科学一年级上册教学计划(全册)
- 《工程制图》课件
- 炉渣综合利用项目可行性研究报告立项申请报告范文
- 临床医学研究中的数据管理与分析
- 广东工业设计城规划方案(9.2终版)图文
- 廉政协议合同协议
- 成品油行业知识培训课件
评论
0/150
提交评论