课程设计电话簿管理系统 1.docx

上传人:b****6 文档编号:8697305 上传时间:2023-02-01 格式:DOCX 页数:8 大小:129.20KB
下载 相关 举报
课程设计电话簿管理系统 1.docx_第1页
第1页 / 共8页
课程设计电话簿管理系统 1.docx_第2页
第2页 / 共8页
课程设计电话簿管理系统 1.docx_第3页
第3页 / 共8页
课程设计电话簿管理系统 1.docx_第4页
第4页 / 共8页
课程设计电话簿管理系统 1.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

课程设计电话簿管理系统 1.docx

《课程设计电话簿管理系统 1.docx》由会员分享,可在线阅读,更多相关《课程设计电话簿管理系统 1.docx(8页珍藏版)》请在冰豆网上搜索。

课程设计电话簿管理系统 1.docx

课程设计电话簿管理系统1

 

电话簿

设计文档

 

设计者:

董昊

李月婷

 

2014/6/28

 

一、问题分析与任务定义

电话簿是用户用来存储联系人信息的一个软件,用户通过电话簿可以对联系人信息进行删除、添加、修改、查询等功能。

实现一个电话簿管理系统需要设计以下几个模块。

(1)、添加:

将需要存储的联系人信息添加进去。

(2)、删除:

先根据联系人的名字进行搜索,同名的根据号码进行选择性删除。

(3)、查询:

根据指定的人名查找联系人信息。

(4)、修改:

对指定的人的姓名先进行搜索,找到后,再根据该联系人信息进行选择性修改。

(5)、显示:

显示文件中所有的联系人信息。

(6)、排序:

将显示出的联系人信息按姓名进行升序排序显示出

(7)、翻页:

一页显示5个联系人的信息,根据给定的操作,选择上下翻页操作。

(8)、退出系统

二、数据结构选择与概要设计

1.本程序的基本算法设计

(1)tell结构体定义

定义了结点对应的数据信息,有联系人的姓名name、号码number、QQ、邮箱mail、性别sex以及pre指向其前驱的指针域和next指向其后继的指针域。

(2)各模块函数功能的实现

2.数据结构设计

#include"stdlib.h"

#include"stdio.h"

#include"string.h"

//---------结构体定义----------

typedefstructtell{

charname[20];//姓名

charnumber[20];//号码

charqq[20];//QQ

charmail[20];//邮件

charsex;//男:

M女:

W

structtell*next;

structtell*pre;

}tell,*tp;

3.概要设计

首先在浏览菜单中显示文件中原有的联系人信息,一页显示5个人,根据显示的操作进行相应的选择,有上下翻页选择,进入主菜单选择,以及联系人详细信息的选择。

进入主菜单界面后根据菜单中的提示进行相应的操作选择。

tell*listmenu(tell*L,int*n,int*m,int*Flag)//浏览菜单,程序刚运行时所显示的菜单界面

voidmainmenu(tell*L)//功能菜单,进行相应操作模块选择

主功能函数:

tell*add(tell*L);//添加

tell*search(tell*L);//查询

tell*del(tell*L);//删除

tell*modify(tell*L);//修改

voidshow(tell*L);//显示

voidwritetxt(tell*L);//写文件

intreadtxt(tell*L);//读文件

voidSelectSort(tell*L);//排序

tell*next_page(tell*p,int*n);//下翻页

tell*pre_page(tell*p,int*n);//上翻页

三、详细设计和编码

1.简述设计思路:

(流程图方式显示)

2、详细设计思路(主要操作函数的实现)

(1)、增加联系人信息函数

tell*add(tell*L);

该函数实现的流程为新建一个新结点,给新结点赋值,然后从头结点开始找链表的尾结点,将新结点作为链表的尾结点,插入到链表的尾部,然后在实现该功能函数时,调用排序函数SelectSort(L)和写文件函数writetxt(L)。

这样就实现了将信息写入到文件中和联系人信息会排序显示出。

(2)删除联系人信息函数

tell*del(tell*L);

该函数的实质是链表的删除,从头结点开始查找要删除的结点,同时用n记录相同的人名的个数,找到后对相同姓名的联系人再根据号码进行选择性删除。

在实现该函数功能时,再调用writetxt(L)函数进行保存。

(3)、修改联系人信息

tell*modify(tell*L);

该函数先查找到需要修改的节点,对其信息进行修改,然后选择要修改的选项,后调用writetxt(L)函数,将新修改的信息写入文件中

(4)、查询联系人信息

tell*search(tell*L)这个函数的实质都是从头结点开始依次寻找符合条件的信息,然后将符合条件的联系人输出。

(5)、显示所有联系人信息

voidshow(tell*L),将所有的联系人信息显示出来。

(6)、上下翻页显示联系人信息

tell*next_page(tell*p,int*n);//下翻页,tell*pre_page(tell*p,int*n);//上翻页。

界面一页显示5个人,根据提示选择上、下翻页。

(7)、退出

free(L);退出时调用writetxt(L);函数将变更的信息进行保存,释放链表。

3、存储分析

联系人的信息有姓名、号码、邮箱、性别等信息,建立联系人结构体,然后每次操作后通过调用writetxt()函数进行信息存储,存储到文件中。

4、界面显示设计

界面1:

(联系人显示)

界面2:

(主功能函数选择)

 

电话簿设计总结

董昊李月婷

不足之处:

该程序是用来给用户对电话簿进行管理的,虽然这个程序已经基本达到老师的要求,但还有一个功能队友和我没有完成,那就是用索引表将联系人的信息进行存储,用索引表存储可以节约存储空间,这个程序我们只用了链表进行存储,联系人的所有信息都存储之中,空间占用比较大。

收获:

通过这次为期一周的C培训,我们弥补了自己知识上的一些漏洞,这次实训让我们对链表的操作有了更深层次的认识,以及文件的读写,没有培训之前,自己对文件的读写可以说是一窍不通,但幸运的是,队友对这一块的知识比较熟,所以在写程序过程中,很多问题都是队友教的。

除此之外,运用链表实现各个函数功能,在这个过程中,我们遇到过很多问题,比如在实现上下翻页时,上翻的操作老是出错,后来慢慢调试成功了。

通过这次培训使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正学以致用,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,往往自己就题目的想法很难用代码实现,所以难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

通过这次培训之后,一定把以前所学过的知识重新温故。

我们深刻体会到C语言和数据结构这两门课程并不是轻而易举就可以学好的,学习这两门课程不仅需要细心严谨认真的态度,还需要有坚持不懈的毅力。

细节决定成败这句话在程序设计中最恰当不过了,因为一个小小的错误代码就可以使你的整个的程序无法进行,有时候绞尽脑汁也没能找出错误所在。

所以课程不仅理论性强,实际操作性更强,没有一个好的心态很难学好这门课程。

我们学习的不仅是科学的方法,还包括用什么样的态度去对待这门课程,并且让自理论性和实践性在自身得到充分的发挥,用细心严谨的态度去认识事物。

这次培训顺利完成了,我们感觉又把C语言和数据结构学习了一遍,在设计中遇到了很多编程问题,最后在学长及老师的指引下得以顺利完成。

同时,在学长和老师的身上我学得到很多实用的知识,其中有一个编程习惯的问题,他让我明白了有一个好的编程习惯是多么重要,在此我表示衷心的感谢!

最后也很感谢老师对我们的严格要求,因为老师的严格,所以我们才不敢怠慢,才学到很多实用的东西

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1