资源描述:
《基于链表的学生信息管理系统实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.《C语言程序设计实训2》报告设计题目:基于链表的学生信息管理系统学院名称:信息科学技术学院专业:软件工程班级:x班姓名:xxx学号xxx提交日期:2014年6月..一、实验内容编写并调试程序,实现学校各专业班级学生信息的管理。定义学生信息的链表结点类型,包括:学号、姓名、班级、专业、3门成绩。二、实验要求(1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择,调用相应的函数。(2)定义函数CreateList:按学号由小到大,建立有序的链表。逆序输入n个学生信息(调用n次input),学号大的先输入,建立带头结点的单链表。(3)
2、定义函数Output:以指向某个学生结点的指针为参数,将学生信息表格化输出。(4)定义函数Save:将某个学生信息存入文件。(5)定义函数Fetch:从文件中随机读取某个学生的信息。(6)定义函数Search_num:查找指定学号的学生,返回指向该学生结点的指针。(7)定义函数InsertList:在函数中输入一个学生的信息,将该学生信息插入到链表中的相应位置,并保持此链表按学号的有序性。(8)定义函数Delete_num:从链表中删除指定学号的学生。(9)定义函数Search_major_subject_score:查找某个专业的、某门课程
3、的成绩小于某个分数的学生,返回指向该学生结点的指针。(10)定义函数Delete_major_subject:从链表中删除某个专业的、某门课程的成绩小于某个分数的学生。三、算法流程图四、程序清单(关键语句和变量加注释)#include//预编译命令#include#includestructstudent{intnum;//学号charname[15];//姓名charmajor[10];//专业(computer,software,network)intclassNo;//班级(1-
4、2)intscore[3];//3门课的成绩(0-2)structstudent*next;};typedefstructstudentSTU;//--------------------------------输入--------------------------------STU*Input(){STU*p;if((p=(STU*)malloc(sizeof(STU)))==NULL)..{printf("头结点建立错误!");returnp;}printf("请输入学生的学号:");scanf("%d",&p->num);prin
5、tf("请输入学生的姓名:");scanf("%s",p->name);printf("请输入学生的专业:");scanf("%s",p->major);printf("请输入学生的班级:");scanf("%d",&p->classNo);printf("请输入学生的成绩0:");scanf("%d",&p->score[0]);printf("请输入学生的成绩1:");scanf("%d",&p->score[1]);printf("请输入学生的成绩2:");scanf("%d",&p->score[2]);returnp;}//----
6、----------------------------建立链表------------------------------STU*CreateList(intn){structstudent*head,*p,*w;inti=0;printf("请输入第%d个学生信息",n);p=Input();while(inext=NULL;}else{printf("请输入第%d个学生信息",n-i+1);w=Input();..head=w;w->next=p;p=w
7、;}}returnhead;}//-------------------------------输出------------------------------voidOutput(STU*p){printf("%dt%st%st%dt%dt%dt%d",p->num,p->name,p->major,p->classNo,p->score[0],p->score[1],p->score[2]);}//-------------------------------输出所有---------------------------v
8、oidprint(STU*head){STU*p;p=head;if(head!=NULL)printf("学号t姓名t专业t班级t成绩0t成绩1t成绩