数据结构课程设计_数据结构课程设计全
数据结构课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据结构课程设计全”。
数据结构》课程设计报告
华 北 科 技 学 院 《数据结构》
课程设计说明书
班级: 计科B12 姓名: 学号: 20120 设计题目: 宿舍管理查询系统 设计时间: 2014-6-16 至 2014-6-27 指导教师: 栾尚敏 评 语 评阅成绩: 评阅教师:
数据结构》课程设计报告
目录需求分析...............................................................................................................................1
1.1 功能需求.....................................................................................................................1 1.2 系统的开发运行环境................................................................................................1 2 总体设计...............................................................................................................................1
2.1 系统功能模块.............................................................................................................1 2.2子模块设计.................................................................................................................2 3 程序概要设计.......................................................................................................................4
3.1 各模块的算法设计说明............................................................................................4 3.2 存储结构设计说明....................................................................................................7 4 运行及调试...........................................................................................................................8
4.1 运行结果.....................................................................................................................8 4.2 结果分析...................................................................................................................11 5 小结和展望.........................................................................................................................12 5.1 小结...........................................................................................................................12 5.2 心得体会与展望......................................................................................................12 参 考 文 献...........................................................................................................................13 附 录........................................................................................................................................13 使用说明书.............................................................................................................................13
-I-
数据结构》课程设计报告
1需求分析
1.1 功能需求
根据要求,我们开始考虑系统应具备的功能:
①要实现交互工作方式,各项操作结束后均应返回主菜单;
②系统本无任何信息数据,要建立数据文件,需开发一个信息录入功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存在内存中,所以我们未开发信息存盘功能;
③信息录入后都保存在内存中,用户看不到,需要设计一个信息显示功能,信息的显示应该便于查阅,所以需具备按各种关键字显示的功能;
④本系统按关键字(姓名、学号、房号)进行冒泡排序,采用二分查找方式分别实现按关键字(姓名、学号、房号)查询功能;
⑤由于有些同学因为不同原因而离校,所以设计了删除功能; ⑥由于有新同学入校,所以设计了插入功能;
⑦当用户操作完毕需要退出时,我们提供了退出选项,便于使用者退出交互式工作系统。
1.2 系统的开发运行环境
开发环境:PC机 Windows 7系统 开发平台:Microsoft Visual C++ 6.0
2总体设计
2.1 系统功能模块
该程序系统分为信息录入、信息显示、插入功能子菜单、排序功能子菜单、查找功能子菜单、删除六个模块。通过这六个模块可以对宿舍的人员进行管理。本程序通过从用户录入学生信息,创建一个线性表,用插入、删除对人员增减的管理,用查找子菜单
数据结构》课程设计报告
查找信息操作,排序功能对信息进行简单的处理方便查找。通过不同的子程序来实现其功能,得到如下图的模块关系图:
2.2子模块设计
根据用户需求不同,将系统划分了不同的功能模块,而依据不同的功能模块编写 不同的程序模块,具体如下:
信息录入模块(即为程序中的shuru()函数,create(linklist &l)创建学生信息表)
信息显示模块(即为print1()函数,print2()函数)信息插入模块(即为 insert()函数)信息排序模块(即为程序中的sort1()函数,sort2()函数sort3()函数三个子函数)
信息查询模块(即为程序中的chazaho()函数,包括chazaho1(),chazaho2(),chazaho3()三个子函数)
数据结构》课程设计报告
信息删除模块(即为 Delete()函数)主函数模块(即为程序中的main()函数),而各个函数之间由一个switch结构联系起来,而学生信息的连续输入或者连续查找则由相应的do-while结构来实现,从而实现各个模块之间的紧密衔接。并用 do-while结构来实现程序的退出功能。
流程图:
数据结构》课程设计报告程序概要设计
3.1 各模块的算法设计说明
1.信息录入
采用为学生创建一个线性链表,录入学生信息。void shuru(linklist l)//输入学生的信息 { fflush(stdin);// 清空输入缓冲区,得到正确的输入数据 printf(“请输入姓名:”);
gets(stud.name);//输入一行字符串(姓名)
printf(“请输入学号:”);scanf(“%d”,&stud.num);printf(“请输入房号:”);scanf(“%d”,&stud.room);} 2.信息显示
void print1(linklist &l)//打印学生信息 3.信息插入
void insert(linklist &l)//按学号从小到大插入该学生 4.排序功能
void sort1(linklist &l)//按姓名排序(采用冒泡排序){ int i,j;stu temp;for(i=0;i
for(j=i+1;j
数据结构》课程设计报告
} if(strcmp(l.elem[i].name,l.elem[j].name)>0){
} temp=l.elem[i];l.elem[i]=l.elem[j];l.elem[j]=temp;程序采用冒泡排序法,对姓名进行排序。学号、房号排序类似。5.查找功能
对姓名采用二分查找:
void chazhao1(linklist &l)//按姓名从小到大查找(采用二分查找){ if(l.length==0)panduan3();else { int low=0,high=l.length,mid,flag=0;
printf(“n”);printf(“n”);
printf(“按姓名查找----->请输入要查找的姓名:”);
char a[15],ch;
scanf(“%s”,a);
printf(“n”);
while(low
{ mid=(low+high)/2;
if(strcmp(a,l.elem[mid].name)==0){ flag=1;break;} else if(strcmp(a,l.elem[mid].name)>0)low=mid+1;
数据结构》课程设计报告
} else high=mid-1;
if(flag==1)
{ print2(l,mid);//打印查找到的学生的信息
} } 学号、房号的查找方式类似于姓名查找,都采用二分查找。6.删除
void Delete(linklist &l)//按学号删除该学生 { int i,j,k=-1;char ch;printf(“n”);printf(“n”);printf(“请输入要删除学生的学号:”);scanf(“%d”,&stud.num);for(i=0;i
l.elem[j]=l.elem[j+1];printf(“n”);
break;
} if(panduan1(ch))chazhao1(l);}
数据结构》课程设计报告
} if(i>=l.length)printf(“该学生不存在n”);
if(k>=0)l.length--;fflush(stdin);
printf(“n”);
printf(“是否继续删除?:”);
scanf(“%c”,&ch);
if(ch=='y')Delete(l);} 7.主函数模块
而各个函数之间由一个switch结构联系起来,而学生信息的连续输入或者连续查找则由相应的do-while结构来实现,从而实现各个模块之间的紧密衔接。并用 do-while结构来实现程序的退出功能。
3.2 存储结构设计说明
该程序采用线性表的顺序存储。本系统定义的存储结构采用结构体数组,结构体为 :
typedef struct //定义结构体成员 { char name[20];int num;//学号和房号都为整型 int room;}stu;stu stud;typedef struct { int length;//当前长度 stu *elem;//存储空间基址 int listsize;//当前分配的存储容量 }linklist;
数据结构》课程设计报告运行及调试
4.1 运行结果
1.开始菜单
2.选择“1”输入信息
3.选择“2”显示信息
数据结构》课程设计报告
4.选择“3”插入信息
5.选择“4”排序信息
数据结构》课程设计报告
6.选择“5”查找信息
数据结构》课程设计报告
7.选择“6”删除信息
8.选择“0”退出
4.2 结果分析
总的来说本次课程设计还算可以,我从中也学到了不少的东西。但是本程序也存在着不足。由于本程序没有对输入的数据进行写入文件,造成每次都得输入,造成很繁琐。其次,还应加入管理员权限,对输入的信息进行管理。
数据结构》课程设计报告小结和展望
5.1 小结
通过这次的课程设计使我明白了许多东西,翻阅了大量的书籍以及上网查了很多的相关资料,也从中学会了不少东西,它使我知识更加的系统化、全面化。在实验的过程中也让我体会到了做任何事情都是要付出一定的努力的。一份努力一分收获,每当自己单独的成功解决某些问题时,都会感觉很兴奋,也很有成就感。虽然设计完成了,但是我觉得其中还是由一些不足之处。在今后的工作、学习中我将认真总结经验教训,努力使自己成为一名技术过硬、工作严谨、思维活跃的工程人员,为提高人们的生活质量做出更大的贡献。
本次数据结构课程设计,我学到了很多,首先它让我一开学就感到了充实,从而很快的进入了学习状态,我充分利用了这两周的时间,认真、独立的完成了作业。我觉得很满足,也很有成就感。其次,许多曾经自己不知道的知识,现在知道了并能熟练的掌握了一些,比如:一个函数既能调用它本身也能调用其它函数;如 fflush(stdin)函数,它的功能是清空输入缓冲区,得到正确的 输入数据;最后,基本上学会如何把各个板块的连在一起,形成一个总的模块,在一个系统中实现各自的功能。同时也暴露出对所学知识的遗忘及不足,如对冒泡排序都不太熟练。众所周知,要学好编程方面这一块,数据结构是必可少的,它里面有许多经典的算法和思想,是解决问题的必需品。很惭愧,虽然经过一学期的学习,但我掌握的知识很少,特别是树和图,只知道皮毛,目前还不能用这两方面的知识编程。在本系统中,我运用了数据结构中的线性表知识,运用顺序线性表完成了宿舍管理查询软件。在这次课程设计中,经过自己的编成和调试、老师和同学的帮助,我成功的完成了这次作业,虽然它的功能还不是很多,也不是很完善,但我还是非常的兴奋,因为,它给我增添了编程方面的信心。最后,衷心的感谢老师对我们的精心的教导,老师您辛苦!
5.2 心得体会与展望
《数据结构》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。一个人的力量是有限的,要想把课程设计做的更好,就要学会
数据结构》课程设计报告
参考一定的资料,吸取别人的经验,让自己和别人的思想有机的结合起来,得出属于你自己的灵感。
程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一 点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决。再总体解决大的问题。这样做起来不仅有条理也使问题得到了轻松的解决。
在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。虽然这只是一次的极简单的课程制作,可是平心而论,也耗费了我不少的心血,这就让我不得不佩服开发技术的前辈,才意识到老一辈对我们社会的付出,为了人们的生活更美好,他们为我们社会所付出多少心血啊!对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!
通过这次的课程设计我对于专业课的学习有了更加深刻的认识,以为现在学的知识用不上就加以怠慢,等到想用的时候却发现自己的学习原来是那么的不扎实。以后努力学好每门专业课,让自己拥有更多的知识,解决更多的问题,完成自己的梦想!
参 考 文 献
[1] 谭浩强 C程序设计(第四版)北京:清华大学出版社, 2010.6 [2] 数据结构(C语言版)北京:清华大学出版社,1997.4
附 录
使用说明书
进入程序按相关提示进行操作。