版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖北省武汉市初二地生会考考试题库(含答案)
- 第24课《唐诗三首》之《石壕吏》课件(内嵌视频)2025-2026学年统编版语文八年级下册
- 护理健康教育与咨询
- 2026年物业管理合同范本解析
- 政策新规下2026年劳动合同模板下载
- 2026版:知识产权转让合同范本
- 2026年思想政治教育调查报告(2篇)
- 头晕与药物副作用的识别
- 护理核心制度详解:感染控制
- 护理个案研究资料
- 森林资源管理知识培训课件
- 浙江省烟草专卖局(公司)笔试试题2025
- 《网络营销实务(第4版)》高职全套教学课件
- 肿瘤科护士长竞聘演讲稿
- 2025年浙江省中考语文试题卷(含答案解析)
- 2025年广西百色中考地理试题及答案
- 电力职业健康培训课件
- 兵团连队经费管理办法
- 2025年《治安管理处罚法》新修订课件
- 人教版七年级初中英语教材同步练习和全年阶段测试卷
- 沉浸式剧本杀《祝福》公开课 课件 高一语文统编版必修下册
评论
0/150
提交评论