logo资料库

数据结构课程设计_通讯录的制作.doc

第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
资料共35页,剩余部分请下载后查看
数据结构课程设计 ——————通讯录的制作 信计 081 班级: 组员: 王 琪 0809290106 杨赫桐 0809290108 隋欣桐 0809290103 - 1 -
一、摘要: 运用〈〈数据结构〉〉中的算法思想作数据结构,结合 C 语言基本 知识,编写一个通讯录管理系统。以把所学数据结构知识应用到实际 软件开发中去。 二、问题的重述: 制作通讯录,要求每条信息至包含姓名(name )城市(city) 电话(tel)QQ 号(qq),完成如下功能:输入信息;显示信息; 查找以姓名作为关键字;删除信息;修改信息;存盘(将数据保 存在文件中,此功能选做);清除信息; 三、问题的分析: 结合数据结构和 C 语言的知识运用链表和文件。 本系统应完成一下几方面的功能: ①输入信息(enter()): 调用此函数用以输入数据到内存中,此过 程包括建立相应的链表或相应的数组,便于读取; ②显示信息(display()):用以显示输入的数据; ③查找(search()):以姓名作为关键字查找要找的信息; ④删除信息(delete_name ()):用以删除选定的输入信息(姓名作 为关键字); ⑤修改信息(change()): 用以修改选定的输入信息(姓名作为关键 字); ⑥打开通讯录(load()):存储从文件中读取的字符; ⑦添加信息(inster()):用尾插法以添加信息; - 2 -
⑧保存(save()):调用此函数将内存中的数据保存至磁盘中; ⑨清屏(system("cls")):执行 cls 命令。 四、程序的建立与运行结果检验 1、定义主函数: void main() { list *head=NULL;//头指针初始化 FILE *fp;//定义文件指针 int m;//功能代号吗 do{ printf("\n #############################请 选择################################\n"); printf(" printf(" printf(" printf(" printf(" printf(" printf(" printf(" printf(" printf(" # 1、信息输入 "); 2、显示信息 #\n"); # 3、查找姓名 "); 4、删除信息 #\n"); # 5、修改信息 "); 6、打开通讯录 #\n"); # 7、添加信息 "); 8、 保存 #\n"); # 9、清屏 "); 0、退出 #"); - 3 -
printf("\n ####################################################### ############\n"); printf(" 提 示 : 信 息 输 入 和 添 加 信 息 时 最 好 存 入 字 符,否则,在打开存储文件时,可能会出现乱码!\n"); printf("==输入要执行的功能代号:_"); scanf("%d",&m); switch(m) { case 1:enter(head);break; case 2:display(head); break; case 3:search(head); break; case 4:delete_name(head);break; case 5:change(head);break; case 6:load(head);break; case 7:insert(head);break; case 8:save(head,fp);printf("== 保 存 成 功 ==\n");break; case 9:system("cls");break; } } while(m!=0); - 4 -
} 2、信息输入: void enter(list *&head) { list *p0,*p1,*p2;//定义指针 int m;//作为判断是否继续新建的条件 FILE *fp; p0=(list *)malloc(LEN); //开辟一个新单元 p0->next=NULL;//结点指针域为空 head=p0;//第一个结点,即为头结点 printf("请输入信息建立通讯录:\n"); getchar(); scanfdata(p0);//输入数据 - 5 -
p2=p0; printf("是否继续按 1 输入,按 0 结束_"); scanf("%d",&m); while(m) { getchar(); p1=(list *)malloc(LEN); //开辟一个新单元 p1->next=NULL; p2->next=p1; scanfdata(p1);//输入数据 p2=p1; head->n = head->n+1;//表长 printf("是否继续按 1 输入,按 0 结束_"); scanf("%d",&m); } if(m==0) save(head,fp);//把信息存到相应文件 { } } - 6 -
3、显示信息 void display(list *head) { list *p; //定义移动指针 int i; char *menu[]={"姓名","城市","电话", "QQ"}; p=head; printf("--------------------------------------------------------------------\n"); for(i=0;i<4;i++) printf("%-20s",menu[i]); printf("\n"); if (head!=NULL) while(p) - 7 -
printf("%-20s",p->name); printf("%-20s",p->city); printf("%-20s",p->phone); printf("%-20s",p->qq); printf("\n"); p=p->next; { } else printf("不好意思,列表为空\n"); printf("--------------------------------------------------------------------\n"); } 4、查找信息: - 8 -
分享到:
收藏