




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计说明书题目: 通讯录信息系统的管理 院 系: 专业班级: 学 号: 学生姓名: 指导教师: 2008 年 06 月 20 日一、需求分析运用数据结构中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。实现以下几方面的功能:1.Add a record,可以向通讯录管理系统中增加新记录;2.Delete a record.可以从通讯录管理系统中删除记录;3.Show all records.显示通讯录的所有信息;4.Search a record.按名字查询信息;5.Quit退出通讯录管理系统。简介:本程序是通过链表实现的简单通讯录,所实现的此通讯录包含着三个信息,即通讯者的姓名、电话号码和住址。该程序能够帮助使用者完成一些常用的通讯记录,操作界面简单易懂,使用方便。如果使用者还需要其他功能只要进行简单的修改就可以实现添加。因为本人水平有限,该程序在算法的选择方面还不够好,有待于进一步完善。(1)此程序的几大模块第一个模块:结构体(struct friends):实现通讯录的三个基本组成部分姓名、电话、地址;第二个模块:添加(add):添加通讯者,实现插入功能;第三个模块:删除(delete): 删除某人的信息,如果未找到要修改的某人的信息,则提示通讯录中没有此人的信息,并返回主菜单,实现删除功能。第四个模块:search( )的功能是:查询某人的信息如果找到了,则显示该人的信息,如果未找到,则显示通讯录中没有此人的信息,并返回主菜单;第五个模块:输出(list):浏览通讯录全体成员,实现整个通信录数据全体输出;第六个模块:退出(exit):退出程序;第七个模块:主函数main( ):根据主菜单的选项调用各函数,并完成相映的功能.第八个模块:Menu( )的功能是:显示英文主菜单;(2)测试 1、根据屏幕输出的菜单选择所需要的操作,通常第一次使用应选择1添加;输入完每个通讯者的信息后都可以选择继续还是退出,如果输入任意键,则继续输入,否则输入y,程序就会回到初始界面;2、查找选择2 ,程序提示输入要查找的通讯者的姓名,输入后回车,如果存在,则显示通讯者的信息,如果不存在,程序提示no message;3、删除操作选择3 ,输入要被删除的通讯者的姓名,输入后按回车,程序将显示要被删除的通讯者的信息,确定删除输入1,取消删除选择0;4、第4项功能,显示所输入的所有通讯者的信息;5、退出选择5二、概要分析1、可排序表的抽象数据类型定义为: ADT Orderablelist 数据对象:D=Ai | Ai Integer,i=1,2,n, n=0数据关系:R=|Ai-1,AiD,i=1,2,n2、主要函数原型:menu_select(); /*主菜单函数*/add();/*输入记录*/delete();/*按名字删除记录*/search();/*按姓名查找显示记录*/list();/*显示所有记录*/3、调用到的函数:通过switch(表达式)case 常量表达式1:语句1case 常量表达式2:语句2:case 常量表达式n:语句n调用add()delete()list()display(struct address *info)search()五个函数。三 各程序模块之间的层次调用关系:Main主函数del;函数search函数list函数quit函数add函数menu-bookr函数主程序的流程: 主 函 数菜单函数(包括函数返回值的输出)查找函数删除函数插入记录函数保存函数输入记录查找记录显示记录显示指定记录 四、调试分析1、输入时每输入通讯者的一个信息按下回车键,根据屏幕输出信息输入相应的信息即可;2、注意各个函数调用的关系,熟悉各种算法的应用;3、了解程序的各个模块;五、用户使用说明 此通讯录程序的操作特别简单,算法也很简明。使用者一看就会明白,就是几个函数之间的调用,此通讯录有如下的功能:1、添加通讯者输入记录2、按姓名删除显示记录;3、按姓名查找记录;4、显示所有通讯者联系信息;5、退出程序;六、测试结果经过调试并成功的运行此程序后,屏幕就显示出菜单界面七、参考文献1(美)Mark Allen Weiss 著 冯舜玺 译 数据结构与算法分析-C语言描述.北京:机械工业出版社,2006.8;2 数据结构 (第二版本)清华大学出版社出版,严蔚敏,吴伟民 编著3 C程序设计 清华大学出版社出版 , 谭浩强主编4 C程序设计题解与上机指导 清华大学出版社出版 , 谭浩强主编5上网搜寻到解决程序运行中的一些错误信息的解决方法。源程序:#include#includestruct person char name100; char tel100; char addr100;char filename100;FILE *fp;void append();void creat();void search();void delete();void output();void seek()void append() struct person one; if(fp=fopen(filename,a)=NULL) printf(ncant open the telebook !); exit(0); printf(n input name and address n); scanf(%s%s%s,,one.tel,one.addr); fprintf(fp,%-100s%-100s%-100sn,,one.tel,one.addr); fclose(fp); void creat() struct person one; long s1; printf(n input name:); scanf(%s,filename); if(fp=fopen(filename,w)=NULL) printf(ncant create!); exit(0); fprintf(fp,%-100s%-100s%-100sn,name ,phonenumber,address); printf(nplease input the name phonenumber and address!(end by 0)n); scanf(%s,); while(strcmp(,0) scanf(%s%s,one.tel,one.addr); fprintf(fp,%-100s%-100s%-100sn,,one.tel,one.addr); scanf(%s,); fclose(fp);void search() int k=0; char namekey8; struct person one; printf(n input name:); scanf(%s,namekey); if(fp=fopen(filename,rb)=NULL) printf(ncant open the telebook!); exit(0); while(!feof(fp) fscanf(fp,%s%s%sn,,one.tel,one.addr); if(!strcmp(namekey,) printf(nn found,like:); printf(n%-100s%-100s%-100s,,one.tel,one.addr); k=1; if(!k) printf(n not find n); fclose(fp);void delete() int m,k=0,flag; long offset1,offset2; char namekey8, valid4; struct person one; printf(n input name:); scanf(%s,namekey); if(fp=fopen(filename,r+)=NULL) printf(ncant open ); exit(0); while(!feof(fp) offset1=ftell(fp); fscanf(fp,%s%s%sn,,one.tel,one.addr); if(!strcmp(namekey,) k=1; break; if(k) printf(nhave found,record like); printf(n%-100s%-100s%-100s,,one.tel,one.addr); printf(n*delete,choose 1;undelete,choose 0*:n); scanf(%d,&m); if(m) seek(fp,offset1,SEEK_SET); fprintf(fp,%-100s%-100s%-100sn,); else printf(nnot found!n); fclose(fp);void output() struct person one; if(fp=fopen(filename,r)=NULL) printf(ncant open telebook !n); exit(0); printf(nn%100sn,T E L E B O O K); while(!feof(fp) fscanf(fp,%s%s%sn,,one.tel,one.addr); printf(%-100s%-100s%-100s,,one.tel,one.addr); fclose(fp);main() int m; creat(); while(1) printf(*); printf(n* add press 1 *); printf(n* search press 2 *); printf(n* delete press 3 *); printf(n* output press 4 *); printf(n* e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蒸汽杀菌锅知识培训要点
- 2025年社区卫生服务知识考试题库(附答案)
- 2025年普通处方权考试题及答案
- 2025诊所租赁合同范本参考
- 叉车实操考试全套试题及答案
- 2025年高考化学试题分类汇编:有机化学基础(含解析)
- 2025全面授权合同协议书汇编
- 物业安全生产试题及答案
- 2025年4月护理理论知识考试模拟题(含参考答案)
- 2025年北京市旅游合同范本(BF)
- 应急第一响应人线上理论考试
- 北科大工业生态学教学大纲
- 四个坚持两个维护
- OQC岗前培训知识演示文稿
- 口服CCB类药品临床综合评价指标体系专家咨询调查表
- 如何做一名理性爱国者课件
- U8开发之单据控件
- 第四节道亨slw2d架空送电线路评断面处理及定位设计系统部分操作说明
- 初高中衔接数学教学的心得
- 测振仪使用方法
- 2023-2024学年湖南省耒阳市小学语文六年级下册期末自测测试题
评论
0/150
提交评论