通讯录系统.docx
- 文档编号:5667364
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:16
- 大小:297.73KB
通讯录系统.docx
《通讯录系统.docx》由会员分享,可在线阅读,更多相关《通讯录系统.docx(16页珍藏版)》请在冰豆网上搜索。
通讯录系统
《高级语言程序设计》课程设计报告
题目:
班级:
软件工程R1
学生学号:
学生姓名:
指导老师:
陈湘骥
提交时间:
2012年4月8日
成绩:
华南农业大学信息学院
一、需求分析
1、系统概述:
在我们的日常生活中,我们使用得最多的移动设备就是手机,而通讯录系统则是手机的必备功能之一,它能够帮助我们记录数量庞大的联系人信息,同时也方便我们查找,修改联系人的信息,大大提高了手机对信息管理的能力。
本系统是运用C语言设计的,它能够在计算机上运行,可以将联系人信息保存在TXT文档中,更方便我们对信息进行处理。
系统主要功能分为两大类:
(1)对联系人的信息进行各种处理的功能:
1.新建联系人的信息.
2.修改联系人的信息.
3.删除联系人的信息.
4.查找联系人的信息.
5.将联系人信息进行分类并统计各分类联系人的数量.
6.显示所有联系人的信息.
7.备份联系人的信息.
(2)保护信息安全的功能:
1.新建系统密码.
2.修改系统密码.
3.对密码信息进行加密处理.
2、系统运行环境:
(1)硬件环境:
CPU:
奔腾3以上
内存:
64M以上
显卡:
集成显卡
硬盘:
10M
(2)软件环境:
操作系统:
windows98/me/2000/XP/vista
DOS系统支持中文输出
3、功能需求描述:
(1)登录模块:
第一次登录时系统会要求新建密码,当密码设置成功后,再次进入系统时,系统要求用户输入密码,如果密码正确则能够进入系统,如果密码不正确则不能进入系统。
(2)主菜单模块:
显示出系统的所有功能,用户选择不同的功能对系统进行相应的操作。
(3)新建联系人模块:
1>可以添加联系人的信息,包括联系人的姓,名字,住址,手机电话,家庭电话,类别。
当用户输入了一个已有的联系人姓名时,系统会自动询问用户是否选择覆盖已有联系人的信息,如果用户选择覆盖则会让用户输入联系人的住址,手机电话,家庭电话和类别。
如果用户选择不覆盖时,则会返回主菜单画面。
2>新建联系人时如何确保系统和数据的安全性:
因为保存联系人信息的时候,是按照联系人的姓、名字、住址、手机电话、家庭电话、类别的顺序保存在TXT文档中,那么如果用户在填写新建联系人数据的时候,没有将所有数据填写完毕就恶意关闭程序的话,那么保存的数据将会混乱。
为了避免这种问题,在程序中运用了copyforsetup()函数将TXT文档中原有的数据放入一个新建的链表当中,返回头指针。
只有在用户完整填写新建联系人的信息后才会在将数据放入链表中,最后才会覆盖原有的TXT文档。
这样能有效地避免了恶意关闭程序导致数据混乱的情况。
(4)修改联系人模块:
系统会要求用户输入联系人的姓和名字,如果没有查找到此联系人就会显示没有此联系人的信息,如果有则会询问用户要修改此联系人的哪项信息,例如联系人的住址,手机电话,家庭电话,类别。
用户可以根据自己的需要进行修改,也可以选择修改所有的信息。
(5)删除联系人信息模块:
系统会要求用户输入联系人的姓和名字,如果没有查找到此联系人就会显示没有此联系人的信息,如果有则会删除此联系人的所有信息。
(6)查找联系人信息模块:
系统会询问用户按哪种方式查找联系人,分别有按联系人的姓、按联系人的名字、按联系人的住址、按联系人的手机号码、按联系人的家庭电话、按联系人的类别查找。
1>数据的重复出现情况处理:
例如按联系人的姓查找的时候,会存在有多个同姓联系人的情况,那么系统将会将所有此姓联系人的输出。
按其他类型查找也按此方法处理。
2>数据显示转页问题:
显示联系人的信息的时候,如果数据过多则会使屏幕自动转页,使得用户看不到上一屏幕的数据。
为了避免此情况,系统在显现联系人数据的时候会进行计数,每次最多显示5个联系人的所有数
据,然后询问用户是否转页,如果用户选择转页则会进行清屏(运用了system("cls")函数),然后
显示后5个联系人的数据,如果用户不选择转页则会返回主菜单画面。
(7)分类并统计各分类联系人数量模块:
系统会要求用户输入要查看联系人的类别,如果没有查
找到此类别就会显示没有此联系人的信息,如果有则会删除此类别的所有联系人的信息并统计此
类别联系人的数量。
1>数据显示转页问题:
显示联系人的信息的时候,如果数据过多则会使屏幕自动转页,使得用户看不到上一屏幕的数据。
为了避免此情况,系统在显现联系人数据的时候会进行计数,每次最多显示5个联系人的所有数
据,然后询问用户是否转页,如果用户选择转页则会进行清屏(运用了system("cls")函数),然后
显示后5个联系人的数据,如果用户不选择转页则会返回主菜单画面。
(6)显示所有联系人信息模块:
显示所有联系人的所有信息。
1>数据显示转页问题:
显示联系人的信息的时候,如果数据过多则会使屏幕自动转页,使得用户看不到上一屏幕的数据。
为了避免此情况,系统在显现联系人数据的时候会进行计数,每次最多显示5个联系人的所有数
据,然后询问用户是否转页,如果用户选择转页则会进行清屏(运用了system("cls")函数),然后
显示后5个联系人的数据,如果用户不选择转页则会返回主菜单画面。
(7)安全模块:
首次进入系统时,系统会要求用户新建密码,密码会转换成ASCAll码按一定的循序保存在密码文件中,文件中已有大量的字符。
当用户再次进入系统时,系统会要求用户输入密码,只有密码正确才能进入系统,保证了系统的安全性。
二、总体设计
1、总体开发思想:
(1)主要的数据结构:
系统对数据操作的主要数据结构是一个一维链表(如图)。
头指针head
…………………
NULL
(2)数据存贮方式:
以字符串形式保存于TXT文档中。
(3)使用的语言:
C语言。
2、系统模块结构图:
3、模块设计:
以下为各个功能模块的流程图
联系人已存在
是否覆盖?
覆盖
不覆盖
三、功能实现
1、主要函数:
函数名及参数含义;
(1)主要函数:
voidmenu()//主菜单函数
voidsetup()//新建联系人函数
voidmodify()//修改联系人函数
voiddel()//删除联系人函数
voidfind()//查找联系人函数
voiddisplay()//显示联系人函数
voidtype()//分类统计联系人函数
voidmima()//修改密码系统函数
voidsafe()//安全系统函数
structData*copyforsetup()//Data是链表类型,
structData
{
charfname[10];
charname[10];
charaddr[50];
intpnum[15];
intfnum[15];
chartyp[10];
structData*next;
}
copyforsetup()是将TXT文档中的数据放进链表的函数,返回链表的头指针
2、使用界面
(1)密码输入界面:
(2)各菜单界面:
(3)新建联系人信息:
(4)修改联系人信息:
(5)删除联系人信息:
(6)查找联系人信息:
(7)备份数据:
(8)显示所有联系人信息:
(9)显示和统计各类别联系人:
(10)修改密码系统:
四、总结
在3月初,当我知道了课程设计项目时,我选择了功能较为简单通讯录系统。
开始时,我并不知道如何起步,在网上也找了很多相关的代码,可是发现看别人的代码都比较复杂,要看懂需要很多的时间,所以决定自己从零开始做起。
从一开始的主菜单开始做起,每天做一个功能函数,刚开始的时候遇到各种的奇怪问题,经常会和舍友讨论(我们宿舍都做不同的题目),查看教材,最后都能考自己解决问题,并且对文件的操作和程序的调试有了更深的了解。
在程序编写完成后,对程序进行了各种测试,将所有可能出现的情况都测试了多次,并不断修改程序,防止程序被恶意操作而破坏。
这个过程是我的收获是最大的,因为这样我能从一个用户的角度去对我的程序进行分析和修改,使程序更为人性化。
在答辩过程中,老师提问了我很多关于我程序的问题,并提出了很多的建议和意见,都使我有种豁然开朗的感觉,在对程序的进一步修改后,更加深了我对程序设计概念的了解。
通过此次课程设计,我感觉到我收获了很多,并且对C的运用也更加的熟练。
评分表
题目:
学号:
姓名:
评分项目分数
1.实现情况(15):
完成课程设计要求的情况
2.系统分析(10):
对系统的理解及分析的深入程度。
3.系统设计(20):
总体设计、具体设计、数据结构设计等。
4.程序设计(30):
C语言的运用能力、算法能力等。
5.界面设计(15):
操作简便、界面友好程度等。
6.报告撰写(10):
报告撰写的规范性、合理性等等。
总成绩:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)