java課程設(shè)計報告-選修課管理系統(tǒng)_第1頁
java課程設(shè)計報告-選修課管理系統(tǒng)_第2頁
java課程設(shè)計報告-選修課管理系統(tǒng)_第3頁
java課程設(shè)計報告-選修課管理系統(tǒng)_第4頁
java課程設(shè)計報告-選修課管理系統(tǒng)_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、目 錄1項目背景12用例圖13類圖54界面設(shè)計64.1系統(tǒng)界面64.2功能界面65數(shù)據(jù)庫設(shè)計96源程序106.1Student類106.2StudentJFrame類126.3AddJFrame類156.4 QueryJFrame類216.5CancelJFrame類256.6ModifyJFrame類286.7DaoFactory類356.8StudentDao類366.9 StudentDaoJDBCImpl類366.10MsSqlHelper類397總結(jié)401項目背景本設(shè)計的目的是綜合面向?qū)ο蟪绦蛟O(shè)計課程中所學(xué)到的知識來開發(fā)一個小型的Java應(yīng)用程序選修課管理系統(tǒng)。本項目是選修課管理系統(tǒng)

2、的一個子模塊,主要功能是對學(xué)生的信息進行管理,如:插入一條學(xué)生的信息、刪除學(xué)生信息、修改學(xué)生信息、查詢學(xué)生信息。本項目使用Java Swing技術(shù),數(shù)據(jù)庫采用SQLServer 2000,本項目的開發(fā)和測試都是在Windows平臺下進行的,但由于Java的跨平臺性,本系的移植性很強,也適用于其它主流的操作系統(tǒng)。本項目的開發(fā)工具是My Eclipse,連接數(shù)據(jù)庫SQLServer2000來完成一個小的學(xué)生選修課管理系統(tǒng)中的學(xué)生信息管理模塊。2用例圖圖2.1用例圖功能級用例描述添加學(xué)生信息描述項說明用例名稱添加學(xué)生信息用例簡述管理員添加學(xué)生的基本信息用例圖前置條件管理員已成功登入后置條件學(xué)生信息被

3、添加基本操作流程1輸入“學(xué)生姓名”,“學(xué)生學(xué)號”,“學(xué)生年齡”,選擇“學(xué)生性別”2點擊“提交”按鈕3 “成功添加”點擊“確定”或關(guān)閉窗口則返回主頁面 替代流程無功能級用例描述查詢學(xué)生信息描述項說明用例名稱查詢學(xué)生信息用例簡述管理員查詢學(xué)生的基本信息用例圖前置條件管理員已成功添加學(xué)生信息并成功登入查詢頁面后置條件學(xué)生信息被查詢基本操作流程1輸入需查找的“學(xué)生學(xué)號” 2點擊“確定”按鈕3 點擊“返回”或關(guān)閉窗口則返回主頁面 替代流程無功能級用例描述修改學(xué)生信息描述項說明用例名稱修改學(xué)生信息用例簡述管理員修改學(xué)生的基本信息用例圖前置條件管理員已成功查詢所需修改學(xué)生信息后置條件學(xué)生信息被修改基本操作流

4、程1輸入需修改的“學(xué)生學(xué)號” 2點擊“修改”按鈕3 點擊“返回”或關(guān)閉窗口則返回主頁面替代流程無功能級用例描述刪除學(xué)生信息描述項說明用例名稱刪除學(xué)生信息用例簡述管理員刪除學(xué)生的基本信息用例圖前置條件管理員已成功查詢所需修改學(xué)生信息后置條件學(xué)生信息被刪除基本操作流程1輸入需刪除的“學(xué)生學(xué)號” 2點擊“刪除”按鈕3 “刪除成功”點擊“確定”或關(guān)閉窗口則返回主頁面替代流程無3類圖圖3.1類圖4界面設(shè)計4.1系統(tǒng)界面進入學(xué)生信息管理系統(tǒng),將會看到以下的窗口,如4.1所示:圖4.1主界面4.2功能界面在學(xué)生信息管理系統(tǒng)里面可以實現(xiàn)插入一條學(xué)生的信息、刪除學(xué)生信息、修改學(xué)生信息、查詢學(xué)生信息的功能。插入功

5、能,能新插入一條學(xué)生信息,包括學(xué)生的學(xué)號和姓名,性別和年齡,如下圖4.2圖4.2插入一條學(xué)生信息修改功能:能修改一個學(xué)生的姓名。如下圖4.3圖4.3修改一個學(xué)生信息刪除功能:能根據(jù)一個學(xué)生的學(xué)號來刪除一個學(xué)生的信息。如下圖4.6圖4.4刪除一個學(xué)生信息查詢功能:能通過一個學(xué)生的學(xué)號來查詢某一個學(xué)生,如下圖4.5圖4.5查詢一個學(xué)生信息刪除學(xué)生信息后的數(shù)據(jù)庫的一個截圖如下4.6:圖4.6 數(shù)據(jù)庫5數(shù)據(jù)庫設(shè)計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;/建立構(gòu)造器, 因需studentId自動生成,所以寫三個構(gòu)造器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(學(xué)生選修課管理系統(tǒng));initGUI();private void initGUI() try setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);getContentPane().setForeground(new java.awt.Color(0,0,255);/標(biāo)題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);/注冊“添加”按鈕的監(jiān)聽器,進行兩個界面間的轉(zhuǎn)換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);/注冊“查詢”按鈕的監(jiān)聽器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類用于添加學(xué)生/信管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(添加學(xué)生

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);/注冊“提交”按鈕監(jiān)聽器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中g(shù)etStudentDao里的addStudent方法中的相應(yīng)參數(shù)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用來調(diào)提交和放棄按鈕的距離,美觀作用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);/注冊“放棄”按鈕的監(jiān)聽器,重回主界面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);/姓名標(biāo)簽和文本框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、);/學(xué)號標(biāo)簽和文本框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);/ 性別標(biāo)簽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);/”男“,”女“單選框的設(shè)置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);/年齡標(biāo)簽和文本框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(); /設(shè)置單選框所選內(nèi)容以備“性別”的監(jiān)聽器把內(nèi)容返回給數(shù)據(jù)庫public void itemStateChanged(ItemEvent e) / TODO Auto-generated method stubif(manR

44、adioButton1.isSelected()sex=男; if(womenRadioButton1.isSelected()sex=女; 6.4 QueryJFrame 類用于查詢學(xué)生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);/標(biāo)題塊,提示titlePanel2 = new JPanel();getContentPane().add(titlePanel2, BorderLayout.NORTH);titlePanel2.setPreferredSize(new java.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論