Java大作业-学生通讯录系统设计_第1页
Java大作业-学生通讯录系统设计_第2页
Java大作业-学生通讯录系统设计_第3页
Java大作业-学生通讯录系统设计_第4页
Java大作业-学生通讯录系统设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计

学生通讯录系统设计

计算机Z1111班:张志虎、葛志强

2013/12/21

同学通信录管理系统

一、功能要求:

1、信息录入,包括记录的追加和插入:

2.信息删除;

3.信息修改:

4.信息排序和查询:

5.信息的保存和装载;

6.简单的帮助。

系统开发目录:

iClassmateCommunicationMS

/kBsrc

电Data

限Images

,由Mypackage

[JiTestClassmateCMS.java

一目Mypackage.Class

[J|Classmate.java

[J,OrderbyNameASC.java

7,OrderbyNameDESC.java

|J.ReadWrrteProperties.java

»团UseFile.java

团User.java

JUserProperty.java

■Mypackage.Frame

“IAboutSystemDialog.java

J.AppendDialog.java

12.DeleteDialog.java

[JImportFileDialog.java

|J.LogonFrame.java

[TjMainFrame.java

fj)SelectDialog.java

[jjUpdateDialog.java

[JiUserFindPwdDialog.java

jjUserRegistDialog.java

JUserllpdatePwdDialog.java

9^JRESystemLibrary[JavaSE-1,6]

.rperties

图2T:系统开发目录

二、用例图

2

注册账号找卜怖码

图2-1:系统用例图

三、类图

%M及中Mjrn储/,tfb'

叫心的依g,叫户*.*、•nw.<F».

W.9命"号

UserClMsmtfe

Usemopep

•ustrnimt:Strtng•us«mam«:Stnng

•IM«:Ui,r

•pjword:Stnng•Suing:name

-a/*mofrPWD:beolea

•id:Siting•boolean

■aAuULofonboolean

•“♦:iM

♦getUxmEeO:Stn”

♦fltlUjeiO:User•integrity:Stnng

♦srtUs«mame<StJinB:void

♦MtU»«<Usermt):void•t<I:Stnng

♦toStnnoO:Stn”

♦iilU»m»ryFWD()boolem•qqStifng

♦toLongStiinQO:StnnQ

♦ietM«moryPWD(bool«anint)vei•email.Siting

♦ut«tLoQOf<)boolean

♦itAuioLogonO:boolean•m«moStiing

♦uietAegiiK)boolean

♦MtAutoLogor<boole4n:int>:e,d

♦««,“,“a»vX>:Ux,♦•«1N«m<0!€Hin0

:Stflnfl

♦ustrUpdaUPvid(Str.nQint):booltan♦sttNAm«(Stiing:Int):void

♦toStilngO:Stnng

♦MiiuObj»cXObj«etOu1pulSli«Afnmt)、cd

♦leAd0bj•€K0>j•ctlnputStr•4minf):void

-----------------------------------------r

R«achSYit«Prcp«di*fi

♦wfitt(Sliin«:int.Vector:mt):veld

♦wit«P(op«f1ie<UM«Pfoperty:int):void

♦M!lUFH«(Stiin9:int.Vaetoiint)“id^derbyfUnwDESCOrd»eby»ij»m»ASC

♦i“aStHcg:U»t.V«cUfinf):void

♦:iM.Vectorin©:void♦©ompar«<Clajwiteint):int♦comp>r«(CI>J5mate:int):void

♦up4*teFile($t(inaintVectoi:»nt)vcd

♦dele1efile<S^ingintVector:iM>:voI

图3-1:系统类图书

四、截图及核心代码

1.登录模块

功能介绍:实现用户的登陆,还包含注册账号和找回密码两个功能。同时可以实现记住密码、自动登陆。

界面展示:

3

图4T系统登录

核心代码:

try(

Stringname=cobUserName.getSelectedltemO.toStringO;//获取用户输入的用户名

〃输入用户名是否为空

if(name,equals(**))(

JUptionPane.showMessagel>ialog{

null,

”用户名不能为空!",

"登录失败",

JOptionPane.盘FORMATION_MESSAGE

);

}

Stringpassword=newSlring(lxlPassword.gelPasswordO).trim。;//获取用户输入的密码

〃输入密码是否为空

if(password,equals(**)){

JOptionPane.showMessageDialogt.

null,

"密码不能为空!二

"登录失败",

JOptionPane.INFORMATION_MESSAGE

);

return;

}

booleanisMcmoryPWD=chbMemoryPWD.isSelectedO;

boo1eanisAutolx)gon=chbAutol.ogon.isSelectedO;

//System,out.prin11n(isMemoryPWD):

Useruser=newUser(name,passworc):

4

if(user.userLogonO){〃用户是否存在

UserPropertyuserp=newUserProperty(user,isMcmoryPWD,isAutoLogon):

ReadWriteProperties.i«71ePropertY^(userp);

disposeO:

MainFramemainframe=newMainFrane(user);//启动主操作界面

mainframe.setVisible(true);

Jelsel

〃提示失败信息

JOptionPane.show\fessageDialog{

null,

”用户名或密码输入It误!”,

"登录成功”,

JOptionPane.INFORMATION_MESSAGE

);

}

cobUserName.setl;ocusable(true)://输入用户名的控件获得焦点

txtPassword.se(Texl(nul1);//输入密码的控件为空

}catch(Exceptione){}

)

•登录界面一账号注册

功能介绍:注册用户

界面展示:

图4-2系统用户注册

核心代码:

publicvoiduserRegist(){

5

S:ringusername=txtUserName.getText().trim();

S:ringpassword二newString(txtpassword.getPassword()).trim();

Siringpasswordok=newString(txtPasswordOk.getPassword());

Siringid=txtld.getText().trim():

/,,用户名不能为空

if(username.isEmply()){

〃提示信息

JOptionPane.showMessageDialog(

null,

“用户名不能为空!\

"用户注册”,

JOptionPane.INFORMATION_MESSAGE

):

return;

}

//用户名为夕18

i(username,length()<51username.length()>18){

〃提示信息

JOplionPane.showMessageDialog(

null,

"用户名长度应在5~18之间!”,

"用户注册二

JOptionPane.INFORMATION_MESSAGE

);

return;

)

Useruscr=ncwUser(username,password,id);

try(

if(user.userRegist()){

〃提示失败信息

JOptionPane.showAlessageDia1og(

null,

”注册成功!

”注册成功二

JOpIiunPaue.INFORMATIONJESSAGE

);

disposeO;

@SuppressWarnings("unused")

LogonFramelogon=newLogonFranieO:

6

}else{

〃提示失败信息

JOptionPane.showftlessageDia1og(

null,

”此注册用户已存在!

”注册失败!

JOplionPane.INFORMATION.MESSAGE

);

txtUserName.setFocusable(true):

)

}catch(Fi1eNotFoundExceptione){

//TODOAuto-generatedcatchblock

e.printStackTraceO;

}

•登录界面一找回密码

功能介绍:用户忘记密码,可以通过验证用户名和身份证号找回密码

界面展示:

核心代码:

publicvoiduserfindPwdO(

Siringusername=txlUserName.gelTexlO.IrimO:

S:ringid=txtld.getTextO.trimO;

〃用户名不能为空

i:(username.isEmptyO){

〃提示信息

JOptionPane.showMessageDialog(

null,

7

”用户名不能为空!”、

"用户注册”,

JOptionPane.1NBORMAT1ON_MESSAGE

):

return:

)

//用户名为5~18

i:(username,length0<51username,length0>18){

〃提示信息

JOptionPane.showMessageDialog(

null,

"用户名长度应在5~I8之间!”,

“用户注册",

JOptionPane.INFORMATIONMESSAGE

);

return;

)

〃身份证号不能为空

〃身份证号不是18位时

〃验证身份证号

Useruser=newUserO;

user.setUsername(username);

user,setld(id);

try{

Useruserr=user.userFindPwdO;

if(userr==nul1)(

JOptionPane.showMcssagcDia1og(

null,

”用户名或身份证号有误!”,

”找回密码失败”,

JOplionPane.INFORMATIONJESSAGE

);

)else(

JOptionPane.showMessageDia1og(

null,

"用户名:"+useir.getUserrameO十"\r\n密码:"+newString(userr.getPasswordO).trim(),

”找回密码成功",

JOptionPane.INFORMATIONJESSAGE

);

8

}catch(FileNotFoundExceptione){

//TODOAuto-generatedcatchblock

e.printStackTraceO:

2.系统主界面

功能介绍:包含系统管理、文件管理、操作管理、其他4个功能模块,具体模块功能后面详细介绍

主界面展示:

同学通讯录管理系统

系统管理文件管理操作管理其他

图4-4系统主操作界面

核心代码:

〃显示关于对话框

JMenuItemmntmAbout=newJMemItem(w\u7CFB\u7EDF\u5173\u4E8Ew);

mnOther.add(mntmAbout):

JMenuItemmntmHelp=newJMenuItem("\u5E2E\u52A9”);

mntmHelp.addActionIJstcncr(newActionListenerO{

publicvoidactionPerformed(ActionEvcntc){

if(IhelpFlag)(

panelHeIp.setVisible(true);

Stringstr="系统名称:\r\n”;

txtllelplnfor.setText(slr);

9

helpFlag=true;

}else{

panelHeIp.setVisible(false);

helpFlag=false:

)

)

})

2.1.1.系统管理一修改密码

功能介绍:更改用户密码

界面展示:

图4-5系统更改密码

核心代码:

publicvoidupdatepwdO{

Siringoldpassword=newString(txt01dPassword.getPasswordO).trim();

S:ringncwpassword=newString(txtNcwPassword.gctPasswordO).trim();

Siringpasswordok=ncwString(txtPasswordOk.getPasswordO).trim();

〃旧密码不能为空

i:(oldpassword.isEmpty())(

〃提示信息

JOpIionPane.showMessageDialog(

null,

"日密码不能为空!二

“用户更改密码”,

JOptionPane.INFORMATION_MESSAGE

):

return;

10

〃新密码不能为空

〃密码为6~15

〃确认密码不能为空

〃两次密码不一致

〃是否更改密码成功

try{

if(!user.userllpdatePwd(newpasswoid)){

//失败

JOptionPane.showMessageDia1og(

null,

”原密因输入有误!”,

”密码更改失败",

JOptionPane.INFORMATIONMESSAGE

);

}else{〃成功

JOptionPane.showMessageDia1og(

null,

”密码更改成功二

”密码更改成功二

JOptionPane.INFORMATIONJ'ESSAGE

);

)

}catch(Fi1eNotFoundExceptione)\

//TODOAuto-generatedcatchblock

e.printStackTraceO;

}

}

2.1.2.系统管理一注销账号

功能介绍:退回到登陆界面

界面:

11

图4-6系统管理-注销账号

核心代码:

mntmLogoff.addActionListener(newActiorListenerO{

publicvoidactionPerformed(/»ctionEventargO){

disposeO;

lx)gonFrameframe=newLogcnFrame0;

)

});

2.1.3.系统管理一退出系统

功能介绍:退出系统

图4-7系统管理-退出系统

12

核心代码:

mntiiExit.addActionListener(newActiorListener(){

publicvoidacIionPerformed(^ctionEventargO){

System.exit(0);

)

});

2.2.1.文件管理一导入文件

功能介绍:导入类型是.TXT类型的通iR记录到通讯系统中

界面展示:

图4-8文件管理-导入文件

核心代码:

okBut:on.addActionListener(newActionListenerO{

publicvoidactionPerformed(ActionEvente)(

if(v==null){

JOptionPanc.showMessagcDia1og(

null,

”导入失败,请选择文件进行导入”,

”导入数据二

13

JOptionPane.INFORMATION_MESSAGE

);

return:

}else{

UseFile.writeFile(fname,v):

JOptionPane.showMessageDialog(

null,

”数据导入成功二

”导入数据:

JOptionPane.INFORMATIONJIESSAGE

):

return;

)

}

));

btnSelectFile.addActionListener(newActionListener(){

pub!icvoidactionPerformed(ActicnEvente){

Jl?iIcChooserchooser=newJFileChooserO;

FileNameExtensionFi1terfilter=newFileNameExlensionFi1ler("*.ixl","ixl");

chooser.setFileFilter(filter):

intreturnVal=chooser.showOpenDialog(getParent0);

Stringfilename=null:

if(returnVal==JFileChooser.AFPROVE_OPTION){

filename=chooser.getSelectecFileO.toStringO:

txtFilePath.setText(filename);〃在文本框中显示文件路径

if(!fi1cnamc.substring(filename.indcxOf(*.*)+1,filename.IcngthO).cquals("txt")){

JOptionPane.showMossageDia1og(

nul1,

”文件类型必需为

”文件选择失败”,

JOplionPane.1NFORMATION_MESSAGE

);

txtFilePath.setText(**);

return;

)

)

)

}:';

2.2.1.文件管理一导出文件

14

功能介绍:将在同学通讯录系统中生成的文件以.TXT文件形式导出

界面展示:

图4-9文件管理-导出文件

核心代码:

mntnSava.addActionListener(newActiorListenerO{

publicvoidactionPerformed(^ctionEvente){

JFileChooserchooser=newJFi1eChooser():

FileNameExtensionFilterfilter=newFileNameExtensionFilter(**.txtw,^txt"):

chooser.setFileFiIter(filter);

chooser.setFileSelectionMode(JFileChooser.FILESANDDIRECTORIES);〃选择目录和文件

intrcturnVal=chooser.showSaveDialog(gctParcnt());

if(rcturnVal==JFileChooser.AFPROVE_OPTION){

Stringfi1ename-chooser.getSelectedFile().toStringO;//获取路径

Vector<C1assmate>cVector=newVector<Classmate>():

UsePile.readl;ile(fname,cVector);

if(filename.indexOfC.')<=0)I

filename+=".txt*:

)

if(Jfilcnomc.substring(fiIcncmc.indcxOf(w.")+1,filename.IcngthO).equals("txt")){

JOptionPane.showMessageDialog(

null,

”文件类型必需为札txt”,

“导出,

15

JOptionPane.INI'ORMAT1ON_MESSAGE

);

return;

)

UseFile.write(filename,cVector);

)

)

});

2.3.1,操作管理一增加通信记录

功能介绍:增加新的同学信息,包括姓名、性别、电话、QQ号、邮箱、备注等

界面展示:

图4-10操作管理-添加通信记录

核心代码:

publicvoidappend0{

booleanflag=true;

S:ringname=txtNanie.getText();

16

booleansex=Boo1can.parseBoo1ean(rcbtnMa1e.isSclected0?"truc":"false");

intage=this.sldAge.getValueO;

Siringintegrity=this.coblntegrity.getSelectedltem().toStringO;

Siringtel=txtTel.getTextO:

Siringqq=txtQQ.getText();

Siringemail=txtEniail.getTextO;

S:ringmemo=txtMemo.getText();

i:(name.isEmptyO){

JOptionPane.showMessageDialog(

null,

”姓名不能为空!

"增加通信信息”,

JOptionPanc.INFORMATIONMESSAGE

);

return;

}else]”否,添加新行后,加入新数据。

((javax.swing,table.DefaultTablelodel)table.getModel()).insertRow(countRows,

newObject口{name,

sex,

age,

integrity,

tel,

qq,

email,

memo});

)

row++;tabic.repaint();//刷新表格数据

Classmateclassmate-newClassmate(user.getUsernamc(),name,sex,age,integrity,tel,qq,emai1,memo);

cVector,add(classmate);

UseFile.writel;ile(fname,cVector);

JOptionPane.showMessageDialog(

null,

”添加成功!”,

"增加通信信息二

JOplionParie.INFORMATION_MESS?GE

);

txtName.setText;

txtTel.setText("”);

txtQQ.sctText("");

17

}

2.3.2.操作管理一删除通信记录

功能介绍:通过姓名检索,找出要删除者的全部信息,选择删除或全部删除

界面展示:

图4-10操作管理-删除通信记录

核心代码:

〃检索操作

publicvoidSelect0{

try(

if(cVector.size()<=0){

JOptionPane.showMcssagcDia1og(

null,

”没有检索到任何记录!”,

”删除通信信息”,

JOplionPane.INI'ORMATIONJ'ESSAGE

);return;

)

18

Stringname;

namc=txtName.getTcxt():

if(name.isEmpty()){

tableLoadDataO:〃显示全部通信记录

blnAHDel.setEnabled(true):

btnDelete.setEnabled(true):

DeleteFalg=true:

Jelsel

SelectByName(name);〃姓名检索出耍删|除的通信记录

btnDelete.setEnabled(true);

DeleteFalg=false:

}

}catch(Exceptione){}

)

2.3.3.操作管理一更新通信记录

功能介绍:通过姓名检索出要更新的全部信息,然后通过更新相应信息重新设置被检索出来人的信息

界面展示:

图4-11操作管理-更新通信记录

核心代码:

publicvoidUpdate(){

booleanflag=true:

S:ringname=txtName.getText();

19

booleansex=Boolean.parseBoo1ean(rttnMa1e.isSelected()?"true":"false");

intage=this.sldAge.getValueO;

Siringintegrity=this.cobintegrity.getSelectedltem().toStringO;

Stringtel=txtTel.getText():

Siringqq=txtQQ.getText();

Siringemail=txtEmail.gelTexlO;

S:ringinemo=txtMemo.getText();

i:(name.isEmptyO){

JOptionPane.showMessageDialog(

null,

”姓名不能为空!

"更新信息”,

JOptionPane.INFORMATIONMESSAGE

);

return:

)

if(flag){

cVector.remove(cm);

era.setAge(age);

cm.setEmail(email):

cm.setQq(qq);

cm.setTel(tel):

cm.setSex(sex):

cm.setintegrity(integrity);

cm.setMemo(memo);

cVector.add(cm);

UscFi1c.updatcFile(fname,cVector);

JOptionPane.showMessageDialog(

null,

”更新信息成功!”,

"更新信息”,

JOptionPane.INFORMATION_MESSAGE

):

initFalseO:

return;

}

2.3.4.操作管理一查询通信记录

功能介绍:通过查询姓名、性别、组别(关系信息,例如:大学同学),升序或降序将搜索出的信息显示

在界面下的表格中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论