Java课程设计报告学生家教管理系统设计与实现.docx
- 文档编号:10848155
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:58
- 大小:615.06KB
Java课程设计报告学生家教管理系统设计与实现.docx
《Java课程设计报告学生家教管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《Java课程设计报告学生家教管理系统设计与实现.docx(58页珍藏版)》请在冰豆网上搜索。
Java课程设计报告学生家教管理系统设计与实现
Java课程设计报告
学校:
大连民族学院
学院:
理学院
专业:
信息与计算科学
题目:
学生家教管理系统设计与实现
姓名:
黄**(组长)信息091班
茹*信息092班
段**信息092班
完成时间:
2012年4月24
2.5数据库模型································································6
2.6数据库表格·································································7
3.1界面组成部分······························································11
3.2学生家教属性的封装与构造方法···············································30
3.3Jdbc的详细结构及数据库语言················································36
3.4异常处理··································································49
学生家教管理系统
摘要:
该报告中的程序是使用Java程序编写并且通过JDBC连接mysql数据库,能够进行输入输出家教信息操作将家教的各种信息存入数据和在数据库中删除,并具有家教查询、添加、替换、注销、记录家教缺勤和计算薪水等功能,不同之处是本程序能够家教的的各项情况进行统计。
该程序主要用到了Javaswing和事件监听等。
本程序分为三大步份(组长)黄兴雷负责需求分析及JM包中针对界面的制作,茹霞同学负责Jdbc包的制作,段文梅同学负责Worker包学生家教信息的私有封装及数据库的制作,期间三位同学之间相互联系配合完成程序的设计与实现
关键字:
Java语言、JDBC、数据库、数据库语言、界面。
第一章、需求分析
1.1需求分析
对于现在在校大学生在校接任家教频繁,为了提供一个高效的、可行的、可控的、安全的中介,需要一个方便关于管理的操着平台,记录和保存每一位学生家教的基本信息和家教情况,为学生提供更多的家教对象和更合理的家教对象分配,据此通过java程序设计实现这一学生家教管理系统。
1.2功能设计
本程序根据学生家教管理的需求设置了六大主要功能,即所有家教查询、家教添加、家教注销、家教替换、家教记录、家教查询。
(1)程序运行出现主界面,主界面上有家教信息显示框(显示框自动出现滚动条)、家教部分信息输入框及执行六大功能的按钮;
(2)点击所有家教,显示框中出现所有的家教及其个人信息,其个人信息包括姓名、所在大学、家教对象、星期家教安排、家教次数、家教附加(加班)、家教缺勤、薪水、时间,另外显示家教当日家教的情况包括当日家教、当日缺勤、当日附加、当日时间。
(3)在输入框输入所要操着家教的姓名,点击家教查询或家教记录的按钮,然后在显示框中显示出所要操着得出的信息;
(4)在输入框输入所要操着家教的姓名,点击家教查询或家教记录的按钮,之后弹出各种功能的信息框,可在其中添加活该面信息,并且点击信息框中的返回或确认按钮可以弹出操着成功或操着失败的信息框;
(5)操着中改变的、增添的各项数据可存于数据库当中,删除的数据从书库中消失
第二章、概要设计
2.1程序设计思路
本程序通过建立Worker、Jdbc、JM三个包分别来实现整个程序的三大板块。
Worker包当中的Mteacher类定义单个个老是工作情况各个私有属性,并对其进行封装,Teachers类定义单个学生家教的个人信息的私有属性也对进行封装。
Jdbc包用于连接数据库,其中的DButil类和DButil1类中的方法通过调用不同的构造方法从界面获取数据信息,再通过ps带入数据查询语言,然后使用数据库分别交叉控制程序对数据库的操着,同时也可以将数据库中的数据通过Worker中的构造方法创建出来,显示在界面中
JM包中的程序用于界面的显示,为满足显示的需要总共创建了7个界面Screen、Screen1、Screen2、Screen3、Screen4为Screen的子界面,Screen6、Screen7为判断操着成功与否的界面,所有界面运用了java.swing、java.util、java.awt、java.envent包中的类及各种接口、方法。
本程序中各项数据库表和Worker包中的各个类相互对应,其中表中当中的列和元组与worker包中的类的属性一一对应。
2.2模块说明图
2.3程序流程
2.4程序相关说明
(1)整个程序分为三大板块,仿照MVC模式进行总体框架设计,其中Jdbc包负责连接数据库,其中在个JM包中Screen3在界面初始化各项为空白,Screen1、2、4中的部分单行文本框显示内容的初始化和数值是从数据库中取出数值然后根据Worker包中相关构造方法创建取出,其中时间是生成当前时间存入数据库。
(2)本程序书库是用mysql数据库编译器制作数据表器端口号为3306,Jdbc中的DButil与DButil1相互交叉通过书库语言向数据库中存取数值
(3)本程序中的Worker包中主要针对两个学生连个对象进行封装,和添加构造方法和toString()方法
(4)本程序中使用的监听类为ActionHappen1实现ActionListener接口
2.5数据库模型
2.6数据库表
(1)Teachers表,表中工资为每次20元,缺勤扣20元
(2)Mteacher,表中所有记录为当日记录,并且结果累加到Teachers表中
2.7程序运行界面
(1)运行程序显示首页界面
(2)所有家教:
点击所有家教按钮则会在第一栏文本框中显示出所有家教的信息,可以通过拖动滚动条浏览所有情况
(3)学生家教:
添加点击家教添加,弹出学生家教注册添加框,注册完成后再点击确认添加弹出验证框,若在点击返回按钮首页则回到首页界面
(4)家教替换:
在第二栏输入要操着的人名,击家教替换弹出学生家教替换框,出被替换人出名字以及家教次数、缺勤、附加及薪水已初始化不可改,在改完其他信息后点击确认替换即弹出验证框,点击返回首页按钮首页界面
(5)家教注销:
在第二栏输入要操着的人名,要开除一个家教或者解除家教关系时,点击家教注销弹出学生家教注销,点击确认删除按钮,弹出验证框
(6)家教查询:
在第二栏输入要查询人的名字,点击家教查询,若没有要找的家教,或则家教已被删除则弹出操着失败,点击按钮返回首页,则出首页界面
(7)家教查询:
在第二栏输入要操着的人名,点击家教记录,则在第一栏文本框显示栏怎会显示出关于查询人的所有家教记录,如果没有此人,则弹出操着失败验证框,如果有此人则可给所操作的家教记录当日的工作情况
(8)家教记录:
在第二栏输入要操着的人名,点击家教记录,若有此人则会显示所操着人的所有操着信息,显示的信息可以通过拖动滚动条浏览,若儿没有此人或者此人已被删除则弹出操着失败对话框
第三章.程序详细设计与分析
3.1界面的组成部分
(1)Screen
packageJM;
importjava.awt.BorderLayout;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
importJdbc.DBUtil;
importJdbc.DButil1;
publicclassScreen{
JTextAreajTextArea=newJTextArea(50,50);//创建文本框
JTextAreajTextArea2=newJTextArea(50,50);
JScrollPanejScrollPane=newJScrollPane(jTextArea);
//添加滚动条
JScrollPanejScrollPane2=newJScrollPane(jTextArea2);
StringaString[]={"家教添加","家教替换","家教注销","家教查询","所有家教","家教记录"};
JButtonjButton[]=newJButton[6];
//创建一个窗口
JFrameframe=newJFrame("学生家教管理系统");
//main执行一个构造方法
publicstaticvoidmain(String[]args){
newScreen();
}
//构造首页界面
publicScreen(){
JPaneljPanel=newJPanel();
jPanel.setLayout(newBorderLayout());
for(inti=0;i jButton[i]=newJButton(aString[i]); //给各个按钮添加监听 jButton[i].addActionListener(newActionHappen1()); jPanel.add(jButton[i]); } //将此jpanle布局管理 jPanel.setLayout(newGridLayout(1,6)); frame.add(jScrollPane,BorderLayout.NORTH); frame.add(jScrollPane2,BorderLayout.CENTER); frame.add(jPanel,BorderLayout.SOUTH); //对此窗口进行大小,可视,可删除,布局管理等添加 frame.setResizable(true); frame.setBounds(28,28,800,300); frame.setSize(900,500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); frame.setLayout(newGridLayout(3,1)); } //创建一个监听类实现ActionListener接口 publicclassActionHappen1implementsActionListener{ publicvoidactionPerformed(ActionEvente){ Stringname=e.getActionCommand(); if("所有家教".equals(name)){ //当点击“所有家教”获取文本框jTextArea2中内容,然后传给形参,执行查询语句 //查询所有家教的工作情况 jTextArea.setText(DBUtil.findUser().toString());} if("家教注销".equals(name)){ newScreen1(jTextArea2.getText()); //当点击“家教注销”按钮页面跳转到Screen1, //获取文本框jTextArea2中内容,然后传给形参,执行查询语句 } if("家教替换".equals(name)){ //获取文本框汇jTextArea2中内容,然后传给形参,执行查询语句 //当点击“家教替换“按钮页面跳转到Screen2 newScreen2(jTextArea2.getText()); } if("家教添加".equals(name)){ newScreen3(); //获取文本框jTextArea2中内容,然后传给形参,执行查询语句 //当点击“家教添加“按钮页面跳转到Screen3 } if("家教查询".equals(name)){ //当点击“家教查询”按钮页面跳转到Screen4 //获取文本框jTextArea2中内容,然后传给形参,执行查询语句 newScreen4(jTextArea2.getText()); } if("家教记录".equals(name)){ //当点击“所有家教”获取文本框jTextArea2中内容,然后传给形参,执行查询语句 //查询所有家教的工作情况 jTextArea.setText(DButil1.find1(jTextArea2.getText()).toString());} } } } (2)Screen1 packageJM; importjava.awt.BorderLayout; importjava.awt.GridLayout; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjavax.swing.JButton; importjavax.swing.JFrame; importjavax.swing.JLabel; importjavax.swing.JPanel; importjavax.swing.JTextArea; importWoker.Teachers; importJdbc.DBUtil; importJdbc.DButil1; publicclassScreen1{ publicstaticJTextAreajTextArea[]=newJTextArea[9]; //创建多个文本框 JLabeljLabel[]=newJLabel[9]; //创建多个标签 JPaneljPanel[]=newJPanel[9]; //创建多个panel staticStringbString[]={"姓名: ","所在大学","家教对象: ","星期家教安排: ", "家教次数","家教附加: ","家教缺勤: ","薪水: ","时间: "}; JButtonjButton1=newJButton("确认删除"); JButtonjButton2=newJButton("取消"); JFrameframe=newJFrame("学生家教注销"); //通过构造screen方法对界面进行初始化 publicScreen1(Stringcontext){ frame.setLayout(newGridLayout(10,1,10,10)); for(inti=0;i<9;i++){ jPanel[i]=newJPanel(); jTextArea[i]=newJTextArea(50,50); jLabel[i]=newJLabel(bString[i]); jPanel[i].add(jLabel[i]); jPanel[i].add(jTextArea[i]); jPanel[i].setLayout(newGridLayout(1,2)); frame.add(jPanel[i]); } //向界面当中的文本框当中赋加内容,内容即为Teachers对象各属性值 Teachersconn=DBUtil.find(context); jTextArea[0].setText(conn.get姓名()); jTextArea[1].setText(conn.get所在大学()); jTextArea[2].setText(conn.get家教对象()); jTextArea[3].setText(conn.get星期家教安排()); jTextArea[4].setText(conn.get家教次数()+""); jTextArea[5].setText(conn.get家教附加()+""); jTextArea[6].setText(conn.get家教缺勤()+""); jTextArea[7].setText(conn.get薪水()+""); jTextArea[8].setText(newjava.util.Date().toString()); //对screen1界面当中的按钮添加监听,并布局 jButton1.addActionListener(newActionHappen1()); jButton2.addActionListener(newActionHappen1()); jPanel[8]=newJPanel(); jPanel[8].add(jButton1,BorderLayout.WEST); jPanel[8].add(jButton2,BorderLayout.EAST); jPanel[8].setLayout(newGridLayout(1,2)); frame.add(jPanel[8]); //对此窗口初始化进行处理 frame.setResizable(true); frame.setBounds(28,28,700,600); frame.setSize(700,600); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } //创建一个监听类实现ActionListener接口 publicclassActionHappen1implementsActionListener{ publicvoidactionPerformed(ActionEvente){ //通过getActionCommand()接收窗口中按钮 Stringname=e.getActionCommand(); if("确认删除".equals(name)){ try{ DBUtil.drop(jTextArea[0].getText()); DButil1.drop1(jTextArea[0].getText()); newScreen7(); }catch(Exceptione2){ newScreen6();//抛出异常,若出现异常,弹出操着失败窗口 } }elseif("取消".equals(name)){ newScreen(); } } } } (3)Screen2 packageJM; importjava.awt.BorderLayout; importjava.awt.GridLayout; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjavax.swing.JButton; importjavax.swing.JFrame; importjavax.swing.JLabel; importjavax.swing.JPanel; importjavax.swing.JTextArea; importWoker.Mteacher; importWoker.Teachers; importJdbc.DBUtil; importJdbc.DButil1; publicclassScreen2{ publicstaticJTextAreajTextArea[]=newJTextArea[10]; JLabeljLabel[]=newJLabel[10]; JPaneljPanel[]=newJPanel[11]; staticStringbString[]={"姓名: ","所在大学: ","家教对象","星期家教安排: ","家教次数", "家教附加: ","家教缺勤: ","薪水: ","时间: ","被替换人: "}; JButtonjButton1=newJButton("确认替换"); JButtonjButton2=newJButton("取消"); JFrameframe=newJFrame("学生家教替换"); //构造方法初始化screen2 publicScreen2(Stringcontext){ frame.setLayout(newGridLayout(11,1,10,10)); for(inti=0;i<10;i++){ jPanel[i]=newJPanel(); jTextArea[i]=newJTextArea(50,50); jLabel[i]=newJLabel(bString[i]); jPanel[i].add(jLabel[i]); jPanel[i].add(jTextArea[i]); jPanel[i].setLayout(newGridLayout(1,2)); frame.add(jPanel[i]); } //创建对象获取teachers的各项属性值 Teachersconn=DBUtil.find(context); jTextArea[0].setText(conn.get姓名()); jTextArea[1].setText(conn.get所在大学()); jTextArea[2].setText(conn.get家教对象()); jTextArea[3].setText(conn.get星期家教安排()); jTextArea[4].setText(conn.get家教次数()+"")
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课程设计 报告 学生 家教 管理 系统 设计 实现