1、C语言综合性实验报告1华北科技学院计算机系综合性实验实 验 报 告 课程名称 C程序设计 实验学期 至 学年 第 学期学生所在系部 年级 专业班级 学生姓名 学号 任课教师 实验成绩 计算机系制 C 程 序 设 计 课程综合性实验报告开课实验室:数学应用实验室 2010 年 7 月 1日实验题目基于链表的学生成绩管理系统一、实验目的1、掌握链表的创建、显示、清除;掌握链表结点的查找、修改、删除;2、掌握链表结点的排序; 3、掌握链表数据的文件保存、读取;二、设备与环境微型计算机、Visual C+ 6.0三、实验内容源程序:#include #include #include #include
2、 #define LEN sizeof(struct xsnode)struct xsnode int xh; char xm15; int gs; int yy; int wl; float pj; int mc; struct xsnode *next;stu100;int length;/*全局变量*/FILE *fp=NULL;/*定义指针*/*成绩录入*/struct xsnode *luru()struct xsnode *p1,*p2,*head; int i,sum=0,flag=1; system(cls); /*刷屏*/while(flag=1) printf(input
3、length of list(100):); scanf(%d,&length); if(length100) flag=0; for(i=0;inext=p1; p2=p1; printf(No.:); scanf(%d,&p1-xh); printf(name:); scanf(%s,&p1-xm); printf(gscj:); scanf(%d,&p1-gs); printf(yycj:); scanf(%d,&p1-yy); printf(wlcj:); scanf(%d,&p1-wl); sum=p1-gs+p1-yy+p1-wl; p1-pj=(float)(sum/3.0);
4、p1-next=NULL; fp=fopen(stud1,w); for(i=0;ixh&p1-next!=NULL) p2=p1;p1=p1-next;i+; if(xh1=p1-xh) printf(要修改的学生信息为:n); printf(%6d%8s%8d%8d%8d,p1-xh,p1-xm,p1-gs,p1-yy,p1-wl); printf(n请重新输入学生信息(学号、姓名、高数成绩、英语成绩、物理成绩):n); scanf(%d %s %d %d %d,&p1-xh,&p1-xm,&p1-gs,&p1-yy,&p1-wl); sum=p1-gs+p1-yy+p1-wl; p1-p
5、j=(float)(sum/3.0); if(fp=fopen(stud1,r)=NULL) printf(文件不能打开!); exit(0); fwrite(&stui,sizeof(struct xsnode),1,fp); fclose(fp); /*成绩删除*/void shanchu(struct xsnode *head) int find; int xh1,i=0,j=0; struct xsnode *p,*pt; system(cls); printf(输入要删除的学生的学号:); scanf(%d,&xh1); pt=head; p=pt; if(pt-xh=xh1) p=
6、pt-next; head=pt=p; find=1; else pt=pt-next; while(pt!=NULL) i+; if(pt-xh=xh1) p-next=pt-next; find=1; else p=pt; pt=pt-next; if(find!=1) printf(Not found %s,xh1); p=head; if(fp=fopen(stud1,r)=NULL) printf(文件不能打开!); exit(0); fp=fopen(stud1,w); for(j=0;ji&jxh=xh2) printf( No. name gscj yycj wlcjn); p
7、rintf(%6d%8s%8d%8d%8d,p-xh,p-xm,p-gs,p-yy,p-wl); p=p-next; printf(n); printf(输入学号为0表示退出查询:n); printf(所查找学号:); scanf(%d,&xh2); if(xh2=0) printf(input error and exit!n); getch(); /*成绩浏览*/void liulan(struct xsnode *head) struct xsnode st;struct xsnode *p; int i=0,k=1,j; float mc100; system(cls); p=head
8、; if(fp=fopen(stud1,r)=NULL) printf(文件不能打开!); exit(0); printf( No. name gscj yycj wlcj pjcj n); while(p!=NULL) printf(%6d%8s%8d%8d%8d%8.2fn,p-xh,p-xm,p-gs,p-yy,p-wl,p-pj); mci=p-pj; i+; p=p-next; for(j=0;jlength;j+) for(i=0;ilength;i+) if(mcjmci&j!=i) k=k+1; printf(学号对应名次如下:n); printf( %dn,k); k=1;
9、getch(); fclose(fp); void main()int c,flag=0;struct xsnode *head; printf(nnnnttt # # # # # # # # # # # # # # # # # #n); printf(ttt # #n); printf(ttt # -欢迎使用学生管理系统- #n); printf(ttt n); printf(ttt # -计算B101 肖圣龙 - #n); printf(ttt # #n); printf(ttt # # # # # # # # # # # # # # # # # #n); getch(); while(f
10、lag=0) system(cls); printf(nnnn); printf(ttt*n); printf(ttt* 1.成绩录入 *n); printf(ttt* *n); printf(ttt* 2.成绩修改 *n); printf(ttt* *n); printf(ttt* 3.成绩查询 *n); printf(ttt* *n); printf(ttt* 4.成绩浏览 *n); printf(ttt* *n); printf(ttt* 5.成绩删除 *n); printf(ttt* *n); printf(ttt* 6.退出系统 *n); printf(ttt*n); printf(
11、ttt 请按数字键16,进行相应操作:); scanf(%d,&c); fflush(stdin);/*刷新缓冲区*/ switch(c) case 1 : head=luru();break; case 2 : xiugai(head);break; case 3 : chaxun(head);break; case 4 : liulan(head);break; case 5 : shanchu(head);break; case 6 : flag=1;break; default : printf(tt ); getch();break; if(flag=1) break; system
12、(cls); printf(nnnnttt # # # # # # # # # # # # # # # # # #n); printf(ttt # #n); printf(ttt # -谢谢使用- #n); printf(ttt # #n); printf(ttt # # # # # # # # # # # # # # # # # #n); getch();四、实验结果及分析第一步:运行,出现下面屏幕第二步:按回车进入下面屏幕,(1) 成绩录入:(2) 成绩修改:(3) 成绩查询:(4) 成绩浏览:(5) 成绩删除后浏览:(6) 退出系统:二(心得) 对整体C语言来讲,它是一门具有很强的严谨性
13、的课程。首先你的有一个整体的观念,设计好整体的实验功能,比如结构体的运用,链表的运用,成绩录入函数,成绩修改函数,成绩查询函数,成绩浏览函数从最开始的打稿,就要做好每个程序的编写,小到一个符号,都要做好认真的检查。编译过程中,由于程序函数比较多,进行一个一个处理。每个程序都成功运行,在进行整体合并。当出现错误时,我就用上我自己学习的设置断点,进行调试。总体来说,一个程序的完成,是对一个人的一次考验,身体的考验,精神的考验,更加能锻炼人严谨的心。教 师 评 价评定项目ABCD评定项目ABCD算法正确界面美观,布局合理程序结构合理操作熟练语法、语义正确解析完整实验结果正确文字流畅报告规范题解正确其他:评价教师签名:年 月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1