2022年Java大作业同学通信录管理完整.docx
精品学习资源欢迎下载精品学习资源一、功能要求:同学通信录治理系统欢迎下载精品学习资源1、信息录入,包括记录的追加和插入;2 、信息删除;Java 程序设计同学通讯录系统设计3、信息修改;4、信息排序和查询;5、信息的储存和装载;6、简洁的帮忙; 系统开发目录:欢迎下载精品学习资源二、用例图图 2-1: 系统开发目录欢迎下载精品学习资源欢迎下载精品学习资源三、类图图 2-1: 系统用例图欢迎下载精品学习资源图 3-1: 系统类图书运算机 Z1111 班:张志虎、葛志强2021/12/21欢迎下载精品学习资源四、截图及核心代码1、登录模块功能介绍:实现用户的登陆,仍包含注册账号和找回密码两个功能;同时可以实现记住密码、自动登陆;界面呈现:图 4-1系统登录核心代码:tryString name=cobUserName.getSelectedItem.toString;/ 猎取用户输入的用户名/ 输入用户名是否为空ifname.equals""JOptionPane. showMessageDialog null," 用户名不能为空 ."," 登录失败 ",JOptionPane. INFORMATION_MESSAGE ;String password=new StringtxtPassword.getPassword.trim;/ 猎取用户输入的密码/ 输入密码是否为空ifpassword.equals"" JOptionPane. showMessageDialog null," 密码不能为空 ."," 登录失败 ",JOptionPane. INFORMATION_MESSAGE ;return;boolean isMemoryPWD= chbMemoryPWD.isSelected;boolean isAutoLogon=chbAutoLogon.isSelected;/System.out.printlnisMemoryPWD;User user =new Username,password;ifuser.userLogon/用户是否存在UserProperty userp=new UserPropertyuser,isMemoryPWD,isAutoLogon;ReadWriteProperties.writePropertiesuserp ;dispose;MainFrame mainframe=new MainFrameuser;/ 启动主操作界面欢迎下载精品学习资源mainframe.setVisibletrue;else/ 提示失败信息JOptionPane. showMessageDialog null," 用户名或密码输入有误 .", " 登录成功 ",JOptionPane. INFORMATION_MESSAGE ;cobUserName.setFocusabletrue;/ 输入用户名的控件获得焦点txtPassword.setTextnull;/ 输入密码的控件为空catchException e登录界面 - 账号注册功能介绍:注册用户界面呈现:图 4-2系统用户注册核心代码:public void userRegistString username=txtUserName.getText.trim;String password=new Stringtxtpassword.getPassword.trim;String passwordok=new StringtxtPasswordOk.getPassword;String id=txtId.getText.trim;/ 用户名不能为空ifusername.isEmpty/ 提示信息JOptionPane.showMessageDialog null," 用户名不能为空! ", " 用户注册 ",JOptionPane.INFORMATION_MESSAGE ;return;/ 用户名为 518 ifusername.length<5|username.length>18欢迎下载精品学习资源/ 提示信息JOptionPane.showMessageDialog null," 用户名长度应在 518之间! ", " 用户注册 ",JOptionPane.INFORMATION_MESSAGE ;return;User user=new Userusername,password,id;try ifuser.userRegist/ 提示失败信息JOptionPane.showMessageDialog null," 注册成功! "," 注册成功 ", JOptionPane.INFORMATION_MESSAGE ;dispose;SuppressWarnings"unused" LogonFrame logon =new LogonFrame;else/ 提示失败信息JOptionPane.showMessageDialog null," 此注册用户已存在! ", " 注册失败! ",JOptionPane.INFORMATION_MESSAGE ;txtUserName.setFocusabletrue; catch FileNotFoundException e / TODO Auto-generated catch block e.printStackTrace;登录界面找回密码功能介绍:用户遗忘密码,可以通过验证用户名和身份证号找回密码界面呈现:欢迎下载精品学习资源图 4-3系统找回密码核心代码:public void userfindPwdString username =txtUserName.getText.trim;String id=txtId.getText.trim;/ 用户名不能为空ifusername.isEmpty/ 提示信息JOptionPane.showMessageDialog null," 用户名不能为空! ", " 用户注册 ",JOptionPane.INFORMATION_MESSAGE ;return;/ 用户名为 518 ifusername.length<5|username.length>18/ 提示信息JOptionPane.showMessageDialog null," 用户名长度应在 518之间! ", " 用户注册 ",JOptionPane.INFORMATION_MESSAGE ;return;/ 身份证号不能为空/ 身份证号不是 18位时/ 验证身份证号User user =new User;user.setUsernameusername;user.setIdid;try User userr=user.userFindPwd;ifuserr=null JOptionPane.showMessageDialog null," 用户名或身份证号有误! ",欢迎下载精品学习资源" 找回密码失败 ", JOptionPane.INFORMATION_MESSAGE ;else JOptionPane.showMessageDialog null," 用户名: "+userr.getUsername+"rn密码: "+new Stringuserr.getPassword.trim," 找回密码成功 ", JOptionPane.INFORMATION_MESSAGE ; catch FileNotFoundException e / TODO Auto-generated catch block e.printStackTrace;2、系统主界面功能介绍:包含系统治理、文件治理、操作治理、其他4 个功能模块,详细模块功能后面详细介绍主界面呈现:图 4-4系统主操作界面核心代码:/显示关于对话框JMenuItem mntmAbout = new JMenuItem"u7CFBu7EDFu5173u4E8E";mnOther.addmntmAbout;JMenuItem mntmHelp = new JMenuItem"u5E2Eu52A9";mntmHelp.addActionListenernew ActionListener public void actionPerformedActionEvent e if.helpFlagpanelHelp.setVisibletrue;String str="系统名称: rn";txtHelpInfor.setTextstr;helpFlag=true;elsepanelHelp.setVisiblefalse;helpFlag=false;欢迎下载精品学习资源2.1.1 、系统治理修改密码功能介绍:更换用户密码界面呈现:图 4-5系统更换密码核心代码:public void updatepwdString oldpassword=new StringtxtOldPassword.getPassword.trim;String newpassword=new StringtxtNewPassword.getPassword.trim;String passwordok=new StringtxtPasswordOk.getPassword.trim;/ 旧密码不能为空ifoldpassword.isEmpty/ 提示信息JOptionPane.showMessageDialog null," 旧密码不能为空! ", " 用户更换密码 ",JOptionPane.INFORMATION_MESSAGE ;return;/ 新密码不能为空/ 密码为 615/ 确认密码不能为空/ 两次密码不一样/ 是否更换密码成功try if.user.userUpdatePwdnewpassword/ 失败JOptionPane.showMessageDialog null," 原密码输入有误! "," 密码更换失败 ", JOptionPane.INFORMATION_MESSAGE ;else/成功JOptionPane.showMessageDialog null," 密码更换成功 ",欢迎下载精品学习资源" 密码更换成功 ", JOptionPane.INFORMATION_MESSAGE ; catch FileNotFoundException e / TODO Auto-generated catch block e.printStackTrace;2.1.2 、系统治理注销账号功能介绍:退回到登陆界面界面:图 4-6 系统治理 - 注销账号核心代码:mntmLogoff.addActionListenernew ActionListener public void actionPerformedActionEvent arg0 dispose;LogonFrame frame = new LogonFrame;2.1.3 、系统治理退出系统功能介绍:退出系统图 4-7 系统治理 - 退出系统核心代码:mntmExit.addActionListenernew ActionListener public void actionPerformedActionEvent arg0 System.exit0;22.1 、文件治理导入文件功能介绍:导入类型是.TXT 类型的通讯记录到通讯系统中界面呈现:图 4-8 文件治理 - 导入文件欢迎下载精品学习资源核心代码:okButton.addActionListenernew ActionListener public void actionPerformedActionEvent e ifv=nullJOptionPane.showMessageDialog null," 导入失败,请选择文件进行导入"," 导入数据 ", JOptionPane.INFORMATION_MESSAGE ;return;elseUseFile.writeFilefname, v;JOptionPane.showMessageDialog null," 数据导入成功 "," 导入数据 ", JOptionPane.INFORMATION_MESSAGE ;return; ;btnSelectFile.addActionListenernew ActionListener public void actionPerformedActionEvent e JFileChooser chooser = new JFileChooser;FileNameExtensionFilter filter = new FileNameExtensionFilter"*.txt","txt";chooser.setFileFilterfilter;int returnVal = chooser.showOpenDialoggetParent;String filename=null;ifreturnVal = JFileChooser.APPROVE_OPTION filename= chooser.getSelectedFile.toString;txtFilePath.setTextfilename;/ 在文本框中显示文件路径if.filename.substringfilename.indexOf"."+1,filename.length.equals"txt" JOptionPane.showMessageDialognull," 文件类型必需为 *.xls|*.txt", " 文件选择失败 ",JOptionPane.INFORMATION_MESSAGE ;欢迎下载精品学习资源txtFilePath.setText"";return; ;22.1 、文件治理导出文件功能介绍:将在同学通讯录系统中生成的文件以.TXT 文件形式导出界面呈现:图 4-9 文件治理 - 导出文件核心代码:mntmSava.addActionListenernew ActionListener public void actionPerformedActionEvent e JFileChooser chooser = new JFileChooser;FileNameExtensionFilter filter = new FileNameExtensionFilter"*.txt","txt";chooser.setFileFilterfilter;chooser.setFileSelectionModeJFileChooser.FILES_AND_DIRECTORIES;/ 选择目录和文件int returnVal = chooser.showSaveDialoggetParent;ifreturnVal = JFileChooser.APPROVE_OPTION String filename = chooser.getSelectedFile.toString;/ 猎取路径Vector<Classmate> cVector=new Vector<Classmate>;UseFile.readFilefname, cVector;iffilename.indexOf'.'<=0 filename+=".txt";if.filename.substringfilename.indexOf"."+1,filename.length.equals"txt" JOptionPane.showMessageDialognull," 文件类型必需为 *.txt", " 导出",JOptionPane.INFORMATION_MESSAGE ;return;UseFile.writefilename, cVector;欢迎下载精品学习资源2.3.1 、操作治理增加通信记录功能介绍:增加新的同学信息,包括姓名、性别、电话、QQ号、邮箱、备注等界面呈现:图 4-10 操作治理 - 添加通信记录核心代码:public void append boolean flag=true;String name=txtName.getText;boolean sex=Boolean.parseBooleanrdbtnMale.isSelected."true":"false";int age=this.sldAge.getValue;String integrity=this.cobIntegrity.getSelectedItem.toString;String tel=txtTel.getText;String qq=txtQQ.getText; String email=txtEmail.getText;String memo=txtMemo.getText;ifname.isEmpty JOptionPane.showMessageDialognull," 姓名不能为空! ", " 增加通信信息 ",JOptionPane.INFORMATION_MESSAGE ;return;else/否,添加新行后,加入新数据;javax.swing.table.DefaultTableModel table.getModel.insertRowcountRows, new Object name,sex, age, integrity, tel,qq, email,memo ;row+; table.repaint;/ 刷新表格数据Classmate classmate=new Classmateuser.getUsername,name,sex,age,integrity,tel,qq,email,memo;cVector.addclassmate;UseFile.writeFilefname, cVector;欢迎下载精品学习资源JOptionPane.showMessageDialog null," 添加成功! "," 增加通信信息 ", JOptionPane.INFORMATION_MESSAGE ;txtName.setText"";txtTel.setText"";txtQQ.setText"";2.3.2 、操作治理删除通信记录功能介绍:通过姓名检索,找出要删除者的全部信息,选择删除或全部删除界面呈现:图 4-10 操作治理 - 删除通信记录核心代码:/ 检索操作public void Select try ifcVector.size<=0JOptionPane.showMessageDialog null," 没有检索到任何记录! "," 删除通信信息 ", JOptionPane.INFORMATION_MESSAGE ;return;String name ;name=txtName.getText;ifname.isEmptytableLoadData;/ 显示全部通信记录btnAllDel.setEnabledtrue;btnDelete.setEnabledtrue;DeleteFalg=true;elseSelectByNamename ;/ 姓名检索出要删除的通信记录btnDelete.setEnabledtrue;DeleteFalg=false;欢迎下载精品学习资源catchException e2.3.3 、操作治理更新通信记录功能介绍:通过姓名检索出要更新的全部信息,然后通过更新相应信息重新设置被检索出来人的信息界面呈现:图 4-11 操作治理 - 更新通信记录核心代码:public void Update boolean flag=true;String name=txtName.getText;boolean sex=Boolean.parseBooleanrbtnMale.isSelected."true":"false";int age=this.sldAge.getValue;String integrity=this.cobIntegrity.getSelectedItem.toString;String tel=txtTel.getText;String qq=txtQQ.getText; String email=txtEmail.getText;String memo=txtMemo.getText;ifname.isEmpty JOptionPane.showMessageDialognull," 姓名不能为空! ", " 更新信息 ",JOptionPane.INFORMATION_MESSAGE ;return;ifflag cVector.removecm;cm.setAgeage;cm.setEmailemail;cm.setQqqq ;cm.setTeltel;cm.setSexsex;cm.setIntegrityintegrity;cm.setMemomemo;cVector.addcm;UseFile.updateFilefname, cVector;JOptionPane.showMessageDialog欢迎下载精品学习资源null," 更新信息成功! ", " 更新信息 ",JOptionPane.INFORMATION_MESSAGE ;initFalse;return;2.3.4 、操作治理查询通信记录功能介绍:通过查询姓名、性别、组别(关系信息,例如:高校同学),升序或降序将搜寻出的信息显示在界面下的表格中界面呈现:图 4-11 操作治理 - 查询通信记录核心代码:/ 升序JButton btnASC = new JButton"u5347u5E8F";btnASC.addActionListenernew ActionListener public void actionPerformedActionEvent arg0 OrderbyASC ; ;btnASC.setBounds418, 66, 93, 23;panel.addbtnASC;/ 降序JButton btnDESC = new JButton"u964Du5E8F";btnDESC.addActionListenernew ActionListener public void actionPerformedActionEvent arg0 OrderbyDESC ; ;2.4.1 、其他系统关于功能介绍:显示系统的信息界面呈现:图 4-12 其他 - 关于核心代码:欢迎下载精品学习资源/ 窗体居中显示Dimension screenSize = Toolkit.getDefaultToolkit.getScreenSize;Dimension frameSize = this.getSize;this.setLocation screenSize.width - frameSize.width / 2, screenSize.height - frameSize.height /2 ;contentPanel.setLayoutnull;JLabel lblNewLabel = new JLabel"u7CFBu7EDFu540Du79F0uFF1A";lblNewLabel.setBounds34, 37, 75, 15;contentPanel.addlblNewLabel;2.4.2 、其他帮忙功能介绍:基本的用户使用方法介绍界面呈现:图 4-12其他 - 帮忙核心代码:mntmHelp.addActionListenernew ActionListener public void actionPerformedActionEvent e if.helpFlagpanelHelp.setVisibletrue;String str=" 系统名称:同学通信录治理系统 rn1. 如何登录系统 rn 输入合法的用户和密码,单确定按钮,即可成功登录本系统;否就将无法登录; rn2. 如何注册账号和找回密码 rn 在登录界面上单击“注册账号”文字,即可打开注册账号操作界面,输入注册用户名,密码,确认密码,身份证号;填写好注册信息后单出确定按钮即可注册成功,如注册不成功,系统将提示相应的错误信息;rn";txtHelpInfor.setTextstr;helpFlag=true;elsepanelHelp.setVisiblefalse;helpFlag=false;欢迎下载