数据结构课程设计通讯录

上传人:第*** 文档编号:34004718 上传时间:2018-02-19 格式:DOC 页数:10 大小:57KB
返回 下载 相关 举报
数据结构课程设计通讯录_第1页
第1页 / 共10页
数据结构课程设计通讯录_第2页
第2页 / 共10页
数据结构课程设计通讯录_第3页
第3页 / 共10页
数据结构课程设计通讯录_第4页
第4页 / 共10页
数据结构课程设计通讯录_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《数据结构课程设计通讯录》由会员分享,可在线阅读,更多相关《数据结构课程设计通讯录(10页珍藏版)》请在金锄头文库上搜索。

1、数据结构课 程 设 计 说 明 书题目: 通讯录信息系统的管理 院 系: 专业班级: 学 号: 学生姓名: 指导教师: 2008 年 06 月 20 日一、需求分析运用数据结构 中的算法思想作数据结构,结合 C 语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉 C 语言的基本知识,并掌握数据结构的一些基本算法思想,掌握 C 语言的文件操作(包括从磁盘读入和向磁盘写入内容) ,进一步熟悉指针的用法,数组的建立运用和函数的调用等。实现以下几方面的功能:1.Add a record,可以向通讯录管理系统中增加新记录;2.Delete a record.可以从通讯录管理系统中删除记录;

2、3.Show all records.显示通讯录的所有信息;4.Search a record.按名字查询信息;5.Quit 退出通讯录管理系统。简介:本程序是通过链表实现的简单通讯录,所实现的此通讯录包含着三个信息,即通讯者的姓名、电话号码和住址。该程序能够帮助使用者完成一些常用的通讯记录,操作界面简单易懂,使用方便。如果使用者还需要其他功能只要进行简单的修改就可以实现添加。因为本人水平有限,该程序在算法的选择方面还不够好,有待于进一步完善。(1)此程序的几大模块第一个模块:结构体(struct friends):实现通讯录的三个基本组成部分姓名、电话、地址;第二个模块:添加(add):添加

3、通讯者,实现插入功能;第三个模块:删除(delete): 删除某人的信息,如果未找到要修改的某人的信息,则提示通讯录中没有此人的信息,并返回主菜单,实现删除功能。第四个模块:search( )的功能是:查询某人的信息如果找到了 ,则显示该人的信息, 如果未找到,则显示通讯录中没有此人的信息,并返回主菜单;第五个模块:输出(list):浏览通讯录全体成员,实现整个通信录数据全体输出;第六个模块:退出(exit):退出程序;第七个模块:主函数 main( ):根据主菜单的选项调用各函数,并完成相映的功能.第八个模块:Menu( )的功能是:显示英文主菜单;(2)测试1、根据屏幕输出的菜单选择所需要

4、的操作,通常第一次使用应选择 1 添加;输入完每个通讯者的信息后都可以选择继续还是退出,如果输入任意键,则继续输入,否则输入 y,程序就会回到初始界面;2、查找选择 2 ,程序提示输入要查找的通讯者的姓名,输入后回车,如果存在,则显示通讯者的信息,如果不存在,程序提示 no message;3、删除操作选择 3 ,输入要被删除的通讯者的姓名,输入后按回车,程序将显示要被删除的通讯者的信息,确定删除输入 1,取消删除选择 0;4、第 4 项功能,显示所输入的所有通讯者的信息;5、退出选择 5二、概要分析1、可排序表的抽象数据类型定义为:ADT Orderablelist 数据对象:D=Ai |

5、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()五个函数。三 各程序模块之间

6、的层次调用关系:主程序的流程: 主 函 数菜单函数(包括函数返回值的输出)输入记录查找记录显示记录显示指定记录查找函数删除函数插入记录函数保存函数Main 主函数menu-bookr 函数add 函数 del;函数 search 函数list 函数 quit 函数四、调试分析1、输入时每输入通讯者的一个信息按下回车键,根据屏幕输出信息输入相应的信息即可;2、注意各个函数调用的关系,熟悉各种算法的应用;3、了解程序的各个模块;五、用户使用说明此通讯录程序的操作特别简单,算法也很简明。使用者一看就会明白,就是几个函数之间的调用,此通讯录有如下的功能:1、添加通讯者输入记录2、按姓名删除显示记录;3

7、、按姓名查找记录;4、显示所有通讯者联系信息;5、退出程序;六、测试结果经过调试并成功的运行此程序后,屏幕就显示出菜单界面七、参考文献1( 美)Mark Allen Weiss 著 冯舜玺 译 数据结构与算法分析-C 语言描述.北京: 机械工业出版社,2006.8;2 数据结构 (第二版本)清华大学出版社出版,严蔚敏,吴伟民 编著3 C 程序设计 清华大学出版社出版 , 谭浩强主编4 C 程序设计题解与上机指导 清华大学出版社出版 , 谭浩强主编5上网搜寻到解决程序运行中的一些错误信息的解决方法。源程序:#include#includestruct personchar name100;cha

8、r 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.name,one.tel,one.

9、addr);fprintf(fp,%-100s%-100s%-100sn,one.name,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

10、 phonenumber and address!(end by 0)n);scanf(%s,one.name);while(strcmp(one.name,0)scanf(%s%s,one.tel,one.addr);fprintf(fp,%-100s%-100s%-100sn,one.name,one.tel,one.addr);scanf(%s,one.name);fclose(fp);void search()int k=0;char namekey8;struct person one;printf(n input name:);scanf(%s,namekey);if(fp=fop

11、en(filename,rb)=NULL)printf(ncant open the telebook!);exit(0); while(!feof(fp)fscanf(fp,%s%s%sn,one.name,one.tel,one.addr);if(!strcmp(namekey,one.name)printf(nn found,like:);printf(n%-100s%-100s%-100s,one.name,one.tel,one.addr);k=1;if(!k)printf(n not find n);fclose(fp);void delete()int m,k=0,flag;lo

12、ng 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.name,one.tel,one.addr);if(!strcmp(namekey,one.name)k=1;break;if(k)printf(nhave found,rec

13、ord like);printf(n%-100s%-100s%-100s,one.name,one.tel,one.addr);printf(n*delete,choose 1;undelete,choose 0*:n);scanf(%d,if(m) seek(fp,offset1,SEEK_SET);fprintf(fp,%-100s%-100s%-100sn,);elseprintf(nnot found!n);fclose(fp);void output()struct person one;if(fp=fopen(filename,r)=NULL)printf(ncant open t

14、elebook !n);exit(0);printf(nn%100sn,T E L E B O O K);while(!feof(fp)fscanf(fp,%s%s%sn,one.name,one.tel,one.addr);printf(%-100s%-100s%-100s,one.name,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* exit press 5 *n);printf(*nn);scanf(%d,if(m=0&m=5)switch(m)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号