数据结构课程设计.doc
- 文档编号:251344
- 上传时间:2022-10-07
- 格式:DOC
- 页数:29
- 大小:397.79KB
数据结构课程设计.doc
《数据结构课程设计.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计.doc(29页珍藏版)》请在冰豆网上搜索。
景德镇陶瓷学院课程设计报告
课程名称:
数据结构课程设计
设计题目:
1、通讯录管理
9、扑克牌游戏
14、拓扑排序
班级:
计算机科学与技术1班
学生姓名:
游君学号:
201110510114
起止日期:
2013年6月23日~2013年6月30日
指导教师:
李娟徐星
题目1、通讯录管理
1、问题描述
通讯录管理是一个比较实用的小型管理系统,该系统用于对通讯人员的姓名、电话号码的管理。
该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺序,控制语句是实现结构化程序设计的基础。
该设计的任务是利用一个简单实用的菜单,通过菜单项进行选择,实现和完成通讯录管理中常用的几个不同的功能。
2、要求
功能要求:
(1)建立通讯录的链表;
(2)插入通讯录信息;
(3)查询通讯录信息;
(4)删除通讯录信息;
(5)输出通讯录信息。
规定:
输入通讯录的信息:
编号、姓名、性别、电话、地址
界面要求:
有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:
利用单链表存储通讯录信息,同时要求将通讯信息相关数据存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:
要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明。
一、系统分析与概要设计
根据问题描述和要求,系统要求能够按姓名查找、增加、删除和保存各学生的信息。
确定程序应该具备如下功能:
“查询学生信息”、“增加学生信息”、“修改学生信息”“删除学生信息”、“数据存盘”基本模块。
系统可以将学生信息数据保存到磁盘文件student.txt,从而可以通过磁盘文件读出学生数据信息,为了便于统计在生成学生信息时同时生成学生编号,这样每输入一个学生信息编号顺序加1,这样也方便了管理员查询学生信息。
二、详细设计和编码
1.数据类型定义
根据系统要求,可以将姓名和邮编和联系电话通讯地址定义为字符型。
2.各模块算法描述
查询学生信息:
Que_name()输入要查询的学生姓名,比较名字与保存的信息是否相同,若相同则查找到,否则,没查找到。
增加学生信息:
Add()输入要添加的学生信息并保存。
删除学生信息:
Del()输入要删除的学生姓名,若与数据相同则删除,否则输出查找不到该信息。
修改学生信息:
Mod()输入要修改的学生姓名,输入要修改的信息,并确认。
数据存盘:
Sav()创建文件,将信息写入文件。
3.程序关键算法流程图
(1)主函数流程
(2)某操作算法流程Student:
:
Add()
(3)Student:
:
Del()
(4)Student:
:
Mod()
(5)Student:
:
Que_name()
(6)Student:
:
Sav()
(7)Student:
:
Load()
三、调试结果
运行界面
录入信息界面
查询信息界面
修改信息界面
源代码:
#include
#include
#include
usingnamespacestd;
structstudent
{
charnum[20];
charname[20];
charaddress[50];
charsex[20];
chartelphone[20];
}student[2000];//定义学生类结构体
voidMenu();//声明菜单函数
voidInput();//声明录入函数
voidSav(int);//声明保存函数
intLoad();//声明信息导入函数
voidQue_name();//声明按姓名查找函数
voidDel();//声明删除函数
voidMod();//声明修改函数
voidScan();//声明浏览函信息数
voidAdd();//声明添加函数
voidMenu()//菜单函数
{
cout<<"\t*******欢迎来到景德镇陶瓷学院学生通讯录信息管理系统!
*******"< cout<<"\t**请按要求正确录入学生的通讯录信息**"< cout<<"\t**1.录入相关学生通讯录信息**"< cout<<"\t**2.保存相关学生通讯录信息**"< cout<<"\t**3.按姓名查找相关学生通讯录信息**"< cout<<"\t**4.修改相关学生通讯录信息**"< cout<<"\t**5.删除相关学生通讯录信息**"< cout<<"\t**6.添加相关学生通讯录信息**"< cout<<"\t**7.退出该学生通讯录信息系统**"< cout<<"\t*****************欢迎您的光临**************************"< } voidmain()//主函数的实现 { intn; loop: Menu();//调用菜单函数 cout<<"请输入您所要进行的操作过程的序号(1-7): "; cin>>n; system("cls"); switch(n) { case1: cout<<"请输入相关学生通讯信息: "< case2: cout<<"请保存相关学生通讯信息: "< case3: cout<<"按姓名查找相关学生通讯信息: "< case4: cout<<"修改相关学生通讯信息: "< case5: cout<<"删除相关学生通讯信息: "< case6: cout<<"添加相关学生通讯信息: "< default: break; } cout<<"\t\t\t*********欢迎您的使用! **********"< } voidInput()//学生通讯信息录入函数 { inti,m; cout<<"请输入您所要输入的学生通讯信息的个数(1-2000): "; cin>>m; for(i=0;i { cout<<"请输入学生的编号: "< cin>>student[i].num; cout<<"请输入通讯录中学生的姓名: "< cin>>student[i].name; cout<<"请输入通讯录中学生的性别: "< cin>>student[i].sex; cout<<"请输入通讯录中学生的电话号码: "< cin>>student[i].telphone; cout<<"请输入通讯录学生的地址(格式如***省**市**县**乡): "< cin>>student[i].address; cout<<"该学生的通讯信息已经输入完毕,请继续输入下一个学生通讯信息! "< } } voidSav(intm)//如何写入信息? 保存通讯录文件函数 { inti; FILE*fp; if((fp=fopen("E: \\student.dat","wb"))==NULL)//创建文件并判断是否能打开 { cout<<"该文件打开失败。 "< exit(0); } for(i=0;i if(fwrite(&student[i],sizeof(structstudent),1,fp)! =1)//申请空间,写入学生信息,为何有个1? ? ? { cout<<"信息写入失败! "<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)