學生信息管理系統(tǒng)(Java)代碼_第1頁
學生信息管理系統(tǒng)(Java)代碼_第2頁
學生信息管理系統(tǒng)(Java)代碼_第3頁
學生信息管理系統(tǒng)(Java)代碼_第4頁
學生信息管理系統(tǒng)(Java)代碼_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學生信息管理系統(tǒng)設計1、 系統(tǒng)簡介本系統(tǒng)提供了學生信息管理中常見的基本功能,主要包括管理員和學生兩大模塊。管理員的主要功能有對學生信息和課程信息進行增加、刪除、修改、查找等操作,對選課信息進行管理,對成績信息和用戶信息進行修改、查找等操作。學生的主要功能有對學生信息和成績信息進行查看,對個人的密碼信息進行修改等。2、 功能設計2.1 需求分析本系統(tǒng)需要實現(xiàn)的功能:(1)、管理員對學生信息和課程信息進行增加、刪除、修改、查找等操作,對選課信息進行管理,對成績信息和用戶信息進行修改、查找等操作。(2)、學生對學生信息和成績信息進行查看,對個人的密碼信息進行修改等。2.2 總體設計學生信息管理系統(tǒng)主

2、要包括管理員和學生兩大模塊。管理員模塊包括:學生信息管理、課程信息管理、選課信息管理、成績信息管理、用戶信息管理等。用戶模塊包括:學生信息查看、成績信息查看、個人信息管理等。系統(tǒng)總體結(jié)構(gòu)如圖所示??傮w結(jié)構(gòu)圖2.3 模塊詳細設計1、學生信息管理模塊學生信息管理模塊包括增加、刪除、修改、查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖所示。學生信息管理模塊結(jié)構(gòu)圖2、課程信息管理模塊課程信息管理模塊包括增加、刪除、修改、查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖所示。課程信息管理模塊結(jié)構(gòu)圖3、選課信息管理模塊選課信息管理模塊包括查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖所示。選課信息管理模塊結(jié)構(gòu)圖4、成績信息管理模塊成績信息管理

3、模塊包括修改成績、查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖所示。成績信息管理模塊結(jié)構(gòu)圖5、用戶信息管理模塊用戶信息管理模塊包括修改、查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖所示。用戶信息管理模塊結(jié)構(gòu)圖3、 數(shù)據(jù)庫設計在數(shù)據(jù)庫student中共有4張數(shù)據(jù)表:s(學生信息表)、c(課程信息表)、sc(選課信息表)、unpw(用戶信息表),下面定義每張表的字段名稱和數(shù)據(jù)類型。s(學生信息表)字段名稱數(shù)據(jù)類型描述snochar (10)學號,關鍵字snchar (20)姓名saint年齡sschar (10)性別sdchar (10)院系c(課程信息表)字段名稱數(shù)據(jù)類型描述cnochar (10)課程號,關鍵字c

4、nchar (30)課程名pcnochar (10)先行課程號sc(選課信息表)字段名稱數(shù)據(jù)類型描述snochar (10)學號,關鍵字cnochar (10)課程號,關鍵字gint成績unpw(用戶信息表)字段名稱數(shù)據(jù)類型描述unchar (10)用戶名,關鍵字pwchar (10)密碼qxint角色4、 界面庫設計1、學生信息管理系統(tǒng)的登錄學生信息管理系統(tǒng)可由管理員和學生兩種身份的人使用。管理員和學生身份登錄所能操作的功能有很大的區(qū)別。系統(tǒng)初始化一個系統(tǒng)管理員,登錄名:admin 密碼:admin 學生登錄系統(tǒng)的登錄名為學號,密碼也為學號(如:10001),登錄后可以修改密碼。登錄界面管理

5、員登錄系統(tǒng)后的界面學生登錄系統(tǒng)后的界面2、實現(xiàn)管理員和學生操作功能的界面管理員的登錄系統(tǒng)后可以進行學生信息管理、課程信息管理、選課信息管理、成績信息管理、用戶信息管理等功能操作,其具體界面設計如下圖所示。 學生信息管理功能的界面課程信息管理功能的界面選課信息管理功能的界面成績信息管理功能的界面用戶信息管理功能的界面學生的登錄系統(tǒng)后可以進行學生信息查看、成績信息查看、個人信息管理等功能操作,其具體界面設計如下圖所示。學生信息查看功能的界面成績信息查看功能的界面?zhèn)€人信息管理功能的界面5、 程序類的設計 simplestudentmanager 主函數(shù)類dlframe 登陸界面類 managerfr

6、ane 管理員界面類 studentframe 學生界面類 sm 學生信息管理的類 sadd 用于學生信息管理中增加或修改某條記錄的界面的類 sselect 用于學生基本信息管理中查詢時輸入學號的界面的類 cm 課程信息管理的類 cadd 用于課程信息管理中增加或修改某條記錄的界面的類cselect 用于課程信息管理中查詢時輸入課程號的界面的類 scm 選課信息管理的類 scselect 用于選課信息管理中查詢時輸入學號的界面的類 gm 成績信息管理的類 gadd 用于成績信息管理中修改成績的界面的類 gselect 用于成績信息管理中查詢時輸入學號的界面的類 pm 用戶信息管理的類 uadd

7、 用于用戶信息管理中修改密碼的界面的類 pselect 用于用戶信息管理中查詢時輸入用戶名的界面的類 students 用于學生信息查看時輸入學號的界面的類 studentselect 用于成績信息查看時輸入學號的界面的類 ppm 個人信息管理的類 ppselect 用于個人信息管理查詢時輸入用戶名的界面的類 程序類的具體代碼實現(xiàn)見工程文件夾中的代碼及注釋6、 系統(tǒng)的使用說明及環(huán)境配置學生信息管理系統(tǒng)提供了管理員和學生這兩個角色登錄系統(tǒng),管理員通過用戶名:admin 密碼:admin 登錄系統(tǒng)后可以進行相應的操作。學生通過以自己的學號(如10001)作為用戶名和密碼登錄系統(tǒng)后進行相應的學生權(quán)限

8、范圍內(nèi)的操作。數(shù)據(jù)庫:sql server 2005連接數(shù)據(jù)庫的登錄名: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() / 構(gòu)造方法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() / 連接數(shù)據(jù)庫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();/ 連接數(shù)據(jù)庫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) / 構(gòu)造方法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();/ 連接數(shù)據(jù)庫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) / 構(gòu)造方法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() / 找出表中的記錄數(shù)賦給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);/ 創(chuàng)建網(wǎng)格p1.add(stable);scroll = new jscrollpane(stable);this.add(scroll);public void conndb() / 連接數(shù)據(jù)庫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) / 判斷選擇的是不是查詢后的結(jié)果int j1 = 0;try rs = stmt.executequery(select * from c);while (rs.next() & j1 = row)

26、/ 找出當前被選中的記錄在數(shù)據(jù)庫中的對應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 + );/ 刪除數(shù)據(jù)庫中當前被選中的記錄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 + );/ 刪除數(shù)據(jù)庫中當前被選中的記錄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) / 判斷選擇的是不是查詢后的結(jié)果rs = stmt.executequery(select * from c); else rs = stmt.executequery(select

29、* from c where cno= + mkch+ );while (rs.next() & j1 = row) / 找出當前被選中的記錄在數(shù)據(jù)庫中的對應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() / 顯示某個查詢的結(jié)果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);/ 創(chuàng)建網(wǎng)格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() / 構(gòu)造方法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() / 構(gòu)造方法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() / 連接數(shù)據(jù)庫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() / 構(gòu)造方法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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論