java课程设计通讯录管理系统.docx
《java课程设计通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《java课程设计通讯录管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
![java课程设计通讯录管理系统.docx](https://file1.bdocx.com/fileroot1/2023-1/6/599241d3-cc82-4399-92a2-145cb4c4c430/599241d3-cc82-4399-92a2-145cb4c4c4301.gif)
java课程设计通讯录管理系统
学院
计算机科学与技术系
课程设计报告
2013~2014学年第二学期
课程
面向对象课程设计
课程设计名称
通讯录程序
学生
XXX
学号
专业班级
XXXXX
指导教师
XXX
20年月
一、设计题目·················································1
二、设计要求·················································1
三、总体设计·················································1
3.1系统功能框架·········································1
3.2系统功能说明··········································3
四、详细设计···················································3
1.数据结构设计············································3
2.系统模块设计············································10
五、运行结果·················································13
一.设计题目
随着社会的进步与发展,通讯越来越密切。
希望能通过对java课程设计的学习和掌握来编写一个通讯录管理系统。
二.设计要求
(1)只能使用Java语言,采用面向对象方法进行设计,要求源程序要有适当的注释,使程序容易阅读。
(2)程序必须与数据库进行通信。
(3)系统必须是图形用户界面的形式并连接数据库
三.总体设计
3.1系统总体功能框架图
3.2系统功能说明
(1)具有新用户注册功能。
(2)具有注册用户登录功能。
(3)具有数据的录入功能。
(4)具有数据查询功能,可以实现查询全部信息和按条件执行查询。
(5)具有按条件删除数据功能。
(6)具有统计功能
4.详细设计
4.1数据结构设计(java程序设计)
//登录系统
package.ibm.etp.addressbook.action;
importjava.util.HashMap;
importjava.util.List;
import.ibm.etp.addressbook.pojo.User;
import.ibm.etp.addressbook.service.LoginService;
import.opensymphony.xwork2.ActionSupport;
publicclassLoginActionextendsActionSupport{
privatestaticfinallongserialVersionUID=1L;
publicStringusername;
publicStringpassword;
privateStringmessage;
Override
publicStringexecute()throwsException{
HashMap
Listlist=null;
System.out.println(username);
if(username==null||username.trim().length()==0){
result.put("success",false);
result.put("msg","login.username.empty");
}elseif(password==null||password.trim().length()==0){
result.put("success",false);
result.put("msg","login.password.empty");
}else{
LoginServicels=newLoginService();
list=ls.checkLogin(username);
}
if(list==null){
result.put("success",false);
result.put("msg","error.user.not.exist");
}elseif(list.get(0).getPassword().equals(password)){
result.put("success",true);
result.put("msg","login.success");
}else{
result.put("success",false);
result.put("msg","error.password.wrong");
}
if((Boolean)result.get("success")){
message=(String)result.get("msg");
return"success";
}else{
message=(String)result.get("msg");
return"error";
}
}
publicStringgetMessage(){
returnmessage;
}
publicvoidsetMessage(Stringmessage){
this.message=message;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicStringgetUsername(){
returnusername;
}
publicStringgetPassword(){
returnpassword;
}
}
//增加记录
package.ibm.etp.addressbook.action;
importjava.util.HashMap;
importjava.util.List;
import.ibm.etp.addressbook.pojo.User;
import.ibm.etp.addressbook.service.LoginService;
import.opensymphony.xwork2.ActionSupport;
publicclassLoginActionextendsActionSupport{
privatestaticfinallongserialVersionUID=1L;
publicStringusername;
publicStringpassword;
privateStringmessage;
publicStringexecute()throwsException{
HashMapresult=newHashMap();
Listlist=null;
System.out.println(username);
if(username==null||username.trim().length()==0){
result.put("success",false);
result.put("msg","login.username.empty");
}elseif(password==null||password.trim().length()==0){
result.put("success",false);
result.put("msg","login.password.empty");
}else{
LoginServicels=newLoginService();
list=ls.checkLogin(username);
}
if(list==null){
result.put("success",false);
result.put("msg","error.user.not.exist");
}elseif(list.get(0).getPassword().equals(password)){
result.put("success",true);
result.put("msg","login.success");
}else{
result.put("success",false);
result.put("msg","error.password.wrong");
}
if((Boolean)result.get("success")){
message=(String)result.get("msg");
return"success";
}else{
message=(String)result.get("msg");
return"error";
}
}
publicStringgetMessage(){
returnmessage;
}
publicvoidsetMessage(Stringmessage){
this.message=message;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicStringgetUsername(){
returnusername;
}
publicStringgetPassword(){
returnpassword;
}
}
//删除记录
package.ibm.etp.addressbook.action;
importjava.util.ArrayList;
import.ibm.etp.addressbook.pojo.Record;
import.ibm.etp.addressbook.service.DeleService;
import.opensymphony.xwork2.ActionSupport;
publicclassDeleActionextendsActionSupport{
privateintid[];
publicStringmessage;
privatebooleansuccess=true;
publicbooleanisSuccess(){
returnsuccess;
}
privateArrayListlist=newArrayList();
publicArrayListgetList(){
returnlist;
}
publicintgetId(inti){
returnid[i];
}
publicint[]getId(){
returnid;
}
publicvoidsetId(int[]id){
this.id=id;
}
publicStringgetMessage(){
returnmessage;
}
publicvoidsetMessage(Stringmessage){
this.message=message;
}
publicStringexecute()throwsException{
DeleServiceds=newDeleService();
list=ds.removeRecord(this);
try{
success=true;
returnSUCCESS;
}catch(Exceptione){
success=false;
returnERROR;
}
}
}
//修改记录
package.ibm.etp.addressbook.action;
import.ibm.etp.addressbook.service.UpdateService;
import.opensymphony.xwork2.ActionSupport;
publicclassUpdateActionextendsActionSupport{
privateintid;
privateStringname;
privateStringphone;
privateStringemail;
privateStringbirthday;
privateStringsex;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetPhone(){
returnphone;
}
publicvoidsetPhone(Stringphone){
this.phone=phone;
}
publicStringgetEmail(){
returnemail;
}
publicvoidsetEmail(Stringemail){
this.email=email;
}
publicStringgetBirthday(){
returnbirthday;
}
publicvoidsetBirthday(Stringbirthday){
this.birthday=birthday;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
this.sex=sex;
}
publicStringexecute()throwsException{
UpdateServiceus=newUpdateService();
if(us.setRecord(this)!
=null)
returnSUCCESS;
else{
returnERROR;
}
}
}
//查找记录行
package.ibm.etp.addressbook.action;
importjava.sql.SQLException;
importjava.util.List;
import.ibm.etp.addressbook.pojo.Record;
import.ibm.etp.addressbook.service.FindService;
import.opensymphony.xwork2.ActionSupport;
publicclassFindActionextendsActionSupport{
privateStringfield;
privateStringinput;
privateintsize;
privateStringsort;
privateListlist;
privatebooleansuccess=true;
publicbooleanisSuccess(){
returnsuccess;
}
publicListgetList(){
returnlist;
}
publicvoidsetList(Listlist){
this.list=list;
}
publicStringgetField(){
returnfield;
}
publicvoidsetField(Stringfield){
this.field=field;
}
publicStringgetInput(){
returninput;
}
publicvoidsetInput(Stringinput){
this.input=input;
}
publicintgetSize(){
returnsize;
}
publicvoidsetSize(intsize){
this.size=size;
}
publicStringgetSort(){
returnsort;
}
publicvoidsetSort(Stringsort){
this.sort=sort;
}
publicStringexecute()throwsException{
FindActionfb=newFindAction();
fb.setField(field);
fb.setInput(input);
fb.setSize(size);
fb.setSort(sort);
FindServicefs=newFindService();
try{
list=fs.find(fb);
success=true;
returnSUCCESS;
}catch(SQLExceptione){
e.printStackTrace();
success=false;
returnERROR;
4.2系统模块设计
图1-1登陆功能展示图
LoginAction类,封装的信息由密码和账户名,以及登录失败时抛出的异常方法。
Stringexecute()函数继承了Exception类,如果登录密码不匹配,则会抛出异常,提示Error登录失败。
在登录模块中有管理员用户和普通用户,管理员可以对系统中的信息添加,修改,删除等功能,普通用户只进行查找操作。
2、添加功能界面
图2-1添加功能展示图
LoginAction类继承ActionSuporrt类,封装有name,sex,birthday,email,tel属性,封装有成员函数set_name(),set_sex(),set_birthday(),set_email(),set_tel()用来添加各个属性值,提示操作失败信息用Stringexecute()函数抛出异常。
3、删除功能界面
图3-1删除功能展示图
DeleAction类继承ActionSuporrt类,get_name()方法用于得到所要删除的信息的主码。
封装的数据成员包括name,封装有isSuccess()函数,用于判断删除成功与否。
删除模块中,用户可以根据某一关键字或多个关键字进行删除,删除信息后会自动提示。
4、查询功能界面
图4-1查询功能展示图
FindAction类继承ActionSuporrt类的属性及方法,setInput()方法将输入的信息传递给FindAction类的相应属性,getInput()方法用于返回输入值,封装的成员函数包括getlist()用于返回查询到的元组列表。
图5显示可以通过,性别,出生日期,email地址对联系人进行查询。
五.运行结果
图5-1查询全部功能展示图
点击文件“编辑—查找全部”,则会弹出一个空白的查找结果界面,这是因为在程序设计中默认的是不显示所得的信息
然后点击“显示查询结果”,即可显示出全部查询结果。
如图4-19:
图5-2查询全部功能展示图
参考文献:
1)Eric.Java编程思想.第4版.机械工业,机械工业.
2)林信良.JSP&Servlet学习笔记.清华大学,2012年05月.
3)峋,三成.关键技术JSP与JDBC应用详解.中国铁道,2010年11月