java通讯录课程设计.doc
目 录一、设计目的2二、功能介绍2三、程序流程3四、设计步骤3 1数据库表的设计3 2详细设计4五、设计总结7六、程序清单8七、参考文献14一、设计目的随着人们生活水平的提高,通讯工具在平常百姓家中已经是非常常见。有些家庭人员众多,有的家庭成员甚至有好几个联系方式,在这种情况下,要记住所有的联系方式似乎有些困难,所以我们希望设计一个家庭通讯录,记录所有家庭成员的联系方式,并且能方便的查找,增加和删除。二、功能介绍(1)具有新用户注册功能。(2)具有注册用户登录功能。(3)具有数据的录入功能。(4)具有数据查询功能,可以实现查询全部信息和按条件执行查询。(5)具有按条件删除数据功能。(6)具有统计功能三、程序流程四、设计步骤4.1数据库表的设计(1)普通用户数据表的设计,如表1表1 普通用户数据表列名数据类型长度是否为空username(key)varchar20否passwordchar10是(2)记录信息数据表,如表2表2 记录信息数据表列名数据类型长度是否为空name(key)varchar20否sexchar20是birthdaydatatime8是Emailchar20是telchar8否4.2详细设计1、登录界面,如图1所示图1 LoginAction类,封装的信息由密码和账户名,以及登录失败时抛出的异常方法。String execute()函数继承了Exception类,如果登录密码不匹配,则会抛出异常,提示Error登录失败。在登录模块中有管理员用户和普通用户,管理员可以对系统中的信息添加,修改,删除等功能,普通用户只进行查找操作。2、修改界面,如图2所示图2UpdateAction类继承Actionsupport类,其中封装了数据成员包括name,sex,birthday,emailm,tel。封装的成员函数set_name(),set_sex(),set_birthday(),set_email(),set_tel()分别表示设置性别,日期,电子邮箱,电话号码。String execute()函数抛出异常,若修改成功,显示Success,若失败显示Error!。用户可以根据需要修改信息中的name,sex,birthday,email,tel等信息,修改完毕后,点击修改按钮,修改后的信息将存入数据库。3、删除界面,如图3所示图3DeleAction类继承ActionSuporrt类,get_name()方法用于得到所要删除的信息的主码。封装的数据成员包括name,封装有isSuccess()函数,用于判断删除成功与否。删除模块中,用户可以根据某一关键字或多个关键字进行删除,删除信息后会自动提示。4、添加界面,如图4所示图4LoginAction类继承ActionSuporrt类,封装有name,sex,birthday,email,tel属性,封装有成员函数set_name(),set_sex(),set_birthday(),set_email(),set_tel()用来添加各个属性值,提示操作失败信息用String execute()函数抛出异常。5、查询界面,如图4所示图5FindAction类继承ActionSuporrt类的属性及方法,setInput()方法将输入的信息传递给FindAction类内的相应属性,getInput()方法用于返回输入值,封装的成员函数包括getlist()用于返回查询到的元组列表。图5显示可以通过姓名,性别,出生日期,email地址对联系人进行查询。五、设计总结通过这次课程设计,我们不仅顺利做出了整个课题,并且有很多收获和体会。 这个过程中遇到的最大的困难就是以前没有接触过java,所以要从头开始。从了解数据语法结构,到研究代码,像学习其他语言一样,要经过一个痛苦的过程才能渐入佳境。好在java和C/C+有相似之处,使我们学起来能轻松一点。 我们小组成员在分完系统模块后,就各自负责一部分模块,最后再整合调试。只有通过合作,才能更高效率的完成任务。 还有就是实践的重要性。很多东西在理论层面是行的通的,但到实际中就行不通了。所以要多实践,在不断的修改调试过程中巩固知识。六、程序清单/登录系统package com.ibm.etp.addressbook.action;import java.util.HashMap;import java.util.List;import com.ibm.etp.addressbook.pojo.User;import com.ibm.etp.addressbook.service.LoginService;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport private static final long serialVersionUID = 1L;public String username;public String password;private String message;Overridepublic String execute() throws Exception HashMap<Object, Object> result = new HashMap<Object, Object>();List<User> list = null;System.out.println(username);if(username = null | username.trim().length() = 0) result.put("success", false);result.put("msg", "login.username.empty"); else if(password = null | password.trim().length() = 0) result.put("success", false);result.put("msg", "login.password.empty"); else LoginService ls = new LoginService();list = ls.checkLogin(username);if(list = null) result.put("success", false);result.put("msg", "error.user.not.exist"); else if(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"public String getMessage() return message;public void setMessage(String message) this.message = message;public void setUsername(String username) this.username = username;public void setPassword(String password) this.password = password;public String getUsername() return username;public String getPassword() return password;/增加记录package com.ibm.etp.addressbook.action;import java.util.HashMap;import java.util.List;import com.ibm.etp.addressbook.pojo.User;import com.ibm.etp.addressbook.service.LoginService;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport private static final long serialVersionUID = 1L;public String username;public String password;private String message;public String execute() throws Exception HashMap<Object, Object> result = new HashMap<Object, Object>();List<User> list = null;System.out.println(username);if(username = null | username.trim().length() = 0) result.put("success", false);result.put("msg", "login.username.empty"); else if(password = null | password.trim().length() = 0) result.put("success", false);result.put("msg", "login.password.empty"); else LoginService ls = new LoginService();list = ls.checkLogin(username);if(list = null) result.put("success", false);result.put("msg", "error.user.not.exist"); else if(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"public String getMessage() return message;public void setMessage(String message) this.message = message;public void setUsername(String username) this.username = username;public void setPassword(String password) this.password = password;public String getUsername() return username;public String getPassword() return password;/删除记录package com.ibm.etp.addressbook.action;import java.util.ArrayList;import com.ibm.etp.addressbook.pojo.Record;import com.ibm.etp.addressbook.service.DeleService;import com.opensymphony.xwork2.ActionSupport;public class DeleAction extends ActionSupport private int id;public String message;private boolean success=true;public boolean isSuccess() return success;private ArrayList<Record> list= new ArrayList<Record>();public ArrayList<Record> getList() return list;public int getId(int i)return idi;public int getId() return id;public void setId(int id) this.id = id;public String getMessage() return message;public void setMessage(String message) this.message = message;public String execute() throws Exception DeleService ds=new DeleService();list=ds.removeRecord(this);try success=true;return SUCCESS;catch (Exception e) success=false;return ERROR;/修改记录package com.ibm.etp.addressbook.action;import com.ibm.etp.addressbook.service.UpdateService;import com.opensymphony.xwork2.ActionSupport;public class UpdateAction extends ActionSupport private int id;private String name;private String phone;private String email;private String birthday;private String sex;public int getId() return id;public void setId(int id) this.id = id;public String getName() return name;public void setName(String name) this.name = name;public String getPhone() return phone;public void setPhone(String phone) this.phone = phone;public String getEmail() return email;public void setEmail(String email) this.email = email;public String getBirthday() return birthday;public void setBirthday(String birthday) this.birthday = birthday;public String getSex() return sex;public void setSex(String sex) this.sex = sex;public String execute() throws Exception UpdateService us=new UpdateService();if(us.setRecord(this)!=null)return SUCCESS;elsereturn ERROR;/查找记录行package com.ibm.etp.addressbook.action;import java.sql.SQLException;import java.util.List;import com.ibm.etp.addressbook.pojo.Record;import com.ibm.etp.addressbook.service.FindService;import com.opensymphony.xwork2.ActionSupport;public class FindAction extends ActionSupport private String field;private String input;private int size;private String sort;private List<Record> list ;private boolean success=true;public boolean isSuccess() return success;public List<Record> getList() return list;public void setList(List<Record> list) this.list = list;public String getField() return field;public void setField(String field) this.field = field;public String getInput() return input;public void setInput(String input) this.input = input;public int getSize() return size;public void setSize(int size) this.size = size;public String getSort() return sort;public void setSort(String sort) this.sort = sort;public String execute() throws Exception FindAction fb = new FindAction();fb.setField(field);fb.setInput(input);fb.setSize(size);fb.setSort(sort);FindService fs = new FindService();try list = fs.find(fb); success=true;return SUCCESS; catch (SQLException e) e.printStackTrace(); success=false; return ERROR;七、参考文献於东军等著,Java程序设计与应用开发,清华大学出版,2005年于万波主编,Java语言实用教程,清华大学出版社,2008年