用Java编写个人信息管理系统.docx
《用Java编写个人信息管理系统.docx》由会员分享,可在线阅读,更多相关《用Java编写个人信息管理系统.docx(124页珍藏版)》请在冰豆网上搜索。
用Java编写个人信息管理系统
个人信息管理系统
1、系统概述
个人信息助理工具能够运行在普通个人电脑上,为使用者提供日常信息管理功能的工具软件,使用者可以通过个人信息助理工具对日常工作/生活琐事、通讯簿和密码等方面进行更有效的管理。
2、可行性分析研究
从技术方面来讲要实现这样一个用户信息管理系统,目前可用的高级编程有JAVA语言、C#语言、C++语言等,其中任何一种语言都可胜任。
在此,我采用的是JAVA语言来编写。
从操作方面来讲,本系统规模不大,一个人就足以完成。
另外,本系统简单易上手,用户可以很快就能熟练操作。
从经济方面来看,本系统的开发成本不大。
但是随着当今社会信息化的程度不断提升、大数据时代的来临,每个人都有一大批的数据需要管理,因此这样一个简单、方便、实用的系统必能获得大量用户的认可,所以从经济方面来看也是可行的。
3、功能需求
该系统应具有以下功能:
A、检验用户合法身份,保障个人信息安全。
B、口令维护:
用户可以定期或不定期更改登录口令,提高系统安全性。
C、日常记事:
记录日常生活或工作事件,以免遗忘,并提高记录的查询、浏览、修改和删除等功能。
D、通讯簿:
记录朋友、亲属、同事等联系人的通信信息,以免遗忘,并提供记录的查询、浏览、修改和删除等管理功能。
E、:
密码备忘:
用户可以利用此系统来保存备忘一些重要密码,并提供新建、查询、修改、删除等功能。
F、主页:
无论用户当前处在哪个界面,只要点击主页按钮就回到系统主界面。
4、模块设计
A、系统模块
B、日常记事管理模块
该模块提供对个人日常生活、工作等事件的备忘功能,主要是提供对日常事件信息的录入、修改、删除和浏览/查询功能。
其中,记录的信息主要包括事件的日期、事件类别、事件标题和事件内容,日常记事管理模块的模块功能树如下:
C、通讯簿管理模块
该模块提供对联系人通信信息的管理功能,主要是提供对各类通信信息的录入、修改、删除和浏览/查询功能。
D、密码备忘管理模块
该模块提供用户一些密码信息的录入、录入结果的浏览、密码修改、密码信息的删除等功能
E、系统维护模块
该模块提供用户权限验证、口令维护和数据库维护功能,其中权限验证主要是通过检查用户输入口令来判断用户是否具有登录系统权限;口令维护提供修改用户登录口令功能,但需要用户输入旧口令;数据库维护提供备份和恢复数据库功能。
5、数据库设计
A、登陆用户信息表
B、日常记事表
C、通讯簿表
D、密码备忘表
6、系统效果图
A、登录界面
B、主界面
C、口令维护界面
D、日常记事界面
E通讯簿界面
F密码备忘界面
7、代码实现
A//Login.java
packageStudy;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjava.sql.DriverManager;
importjava.awt.*;
importjava.awt.event.KeyEvent;
importjavax.swing.ImageIcon;
importjavax.swing.JComponent;
importjavax.swing.JOptionPane;
importjava.sql.Connection;
/**
*
*@authorChenBen
*
*用来生成一个登陆窗口,包括用户名及相应密码
*链接sqlserver2008来确定用户名与密码的一一对应关系
*当用户名和密码不对应时提示登陆失败
*登陆成功时跳转至系统主界面
*/
publicclassLoginextendsjavax.swing.JFrame{
/**
*CreatesnewformLogin
*/
publicLogin(){
initComponents();
setResizable(true);
setTitle("用户登录");
ImageComponentcomponent=newImageComponent();//设置登录界面背景图像
jPanel1.add(component);
}
//生成登陆窗口
privatevoidinitComponents(){
jPanel1=newjavax.swing.JPanel();
UserName=newjavax.swing.JLabel();
Password=newjavax.swing.JLabel();
UserName_Field=newjavax.swing.JTextField();
Password_Field=newjavax.swing.JTextField();
LoginButton=newjavax.swing.JButton();
LoginButton.setMnemonic(KeyEvent.VK_ENTER);//设置快捷键为Alt+Enter
ExitButton=newjavax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
jPanel1.setName("");
UserName.setText("用户名:
");
Password.setText("密码:
");
LoginButton.setText("登录");
LoginButton.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
LoginButtonActionPerformed(evt);
}
});
ExitButton.setText("退出");
ExitButton.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
ExitButtonActionPerformed(evt);
}
});
javax.swing.GroupLayoutjPanel1Layout=newjavax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(91,91,91)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(Password)
.addGap(18,18,18)
.addComponent(Password_Field))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(UserName)
.addGap(18,18,18)
.addComponent(UserName_Field,javax.swing.GroupLayout.PREFERRED_SIZE,151,javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(114,114,114)
.addComponent(LoginButton)
.addGap(34,34,34)
.addComponent(ExitButton)))
.addContainerGap(88,Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(68,68,68)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(UserName)
.addComponent(UserName_Field,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(21,21,21)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Password)
.addComponent(Password_Field,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(46,46,46)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(LoginButton)
.addComponent(ExitButton))
.addContainerGap(95,Short.MAX_VALUE))
);
javax.swing.GroupLayoutlayout=newjavax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE)
);
pack();//调整此窗口的大小,以适合其子组件的首选大小和布局
}
//登陆按钮事件
privatevoidLoginButtonActionPerformed(java.awt.event.ActionEventevt){
Stringquerystring=null;
Statementstmt=null;
Connectionconnection=null;
ResultSetrst=null;
Stringname=null;
Stringpassword1=null;
StringPassrd=null;
try
{
//链接sqlserver2008
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("加载驱动成功!
");
Stringurl="jdbc:
sqlserver:
//localhost:
1433;databaseName=PIMSystem";
Stringuser="sa";
Stringpassword="xigua";
connection=DriverManager.getConnection(url,user,password);
stmt=connection.createStatement();
name=UserName_Field.getText();
password1=Password_Field.getText();
querystring="SELECT密码fromAccountwhere用户名='"+name+"'";
rst=stmt.executeQuery(querystring);
}
catch(Exceptione)
{
e.printStackTrace();
if(name.length()==0||password1.length()==0)
{
JOptionPane.showMessageDialog(null,"用户名或密码不能为空,请您输入用户名和密码!
");
}
}
try
{
while(rst.next())
{
Passrd=rst.getString("密码").trim();
}
}
catch(Exceptione)
{
e.printStackTrace();
}
if(password1.equals(Passrd)==false)
{
Password_Field.setText(null);
JOptionPane.showMessageDialog(null,"用户名或密码错误,请您重新输入!
");
}
if(password1.equals(Passrd))
{
System.out.print("密码正确\n");
this.dispose();
newMainFace();
}
}
//退出登录按钮
privatevoidExitButtonActionPerformed(java.awt.event.ActionEventevt){
System.exit(0);
}
publicstaticvoidmain(Stringargs[]){
try
{
for(javax.swing.UIManager.LookAndFeelInfoinfo:
javax.swing.UIManager.getInstalledLookAndFeels())
{
if("Nimbus".equals(info.getName()))
{
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
}
catch(ClassNotFoundExceptionex)
{
java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}
catch(InstantiationExceptionex)
{
java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}
catch(IllegalAccessExceptionex)
{
java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}
catch(javax.swing.UnsupportedLookAndFeelExceptionex)
{
java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}
java.awt.EventQueue.invokeLater(newRunnable()
{
publicvoidrun()
{
newLogin().setVisible(true);
}
});
}
//实例声明
privatejavax.swing.JButtonExitButton;
privatejavax.swing.JButtonLoginButton;
privatejavax.swing.JLabelPassword;
privatejavax.swing.JTextFieldPassword_Field;
privatejavax.swing.JLabelUserName;
privatejavax.swing.JTextFieldUserName_Field;
privatejavax.swing.JPaneljPanel1;
}
//加载背景图像
classImageComponentextendsJComponent
{
publicImageComponent()
{
icon=newImageIcon("src/Study/login.jpg");
inticonWidth=icon.getIconWidth();
inticonHeight=icon.getIconHeight();
setSize(iconWidth,iconHeight);
}
publicvoidpaintComponent(Graphicsg)
{
Imageimg=icon.getImage();
g.drawImage(img,0,0,this);
}
privateImageIconicon;
}
B//MainFace.java
packageStudy;
/**
*
*@authorChenBen
*
*生成系统主界面
*包含有口令维护、日常记事、通讯簿、密码备忘、退出系统
*当点击其中一个按钮时响应相应事件
*/
publicclassMainFaceextendsjavax.swing.JFrame{
/**
*CreatesnewformMainFace
*/
publicMainFace(){
initComponents();
setVisible(true);
setTitle("系统主界面");
setResizable(false);
}
//生成系统主界面
privatevoidinitComponents(){
jPanel1=newjavax.swing.JPanel();
PasswordMaintainButton=newjavax.swing.JButton();
DailyChronicleButton=newjavax.swing.JButton();
AddressBookButton=newjavax.swing.JButton();
PasswordBackupButton=newjavax.swing.JButton();
ExitSystemButton=newjavax.swing.JButton();
jPanel2=newjavax.swing.JPanel();
TextLabel=newjavax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
PasswordMaintainButton.setText("口令维护");
PasswordMaintainButton.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
PasswordMaintainButtonActionPerformed(evt);
}
});
DailyChronicleButton.setText("日常记事");