资源描述
个人信息管理系统与开发3
本科生毕业论文(设计)指导与评分手册
论文(设计)题目:学生个人信息管理系统的设计与开发
学生学号: 20122319284317
学生姓名: 王能辉
导师姓名、职称: 马思根 副教授
所属班级: 12级43班
所属学院: 商务学院
贵州财经大学教务处制
2016年 3月
目录
1 设计时间4
2 设计目的4
3设计任务4
4 设计内容4
4.1需求分析4
4.1.1问题描述4
4.1.2基本要求4
4.2总体设计5
4.2.1包的描述7
4.2.2类的描述8
4.2.3类之间的关系9
类MainTest继承JFrame。9
类jenter实现接口ActionListener。9
4.3 详细设计9
4.3.1类图13
4.3.2页面设计13
4.4 测试与分析13
4.5 程序代码15
5 总结与展望30
参考文献31
课程设计成绩评定32
1 设计时间
2015年11月13日——2016年4月19日
2 设计目的
就本着个人的兴趣爱,希望能利用java语言开发一款特别简单,实用,高效的软件来改善大学生个人信息管理和高效的利用大学时间,和不断的激励自己,找到自己的优势及兴趣爱好和合理的规划人生,实现个人价值的最大化。也是对我个人自学java语言后进行的一次较全面的综合练习。通过实践加深我对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高自己的应用能力
3设计任务
设计一个简单学生个人信息管理软件,该软件具有具有查询个人基本信息(查询成绩,考试情况,课表)在此基础上还增加了学期总结,个人中心(SWOT分析,计划,任务,人生规划),设置(设置个人基本信息)三项基本功能。
4 设计内容
4.1需求分析
根据调查,就目前很多大学生大学生活过得比较慵懒消沉,这对大学生来说无意于扼杀了他们的生命只是没有意识到吧了,既如果有这样一款软件,能让大学生的生活过得充实起来,相信很多人都会愿意用此软件。此软件主要运用了javaweb,mysql,eclipse等开发软件。
4.1.1问题描述
设计一个简单学生个人信息管理系统,主要有个人信息查询,个人中心,基本设置三项基本功能。
4.1.2基本要求
(1) 学生只需要下载此软件,用户名利用学号,用户密码也是学号即可登陆。
(2)登陆之后可以对秘码进行修改。
4.2总体设计
1、 自定义类说明:
(1)类名:MainTest
作用:主类,构建主界面
继承的父类:Jframe
主要实现接口:ActionListener
主要成员变量:
private JPanel ContentPane;
private JButton Insert = new JButton();
private JButton Select = new JButton();
private JButton Update = new JButton();
内部类:MainTest_actionPerformed,主页面的事件监听。
jenter_ actionPerformed,按钮的事件监听。
主要成员方法:
public MainTest()
public static void main(String[] args)
(2)类名:Insert
作用:实现添加个人信息
继承的父类:Jframe
主要实现接口:ActionListener
主要成员变量:
private JPanel ContentPane;
private JLabel jlab1 = new JLabel();
private JLabel jlab2 = new JLabel();
private JLabel jlab3 = new JLabel();
private JLabel jlab4 = new JLabel();
private JLabel jlab5 = new JLabel();
private JLabel jlab6= new JLabel();
private JLabel jlab7 = new JLabel();
private JLabel jlab8 = new JLabel();
private JTextField jtextfield1 = new JTextField();
private JTextField jtextfield2 = new JTextField();
private JTextField jtextfield3 = new JTextField();
private JTextField jtextfield4 = new JTextField();
private JTextField jtextfield5 = new JTextField();
private JComboBox jcombobox1 = new JComboBox();
private JComboBox jcombobox2 = new JComboBox();
private JTextArea jtextarea = new JTextArea();
private JButton sure = new JButton();
内部类:sure_actionperformed,按钮的事件监听,实现对数据的插入。
主要成员方法:public Insert();
(3)类名:Update
作用:对个人信息进行修改。
继承的父类:Jframe
主要实现接口:ActionListener
主要成员变量:
private JPanel ContentPane;
private JLabel jlab1 = new JLabel();
private JLabel jlab2 = new JLabel();
private JLabel jlab3 = new JLabel();
private JLabel jlab4 = new JLabel();
private JLabel jlab5 = new JLabel();
private JTextField jtextfield1 = new JTextField();
private JTextField jtextfield2 = new JTextField();
private JTextField jtextfield3 = new JTextField();
private JTextField jtextfield4 = new JTextField();
private JButton sure = new JButton();
private JButton upda = new JButton();
主要成员方法:
public Update()
public void actionPerformed(ActionEvent e)
(4)类名:Select
作用:查询学生个人信息
继承的父类:Jframe
主要实现接口:ActionListener
主要成员变量:
private JTextArea taInfo=new JTextArea();
private JPanel panel=new JPanel();
private JTextField jtextfield1=new JTextField();
private JButton jbutton=new JButton("查询");
private JLabel jlabel=new JLabel("学号");
主要成员方法:
public Select()
public void actionPerformed(ActionEvent e)
2、主程序流程:
(1)界面设计
(2)j d b c
图 4-2-1 主流程图
4.2.1包的描述
import java.awt.BorderLayout;边界布局勾画出一个容器,其组成部分的安排和调整以适应在五个区域:北,南,东,西,和中心。
import java.awt.Color;颜色类是用于封装在默认成色彩空间的颜色或颜色任意颜色空间所确定的色彩。
import java.awt.Rectangle;一个矩形指定地区在坐标空间是封闭的矩形对象的左上点(十,年)在空间中的坐标,其宽度和高度。
import java.awt.event.ActionEvent;事件一个接口,知道如何调度自己。
import java.awt.event.ActionListener;监听器接口接收动作事件。类的感兴趣的事件处理行动实现此接口的对象,并创建的类是一个注册的组件,使用组件的addactionlistener方法。行动时,事件发生时,该对象的actionperformed调用方法。
import javax.swing.JButton;实施“推”按钮。请参阅The Java Tutorial中的信息和使用按钮的例子如何使用按钮,复选框和单选按钮。
import javax.swing.JComboBox;实施 - 一个复选框可以选择或取消的项目,并显示其状态的用户。按照惯例,任何一组号码复选框可以选择。请参阅如何使用Java教程使用复选框的例子和信息按钮,复选框和单选按钮。
import javax.swing.JFrame;java.awt.Frame的扩展版本,增加了JFC / Swing组件架构的支持。你可以找到有关节如何使框架,使用Java教程JFrame的面向任务的文档。
import javax.swing.JLabel;一个很短的文本字符串或图像的显示区域,或两者兼而有之。一个标签不输入事件作出反应。因此,它不能获得键盘焦点。然而,标签可以显示附近的一个组成部分,有一个键盘的替代品,但不能显示它的方便的键盘替代。
import javax.swing.JPanel;JPanel的是一个通用的轻量级容器。对于JPanel的任务为导向的文档和例子,请参阅如何使用面板,Java教程的一个部分。
import javax.swing.JTextArea;一个JTextArea是一个多行的区域,显示纯文本。它的目的是成为一个轻量级组件,提供与java.awt.TextArea类源代码的兼容性,它可以合理地这样做。你可以找到在The Java Tutorial中使用的文本组件,部分使用所有文本组件的信息和例子。
import javax.swing.JTextField;JTextField是一个轻量级的组件,它允许在一个单行文本编辑。对于使用文本字段的信息和例子,请参阅如何使用Java教程的文本字段。
4.2.2类的描述
JButton:实施“推”按钮。请参阅The Java Tutorial中的信息和使用按钮的例子如何使用按钮,复选框和单选按钮。
JLabel:一个很短的文本字符串或图像的显示区域,或两者兼而有之。一个标签不输入事件作出反应。因此,它不能获得键盘焦点。然而,标签可以显示附近的一个组成部分,有一个键盘的替代品,但不能显示它的方便的键盘替代。
JTextField:是一个轻量级的组件,它允许在一个单行文本编辑。对于使用文本字段的信息和例子,请参阅如何使用Java教程的文本字段。
JComboBox:相结合的一个按钮或可编辑字段和一个下拉列表组件。用户可以选择从下拉列表中,出现在用户的请求值。如果您编辑的组合框,组合框包括一个可编辑的字段到,用户可以键入一个值。
Connection:与特定的数据库连接(会话)。执行SQL语句和内连接的情况下返回的结果。 Statement:一个Statement对象代表一种原始的语句在一个单一的方法应用到一个目标,一组参数 - “a.setFoo(二)”。
ResultSet:一个代表,它通常通过执行查询数据库的语句生成一个数据库结果集的数据表。
包。
4.2.3类之间的关系
类MainTest继承JFrame。
类jenter实现接口ActionListener。
类MainText实现接口ActionListener。
类Insert继承JFrame。
类Select继承JFrame实现接口ActionListener。
类Update继承JFrame实现接口ActionListener。
4.3 详细设计
1、各方法的实现:
与数据库的连接:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:学生管理";
Connection con=DriverManager.getConnection(url);
Statement stmt=con.createStatement();
MainTest类中对按钮事件监听的实现:
class MainTest_actionPerformed implements ActionListener
{
MainTest adapte ;
MainTest_actionPerformed(MainTest adapte)
{
this.adapte = adapte;
}
public void actionPerformed(ActionEvent e)
{
/*调用窗口程序*/
if(e.getSource()==adapte.Insert)
{
Insert insert = new Insert();
}
else if(e.getSource()==adapte.Update)
{
Update update = new Update();
}
else if(e.getSource()==adapte.Select)
{
Select select = new Select();
}
}
}
Insert类中添加个人信息的具体实现:
public void actionPerformed(ActionEvent e)
{
String SQL="insert into student(学号,姓名,性别,生日,身份证号,专业,班级,简介) values('"+jtextfield1.getText()+"','"+jtextfield2.getText()+"', '"+jcombobox1.getSelectedItem()+"','"+jtextfield3.getText()+"', '"+jtextfield5.getText()+"','"+jcombobox2.getSelectedItem()+"',
'"+jtextfield4.getText()+"','"+jtextarea.getText()+"')";
ResultSet rs=stmt.executeQuery(SQL);
}
}
Update类中关于更新学生信息方法的实现:
if(e.getSource()==upda)
{
String SQL="UPDATE student SET 姓名='"+jtextfield2.getText()+"',
性别='"+jtextfield3.getText()+"',
专业='"+jtextfield4.getText()+"'
WHERE 学号='"+jtextfield1.getText()+"'";
ResultSet rs=stmt.executeQuery(SQL);
rs.close();
stmt.close();
con.close();
}
Select类中对查询个人信息的实现:
public void actionPerformed(ActionEvent e)
{
String SQL="SELECT * FROM student
WHERE 学号='"+jtextfield1.getText()+"'";
ResultSet rs=stmt.executeQuery(SQL);
while(rs.next())
{
taInfo.setText(rs.getString("学号")+"\n");
taInfo.append(rs.getString("姓名")+"\n");
taInfo.append(rs.getString("性别")+"\n");
taInfo.append(rs.getString("生日")+"\n");
taInfo.append(rs.getString("身份证号")+"\n");
taInfo.append(rs.getString("专业")+"\n");
taInfo.append(rs.getString("班级")+"\n");
taInfo.append(rs.getString("简介")+"\n");
}
}
2、数据库表设计:
使用mys q l
4.3.1类图
JFrame
MainTest
Select
UpDate
Insert
ActionListener
jenter
Select
Update
MainTest
类继承
接口实现
图 4-3-1 类关系图
4.3.2页面设计
添加学生信息
学生管理系统
修改学生信息
查询学生信息
图 4-3-2 主页面设计图
4.4 测试与分析
4.5 程序代码
//:object/MainTest.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* @author LiuMingyan
*/
public class MainTest extends JFrame{
/**************声明变量************/
private JPanel ContentPane;
private JButton Insert = new JButton();
private JButton Select = new JButton();
private JButton Update = new JButton();
public MainTest()
{
ContentPane = (JPanel)this.getContentPane();
ContentPane.setLayout(null);
this.setTitle("学生管理系统");
this.setBounds(100,200,500,300);
ContentPane.setBackground(Color.WHITE);
/*********3个按钮的设置********/
Insert.setText("添加学生信息");
Insert.setVisible(false);
Insert.setBounds(new Rectangle(70, 50, 120, 33));
Insert.addActionListener(new MainTest_actionPerformed(this));//加事件监听
Insert.setForeground(Color.white);
Insert.setBackground(Color.black);
Update.setText("修改学生信息");
Update.setVisible(false);
Update.setBounds(new Rectangle(210, 50,120, 33));
Update.addActionListener(new MainTest_actionPerformed(this));//加事件监听
Update.setForeground(Color.white);
Update.setBackground(Color.black);
Select.setText("查询学生信息");
Select.setVisible(false);
Select.setBounds(new Rectangle(340, 50, 120, 33));
Select.addActionListener(new MainTest_actionPerformed(this));//加事件监听
Select.setForeground(Color.white);
Select.setBackground(Color.black);
/*******把控件添加到面板中去*******/
ContentPane.add(Insert);
ContentPane.add(Update);
ContentPane.add(Select);
this.setVisible(true);
Insert.setVisible(true);
Update.setVisible(true);
Select.setVisible(true);
}
/**********设置动作按钮的监听事件***********/
class jenter_actionPerformed implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
//设置3个按钮的可见性
Insert.setVisible(true);
Update.setVisible(true);
Select.setVisible(true);
}
}
/***********主窗口的监听事件**************************/
class MainTest_actionPerformed implements ActionListener
{
MainTest adapte ;
MainTest_actionPerformed(MainTest adapte)
{
this.adapte = adapte;
}
public void actionPerformed(ActionEvent e)
{
/*调用窗口程序*/
if(e.getSource()==adapte.Insert)
{
Insert insert = new Insert();
}
else if(e.getSource()==adapte.Update)
{
Update update = new Update();
}
else if(e.getSource()==adapte.Select)
{
Select select = new Select();
}
}
}
public static void main(String[] args) {
MainTest maintest=new MainTest ();
// TODO 自动生成方法存根
}
}
//: object/Insert.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
/**
* @author LiuMingyan
*/
public class Insert extends JFrame {
/**************声明变量************/
private JPanel ContentPane;
private JLabel jlab1 = new JLabel();
private JLabel jlab2 = new JLabel();
private JLabel jlab3 = new JLabel();
private JLabel jlab4 = new JLabel();
private JLabel jlab5 = new JLabel();
private JLabel jlab6= new JLabel();
private JLabel jlab7 = new JLabel();
private JLabel jlab8 = new JLabel();
private JTextField jtextfield1 = new JTextField();
private JTextField jtextfield2 = new JTextField();
private JTextField jtextfield3 = new JTextField();
private JTextField jtextfield4 = new JTextField();
private JTextField jtextfield5 = new JTextField();
private JComboBox jcombobox1 = new JComboBox();
private JComboBox jcombobox2 = new JComboBox();
private JTextArea jtextarea = new JTextArea();
private JButton sure = new JButton();
public Insert()
{
this.setBounds(320,160,450,450);
this.setTitle("添加学生信息");//窗体标题
ContentPane =(JPanel)this.getContentPane();//将容器转化为JPanel
ContentPane.setLayout(null);//设置可更改性
ContentPane.setBackground(Color.black);
jlab1.setText("学号");
jlab1.setBounds(new Rectangle(30, 11, 51, 33));
jlab1.setForeground(Color.white);
jlab2.setText("姓名");
jlab2.setBounds(new Rectangle(162, 11, 28, 33));
jlab2.setForeground(Color.white);
jlab3.setText("性别");
jlab3.setBounds(new Rectangle(241, 11, 28, 33));
jlab3.setForeground(Color.white);
jlab4.setText("出生日期");
jlab4.setBounds(new Rectangle(31, 53, 55, 33));
jlab4.setForeground(Color.white);
jlab5.setText("身份证号");
jlab5.setBounds(new Rectangle(163, 94, 55, 33));
jlab5.setForeground(Color.white);
jlab6.setText("班级");
jlab6.setBounds(new Rectangle(163, 53, 26, 33));
jlab6.setForeground(Color.white);
jlab7.setText("专业");
jlab7.setBounds(new Rectangle(30, 94, 50, 33));
jlab7.setForeground(Color.white);
jlab8.setText("自我介绍");
jlab8.setBounds(new Rectangle(30, 120, 66, 33));
jlab8.setForeground(Color.white);
jtextfield1.setText("");//学号
jtextfield1.setBounds(new Rectangle(86, 16, 74, 22));
jtextfield2.setText("");//姓名
jtextfield2.setBounds(new Rectangle(192, 16, 44, 22));
jtextfield3.setText("");//出生日期
jtextfield3.setBounds(new Rectangle(86, 58, 74, 22));
jtextfield4.setText("");//班级
jtextfield4.setBounds(new Rectangle(191, 58, 44, 22));
jtextfield5.setText("");//身份证号
jtextfield5.setBounds(new Rectangle(230, 98, 158, 22));
jcombobox1.setBounds(new Rectangle(275, 15, 50, 25));
jcombobox1.addItem("男");
jcombobox1.addItem("女");
jcombobox1.setForeground(Color.black);
jcombobox1.setBackground(Color.white);
jcombobox2.setBounds(new Rectangle(86, 98, 75, 25));
jcombobox2.addItem("软件");
jcombobox2.addItem("工商");
jcombobox2.addItem("电信");
jcombobox2.addItem("电控");
jcombobox2.addItem("营销");
jcombobox2.addItem("安全");
jcombobox2.setForeground(Color.black);
jcombobox2.setBackground(Color.white);
jtextarea.setText("");
jtextarea.setBounds(new Rectangle(84, 139, 285, 92));
sure.setText("添加");//设置命令按钮
sure.setBounds(new Rectangle(156, 244, 89, 22));
sure.addActionListener(new sure_actionperformed());//设置动作监听
ContentPane.add(jlab1);
ContentPane.add(jlab2);
ContentPane.add(jlab3);
ContentPane.add(jlab4);
ContentPane.add(jlab5);
ContentPane.add(jlab6);
ContentPane.add(jlab7);
ContentPane.add(jlab8);
ContentPane.add(jtextfield1);
ContentPane.add(jtextfield2);
ContentPane.add(jtextfield3);
ContentPane.add(jtextfield4);
ContentPane.add(jtextfield5);
ContentPane.add(jcombobox1);
ContentPane.add(jcombobox2);
ContentPane.add(jtextarea);
ContentPane.add(sure);
this.setVisible(true);//设置可见性
}
class sure_actionperformed implements ActionListener //设置动作按钮的监听
{
public void actionPerformed(ActionEvent e) //创建方法
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:学生管理";
Connection con=DriverManager.getConnection(url);
Statement stmt=con.createStatement();
String SQL="insert into student(学号,姓名,性别,生日,身份证号,专业,班级,简介)
展开阅读全文