java课程设计报告选修课管理系统.docx
《java课程设计报告选修课管理系统.docx》由会员分享,可在线阅读,更多相关《java课程设计报告选修课管理系统.docx(52页珍藏版)》请在冰豆网上搜索。
java课程设计报告选修课管理系统
3类图5
4界面设计6
系统界面6
功能界面6
1项目背景
本设计的目的是综合面向对象程序设计课程中所学到的知识来开发一个小型的Java应用程序—选修课管理系统。
本项目是选修课管理系统的一个子模块,主要功能是对学生的信息进行管理,如:
插入一条学生的信息、删除学生信息、修改学生信息、查询学生信息。
本项目使用JavaSwing技术,数据库采用SQLServer2000,本项目的开发和测试都是在Windows平台下进行的,但由于Java的跨平台性,本系的移植性很强,也适用于其它主流的操作系统。
本项目的开发工具是MyEclipse,连接数据库SQLServer2000来完成一个小的学生选修课管理系统中的学生信息管理模块。
2用例图
功能级用例描述——添加学生信息
描述项
说明
用例名称
添加学生信息
用例简述
管理员添加学生的基本信息
用例图
前置条件
管理员已成功登入
后置条件
学生信息被添加
基本操作流程
1输入“学生姓名”,“学生学号”,“学生年龄”,选择“学生性别”
2点击“提交”按钮
3“成功添加”点击“确定”或关闭窗口则返回主页面
替代流程
无
功能级用例描述——查询学生信息
描述项
说明
用例名称
查询学生信息
用例简述
管理员查询学生的基本信息
用例图
前置条件
管理员已成功添加学生信息并成功登入查询页面
后置条件
学生信息被查询
基本操作流程
1输入需查找的“学生学号”
2点击“确定”按钮
3点击“返回”或关闭窗口则返回主页面
替代流程
无
功能级用例描述——修改学生信息
描述项
说明
用例名称
修改学生信息
用例简述
管理员修改学生的基本信息
用例图
前置条件
管理员已成功查询所需修改学生信息
后置条件
学生信息被修改
基本操作流程
1输入需修改的“学生学号”2点击“修改”按钮
3点击“返回”或关闭窗口则返回主页面
替代流程
无
功能级用例描述——删除学生信息
描述项
说明
用例名称
删除学生信息
用例简述
管理员删除学生的基本信息
用例图
前置条件
管理员已成功查询所需修改学生信息
后置条件
学生信息被删除
基本操作流程
1输入需删除的“学生学号”
2点击“删除”按钮
3“删除成功”点击“确定”或关闭窗口则返回主页面
替代流程
无
3类图
4界面设计
进入学生信息管理系统,将会看到以下的窗口,如4.1所示:
在学生信息管理系统里面可以实现插入一条学生的信息、删除学生信息、修改学生信息、查询学生信息的功能。
插入功能,能新插入一条学生信息,包括学生的学号和姓名,性别和年龄,如下图
图插入一条学生信息
修改功能:
能修改一个学生的姓名。
如下图
图4.3修改一个学生信息
图删除一个学生信息
查询功能:
能通过一个学生的学号来查询某一个学生,如下图
图查询一个学生信息
删除学生信息后的数据库的一个截图如下4.6:
图4.6数据库
5数据库设计
6源程序
Student类
//信管071郑胜楠2007021236
packagedomain;
publicclassStudent{
//student类用五个实例变量来描述
privateIntegerstudentId;
privateIntegestudentNo;
privateStringstudentName;
privateStringstudentSex;
privateintstudentAge;
//建立构造器,因需studentId自动生成,所以写三个构造器
publicStudent(){
super();
}
publicStudent(IntegerstudentId,,IntegestudentNo,StringstudentName,
StringstudentSex,intstudentAge){
super();
this.studentId=studentId;
this.studentNo=studentNo;
this.studentName=studentName;
this.studentSex=studentSex;
this.studentAge=studentAge;
}
publicStudent(IntegestudentNo,StringstudentName,StringstudentSex,intstudentAge){
super();
this.studentNo=studentNo;
this.studentName=studentName;
this.studentSex=studentSex;
this.studentAge=studentAge;
}
publicStringgetStudentSex(){
returnstudentSex;
}
publicvoidsetStudentSex(StringstudentSex){
this.studentSex=studentSex;
}
publicIntegergetStudentId(){
returnstudentId;
}
publicvoidsetStudentId(IntegerstudentId){
this.studentId=studentId;
}
publicStringgetStudentNo(){
returnstudentNo;
}
publicvoidsetStudentNo(IntegestudentNo){
this.studentNo=studentNo;
}
publicStringgetStudentName(){
returnstudentName;
}
publicvoidsetStudentName(StringstudentName){
this.studentName=studentName;
}
publicintgetStudentAge(){
returnstudentAge;
}
publicvoidsetStudentAge(intstudentAge){
this.studentAge=studentAge;
}
@Override
publicStringtoString(){
//TODOAuto-generatedmethodstub
return"["+this.studentId+","+this.studentNo+","
+this.studentName+","+this.studentSex+","+this.studentAge+"]";
}
}
StudentJFrame类
第一个界面(主界面)的建立
//信管071郑胜楠2007021236
packagejframe;
importjava.awt.BorderLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
importjavax.swing.JButton;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.WindowConstants;
importjavax.swing.SwingUtilities;
publicclassStudentJFrameextendsjavax.swing.JFrame{
privateJPaneltitlePanel;
privateJLabeltitleLabel;
privateJButtonjButton1;
privateJButtonjButton4;
privateJButtonjButton3;
privateJButtonjButton2;
privateJPanelmainPanel;
publicstaticvoidmain(String[]args){
SwingUtilities.invokeLater(newRunnable(){
publicvoidrun(){
StudentJFrameinst=newStudentJFrame();
tLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
publicStudentJFrame(){
super("学生选修课管理系统");
initGUI();
}
privatevoidinitGUI(){
try{
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setForeground(newjava.awt.Color(0,0,255));
{
//标题Panel
titlePanel=newJPanel();
getContentPane().add(titlePanel,BorderLayout.NORTH);
titlePanel.setPreferredSize(newjava.awt.Dimension(384,91));
{
titleLabel=newJLabel();
titlePanel.add(titleLabel);
titleLabel.setText("\u6b22\u8fce\u8fdb\u5165\u5b66\u751f\u9009\u4fee\u8bfe\u7ba1\u7406\u7cfb\u7edf");
titleLabel.setPreferredSize(newjava.awt.Dimension(279,68));
titleLabel.setFont(newjava.awt.Font("微软雅黑",1,18));
titleLabel.setForeground(newjava.awt.Color(0,0,255));
}
}
{
//选择Panel
mainPanel=newJPanel();
getContentPane().add(mainPanel,BorderLayout.CENTER);
mainPanel.setPreferredSize(newjava.awt.Dimension(384,173));
{
//“添加”按钮
jButton1=newJButton();
mainPanel.add(jButton1);
jButton1.setText("\u6dfb\u52a0");
jButton1.setPreferredSize(newjava.awt.Dimension(83,36));
jButton1.setFont(newjava.awt.Font("微软雅黑",1,14));
und(newjava.awt.Color(0,255,0));
jButton1.setBackground(newjava.awt.Color(0,128,128));
//注册“添加”按钮的监听器,进行两个界面间的转换
jButton1.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
System.out.println("jButton1.actionPerformed,event="+evt);
AddJFrameadd=newAddJFrame();
StudentJFrame.this.setVisible(false);
}
});
}
{
//“查找”按钮
jButton2=newJButton();
mainPanel.add(jButton2);
jButton2.setText("\u67e5\u627e");
jButton2.setBackground(newjava.awt.Color(0,128,128));
jButton2.setFont(newjava.awt.Font("微软雅黑",1,14));
jButton2.setForeground(newjava.awt.Color(0,255,0));
jButton2.setPreferredSize(newjava.awt.Dimension(83,37));
//注册“查询”按钮的监听器
jButton2.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventevt){
System.out.println("jButton2.actionPerformed,event="+evt);
QueryJFramequery=newQueryJFrame();
StudentJFrame.this.setVisible(false);
}
});
}
{
//“修改”按钮
jButton3=newJButton();
mainPanel.add(jButton3);
jButton3.setText("\u4fee\u6539");
jButton3.setBackground(newjava.awt.Color(0,128,128));
jButton3.setFont(newjava.awt.Font("微软雅黑",1,14));
jButton3.setForeground(newjava.awt.Color(255,255,0));
tPreferredSize(newjava.awt.Dimension(83,36));
jButton3.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventevt){
System.out.println("jButton2.actionPerformed,event="+evt);
ModifyJFramemj=newModifyJFrame();
mj.setVisible(true);
StudentJFrame.this.setVisible(false);
}
});
}
{
//“删除”按钮
jButton4=newJButton();
mainPanel.add(jButton4);
jButton4.setText("\u5220\u9664");
jButton4.setBackground(newjava.awt.Color(0,128,128));
jButton4.setFont(newjava.awt.Font("微软雅黑",1,14));
jButton4.setForeground(newjava.awt.Color(255,255,0));
jButton4.setPreferredSize(newjava.awt.Dimension(83,37));
jButton4.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventevt){
System.out.println("jButton4.actionPerformed,event="+evt);
CancelJFramecjf=newCancelJFrame();
StudentJFrame.this.setVisible(false);
cjf.setVisible(true);
}
});
}
}
pack();
setSize(400,300);
}catch(Exceptione){
e.printStackTrace();
}
}
}
AddJFrame类
用于添加学生
//信管071郑胜楠2007021236
packagejframe;
importjava.awt.BorderLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.ItemEvent;
importjava.awt.event.ItemListener;
importjavax.swing.ButtonGroup;
importjavax.swing.DefaultComboBoxModel;
importjavax.swing.JButton;
importjavax.swing.JLabel;
importjavax.swing.JList;
importjavax.swing.JOptionPane;
importjavax.swing.JPanel;
importjavax.swing.JRadioButton;
importjavax.swing.JSpinner;
importjavax.swing.JTextField;
importjavax.swing.ListModel;
importjavax.swing.SpinnerListModel;
importjavax.swing.WindowConstants;
importjavax.swing.SwingUtilities;
importdao.DaoFactory;
importdomain.Student;
publicclassAddJFrameextendsjavax.swing.JFrameimplementsItemListener{
privateJPaneltitlePanel1;
privateJLabeljLabel2;
privateJButtonfqButton1;
privateJButtontjButton1;
privateJLabeltitleLabel1;
privateJTextFieldjTextField1;
privateJLabelsexLabel1;
privateJLabelnoLabel1;
privateJTextFieldnoTextField1;
privateJTextFieldnameTextField1;
privateJLabelnameLabel1;
privateJPanelsouthPanel1;
privateJPanelmainPanel1;
privateJPaneleastPanel1;
privateJPanelwestPanel1;
privateJRadioButtonmanRadioButton1;
privateJRadioButtonwomenRadioButton1;
privateJLabelkongLabel3;
privateStringsex;
publicstaticvoidmain(String[]args){
SwingUtilities.invokeLater(newRunnable(){
publicvoidrun(){
AddJFrameinst=newAddJFrame();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
publicAddJFrame(){
super("添加学生信息");
initGUI();
this.setVisible(true);
}
privatevoidinitGUI(){
try{
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
titlePanel1=newJPanel();
getContentPane().add(titlePanel1,BorderLayout.NORTH);
titlePanel1.setPreferredSize(newjava.awt.Dimension(384,65));
{
titleLabel1=newJLabel();
titlePanel1.add(titleLabel1);
titleLabel1.setText("\u8bf7\u8f93\u5165\u5b