JA V A 程序设计大作业
学号:2011301500121 学生所在班级:计科7 学生姓名:张亮 2013年6月12日 1.题目与目的:设计一个电话簿,方便与人联系
2.系统结构: 用户登录
电话簿页面
添 修 删
加 改 除 联 联 联 系 系 系 人 人 人
保存
信息都写入数据库
程序流图
3.系统功能:记录联系人的联系方式,并且能方便的查找,增加和删除,提高通讯管理效率
4.系统数据库:
(1)数据库概念结构设计:采用自下而上的设计方法。先自顶向下地进行需求分析,对在线电话簿的需求进行逐步细化;然后再自底而上地设计概念结构,最终将各个局部应用的概念结构集合成为全局概念图。如此可以得到以下在线电话簿系统E-R 图 家庭电话 个人移动电话 办公电话 用户名
m 1 家庭地址 姓名 用户
办公地址 QQ 号 备注 密码
系统E-R 图
(2)数据库逻辑结构设计:将上E-R 图转化为如下的关系模型,其中下划线为主码:
修改联系人 删除联系人 添加联系人 登陆
联系人(姓名,家庭电话,个人移动电话,办公电话,家庭地址,办公地址,QQ号,备注)用户(用户名,密码)
对上面的关系模型进行优化设计,该系统模型属于3NF
(3)数据库物理结构设计:[1]用户数据表
列名数据类型长度是否为空
name nvarchar 50 否
passWord nvarchar 50 否
[2]记录信息数据表
列名数据类型长度是否为空
name nvarchar 50 否
Integer homePhone nvarchar 50 是
Integer
nvarchar 50 否personalMobilePhone
Integer officePhone nvarchar 50 是
homeAddress nvarchar 50 是
officeAddress nvarchar 50 是
qqNumber nvarchar 50 是
notes nvarchar 50 是
5.界面及部分代码:(1)登陆界面:在登陆界面中,用户可以输入正确的用户名,密码,从而进入电话簿。只有登陆成功才可以浏览电话簿的信息,以及添加新的联系人,修改联系人等操作。主要代码如下:
Private void okButtonActionPerformed (java.awt.event.ActionEvent evt){//TODO add your handling code here:
IStudentDao dao=new StudentDao();
IUserDao userDao= new UserDao();
String name=nameField.getText().trim();
String password =String.valueof(passwordField.getPassword());
IUser user=new User(name,password);
Boolean result =false;
Try{
result =userDao.isContain(user);
If(result==false)
{JOptionPane.showConfirmDialog(null,”账号或密码错误!”,”登录提示”,JOptionPane.CLOSED_OPTION);
passwordField.setText(null);
}
Else{
MainWindow mainWindow=new MainWindow(dao);
mainWindow.setVisible(true);
this.setVisible(true);
}
}catch(Exception e){
JOptionPane.showMessageDialog(this,e.getMessage(),”登录失败!”,JoptionPane.ERROR_MESSAGE);
}
}
(2)修改联系人界面:用户可以根据需要修改的信息,修改完毕后,点击决定按钮,修改后的信息将存入数据库。主要代码如下:
Public modifyStudeng(java.awt.Frane parent,boolean model,
IStudentDao,IStudent oldStudent){
Super(parent,model);
initComponents();
setLocatiaoRelativeTo(parent);
setResizable(false);
This.dao=dao;
this.oldStudent=oldStudent;
nameTextField.setText(oldStudent.getTellName());
Integer homePhone.setText(String.value0f(oldStudent.getInteger homePhone()));
IntegerpersonalMobilePhone.setText(String.value0f(oldStudent.getInteger
personalMobilePhone());
Integer officePhone.setText(String.value0f(oldStudent.getInteger officePhone()));
homeAddress.setText(String.value0f(oldStudent.gethomeAddress()));
officefAddress.setText(String.value0f(oldStudent.getofficefAddress()));
qqNumber.setText(String.value0f(oldStudent.getqqNumber()));
notes.setText(String.value0f(oldStudent.getnotes()));
setVisable(true);
}
Private void okButtonActionPerformed(java.awt.event.ActionEvent evt){
String name=nameTextField.getText().trim();
String integer home=integer homePhone.getText().trim();
String integer personalMobile=integer personalMobilePhone.getText().trim();
String integer office=integer officePhone.getText().trim();
String home=homeAddress.getText().trim();
String office=officeAddress.getText().trim();
String qq=qqNumber.getText().trim();
String notes=notes.getText().trim();
Setvisible(false);
}
(3)删除联系人界面:用户可以根据自己的需求删除电话簿中无用的信息。选中要删除的行,点击删除按钮,单击确定,根据提示信息确定删除,即可删除信息。主要代码如下:
@SuppressWarnings(”static-access”)
Private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt){ //收集选中的对象信息
Int index=table.getSelectedRow();
String name=(String)model.getValueAt(index,0);
String integer homePhone=(String)model.getValueAt(index,1);
String integer personalMobilePhone=(String)model.getValueAt(index,2);
String integer officePhone=(String)model.getValueAt(index,3);
String homeAddress=(String)model.getValueAt(index,4);
String officeAddress=(String)model.getValueAt(index,5);
String qqNumber=(String)model.getValueAt(index,6);
String notes=(String)model.getValueAt(index,7);
IStudent oldStudent=new Student(name,integer homePhone,integer personalMobilePhone,integer officePhone,homeAddress,officeAddress,qqNumber,notes);
J0ptionPane panel=new J0ptionPane();
Int result=panel.showConfirmDialog(null,”确定要删除”+”【”+name+”】”+”的全部信息吗”,”删除记录”,J0ptionPane.YES_NO_OPTION);{
Dao.delete(oldStudent);
updateView();
}
}
(4)添加联系人界面:单击添加按钮,在弹出的添加对话框中输入对应的信息。姓名后输入联系人姓名,联系方式可根据需要填写。主要代码如下:
Private void okButtonActionPerformed(java.awt.event.ActionEvent evt){
Try{
//获取用信息
String name=nameTextField.getText().trim();
String integer homePhone=ginteger homePhone.etText().trim();
String integer personalMobilePhone=integer personalMobilePhone.getText().trim();
String integer officePhone=integer officePhone.getText().trim();
String homeAddress=homeAddress.getText().trim();
String officeAddress=officeAddress.getText().trim();
String qqNumbe=qqNumbe.getText().trim();
String notes=notes.getText().trim();
IStudent student=new Student(name,integer homePhone,integer personalMobilePhone,integer officePhone,homeAddress,officeAddress,qqNumber,notes);
Dao.insert(student);
setVisible(false);
}catch(Exception e){
J0ptionPane.showMessageDialog(this,e.getMessage());
}
}