数据结构基础

上传人:z****2 文档编号:107883224 上传时间:2022-06-15 格式:DOC 页数:26 大小:325.50KB
收藏 版权申诉 举报 下载
数据结构基础_第1页
第1页 / 共26页
数据结构基础_第2页
第2页 / 共26页
数据结构基础_第3页
第3页 / 共26页
资源描述:

《数据结构基础》由会员分享,可在线阅读,更多相关《数据结构基础(26页珍藏版)》请在装配图网上搜索。

1、学习-好资料学号:Xxxxx数据结构基础课程报告题目学生成绩管理系统学院XXX专业XXX班级XXX姓名XXX指导教师XXX2016年11月27日学习-好资料目录目录21.任务与目的.32.题目描述.33.设计目的.34.需求分析.35.问题分析及算法设计45.1问题分析45.2算法设计46.系统设计方案.46.1系统功能46.2程序设计及运行结果5(1)主函数模块设计5(2)“屏幕”一显示函数模块设计.6(3)结构体定义6(5)信息输入模块7(6)显示模块及结果8(7)查找模块及结果|9(8)删除模块11(9)插入函数模块11(10)排序函数模块13(11)修改模块147总结158参考文献16

2、9附录代码1616数据结构基础课程报告成绩评定表28学习-好资料1. 任务与目的数据结构基础大作业要求学生对所选题目进行问题的分析、数据结构的比较选取、数据结构的存储方法以及算法的分析和编程实现。本课程的主要目的是强化和巩固常用的数据结构使用方法,培养综合运用所学知识,分析和解决实际问题的能力。通过大作业的完成,促使学生将数据结构的理论方法与实际应用相结合,让学生能比较全面而辩证地分析和处理问题,逐步树立正确的算法设计思想,熟练掌握常用数据结构的具体实现方法和分析方法,以及软件开发的基本技术和工作过程,培养严谨认真的科学态度和务实的工作作风。2. 题目描述学生成绩管理:实现功能:输入、输出、插

3、入、删除、查找、显示、保存、排序、修改、退出等。用户使用该系统主要在于实现对学生信息的编写、修改、保存等操作。3. 设计目的(1)基本掌握程序设计的基本思路、方法和技能;(2)达到能掌握数据结构的基本知识并加以应用;(3)能够利用所学的基本知识和技能,解决简单的程序设计问4. (4)强化和巩固常用的数据结构使用方法,培养综合运用所学知识,分析和解决实际问题的能力需求分析作为基本的程序设计,显示界面要具有美观性,所以在程序设计时要考虑程序输出时的格式,所以我在编写程序时,从显示界面到各个部分都经过了详细的规划和编排,比如在下一个程序功能执行时,对前面显示的东西用system(Cls)进行清除操作

4、,这样操作之后在屏幕上显示就不会杂乱了。要设计的学生信息管理系统要完成学生信息的建立、显示、查找、插入、删除、保存、排序、修改、退出等基本功能,程序设计基础建立在已学过的数据结构、C语言等知识层面上,可自己增加程序的难度。我要设计的程序主要应用到c编程方法学和数据结构2的主要知识。基本要求需实现程序的编译、链接、调试、运行。主要解决的问题是程序的编写,操更多精品文档学习-好资料作平台为VC+6.05问题分析及算法设计5.1问题分析这个程序要设计的整体思想就是模块化编程,因为程序集多个功能于一体,然后根据用户输入的要求执行相应的子模块,以此达到功能的实现。所以主函数就可以用switch结构实现,

5、然后分别按功能编写模块函数了。5.2算法设计经过问题分析,程序的大体结构已经确定,然后就要考虑该使用那些算法了。因为程序要存储一连串的学生信息,且包含多个数据项,所以可以用数组、结构体、顺序表、单链表等实现,但要实现查找、排序、删除等各种功能,单链表就显得更适宜些,同时也能锻炼我们对链表的使用技巧,所以经过思量,决定用单链表来实现编程。6.系统设计方案6.1系统功能首先要确定学生信息应包括:学号,姓名,科目,成绩业等。其次,学生信息管理系统应提供的功能包括:(1)系统以菜单方式显示(2)要有学生信息录入功能(3)学生信息浏览功能学生信息用文件保存(5)按学号查询、按姓名查询(6)可以按学号、科

6、目成绩等排序学生信息的删除修改(8)学生信息的修改学习-好资料(9)退出结合实际情况及自身能力,确定了以上要编写并实现的功能。6.2程序设计及运行结果(1)主函数模块设计之前已确定主函数可以用switch结构实现,只要将系统功能经分析排版后写入主函数中的每个case即可,所以主函数可如下编写3/主函数intmain(void)menu();whileprintf(tt请选择相应的功能:scanf(%d,&a);switch(a)case0:case1:case2:case3:case4:case5:case6:case7:case8:default:break;调用显示函数);退出系统学生信息

7、输入信息显示/查找信息/删除学生信息/插入学生信息(尾插法)/学生信息排序修改信息保存成绩至文件输入其它情况,循环重新输入system(pause);学习-好资料return0;如此编写,可以使主函数既简单易懂,又不杂乱,能让读者一目了然,有了主函数,之后就可以往主函数中加子模块了。(2)“屏幕”一显示函数模块设计显示屏幕,也就是要给用户提供功能选择的主界面,需明了,整齐,要达到用户感觉到系统操作很其实简单的效果,所以编译排版之后的界面效果见下图I降D:谟雄时羞!|0品ug1234.exe-学生信息管理系统1、信宜输人2、显八彳尸鳥、3、査找学生信息4s删除指定学生的信息久插入学生信息氣排序7

8、、修改Ox退岀系统请选择相应的功能;|可以从上图看出,只要用户按自己需求进行操作,就可以实现相应功能了。程序设计的该函数为voidmenu()。(3)结构体定义“结构体名”用作结构体类型的标志,它又称“结构体标记”。声明一个结构体类型的一般形式为:Struct结构体名成员表列;大括弧内是该结构体中的各个成员,由它们组成一个结构体。对各成员都应进行类型声更多精品文档学习-好资料明,即类型名成员名我在结构体中定义了两个字符数组及三个整形变量,用于存储学号、姓名、三个科目的成绩,并在结构体中定义了一个指针,为单链表所需,用于指向下一结点。/建立学生类学号姓名/数分/英语数据结构/指针/头指针type

9、defstructstudentcharnum20;charname20;intmath;intEnglish;intData;structstudent*next;student;student*head=NULL;(5) 信息输入模块对应函数为voidcreate。,可用链表建立学生信息,所以先要建立一个头结点p1=(student*)malloc(sizeof(student);/建立头结点然后让指针指向下一个结点,依次根据用户输入的学生个数循环建立链表(学生信息)所以主要循环为whilewhile(numbervnumb)/循环输入学生信息p2=(student*)malloc(siz

10、eof(student);/建立结点scanf(%s%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+;printf(信息输入成功!n);/链表的长度/结点相继后移/记录已输入的学生个数/返回成功鶴软II髒応D:tm!lD&bug1234.exe,t输入学号、姓名、数分、英语、数据结构001小米988779003小明998939002天天B7

11、39S7功能的选择是用户根据选择模块一屏幕上的提示做出的操作,可以看到,在进行下操作之前,系统会进行清屏,然后显示本次的操作结果。(6) 显示模块及结果voiddisplay。,这个模块并不是每个操作结果的输出函数,它会输出最终的结果,在进行了输入学生信息操作后,进行这个功能,系统就会输出全部的结果,见下图。可以看出,系统已把上次的操作清屏,然后根据输入的2功能进行了显示操作。输出是按循环输出的,用指针指向链表的各项数据,依次输出。主要代码为while(p!=NULL)学习-好资料printf(tt%-13s%-11s%-9d%-9d%dn,p-num,p-name,p-math,p-Engl

12、ish,p-Data);p=p-next;D:miJDebug1234.exe学牛信息管理系统Is信區塹入2、見丿討二.宜、3、查找学生信息冬删除指定学生的信息5s插入学生信息6.排序人修改保存0.退岀系统请选择相应的功能:2所有的学生信息如下:学号姓名数分英语数据结构|001A988779003明998939002天天878987请按任意键继续.(7) 查找模块及结果在程序设计时,并没有采用单一的按学号或按姓名查找的方式,而是既可以按学号查找,亦可按姓名查找,所以编写了voidsearch1()和voidsearch2()这两个查找函数,当输入的学号或姓名不在记录时,系统会显示“查无此人”,

13、主要代码如下,链表不空时循环查找,然后用字符串比较函数判断查找是否成功。while(p!=NULL)学习-好资料if(strcmp(p-num,xh)=O)/查找成功,显示查找信息./显示查找到的信息if(p=NULL)链表遍历完成,返回查找信息printf(查无此人n);蓿选择相应的功蝕3请选择是按学号查找还是按姓名查找,若是学号就按1,姓名按21请输入学号000查无此人请按任意键继续*蓿选择相应的功能:、请选择是按学号查找还杲按姓名查找,若是学号就按1,姓名按22请输入名字天天W数据结构002天天878987请选择相应的功能:请选择是按学号査找还是按姓名查找,若是学号就按1,姓名按21请输

14、入学号001宰数据结构001小米9S8779学习-好资料(8) 删除模块voidDelete()为删除模块函数,按输入的学号删除信息,首先会根据用户输入的学号查找该学号对应的信息,如果记录中没有,则系统返回查无此人,如果查找成功,则会删除该学生的所有信息,代码同查找一样,在while循环中用了字符串比较函数,若查找成功,贝U删除,否则返回查无此人。请选择相应的功能4怀输入要删除的学生的学号:001删除成功!统系管息123456780自心11拥自S生息信学亠信入息疋幻生输信学指学所有的学生信息如黔心姬2学号姓名数分英语数据结构003小明998939002天天878987请按任意键继缘.(9) 插

15、入函数模块voidinsert()为插入函数,主要用了尾插法插入学生信息,主要代码如下voidinsert()q=(student*)malloc(sizeof(student);建立新的结点.输入学生信息while(p!=NULL)循环学习-好资料if(strcmp(p-num,q-num)=O)/判断链表中是否已有该学号return;p=p-next;p=head;for(i=0;inext;q-next=p-next;p-next=q;length+;printf(插入成功!n);printf(该学号已经存在,无法插入!n);/若链表中已有该学号,则返回循环尾插法插入/插入后链表长度增加

16、/返回成功请选择相应的功能,5请输入你要插入的学生的学号、姓名、数分、英语、数据结构:002聚源877687该学号已经存在,无法插入!请按任意键继续请选相应的功能;5请输入你要插入的学生的学号、姓名、数分、英语、数据结构:004和分877687插入舫和请按任意键继续I请选择相应的功能匕2所有的学生信息如下:号学234ooOooO数分英语数据结构878987998939877687请按任意键继续.插入函数的难点在于新结点建立、信息输入、将信息插入链表等步骤的链接,还有结点的移动等核心算法。学习-好资料(10) 排序函数模块排序模块是我遇到的最大难题,难在不仅要对整形数比大小,还要对学号这个字符串

17、比大小,在编译时,老是出错,也想了好些天,但在同学及老师的帮助下还是把问题解决了,而关键在于对字符串比较函数的应用if(strcmp(p-num,p-next-num)0),这样编写问题就迎刃而解了。排序模块主要有按学号排序、按各科目成绩排序。按学号排序时,用的排序方法为结点交换的排序方法,主要代码为while(head-next!=tail)头指针不等于尾指针时prep=head;p=head-next;while(p-next!=tail)if(strcmp(p-num,p-next-num)0)/利用字符串比较函数对学号比较大小temp=p-next;临时保存p的后继结点的值prep-n

18、ext=p-next;p-next=p-next-next;prep-next-next=p;p=temp;/完成交换p=p-next;/节点后移prep=prep-next;tail=p;完成排序voidpaixusf(student*&L)student*p,*pre,*q;p=L-next-next;L-next-next=NULL;while(p!=NULL)q=p-next;pre=L;将学生单链表按数分成绩递减排序而按科目成绩排序时,米用的都是插入法排序,按成绩递减序列排序,核心算法如下/p指向L的第2个数据结点/构造只含一个数据结点的有序表/q保存*p结点后继结点的指针从有序表开

19、头进行比较,pre指向插入*p的前驱结点在有序表中找插入*p的前驱结点*pre将*pre之后插入*pwhile(pre-next!=NULL&pre-next-mathp-math)pre=pre-next;p-next=pre-next;扫描原单链表余下的结点pre-next=p;p=q;学习-好资料运行结果为kR心J干叩口化口丁*闩匕27请选择杲按学号排序还是按高数,英语,数据结构排序若是学号就按1,数分按N英语按乳数据结构按41经过排序后的信息.聲乡曲功学号002003004请按任意键继续8799S7898976873987L冃口丿工L口冃SU请选择是按学号排序还是按高数,英语,数据结构

20、排序若是学号就按1,数分按N英语按M数据结构按42经过排序后的信息为:学号姓名数分英语数据结构003小明998939004穎分877687002天天878987请按任意键继续(11) 修改模块修改的时候,首先是根据用户输入的学号查找该学生,若查找成功,则将用户输入的信息临时保存,然后替换原先的信息5while(p!=NULL)if(strcmp(p-num,xg)=O)II查找成功,并显示被修改者的信息显示要被修给的学生信息printf(请输入你要修改的学生的学号、姓名、数分、英语、数据结构:n);scanf(%s%s%d%d%d,num1,namel,&math1,&Englishl,&Da

21、ta1);strcpy(p-num,num1);II字符串复制函数修改学号,名字strcpy(p-name,name1);p-math=math1;p-English=English1;p-Data=Data1;/修改成绩printf(修改成功n);t=O;II修改成功,赋值为0学习-好资料p=p-next;指针移动if(t=1)/查找失败,无修改者信息printf(找不到要修改的学号!n);运行结果比较修改前请选择相应的功能;17输入需要修改的学牛的学号;003这是你要修改的学生的信息P学号姓名数分英语数据结构003小明998939请输入你要修改的学生的学号、姓名、数分、英语、数据结构:00

22、3大小明100100100修改成动请按任意键继续.*修改后请选择相应的功能:2所有的学生信息如下:学号姓名数分英语数据结构003大小明100100100004积分877687002天天8789877总结在本次课程设计期间,我遇到了一些难点,开始的时候,代码中有许多的错误,特别是有一些调试方面的错误让我束手无策,随后的编程中又遇到了一些未知错误,只能一句一句去编译调试,遇到一些算法上的难题,就得去翻阅其它资料,书本看了一遍又一遍,算法推演了一遍又一遍,但付出总有收获的,经过几天的坚持不懈,程序编写成功,然后经过不断地优化排版,最终程序完美出炉,也达到了我心目中的目标。通过这段时间的课程设计,不仅

23、使我对线性表的链式储存有了更深的认识和理解,也使我更加明白线性表的链式储存在信息技术中的重要性和地位。许多的错误让我明白了一个道更多精品文档学习-好资料理-毅力和信心对成功是非常重要的。同时,对于编程者而言,思路清晰是相当重要的。在适当的时候和同学一起交流探讨是一个十分好的学习机会。请教老师也很重要,因为毕竟我们是新手,对于某些问题很难弄清楚。而且,某些错误对于我们来说有时候想半天都弄不来,但老师几下下就搞好了,这样就更加有效地节约了时间。同时,这次课程设计还让我学会了如何系统、正规的做一份课程设计报告,明白了做事情只有认真,才能真正做得更好!8参考文献1 王舜燕/李民主编C编程方法学一武汉:

24、武汉理工大学出版社,2013.9.2 严蔚敏/吴伟民.数据结构.一北京:清华大学出版社,2007.3 (美)DawnGriffiths著/程亦超译.嗨翻C语言.一北京:人民邮电出版社,2013.94 赵端阳/左伍衡编著.算法分析与设计.一北京:清华大学出版社,2012.39附录代码#include#include#include#include#includevwindows.h#defineSTUDENT2typedefstructstudentcharnum20;charname20;intmath;intEnglish;intData;structstudent*next;student

25、;student*head=NULL;intlength;voidcreate()student*p1,*p2;/建立学生类/学号/姓名/数分/英语/数据结构/指针/头指针/链表的长度/建立链表,学生信息建立函数学习-好资料length=O;intnumb;/存储用户输入的学生个数intnumber=O;/存储已输入的学生个数p1=(student*)malloc(sizeof(student);/建立头结点p1-num;if(head=NULL)head=p1;/头结点地址赋于头指针printf(tt请先输入学生的个数:);/保存要输入的学生个数,用于后面循环输入信息scanf(%d,&nu

26、mb);Sleep(666);system(Cls);/清屏printf(输入学号、姓名、数分、英语、数据结构:n);while(numbervnumb)/循环输入学生信息p2=(student*)malloc(sizeof(student);/建立结点scanf(%s%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-n

27、ext;number+;printf(信息输入成功!n);system(pause);system(Cls);return;voiddisplay()显示函数,显示用户输入的学生信息student*p=head-next;printf(所有的学生信息如下:n);printf(ttn);printf(tt学号姓名数分英语数据结构n);while(p!=NULL)printf(tt%-13s%-11s%-9d%-9d%dn,p-num,p-name,p-math,p-English,p-Data);p=p-next;学习-好资料printf(ttn)system(pause);system(Cls

28、);return;voidsearch1()charxh20;student*p=head-next;printf(请输入学号);scanf(%s,xh);while(p!=NULL)if(strcmp(p-num,xh)=0)printf(ttprintf(tt按学号查找保存用户输入的学号,用于后续比较查找/查找成功,显示查找信息n)学号姓名数分英语数据结构n);printf(tt%-13s%-11s%-9d%-9d%dn,p-num,p-name,p-math,p-English,p-Data);printf(ttn);return;p=p-next;if(p=NULL)/链表遍历完成,返

29、回查找信息printf(查无此人n);system(pause);system(Cls);voidsearch2()charmz20;student*p=head-next;printf(请输入名字);scanf(%s,mz);while(p!=NULL)if(strcmp(p-name,mz)=0)printf(ttprintf(tt按学号查找保存用户输入的名字,用于后续比较查找/查找成功,显示查找信息n)学号姓名数分英语数据结构n);printf(tt%-13s%-11s%-9d%-9d%dn,p-num,p-name,p-math,p-English,p-Data);printf(ttn

30、);学习-好资料return;p=p-next;if(p=NULL)/链表遍历完成,返回查找信息printf(查无此人n);system(pause);system(Cls);voidinsert()/尾插法插入学生信息inti;student*p,*q;p=head;n);printf(请输入你要插入的学生的学号、姓名、数分、英语、数据结构:q=(student*)malloc(sizeof(student);/建立新的结点scanf(%s%s%d%d%d,q-num,q-name,&q-math,&q-English,&q-Data);while(p!=NULL)if(strcmp(p-n

31、um,q-num)=0)/判断链表中是否已有该学号printf(该学号已经存在,无法插入!n);system(pause);system(Cls);return;p=p-next;p=head;for(i=0;inext;q-next=p-next;p-next=q;length+;printf(插入成功!n);system(pause);system(Cls);return;voidDelete()charb20;若链表中已有该学号,则返回/循环尾插法插入/插入后链表长度增加/返回成功/按输入的学号删除信息/用于保存用户输入的要删除学生的学号,用于比较student*p,*q;q=head,

32、p=head-next;printf(请输入要删除的学生的学号:n);scanf(%s,b);while(p!=NULL)if(strcmp(p-num,b)=0)/判断相同则删除/删除指定结点/结点释放删除成功后返回/指针后移/遍历完成,未找到信息n);q-next=p-next;free(p);length-;printf(删除成功!n);return;p=p-next;q=q-next;if(p=NULL)printf(找不到要删除的学号!/return;system(pause);system(Cls);printf(ttnprintf(tt|学生信息管理系统|n);printf(tt

33、|1、信息输入|n);printf(tt|2、显示信息|n);printf(tt|3、查找学生信息|n);printf(tt|4、删除指定学生的信息|n);printf(tt|5、插入学生信息|n);printf(tt|6、排序|n);printf(tt|7、修改|n);printf(tt|8、保存|n);printf(tt|0、退出系统|n);printf(tt|n);return;/显示函数-屏幕voidmenu()voidpaixuxh(student*head)/利用结点交换的方法对学号进行排序student*p,*prep,*temp,*tail;/定义所需结点tail=NULL;w

34、hile(head-next!=tail)prep=head;p=head-next;while(p-next!=tail)if(strcmp(p-num,p-next-num)0)/利用字符串比较函数对学号比较大小temp=p-next;临时保存p的后继结点的值prep-next=p-next;p-next=p-next-next;prep-next-next=p;p=temp;/完成交换/节点后移p=p-next;prep=prep-next;tail=p;/第一个whileprintf(tt排序成功n);voidpaixusf(student*&L)student*p,*pre,*q;p

35、=L-next-next;L-next-next=NULL;/将学生单链表按数分成绩递减排序strcmp(/p指向L的第2个数据结点构造只含一个数据结点的有序表while(p!=NULL)q=p-next;q保存*p结点后继结点的指针pre=L;从有序表开头进行比较,pre指向插入*p的前驱结点while(pre-next!=NULL&pre-next-mathp-math)pre=pre-next;p-next=pre-next;pre-next=p;p=q;/在有序表中找插入*p的前驱结点*pre将*pre之后插入*p/扫描原单链表余下的结点voidpaixuyy(student*&L)/

36、将学生单链表按英语成绩递减排序student*p,*pre,*q;p=L-next-next;L-next-next=NULL;while(p!=NULL)q=p-next;pre=L;while(pre-next!=NULL&pre-next-Englishp-English)pre=pre-next;p-next=pre-next;pre-next=p;p=q;voidpaixusj(student*&L)II将学生单链表按数据结构成绩递减排序student*p,*pre,*q;p=L-next-next;L-next-next=NULL;while(p!=NULL)q=p-next;pr

37、e=L;while(pre-next!=NULL&pre-next-Datap-Data)pre=pre-next;p-next=pre-next;pre-next=p;p=q;voidPrint(student*head)输出函数printf(tt学号姓名数分英语数据结构n);while(head!=NULL)printf(tt%-13s%-11s%-9d%-9d%dn,head-num,head-name,head-math,head-English,head-Data);head=head-next;system(pause);system(Cls);将所有记录写入文件/定义文件指针/定

38、义文件名输入文件名打开文件voidSaveandfree()FILE*fp;student*p=head-next;charfilename20;printf(ttt保存数据n);printf(ttt输入文件名:);scanf(ttt%s,filename);if(fp=fopen(filename,w)=NULL)/printf(ttt打开文件失败n);system(pause);return;数分英语数据结构n);/循环写入文件fprintf(fp,tt学号姓名while(p!=NULL)fprintf(fp,tt%-13s%-11s%-9d%-9d%dn,p-num,p-name,p-m

39、ath,p-English,p-Data)p=p-next;fclose(fp);/关闭文件printf(成功!n);/返回成功信息system(pause);system(Cls);voidxiugei(student*head)charxg20;charnum120;charname120;intmath1;intEnglish1;intData1,t=1;student*p=head-next;printf(输入需要修改的学生的学号:scanf(%s,xg);while(p!=NULL)if(strcmp(p-num,xg)=0)/学生信息修改函数/保存修改者的学号/保存修改时输入的学号

40、/保存修改时输入的名字/保存修改时输入的数分/保存修改时输入的英语保存修改时输入的数据结构,t用于辅助判断);/查找成功,并显示被修改者的信息printf(这是你要修改的学生的信息printf(tt学号姓名n);数分英语数据结构n);printf(tt%-13s%-11s%-9d%-9d%dn,p-num,p-name,p-math,p-English,p-Data);printf(请输入你要修改的学生的学号、姓名、数分、英语、数据结构:n);scanf(%s%s%d%d%d,num1,name1,&math1,&English1,&Data1);strcpy(p-num,num1);字符串复

41、制函数修改学号,名字strcpy(p-name,name1);p-math=math1;p-English=English1;p-Data=Data1;/修改成绩printf(修改成功n);t=0;/修改成功,赋值为0p=p-next;/指针移动if(t=1)/查找失败,无修改者信息学习-好资料printf(找不到要修改的学号!n);system(pause);system(Cls);/主函数intmain(void)inta,c;/辅助选择menu();调用显示函数intchoice;while(1)printf(tt请选择相应的功能:);scanf(%d,&a);switch(a)case

42、0:return0;/退出系统case1:学生信息输入create();输入函数menu();break;case2:信息显示if(head)判断链表是否空display();/显示函数menu();else空链表,提小建表printf(链表为空,请先建立链表!n);Sleep(666);system(Cls);menu();break;case3:查找信息if(head)更多精品文档printf(请选择是按学号查找还是按姓名查找,若是学号就按1,姓名按2n);seanf(%d,&choice);if(choice=1)/按学号查找search1();/学号查找函数else按姓名查找searc

43、h2();/姓名查找函数menu();elseprintf(链表为空,请先建立链表!n);Sleep(666);system(Cls);menu();break;case4:删除学生信息if(head)Delete();删除函数menu();elseprintf(链表为空,请先建立链表!n);Sleep(666);system(Cls);menu();break;case5:/插入学生信息(尾插法)if(head)insert();插入函数menu();elseprintf(链表为空,请先建立链表!n);Sleep(666);system(Cls);menu();break;case6:if(

44、head)/学生信息排序n若是学printf(请选择是按学号排序还是按高数,英语,数据结构排序号就按1,数分按2,英语按3,数据结构按4n);scanf(%d,&c);switch(c)case1:/按学号排序paixuxh(head);/学号排序函数printf(经过排序后的信息为:n);Print(head-next);/输出函数menu();break;case2:/按数分排序paixusf(head);/数分排序函数printf(经过排序后的信息为:n);Print(head-next);menu();break;case3:/按英语排序paixuyy(head);/英语排序函数pri

45、ntf(经过排序后的信息为:n);Print(head-next);menu();break;case4:/按数据结构排序paixusj(head);/数据结构排序函数printf(经过排序后的信息为:n);Print(head-next);menu();break;default:输入其它时,循环重新输入break;elseprintf(链表为空,请先建立链表!n);Sleep(666);system(Cls);menu();break;case7:/修改信息学习-好资料if(head)xiugei(head);修改函数menu();elseprintf(链表为空,请先建立链表!n);Sle

46、ep(666);system(Cls);menu();break;case8:保存成绩至文件if(head)Saveandfree();/保存函数menu();elseprintf(链表为空,请先建立链表!n);Sleep(666);system(Cls);menu();default:/输入其它情况,循环重新输入break;system(pause);return0;数据结构基础课程报告成绩评定表学院:XXX专业班级:XXX姓名:XXX学号:XXXXXX序号评分项目满分实得分1学习态度、遵守纪律102数据结构分析与设计的正确性303算法设计、结果正确性204选题难度、代码实现规范性205设计报告的规范性106设计验收10总得分评语:指导教师签名:2016年11月27日

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!