




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、學生信息管理系統設計1、 系統簡介本系統提供了學生信息管理中常見的基本功能,主要包括管理員和學生兩大模塊。管理員的主要功能有對學生信息和課程信息進行增加、刪除、修改、查找等操作,對選課信息進行管理,對成績信息和用戶信息進行修改、查找等操作。學生的主要功能有對學生信息和成績信息進行查看,對個人的密碼信息進行修改等。2、 功能設計2.1 需求分析本系統需要實現的功能:(1)、管理員對學生信息和課程信息進行增加、刪除、修改、查找等操作,對選課信息進行管理,對成績信息和用戶信息進行修改、查找等操作。(2)、學生對學生信息和成績信息進行查看,對個人的密碼信息進行修改等。2.2 總體設計學生信息管理系統主
2、要包括管理員和學生兩大模塊。管理員模塊包括:學生信息管理、課程信息管理、選課信息管理、成績信息管理、用戶信息管理等。用戶模塊包括:學生信息查看、成績信息查看、個人信息管理等。系統總體結構如圖所示。總體結構圖2.3 模塊詳細設計1、學生信息管理模塊學生信息管理模塊包括增加、刪除、修改、查詢、顯示全部等。具體的結構圖如圖所示。學生信息管理模塊結構圖2、課程信息管理模塊課程信息管理模塊包括增加、刪除、修改、查詢、顯示全部等。具體的結構圖如圖所示。課程信息管理模塊結構圖3、選課信息管理模塊選課信息管理模塊包括查詢、顯示全部等。具體的結構圖如圖所示。選課信息管理模塊結構圖4、成績信息管理模塊成績信息管理
3、模塊包括修改成績、查詢、顯示全部等。具體的結構圖如圖所示。成績信息管理模塊結構圖5、用戶信息管理模塊用戶信息管理模塊包括修改、查詢、顯示全部等。具體的結構圖如圖所示。用戶信息管理模塊結構圖3、 數據庫設計在數據庫student中共有4張數據表:s(學生信息表)、c(課程信息表)、sc(選課信息表)、unpw(用戶信息表),下面定義每張表的字段名稱和數據類型。s(學生信息表)字段名稱數據類型描述snochar (10)學號,關鍵字snchar (20)姓名saint年齡sschar (10)性別sdchar (10)院系c(課程信息表)字段名稱數據類型描述cnochar (10)課程號,關鍵字c
4、nchar (30)課程名pcnochar (10)先行課程號sc(選課信息表)字段名稱數據類型描述snochar (10)學號,關鍵字cnochar (10)課程號,關鍵字gint成績unpw(用戶信息表)字段名稱數據類型描述unchar (10)用戶名,關鍵字pwchar (10)密碼qxint角色4、 界面庫設計1、學生信息管理系統的登錄學生信息管理系統可由管理員和學生兩種身份的人使用。管理員和學生身份登錄所能操作的功能有很大的區別。系統初始化一個系統管理員,登錄名:admin 密碼:admin 學生登錄系統的登錄名為學號,密碼也為學號(如:10001),登錄后可以修改密碼。登錄界面管理
5、員登錄系統后的界面學生登錄系統后的界面2、實現管理員和學生操作功能的界面管理員的登錄系統后可以進行學生信息管理、課程信息管理、選課信息管理、成績信息管理、用戶信息管理等功能操作,其具體界面設計如下圖所示。 學生信息管理功能的界面課程信息管理功能的界面選課信息管理功能的界面成績信息管理功能的界面用戶信息管理功能的界面學生的登錄系統后可以進行學生信息查看、成績信息查看、個人信息管理等功能操作,其具體界面設計如下圖所示。學生信息查看功能的界面成績信息查看功能的界面個人信息管理功能的界面5、 程序類的設計 simplestudentmanager 主函數類dlframe 登陸界面類 managerfr
6、ane 管理員界面類 studentframe 學生界面類 sm 學生信息管理的類 sadd 用于學生信息管理中增加或修改某條記錄的界面的類 sselect 用于學生基本信息管理中查詢時輸入學號的界面的類 cm 課程信息管理的類 cadd 用于課程信息管理中增加或修改某條記錄的界面的類cselect 用于課程信息管理中查詢時輸入課程號的界面的類 scm 選課信息管理的類 scselect 用于選課信息管理中查詢時輸入學號的界面的類 gm 成績信息管理的類 gadd 用于成績信息管理中修改成績的界面的類 gselect 用于成績信息管理中查詢時輸入學號的界面的類 pm 用戶信息管理的類 uadd
7、 用于用戶信息管理中修改密碼的界面的類 pselect 用于用戶信息管理中查詢時輸入用戶名的界面的類 students 用于學生信息查看時輸入學號的界面的類 studentselect 用于成績信息查看時輸入學號的界面的類 ppm 個人信息管理的類 ppselect 用于個人信息管理查詢時輸入用戶名的界面的類 程序類的具體代碼實現見工程文件夾中的代碼及注釋6、 系統的使用說明及環境配置學生信息管理系統提供了管理員和學生這兩個角色登錄系統,管理員通過用戶名:admin 密碼:admin 登錄系統后可以進行相應的操作。學生通過以自己的學號(如10001)作為用戶名和密碼登錄系統后進行相應的學生權限
8、范圍內的操作。數據庫:sql server 2005連接數據庫的登錄名:sa 密碼:123代碼:import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;class cadd extends jframe implements actionlistener/ 用于課程信息管理中增加或修改某條記錄的界面jlabel lcno = new jlabel(課程號:);jlabel lcname = new jlabel(課程名:);jlabel lpcno = new jlabel(先行課程號:)
9、;jtextfield tcno = new jtextfield(10);jtextfield tcname = new jtextfield(10);jtextfield tpcno = new jtextfield(10);jbutton btnok = new jbutton(確定);jbutton btncancel = new jbutton(取消);jpanel p = new jpanel();connection con = null;statement stmt = null;resultset rs = null;boolean isnewsm = true;/ 用于判斷
10、是否顯示課程信息管理的界面public cadd() / 構造方法this.settitle(增加);this.setbounds(200, 200, 146, 235);p.setlayout(new flowlayout(flowlayout.left);p.add(lcno);p.add(tcno);p.add(lcname);p.add(tcname);p.add(lpcno);p.add(tpcno);p.add(btnok);p.add(btncancel);this.add(p);this.setresizable(false);this.setdefaultcloseopera
11、tion(jframe.exit_on_close);btnok.addactionlistener(this);btncancel.addactionlistener(this);this.show();public void conndb() / 連接數據庫try class.forname(com.microsoft.sqlserver.jdbc.sqlserverdriver); catch (classnotfoundexception e) e.printstacktrace();try con = drivermanager.getconnection(jdbc:sqlserve
12、r:/localhost:1433; databasename=student,sa, 123);stmt = con.createstatement(); catch (sqlexception e) e.printstacktrace();public void closedb() / 關閉連接try stmt.close();con.close(); catch (sqlexception e) e.printstacktrace();public void insertst() / 插入記錄string kch = null;string kcm = null; string xxkc
13、h=null;kch = tcno.gettext();kcm = tcname.gettext();xxkch=tpcno.gettext();if (this.gettitle() = 修改) / 如果是修改記錄,先刪除再增加try this.conndb();int rs1 = stmt.executeupdate(delete from c where cno=+ kch + ); catch (sqlexception e) e.printstacktrace();string str = insert into c values( + kch + , + kcm + , + xxk
14、ch + );this.conndb();/ 連接數據庫try stmt.executeupdate(str);joptionpane.showmessagedialog(null, this.gettitle() + 成功!,提示, joptionpane.information_message, new imageicon(menu4.gif);this.setvisible(false);catch (sqlexception e) joptionpane.showmessagedialog(null, 課程號已存在!);tcno.settext();public void action
15、performed(actionevent e) if (e.getactioncommand() = 確定) this.insertst();if (isnewsm) new cm(課程信息管理).display();isnewsm = true;if (e.getactioncommand() = 取消) this.setvisible(false);new cm(課程信息管理).display();import java.awt.component;import java.awt.flowlayout;import java.awt.event.*;import java.sql.*;i
16、mport java.util.*;import javax.swing.*;import javax.swing.table.tablecellrenderer;class cm extends jframe implements actionlistener / 課程信息管理jpanel p = new jpanel();jbutton btnadd = new jbutton(增加);jbutton btndelete = new jbutton(刪除);jbutton btnalter = new jbutton(修改);jbutton btnsearch = new jbutton(
17、查詢);jbutton btndisplay = new jbutton(顯示);jmenubar mb = new jmenubar();jpanel p1 = new jpanel();jtable stable;jscrollpane scroll;connection con = null;statement stmt = null;resultset rs = null;object playerinfo;cselect cst;string mkch = null;boolean bstd = false;cm(string title) / 構造方法super(title);ad
18、d(south, p);this.add(center, p1);mb.add(btnadd);mb.add(btndelete);mb.add(btnalter);mb.add(btnsearch);mb.add(btndisplay);this.conndb();/ 連接數據庫this.setbounds(200, 200, 400, 260);btnadd.addactionlistener(this);btndelete.addactionlistener(this);btnalter.addactionlistener(this);btnsearch.addactionlistene
19、r(this);btndisplay.addactionlistener(this);this.setjmenubar(mb);/ this.setdefaultcloseoperation(jframe.exit_on_close);this.setresizable(false);show();cm(cselect cst, string title) / 構造方法super(title);this.cst = cst;bstd = true;add(south, p);this.add(center, p1);mb.add(btnadd);mb.add(btndelete);mb.add
20、(btnalter);mb.add(btnsearch);mb.add(btndisplay);this.conndb();this.setbounds(200, 200, 400, 260);btnadd.addactionlistener(this);btndelete.addactionlistener(this);btnalter.addactionlistener(this);btnsearch.addactionlistener(this);btndisplay.addactionlistener(this);this.setjmenubar(mb);/ this.setdefau
21、ltcloseoperation(jframe.exit_on_close);this.setresizable(false);show();public void display() / 顯示所有的課程信息int i = 0;int j = 0;int k = 0;list al = new arraylist();try rs = stmt.executequery(select * from c);while (rs.next() / 找出表中的記錄數賦給ial.add(rs.getstring(cno);al.add(rs.getstring(cn);al.add(rs.getstri
22、ng(pcno);i+; catch (sqlexception e) e.printstacktrace();playerinfo = new objecti3;string columnnames = 課程號, 課程名, 先行課程號 ;try rs = stmt.executequery(select * from c order by cno);while (rs.next() playerinfoj0 = rs.getstring(cno);playerinfoj1 = rs.getstring(cn);playerinfoj2 = rs.getstring(pcno);j+; cat
23、ch (sqlexception e) e.printstacktrace();stable = new jtable(playerinfo, columnnames);/ 創建網格p1.add(stable);scroll = new jscrollpane(stable);this.add(scroll);public void conndb() / 連接數據庫try class.forname(com.microsoft.sqlserver.jdbc.sqlserverdriver); catch (classnotfoundexception e) e.printstacktrace(
24、);try con = drivermanager.getconnection(jdbc:sqlserver:/localhost:1433; databasename=student,sa, 123);stmt = con.createstatement(); catch (sqlexception e) e.printstacktrace();public void closedb() / 關閉連接try stmt.close();con.close(); catch (sqlexception e) e.printstacktrace();public void delete() / 刪
25、除某個課程信息string kch = null;string kcm = null;string xxkch = null;int row = -1;row = stable.getselectedrow();if (row = -1) / 判斷要刪除的信息是否被選中joptionpane.showmessagedialog(null, 請選擇要刪除的記錄!); else if (!bstd) / 判斷選擇的是不是查詢后的結果int j1 = 0;try rs = stmt.executequery(select * from c);while (rs.next() & j1 = row)
26、/ 找出當前被選中的記錄在數據庫中的對應kch = rs.getstring(cno);kcm = rs.getstring(cn);xxkch = rs.getstring(pcno);j1+; catch (sqlexception e) e.printstacktrace();int i1 = 0;try int rs1 = stmt.executeupdate(delete from c where cno=+ kch + );/ 刪除數據庫中當前被選中的記錄joptionpane.showmessagedialog(null, 記錄刪除成功!);this.dispose();new
27、cm(課程信息管理).display(); catch (sqlexception e) e.printstacktrace(); else try int rs1 = stmt.executeupdate(delete from c where cno=+ mkch + );/ 刪除數據庫中當前被選中的記錄joptionpane.showmessagedialog(null, 記錄刪除成功!);this.dispose();new cm(課程信息管理).display(); catch (sqlexception e) e.printstacktrace();public void upda
28、te() / 修改某個課程記錄string kch = null;string kcm = null;string xxkch = null;int row = -1;row = stable.getselectedrow();if (row = -1) joptionpane.showmessagedialog(null, 請選擇要修改的記錄!); else int j1 = 0;try if (!bstd) / 判斷選擇的是不是查詢后的結果rs = stmt.executequery(select * from c); else rs = stmt.executequery(select
29、* from c where cno= + mkch+ );while (rs.next() & j1 = row) / 找出當前被選中的記錄在數據庫中的對應kch = rs.getstring(cno);kcm = rs.getstring(cn);xxkch = rs.getstring(pcno);j1+; catch (sqlexception e) e.printstacktrace();cadd cadd = new cadd();cadd.settitle(修改);cadd.tcno.settext(kch);cadd.tcname.settext(kcm);cadd.tpcno
30、.settext(xxkch);cadd.tcno.setenabled(false);this.dispose();public void select() / 顯示某個查詢的結果mkch = cst.kch;playerinfo = new object13;string columnnames = 課程號, 課程名, 先行課程號 ;try rs = stmt.executequery(select * from c where cno= + mkch + );while (rs.next() playerinfo00 = rs.getstring(cno);playerinfo01 =
31、rs.getstring(cn);playerinfo02 = rs.getstring(pcno); catch (sqlexception e) e.printstacktrace();if (playerinfo01 = null) this.dispose();joptionpane.showmessagedialog(null, 課程號不存在!);new cm(課程信息管理).display(); else stable = new jtable(playerinfo, columnnames);/ 創建網格p1.add(stable);scroll = new jscrollpan
32、e(stable);this.add(scroll);public void actionperformed(actionevent e) if (e.getactioncommand() = 增加) new cadd();this.dispose();if (e.getactioncommand() = 刪除) this.delete();if (e.getactioncommand() = 修改) this.update();if (e.getactioncommand() = 查詢) cst = new cselect();this.dispose();if (e.getactionco
33、mmand() = 顯示) this.dispose();new cm(課程信息管理).display();import java.awt.event.*;import java.sql.connection;import java.sql.drivermanager;import java.sql.resultset;import java.sql.sqlexception;import java.sql.statement;import javax.swing.*;public class cselect extends jframe implements actionlistener /
34、 用于課程信息管理中查詢時輸入課程號的界面jlabel ltitle = new jlabel(課程號:);jtextfield tcno = new jtextfield(8);jbutton btnok = new jbutton(確定);jpanel p = new jpanel();string kch = null;public cselect() / 構造方法p.add(ltitle);p.add(tcno);p.add(btnok);add(p);this.setbounds(300, 280, 200, 160);btnok.addactionlistener(this);th
35、is.setresizable(false);this.show();public void actionperformed(actionevent e) kch = tcno.gettext();/ 取得當前輸入課程號的值if (kch.equals() / 判斷是否輸入了課程號joptionpane.showmessagedialog(null, 課程號不能為空,請重新輸入!); else this.dispose();new cm(this, 課程信息管理).select();import javax.swing.*;import java.awt.*;import java.awt.e
36、vent.*;import java.sql.*;class dlframe extends jframe implements actionlistener, itemlistener / 登錄界面jpanel p1 = null;jpanel p2 = null;jpanel p3 = null;jlabel username = new jlabel(用戶:);jtextfield txtuser = new jtextfield();jlabel password = new jlabel(密碼:);jpasswordfield txtpwd = new jpasswordfield(
37、6);jlabel role = new jlabel(角色:);jcombobox cbrole = new jcombobox();jbutton btnlogin = new jbutton(登錄);jbutton btncz = new jbutton(重置);jbutton btncancel = new jbutton(取消);jlabel imagelabel;icon image;static int ok = 1;static int cancel = 0;int actioncode = 0;connection con = null;statement stmt = nu
38、ll;resultset rs = null;int qxian = 0;public dlframe() / 構造方法super(登錄界面);p1 = new jpanel();p2 = new jpanel();p3 = new jpanel();cbrole.additem(管理員);cbrole.additem(學生);image = new imageicon(picturest.jpg);imagelabel = new jlabel(image);p1.add(imagelabel);this.setlayout(new flowlayout();this.setbounds(1
39、00, 100, 246, 345);p2.setlayout(new gridlayout(4, 2);p2.add(username);p2.add(txtuser);p2.add(password);p2.add(txtpwd);p2.add(role);p2.add(cbrole);p3.add(btnlogin);p3.add(btncz);p3.add(btncancel);this.add(p1);this.add(p2);this.add(p3);this.setresizable(false);this.setdefaultcloseoperation(jframe.exit
40、_on_close);this.show();btnlogin.addactionlistener(this);cbrole.additemlistener(this);btncz.addactionlistener(this);btncancel.addactionlistener(this);public void conndb() / 連接數據庫try class.forname(com.microsoft.sqlserver.jdbc.sqlserverdriver); catch (classnotfoundexception e) e.printstacktrace();try c
41、on = drivermanager.getconnection(jdbc:sqlserver:/localhost:1433; databasename=student,sa, 123);stmt = con.createstatement(); catch (sqlexception e) e.printstacktrace();public void closedb() / 關閉連接try stmt.close();con.close(); catch (sqlexception e) e.printstacktrace();public void itemstatechanged(it
42、emevent e) if (e.getstatechange() = itemevent.selected) jcombobox jcb = (jcombobox) e.getsource();qxian = jcb.getselectedindex();public void actionperformed(actionevent e) object source = e.getsource();string un = null;string pw = null;boolean success = false;/ 用于判斷是否登錄成功if (source = btnlogin) if (t
43、xtuser.gettext().equals() | txtpwd.gettext().equals() / 判斷是否輸入了用戶名和密碼joptionpane.showmessagedialog(null, 登錄名和密碼不能為空!); else this.conndb();try rs = stmt.executequery(select * from unpw where qx=+ qxian);while (rs.next() un = rs.getstring(un).trim();pw = rs.getstring(pw).trim();if (txtuser.gettext().e
44、quals(un) if (txtpwd.gettext().equals(pw) actioncode = ok;this.setvisible(false);if (qxian = 0) new managerfrane();/ 進入管理員界面if (qxian = 1) new studentframe();/ 進入學生界面success = true;break; else joptionpane.showmessagedialog(null, 密碼錯誤!);txtpwd.settext();success = true;if (!success) joptionpane.showme
45、ssagedialog(null, 登錄名錯誤!);txtuser.settext();txtpwd.settext(); catch (sqlexception e1) e1.printstacktrace(); else if (source = btncz) txtuser.settext();txtpwd.settext(); else if (source = btncancel) system.exit(0);import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;class
46、gadd extends jframe implements actionlistener / 用于成績信息管理中修改成績的界面jlabel lcno = new jlabel(學號:);jlabel lcname = new jlabel(課程名:);jlabel lg = new jlabel(成績:);jtextfield tcno = new jtextfield(10);jtextfield tcname = new jtextfield(10);jtextfield tpcno = new jtextfield(10);jbutton btnok = new jbutton(確定)
47、;jbutton btncancel = new jbutton(取消);jpanel p = new jpanel();connection con = null;statement stmt = null;resultset rs = null;boolean isnewsm = true;/ 用于判斷是否顯示成績信息管理的界面public gadd() / 構造方法this.settitle(增加);this.setbounds(200, 200, 146, 235);p.setlayout(new flowlayout(flowlayout.left);p.add(lcno);p.add(tcno);p.add(lcname);p.add(tcname);p.add(lg);p.add(tpcno);p.add(btnok);p.add(btncancel);this.add(p);this.setr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業地產整裝技術與環保材料應用
- 工業污染治理與環境保護策略
- 工業污染源監測及治理方案
- 工業污染防治與循環經濟
- 工業機器人技術及其產業升級策略
- 工業生產中的質量控制與檢測技術
- 工業自動化系統的遠程監控與控制
- 工業機械設備的使用與日常維護
- 工業環境影響評價與法規要求
- 工業自動化與智能工廠的發展趨勢
- 2025年廣東省廣州市白云區中考語文二模試卷
- 2025年天津市河西區中考二模數學試題(含部分答案)
- 醫院培訓課件:《藥品不良反應報告和監測工作簡介》
- 2025 屆九年級初三畢業典禮校長講話:星河長明共赴新程
- 2025年伽師縣(中小學、幼兒園)教師招聘考試模擬試題及答案
- 醫院培訓中心管理制度
- GM/T 0009-2023SM2密碼算法使用規范
- 中等職業教育與普通高中教育融合發展路徑研究
- 網約車轉讓合同協議書
- 2024年安徽省初中學業水平考試生物試題含答案
- 2024年浙江省中考英語試題卷(含答案解析)
評論
0/150
提交評論