java课程设计通讯录系统.docx

上传人:b****4 文档编号:4082162 上传时间:2022-11-27 格式:DOCX 页数:24 大小:196.38KB
下载 相关 举报
java课程设计通讯录系统.docx_第1页
第1页 / 共24页
java课程设计通讯录系统.docx_第2页
第2页 / 共24页
java课程设计通讯录系统.docx_第3页
第3页 / 共24页
java课程设计通讯录系统.docx_第4页
第4页 / 共24页
java课程设计通讯录系统.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

java课程设计通讯录系统.docx

《java课程设计通讯录系统.docx》由会员分享,可在线阅读,更多相关《java课程设计通讯录系统.docx(24页珍藏版)》请在冰豆网上搜索。

java课程设计通讯录系统.docx

java课程设计通讯录系统

 

第一章设计分析

需求分析

现在各大手机都有自己的、各种通讯录程序,但是这些公司都有自己的版权,我们也不可能得到这些源代码!

而且这些公司的程序也相当复杂,仅从日常应用方面来说,对于初学java的我们也无法理解,就需要我们开发一个简单易懂的电话号码查询系统程序。

功能设计

本程序的构建参照了手机通讯录,其功能是:

有电话录入,修改,增加,删除,按姓名查询,按电话号码查询,按部门查询,按部门显示,显示所有电话号码信息,打印等功能。

 

第二章概要设计

程序设计

在本程序设计过程中用到了父类JFrame、JTable、JPanel、JMenuBar、JMenuItem、JButton。

JMenuBar用来创建主菜单

JMenuItem创建子菜单

JFrame创建框架

JTable创建表格部分

JScorollPane向文本框添加滚动条

JMenuItem创建功能键

JButton添加触发按钮。

编写BufferReader()方法实现待分析文件中数据的读取。

编写readLine()方法实现数据的读取。

编写Select()法实现查询。

编写rankVector()方法实现排序

编写addNumber()方法实现新建

编写removeNumber()方法实现删除

编写modifyPhoneNumber()方法实现修改

利用actionPerformed()方法做为事件监听器。

编写J_fenxi()实现构造。

功能设计

主页面以分组形式显示电话号码的详细信息,满足了用户浏览通讯录时分组查看电话号码的要求,同时提供电话号码、姓名、分组、QQ、Email的详细查询及模糊查询功能,方便用户快速查找相关的号码信息。

具体要求如下:

(1)新增功能:

点击菜单栏中的编辑选项,选择新增功能,可添加号码详细信息

(2)删除功能:

选中号码信息,点击菜单栏中的编辑选项,选择删除功能

(3)修改功能:

选中号码信息,点击菜单栏中的编辑选项,选择修改功能,点击要修改的单元格所在的行即可修改

(4)查询功能:

主页面搜索栏可根据号码、姓名、分组等进行搜索

(5)退出程序:

点击菜单栏中的文件选项,选择关闭功能

图2-1功能结构图

第三章软件环境介绍

3.1开发环境

本次项目的软件环境基于开源软件的使用基础上开发的,所以使用的开发环境是:

前台使用JSP+CSS开发,后台使用JSP+MySQL做为基础,使用JavaBean对数据进行存取。

如图3-1所示:

图3-1前台与后台关系

3.2开发工具

①集成开发环境:

MyEclipse2014;

②服务器:

ApacheTomcat;

③数据库:

MySQL;

④数据库管理系统:

NavicatMySQL;

⑤JavaBean开发使用:

JDK

 

3.3MySql数据设计

表3-1数据表

字段名称

数据类型

说明

Number

Varchar

电话号码

Name

Varchar

姓名

Partition

Varchar

分组

QQnumber

Varchar

QQ号码

Email

Varchar

电子邮箱

 

第四章测试运行

程序运行界面

电话号码查询系统一共分为3部分,分别是菜单栏、查询栏、显示框。

菜单栏由“文件”、“编辑”、“视图”组成,“文件”菜单有关闭功能键,“编辑”菜单有新建、删除、修改功能键,“视图”菜单有顺序显示和分类显示。

如图4-1所示

图4-1运行界面

新建功能

选择编辑—新建功能,填写号码信息后点击确定后即可保存。

图4-2新增页面

 

修改功能

点击要修改的单元格所在的行,然后点击编辑修改键开始修改信息,点击确定后即可保存。

图4-3修改页面

顺序显示

手机号码按从小到大的顺序排列显示。

图4-4顺序显示页面

 

分组显示

按分组的类别显示,同分组的元素在一起。

图4-5分组显示页面

搜索功能

可以按照手机号码,姓名、分组等进行搜索。

图4-6搜索页面

 

第五章总结与分析

通过完成一个小程序,不仅发现了自己在java知识中的不足,对java更加了解,还能够增加自己的变成经验,增强对逻辑思维的运用能力。

在本次课程设计的过程中,详细阐述了整个网站的设计思路,并对各部分设计周期进行了详尽的分析,最终达成了一个完整的设计方案;在文章的最后,还根据数据库系统的调试结果,提出了可以进一步改进的部分,以便在以后的学习工作中得到更好的完善。

以及在投入实际应用后网站可以更加稳定可靠的工作。

通过这段时间的课程设计,完成了“电话号码查询系统”的设计,更重要的是又复习了一遍JSP知识,看了许多关于JSP的书,不仅丰富了知识,而且从中学到了编程思想,相信通过这次课程设计,对以后的学习和程序设计会有很大的帮助。

 

第七章参考文献

[1]张志峰等,《JSP程序设计实训与案例教程》,清华大学出版社.2013

[2]荣钦科技,《JSP动态网站开发与实例》,清华大学出版社.2012

[3]黄梯云,《管理信息系统》,高等教育出版社.2013

[4]曾凡奇等:

《基于Internet的管理信息系统》,中国财政经济出版社,2011

[5]易荣华:

《管理信息系统》,高等教育出版社,2014

[6]张靖:

《管理信息系统》,高等教育出版社,2013

[7]张国锋:

《管理信息系统》,机械工业出版社,2012

 

第八章程序源代码

类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=("[0-9]*");

return(str).matches();

}

publicbooleansetNumber(Stringnumber){

();

StringStr=(0,3);

try{

if(!

isNumeric(number))

thrownewNumberException();

}

catch(NumberExceptione){

(null,()+"号码为:

"+number);

returnfalse;

}

try{

if(()!

=11)

thrownewNumberException();

}

catch(NumberExceptione){

(null,()+"号码为:

"+number);

returnfalse;

}

try{

intnum=(Str);

if(num<130||num>139)

{

num/=10;

if(num!

=15||num!

=18)

thrownewNumberException();

}

Number=number;

returntrue;

}

catch(NumberExceptione){

(null,()+"号码为:

"+number);

returnfalse;

}

}

publicbooleansetName(Stringname){

();

Name=name;

returntrue;

}

publicbooleansetPartition(StringStr){

();

Partition=Str;

returntrue;

}

publicbooleansetQQNumber(Stringqqnumber){

();

QQNumber=qqnumber;

returntrue;

}

classEmailExceptionextendsException{

publicStringwarningString(){

return"电子邮箱格式错误!

";

}

}

publicbooleansetEmail(Stringemail){

();

StringStr=(()-4);

try{

if(!

(""))

thrownewEmailException();

if(('@')<1)

thrownewEmailException();

Email=email;

returntrue;

}

catch(EmailExceptione){

(null,());

returnfalse;

}

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

etPretreatment(Style);

if((Key))

((pt));

}

returntempPhoneNumberList;

}

publicbooleanaddNumber(PhoneNumberphoneNumber,intIndex){

try{

if((phoneNumber))

thrownewOperatingException();

}

catch(OperatingExceptione){

(null,());

returnfalse;

}

try{

for(intpt=0;pt<();pt++)

if((pt).getNumber().equals()))

thrownewOperatingException();

if(Index>=())

Index=();

(phoneNumber,Index);

returntrue;

}

catch(OperatingExceptione){

(null,());

returnfalse;

}

}

publicbooleanremoveNumber(StringphoneNumber){

try{

intIndex=0;

for(intpt=0;pt<();pt++)

if((pt).getNumber().equals(phoneNumber))

Index=pt;

if(Index>=())

thrownewOperatingException();

(Index);

returntrue;

}

catch(OperatingExceptione){

(null,());

returnfalse;

}

}

publicbooleanmodifyPhoneNumber(PhoneNumberphoneNumber){

try{

if((phoneNumber))

thrownewOperatingException();

intIndex=0;

for(intpt=0;pt<();pt++)

if((pt).getNumber().equals())){

(pt);

(phoneNumber);

}

}

catch(OperatingExceptione){

(null,());

returnfalse;

}

try{

if(!

(phoneNumber))

thrownewOperatingException();

returntrue;

}

catch(OperatingExceptione){

(null,());

returnfalse;

}

}

publicVectorsortPhoneNumber(VectorphoneNumberList,StringKeyStr){

VectortempPhoneNumberList=newVector(10,3);

for(intIndex=0;Index<();Index++)

if((Index).getPartition().equals(KeyStr))

((Index));

returntempPhoneNumberList;

}

publicVectorrankVector(VectorphoneNumberList){

VectortempPhoneNumberList=newVector();

((0));

for(intIndex=0;Index<();Index++){

intpt;

booleanflag=true;

for(pt=0;pt<();pt++){

if((Index).getNumber()pareTo(pt).getNumber())<0)

break;

}

for(inti=0;i<();i++)

if((i).getNumber().equals(Index).getNumber()))

flag=false;

if(flag)

((Index),pt);

}

returntempPhoneNumberList;

}

publicstaticvoidmain(String[]args){

etMnemonic(MenuChar[0][Index]);

for(IndexI=0;IndexI

Menu[Index].add(MenuItem[Index][IndexI]);

MenuItem[Index][IndexI].setMnemonic(MenuChar[Index+1][IndexI]);

MenuItem[Index][IndexI].setAccelerator("ctrl"+MenuChar[Index+1][IndexI]));

}

}

Menu[1].insertSeparator

(1);

Menu[2].insertSeparator

(1);

JPanelpanel=newJPanel();

JPanelpanel2=newJPanel();

textField=newJTextField(20);

(true);

String[]s={"号码","姓名","分组"};

combobox=newJComboBox(s);

button=newJButton("搜索");

(newBoxLayout(panel,);

(combobox);

(textField);

(button);

(newBoxLayout(panel2,);

(View);

(panel);

(panel2);

(true);

(true);

(spane);

Stringpath="";

try{

FileReaderfr=newFileReader(path);

BufferedReaderreader=newBufferedReader(fr);

StringtempStr=newString();

tempStr=();

PhoneNumber[]phoneNumber=newPhoneNumber[5];

for(intpt=0;tempStr!

=null;pt++){

phoneNumber[pt]=newPhoneNumber();

VectorrowData=newVector(5);

phoneNumber[pt].setNumber(tempStr);

(tempStr);

tempStr=();

phoneNumber[pt].setName(tempStr);

(tempStr);

tempStr=();

phoneNumber[pt].setPartition(tempStr);

(tempStr);

tempStr=();

phoneNumber[pt].setQQNumber(tempStr);

(tempStr);

tempStr=();

phoneNumber[pt].setEmail(tempStr);

(tempStr);

(rowData);

phoneNumber[pt]);

tempStr=();

}

();

}

catch(IOExceptione){

(null,e);

}

(newActionListener(){

publicvoidactionPerformed(ActionEvente){

intStyle=()+1;

StringKeyStr=();

VectorphoneNumberList=(KeyStr,Style);

intflag=()-1;

for(inti=0;i

(()-1);

for(intpt=0;pt<();pt++){

VectorrowData=newVector(5);

(pt).getNumber());

(pt).getName());

(pt).getPartition());

(pt).getQQNumber());

(pt).getEmail());

(rowData);

}

();

}

});

MenuItem[0][0].addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

JMenuItemItem=(JMenuItem)();

(0);

}

});

MenuItem[1][0].addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

classJ_TableextendsJFrame{

publicDefaultTableModelm_data;

publicJTablem_view;

publicPhoneNumberphoneNumber;

publicJ_Table(){

super("新建");

p

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1