手机通讯录系统课程设计报告(含全程序).doc_第1页
手机通讯录系统课程设计报告(含全程序).doc_第2页
手机通讯录系统课程设计报告(含全程序).doc_第3页
手机通讯录系统课程设计报告(含全程序).doc_第4页
手机通讯录系统课程设计报告(含全程序).doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

装订线 课程设计报告课程名称: 程序设计基础课程设计 学院名称: 计算机科学与工程学院 专 业: 计算机科学与技术 目 录一、绪论.3二、设计内容.41、选题.42、系统功能.43、应用到的技术.4三、设计要求. 4四、设计环境. 51、操作系统 . .52、开发工具.53、pc机配置 5五、系统结构图.5六、功能实现.61、系统运行. 62、添加联系人63、修改联系人74、删除联系人85、查找联系人86、查看所有联系人.87、对联系人在文件中的存储位置进行排序.98、系统运行结束.9七、遇到的问题和解决的方法.9八、设计心得. 10九、参考文献. .11十、附件. .121、头文件 122、主函数.123、函数实现文件. 13需求分析在这个信息化的时代,手机已成为继固话之后最为通俗的交流工具。在这个人与人关系愈加密切的时代,“通讯”成了生活中的必需品。这就有这么一个系统记录下人与人之间的多样联系方式手机通讯系统。通过系统记录下对方的联系方式,既减轻了大脑的负担,又不在受各种条件的约束,做到便捷随身管理相关的联系信息,摆脱了传统电话簿,名片的累赘。从长远利益来看,可是意义重大的环保之举。根据市场需求,手机通讯录管理系统所记录的信息一般分为个人、商业、办公三类。清晰了机主的联系方向。针对性的分门别类,使系统具有了方便了机主的存储和快速查阅优势功能,大大减少了在电话簿,名片上机械翻阅查找过程的时间。于此同时又根据手机随身携带的特殊性,在一定程度上比一般的制作文件又其次,因为手机是随身携带的通讯工具,这与记事本相比将在一定程度上保障联系人信息的安全性,相对避免了个人隐私信息外泄从而带来的损失。综上所述,手机通讯录管理系统是一个高效、实时、绿色环保的管理系统。友元 重载 常函数 构造函数 析构 判断 数据链表 手机通讯录管理系统一、 主要功能模拟手机通信录管理系统,要求:(1)查看功能:选择此功能时,列出下列三类选择:a 办公类 b 个人类 c 商务类 ,当选中某类时,依次显示出此类所有数据中的姓名和电话号码(2)增加功能:能录入新数据(包括:姓名、电话号码、分类(可选项有:a办公类 b 个人类 c 商务类)、电子邮件)。 当录入了重复的姓名和电话号码时,提示数据录入重复并取消录入; 通信录容量限定在15条以内。 当存储信息超出存储空间,提示存储空间已满,不能再录入新数据; 录入的新数据能按递增的顺序自动进行条目编号。(3)拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拔号声音。(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改(5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。1.查看功能2、本系统应具备以下七个功能模块:添加联系人信息、修改联系人信息、删除联系人信息、查询联系人信息、查看所有联系人信息、对联系人信息进行排序,退出保存。(1) 添加联系人信息:将新得到的联系人信息添加到通讯录中,添加的信息有:序列号、姓名、昵称、性别、手机号码、家里电话、qq和e-mail。(2) 修改联系人信息:对已经保存的联系人信息进行修改,可以修改全部的信息也可以选择性的修改其中的某些项目。(3) 删除联系人信息:对保存在通信录中的联系人信息进行删除。(4) 查询联系人信息:通过联系人的姓名查询联系人的的全部通讯信息(5) 查看所有联系人信息:本功能将一次性的让机主看到通讯录中保存的所有联系人的所有通讯信息。(6) 联系人信息排序:依据添加时给定的序列号对通讯录中的联系人信息进行排序。(7) 保存:将添加的联系人通讯信息以.txt文本的形式保存起来,以备以后查询使用。3、系统设计具体应用到的技术:(1) 结构、枚举类型的定义与使用;(2) 数组的定义和使用使用;(3) 程序的三种基本控制流程的综合、灵活运用;(4) 普通指针和数组指针的定义和使用;(5) 各类函数的定义和调用;(6) 文件的输入/输出;(7) 程序的调试。二、 设计要求1、在visual c+控制台应用程序方式下设计课题。2、设计的程序要求完成本次课程设计所规定的功能。3、程序应具有一定的健壮性。即程序必须具有必要的检查和出错处理,如在添加新联系人信息时检查输入的序列号是否相同。删除、查询联系人信息时检查输入的姓名是否存在等。三、 设计环境1、 操作系统:windows xp professional;2、 开发工具:microsoft visual c+ 6.0;3、 pc机的配置:cpu:intel(r) core(tm)2 t7100 2.00ghz;内存:1g;硬盘空间:120gb;显卡:128mb ddr3 nvidia(r) geforce(r) 8400m gs 显卡;四、 系统结构图主菜单 添加联系人信息修改联系人信息删除联系人信息查询联系人信息查看所有联系人信息对联系人进行排序保存退出根据姓名删除根据姓名修改根据姓名修改根据序列号排序五、 功能实现1、 系统运行系统运行结果如图所示:2、 添加联系人添加联系人信息运行界面如图所示:录入完一位联系人的相关信息后,会立刻给予显示,以供核对。核对后敲击回车,将回到主菜单。3、 修改联系人修改联系人信息运行界面如图所示:当选择修改联系人信息菜单“2”时,会提示您输入要修改联系人的姓名,如果您姓名输入错误,则提示联系人不存在,如下图所示:此时,需重新选择菜单“2”,然后输入正确的姓名即可对联系人信息进行修改,需要修改的项目,选择菜单“y”不需要修改的项目选“n”,将直接进入下一个项目的修改。4、 删除联系人信息删除联系人信息运行界面如图所示:此时,输入你要删除的联系人的姓名即可,然后系统会提示你是否确认删除,“y”执行删除,“n”取消删除。5、 查询联系人查询联系人信息运行界面如图所示:输入你要查询的联系人的姓名,如果文件book.tet中有这位联系人的信息,将会显示出来;如果文件book.tet中没有这位联系人信息,系统将会提示你“联系人不存在”。6、 显示所有联系人显示所有联系人信息运行界面如图所示:当选择“5”菜单时,将会显示所有保存在book.txt文件中联系人的信息。7、对联系人在文件中存储位置排序按序列号对联系人在book.txt文件中排序的运行界面如图所示:该功能主要是根据在添加联系人是给定的“序列号”,对保存在book.txt文件中的联系人信息进行排序,序列号小的排到前面,大的排到后面。8、系统结束运行界面选择菜单“7”系统将提示“press any key to continue”,此时按任意键系统运行结束。 六、 遇到的问题和解决的方法1、不熟悉。由于在本次课程设计之前长时间没有复习和使用visual c+,很对知识已经记忆模糊,甚至已经淡忘。对于这种情况我做了这些工作:翻阅以前的课本熟悉本次课程设计所涉及和使用到的相关知识点,比如数组、数据指针、结构体和枚举类型等等。其次就是在设计的过程中遇到自己不能解决的问题,请教其他同学和到图书馆查阅相关资料。2、系统首次运行,在添加联系人信息时,联系人信息当中的手机号码、家里电话、地址、qq和e-mail几个项目是始终显示第一位联系人的信息,而不能显示与姓名对应的联系人的通讯信息。这个问题在请教老师后得知,是我在设计时忽略了添加新的联系人信息时必须考虑已经保存在文件中的已经添加的联系人信息,于是将代码“getdata(book)”改成“getdata(book+curnum)”,问题得以解决。3、当系统完成最初设计,执行修改联系人信息时,显示的是第一个联系人的通讯信息,并不是显示当前联系人的信息。这个问题在系统最初运行的时候,作为设计人员的我并没有注意到,直到跟一位同学进行系统设计缺陷互查的时候才被发现。经过仔细检查和查阅资料,发现了其中的错误所在。显示当前信息的代码是“displayone(book+i)”,而我写成了“displayone(book)”,改正过来的系统成功实现显示当前联系人的通讯信息。4、当book.txt文件中有联系人信息数据,程序运行,在读book.txt文件中的联系人信息数据时总出错。研究了很久发现,是因为在最初设计时,我考虑将保存到book.txt文件的联系人信息中的各项目之间用顿号隔开以示区别,但在做读数据时我却没有对对应的设计,没有使用顿号,致使在读数据时出现错误。七、 设计小结课程设计是一次将理论知识运用于解决实际生活中所遇到的问题的实战是一次理解和深化理论知识,树立知识服务生活,知识服务经济发展的的理念。在本次设计过程中,我通过查阅资料,以及调查身边的人进行系统需求分析,在此基础上建立系统模型,编写代码,进行调试。过程是曲折的,有时候一个字母的大小写就要花上几个小时的时间去查找。但正是这个过程让我了解了自己对这么语言的掌握程度,锻炼了我独立解决问题的能力,同时让我意识到严谨的态度对一个系统开发者的重要性。学以致用,手机通讯录管理系统是我独立开发的第一个系统。由于能力所限,这个系统还相对简单,且有可能存在一定的缺陷,但这并没有影响到我设计成功后的喜悦。这是一个契机,给自己今后学习和工作指明了方向。最后,衷心的感谢本次课程设计的罗烨指导老师,正因为老师的指点,使得我少走了很多弯路,同时授予了我很多作为设计人员应该有的正确理念和行为。 参考文献1 谭浩强著c+程序设计北京清华大学出版社,20062 谭浩强主编c+程序设计题解与上机指导北京清华大学出版社,20063 郑莉,董渊,张瑞峰著c+语言程序设计(第3版)北京清华大学出版社,20044 郑莉,董渊,张瑞峰主编c+语言程序设计案例教程北京清华大学出版社,20045 洪永清,黄德才,吕丽民面向对象建模与设计北京人民邮电出版社,19986 邵维忠,杨芙清面向对象的系统分析北京清华大学出版社,19987 吴乃陵c+程序设计实践教程(第2版)北京高等教育出版社,20068 钱能c+程序设计实验指导北京清华大学出版社,19999 严蔚敏等数据结构(c+版)北京清华大学出版社,199710 (美)ivor horton 著 李予敏译c+入门经典(第3版)北京清华大学出版社,2002附:本系统源程序1、头文件/book.h #ifndef book_h#define book_hstruct bookchar no9;char name9;char nickname9;char sex7;char mobilenum15;char familynum15;char addr30;char qq10;char email15;#endif2、主函数/主函数文件#include #include #include #include #include 手机通讯录.hint enterchoice(); /输入选项void init(); /数据文件初始化void add(); /增加一个联系人信息void display(); /显示所有联系人信息void displayone(book*); /显示全部联系人重载函数void sortno(); /按序列号排序(从小到大)void save (); /保存数据int checkno(char *); /输入序列号int checkname(char *); /输入姓名void printtitle(); /显示表头void getdata(book*); /读取联系人信息 void update(); /修改联系人信息void delete(); /删除联系人信息void query(); /查询联系人信息enum choicesadd=1,update,delete,query,display,sortno,end;const int maxnum=200; /能够建立的最多联系人人数int curnum; /当前联系人人数book bookmaxnum; /结构数组void main() init();int choice;while(choice=enterchoice()!=end) switch(choice) case add: add(); break; case update: update(); break; case delete: delete(); break; case query: query(); break; case display: display(); break; case sortno: sortno(); break; default: cerr输入序列号不正确,请重新输入!n; save();3、函数实现文件/函数实现文件#include #include #include #include #include 手机通讯录.hint enterchoice();/输入选项void init(); /数据文件初始化void add(); /增加一个联系人信息void update(); /修改一个联系人信息void delete(); /删除一个联系人信息void query(); /查询一个联系人信息void display(); /显示全部学生void displayone(book*); /显示一个学生的重载函数void sortno();/按建立时的序号排序(从小到大)void save (); /保存联系人信息数据int checkno(char *);/检查联系人是否存在,存在返回序列号,不存在返回-1int checkname(char *);/检查联系人是否存在,存在返回姓名,不存在返回-1void printtitle(); /显示选择菜单void getdata(book*);/读取联系人信息extern const int maxnum=200;/最多能够建立联系人人数extern int curnum;/当前已经建立的人数extern book bookmaxnum; /结构数组/=输入选择函数=int enterchoice() coutnt+欢迎使用手机通讯录管理系统+n; cout 按【1】: 添加一位联系人信息; endl; cout 按【2】: 修改一位联系人信息; endl; cout 按【3】: 删除一位联系人信息; endl; cout 按【4】: 查询一位联系人信息; endl; cout 按【5】: 显示所有联系人信息; endl; cout 按【6】: 按建立序列号排序; endl; cout 按【7】:结束; endl; coutnt+endl; cout choice; return choice;/=初始化函数=void init()ifstream incount,inbook;ofstream outcount,outbook;incount.open(count.txt,ios:in);/打开联系人人数文件if(!incount)/文件不存在,建立该文件incount.close();outcount.open(count.txt,ios:out);outcountcurnum;/文件存在,读取联系人人数 incount.close();if(curnum) /联系人总数不为0,联系人文件存在inbook.open(book.txt,ios:in); /打开联系人文件for(int i=0;ibooki.no; /读取联系人序号inbookbooki.name; /读取联系人姓名inbookbooki.nickname; /读取联系人昵称inbookbooki.sex; /读取联系人性别inbookbooki.mobilenum; /读取联系人手机号码inbookbooki.familynum; /读取联系人家里电话inbookbooki.addr; /读取联系人地址inbookbooki.qq; /读取联系人qqinbookbooki.email; /读取联系人e-mailinbook.close();elseoutbook.open(book.txt,ios:out);outbook.close();/=增加一个联系人信息=void add() char no9;coutno;int i=checkno(no);if (i=0)cout序列号已存在,请重新输入endl;elsestrcpy(bookcurnum.no,no);coutbookcurnum.name;coutbookcurnum.nickname; coutbookcurnum.sex ;coutbookcurnum.mobilenum;coutbookcurnum.familynum;coutbookcurnum.addr ;coutbookcurnum.qq ;coutbookcurnum.email ;save();displayone(book+curnum); /排序后重新显示curnum+;/=按序列号从小到大冒泡排序,并显示=void sortno()book temp; int flag;for(int i=0;icurnum-1;i+)flag=1;for(int j=0;jcurnum-1-i;j+)if(strcmp(bookj+1.no ,bookj.no)0 ) flag=0; temp=bookj+1;bookj+1=bookj;bookj=temp; if(flag) break; display(); /排序后重新显示/=显示表头=void printtitle() coutsetiosflags(ios:left); coutsetw(4)序号setw(6)姓名setw(6)昵称setw(4)性别setw(10) 手机号码setw(14) 家里电话setw(10) 地址setw(10) qqsetw(10) e-mailendl;/=显示所有联系人信息=void display() coutsetiosflags(ios:left); printtitle(); for (int i=0;icurnum;i+) coutsetw(4)booki.no;coutsetw(6)booki.name;coutsetw(6)booki.nickname;coutsetw(4)booki.sex;coutsetw(10)booki.mobilenum;coutsetw(10)booki.familynum;coutsetw(10)booki.addr;coutsetw(10)booki.qq;coutsetw(10)booki.emailendl; /=显示一个联系人信息=void displayone(book *book) coutsetiosflags(ios:left); printtitle();coutsetw(4)no; coutsetw(6)name; coutsetw(6)nickname; coutsetw(4)sex; coutsetw(10)mobilenum; coutsetw(10)familynum; coutsetw(10)addr; coutsetw(10)qq; coutsetw(10)email;/=保存联系人信息到文本文件=void save() ofstream outcount,outbook; outcount.open(count.txt,ios:out); outcountcurnum; outcount.close(); outbook.open (book.txt,ios:out); for(int i=0;icurnum;i+) outbookno ; outbookname ; outbooknickname ; outbooksex ; outbookmobilenum ; outbookfamilynum ; outbookaddr ; outbookqq ; outbookemail endl; outbook.close();/=检查序列号是否存在,找到返回所在数组下标,找不到返回-1=int checkno(char* no)for(int i=0;icurnum;i+)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论