《算法与数据结构》课程设计之三

更新时间: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

#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)修改联系人信息

四、课程设计体会

从这次的课程设计中,我更加熟悉的掌握了链表的运用和实现, 对算法的编程也有了更进一步的认识,但也存在着不足之处,我定 会在课后去尽量认真弄明白。

本文来源:https://www.bwwdw.com/article/n2o.html

Top