资源描述:
《武汉科技大学c语言课程设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、二○一二~二○一三学年第一学期电子技术学院课程设计报告书课程名称:C程序课程设计班级:电信DB2011级1102班学号:XXXXXXXXX姓名:XXXX指导教师:陈彬二○一二年九月一、需求分析1、题目二学生成绩管理程序任务:自学C语言中相关知识,设计出学生成绩管理程序。要求如下所述:u录入学生信息,每位学生录入的信息有:姓名、学号、性别、班级、和三门功课(数学,英语,计算机)的成绩。以文件(myfile.txt)的形式保存每个学生的所有信息。(实验中:假设3个班,每个班学生人数不得少于5人)学号姓名性别班级数学英语计算机1101王鹏男1班7058981102李燕女2班688895
2、1103赵亚芳女3班584896u增加学生记录,并将增加的信息以文件的(myfile.txt)的形式保存。u删除学生记录,以“学号”、“姓名”为关键字删除记录,若要删除的记录不存在,给出必要的提示信息;u统计各班级学生每门课程的班级平均分,并由高到低排序。u按学号或者姓名查询记录并显示其三门功课成绩;u能浏览显示全部学生成绩,若无记录可以显示,给出必要的提示信息;2、系统功能需求分析该程序中需要有存储、读取外部文件的命令实现将信息储存于指定文件中。程序中需要有建立、修改链表的命令实现数据的动态链表存储方式。程序还需要一系列的提示命令使程序的易用性提高。因为需要对数据进行统计或查询
3、显示,所以需要有对链表数据统计和对链表指定数据进行查找的功能。二、概要设计文件读取模块数据保存模块成绩对比模块数据显示模块数据查找模块数据删除模块数据增加模块成绩单建立模块学生成绩管理程序三、详细设计1、建立结构体structstudent{intnum;charname[10],sex[10];intClass,math,english,computer;structstudent*next;};intn;2、成绩单建立模块开始structstudent*head,*p1,*p2;n=0;p1=p2=(structstudent*)malloc(LEN);输入第一个学生的数据h
4、ead=NULL;p1->num!=0Y链表指针向后移动N输入一个学生的数据输入学号为“0”YNp2->next=NULL;return(head);结束structstudent*creat(void){structstudent*head,*p1,*p2;n=0;p1=p2=(structstudent*)malloc(LEN);printf("请输入学生信息(按学号顺序输入)");printf("学号:");scanf("%d",&p1->num);printf("姓名:");scanf("%s",p1->name);printf("性别:");scanf("%s",p
5、1->sex);printf("班级:");scanf("%d",&p1->Class);printf("数学:");scanf("%d",&p1->math);printf("英语:");scanf("%d",&p1->english);printf("计算机:");scanf("%d",&p1->computer);head=NULL;while(1){n=n+1;if(n==1)head=p1;elsep2->next=p1;p2=p1;p1=(structstudent*)malloc(LEN);printf("请输入学生信息(按学号顺序输入)[当不再输入时在学号处输
6、入"0"结束]");printf("学号:");scanf("%d",&p1->num);if(p1->num==0)break;elseprintf("姓名:");scanf("%s",p1->name);printf("性别:");scanf("%s",p1->sex);printf("班级:");scanf("%d",&p1->Class);printf("数学:");scanf("%d",&p1->math);printf("英语:");scanf("%d",&p1->english);printf("计算机:");scanf("%d",&p1->computer
7、);}p2->next=NULL;return(head);}3、数据增加模块开始structstudent*p0,*p1,*p2;p1=head;p0=stud;phead;p0=stud;输入一个学生的数据根据学号顺序找到数据应该插入的位置phead;p0=stud;插入数据返回头指针phead;p0=stud;结束structstudent*insert(structstudent*head,structstudent*stud){structstudent*p0,*p1,