《算法与数据结构》课程设计之三
更新时间:2023-03-08 05:24:58 阅读量: 综合文库 文档下载
算法与数据结构课程设计
一、课程设计的目的
1、掌握系统数据结构的设计与实现。 2、掌握系统算法的设计与实现。
3、掌握数据结构与算法在应用系统开发中的应用。 二、课程设计的内容
课程设计题目:电子通讯录系统
课程设计内容:该系统为用户提供了一个简单的通讯录管理功能,方便用户管理个人的电话本。用户可以实现对联系人信息的添加、修改、删除、显示和查找等操作。 该系统的功能模块图如下:
电子通讯录 显示主菜单界面 添加联系人 显示所有联系人信息 快速查找联系人 删除联系人 修改联系人信息 退出系统 1、数据结构。
人(person):姓名,号码,性别,年龄,地址… 三、课程设计的要求 1、按照给出的题目内容
(1)完成系统数据结构的设计与实现、实现对联系人信息的添加、修改、删除、显示和查找等操作。
(2)系统需要一个简单DOS操作界面,或窗口操作操作界面,例如: =========================== ***********电子通讯录************* 1.快速查找联系人 2.添加联系人
3.删除联系人
4.显示所有联系人信息 5.修改联系人信息
6.退出系统
===========================
2、写出课程设计报告,设计报告提交形式:电子文档提交3、个人独立完成。 4、完成时间(1周)
附:课程设计报告格式
《算法与数据结构》课程设计报告
题目:电子通讯录系统
专业: 信息管理与信息系统 班级:
学号:
完成日期: 2012 年 6 月 13 日
一、课程设计目的
姓名: 指导教师: 郑美容
1、掌握系统数据结构的设计与实现。 2、掌握系统算法的设计与实现。
3、掌握数据结构与算法在应用系统开发中的应用。
二、课程设计内容 1、按照给出的题目内容
(1)完成系统数据结构的设计与实现、实现对联系人信息的添加、修改、删除、显示和查找等操作。
(2)系统需要一个简单DOS操作界面,或窗口操作操作界面,例如: =========================== ***********电子通讯录*************
1.快速查找联系人 2.添加联系人
3.删除联系人
4.显示所有联系人信息 5.修改联系人信息 6.退出系统
===========================
2、写出课程设计报告,设计报告提交形式:电子文档提交 3、个人独立完成。 4、完成时间(1周)
三、课程设计过程
1、系统的总体设计 (1)struct Person 建立结构体person (2)void LinkList() 添加联系人 (3)void show() 显示所有人的信息
(4)void sertch() 快速查找联系人 (5)void delect()
删除联系人 (6)void ment() 修改信息 (7)void menu() 菜单设计
2、系统的数据结构设计、算法设计(画出算法流程图) (1)添加联系人
(2)显示所有人信息
(3)快速查找联系人
(4)删除联系人
3、程序清单 #include
#include
struct Person {
char name[15]; char telephone[15]; char sex[15]; char age[15]; char addrass[15]; struct Person *next; };
typedef struct Person per; per *head=NULL;
void LinkList()//添加信息 {
per *a=NULL,*b=NULL;
a=(per *)malloc(sizeof(per));
printf(\输入姓名=======:\\n\ scanf(\
printf(\输入电话=======:\\n\ scanf(\
printf(\输入性别=======:\\n\ scanf(\
printf(\输入年龄========:\\n\ scanf(\
printf(\输入地址========:\\n\ scanf(\
a->next=NULL; //
if(head==NULL) {
head=(per *)malloc(sizeof(per)); head->next=a; } else {
for(b=head;b->next!=NULL;b=b->next); b->next=a; }
printf(\此信息已添加!\\n\}
void show()//显示所有人的信息 { per *a;
if(head==NULL) {
printf(\此通讯录中无记录,请输入记录后在使用本功能!\\n\ //return; }
printf(\姓名* 电话* 性别* 年龄* 地址*\\n\ for(a=head->next;a!=NULL;a=a->next) {printf(\ \ printf(\ \ printf(\ \ printf(\ \ printf(\ \ } }
void sertch()//快速查找联系人 { per *a;
char sertchname[15];
printf(\请输入要查找的姓名:\\n\ scanf(\while(strcmp(a->name,sertchname)!=0) {a=a->next;}
printf(\ \ printf(\ \ printf(\ \ printf(\ \ printf(\ \ }
void delect()//删除联系人 {
char sertchname[15]; per * a= head->next, *b = head->next; printf(\请输入要删除的姓名:\\n\ scanf(\ if (head->next == NULL) {
printf(\此数值不存在!请检查清楚再输\\n\ } //loop:
while ((strcmp(a->name,sertchname)!=0 )&& a->next != NULL) {
b =a;//保存a的地址 a =a->next;
//goto loop;
}
if (strcmp(sertchname, a->name)==0) //输出删除信息 {
printf(\输出要删除的信息========:\\n\
if (a==head->next) //
b=a->next; else
b->next = a->next; free(a); }
printf(\此信息已删除!*********\\n\ }
void ment()//修改信息// {
char sertchname[15]; per *a = head->next, *b = head->next; printf(\请输入要修改的姓名:\\n\ scanf(\ if (head->next == NULL) {
printf(\此数值不存在!请检查清楚再输!\\n\ //return; }
while((strcmp(a->name,sertchname)!=0 )&& a->next != NULL) { b =a; a=a->next; }
if (strcmp(sertchname, a->name)==0) //输出修改信息 {
printf(\修改前的联系人姓名%s\\n \
scanf(\
printf(\修改后的联系人姓名%s\\n\ printf(\修改前的联系人电话号码%s\\n\
scanf(\
printf(\修改后的联系人电话号码%s\\n\
printf(\修改前的联系人的性别%s\\n\
scanf(\
printf(\修改后的联系人性别%s\\n\
printf(\修改前的联系人年龄%s\\n \
scanf(\
printf(\修改后的联系人年龄%s\\n \
printf(\修改前的联系人地址%s\\n \
scanf(\
printf(\修改后的联系人地址%s\\n \
/* if (a== head->next) b = a->next; else
b->next = a->next;
free(a); */ } }
void menu() {
printf(\
================\\n\
printf(\欢迎进入电子通讯系统
******************\\n\
printf(\电子通讯录*************\\n\ printf(\ 1.添加联系人\\n\
printf(\ 2.显示所有联系人信息\\n\ printf(\ 3.快速查找联系人 \\n\ printf(\ 4.删除联系人\\n\ printf(\ 5.修改联系人信息 \\n\ printf(\ 6.退出系统\\n\ printf(\
==========================================================\\n\
printf(\请选择:\\n\}
void main() {
char ch; while(1) {
menu(); scanf(\ switch(ch) {
case '1':LinkList(); break;
case '2':show(); break;
case '3':sertch(); break;
case '4':delect(); show(); break;
//打开文件//显示菜单
case '5':ment(); show(); break;
case '6' : exit(6); default:
printf(\选择错误!\ break; } } }
4、系统运行结果截图 (1).添加联系人::
(2)显示所有联系人信息
(3)快速查找联系人
(4)删除联系人
(5)修改联系人信息
四、课程设计体会
从这次的课程设计中,我更加熟悉的掌握了链表的运用和实现, 对算法的编程也有了更进一步的认识,但也存在着不足之处,我定 会在课后去尽量认真弄明白。
正在阅读:
《算法与数据结构》课程设计之三03-08
《周易》的世界08-26
个人协议书范本12-12
2018年江苏省十三市中考数学试卷压轴题及详细答案解析05-04
(新课标)2020届高考物理一轮总复习随堂训练第二章相互作用第6讲实验验证力的平行四边形定则(必修108-13
滨海能源绩效管理制度最终版05-21
少先队建队日活动方案2篇_活动方案03-25
SAP MRP的计算步骤03-08
必修三学案(学生)03-08
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 数据结构
- 算法
- 课程
- 设计
- 0数学模拟试题压轴大题精编(共40页)
- 沈振新副市长在全市利用外资工作讲评推进会上的讲话
- 大力加强工会干部队伍建设 全面提升工会工作整体水平
- Windows 2003实训指导 - 图文
- 江苏省海门市叠石桥小学及幼儿园建筑方案设计说明
- 安全教案(防意外伤害)001
- 容量瓶配置溶液操作规范
- 2、病句复习学案 - 图文
- 培养课外阅读兴趣,提高学生人文素养
- 燃料化验员-计算题
- 督查工作要点材料
- 一个武大毕业生的公开信 - 图文
- 苏教版小学数学三年级上册期末试卷共六套
- 人事实习周记4篇word版本(13页)
- 六一儿童节学校组织游乐园活动方案
- 2014兰州市高三诊断考试-理综
- 高速铁路验标检验批表格(路基工程、桥涵工程、隧道工程)
- 新视野 英语句子结构
- 体验营销在乡村旅游的应用
- 江苏省物业管理条例