




免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学数据结构课程设计说明课程设计任务书学生姓名: xxx 专业班级: 计算机0502 指导教师: xxx 工作单位:计算机科学与技术学院 题 目: 通讯录管理程序的设计与实现初始条件:理论:学习了数据结构课程,掌握了基本的数据结构和常用的算法;实践:计算机技术系实验室提供计算机及软件开发环境。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、系统应具备的功能:(1)输入姓名、电话等信息;(2)对通讯录进行修改、添加、删除;(3)通过各种条件进行查询。2、数据结构设计;3、主要算法设计;4、编程及上机实现;5、撰写课程设计报告,包括:(1)设计题目;(2)摘要和关键字;(3)正文,包括引言、需求分析、数据结构设计、算法设计、程序实现及测试、设计体会等;(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)修改、删除相关资料。关键字:通讯录管理,信息的保存, 查找, 修改, 删除 0.引言通讯录是我们日常生活中经常用到的抽象通讯管理工具,其自身齐全的功能给人们带来通讯的方便。在本次的课程设计中我选择了用c语言编写程序,实现了通讯录的添加、修改、删除以及查询功能。1.需求分析数据的添加存储;数据的查找:按姓名查找通讯人的信息,按qq号码查找信息;另外就是信息的修改,删除等等。2.数据结构设计struct infomation char name10; char qq12; char phone15; char email20; char address30; recordinitamount; int cnt=0; char buffern*14*23.算法设计 3.1添加信息 这个函数能添加信息,生成一个用于存储信息。包括姓名,电话号码,qq 地址有利于以后的查找与修改。 /*-输入通讯资料-*/ void inputinfo() int row=n; char key; struct infomation temp; gotoxy(1,row+1); printf(输入姓名: ); gets(); printf(输入 qq 号: ); gets(temp.qq); printf(输入电话号码: ); gets(temp.phone); printf(输入 e-mail: ); gets(temp.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 showall() int i; clrscr(); printf(所有人的资料:n); printf(n姓名 qq 电话 e-mail 地址n); for(i=1;icnt;i+) printf(%-10s,); 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号码查找出通讯人的信息/*-搜索某个人的资料-*/ 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,) printf(%-10s,); 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,recordi.qq) printf(%-10s,); 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,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,temp); 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,); printf( 1. qq 2. 电话 3. e-mail 4. 地址nn); printf( (按 esc 键才能退出这个功能区)nn); while(key=getch()!=esc) switch(key) case 1: printf(输入新的 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,buffer); 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否则将把找到的第一个人作为你要删除其资料的人); 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() 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,); fprintf(fp_seen,%-12s,recordi.qq); fprintf(fp_seen,%-15s,recordi.phone); fprintf(fp_seen,%-20s,recordi.email); fprintf(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.设计体会 为了便于查错、阅读,在设计该程序的时候我采用了结构化程序方法编辑,添加了尽可能多的注释,这为我来的调试过程带来了很多方便。编程看起来似乎是一件很枯燥、乏味的事情,但是经历了这次大程序的编辑之后,发现其实里面还是充满乐趣的,一旦真的专研下去什么事情都可以放下,来认真研究。编程中有苦有乐,其中的苦乐只有亲身经历才能体会到。要想做出好的程序,必须做好忍受其间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年保密军工考试题及答案
- 陆丰辅警考试真题及答案
- 南阳市中储粮2025秋招财务资产岗高频笔试题库含答案
- 襄阳市中石化2025秋招面试半结构化模拟题及答案油气储运与管道岗
- 国家能源阿坝自治州2025秋招机械工程类面试追问及参考回答
- 国家能源青海地区2025秋招面试专业追问及参考机械工程岗位
- 武汉市中石油2025秋招面试半结构化模拟题及答案安全环保与HSE岗
- 通辽市中石油2025秋招面试半结构化模拟题及答案财务与审计岗
- 2025年乡村工程考试题及答案
- 大唐电力资阳市2025秋招性格测评常考题型与答题技巧
- 民族团结一家亲知识竞赛试题及答案
- 运动跑步专业知识培训课件
- 禁塑知识培训课件
- 下腔静脉滤器置入常见并发症及处理
- 2023版《中国慢性肾脏病患者高血压管理指南》解读课件
- 2025年秋人教版八年级英语上册 Unit 7 When Tomorrow Comes(学习、上课)
- 肿瘤专科护士进修学习汇报
- 初中生心理健康与青春期教育
- 商用厨房设计核心要素
- 2025年叉车司机(中级)考试试卷:操作技能与安全知识
- 行政处罚法培训课件下载
评论
0/150
提交评论