手机通信录管理系统.doc_第1页
手机通信录管理系统.doc_第2页
手机通信录管理系统.doc_第3页
手机通信录管理系统.doc_第4页
手机通信录管理系统.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

编号:05河北工业大学计算机软件技术基础(VC)2012年课程设计报告学院 工科部 班级 电气信息类c1132 姓名 郝博程号 115976成绩_一、题目:手机通信录管理系统(05)二、设计思路1、总体设计1) 分析程序的功能本程序是用的C+编写,主要实现的是手机通信管理的功能,其中包含了五个函数,分别是:查找void liechu()、添加void tianjia()、修改void xiugai()、删除void shanchu()、拨号void bohao()。通过这五种函数来实现对通讯录的增删改除等功能。比如添加一个人的信息,只要输入相应的人的名字和电话号码,系统自动会增添到目录里面,而且会相应的分配到三种不同的类别,这里我们设置的是三类:个人类、朋友类和黑名单类。同样,当删除一个人的信息,只要输入想要删除相应的人的姓名,系统会找到这个人的信息,执行删除功能,其他的功能同样是如此一次进行的。2) 系统总体结构:每一次通讯录更新的过程可以由这几部分完成:添加,查找,修改,删除,拨号等功能实现,确定信息的保存和信息的输出,其中由执行者来实现各个操作,总共五个步骤:模块函数名称添加信息void tianjia()查找信息void liechu()修改信息void xiugai()删除信息 void shanchu()拨号void bohao()对于每一次的操作,系统关注的只有这五个功能,当然,查找只是查找出相应人的信息,而修改也只是修改对应人的信息,拨号也是显示的要拨号人的姓名号码等,这些都没有影响通讯录的长度。而删除和添加信息,都对通讯录的长度进行了修改,这样我们需要定义一个变量来记录它的长度,因为循环中的时候,我们需要判断我们所要操作的对象不是不在有效的区间内,该变量的初始值我们设为0,即:int count=0,表示最开始通讯录里没有记录。同时,我们定义了一个手机通讯录的结构类型,里面包含了三个成员两个字符数组和一个整型变量,分别是char name50;char num50;int fenlei;用来存储联系人的姓名和电话号码,其中整型变量feilei的作用是:当fenlei为1的时候是表示的个人类;2的时候是朋友类;3的时候是黑名单。而后又定义了一个分类的二维数组为三行四列char fenlei37=个人类,朋友类,黑名单;用来存取不同类别的好友的信息, 表示信息成员名称联系人姓名name联系人电话num整型变量fenlei结构体:phone2、各功能模块的设计:说明各功能模块的实现方法1)void liechu()模块该函数是用来进行查找通讯录里面的联系人的信息的,首先我们需要选择要显示的人的分类是在那一类,比如如果在朋友类,则系统会把在朋友类里面的相应联系人的信息都给显示出来,当选定类别后,用一个for循环来实现所有人的显示,然后输出显示出来。代码参见void liechu()函数。2)void tianjia()模块该函数主要实现的是在手机通讯录里面添加我们需要的人的姓名和信息,并更新通讯录的长度,这个函数比较好实现,主要是在结构体phonei里面进行添加姓名、号码和分类,这样我们需要对正确的成员进行操作,比如添加的姓名需要保存在,而如要添加的电话号码需要保存在phonecount.num,而需要保存的分类需要保存在cinphonecount.fenlei,因为每个成员定义的类型不一样,所以如果输的不对会有错。当然,因为我们是在通讯录里添加了成员信息,所以通讯录的程度改变了,这时候多加了一位成员,相应的我们原来定义的变量count需要加1,即执行count+。代码参见void tianjia()函数。3)void xiugai()模块该函数主要是用来修改在通讯录里面的联系人的信息,首先,我们需要确定我们需要修改的人的是谁,即需要先输入需要修改人的姓名,然后系统会用for循环语句来确认我们输入的姓名和手机通讯录里面的人的姓名是不是一致,当一致的情况下,系统会让重新输入该联系人的电话,如果修改完了,会弹出修改成功。代码参见void xiugai()函数。4)void shanchu()模块该函数主要是用来实现删除手机通讯录里面的联系人的信息,同样,当我们要删除一个人的信息的时候,首先要输入要删除人的姓名,系统通过for循环来判断我们输入的姓名和手机里存储的人的姓名是不是一致,如果是一致的,我们就删除该联系人的信息。而这里的删除,就是把后面的信息替代现在的信息,这样一次类推,把该删除的信息后面的信息都替代前面一个信息,这样来进行删除的,和添加一样,删除成功后,我们前面所定义的变量cout会自动执行减1的操作,即执行count-。代码参见void shanchu()函数。5)void bohao()模块该函数主要是显示我们要拨号的那个人的电话号码,当我们选择这个拨号这个功能的时候,系统会自动通过for循环列出所有联系人的姓名,和所属于的分类,这样我们就可以通过选择姓名来显现出,我们所要拨出人的号码。这样我们输入想要拨出号码的人的姓名,系统通过for循环,判断我们输入的人的姓名和手机通讯里存储的人的姓名是不是一致,如果有这个人,则就输出他的相关的电话号码。代码参见void bohao()函数。 6)void menu()模块另外,我们还定义了一个函数,这个函数就是void menu()函数,他的功能就是将本系统的具体的功能显示出来,通过一个switch ()控制语句,来判断我们是选择哪个功能,进而跳转到相应的函数来执行相应的操作。也就是对手机通讯录的增删改等工作。代码参见void menu()函数。7)创新设计部分本系统的创新部分就是,通过一个二维数组char fenlei37=个人类,朋友类,黑名单,对手机的联系人进行了分组的存储,这样我们不管是在显示出通讯录联系人的时候,通过选择联系人是哪个类别的时候,就可以显示出来,不用把手机的所有的联系人多显示出来,这样节省了我们查找的时间。而添加人的信息的时候也一样对该添加的人进行了分类。改进的代码参见void liechu()函数。3、设计中的主要困难及解决方案设计中的主要的困难很多,由于刚开数学习c+对函数的定义、函数的调用不是很明白,比如说:strcmp(a,b)不是很了解,后来经过查找了解strcmp(s1,s2)为字符串比较函数,比较的是从字符串的第一个字符开始比较他的ASCLL码值,跟字符串的长度无关。对循环函数for或者switch控制语句用的总是不是很好,当s1 s2 时,返回值 0;当s1 = s2 时,返回值 = 0;当s1 s2时,返回值 0;而! 为逻辑非运算符,即当值为真时改成假,值为加时改成真。而在编程的过程中还是会存在各种各样的小的错误,比如for循环和switch()控制语句用的不是很熟练,经常是出现错误。不过都通过及时的查找相关的资料、书籍以及请问同学们解决了。4、你所设计的程序最终完成的功能1) 说明你编制的程序能完成的功能这是一个可以进行手机通信录管理的程序,用户可以增加人的个人信息,如姓名,电话号码,分类;可以分类查看人的信息并进行拨号,可以删除相应的信息,可以修改个人信息。2) 准备的测试数据及运行结果三、程序清单1)main函数/主函数void main() / while语句的原型是while(表达式)语句,当表达式为非0值时,执行while语句中的嵌套语句。所以在这里的意思是,当表达式非零的情况下执行void menu()函数while(1)menu();2)void menu()函数void menu()cout1.查号endl;cout2.增加记录endl;cout3.修改记录endl;cout4.删除记录endl;cout5.拨号endl;couti; /通过switch控制语句的选择,进入到相应的函数,实现增删改等功能switch (i)case 1:liechu();break;case 2:tianjia();break;case 3:xiugai();break;case 4:shanchu();break;case 5:bohao();break;3)void liechu()函数/显示联系人信息的函数void liechu()cout请选择要列出来的分类:endl;coutt1.个人类 2.朋友类 3.黑名单endl;couta;a-;cout姓名t号码endl; /通过一个for循环,来显示处于分类里面的联系人的信息for(int i=0;icount;i+) /判断语句,查看是不是手机通讯的分类if(phonei.fenlei = a)tphonei.numendl;4)void tianjia()函数void tianjia();coutphonecount.num;coutphonecount.fenlei; /保存到结构体中对应的成员变量count+;/由于通讯录的长度发生了变化,所以变量要进行相应的变化5)void shanchu()函数/删除信息函数void shanchu()char name50; /输入要删除的人的姓名coutname; /for循环来判断输入的人的姓名是不是和通讯里面的一致for(int i=0;icount;i+) /判断姓名是否一致if(!strcmp(,name)coutname当前的的电话号为:phonei.numendl;/For循环用来删除该删除的信息for(;icount-1;i+)phonei = phonei+1;cout删除成功endl;count-;/同样删除了联系人的信息,长度会变化,所以变量需要进行减1return;6)void xiugai()函数void xiugai() /输入要修改的联系人的姓名char name50;coutname; /for循环来判断输入的人的姓名是不是和通讯里面的一致for(int i=0;icount;i+) /if判断语句,查看输入的姓名的一致性if(!strcmp(,name)coutname当前的的电话号为:phonei.numendl;coutphonei.num; /修改联系人的电话cout修改成功。endl;7)void bohao()函数/显示要拨的号码的函数void bohao()char name50;cout姓名t分类endl; /for循环来显示联系人的姓名和分类for(int j=0;jcount;j+)tfenleiphonej.fenleiendl;coutname;/选择要拨出的人的姓名 /for循环来显示要拨出人的电话for(int i=0;icount;i+)if(!strcmp(,name)coutname的电话号为:phonei.numendl;return;8)struct结构体struct phone/定义的手机通讯录的结构体,里面包含了三个成员两个字符数组和一个整型变量,分别是char name50;char num50;int fenlei;用来存储联系人的姓名和电话号码。其中整型变量feilei的作用是:当fenlei为1的时候是表示的个人类;2的时候是朋友类;3的时候是黑名单。char name50;char num50;int fenlei;phone30;四、对该设计题目有何更完善的方案1、对自己完成程序进行自我评价。我的程序较好的完成了任务中规定的设计内容,完全遵循了任务要求,熟练的插入并运用所学函数解决了数据编程问题,并尽可能使步骤简单化,更加易懂。但在编程中也

温馨提示

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

评论

0/150

提交评论