实用文档文案大全一、问题及功能分析需求分析功能需求:1、提供身份验证:能否使用该系统。2、提供用户注册及修改密码功能。3、提供对同学通讯信息的增加、删除、修改和查询功能。4、查询功能要求:能实现根据学号、姓名的精确查询,也能对地区的模糊查询,比如:查询“广州市天河区”,能列出所有家在广州市天河区的同学信息。性能需求:1、操作界面美观、友好。2、通讯录采用MySQL数据库再用JDBC连接。系统功能结构经过需求分析,此班级通讯录主要包括用户的注册登录模块和对联系人的信息管理模块,系统结构如图系统结构图目录结构班级通讯录管理系统联系人信息管理注册登录添加联系人修改联系人资料查询联系人信息联系人照片管理显示联系人信息注册新用户修改登录密码用户登录实用文档文案大全该软件主要的实体有用户、联系人和照片,下面介绍各实体的E-R图,通过E-R图来了解实体属性,这里主要介绍联系人和联系人照片的E-R图。数据库表的设计本软件共建了三张表:用户表、联系人表和照片表。联系人表字段名称数据类型字段大小是否主键说明实用文档文案大全Pid文本20是联系人编号pname文本20否联系人姓名pgender文本4否性别pbirthday文本20否生日pnumber文本12否联系电话pQQ文本20否QQ号码pemail文本20否电子邮件padress文本50否联系地址pphotoOLE对象N/A否照片Uid文本20否所属用户照片表字段名称数据类型字段大小是否主键说明pid文本2否所属联系人photoname文本50是照片名称photoOLE对象N/A否照片数据用户表字段名称数据类型字段大小是否主键说明uid文本20是用户登录名pwd文本20否登录密码二、概要设计1、构建开发环境开发此通讯录所用到的软件环境JDK1.7版本MySQL5.5NavicatPremium数据库可视化工具Myeclipse开发工具2、图形用户界面构成实用文档文案大全登录模块用户名、密码两个JLabel,登录、注册、修改密码按钮JButton,输入用户名、密码的文本框。如图联系人信息管理模块界面上部分是实现查询功能的组件,中间部分是信息显示组件,下面部分是查询返回的JTable列表。如图实用文档文案大全三、详细设计1、登录界面的搭建login.java运用了PS设计一些icon以及页面布局方法,实现了登录界面的美化。(详细代码请看工程文件夹下文件login.java)3、登录窗口功能的实现login.java、DButil.java提供了登录校验方法,包括账号密码合法性、修改密码、注册等。(详细代码请看工程文件夹下文件login.java、DButil.java)4、主窗体的搭建及功能MainFrame.java窗体界面布局,各个事件的监听以及实现。如:查询操作。(详细代码请看工程文件夹下文件MainFrame.java)5、登录窗体及联系人信息管理窗体所用到的数据库操作方法DButil.java定义各种数据库操作方法。如:登录验证、注册、查询、插入等。(详细代码请看工程文件夹下文件DButil.java)2、登录界面的搭建实用文档文案大全3、packageFrame;4、importjava.awt.*;5、importjava.awt.event.ActionEvent;6、importjava.awt.event.ActionListener;7、importjava.sql.*;8、importjavax.swing.*;9、importdb.DButil;10、publicclassloginextendsJFrameimplementsActionListener{11、privateJPaneljp=newJPanel();12、//创建标签数组13、privateJLabel[]jlArray={newJLabel(用户名),newJLabel(密码),newJLabel()};14、15、privateJButtonjb1;16、privateJButtonjb2;17、privateJButtonjb3;18、privateJTextFieldjtf=newJTextField();19、privateJPasswordFieldjpf=newJPasswordField();20、21、//布局构造实现方法22、23、publiclogin(){24、Iconicon1=newImageIcon(login.jpg);25、Iconicon2=newImageIcon(reset.jpg);26、Iconicon3=newImageIcon(zhuce.jpg);27、28、JPaneljp=newJPanel(){29、protectedvoidpaintComponent(Graphicsg){30、ImageIconicon=newImageIcon(bg.jpg);31、Imageimg=icon.getImage();32、g.drawImage(img,0,0,icon.getIconWidth(),icon.getIconHeight(),icon.getImageObserver());33、}};34、jp.setLayout(null);35、jb1=newJButton(icon1);36、jb2=newJButton(icon3);37、jb3=newJButton(icon2);38、jlArray[0].setBounds(70,120,90,32);39、jb1.setBounds(365,110,130,60);40、jb2.setBounds(365,170,130,60);41、jlArray[1].setBounds(70,170,90,32);42、//将标签与按钮添加到JPanel容器中43、jp.add(jlArray[0]);44、jp.add(jlArray[1]);45、jp.add(jb1);46、jp.add(jb2);47、jb1.addActionListener(this);48、jb2.addActionListener(this);//为按钮注册动作事件监听器49、//添加修改密码的按钮实用文档文案大全50、jb3.setBounds(365,230,130,60);51、jp.add(jb3);52、jp.add(jtf);53、jtf.setBounds(140,120,180,30);//设置文本框位置54、jp.add(jpf);55、jpf.setBounds(140,170,180,30);//设置密码框位置56、jpf.setEchoChar('*');//密码显示字符形式57、jpf.addActionListener(this);//为密码框注册动作事件监听器58、this.setVisible(true);//设置窗体的可见性59、jpf.addActionListener(this);//为密码框注册动作事件监听器60、//设置用于显示登陆状态的标签大小位置,并将其添加进JPanel容器61、jlArray[2].setBounds(70,220,300,30);62、jp.add(jlArray[2]);63、this.setTitle(登陆);//设置窗体标题64、this.setBounds(450,200,500,318);//设置窗体的大小65、this.setResizable(false);//设置窗体不让用户调整大小66、this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);67、this.setVisible(true);//设置窗体的可见性68、this.add(jp);//将窗体添加到面板中69、jp.setBackground(Color.blue);70、}71、publicstaticvoidmain(String[]args){72、newlogin();//创建登陆窗体}73、}6、登录窗口功能的实现publicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstub//得到用户名与密码Stringuser=jtf.getText().trim();Stringpwd=String.valueOf(jpf.getPassword());//返回密码的字符串表示方式Stringsql=;if(e.getSource()==jtf){//事件源为文本框,切换焦点到密码框jpf.requestFocus();}elseif(e.getSource()==jb1||e.getSource()==jpf){//判断用户名和密码是否匹配查询数据库if(DButil.check(user,pwd)){//登陆成功MainFramemf=newMainFrame(jtf.getText());//主窗体this.dispose();}else{//登陆失败jlArray[2].setText(对不起,非法的用户名和密码);this.clear();}}实用文档文案大全elseif(e.getSource()==jb2){//事件源为注册按钮if(user.equals()||pwd.equals()){//如果注册的用户名为空或者密码为空jlArray[2].setText(用户名和密码都不得为空!!!);this.clear();//清空输入文本框}else{sql=selectuidfromuserwhereuid='+user+';if(DButil.isExist(sql)){//用户名已经存在jlArray[2].setText(对不起,用户名已存在!!!);this.clear();//清空输入文本框}else{sql=insertintouservalues('+user+','+pwd+');if(DButil.update(sql)0){//注册成功jlArray[2].setText(恭喜您!!!注册成功,请登陆);}}}}elseif(e.getSource()==jb3)//修改密码的监听{//判断是否已经输入用户名和密码if(user.equals()||pwd.equals()){jlArray[2].setText(修改密码先输入正确的用户名和密码!!!);this.clear();//清空输入文本框}//判断是否输入了正确的用户名和密码elseif(DButil.check(user,pwd)){//正确的用户名和密码Stringpassword=JOptionPane.showInputDialog(this,修改密码:,请输入新密码,JOptionPane.PLAIN_MESSAGE);//得到新的密码为空if(password==null||password.equals()){JOptionPane.showMessageDialog(this,密码不得为空!!!,错误,JOptionPane.WARNING_MESSAGE);}else{//密码不为空sql=updateusersetpwd='+password+'whereuid='+user+';//更新密码的SQLif(DButil.update(sql)0){//密码修改成功实用文档文案大全this.clear();//清空输入文本框jlArray[2].setText(恭喜您!!!密码修改成功,请用新密码登陆);}}}else{JOptionPane.showMessageDialog(this,用户名或者密码错误!!!,错误,JOptionPane.WARNING_MESSAGE);this.clear();//清空输入文本框}}}7、主窗体的搭建及功能packageFrame;importjavax.sw