java课程设计-通讯录(1)-设计报告Word格式.doc
《java课程设计-通讯录(1)-设计报告Word格式.doc》由会员分享,可在线阅读,更多相关《java课程设计-通讯录(1)-设计报告Word格式.doc(10页珍藏版)》请在冰豆网上搜索。
随着人们生活水平的提高,通讯工具在平常百姓家中已经是非常常见。
有些家庭人员众多,有的家庭成员甚至有好几个联系方式,在这种情况下,要记住所有的联系方式似乎有些困难,所以我们希望设计一个家庭通讯录,记录所有家庭成员的联系方式,并且能方便的查找,增加和删除。
二.系统总体设计
要设计这么一个家庭通讯录,我们采用自顶向下的设计方法,将系统分成几个模块,分别实现模块后再将各模块连接,通过调试完成整个系统的设计。
设计系统的框架如图1所示。
家庭通讯录
数据库
显示界面
算法
建立数据库
连接数据库
主框架
对话框
增加
查找
删除
工具条
表格
图1.系统总体框架
我们的通讯录分成三大模块:
数据库,显示界面以及算法:
通讯录的增加修改等都需要访问数据库,所以需要建立数据库和连接数据库。
显示界面是人机交互的窗口,我们力争做到简洁美观,能让用户很方便的使用。
主界面上是显示功能的工具条以及表格,点击功能按钮,如“查找”等,会弹出对话框。
算法可以实现“增加”“查找”“删除”等功能。
三.具体分工
在具体实现的过程中我负责算法和响应部分,具体实现过程如下
1)算法部分:
Add算法:
if(be.getActionCode()==be.OK)
{
StringinsertSql="
insertintodataVALUES(?
?
)"
;
Object[]lineForDBAdd={be.getName(),be.getAddress(),be.getTel(),be.getMob()
};
if(SqlUtil.addRowToDB(con,insertSql,lineForDBAdd))
{
//成功写入数据库的记录,追加到表格末行显示
model.insertRow(model.getRowCount(),lineForDBAdd);
//将表格的最后一行选中
table.changeSelection(model.getRowCount()-1,0,false,false);
}
search算法:
if(sd.getActionCode()==sd.OK)
StringreadSql=sd.getSQL();
SqlUtil.readDBToTable(con,readSql,model,dataType);
}
delete算法:
intresult=JOptionPane.showConfirmDialog(f,"
您确定要删除该条记录信息吗?
"
"
确认"
JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
if(result!
=JOptionPane.YES_OPTION)return;
StringdeleteSql="
deletefromdatawherename=?
Object[]keys={model.getValueAt(selected,0).toString()};
if(SqlUtil.deleteFromDB(con,deleteSql,keys))
model.removeRow(selected);
addRowToDB算法:
update=con.prepareStatement(insertSql);
//向数据库插入 if(lineForDBAdd!
=null)//一条记录
for(inti=0;
i<
lineForDBAdd.length;
i++)
update.setObject(i+1,lineForDBAdd[i]);
update.executeUpdate();
ReadDBToTable算法:
query=con.prepareStatement(readSql);
//从数据库读取数据到表格
query.clearParameters();
ResultSetrs=query.executeQuery();
while(rs.next())
intcolumn=model.getColumnCount();
Object[]line=newObject[column];
for(inti=0;
column;
{
line[i]=rs.getString(i+1).trim();
}
model.addRow(line);
deleteFromDB算法:
update=con.prepareStatement(deleteSql);
//删除数据库中的记录
if(keys!
=null)
keys.length;
update.setObject(i+1,keys[i]);
update.executeUpdate();
ClearAllRowsInTable算法:
while(model.getRowCount()>
0)//清空表格中所有数据
model.removeRow(0);
2)响应部分:
“增加”对话框的响应:
publicvoidactionPerformed(ActionEvente){
Objects=e.getSource();
if(s==this.btnCancel){
this.actionCode=this.CANCEL;
this.setVisible(false);
elseif(s==this.btnOk)okClicked();
publicvoidokClicked(){
//姓名不为空时隐藏对话框
if(!
this.txtName.getText().trim().equals("
))
this.actionCode=this.OK;
this.setVisible(false);
else
JOptionPane.showMessageDialog(f,"
请输入姓名"
提示"
JOptionPane.INFORMATION_MESSAGE);
“查找”对话框的响应:
publicvoidactionPerformed(ActionEvente){
Objects=e.getSource();
if(s==this.radName)
setTxtEditable(true,false,false,false);
elseif(s==this.radAddress) setTxtEditable(false,true,false,false);
elseif(s==this.radTel) setTxtEditable(false,false,true,false);
elseif(s==this.radMob) setTxtEditable(false,false,false,true);
elseif(s==this.btnOK){
this.actionCode=this.OK;
this.setVisible(false);
}
elseif(s==this.btnCancel){
this.actionCode=this.CANCEL;
主界面按钮响应:
publicvoidactionPerformed(ActionEvente)
Objects=e.getSource();
if(s==this.btnAdd)add();
elseif(s==this.btnSearch)search();
elseif(s==this.btnDelete)delete();
elseif(s==this.btnExit)System.exit(0);
四.使用说明
运行程序出现如下界面:
1)显示所有项目,点击“查找”,不输入查找内容,直接“确定”。
2)增加一条信息,点击“增加”,输入所需字段。
点击“确定”。
3)查找信息,点击“查找”,输入任意字段查找。
4)删除一条信息,选中某一条信息,点击“删除”,弹出对话框,点击“是(Y)”。
如果未选中信息,点击“删除”,则会弹出如下对话框:
需要,选中一条,再点击“删除”。
五.总结
通过这次课程设计,我们不仅顺利做出了整个课题,并且有很多收获和体会。
这个过程中遇到的最大的困难就是以前没有接触过java,所以要从头开始。
从了解数据语法结构,到研究代码,像学习其他语言一样,要经过一个痛苦的过程才能渐入佳境。
好在java和C/C++有相似之处,使我们学起来能轻松一点。
我们小组成员在分完系统模块后,就各自负责一部分模块,最后再整合调试。
只有通过合作,才能更高效率的完成任务。
还有就是实践的重要性。
很多东西在理论层面是行的通的,但到实际中就行不通了。
所以要多实践,在不断的修改调试过程中巩固知识。
六.参考文献
於东军等著,《Java程序设计与应用开发》,清华大学出版,2005年
于万波主编,《Java语言实用教程》,清华