java个人通讯录课程设计报告.docx
- 文档编号:18592996
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:19
- 大小:78.31KB
java个人通讯录课程设计报告.docx
《java个人通讯录课程设计报告.docx》由会员分享,可在线阅读,更多相关《java个人通讯录课程设计报告.docx(19页珍藏版)》请在冰点文库上搜索。
java个人通讯录课程设计报告
别
山东交通学院
面向对象课程设计
个人通信录管理信息系统的设计与实现
院(系)别信息科学与电气工程学院
班级
学号
姓名
指导教师
时间2014-08-25—2014-09-5
课程设计任务书
题目个人通讯录管理系统
院(部)信息科学与电气工程学院
专业计算机科学与技术
班级
学生姓名
学号
08月25日至09月5日共2周
指导教师(签字)
院长(签字)
年月日
一、设计内容及要求
目的:
通过本题目的设计,加深对面向对象程序设计技术的理解,掌握利用数据库编写小型程序的基本过程和方法。
任务:
1)利用面向对象编程技术,完成个人信息的存储管理;
2)选择系统开发平台(JAVA或.NET)和软件架构(C/S、单机版);
3)要求系统能够对联系人的系统进行录入、查询、编辑、导入和导出等。
二、设计原始资料
三、设计完成后提交的文件和图表
2.图纸部分:
程序流程图
四、进程安排
8月25—8月26,程序流程图,程序设计总框图
8月27—8月28,数据库连接,删除部分代码
8月29,登陆界面代码
9月1—9月4添加、修改、查找、导出数据库部分代码
9月5号答辩。
五、主要参考资料
1《java语言及其应用》董佑平,夏冰冰清华大学出版社2012
成绩评定表
作品成绩
报告成绩
口试(答辩)成绩
总评成绩
1课程设计概述1
1.1个人通讯录功能概述1
1.2开发环境概述1
2个人通讯录系统总体设计1
2.1个人通讯录总体设计思想1
2.2总体设计流程图2
3个人通讯录系统详细设计2
4程序测试3
4.1登陆界面3
4.2删除界面4
4.3添加界面5
4.4查找实现6
设计体会及今后的改进意见10
课程设计概述
本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力
2本次课程设计主要目的及要求:
设计一个通讯录管理软件,要求如下:
增加记录、删除记录、显示所有记录、查询记录、文件备份、退出。
通讯录记录信息包括:
姓名,电话,email等。
(1)通讯录的每一条信息包括姓名,单位,电话!
(可用数组或数据库);
(2)输入功能:
可以一次完成若干条信息的输入;
(3)显示功能:
完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示);
(4)查找功能:
完成按姓名查找通讯信息;
(5)删除功能:
完成按姓名删除通讯信息;
(6)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!
程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
3.设计思想:
个人通讯录件的功能模块有:
(1)提供登陆界面,方便用户进入,满足需求;
(2)添加:
可以添加通讯录记录,依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司地址、E-Mail地址、家庭住址、组别、备注后,会提示是否继续添加;
(3)显示:
可以以表格形式输出所有通讯录里的记录;
(4)查询:
可以用姓名查询;
(5)修改:
输入欲修改的那个人的名字后,再依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司地址、E-Mail地址、家庭住址、组别、备注即可完成修改;
(6)删除:
可以直接删除多余的通讯录记录;
(7)帮助:
可以在帮助里面修改用户密码;
(8)导出数据库:
可以将数据库以文本txt格式导出。
程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
总体设计流程图
图2-1 总体设计流程
1程序测试
登陆界面
图4-1登陆界面
相关代码:
publicLoginframe(){
login=newJDialog(Myaddress.myFrame,"个人通讯录登入界面",true);
login.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
login.setLocationRelativeTo(null);
login.setLayout(newGridLayout(3,0));
username=newTextField(10);
password=newTextField(10);
username.setText("");
password.setText("");
certain=newJButton("certain");
cancel=newJButton("cancel");
certain.addActionListener(newLoginIn());
cancel.addActionListener(newLoginIn());
JLabellb1=newJLabel("用户名:
");
JLabellb2=newJLabel("密码:
");
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JPanelp3=newJPanel();
p1.add(lb1);
p1.add(username);
p2.add(lb2);
p2.add(password);
password.setEchoChar('*');
p3.add(certain);
p3.add(cancel);
login.setSize(300,200);
login.add(p1);
login.add(p2);
login.add(p3);
login.setVisible(true);
login.pack();
}
publicstaticvoidmain(String[]args){
newLoginframe();
}
}
点击“certain”,登录成功,点击确定,进入个人通讯录管理系统,
个人通讯录管理系统界面
相关代码:
publicLoginframe(){
login=newJDialog(Myaddress.myFrame,"个人通讯录登入界面",true);
login.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
login.setLocationRelativeTo(null);
login.setLayout(newGridLayout(3,0));
username=newTextField(10);
password=newTextField(10);
username.setText("");
password.setText("");
certain=newJButton("certain");
cancel=newJButton("cancel");
certain.addActionListener(newLoginIn());
cancel.addActionListener(newLoginIn());
JLabellb1=newJLabel("用户名:
");
JLabellb2=newJLabel("密码:
");
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JPanelp3=newJPanel();
p1.add(lb1);
p1.add(username);
p2.add(lb2);
p2.add(password);
password.setEchoChar('*');
p3.add(certain);
p3.add(cancel);
login.setSize(300,200);
login.add(p1);
login.add(p2);
login.add(p3);
login.setVisible(true);
login.pack();
}
publicstaticvoidmain(String[]args){
newLoginframe();
}
}
2.点击左上角的“文件—导出数据库”,
publicFdkeep(){
fdsave=newJDialog(Myaddress.myFrame,"导出数据",true);
fdsave.setLocationRelativeTo(null);
fdsave.setLayout(newGridLayout(2,0));
JLabellabelSave=newJLabel("输入保存的完整的路径:
");
JLabellabele1=newJLabel("例如:
D:
"+"\\"+"w.text");
saveok=newJButton("save");
savegp=newJButton("giveup");
lbSave=newTextField(10);
saveok.addActionListener(newFileExportDBAction());
savegp.addActionListener(newFileExportDBAction());
JPanelp9=newJPanel();
JPanelp10=newJPanel();
p9.add(labelSave);
p9.add(lbSave);
p9.add(labele1);
p10.add(saveok);
p10.add(savegp);
fdsave.add(p9);
fdsave.add(p10);
fdsave.pack();
fdsave.setVisible(true);
}
}
添加界面
点击“保存”将新加的信息加入数据库,系统会告知“添加成功”。
相关代码:
publicclassPanelframeactionimplementsActionListener{
Stringsql1;
Connectioncon;
Statementstmt;
publicvoidactionPerformed(ActionEvente){
if(((JButton)e.getSource()).getText().equals("保存")){
Stringnname,sx,bday,mphone,phone,compay,email,home,group,note,msnqq;
nname=Panelframe.lbName.getText();
sx=Panelframe.sex.getSelectedItem();
bday=Panelframe.BirthdayYear.getSelectedItem()+"-"
+Panelframe.BirthdayMonth.getSelectedItem()+"-"
+Panelframe.BirthdayDay.getSelectedItem();
mphone=Panelframe.lbMobilephone.getText();
phone=Panelframe.lbTelephone.getText();
compay=Panelframe.lbCompany.getText();
email=Panelframe.lbMail.getText();
home=Panelframe.lbaddress.getText();
group=Panelframe.Group.getSelectedItem();
note=Panelframe.lbNote.getText();
msnqq=Panelframe.lbMail.getText();
try{
con=newConnect().getConnection();
stmt=con.createStatement();
sql1="INSERTINTOaddress"+"VALUES(\'"+nname+"\',\'"
+sx+"\',"+bday+",\'"+mphone+"\',\'"+phone
+"\',\'"+compay+"\',\'"+email+"\',\'"+home
+"\',\'"+group+"\',\'"+note+"\',\'"+msnqq
+"\')";
stmt.executeUpdate(sql1);
JOptionPane.showMessageDialog(null,"添加成功");
Myaddress.myFrame.setVisible(false);
Myaddress.myFrame.getContentPane().removeAll();
Myaddress.myFrame.getContentPane().add(newImage());
Myaddress.myFrame.pack();
Myaddress.myFrame.setVisible(true);
stmt.close();
con.close();
}catch(Exceptionex){
ex.printStackTrace();
}
}
if(((JButton)e.getSource()).getText().equals("取消")){
Myaddress.myFrame.setVisible(false);
Myaddress.myFrame.getContentPane().removeAll();
Myaddress.myFrame.getContentPane().add(newImage());
Myaddress.myFrame.pack();
Myaddress.myFrame.setVisible(true);
}
if(((JButton)e.getSource()).getText().equals("退出查询界面")){
Myaddress.myFrame.setVisible(false);
Myaddress.myFrame.getContentPane().removeAll();
Myaddress.myFrame.getContentPane().add(newImage());
Myaddress.myFrame.pack();
Myaddress.myFrame.setVisible(true);
}
if(((JButton)e.getSource()).getText().equals("保存修改")){
Stringsx,bday,mphone,phone,compay,email,home,group,note,msnqq;
sx=Panelframe.sex.getSelectedItem();
bday=Panelframe.BirthdayYear.getSelectedItem()+"-"
+Panelframe.BirthdayMonth.getSelectedItem()+"-"
+Panelframe.BirthdayDay.getSelectedItem();
mphone=Panelframe.lbMobilephone.getText();
phone=Panelframe.lbTelephone.getText();
compay=Panelframe.lbCompany.getText();
email=Panelframe.lbMail.getText();
home=Panelframe.lbaddress.getText();
group=Panelframe.Group.getSelectedItem();
note=Panelframe.lbNote.getText();
msnqq=Panelframe.lbMail.getText();
try{
con=newConnect().getConnection();
stmt=con.createStatement();
sql1="updateaddressset性别=\'"+sx+"\',生日="+bday
+",移动电话=\'"+mphone+"\',固定电话=\'"+phone
+"\'"+",公司地址=\'"+compay+"\',EMail=\'"
+email+"\',家庭地址=\'"+home+"\',组别=\'"
+group+"\',备注=\'"+note+"\',MSNQQ=\'"
+msnqq+"\'where姓名=\'"+QueryFrame.n+"\'";
intaa=stmt.executeUpdate(sql1);
stmt.hashCode();
System.out.print(QueryFrame.n);
if(aa>0){
JOptionPane.showMessageDialog(null,"修改成功");
Myaddress.myFrame.setVisible(false);
Myaddress.myFrame.getContentPane().removeAll();
Myaddress.myFrame.getContentPane().add(newImage());
Myaddress.myFrame.pack();
Myaddress.myFrame.setVisible(true);
}else{
JOptionPane.showMessageDialog(null,"修改失败");
}
stmt.close();
con.close();
}catch(Exceptionex){
ex.printStackTrace();
}
}
}
}
选择“编辑—删除”,按照提示输入删除的用户名
点击“删除”后,则系统会提示“删除成功”
相关代码:
publicclassdeleteFrameactionimplementsActionListener{
Stringsql;
Connectioncon;
Statementstmt;
publicvoidactionPerformed(ActionEvente){
deleteFrame.delFrame.setVisible(false);//删除界面不可见
if(((JButton)e.getSource()).getText().equals("删除")){
Stringnn=deleteFrame.lbDel.getText();//
try{
con=newConnect().getConnection();
stmt=con.createStatement();
sql="deletefromaddresswhere姓名="+"\'"+nn.trim()+"\'";
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"删除成功");
stmt.close();
con.close();//结束连接
}catch(Exceptionex){
System.out.println("Exception:
"+ex.getMessage());
}
deleteFrame.lbDel.setText("");
}
if(((JButton)e.getSource()).getText().equals("放弃")){
deleteFrame.delFrame.setVisible(false);
}
}
}
点击“文件—按姓名查找”,输入所需要查找的用户名
图4-13查找记录
点击“查询”,系统会对数据库进行查找,并提示“查找结束”
相关代码:
publicQueryFrame(){
findFrame=newJDialog(Myaddress.myFrame,"查找记录",true);//查找可见
findFrame.setLocationRelativeTo(null);//查找地址不为空
findFrame.setLayout(newGridLayout(2,0));//网格大小
JLabellabelFind=newJLabel("输入所要查询的用户名:
");
findok=newJButton("查询");
findgp=newJButton("撤消");
lbFind=newTextField(10);
findok.addActionListener(newQueryAction());
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 个人 通讯录 课程设计 报告