还剩31页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
昆明理工大学管理信息系统课程设计通讯录管理系统学院计算机科学与技术学院姓名黄亚军学号200910405229指导教师姓名王剑2012年05月27日TOC\o1-3\h\z\u昆明理工大学管理信息系统课程设计1摘要参考文献25摘要通讯录管理系统是每一个用户管理通讯录的不可缺少的一个管理信息系统它的内容对于用户的管理者来说是至关重要的所以通讯录管理系统应该能够为每一个用户的管理者提供充足的信息和快捷的查询手段,大大的方便用户合理的管理通讯录随着科学技术的不断提高计算机科学日渐成熟网上通讯工具的迅速发展,其强大的功能已为人们深刻认识它已进入人类社会的各个领域并发挥着越来越重要的作用作为计算机应用的一部分使用计算机对通讯录进行管理具有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等这些优点能够极大地提高通讯录管理的效率也是用户理财的科学化、正规化管理与先进科学技术接轨的重要条件因此,开发这样一套管理软件成为很有必要的事情,对于我们即将计算机专业毕业的学员来说,也是一次将计算机应用于现实管理的一次很有意义的实践活动关键词通讯录管理信息系统计算机科学用户
一、前瞻
1.开发背景简介随着信息活动在国民经济中主导地位的确立和信息产业的崛起信息资源管理(InformetionResoucesManagement,简称IRM)作为一个专有名词和独立的学科逐渐发展起来如何积极开发、合理配置和有效利用信息资源,日益成为社会生活中亟待解决的问题由于计算机和通信技术的高速发展,推广应用计算机进行信息、管理成为推动信息化工作的重要内容,管理信息系统正是应用计算机信息化过程中出现的新生事物它是一个利用计算机软硬件资源进行电子数据处理的人——机系统,它能提供信息,支持企业或组织的运行,具有管理和支持决策的功能利用计算机能把生产经营过程中的巨大数据流收集组织起来经过处理转换为对各部门不可缺少的数据,经过对这些数据的分析使其变为各级管理人员做出决策具有重要意义的信息总之,管理信息系统用于管理中可以大大减轻管理人员的工作负担,提高工作效率,使管理更加程序化、科学化对一个组织而言,内部管理的好坏直接关系到组织的存在与良好运行,而内部管理中非常重要的一项就是对他人的联系,他人的具体情况,如手机号、电子邮箱、家庭住址……;一旦工作人员没有及时出现在自己的岗位时、及其他情况发生变化,可以迅速联系或找到本人甚至其家人及时了解情况;引入计算机管理信息系统,可以提高工作效率,改善管理情况,使管理工作系统化、科学化、提高整体的管理的水平本系统是针对通讯录管理系统编写的对于许多人来说,已经认识到一个好的通讯录是很必要的,可以方便和他人的联系;但是应用计算机来进行管理,他们还无法自己实现,这就需要有专门的管理软件来帮助实现随着科技的进步和信息产业的飞速发展,通讯录成为了现代生活中一个重要的工具本通讯录管理系统利用计算机对通讯录进行统一管理,包括添加、修改、查询记录等功能,实现通讯录管理工作的系统化、规范化和自动化,为人们的工作和生活提供便利整个系统程序采用c语言来实现c语言是目前国际上比较流行的计算机高级编程语言之一,因其简洁、使用方便且具备强大的功能而受到编程人员的普通青睐它既适合作为系统描述语言,也可用来编写系统软件,还可用来编写应用软件2http://bbs.dec.lzu.cn/lzubbs/misc.phpaction=viewratingstid=431071pid=1061813管理信息系统的发展趋势现代管理信息系统软件的规模越来越大,且管理思想越来越复杂,以至于超出了软件开发者在合理的时间和价值内设计、描述、开发和验证它们的能力因此,在开发管理信息系统的时候,需要利用可靠的构件,或者是以前开发的很小但经过验证的较小的程序模块,在可接受的时间范围内组建出可靠而复杂的软件系统一般情况下,管理信息系统的体系结构采用自上而下的纵向分层、横向分块来设计实现分层为管理软件的复杂度及重用提供了一个很好的解决方法,在分层系统的等级组织形式中,每一层都给下一层提供服务,对其下层则要求得到服务分块指按信息系统软件实现的功能将软件分为若干块,每一块既是一独立的子系统,又是大系统的一个组成部分块与块之间通过数据表进行耦合在确定的分层分块的体系结构中,再采取自下而上的方法,首先,对最底层的功能模块,对该功能模块包含的管理思想标准化、模型化,使其具有通用性,再进行构件化设计,并按照软构件应该具有的可移植性、互操作性、扩展性、可配置性和可维护性等特点,进行参数化设置;其次,对该功能的上一层进行构件化改造,减少模块间的重叠,这样层层改造之后,对于类似企业的管理信息系统的开发,只需要针对该企业的个性,对某些局部的构件进行改动就可以完成了
3.开发的目的和意义计算机已经成为我们学习和工作的得力助手,使用其可方便的管理通讯录今天,计算机的价格已经十分低廉,性能却有了长足的进步它已经被应用于许多领域现在我国的通讯录管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代我作为一个计算机应用专业的毕业生,希望可以在这方面有所贡献改革的总设计师邓小平同志说过“科学技术是第一生产力”,我希望能用我所学的知识编制出一个实用的程序来帮助用户进行财务管理开发这一系统的好处大约有以下几点第
一、可以存储大量的通讯录信息,安全、高效;第
二、只需一档案录入员即可操作系统,节省人力;第
三、可以迅速查到所需通讯录信息根据2003年中国电信的调查报告显示我国的上网人数已达到1870万,互联网已经十分普及,况且现在网上通讯已经出现,本系统为用户将来的上网作了先期工作
4.开发工具MicrosoftVisualStudio是一种可视化的、面向对象和调用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础在MicrosoftVisualStudio环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口API函数,以及动态链接库DLL、动态数据交换DDE、对象的链接与嵌入OLE、开放式数据访问ODBC等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统
二、可行性分析
1.可行性研究的前提要求满足对个人信息的添加、删除、修改、保存、查询;目标实现无纸化记录联系方式条件、假定、限制当需要保存的朋友的联系方式达到一定数量,超过了人工纸化记录能承受的劳动压力时,就必需采取新的管理手段;如用计算机对信息进行保存和查询;这样一个通讯录管理系统就可以对通讯方式的信息进行良好的管理2.经济可行性开发成本要低廉效益大幅度提高了“通讯方式”信息的储存和查询,为用户提供了准确的联系人信息和联系方式等预算很低,个人能承受
3.技术可行性
3.1软件需求操作系统WINDOWS2000AdvanceServer以上硬件需求2GCPU512M内存80G硬盘的计算机
3.2本系统采用简单的C语言来实现,依靠其简单的语法和结构来实现
3.3要求掌握计算机技术熟悉系统的功能和使用方法是系统正常运行,熟练使用C语言
3.4目标方案可行性计算机设备处理大量信息,减少了人力、物理、财力的开销;极大地提高了工作效率高效率的管理,能提高竞争力和节省时间,本系统的管理可以根据用户所需进行修改和完善
3.5操作可行性本系统采用简单的DOS环境下文字界面,对于一般的人员也能轻松上手整个系统有清晰简单的文字提示界面,简单明了,操作简单,不需要对数据库进行深入的了解
三、需求分析1.引言来源http://baike.baidu.com/view/
111493.htm需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力财力时间开发出的软件却没人要那所有的投入都是徒劳.如果费了很大的精力开发一个软件最后却不满足用户的要求从而要重新开发过这种返工是让人痛心疾首的.相信大家都有体会比如用户需要一个forlinux的软件而你在软件开发前期忽略了软件的运行环境忘了向用户询问这个问题而想当然的认为是开发forwindows的软件当你千辛万苦地开发完成向用户提交时才发现出了问题那时候你是欲哭无泪了恨不得找块豆腐一头撞死. 需求分析之所以重要就因为他具有决策性方向性策略性的作用他在软件开发的过程中具有举足轻重的地位.大家一定要对需求分析具有足够的重视.在一个大型软件系统的开发中他的作用要远远大于程序设计.
2.设计题目及要求◆建立通讯录信息,信息至少包含姓名、电话、通讯地址等;◆能够提供添加、删除和修改通讯录信息的功能;◆能够提供安不同方式查询的功能;如按姓名或电话等查询;◆将通讯录保存在文件中;◆能够按表格方式输出通讯录信息
3.系统功能需求分析主要包含一下多种功能添加添加通讯录记录显示显示通讯录记录删除删除通讯录记录查询查询通讯录记录修改修改通讯录记录
四、系统设计流程
4.概要设计系统用例图(工具:powerdesigner)系统功能模块图添加可以添加通讯录记录,依次输入姓名、电话号码、通讯地址显示可以以表格形式输出所有通讯录里的记录删除输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询可以选择用姓名、电话2种方式查询修改输入欲修改的那个人的名字后,再依次输入姓名、电话号码、通讯地址即可完成修改保存,输入文件名(带后缀名)后,即可将通讯录信息保存到文件
5、界面设计用户可以根据界面提示进行所需要实现的功能操作,即使是对计算机不太熟悉的人也能对其进行操作,充分体现出了其可操作性详细设计模块设计程序所需要的模块定义联系人结构体添加联系人模块intadd;删除联系人模块intdel;显示模块intread;修改模块intchange;查询模块intfind;添加联系人模块:显示联系人模块删除联系人模块查询联系人模块先选择查询方式,以姓名查询方式为例修改联系人模块修改通讯录记录测试输入数据预期输出实际输出11黄冠军110天堂添加联系人界面,将联系人信息保存添加联系人界面,将联系人信息保存12黄亚军111地狱添加联系人界面,将联系人信息保存添加联系人界面,将联系人信息保存0保存输入的信息,并返回主界面保存输入的信息,并返回主界面显示联系人输入预期输出实际输出2显示保存的联系人信息显示保存的联系人信息查询联系人输入预期输出实际输出31110进入查询方式选择界面,显示号码为110的联系人信息进入查询方式选择界面,显示号码为110的联系人信息31111进入查询方式选择界面,显示号码为111的联系人信息进入查询方式选择界面,显示号码为111的联系人信息31112进入查询方式选择界面,提示无该号码进入查询方式选择界面,提示无该号码32黄冠军进入查询方式选择界面,显示名为“黄冠军”的信息进入查询方式选择界面,显示名为“黄冠军”的信息32黄亚军进入查询方式选择界面,显示名为“黄亚军”的信息进入查询方式选择界面,显示名为“黄亚军”的信息32黄季军进入查询方式选择界面,提示无此人进入查询方式选择界面,提示无此人测试数据31110测试数据31111测试数据31112测试数据32黄冠军测试数据32黄亚军测试数据32黄季军修改联系人测试输入预期输出实际输出4,1,皇军,213,岛国将编号为1下的联系人信息修改并保存,提示修改成功将编号为1下的联系人信息修改并保存,提示修改成功4,2,共军,999,公鸡将编号为2下的联系人信息修改并保存、提示修改成功将编号为2下的联系人信息修改并保存、提示修改成功4,3,美军,222,母鸡提示无该编号提示无该编号测试数据4,1,皇军,213,岛国测试数据4,2,共军,999,公鸡测试数据4,3,美军,222,母鸡查看修改后的信息删除联系人测试输入预期输出实际输出5,皇军进入删除界面,删除成功并提示进入删除界面,删除成功并提示5,共军进入删除界面,删除成功并提示进入删除界面,删除成功并提示5,美军进入删除界面,提示无此人进入删除界面,提示无此人
7.全文总结在本系统的开发过程中,由于本人是对JAVA以及C语言里工程项目MFCAPPWIZARD不熟悉,无法开发出可操作的GUI,在知识、经验方面都存在着不足另外,在整个开发的过程中,时间也比较仓促因此,该系统必然会存在一些缺陷和不足因为对学生信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的通过开发这个系统,我掌握了的项目基本开发过程,用到的知识巩固了我对VisualC#的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神
8.致谢从接受课题到现在完成设计论文,衷心的感谢我的指导老师王剑老师给予了精心的指导和热情的帮助,尤其在课题设计的前期准备阶段和本人的数据库的设计阶段,导师提出许多宝贵的设计意见,在最后的测试修改阶段老师在百忙之中抽出时间为我们提供了必要的帮助,这样使得我得以顺利的完成毕业设计开发工作,在短暂的一个月的相处时间里,老师渊博的知识、敏锐的思路和实事求是的工作作风给我留下了深刻的印象,这将使得我终身受益,谨此向老师表示衷心的感谢和崇高的敬意!参考文献
[1]史济明等编著,软件工程-原理、方法与应用,高等教育出版社,2002
[2]汪孝宜等,信息系统开发实例精粹(C#版),电子工业出版社,2006
[3]张立,C#
2.0宝典,电子工业出版社,2007
[4]李兰友等编著,VisualC#.Net程序设计,清华大学出版社,2003
[5]何玉洁编著,数据库原理与应用,机械工业出版社,2006附录代码菜单头部分#defineheader1|---------------------电话簿--------------------------|\n#defineheader2|--------------------------------------------------|\n#defineheader3|编号|姓名|电话|地址|\n#defineheader4|-------|----------|------------------|---------------|\n#defineend|---------------------------------------------------------|结构体部分typedefstructtele{intnum;charname
[10];charphonenum
[15];charaddress
[20];}telebook;菜单输出部分voidmenu{systemcls;systemcolor2F;printf\n\n\n;printf\t\t|电话薄管理系统|\n;printf\t\t||\n;printf\t\t||\n;printf\t\t|********************菜单******************|\n;printf\t\t||\n;printf\t\t||\n;printf\t\t|1增加2显示|\n;printf\t\t||\n;printf\t\t|3查找4修改|\n;printf\t\t||\n;printf\t\t|5删除0退出|\n;printf\t\t||\n;printf\t\t|******************************************|\n;}菜单头的输出voidprintheader/*输出菜单头*/{printfheader1;printfheader2;printfheader3;printfheader4;}添加联系人模块代码intaddtelebooktemp[]{inti;intm=0;FILE*fp;systemcls;iffp=fopenD:\\rex.txtab+==NULL{printf打开文件有误!;exit0;}printf可以输入最多一百个人的信息!\n;printf如果在“编号”项输入0则退出出输入!\n;fori=m;i100+m;i++{printf编号:;scanf%dtemp[i].num;iftemp[i].num==0break;printf姓名:;scanf%stemp[i].name;printf电话号码:;scanf%stemp[i].phonenum;printf地址:;scanf%stemp[i].address;fwritetemp[i]sizeofstructtele1fp;}m+=100;fclosefp;systemcls;return0;}显示联系人模块代码intreadtelebooktemp[]//显示,读取存储在文件中的信息{intcounti;FILE*fp;systemcls;iffp=fopenD:\\rex.txtab+==NULL{printf打开文件有误!;exit0;}printheader;forcount=0;freadtemp[count]sizeofstructtele1fp==1;count++;/*读取文件内信息的个数*/ifcount==0printf\n\n\n\t\t文件内没有信息!\n\n\n;fori=0;icount;i++/*读取文件内的信息*/printf|%-7d|%-10s|%-15s|%-15s|\ntemp[i].numtemp[i].nametemp[i].phonenumtemp[i].address;printfend;fclosefp;return0;}查找模块代码voidfind{intn;telebookmessage1
[20];systemcls;systemcolor2F;printf\n;while1{/*输出查找函数主菜单*/printf\n\n\n\n;printf|-------查找功能------|\n;printf||\n;printf|1按电话号码查找|\n;printf||\n;printf|2按姓名查找|\n;printf||\n;printf|0退出|\n;printf||\n;printf|---------结束--------|\n;printf输入您的查找方式:;scanf%dn;switchn{case1:find1message1;break;case2:find2message1;break;case0:return;break;}getchar;systemcls;}}按姓名查找代码intfind2telebooktemp[]/*姓名查询*/{inticountt=0;chara
[10];systemcls;printf---按编号修改---\n;iffp=fopenD:\\rex.txtab+==NULL{printf打开文件有误!;exit0;}printf--输入新内容--:\n;printf-编号:;scanf%dne
[0].num;printf-姓名:;scanf%sne
[0].name;printf-电话:;scanf%sne
[0].phonenum;printf-地址:;scanf%sne
[0].address;forcount=0;freadtemp[count]sizeofstructtele1fp==1;count++;/*读取文件内信息的个数*/fclosefp;fori=0;icount;i++/*查找与新信息相同的信息*/{iftemp[i].num==ne
[0].num/*用新信息替换*/{t=1;temp[i].num=ne
[0].num;strcpytemp[i].namene
[0].name;strcpytemp[i].phonenumne
[0].phonenum;strcpytemp[i].addressne