名片管理系统毕业论文设计.docx
《名片管理系统毕业论文设计.docx》由会员分享,可在线阅读,更多相关《名片管理系统毕业论文设计.docx(25页珍藏版)》请在冰豆网上搜索。
![名片管理系统毕业论文设计.docx](https://file1.bdocx.com/fileroot1/2023-2/3/76bbc60b-95b1-4faf-a6a7-06e28c6ef670/76bbc60b-95b1-4faf-a6a7-06e28c6ef6701.gif)
名片管理系统毕业论文设计
题 目:
学生姓名:
学号:
系别:
专业:
入学时间:
年 月
导师姓名:
职称/学位:
毕业论文(设计)提交时间:
二○ 年
题 目:
名片管理系统的设计与实现
学生姓名:
学号:
系别:
计算机科学与电子技术系
专业:
计算机科学与技术
入学时间:
年 月
导师姓名:
职称/学位:
副教授/硕士
名片管理系统
摘要
随着商务通的出现,虽然实现了可构造查询条件的名片电子化管理,但价格昂贵,难以在广大客户中进行全面普及。
因此开发一个既可以存储信息,又可以进行更新、查询等功能,同时价格又能为广大消费者接受的多功能名片通讯录就显得十分必要。
本文基于Java开发环境开发了名片管理系统。
本系统可实现用户对名片的管理。
此系统除了最基本的用户管理模块之外,还包括查询,浏览,维护,打印报表等功能模块。
这些模块可以实现对名片信息,公司信息和关系类型的信息的管理。
功能包括查询名片信息,浏览名片信息,添加、修改、删除名片和公司信息,打印名片报表,联系记录报表和备忘录报表。
本系统具有操作简单、功能较强、界面美观等优点,可以提高用户的办公效率,降低出错率。
由于时间和技术水平有限的缘故,本系统只提供了一些基本功能的展示,不能展示系统的全部功能,还需要进一步实现更完善的功能。
关键词:
名片管理系统;windows;Java;数据库;
Cardmanagementsystem
Abstract
WiththeemergenceofGUIDEC,weachievetheelectronicmanagementofbusinesscards,whileitisdifficulttobecomeuniversalamongcustomersbecauseofthepriceishigh.Thereforeitisnecessarytodevelopasystemthat cannotonlystoreinformationbutalsohavethefunctionssuchasupdate,query,andsoon,meanwhileitspricecouldbeacceptedbythemostofthecustomers.ThedevelopmentofthiscardmanagementsystemisbasedonthetechnologyofVisualFoxPro.Thesystemcouldrealizethemanagementofthenamecards,includingthebasicmanagementmodule;italsoincludesquery,browse,maintenance,printingstatements,andotherfunctionalmodules.Thesemodulescanrealizethemanagementofcardinformation,companyinformation,andrelationshiptype;whichincludesqueryofcardinformation,browseofcardinformation,adding,modifying,deletingbusinesscardandcompanyinformation,printofreportforms,likebusinesscards,relationrecord,andmemo.Withtheadvantagesofsimpleoperation,powerfulfunction,thissystemcanimprovetheefficiencyof officeworkandreducetheriskoferrors.Forthelimitationoftimeandleveloftechnical,the systemhasonlyprovidedsomebasicfunctions,soitcouldnotdisplayedallfeaturesofthesystemand needstorealizethemoreperfect.
KeyWords:
cardmanagementsystem;java;database
1.引言
1.1研究背景、目的
随着市场经济的发展和人们生活水平的提高,随着科学技术的发展,计算机领域不断取得新的研究成果。
计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。
人们已经不满足于上网浏览网页,而是想通过网络来实现现实生活中需要处理的事情。
伴随着人们社会活动和人际交往的日益频繁,人们手中出现了名目繁多的名片夹、通讯录等对交友或者客户进行
管理的工具。
但传统的名片存储的信息不多,却占据了很大空间,同时,这些手动管理方式又不易存放,容易丢失,难以备份等弊端。
另外时间一长,纸质名片等会产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
而计算机科学技术的日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对各项信息进行管理,具有手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高管理的效率。
鉴于以上背景,本名片管理系统便应运而生。
借助计算机技术的强大功能,旨在为人们设计一种操作便捷、简单、功能全面的名片管理系统,更加有效的对各类通讯信息进行管理。
1.2研究理论、方法
名片管理系统以软件生命周期设计方法为指导意义,即把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。
通常,软件生存周期包括可行性分析与开发项计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动,可以将这些活动以适当的方式分配到不同的阶段去完成。
名片系统采用常规的数据库管理方法,根据名片信息管理的特点对对数据库操作,比如对数据的增加、删除、修改等,操作工具为Microsoftofficeaccess2007。
名片系统采用java语言。
众所周知,java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。
Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。
Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。
特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
2.系统可行性研究
2.1经济
支出:
硬件PC机
软件Windows7Oracle10g
效益:
有效管理通讯信息,提高人们工作生活效率。
2.2操作
本软件的用户对象是信息管理的工作人员,由于本软件要设计成有好的界面,写出详细的使用说明,用户只需懂得简单的计算机操作知识,就能自由应用本软件,所以从以上几个方面的分析来看,开发本软件是完全可行的。
2.3技术
名片管理系统采用java语言,常规的数据库管理方法,即java+access/SQLsever/oracle
3.系统需求分析
需求分析就是描述系统的需求,通过定义系统的关键域建立模型。
分析的根本目的是在开发者和提供需求的人之间建立一种理解和沟通的机制,因此,系统的需求分析应该是开发人员和用户或者客户一起完成的。
开发软件之前必须充分了解用户的需求才能开发出好用的软件。
在着手工作之前,先充分了解委托人和最终使用该软件的用户的需求,这样才可能避免在软件开发过程中进行一而再,再而三的改动,增加成倍工作量。
3.1系统模式
输入:
新名片的输入,包括姓名,类别,办公电话,住宅电话,手机,MSN,E-mail,地址,备注
输出:
导出打印
性能:
操作简单,便捷
功能:
增加,删除,修改,查询,相关信息的打印和输出
控制:
用户权限的控制,只有本人(管理员)才能登陆查看名片,保证信息安全。
名片管理系统应该设置登录权限,只有合法用户才能进入登录界面进行名片管理和维护。
进入系统
登陆界面
退出系统
输入用户名和密码
口令错误
口令正确
其他
查询管理
信息管理
查询客户信息
退出
打印名片
添加客户信息
修改客户信息
删除客户信息
图1:
名片管理系统流程图
外设
密码
用户
身份验证
信息新密码
打印机
处理
密码
外设
用户
打印
处理
身份验证
图2:
系统数据流图
名片管理系统
为了把用户的数据要求清楚、准确地描述出来,通常建立一个概念性的数据模型,且使用实体—联系图,简称ER图。
信息管理
查询管理
打印管理
密码管理
退出
图3:
名片管理ER图
3.2数据库设计
为该数据库设计两个表,用户表和名片信息表。
用户表:
用户名和密码(用户名为主键,且用户名和密码非空)
名片信息表:
编号,姓名,性别,年龄,职务,办公电话,手机电话,MSN,E-mail,备注等
数据库的概要模型:
用户表
用户名
密码
图4:
用户表ER图
姓名
性别
编号
年龄
名片信息表
备注
职务
E-mail
办公电话
手机电话
MSN
图5:
名片信息表ER图
4.系统的总体设计
4.1系统介绍
该名片管理系统采用java技术,使用oracle数据库来完成。
该系统包含增加、修改、删除、查询等功能,能有效的帮助人们对电子名片的有效管理,提高工作生活效率。
名片管理系统
输出
信息管理
查询管理
密码管理
退出
打印
删除信息
修改信息
添加信息
修改密码
查询信息
图6:
名片管理系统的层次图
4.2系统各模块功能介绍
4.2.1登录
1)用户登录
在进入系统时,需要输入用户名和密码,以确保信息的安全性。
2)用户修改
已进入系统的用户,可以通过密码修改修改密码。
4.2.2查询
1)按姓名查询
可按照名片姓名来查询,加快检索速度。
2)按名片编号查询
系统为每个联系人分配一个唯一的编号,可以快速找到指定联系人。
3)按查询职业查询
当输入职业时,系统会检索出所有该职业的联系人信息。
4.2.3添加
添加一条联系人的信息,即编号、姓名、性别、职业、地址、QQ、E-mail。
4.2.4删除
删除一条信息
4.2.5修改
修改一条联系人的信息,可对各个项目进行逐一修改。
5.系统的详细设计
5.1登陆模块
功能说明:
通过输入账号和密码对用户进行身份验证,通过验证则登陆系统,验证失败则重新认证。
输入项目:
输入用户名和密码
输出项目:
进入系统界面
图7:
登陆界面
图8:
进入系统界面
5.2密码修改模块
功能说明:
当用户要求修改密码时,进入修改密码界面,当两次输入新密码时即获得新的密码。
输入项目:
输入新密码。
输出项目:
新的密码导入系统。
图9:
密码修改
5.3查询模块
功能说明:
用户可以查询所有联系人信息,也可以通过条件查询,查询一类相关所有的联系人。
完成查询功能。
分为查询所有和条件查询两个功能。
点击“查询所有”可显示该名片管理系统的所有联系人信息,点击“条件查询”,则可根据输入的查询条件搜索到所有符合这一条件的联系人信息,例如姓名,职业,名片编号等等。
输入项目:
输出项目:
图10:
查询数据界面
5.4修改模块
功能说明:
实现联系人信息的修改。
双击名片列表可直接对其进行修改,方便快捷。
输入项目:
需要更改的信息
输出项目:
修改后新的联系人信息
图11:
名片编辑栏目
图12:
修改后的数据
5.5添加模块
功能说明:
实现添加一条联系人信息的功能。
当用户填写完新的联系人信息,点击确定即可在系统里添加一条新的信息。
输入项目:
名片编号、姓名、性别、职业、地址、QQ、E-mail
输出项目:
名片列表新增一条记录
图13:
添加两条联系人的界面
5.6删除模块
功能说明:
实现联系人信息的删除。
当某联系人信息失效时,可选择删除操作,将其从列表中删除。
输入项目:
需要删除的联系人信息
输出项目:
无
图14:
删除一个联系人的界面
6.系统测试
6.1测试的重要性和目的
6.1.1测试的重要性
软件的测试在软件生命周期中占据重要的地位。
近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。
采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。
测试是所有工程学科的基本组成单元,是软件开发的重要部分。
自有程序设计的那天起测试就一直伴随着。
统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。
而在软件开发的总成本中,用在测试上的开销要占30%到50%。
如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。
6.1.2测试的目的
如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。
如果测试目的是为了给最终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商业假设。
在谈到软件测试时,许多人都引用GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中的观点:
(1)软件测试是为了发现错误而执行程序的过程;
(2)测试是为了证明程序有错,而不是证明程序无错误;
(3)一个好的测试用例是在于它能发现至今未发现的错误;
(4)一个成功的测试是发现了至今未发现的错误的测试。
这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。
但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。
首先,测试并不仅仅是为了要找出错误。
通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。
同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。
其次,没有发现错误的测试也是有价值的,完整的测试是评定测
6.2测试的主要内容
为了保证测试的质量,将测试过程分成几个阶段,即:
代码审查、单元测试、集成测试、确认测试和系统测试。
6.2.1单元测试
单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。
身份认证时候要保证在以下输入情况时候系统能够健康运行:
(1)输入用户名时候键入非法字符,如:
•#¥%……等
(2)在名片ID框输入非数字字符,如abc,!
•#¥《》
(3)输入的名片ID不存在。
(4)输入的信息超过规定字符长度
(5)输入的信息有一项为空。
查询信息时候
(1)查询条件键入时有非法字符,如:
#$%^等。
(2)输入不存在的查询条件。
(3)输入查询条件超过规定字符长度。
(4)输入查询条件一项为空。
6.2.2集成测试
集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。
如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。
6.2.3确认测试
确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。
经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。
6.2.4系统测试
软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。
包括恢复测试、安全测试、强度测试和性能测试等。
:
经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束。
结束语:
通过两个月来,在老师和同学的帮助下,名片管理系统基本实现了预定的功能。
通过这次毕业设计,我也学到了很多的东西。
掌握了一些软件的功能。
但由于时间的仓促和自己对一些东西的不太了解,系统没有做到尽善尽美,还要很多需要完善的地方,我会在今后的工作和学习中总结经验,逐步改进自己存在的不足。
实践证明,名片管理系统有着很好的发展前景,经测试运行。
本文所制作的名片管理系统界面友好、使用灵活、操作简单、功能齐全、表现方式独特,已基本具备了成熟的技术理论。
由于时间仓促,本次设计由我完成网络通讯录管理系统的制作,对我这样一个JAVA新手而言所制作的模块还有不完善的地方。
数据库的设计也比较简单。
还有很多毕业设计中用到JAVA语言的知识也不够全面,还有很多地方不能够作到完全的理解和掌握。
通过这次毕业论文的设计制作使本人受益匪浅。
首先,由于毕业设计所用的JAVA技术和其中用到JAVA语言的其他部分是在课堂上没有接触过的,要用它来做设计必须通过大量自学来掌握,在这个过程中,不仅大大提高了我的自学能力而且让我对JAVA的学习有了进一步的认识。
由于是独立完成在毕业设计的过程遇到了很多的困难,我求教了不少老师和同学,在这个过程中让我体会到了,一个团队的重要性。
附录A
用户登录模块的代码如下:
Packagecom.neusoft.action;
Importjava.util.ArrayList;
Importjava.util.Iterator;
Importjava.util.List;
Importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.sql.DataSource;
importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
importcom.neusoft.bean.Users;
importcom.neusoft.dao.UserImDao;
importcom.neusoft.form.User_Form;
publicclassLoginActionextendsAction{
@Override
//用户登录
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)
throwsException{
request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");
User_Formfm=(User_Form)form;
Usersu=newUsers();
u.setUsername(fm.getUsername());
u.setOld_password(fm.getOld_password());
DataSourceds=this.getDataSource(request,"oracle");
UserImDaoud=newUserImDao(ds);
Listlist=newArrayList();
list=ud.checkUser(u);//只有一条数据且唯一
Iteratorit=list.iterator();
Usersu1=newUsers();
if(it.hasNext()){
u1=(Users)it.next();
}
if(u1==null){
returnmapping.findForward("error");
}
else{
request.setAttribute("name",u1.getUsername());
request.setAttribute("password",u1.getOld_password());
returnmapping.findForward("success");
}
}
}
附录B
密码修改模块代码如下:
publicclassChangePswActionextendsAction{
@Override
//接收前台用户修改密码
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)
throwsException{
request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");
User_Formfm=(User_Form)form;
Usersu=newUsers();
u.setUsername(fm.getUsername());
u.setOld_password(fm.getOld_password());
u.setNew_password(fm.getNew_password());
DataSourceds=this.getDataSource(request,"