数据结构课程设计(通讯录制作)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.设计内容(通讯录)

本系统应完成一下几方面的功能:

1) 输入信息——enter();

2) 显示信息———display( );

3) 查找以姓名作为关键字———search( );

4) 删除信息———delete( );

5) 存盘———save ( );

6) 装入———load( ) ;

设计要求:

1) 每条信息至包含:姓名(NAME )街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项

2) 作为一个完整的系统,应具有友好的界面和较强的容错能力二.设计思路

通过visual c++6.0(用的是C语言)编写一个dos界面的控制台程序,该程序通过链表的操作,文件存储来实现通讯录的基本功能

struct address{ /*定义结构*/

char name[10]; /*姓名*/

char street[50]; /*街道*/

char city[10]; /*城市*/

char state[15]; /*国家*/

char eip[7]; /*邮编*/

struct address *next; /*后继指针*/

struct address *prior; /*前驱指针*/

}

链表的插入,删除来实现通讯录里的内容的插入删除

当操作完成通过文件件来存储链表的信息,下次打开程序时,读取文件里的内容到内存中,放在链表,然后又可以对链表进行操作;

在这里面,文件内容不可以在外部更改,只能通过读取到内存链表中,通过程序进行更改,然后再写入到文件,写入过程会覆盖上次的内容。

struct address *start; /*首结点*/

struct address *last; /*尾结点*/

struct address *find(char *); /*声明查找函数*/

void enter(); /*函数声明*/

void search(); /*查找,查找过程中调用find函数*/

void save(); /*存盘,将链表信息保存到文件中*/

void load(); /*导入,将文件内容导入到内存链表中*/

void list(); /*显示当前链表中信息*/

void ddelete(struct address **,struct address **);

void insert(struct address *i,struct address **start,

struct address **last);

void inputs(char *,char *,int);

void display(struct address *);

int menu_select(void);

三.详细设计

1.主界面设计

通过switch语句调用各种函数,实现各种操作。然后把switch嵌套到无限的for循环(for(;;))中,使完成每一步操作都回到到选择操作的主界面

void main()

main

menu_select

enter

ddelete

list search

save

load

exit

inputs insert

find

display

文件

函数之间的相互调用

{

start = last = NULL;

for(;;) /*无限循环*/

{

switch(menu_select()) /*调用主界面的选择函数,带回返回值*/ {

case 1:enter();

continue;

case 2:ddelete(&start,&last);

continue;

case 3:list();

continue;

case 4:search();

continue;

case 5:save();

continue;

case 6:load();

continue;

case 7:exit(0);

}

}

}

int menu_select(void) /*主目录*/

{

char s[80];

int c;

printf("………………^欢迎使用DOS通讯录系统^………………\n");

printf("************请在做其它操作前先导入*************\n");

printf("***********************************************\n"); printf("***************** 1.输入信息 ******************\n"); printf("***************** 2.删除信息 ******************\n"); printf("***************** 3.显示信息 ******************\n"); printf("***************** 4.查找 ******************\n"); printf("***************** 5.存盘 ******************\n"); printf("***************** 6.导入 ******************\n"); printf("***************** 7.退出 ******************\n"); printf("***********************************************\n"); do{

printf("\nPlease enter your choice:\n");

gets(s);

c = atoi(s); /*将获取的字符串转换成整型*/

}while(c<0||c>7);

return c; /*返回输入值*/

}

2.输入信息函数

相关文档
最新文档