九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

《軟件工程》課程設計—— 學生選課系統(tǒng)

上傳人:沈*** 文檔編號:59466244 上傳時間:2022-03-03 格式:DOCX 頁數(shù):22 大?。?60.19KB
收藏 版權申訴 舉報 下載
《軟件工程》課程設計—— 學生選課系統(tǒng)_第1頁
第1頁 / 共22頁
《軟件工程》課程設計—— 學生選課系統(tǒng)_第2頁
第2頁 / 共22頁
《軟件工程》課程設計—— 學生選課系統(tǒng)_第3頁
第3頁 / 共22頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《軟件工程》課程設計—— 學生選課系統(tǒng)》由會員分享,可在線閱讀,更多相關《《軟件工程》課程設計—— 學生選課系統(tǒng)(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、軟件工程課程設計手冊題 目: 學生選課系統(tǒng)設計 2010年 1月 20日目 錄1. 項目概述 31.1開發(fā)背景 31.2 開發(fā)目的 31.3 開發(fā)運行境 31.4 系統(tǒng)功能 32.需求分析 32.1 系統(tǒng)需求 32.2 功能需求 32.3 業(yè)務流圖 33.總體設計 43.1 基本設計概念和處理流程 43.2 系統(tǒng)層次模圖 43.3系統(tǒng)層次模塊圖 43.4模塊設計 54.數(shù)據(jù)庫計 54.1 數(shù)據(jù)庫的邏輯設計 54.2數(shù)據(jù)庫的配置65. 詳細設計 85.1 學生登錄模塊的設計與實現(xiàn) 85.2 學生注冊模塊的設計與實現(xiàn) 95.3 學生查詢模塊的設計與實現(xiàn)95.4 學生選課模塊的設計與實現(xiàn)106 測試

2、及提交 107 項目小組成員及詳細分工 108 附:模塊源代碼 111.項目概述1.1 開發(fā)背景Internet的飛速發(fā)展深刻地影響了人們的日常生活和商業(yè)運作方式。人們打開網(wǎng)頁瀏覽當天的新聞,發(fā)電子郵件給遠方的朋友,使用搜索引擎查找資料,進入網(wǎng)上商城購買商品這一切都是在使用Internet。社會的方方面面滲透著互連網(wǎng)的應用,使得一向煩瑣的手工程序變得方便,快捷,而學校網(wǎng)上選課系統(tǒng)正是基于這一思想而發(fā)展起來的。1.2 開發(fā)目的傳統(tǒng)的手工選課不僅復雜,也牽涉了很多的人力,對管理也造成了諸多不變,而借助網(wǎng)上選課系統(tǒng),學生在規(guī)定選課時間段內(nèi),可以不受地點和時間的限制完成選修課的申請,而學校也可以方便地

3、對系統(tǒng)進行管理和控制,提高工作效率。1.3 開發(fā)運行環(huán)境:開發(fā)工具:java語言開發(fā)環(huán)境:JDK1.4 系統(tǒng)功能:(1) 登錄、注冊功能.(2) 選課功能(3) 查詢功能2.需求分析2.1 系統(tǒng)需求用戶的需求具體體現(xiàn)在各種學習成績的提供、保存、更新和查詢方面,這就要求數(shù)據(jù)庫結構能充分滿足各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結構及數(shù)據(jù)處理的流程,組成一份詳盡數(shù)據(jù)字典,為后面的具體設計打下基礎。2.2 功能需求通過系統(tǒng)功能分析,針對一般的網(wǎng)上選課系統(tǒng),總結出如下的需求信息:(1) 學生的需求:網(wǎng)上選課、選課情況查詢;(2) 本系統(tǒng)主要實現(xiàn)學生信息管理和選課查詢。學生信息包括學號、姓名、班級;課

4、程信息包括課程名;2.3 業(yè)務流程圖學生登錄選課查詢課程系統(tǒng)管理員選課信息3.總體設計3.1 基本設計概念和處理流程互聯(lián)網(wǎng)技術的飛速發(fā)展,Java等設計工具的方便實用,以及數(shù)據(jù)庫技術的發(fā)展給本系統(tǒng)的設計和實現(xiàn)提供了技術上的支持。系統(tǒng)基本的流程是:用戶登錄主界面選擇各項子系統(tǒng)。3.2 系統(tǒng)層次模塊圖 學生選課系統(tǒng)登陸/注冊選課查詢數(shù)據(jù)庫的設計3.3系統(tǒng)層次模塊圖3.4模塊設計(1) 用戶注冊模塊:填寫用戶名、密碼、確認密碼(2) 用戶登錄模塊:填寫已注冊的用戶名稱,填寫正確的密碼,進入主控制頁面。(3) 用戶選課模塊:。 (4) 用戶查詢模塊:可以進行查看所選課程的操作。4.數(shù)據(jù)庫設計4.1 數(shù)

5、據(jù)庫的邏輯設計我們選用了Microsoft Access 2000。數(shù)據(jù)通信接口采用ODBC。ODBC是微軟開發(fā)的一套讀取數(shù)據(jù)庫的解決方案,它的目的是將所有對數(shù)據(jù)庫的底層操作全部隱藏在ODBC的驅動程序內(nèi)核里。對于程序員來說,只要構建了一個指向數(shù)據(jù)庫的連接,就可以采用統(tǒng)一的應用程序編程接口實現(xiàn)對數(shù)據(jù)庫的讀寫。目前ODBC驅動已經(jīng)提供了對大多數(shù)常見類型數(shù)據(jù)庫的支持,包括dBase,Informix,Access,SQL Server和Oracle等。也包括了對其它類型的數(shù)據(jù)庫的支持,如文本,Excel電子表格等的支持。根據(jù)系統(tǒng)功能設計的要求以及功能模塊的劃分,對于系統(tǒng)信息數(shù)據(jù)庫,可以列出以下數(shù)據(jù)

6、項和數(shù)據(jù)結構:1. 名稱:用戶信息表表名稱標識:login名稱字段名稱數(shù)據(jù)類型主鍵非空用戶名UserName文本NoYes密碼Password文本NoNo記錄:2.名稱:課程信息表表名稱標識:kechengbiao名稱字段名稱數(shù)據(jù)類型主鍵非空學號number數(shù)字NoYes姓名name文本NoNo課程名稱lesson文本NoNo記錄:4.2數(shù)據(jù)庫的配置一個真正的、完整的站點是離不開數(shù)據(jù)庫的。ODBC為應用程序提供了一種標準方法來操作相關的數(shù)據(jù)庫:管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫的位置、數(shù)據(jù)庫類型及ODBC驅動程序等信息,建立起ODBC與具體數(shù)據(jù)庫的聯(lián)系。這樣,只要應用程序將數(shù)據(jù)源名提供給ODBC,O

7、DBC就能建立起與相應數(shù)據(jù)庫的連接。按如下步驟可以建立一個新的系統(tǒng)數(shù)據(jù)源。首先,在控制面板中雙擊ODBC圖標,打開“ODBC數(shù)據(jù)源管理器”對話框,選擇“系統(tǒng)DSN”選項卡,單擊“添加”按鈕。如下圖所示。在“創(chuàng)建新數(shù)據(jù)源”對話框中,選擇“Driver do Microsoft Access(*.mdb)”作為數(shù)據(jù)庫驅動程序并單擊“完成”按鈕。如下圖所示。在“ODBC Microsoft Access安裝”對話框中,數(shù)據(jù)源名稱填寫為“student”,這是程序中將要引用的。單擊“選擇”按鈕,從彈出的文件窗口中選擇student.mdb文件所在的位置。如下圖所示。然后單擊“確定”按鈕,這樣就完成了A

8、ccess數(shù)據(jù)庫的ODBC數(shù)據(jù)源設置。以上步驟,通過ODBC管理器注冊了一個名字為student的數(shù)據(jù)源,并且指定了數(shù)據(jù)庫的驅動程序。5. 詳細設計5.1 學生登錄模塊的設計與實現(xiàn)5.1.1. 登錄模塊功能:本模塊主要用于對用戶身份進行鑒別。用戶通過表單提供用戶名和密碼信息,系統(tǒng)根據(jù)用戶提供的登錄信息對用戶進行身份查詢鑒別。如果身份合法,則將用戶導向系統(tǒng)的選課頁面。輸入:用戶名、密碼處理:(1) 輸入用戶的登錄信息:在頁面提供的表單出輸入用戶的用戶名和密碼信息,點擊“登錄”按鈕提交表單信息到身份驗證頁面?;螯c擊“重置”按鈕,重新輸入。 (2) 用戶身份進行驗證:連接數(shù)據(jù)庫,打開用戶數(shù)據(jù)表log

9、in,檢驗用戶登錄信息。以輸入數(shù)據(jù)“用戶名”為查詢條件創(chuàng)建數(shù)據(jù)集查看輸入用戶名是否存在。如果存在,繼續(xù)檢驗輸入的密碼是否正確。密碼和用戶名都正確,則進入選課頁面;如果用戶名不存在或密碼不正確,則給出登錄失敗的提示框。輸出:學生選課頁面5.1.2學生登錄頁面圖如下圖所示:5.2 學生注冊模塊的設計與實現(xiàn) 5.3 學生查詢模塊的設計與實現(xiàn) 5.4 學生選課模塊的設計與實現(xiàn)6 測試及提交7 項目小組成員及詳細分工工作任務徐寒亭胡中濤盧文琳李爽需求分析數(shù)據(jù)庫的設計查詢功能選課功能登陸注冊功能查詢模塊注冊登錄模塊數(shù)據(jù)庫設計模塊選課模塊8 附:模塊源代碼(1)登錄模塊import java.awt.*;i

10、mport java.awt.event.*;import javax.swing.JOptionPane;import java.sql.*;public class Login extends Frame implements ActionListener Frame f,f1; Button b1; Button b2;Button b3; TextField t1; TextField t2; Label l1; Label l2; Connection con; Statement sql; /聲明Statement對象 ResultSet rs; public Login()f=n

11、ew Frame(學生選課系統(tǒng)); Toolkit tool=f.getToolkit();Dimension dim=tool.getScreenSize();f.setBounds(0,0,dim.width,dim.height); Panel p=new Panel(); f.add(p); l1=new Label(用戶名); l2=new Label(密碼); t1=new TextField(20); t2=new TextField(20); b1=new Button(登陸); b2=new Button(取消);b3=new Button(注冊); p.add(l1); p

12、.add(t1); p.add(l2); p.add(t2); p.add(b1); p.add(b2);p.add(b3); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); f.setVisible(true); t2.setEchoChar(*); f.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0);); public void acti

13、onPerformed(ActionEvent e) if(e.getSource()=b1) if(t1.getText().equals()|t2.getText().equals() JOptionPane.showMessageDialog(null,輸入不能為空!); else try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException a) System.out.println(+a); try con=DriverManager.getConnection(jdbc:odbc:sun,

14、); sql=con.createStatement(); rs=sql.executeQuery(Select * FROM login); /查詢數(shù)據(jù)庫 boolean check = false; while(rs.next() String UserName=rs.getString(1); /獲得數(shù)據(jù)庫第二列 String Password=rs.getString(2); /獲得數(shù)據(jù)庫第三列 if(t1.getText().equals(UserName) & t2.getText().equals(Password) /判斷語句 check = true; JOptionPane

15、.showMessageDialog(null,登陸成功!);f.dispose(); new WindowBox(選課窗口); t1.setText(); t2.setText(); break; if(check = false) JOptionPane.showMessageDialog(null,登陸失敗,請重新輸入!); con.close(); catch(SQLException el) if(e.getSource()=b2) t1.setText(); t2.setText(); if(e.getSource()=b3)f.dispose();new Regist(學生選課系

16、統(tǒng)注冊界面);public void windowClosing(WindowEvent e) System.exit(0);public static void main(String args) new Login();(2)注冊模塊import java.awt.*;import java.awt.event.*;import javax.swing.JOptionPane;import java.sql.*;class Regist extends Frame implements ActionListenerLabel lb1, lb2, lb3;TextField tf1, tf2

17、, tf3;Button bt1, bt2, bt3;Regist(String s)super(s);setLayout(null);setBounds(0,0,900,900);setVisible(true);setResizable(false);lb1 = new Label(用戶名);lb1.setBounds(150,100,50,20);lb2 = new Label(密碼);lb2.setBounds(150,200,50,20);lb3 = new Label(確認);lb3.setBounds(150,300,50,20);tf1 = new TextField();tf

18、1.setBounds(200,98,200,20);tf2 = new TextField();tf2.setBounds(200,198,200,20);tf2.setEchoChar(*);tf3 = new TextField();tf3.setBounds(200,298,200,20);tf3.setEchoChar(*);bt1 = new Button(注冊);bt1.setBounds(200,400,100,40);bt2 = new Button(返回);bt2.setBounds(350,400,100,40);bt3 = new Button(退出);bt3.setB

19、ounds(435,400,100,40);add(lb1);add(lb2);add(lb3);add(tf1);add(tf2);add(tf3);add(bt1);add(bt2);add(bt3);tf3.addActionListener(this);bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);addWindowListener(new java.awt.event.WindowAdapter()public void windowClosing(java.aw

20、t.event.WindowEvent e)System.exit(0););public void actionPerformed(ActionEvent e)if(e.getSource()= bt1 | e.getSource()= tf1 | e.getSource()= tf2 | e.getSource()= tf3)if(tf1.getText().equals()| tf2.getText().equals() | tf3.getText().equals()JOptionPane.showMessageDialog(this,請輸入用戶名和密碼,提示,JOptionPane.

21、ERROR_MESSAGE);/判斷文本內(nèi)容語句elseif(tf2.getText().equals(tf3.getText()tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection con;Statement sq;ResultSet r;String u, p;con = DriverManager.getConnection(jdbc:odbc:sun,null,null);sq=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPD

22、ATABLE);r = sq.executeQuery(SELECT * FROM login);while(r.next() u =r.getString(1); if(tf1.getText().equals(u) JOptionPane.showMessageDialog(this,用戶已存在,錯誤,JOptionPane.ERROR_MESSAGE); con.close(); break; /判斷用戶是否存在 else if(r.isLast()/判斷是否已經(jīng)讀完整個表 u = tf1.getText(); p = tf2.getText(); sq.executeUpdate(IN

23、SERT INTO login(UserName,Password) VALUES(+u+,+p+);/寫入用戶信息 JOptionPane.showMessageDialog(this,注冊成功,提示,JOptionPane.INFORMATION_MESSAGE); con.close(); dispose(); new Login(); break; tf1.setText(null);tf2.setText(null);tf3.setText(null);catch(SQLException b)JOptionPane.showMessageDialog(this,b,錯誤,JOpti

24、onPane.ERROR_MESSAGE);catch(ClassNotFoundException a)JOptionPane.showMessageDialog(this,a,錯誤,JOptionPane.ERROR_MESSAGE);elseJOptionPane.showMessageDialog(this,兩次密碼不一致,提示,JOptionPane.ERROR_MESSAGE);tf2.setText(null);tf3.setText(null);else if(e.getSource()= bt3)System.exit(0);else if(e.getSource()= bt

25、2)dispose();new Login();public class xuhanting1public static void main(String args)new Regist(學生選課系統(tǒng)注冊界面);(3)選課模塊import java.awt.*;import java.awt.event.*;import java.sql.*;class WindowBox extends Frame implements ActionListener,ItemListener Checkbox box1,box2,box3,box4,box5,box6; Label l1;Label l2;

26、TextField t1;Label l3;TextField t2;TextArea t = new TextArea();Button b1,b2;WindowBox(String s)super(s);setLayout(new FlowLayout();l2=new Label(學號); t1=new TextField(10);l3=new Label(姓名);t2=new TextField(10);b1=new Button(確定);b2=new Button(重置);l1=new Label(所選課程);box1=new Checkbox(離散數(shù)學,false);box2=ne

27、w Checkbox(匯編語言,false);box3=new Checkbox(java語言設計,false);box4=new Checkbox(軟件工程,false);box5=new Checkbox(操作系統(tǒng),false);box6=new Checkbox(馬克思政治學,false);box1.addItemListener(this);box2.addItemListener(this);box3.addItemListener(this);box4.addItemListener(this);box5.addItemListener(this);box6.addItemList

28、ener(this);add(l2);add(t1);add(l3);add(t2);add(b1);add(b2);add(l1);add(box1);add(box2);add(box3);add(box4);add(box5);add(box6);add(t);b1.addActionListener(this);b2.addActionListener(this);setSize(500,500);setVisible(true);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)S

29、ystem.exit(0););validate();public void itemStateChanged(ItemEvent e)Checkbox box=(Checkbox)e.getSource();if(box.getState()int n=t.getCaretPosition();t.insert(box.getLabel(),n);elset.setText();public void actionPerformed(ActionEvent a) if(a.getSource()=b1) Connection con;Statement sql;ResultSet rs;St

30、ring number1,name1,lesson1, recode,insertStr;tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException g)System.out.println(+g);trycon=DriverManager.getConnection(jdbc:odbc:sun,);sql=con.createStatement();number1=t1.getText();name1=t2.getText();lesson1=t.getText();recode=(+number1+

31、,+name1+,+lesson1+);insertStr=INSERT INTO kechengbiao values+recode; sql.executeUpdate(insertStr);con.close();dispose(); RuanJian rj=new RuanJian(查詢窗口); catch(SQLException h) System.out.println(h);else if(a.getSource()=b2) t1.setText();t2.setText();t.setText();public class xuhanting3public static vo

32、id main(String args)new WindowBox(選課窗口);(4)查詢模塊import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.JOptionPane; class RuanJian extends Frame implements ActionListenerLabel lab1;TextField text1;Button b1,b2;TextArea t=new TextArea();RuanJian(String s)setTitle(s);setLayout(n

33、ull);lab1=new Label(請輸入學號);text1=new TextField(10);b1=new Button(確定);b1.addActionListener(this);b2=new Button(重置);b2.addActionListener(this);lab1.setBounds(120,100,100,30);text1.setBounds(250,100,200,30);b1.setBounds(220,180,50,30);b2.setBounds(320,180,50,30);t.setBounds(100,250,380,300);add(lab1);a

34、dd(text1);add(b1);add(b2);add(t);setBounds(100,100,600,600);setVisible(true);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0);); validate();public void actionPerformed(ActionEvent m)if(m.getSource()=b1) String s; s=text1.getText();int r=1;Connection con;/ja

35、va.sql包中Connection 連接 Statement sql;/向數(shù)據(jù)庫發(fā)送sql語句 ResultSet rs;/處理查詢結果 tryClass .forName(sun.jdbc.odbc.JdbcOdbcDriver);/建立jdbc與odbc連接 catch(ClassNotFoundException e) System.out.println(+e); trycon=DriverManager.getConnection(jdbc:odbc:sun,); sql=con.createStatement(); rs=sql.executeQuery(select * fro

36、m kechengbiao);while(rs.next() String number=rs.getString(1);String name=rs.getString(2);String lesson=rs.getString(3);if(s.equals(number)t.append(學號:+number+n); t.append(姓名:+name+n);t.append(課程:+lesson+n);r=0;break; if(s.equals() JOptionPane.showMessageDialog(this,請輸入學號,警告對話框,JOptionPane.WARNING_ME

37、SSAGE); else if(r=1) JOptionPane.showMessageDialog(this,學號輸入錯誤,警告對話框,JOptionPane.WARNING_MESSAGE); / break; con.close();catch(SQLException e)System.out.println(e);else if(m.getSource()=b2) String s=;text1.setText(s);t.setText(s);public class xuhantingpublic static void main(String args)RuanJian rj=new RuanJian(查詢窗口);22

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!