1、通过学生的姓名来查看学生的语文 数学 英语 计算机的有关成绩,同时也可以分别通过 paverage() maverage() eaverage()comaverage() 来输出物理数学英语计算机等成绩的平均分最高分最低 分。5退出系统:可以用一个函数来实现,首先将信息保存在文件中,释放动态创建的存空间,再退出次程序。流程图如下六.调试情况及运行结果1、对自己设计进行评价,指出合理和不足之处,提出改进的案。此次实践课编写的是一个应用程序, 相对于以前我们见到的程序,它 要大得多,于是就按课本上的例子编了超市管理系统, 先把界面弄好然后再添加各模块,而且各模块也出现了不少问题,在同学们和老师的帮
2、助下, 我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期 的目的。可结果还不是太理想。由于时间很短,在选题报告中设想到的好多功能都没有实现。 已有的那些功能虽已能基本上满足管理者和消费者的需要,但如果还有更多的功 能程序就会更加完美。如:进入系统时没有设制密码,保护性不够强;在 输入商品号时没有出错提示,如果商品号输入负值2、在设计过程中的感受。本次C语言的实习课让我对 C语言的学习又有了更深入的了解,也 让我更深刻地领悟到了 “实践出真理”这个道理,在上机实践过程中学到 的知识远远超过了在课堂上十几学到的,学校组织的这次实习让我们这些 实践知识匮乏的大学生增添了多社会经验,为
3、我们将来走上工作岗位其了 不小的铺垫作用。本次实习中遇到了很多以前没有遇到过的问题, 也曾想过要放弃, 但看到 那些同学都在那认真的写程序, 给了我继续的信心。 在同学的帮助下, 我 顺利的结束了本次实习, 让我知道原来凭借自己努力取得的成功会让自己 这么欣慰,也让我知道了友谊和团结的重要性。七参考文献 C 语言程序设计八。附录:#include stddef.hstring.hstdlib.hconio.h#define MAX 10int sum=10;typedef struct studentchar nameMAX;int num;char sexMAX;float physic;f
4、loat mathematic;float english;float computer;struct student *next;stu;stu *head;曙燕 锰 科学出版社/* 定义结构体 */* 姓名 */* 学号 */* 性别 */* 语文 */* 数学 */* 英语 */* 计算机 */* 结构体指针 */* 读取信息 */int read_message() FILE *fp;stu *p;int i=0; if(fp=fopen(student_manage.txt,rb)=NULL) printf(nn* 暂时还没有任信息,输入密码进入主菜单选择基本信息录入! *n);re
5、turn 0;while(feof(fp)!=1) fread(head,sizeof(stu),1,fp);if(p-num=0) break;else i+;fclose(fp);return(i);/* 显示或打印函数 */ void print()printf(tttScore Manage Systemn/* 成绩管理系统 */成绩管理系统 nEnter Record :输入数据 n/* 输入数据 */2Display :显示或打印 n/*显示 */3find :查找数据 n/* 访问4Renew_message:更新模块 n更新模块 */5Save:保存数据 n6sort_phys
6、ic:成绩排名 n物理成绩排名 */7Count:数据统计n/* 数据统计 */8Physic Average:物 理平均成 绩/* 物理平均成绩 */9Math Average: 数学平均成绩/* 数学平均成绩 */10English Average: 英语平均成绩/* 英语平均成绩 */11Computer Average: 计算机平均成绩/* 计算机平均成绩 */12Quit :退出tn/* 退出 */* 输入相关数据函数 */void cin(stu *p1)n Enter name: scanf(%s,&p1-name); printf(Enter num:%dnum);Enter
7、sex:sex);Enter scorenEnter physic:%fphysic);Enter mathematic:mathematic);Enter english:english);Enter computer:computer);/* 其他数据是否输入函数 */stu *cindata() stu *p1,*p2;int i=1;char ch;p1=(stu*)malloc(sizeof(stu); head=p1;while(i) cin(p1);Do you want to continue?Yes or no: fflush(stdin);ch=getchar();if(c
8、h=n|ch=N) i=0;next=NULL; else p2=p1; p1=(stu*)malloc(sizeof(stu);p2-next=p1;return(p1-next);/* 查看数据函数 */stu *lookdata(stu *p1)while(p1!=NULL)Name:%st,p1-Num:%dtSex:Physic:%ftMath:English:Computer:p1=p1-next;return p1;/* 通过比较学号来插入数据的函数 */ void insert() stu *p1,*p3,*p2;p1=head; p3=(stu*)malloc(sizeof(
9、stu);p3-if(head=NULL) head=p3;return;cin(p3);=NULL&(p1-numnext=head; head=p3;next=p3;/* 通过姓名来查找的函数 */void find(stu *p2) char name20;int b=0;Enter the name of the sutdent you want to find:,name);while(p2!if(strcmp(name,p2-name)=0) The data you want has be find ,p2-Physic%ftMath%ftEnglish%ftComputer%f
10、tb=1;else if(b=0)sorry not find data! p2=p2-if(b=1)print();Find onenelseNot findn/* 求各学生物理平均成绩 */void paverage() stu *p1;int i;float max=0.0,min=200.0;float sum=0.0,aver=0;if(p1=NULL)not data! for(i=0;p1!=NULL;next) sum+=p1-physic;aver=sum/i;for(i=0;i+,p1=p1-next)if(maxif(minphysic) min=p1-%f ,aver)
11、;Physic Max:,max);Physic Min:/* 求各学生数学平均分 最高和最低分成绩的函数 */void maverage()for (i=0;mathematic; aver=sum/i; if(maxmathematic)min=p1-Math Average:Math Max:Math Min:,min);/* 求各学生英语平均分 最高和最低分成绩的函数 */void eaverage()english;english) max=p1-next) if(minenglish) min=p1-English Max:English Min:/* 求各学生计算机平均成绩 最高
12、和最低分 */ void comaverage()computer;computer) max=p1- for(i=0;computer) min=p1-Computer Max:Computer Min:/* 统计物理平均和总分 */void aver_sum_physic()float sum=0,aver;if(p1=NULL) aver=sum/i;Physic Sum:,sum);/* 统计数学平均和总分 */void aver_sum_mathematic()Mathematic Average:Mathematic Sum:/* 统计英语平均和总分 */void aver_sum
13、_english()English Sum:/* 统计计算机平均和总分 */ void aver_sum_computer()if(p1=NULL) printf(Computer Sum:/* 统计模块 */ void count() int choice; do * 统计学生平均分和总分 *n 返回主菜单 : 请选择 (04):choice);switch(choice) case 1:aver_sum_physic();break;case 2:aver_sum_mathematic();case 3:aver_sum_english();case 4:aver_sum_computer
14、();case 0:while(choice!=0);/* 物理成绩排序 */* 库存排行 */sort_physic()int i=1,j=1;float min;stu *newh,*newp,*tp1,*tp2,*p;newp=newh=NULL;tp1=tp2=NULL;p=head;doi+;p=p-while(p-while(head!tp1=tp2=p;min=p-while(p-next!next-physic tp1=p; tp2=p-if(newh=NULL) newp=newh=tp2; elsenewp-next=tp2;newp=tp2;if(tp2=head) head=tp2-tp1-next=tp2-tp2-head=newh; for(j=1;jname,p-sex,p-num,p- p=p-else break;n 按任意键返回 ngetch();/* 删除相关数据 */shanchu() int num;stu *p,*p0;cin(p); 请输入要删除的学号 : head=p-free(p);return 1;p0=p-while(p0! if(p0-num=num)p-next=p; free(p0); p=p0; p0=p
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1