数据结构课程设计说明书通讯录管理程序的设计与实现.doc

上传人:仙人指路1688 文档编号:2396770 上传时间:2023-02-17 格式:DOC 页数:13 大小:61.50KB
返回 下载 相关 举报
数据结构课程设计说明书通讯录管理程序的设计与实现.doc_第1页
第1页 / 共13页
数据结构课程设计说明书通讯录管理程序的设计与实现.doc_第2页
第2页 / 共13页
数据结构课程设计说明书通讯录管理程序的设计与实现.doc_第3页
第3页 / 共13页
数据结构课程设计说明书通讯录管理程序的设计与实现.doc_第4页
第4页 / 共13页
数据结构课程设计说明书通讯录管理程序的设计与实现.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《数据结构课程设计说明书通讯录管理程序的设计与实现.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计说明书通讯录管理程序的设计与实现.doc(13页珍藏版)》请在三一办公上搜索。

1、课程设计任务书学生姓名: XXX 专业班级: 计算机0502 指导教师: XXX 工作单位:计算机科学与技术学院 题 目: 通讯录管理程序的设计与实现初始条件:理论:学习了数据结构课程,掌握了基本的数据结构和常用的算法;实践:计算机技术系实验室提供计算机及软件开发环境。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、系统应具备的功能:(1)输入姓名、电话等信息;(2)对通讯录进行修改、添加、删除;(3)通过各种条件进行查询。2、数据结构设计;3、主要算法设计;4、编程及上机实现;5、撰写课程设计报告,包括:(1)设计题目;(2)摘要和关键字;(3)正文,包

2、括引言、需求分析、数据结构设计、算法设计、程序实现及测试、设计体会等;(4)结束语;(5)参考文献。时间安排: 2007年7月2日7日 (第18周)7月2日 查阅资料7月3日 系统设计,数据结构设计,算法设计7月4日-5日 编程并上机调试7月6日 撰写报告7月7日 验收程序,提交设计报告书。指导教师签名: 2007年7月2日系主任(或责任教师)签名: 2007年7月2日通讯录管理程序的设计与实现摘要:该程序主要部分有:1)通讯录资料的输入,包括姓名、QQ号、电话号码、电子邮箱、住址。2)所有人资料的查找,显示出所有人的相关信息。3)搜索,可按姓名和QQ号进行。4)修改、删除相关资料。关键字:通

3、讯录管理,信息的保存, 查找, 修改, 删除 0.引言通讯录是我们日常生活中经常用到的抽象通讯管理工具,其自身齐全的功能给人们带来通讯的方便。在本次的课程设计中我选择了用C语言编写程序,实现了通讯录的添加、修改、删除以及查询功能。1.需求分析数据的添加存储;数据的查找:按姓名查找通讯人的信息,按QQ号码查找信息;另外就是信息的修改,删除等等。2.数据结构设计struct Infomation char name10; char QQ12; char phone15; char Email20; char address30; recordInitAmount; int cnt=0; char

4、bufferN*14*23.算法设计 3.1添加信息 这个函数能添加信息,生成一个用于存储信息。包括姓名,电话号码,QQ 地址有利于以后的查找与修改。 /*-输入通讯资料-*/ void InputInfo() int row=N; char key; struct Infomation temp; gotoxy(1,row+1); printf(输入姓名: ); gets(temp.name); printf(输入 QQ 号: ); gets(temp.QQ); printf(输入电话号码: ); gets(temp.phone); printf(输入 E-mail: ); gets(tem

5、p.Email); printf(输入地址: ); gets(temp.address); printf(n记录下这个人的资料吗 ? (Y/N); while(1) if(key=getch()=Y|key=y) recordcnt+=temp; printf(n记录成功!); getch(); break; if(key=N|key=n) printf(n你已放弃这份资料!); getch(); break; kbhit(); clrscr(); puttext(1,1,14,N,buffer); 3.2显示信息此函数能够显示出所有通讯人的相关信息./*-显示所有人的资料-*/ void S

6、howAll() int i; clrscr(); printf(所有人的资料:n); printf(n姓名 QQ 电话 E-mail 地址n); for(i=1;icnt;i+) printf(%-10s,recordi.name); printf(%-11s,recordi.QQ); printf(%-12s,recordi.phone); printf(%-20s,recordi.Email); printf(%sn,recordi.address); getch(); clrscr(); puttext(1,1,14,N,buffer); 3.3搜索信息此函数能够通过输入姓名或者是QQ

7、号码查找出通讯人的信息/*-搜索某个人的资料-*/ void Search() clrscr(); printf(1.根据姓名搜索n2.根据 QQ 号搜索n(按 Esc 键可以退出这个功能区); while(1) int i,status=0; char *temp=(char *)malloc(sizeof(char); switch(getch() case 1: printf(n输入要搜索的姓名: ); scanf(%s,temp); printf(n); printf(n姓名 QQ 电话 E-mail 地址n); for(i=0;icnt;i+) if(!strcmp(temp,rec

8、ordi.name) printf(%-10s,recordi.name); printf(%-12s,recordi.QQ); printf(%-15s,recordi.phone); printf(%-20s,recordi.Email); printf(%sn,recordi.address); status=1; getch(); break; case 2: printf(n输入要搜索的 QQ 号: ); scanf(%s,temp); printf(n); printf(n姓名 QQ 电话 E-mail 地址n); for(i=0;icnt;i+) if(!strcmp(temp,

9、recordi.QQ) printf(%-10s,recordi.name); printf(%-12s,recordi.QQ); printf(%-15s,recordi.phone); printf(%-20s,recordi.Email); printf(%sn,recordi.address); status=1; break; getch(); break; case Esc: status=1; if(status) break; else clrscr(); printf(1.根据姓名搜索n2.根据 QQ 号搜索n); kbhit(); clrscr(); puttext(1,1

10、,14,N,buffer); 3.4修改信息 可以根据姓名查找后修改某个人的信息 /*-修改某个人的资料-*/ void Modify() int i,status=0,position=-1; char *temp=(char *)malloc(sizeof(char),key; gotoxy(1,N+2); printf(输入姓名: ); scanf(%s,temp); for(i=0;i1) printf(n不止一个人叫这个名字,请输入 QQ 号确认身份n); printf(n否则将把找到的第一个人作为你要修改其资料的人); printf(n输入 QQ 号: ); scanf(%s,te

11、mp); for(i=0;icnt;i+) if(!strcmp(temp,recordi.QQ) status=1; position=i; if(!status) printf(n没有找到这个人的资料!); else char key; clrscr(); printf(你想要修改 %s 的哪部分资料:n,recordposition.name); printf( 1. QQ 2. 电话 3. E-mail 4. 地址nn); printf( (按 Esc 键才能退出这个功能区)nn); while(key=getch()!=Esc) switch(key) case 1: printf(

12、输入新的 QQ 号: ); scanf(%s,recordposition.QQ); break; case 2: printf(输入新的电话号码: ); scanf(%s,recordposition.phone); break; case 3: printf(输入新的 E-mail: ); scanf(%s,recordposition.Email); break; case 4: printf(输入新的地址: ); scanf(%s,recordposition.address); printf(n修改成功!); getch(); clrscr(); puttext(1,1,14,N,b

13、uffer); 3.5删除信息 输入姓名后会提示删除该信息,如果通讯录中不止一个人叫这个名字,系统会提示输入QQ号码来找到要删除的通讯人。 /*-删除某个人的资料-*/ void Delete() int i=N,status=0,position=-1; char *temp=(char *)malloc(sizeof(char),key; gotoxy(1,i+1); printf(n输入姓名: ); scanf(%s,temp); for(i=0;i1) printf(n不止一个人叫这个名字,请输入 QQ 号确认身份n); printf(n否则将把找到的第一个人作为你要删除其资料的人);

14、 printf(n输入 QQ 号: ); scanf(%s,temp); for(i=0;icnt;i+) if(!strcmp(temp,recordi.QQ) status=1; position=i; if(!status) printf(n没有找到这个人的资料!); else recordposition=record(cnt-)-1; printf(n删除成功!); getch(); clrscr(); puttext(1,1,14,N,buffer); 3.6保存信息到文件夹将保存的信息存到电脑里的某个文件夹里 /*-将通讯录里的资料以文件形式保存起来-*/ void Save()

15、 int i; FILE *fp=fopen(D:record.bat,wb); if(cnt!=0) FILE *fp_seen=fopen(D:record.txt,w); fprintf(fp_seen,姓名 QQ 电话 E-mail 地址n); for(i=0;icnt;i+) fprintf(fp_seen,%-10s,recordi.name); fprintf(fp_seen,%-12s,recordi.QQ); fprintf(fp_seen,%-15s,recordi.phone); fprintf(fp_seen,%-20s,recordi.Email); fprintf(

16、fp_seen,%sn,recordi.address); fclose(fp_seen); for(i=0;icnt;i+) fwrite(&recordi,sizeof(record),1,fp); _chmod(D:record.bat,1,FA_HIDDEN); fclose(fp); 4.程序运行结果主界面:输入通讯资料显示所有资料搜索某个人资料:修改某个人资料:删除某个人资料:我这个程序主要用了链表的删除,链表的查找(姓名,QQ号码)主要加深了对链表的理解,了解到链表的方便性。5.设计体会 为了便于查错、阅读,在设计该程序的时候我采用了结构化程序方法编辑,添加了尽可能多的注释,这为

17、我来的调试过程带来了很多方便。编程看起来似乎是一件很枯燥、乏味的事情,但是经历了这次大程序的编辑之后,发现其实里面还是充满乐趣的,一旦真的专研下去什么事情都可以放下,来认真研究。编程中有苦有乐,其中的苦乐只有亲身经历才能体会到。要想做出好的程序,必须做好忍受其间痛苦的准备。在这个编程过程中曾经我们想放弃过,因为实在太复杂,感觉太费时,但是最终我们还是说服了自己坚持了下来,看到自己最后的作业,虽然不是很优秀,但是还是很自豪。总之,编程尤其是调试是一项细致深入的工作,需要下工夫、动脑子、善于积累经验,这往往能反映出一个人的水平、经验和科学态度.6.结束语 本文是通讯录管理系统,主要功能有:通讯人资料的输入,显示,搜索,修改以及删除,保存。整个程序用C语言实现。参考文献1 严蔚敏, 吴伟民. 数据结构(C语言版) 清华大学出版社2 谭浩强. C语言设计(第二版) 清华大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号