java课程设计通讯录系统.docx
- 文档编号:6387002
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:26
- 大小:199.26KB
java课程设计通讯录系统.docx
《java课程设计通讯录系统.docx》由会员分享,可在线阅读,更多相关《java课程设计通讯录系统.docx(26页珍藏版)》请在冰豆网上搜索。
java课程设计通讯录系统
第一章设计分析
1.1需求分析
现在各大手机都有自己的、各种通讯录程序,但是这些公司都有自己的,我们也不可能得到这些源代码!
而且这些公司的程序也相当复杂,仅从日常应用方面来说,对于初学java的我们也无法理解,就需要我们开发一个简单易懂的查询系统程序。
1.2功能设计
本程序的构建参照了手机通讯录,其功能是:
有录入,修改,增加,删除,按查询,按查询,按部门查询,按部门显示,显示所有信息,打印等功能。
第二章概要设计
2.1程序设计
在本程序设计过程中用到了父类JFrame、JTable、JPanel、JMenuBar、JMenuItem、JButton。
JMenuBar用来创建主菜单
JMenuItem创建子菜单
JFrame创建框架
JTable创建表格部分
JScorollPane向文本框添加滚动条
JMenuItem创建功能键
JButton添加触发按钮。
编写BufferReader()方法实现待分析文件中数据的读取。
编写readLine()方法实现数据的读取。
编写Select()法实现查询。
编写rankVector()方法实现排序
编写addNumber()方法实现新建
编写removeNumber()方法实现删除
编写modifyPhoneNumber()方法实现修改
利用actionPerformed()方法做为事件监听器。
编写J_fenxi()实现构造。
2.2功能设计
主页面以分组形式显示的详细信息,满足了用户浏览通讯录时分组查看的要求,同时提供、、分组、QQ、Email的详细查询及模糊查询功能,方便用户快速查找相关的信息。
具体要求如下:
(1)新增功能:
点击菜单栏中的编辑选项,选择新增功能,可添加详细信息
(2)删除功能:
选息,点击菜单栏中的编辑选项,选择删除功能
(3)修改功能:
选息,点击菜单栏中的编辑选项,选择修改功能,点击要修改的单元格所在的行即可修改
(4)查询功能:
主页面搜索栏可根据、、分组等进行搜索
(5)退出程序:
点击菜单栏中的文件选项,选择关闭功能
图2-1功能结构图
第三章软件环境介绍
3.1开发环境
本次项目的软件环境基于开源软件的使用基础上开发的,所以使用的开发环境是:
前台使用JSP+CSS开发,后台使用JSP+MySQL做为基础,使用JavaBean对数据进行存取。
如图3-1所示:
图3-1前台与后台关系
3.2开发工具
集成开发环境:
MyEclipse2014;
②服务器:
ApacheTomcat7.0;
③数据库:
MySQL5.6;
④数据库管理系统:
NavicatMySQL8.0;
⑤JavaBean开发使用:
JDK7.0
3.3MySql数据设计
表3-1数据表
字段名称
数据类型
说明
Number
Varchar
Name
Varchar
Partition
Varchar
分组
QQnumber
Varchar
Varchar
电子
第四章测试运行
4.1程序运行界面
查询系统一共分为3部分,分别是菜单栏、查询栏、显示框。
菜单栏由“文件”、“编辑”、“视图”组成,“文件”菜单有关闭功能键,“编辑”菜单有新建、删除、修改功能键,“视图”菜单有顺序显示和分类显示。
如图4-1所示
图4-1运行界面
4.2新建功能
选择编辑—新建功能,填写信息后点击确定后即可保存。
图4-2新增页面
4.3修改功能
点击要修改的单元格所在的行,然后点击编辑修改键开始修改信息,点击确定后即可保存。
图4-3修改页面
4.4顺序显示
手机按从小到大的顺序排列显示。
图4-4顺序显示页面
4.5分组显示
按分组的类别显示,同分组的元素在一起。
图4-5分组显示页面
4.6搜索功能
可以按照手机,、分组等进行搜索。
图4-6搜索页面
第五章总结与分析
通过完成一个小程序,不仅发现了自己在java知识中的不足,对java更加了解,还能够增加自己的变成经验,增强对逻辑思维的运用能力。
在本次课程设计的过程中,详细阐述了整个的设计思路,并对各部分设计周期进行了详尽的分析,最终达成了一个完整的设计方案;在文章的最后,还根据数据库系统的调试结果,提出了可以进一步改进的部分,以便在以后的学习工作中得到更好的完善。
以及在投入实际应用后可以更加稳定可靠的工作。
通过这段时间的课程设计,完成了“查询系统”的设计,更重要的是又复习了一遍JSP知识,看了许多关于JSP的书,不仅丰富了知识,而且从中学到了编程思想,相信通过这次课程设计,对以后的学习和程序设计会有很大的帮助。
第七章参考文献
[1]志峰等,《JSP程序设计实训与案例教程》,清华大学.2013
[2]荣钦科技,《JSP动态开发与实例》,清华大学.2012
[3]黄梯云,《管理信息系统》,高等教育.2013
[4]曾凡奇等:
《基于Internet的管理信息系统》,中国财政经济,2011
[5]易荣华:
《管理信息系统》,高等教育,2014
[6]靖:
《管理信息系统》,高等教育,2013
[7]国锋:
《管理信息系统》,机械工业,2012
第八章程序源代码
8.1类PhoneNumber
publicclassPhoneNumber{
privateStringNumber;
privateStringName;
privateStringPartition;
privateStringQQNumber;
privateStringEmail;
publicPhoneNumber(){}
publicStringgetNumber(){
returnNumber;
}
publicStringgetName(){
returnName;
}
publicStringgetPartition(){
returnPartition;
}
publicStringgetQQNumber(){
returnQQNumber;
}
publicStringgetEmail(){
returnEmail;
}
publicStringgetPretreatment(intStyle){
StringKey=null;
switch(Style){
case1:
Key=getNumber();
break;
case2:
Key=getName();
break;
case3:
Key=getPartition();
break;
}
returnKey;
}
classNumberExceptionextendsException{
publicStringwarningString(){
return"不符合编码规则!
";
}
}
publicbooleanisNumeric(Stringstr){
Patternpattern=Ppile("[0-9]*");
returnpattern.matcher(str).matches();
}
publicbooleansetNumber(Stringnumber){
number.trim();
StringStr=number.substring(0,3);
try{
if(!
isNumeric(number))
thrownewNumberException();
}
catch(NumberExceptione){
JOptionPane.showMessageDialog(null,e.warningString()+"为:
"+number);
returnfalse;
}
try{
if(number.length()!
=11)
thrownewNumberException();
}
catch(NumberExceptione){
JOptionPane.showMessageDialog(null,e.warningString()+"为:
"+number);
returnfalse;
}
try{
intnum=Integer.parseInt(Str);
if(num<130||num>139)
{
num/=10;
if(num!
=15||num!
=18)
thrownewNumberException();
}
Number=number;
returntrue;
}
catch(NumberExceptione){
JOptionPane.showMessageDialog(null,e.warningString()+"为:
"+number);
returnfalse;
}
}
publicbooleansetName(Stringname){
name.trim();
Name=name;
returntrue;
}
publicbooleansetPartition(StringStr){
Str.trim();
Partition=Str;
returntrue;
}
publicbooleansetQQNumber(Stringqqnumber){
qqnumber.trim();
QQNumber=qqnumber;
returntrue;
}
classEmailExceptionextendsException{
publicStringwarningString(){
return"电子格式错误!
";
}
}
publicbooleansetEmail(Stringemail){
email.trim();
StringStr=email.substring(email.length()-4);
try{
if(!
Str.equals("."))
thrownewEmailException();
if(email.indexOf('')<1)
thrownewEmailException();
Email=email;
returntrue;
}
catch(EmailExceptione){
JOptionPane.showMessageDialog(null,e.warningString());
returnfalse;
}
}
/**
*paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
}
}
8.2类Operation
publicclassOperationextendsPhoneNumber{
publicVector
publicOperation(){
PhoneNumberList=newVector
}
publicVector
returnPhoneNumberList;
}
classOperatingExceptionextendsException{
publicStringwarningString(){
return"操作失败!
";
}
}
publicVector
StringKey=KeyStr.trim();
Vector
for(intpt=0;pt StringpreKey=PhoneNumberList.elementAt(pt).getPretreatment(Style); if(preKey.equals(Key)) tempPhoneNumberList.addElement(PhoneNumberList.elementAt(pt)); } returntempPhoneNumberList; } publicbooleanaddNumber(PhoneNumberphoneNumber,intIndex){ try{ if(PhoneNumberList.contains(phoneNumber)) thrownewOperatingException(); } catch(OperatingExceptione){ JOptionPane.showMessageDialog(null,e.warningString()); returnfalse; } try{ for(intpt=0;pt if(PhoneNumberList.elementAt(pt).getNumber().equals(phoneNumber.getNumber())) thrownewOperatingException(); if(Index>=PhoneNumberList.size()) Index=PhoneNumberList.size(); PhoneNumberList.insertElementAt(phoneNumber,Index); returntrue; } catch(OperatingExceptione){ JOptionPane.showMessageDialog(null,e.warningString()); returnfalse; } } publicbooleanremoveNumber(StringphoneNumber){ try{ intIndex=0; for(intpt=0;pt if(PhoneNumberList.elementAt(pt).getNumber().equals(phoneNumber)) Index=pt; if(Index>=PhoneNumberList.size()) thrownewOperatingException(); PhoneNumberList.removeElementAt(Index); returntrue; } catch(OperatingExceptione){ JOptionPane.showMessageDialog(null,e.warningString()); returnfalse; } } publicbooleanmodifyPhoneNumber(PhoneNumberphoneNumber){ try{ if(PhoneNumberList.contains(phoneNumber)) thrownewOperatingException(); intIndex=0; for(intpt=0;pt if(PhoneNumberList.elementAt(pt).getNumber().equals(phoneNumber.getNumber())){ PhoneNumberList.removeElementAt(pt); PhoneNumberList.addElement(phoneNumber); } } catch(OperatingExceptione){ JOptionPane.showMessageDialog(null,e.warningString()); returnfalse; } try{ if(! PhoneNumberList.contains(phoneNumber)) thrownewOperatingException(); returntrue; } catch(OperatingExceptione){ JOptionPane.showMessageDialog(null,e.warningString()); returnfalse; } } publicVector Vector for(intIndex=0;Index if(phoneNumberList.elementAt(Index).getPartition().equals(KeyStr)) tempPhoneNumberList.addElement(phoneNumberList.elementAt(Index)); returntempPhoneNumberList; } publicVector Vector tempPhoneNumberList.addElement(phoneNumberList.elementAt(0)); for(intIndex=0;Index intpt; booleanflag=true; for(pt=0;pt if(phoneNumberList.elementAt(Index).getNumber().compareTo(tempPhoneNumberList.elementAt(pt).getNumber())<0) break; } for(inti=0;i if(tempPhoneNumberList.elementAt(i).getNumber().equals(phoneNumberList.elementAt(Index).getNumber())) flag=false; if(flag) tempPhoneNumberList.insertElementAt(phoneNumberList.elementAt(Index),pt); } returntempPhoneNumberList; } publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub } } 8.3类Searcher publicclassSearcherextendsJFrame{ publicDefaultTableModelData; publicJTableView; publicJButtonbutton; publicJComboBoxcombobox; publicJFrameapp; publicOperationoperation; publicJMenuBarMenuBar; publicJTextFieldtextField; publicJMenuItem[][]MenuItem={ {newJMenuItem("关闭(C)")}, {newJMenuItem("新建(N)"),newJMenuItem("删除(D)"),newJMenuItem("修改(M)")}, {newJMenuItem("顺序显示(O)"),newJMenuItem("分类显示(S)")}}; publicSearcher(){ super("Searcher"); operation=newOperation(); MenuBar=newJMenuBar(); setJMenuBar(MenuBar); Containerc=getContentPane(); c.setLayout(newFlowLayout()); Data=newDefaultTableMod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 通讯录 系统