您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 学生信息管理系统数据结构课程设计
华中科技大学文华学院数据结构课程设计报告题目:学生信息管理系统专业:计算机应用与技术学号:姓名:指导老师:时间:一、总体框架图1、题目:学生信息管理系统2、设计内容及要求:内容:完成简单的学生信息管理系统要求:(1)学生信息包括:学号、姓名、数学成绩、英语成绩、数构成绩;(2)用链表存放学生信息;(3)实现简单的菜单调用;(4)程序的功能包括:学生信息链表的建立;学生信息的显示;学生信息的查询;学生信息的删除;学生信息的插入;编写算法,以实现基本要求。二、本程序用到的基本操作InintList(&l):操作结果:构造一个空的线性表L。DestroList(&L)初始条件:线性表已存在。操作结果:销毁线性表。ListInsert(&L,i,e)初始条件:线性表L已存在,操作结果:在L中第i个位置之前插入新的数据元素e。L的长度加1.ListDelete(&L,i,e)初始条件:线性表L已存在且非空操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1.}ADTList三、模块设计模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明模块二:结构体的建立,定义学生的学号,名字,和各成绩模块三:学生信息系统使用菜单声明函数voidmenu(),对整个系统进行明模块四:链表的建立,用voidcreat()来建立链表模块五:显示学生信息,声明voidprint()显示学生的信息模块六:学生信息的查找声明voidsearch()为查找函数,通过switch(a)设定用学号查找,用姓名查找两个分支模块七:删除学生信息通过voiddelete()实现学生信息的删除,确定要删除的信息,再删除掉。模块七:插入学生信息,通过voidinsert()为插入函数,通过switch(a)插入到指定学生的后面。模块八:学生信息按学号排序声明voidsort()将录入学生系按升序排列,用的是“冒泡排序法”实现排序四、系统设计流程图五、源代码#includestdio.h#includestdlib.h#includestring.h#defineSTUDENT2typedefstructstudent学生信息管理系统菜单选择退出菜单系统建立链表显示学生信息查询学生信息删除某个学生信息插入一个学生信息{intnum;//学号charname[20];//姓名intmath;//高数intEnglish;//英语intData;//数据结构structstudent*next;}student;student*head=NULL;intlength;//链表的长度voidcreate(){student*p1,*p2;length=0;intnumber=0;p1=(student*)malloc(sizeof(student));p1-num=-1;if(head==NULL)head=p1;printf(请输入学生的学号、姓名、高数、英语、数据结构:\n);while(number=3){p2=(student*)malloc(sizeof(student));scanf(%d%s%d%d%d,&p2-num,p2-name,&p2-math,&p2-English,&p2-Data);//输入学生信息if(p2-num==0){printf(链表创建完成!\n);break;}length++;//链表的长度p1-next=p2;p2-next=NULL;p1=p1-next;number++;}return;}voiddisplay(){student*p=head-next;printf(链表中所有的学生信息如下:\n);while(p!=NULL){printf(%d%s%d%d%d\n,p-num,p-name,p-math,p-English,p-Data);p=p-next;}return;}voidsearch(){intnum_;student*p=head-next;printf(需要查找的学生学号为:);scanf(%d,&num_);while(p!=NULL){if(p-num==num_){printf(学号为%d的学生的信息如下:\n,num_);printf(%d%s%d%d%d\n,p-num,p-name,p-math,p-English,p-Data);return;}p=p-next;}if(p==NULL)printf(无此记录!\n);return;}voidsearch1(){charna_me[20];student*p=head-next;printf(需要查找的学生姓名为:);scanf(%s,na_me);while(p!=NULL){if(!(strcmp(p-name,na_me))){printf(姓名为%s的学生的信息如下:\n,na_me);printf(%d%s%d%d%d\n,p-num,p-name,p-math,p-English,p-Data);return;}p=p-next;}if(p==NULL)printf(无此记录!\n);return;}voidinsert(){intnum_,i;student*p,*q;p=head;printf(请输入你要插入位置:);scanf(%d,&num_);if(num_length){printf(找不到要插入的位置\n);return;}else{printf(请输入你要插入的学生的学号、姓名、高数、英语、数据结构:\n);q=(student*)malloc(sizeof(student));scanf(%d%s%d%d%d,&q-num,q-name,&q-math,&q-English,&q-Data);while(p!=NULL){if(p-num==q-num){printf(该学号已经存在,无法插入!\n);return;}p=p-next;}p=head;for(i=0;inum_;i++)p=p-next;q-next=p-next;p-next=q;length++;printf(插入成功!\n);return;}}voidDelete(){intnum_;student*p,*q;q=head,p=head-next;printf(请输入要删除的学生的学号:\n);scanf(%d,&num_);while(p!=NULL){if(p-num==num_){q-next=p-next;free(p);length--;printf(删除成功!\n);return;}p=p-next;q=q-next;}if(p==NULL){printf(找不到要删除的编号!\n);return;}}voidmenu(){printf(________________________________________________________________\n);printf(|学生信息管理系统|\n);printf(|0、退出系统|\n);printf(|1、建立链表|\n);printf(|2、显示链表|\n);printf(|3、查找链表中的某个学生信息|\n);printf(|4、删除链表中指定学号的学生|\n);printf(|5、指定的位置上插入一个学生|\n);printf(________________________________________________________________\n);return;}intmain(void){inta;menu();intchoice;while(1){printf(请选择相应的功能:);scanf(%d,&a);switch(a){case0:return0;case1:create();menu();break;case2:if(head){display();menu();}else{printf(链表为空,请先建立链表!\n);menu();}break;case3:if(head){printf(请选择是按学号查找还是按姓名查找,若是学号就按7,姓名按8\n);scanf(%d,&choice);if(choice==7){search();}else{search1();}menu();}else{printf(链表为空,请先建立链表!\n);menu();}break;case4:if(head){Delete();menu();}else{printf(链表为空,请先建立链表!\n);menu();}break;case5:if(head){insert();menu();}else{printf(链表为空,请先建立链表!\n);menu();}break;default:break;}}system(pause);return0;}六、程序结果建立链表显示链表查询学生信息按学号查按姓名查删除信息插入信息退出系统七、心得体会这次的《学生信息管理系统》的设计中,使我懂得课堂上的知识,必须要通过实践操作才能掌握。在练习中,遇到一些问题,需要具体分析,具体操作,不断调试。在这过程中,遇到过很多问题。刚建立链表时,总是出错,经过不断地调试后来解决了。通过这次的设计,我发现了自身知识的欠缺,上机操作的经验不足,以及粗心。比如,一些错误不知道怎么改,后来同学讨论后才调试成功,还有字符串的比较都不熟,有时掉了地址符等等。虽然有很多欠缺,但在这过程中我也受益良多,感觉自己对程序的处理越来越清晰。在调试过程中,我发现有时一个小小的错误也会给程序带来很大的麻烦,所以以后应该更加细心,多多操作,积累经验。
本文标题:学生信息管理系统数据结构课程设计
链接地址:https://www.777doc.com/doc-5609839 .html