您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C语言学生成绩管理系统实习报告
陕西能源职业技术学院C语言程序设计——实习报告专业:电子工程系计算机网络班级:计算机网络111班指导老师:赵生智姓名:任宇伦学号:110443120一、实习时间:2012年6月11日——2012年6月15日二、实习地点:本班教室和学院一号教学楼计算机应用机房三、实习目的:1、通过实训使学生进一步巩固C语言的数据类型、表达式运算、结构化程序设计方法和指针应用等基础知识。2、提高学生对C语言程序设计基本方法、程序调试技术。3、使学生具有运用C语言进行小型软件开发的基本技能。4、为学生学习后续课程打下基础。四、开发环境和开发工具1、开发环境:MS-DOS6.22操作系统、汉字系统或Windows98及其以上的中文版操作系统。2、开发工具:Win-tc191、TurboC2.0编译软件,或TurboCforWindows4.0编译软件。五、实训基本要求1、设计方案正确、合理;2、程序结构及算法选择合理、调试正确;3、对调试过程进行记录;4、运行结果样张完整;5、设计过程态度认真;6、文字表达准确、叙述说明清楚且有逻辑性;7、对设计调试过程进行总结,写出体会和心得;8、学会总体设计和模块化设计方法。四、实习内容及方法学生成绩管理系统#includestdio.h#includedos.h#includestdlib.h/*其它说明*/#includestring.h/*字符串函数*/#includectype.h/*字符操作函数*/#includeconio.h#defineLENsizeof(STUDENT)typedefstructstu/*定义结构体数组用于缓存数据*/{charnum[6];charname[5];intscore[3];intsum;floataverage;intorder;structstu*next;}STUDENT;/*函数原型*/STUDENT*init();/*初始化函数*/intmenu_select();/*菜单函数*/STUDENT*create();/*创建链表*/voidprint(STUDENT*head);/*显示全部记录*/voidsearch(STUDENT*head);/*查找记录*/STUDENT*mydelete(STUDENT*head);/*删除记录*/STUDENT*sort(STUDENT*head);/*排序*/STUDENT*insert(STUDENT*head,STUDENT*mynew);/*插入记录*/voidsave(STUDENT*head);/*保存文件*/STUDENT*load();/*读文件*//*主函数界面*/voidmain(){STUDENT*head,mynew;head=init();/*链表初始化,使head的值为NULL*/for(;;)/*循环无限次*/{switch(menu_select()){case1:head=create();break;case2:print(head);break;case3:search(head);break;case4:head=mydelete(head);break;case5:head=sort(head);break;case6:head=insert(head,&mynew);break;/*&mynew表示返回地址*/case7:save(head);break;case8:head=load();break;case9:exit(0);/*如菜单返回值为9则程序结束*/}}}/*初始化函数*/STUDENT*init(){returnNULL;/*返回空指针*/}/*菜单选择函数*/menu_select(){intn;printf(\n按任一键进入主菜单......\npressanykeytoenterthemenu......);/*按任一键进入主菜单*/getch();/*从键盘读取一个字符,但不显示于屏幕*/system(cls);printf(********************************************************************************\n);printf(\t\t欢迎Welcometo\n);printf(\n\t\t\t使用学生管理系统1.0\n\n\t\t\t\t\t\n);printf(*************************************MENU***************************************\n);printf(\t\t\t1.输入学生成绩记录Entertherecord\n);/*输入学生成绩记录*/printf(\t\t\t2.显示Printtherecord\n);/*显示*/printf(\t\t\t3.寻找Searchrecordonname\n);/*寻找*/printf(\t\t\t4.删除mydeletearecord\n);/*删除*/printf(\t\t\t5.排序Sorttomakemynewafile\n);/*排序*/printf(\t\t\t6.插入Insertrecordtolist\n);/*插入*/printf(\t\t\t7.保存Savethefile\n);/*保存*/printf(\t\t\t8.读取Loadthefile\n);/*读取*/printf(\t\t\t9.退出Quit\n);/*退出*/printf(********************************************************************************\n);do{printf(\n\t\t\t输入你的选择Enteryourchoice(1~9):);scanf(%d,&n);}while(n1||n9);/*如果选择项不在1~9之间则重输*/return(n);/*返回选择项,主函数根据该数调用相应的函数*/}/*输入函数*/STUDENT*create(){inti,s;STUDENT*head=NULL,*p;/*定义函数.此函数带回一个指向链表头的指针*/system(cls);for(;;){p=(STUDENT*)malloc(LEN);/*开辟一个新的单元*/if(!p)/*如果指针p为空*/{printf(\n输出内存溢出.Outofmemory.);/*输出内存溢出*/return(head);/*返回头指针,下同*/}printf(输入学号Enterthenum(0:listend):);scanf(%s,p-num);if(p-num[0]=='0')break;/*如果学号首字符为0则结束输入*/printf(输入名字Enterthename:);scanf(%s,p-name);printf(请输入3门成绩Pleaseenterthe%dscores\n,3);/*提示开始输入成绩*/s=0;/*计算每个学生的总分,初值为0*/for(i=0;i3;i++)/*3门课程循环3次*/{do{printf(成绩score%d:,i+1);scanf(%d,&p-score[i]);if(p-score[i]0||p-score[i]100)/*确保成绩在0~100之间*/printf(数据错误,请重新输入Dataerror,pleaseenteragain.\n);}while(p-score[i]0||p-score[i]100);s=s+p-score[i];/*累加各门成绩*/}p-sum=s;/*将总分保存*/p-average=(float)s/3;/*先用强制类型转换将s转换成float型,再求平均值*/p-order=0;/*未排序前此值为0*/p-next=head;/*将头结点做为新输入结点的后继结点*/head=p;/*新输入结点为新的头结点*/}return(head);}/*显示全部记录函数*/voidprint(STUDENT*head){inti=0;/*统计记录条数*/STUDENT*p;/*移动指针*/system(cls);p=head;/*初值为头指针*/printf(\n************************************STUDENT************************************\n);printf(-------------------------------------------------------------------------------\n);printf(|Rec|Num|Name|Sc1|Sc2|Sc3|Sum|Ave|Order|\n);printf(-------------------------------------------------------------------------------\n);while(p!=NULL){i++;printf(|%3d|%4s|%-4s|%3d|%3d|%3d|%3d|%4.2f|%-5d|\n,i,p-num,p-name,p-score[0],p-score[1],p-score[2],p-sum,p-average,p-order);p=p-next;}printf(-------------------------------------------------------------------------------\n);printf(**************************************END**************************************\n);}/*查找记录函数*/voidsearch(STUDENT*head){STUDENT*p;/*移动指针*/chars[5];/*存放姓名用的字符数组*/system(cls);printf(请输入个姓名来查找.Pleaseenternameforsearching.\n);scanf(%s,s);p=head;/*将头指针赋给p*/while(strcmp(p-name,s)&&p!=NULL)/*当记录的姓名不是要找的,或指针不为空时*/p=p-next;/*移动指针,指向下一结点*/if(p!=NULL)/*如果指针不为空*/{printf(\n*************************************FOUND************************************\n);printf(-------------------------------------------------------------------------------\n);printf(|Num|Name|sc1|sc2|sc3|Sum|Ave|Order|\n);printf(-------------------------------------------------------------------------------\n);printf(|%4s|%4s|%3d|%3d|%3d|%3d|%4.2f|%-5d|\n,p-num,p-name,p-score[0],p-score[1],p-score[2],p-sum,p-average,p-order);printf(-------------------------------------------------------------------------------\n);printf(***************************************END*****
本文标题:C语言学生成绩管理系统实习报告
链接地址:https://www.777doc.com/doc-3203226 .html