版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录1项目背景12用例图13类图54界面设计64.1系统界面64.2功能界面65数据库设计96源程序106.1Student类106.2StudentJFrame类126.3AddJFrame类156.4 QueryJFrame类216.5CancelJFrame类256.6ModifyJFrame类286.7DaoFactory类356.8StudentDao类366.9 StudentDaoJDBCImpl类366.10MsSqlHelper类397总结401项目背景本设计的目的是综合面向对象程序设计课程中所学到的知识来开发一个小型的Java应用程序选修课管理系统。本项目是选修课管理系统
2、的一个子模块,主要功能是对学生的信息进行管理,如:插入一条学生的信息、删除学生信息、修改学生信息、查询学生信息。本项目使用Java Swing技术,数据库采用SQLServer 2000,本项目的开发和测试都是在Windows平台下进行的,但由于Java的跨平台性,本系的移植性很强,也适用于其它主流的操作系统。本项目的开发工具是My Eclipse,连接数据库SQLServer2000来完成一个小的学生选修课管理系统中的学生信息管理模块。2用例图图2.1用例图功能级用例描述添加学生信息描述项说明用例名称添加学生信息用例简述管理员添加学生的基本信息用例图前置条件管理员已成功登入后置条件学生信息被
3、添加基本操作流程1输入“学生姓名”,“学生学号”,“学生年龄”,选择“学生性别”2点击“提交”按钮3 “成功添加”点击“确定”或关闭窗口则返回主页面 替代流程无功能级用例描述查询学生信息描述项说明用例名称查询学生信息用例简述管理员查询学生的基本信息用例图前置条件管理员已成功添加学生信息并成功登入查询页面后置条件学生信息被查询基本操作流程1输入需查找的“学生学号” 2点击“确定”按钮3 点击“返回”或关闭窗口则返回主页面 替代流程无功能级用例描述修改学生信息描述项说明用例名称修改学生信息用例简述管理员修改学生的基本信息用例图前置条件管理员已成功查询所需修改学生信息后置条件学生信息被修改基本操作流
4、程1输入需修改的“学生学号” 2点击“修改”按钮3 点击“返回”或关闭窗口则返回主页面替代流程无功能级用例描述删除学生信息描述项说明用例名称删除学生信息用例简述管理员删除学生的基本信息用例图前置条件管理员已成功查询所需修改学生信息后置条件学生信息被删除基本操作流程1输入需删除的“学生学号” 2点击“删除”按钮3 “删除成功”点击“确定”或关闭窗口则返回主页面替代流程无3类图图3.1类图4界面设计4.1系统界面进入学生信息管理系统,将会看到以下的窗口,如4.1所示:图4.1主界面4.2功能界面在学生信息管理系统里面可以实现插入一条学生的信息、删除学生信息、修改学生信息、查询学生信息的功能。插入功
5、能,能新插入一条学生信息,包括学生的学号和姓名,性别和年龄,如下图4.2图4.2插入一条学生信息修改功能:能修改一个学生的姓名。如下图4.3图4.3修改一个学生信息删除功能:能根据一个学生的学号来删除一个学生的信息。如下图4.6图4.4删除一个学生信息查询功能:能通过一个学生的学号来查询某一个学生,如下图4.5图4.5查询一个学生信息删除学生信息后的数据库的一个截图如下4.6:图4.6 数据库5数据库设计6源程序6.1Student类/信管071郑胜楠package domain;public class Student /student类用五个实例变量来描述private Integer s
6、tudentId;private Intege studentNo;private String studentName;private String studentSex;private int studentAge;/建立构造器, 因需studentId自动生成,所以写三个构造器public Student() super();public Student(Integer studentId, Intege studentNo, String studentName,String studentSex ,int studentAge) super(); this.studentId = s
7、tudentId;this.studentNo = studentNo;this.studentName = studentName;this.studentSex = studentSex;this.studentAge = studentAge; public Student(Intege studentNo, String studentName, String studentSex,int studentAge) super();this.studentNo = studentNo;this.studentName = studentName;this.studentSex = stu
8、dentSex;this.studentAge = studentAge;public String getStudentSex() return studentSex;public void setStudentSex(String studentSex) this.studentSex = studentSex;public Integer getStudentId() return studentId;public void setStudentId(Integer studentId) this.studentId = studentId;public String getStuden
9、tNo() return studentNo;public void setStudentNo(Intege studentNo) this.studentNo = studentNo;public String getStudentName() return studentName;public void setStudentName(String studentName) this.studentName = studentName;public int getStudentAge() return studentAge;public void setStudentAge(int stud
10、entAge) this.studentAge = studentAge;Overridepublic String toString() / TODO Auto-generated method stubreturn + this.studentId + , + this.studentNo + ,+ this.studentName + , + this.studentSex+,+this.studentAge + ;6.2 StudentJFrame类第一个界面(主界面)的建立/信管071郑胜楠package jframe;import java.awt.BorderLayout;imp
11、ort java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.WindowConstants;import javax.swing.SwingUtilities;public class StudentJFrame extends javax.swing.J
12、Frame private JPanel titlePanel;private JLabel titleLabel;private JButton jButton1;private JButton jButton4;private JButton jButton3;private JButton jButton2;private JPanel mainPanel;public static void main(String args) SwingUtilities.invokeLater(new Runnable() public void run() StudentJFrame inst =
13、 new StudentJFrame();inst.setLocationRelativeTo(null);inst.setVisible(true););public StudentJFrame() super(学生选修课管理系统);initGUI();private void initGUI() try setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);getContentPane().setForeground(new java.awt.Color(0,0,255);/标题PaneltitlePanel = new JP
14、anel();getContentPane().add(titlePanel, BorderLayout.NORTH);titlePanel.setPreferredSize(new java.awt.Dimension(384, 91);titleLabel = new JLabel();titlePanel.add(titleLabel);titleLabel.setText(u6b22u8fceu8fdbu5165u5b66u751fu9009u4feeu8bfeu7ba1u7406u7cfbu7edf);titleLabel.setPreferredSize(new java.awt.
15、Dimension(279, 68);titleLabel.setFont(new java.awt.Font(微软雅黑,1,18);titleLabel.setForeground(new java.awt.Color(0,0,255);/选择PanelmainPanel = new JPanel();getContentPane().add(mainPanel, BorderLayout.CENTER);mainPanel.setPreferredSize(new java.awt.Dimension(384, 173);/“添加”按钮jButton1 = new JButton();ma
16、inPanel.add(jButton1);jButton1.setText(u6dfbu52a0);jButton1.setPreferredSize(new java.awt.Dimension(83, 36);jButton1.setFont(new java.awt.Font(微软雅黑,1,14);jButton1.setForeground(new java.awt.Color(0,255,0);jButton1.setBackground(new java.awt.Color(0,128,128);/注册“添加”按钮的监听器,进行两个界面间的转换jButton1.addAction
17、Listener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) System.out.println(jButton1.actionPerformed, event=+evt);/TODO add your code for jButton1.actionPerformed AddJFrame add=new AddJFrame();StudentJFrame.this.setVisible(false););/“查找”按钮jButton2 = ne
18、w JButton();mainPanel.add(jButton2);jButton2.setText(u67e5u627e);jButton2.setBackground(new java.awt.Color(0,128,128);jButton2.setFont(new java.awt.Font(微软雅黑,1,14);jButton2.setForeground(new java.awt.Color(0,255,0);jButton2.setPreferredSize(new java.awt.Dimension(83, 37);/注册“查询”按钮的监听器jButton2.addAct
19、ionListener(new ActionListener() public void actionPerformed(ActionEvent evt) System.out.println(jButton2.actionPerformed, event=+evt);/TODO add your code for jButton2.actionPerformedQueryJFrame query=new QueryJFrame();StudentJFrame.this.setVisible(false););/“修改”按钮jButton3 = new JButton();mainPanel.
20、add(jButton3);jButton3.setText(u4feeu6539);jButton3.setBackground(new java.awt.Color(0,128,128);jButton3.setFont(new java.awt.Font(微软雅黑,1,14);jButton3.setForeground(new java.awt.Color(255,255,0);jButton3.setPreferredSize(new java.awt.Dimension(83, 36);jButton3.addActionListener(new ActionListener()
21、public void actionPerformed(ActionEvent evt) System.out.println(jButton2.actionPerformed, event=+evt);/TODO add your code for jButton2.actionPerformedModifyJFrame mj=new ModifyJFrame();mj.setVisible(true);StudentJFrame.this.setVisible(false););/“删除”按钮jButton4 = new JButton();mainPanel.add(jButton4);
22、jButton4.setText(u5220u9664);jButton4.setBackground(new java.awt.Color(0,128,128);jButton4.setFont(new java.awt.Font(微软雅黑,1,14);jButton4.setForeground(new java.awt.Color(255,255,0);jButton4.setPreferredSize(new java.awt.Dimension(83, 37);jButton4.addActionListener(new ActionListener() public void ac
23、tionPerformed(ActionEvent evt) System.out.println(jButton4.actionPerformed, event=+evt);/TODO add your code for jButton4.actionPerformedCancelJFrame cjf=new CancelJFrame();StudentJFrame.this.setVisible(false);cjf.setVisible(true););pack();setSize(400, 300); catch (Exception e) e.printStackTrace();6.
24、3 AddJFrame类用于添加学生/信管071郑胜楠package jframe;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import javax.swing.ButtonGroup;import javax.swing.DefaultComboBoxModel;import javax.swing.J
25、Button;import javax.swing.JLabel;import javax.swing.JList;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JRadioButton;import javax.swing.JSpinner;import javax.swing.JTextField;import javax.swing.ListModel;import javax.swing.SpinnerListModel;import javax.swing.WindowConst
26、ants;import javax.swing.SwingUtilities;import dao.DaoFactory;import domain.Student;public class AddJFrame extends javax.swing.JFrame implements ItemListener private JPanel titlePanel1;private JLabel jLabel2;private JButton fqButton1;private JButton tjButton1;private JLabel titleLabel1;private JTextF
27、ield jTextField1;private JLabel sexLabel1;private JLabel noLabel1;private JTextField noTextField1;private JTextField nameTextField1;private JLabel nameLabel1;private JPanel southPanel1;private JPanel mainPanel1;private JPanel eastPanel1;private JPanel westPanel1;private JRadioButton manRadioButton1;
28、private JRadioButton womenRadioButton1;private JLabel kongLabel3;private String sex;public static void main(String args) SwingUtilities.invokeLater(new Runnable() public void run() AddJFrame inst = new AddJFrame();inst.setLocationRelativeTo(null);inst.setVisible(true););public AddJFrame() super(添加学生
29、信息);initGUI();this.setVisible(true);private void initGUI() try setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);titlePanel1 = new JPanel();getContentPane().add(titlePanel1, BorderLayout.NORTH);titlePanel1.setPreferredSize(new java.awt.Dimension(384, 65);titleLabel1 = new JLabel();titlePane
30、l1.add(titleLabel1);titleLabel1.setText(u8bf7u8f93u5165u5b66u751fu4fe1u606f);titleLabel1.setPreferredSize(new java.awt.Dimension(124, 34);titleLabel1.setFont(new java.awt.Font(微软雅黑,0,16);/东,西两块空panel,美观作用westPanel1 = new JPanel();getContentPane().add(westPanel1, BorderLayout.WEST);westPanel1.setPref
31、erredSize(new java.awt.Dimension(72, 211);eastPanel1 = new JPanel();getContentPane().add(eastPanel1, BorderLayout.EAST);eastPanel1.setPreferredSize(new java.awt.Dimension(89, 169);southPanel1 = new JPanel();getContentPane().add(southPanel1, BorderLayout.SOUTH);southPanel1.setPreferredSize(new java.a
32、wt.Dimension(384, 70);/提交按钮tjButton1 = new JButton();southPanel1.add(tjButton1);tjButton1.setText(u63d0u4ea4);tjButton1.setPreferredSize(new java.awt.Dimension(76, 27);tjButton1.setFont(new java.awt.Font(微软雅黑,1,14);/注册“提交”按钮监听器tjButton1.addActionListener(new ActionListener() public void actionPerfor
33、med(ActionEvent evt) System.out.println(tjButton1.actionPerformed, event=+evt);/TODO add your code for tjButton1.actionPerformed/把添加的信息传给DaoFactory中getStudentDao里的addStudent方法中的相应参数Student student = new Student();student.setStudentName(nameTextField1.getText(); student.setStudentNo(Integer.parseInt(
34、noTextField1.getText();student.setStudentSex(sex);student.setStudentAge(Integer.parseInt(jTextField1.getText(); System.out.println(*+nameTextField1.getText(); /起测试作用try DaoFactory.getInstance().getStudentDao().addStudent(student); catch (Exception e) e.printStackTrace();/成功添加提示JOptionPane.showMessag
35、eDialog(null, 成功添加,JOptionPane.INFORMATION_MESSAGE););/空label用来调提交和放弃按钮的距离,美观作用kongLabel3 = new JLabel();southPanel1.add(kongLabel3);kongLabel3.setPreferredSize(new java.awt.Dimension(22, 9);/放弃按钮fqButton1 = new JButton();southPanel1.add(fqButton1);fqButton1.setText(u653eu5f03);fqButton1.setFont(new
36、 java.awt.Font(微软雅黑,1,14);fqButton1.setPreferredSize(new java.awt.Dimension(75, 27);/注册“放弃”按钮的监听器,重回主界面fqButton1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) System.out.println(fqButton1.actionPerformed, event=+evt);/TODO add your code for fqButton1.actionPerfo
37、rmedStudentJFrame sjf=new StudentJFrame();sjf.setVisible(true);AddJFrame.this.setVisible(false););mainPanel1 = new JPanel();getContentPane().add(mainPanel1, BorderLayout.CENTER);ButtonGroup bgp=new ButtonGroup();mainPanel1.setPreferredSize(new java.awt.Dimension(235, 170);/姓名标签和文本框nameLabel1 = new J
38、Label();mainPanel1.add(nameLabel1);nameLabel1.setText(u59d3u540d);nameLabel1.setPreferredSize(new java.awt.Dimension(46, 38);nameLabel1.setFont(new java.awt.Font(微软雅黑,0,14);nameTextField1 = new JTextField();mainPanel1.add(nameTextField1);nameTextField1.setPreferredSize(new java.awt.Dimension(132, 34
39、);/学号标签和文本框noLabel1 = new JLabel();mainPanel1.add(noLabel1);noLabel1.setText(u5b66u53f7);noLabel1.setFont(new java.awt.Font(微软雅黑,0,14);noLabel1.setPreferredSize(new java.awt.Dimension(46, 19);noTextField1 = new JTextField();mainPanel1.add(noTextField1);noTextField1.setPreferredSize(new java.awt.Dime
40、nsion(132, 31);/ 性别标签sexLabel1 = new JLabel();mainPanel1.add(sexLabel1);sexLabel1.setText(u6027u522b);sexLabel1.setFont(new java.awt.Font(微软雅黑,0,14);sexLabel1.setPreferredSize(new java.awt.Dimension(50, 22);/”男“,”女“单选框的设置manRadioButton1 = new JRadioButton();mainPanel1.add(manRadioButton1);bgp.add(ma
41、nRadioButton1); /把单选框加到ButtonGroup中manRadioButton1.setText(u7537);manRadioButton1.setPreferredSize(new java.awt.Dimension(57, 23);manRadioButton1.addItemListener(this);womenRadioButton1 = new JRadioButton();mainPanel1.add(womenRadioButton1);bgp.add(womenRadioButton1); /把单选框加到ButtonGroup中womenRadioBu
42、tton1.setText(u5973); womenRadioButton1.setPreferredSize(new java.awt.Dimension(68, 22);womenRadioButton1.addItemListener(this);/年龄标签和文本框jLabel2 = new JLabel();mainPanel1.add(jLabel2);jLabel2.setText(u5e74u9f84);jLabel2.setFont(new java.awt.Font(微软雅黑,0,14);jLabel2.setPreferredSize(new java.awt.Dimen
43、sion(46, 22);jTextField1 = new JTextField();mainPanel1.add(jTextField1);jTextField1.setPreferredSize(new java.awt.Dimension(132, 31);pack();pack(); catch (Exception e) e.printStackTrace(); /设置单选框所选内容以备“性别”的监听器把内容返回给数据库public void itemStateChanged(ItemEvent e) / TODO Auto-generated method stubif(manR
44、adioButton1.isSelected()sex=男; if(womenRadioButton1.isSelected()sex=女; 6.4 QueryJFrame 类用于查询学生package jframe;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax
45、.swing.JSpinner;import javax.swing.JTextField;import javax.swing.SpinnerListModel;import javax.swing.WindowConstants;import javax.swing.SwingUtilities;import dao.DaoFactory;import domain.Student;public class QueryJFrame extends javax.swing.JFrame private JPanel titlePanel2;private JButton qdButton2;
46、private JTextField noTextField2;private JLabel ageLabel2;private JTextField ageTextField2;private JTextField sexTextField2;private JButton bacdButton2;private JPanel backPanel2;private JLabel sexLabel2;private JTextField nameTextField2;private JLabel nameLabel2;private JLabel queryLabel2;private JPa
47、nel mainPanel2;private JLabel queryLabel;/* Auto-generated main method to display this JFrame*/public static void main(String args) SwingUtilities.invokeLater(new Runnable() public void run() QueryJFrame inst = new QueryJFrame();inst.setLocationRelativeTo(null);inst.setVisible(true););public QueryJFrame() super(查找);initGUI();this.setVisible(true);private void initGUI() try setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);/标题块,提示titlePanel2 = new JPanel();getContentPane().add(titlePanel2, BorderLayout.NORTH);titlePanel2.setPreferredSize(new java.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国反渗透膜行业十三五需求预测及投资战略分析报告
- 2024年惊蛰节气祝福语文案万物复苏惊蛰快乐
- 2024-2030年中国冶金矿山阀门行业供需趋势及投资战略分析报告版
- 2024-2030年中国农业物流行业前景展望及投资运营模式分析报告
- 2024-2030年中国内容分发网络(CDN)行业需求预测竞争战略分析报告
- 2023年云南省中国海洋大学选调考试真题
- 2024年国际石油勘探与开采合作合同
- 2023年杭州市富阳区招聘医卫类专业考试真题
- 2023年北京市公务员招考考试真题
- 2024产品设计进度保障协议
- 2023年中考物理试题汇编全集(包含答案)
- 高考英语创设语境记忆3500词汇(短文语境、配套练习)05篇
- 转体梁转体施工工法
- YY/T 1833.3-2022人工智能医疗器械质量要求和评价第3部分:数据标注通用要求
- 生物体中结构色
- 博物馆教育资源与当前语文课程融合的探究
- 防范和惩治统计造假、弄虚作假等违法违规行为的政策解读(统计培训课件)
- 地源热泵监理细则
- 人工智能及其应用课件
- 设备部-工作总结及-计划-课件
- CreloxPCRISPRCas技术和病毒载体在课件
评论
0/150
提交评论