版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
某高校學(xué)生學(xué)籍管理系統(tǒng)設(shè)計與開發(fā)
1.引言
1.1項目來源:采用計算機(jī)化管理系統(tǒng)能提高操作員的操作效率,減少出錯
的也許性,并且計算機(jī)可以自己自動完畢某些常用的記錄功能,可以極大地節(jié)省
時間,其經(jīng)濟(jì)效益和社會效益是很明顯的。
1.2.任務(wù)目的:本系統(tǒng)是對一種學(xué)校H勺學(xué)生學(xué)籍進(jìn)行管理,它重要包括多種
信息的錄入,修改,刪除等操作,并能對多種信息口勺查詢生成多種圖來形象顯示
成果
1.3應(yīng)用價值:此系統(tǒng)便于管理人員一目了然地掌握學(xué)生的學(xué)籍狀況。
2.項目規(guī)劃
2.1項目資源:
.硬件規(guī)定:P41.0或更高。
內(nèi)存:128MB或更高。
硬盤空間:20MBo
.軟件環(huán)境
操作系統(tǒng):windows2023/windowsNT/windowsXP0
數(shù)據(jù)庫:access2023;
開發(fā)工具:eclipse;
辨別率:1024像素*768像素;
2.2.項目進(jìn)程:
.任務(wù)描述:
.1學(xué)籍信息管理:對學(xué)生學(xué)籍的基本信息進(jìn)行管理。
.2查詢:按姓名、學(xué)號或班級查詢學(xué)生的學(xué)籍信息。
.4.記錄:對學(xué)生基本信息進(jìn)行記錄。
.進(jìn)度安排:
進(jìn)度完畢任務(wù)所需時間
系統(tǒng)設(shè)計總體籌劃2周
系統(tǒng)資料搜集和整頓1周
軟件模塊、接口設(shè)計、數(shù)據(jù)庫定義1周
數(shù)據(jù)庫設(shè)計1周
軟件代碼設(shè)計2周
軟件代碼測試1周
系統(tǒng)確認(rèn)及驗收1周
2.3項目可行性評估
2.3.1技術(shù)可行性:本系統(tǒng)采用eclipse+access構(gòu)架而成,eclipse是一種
相稱著名的開源Java二DE,由IBM企業(yè)開源。Eclipse重要以其開放性、極為高
效口勺GUI、先進(jìn)的代碼編輯器等著稱,其項目包括許多多種各樣的子項目組,包
括Eclipse插件、功能部件等。任何人都可以輕易的將自己口勺軟件做成Eclipse
的插件、并且這些插件只需簡樸的復(fù)制到Eclipse的插件文獻(xiàn)夾下就可以被集
成。重要采用SWT界面庫,支持多種本機(jī)界面風(fēng)格。eclipse是當(dāng)今java最佳
的開發(fā)平臺,它能自動生成諸多代碼,大大提高了代碼的輸入效率,因此,能很
好的縮短系統(tǒng)開發(fā)所需時間,以更好的減少系統(tǒng)開發(fā)成本,而access為
Microsoft企業(yè)生產(chǎn)的數(shù)據(jù)庫產(chǎn)品,有很好的穩(wěn)定性和兼容性,它是桌面型數(shù)據(jù)
庫,操作靈活、轉(zhuǎn)移以便、運行環(huán)境簡樸,對于小型網(wǎng)站的數(shù)據(jù)庫處理能力效果
很不錯,它提供了表、查詢、窗體、報表、頁、宏、模塊7種用來建立數(shù)據(jù)庫系
統(tǒng)日勺對象;提供了多種向?qū)?、生成器、模板,把?shù)據(jù)存儲、數(shù)據(jù)查詢、界面設(shè)計、
報表生成等操作規(guī)范化;為建立功能完善的數(shù)據(jù)庫管理系統(tǒng)提供了以便,也使得
一般顧客不必編寫代碼,就可以完畢大部分?jǐn)?shù)據(jù)管理的任務(wù)。這兩種技術(shù)都屬于
當(dāng)今流行技術(shù),兩者日勺組合將更能使系統(tǒng)的功能發(fā)揮出來。
2.3.2計劃可行性:此系統(tǒng)所需時間不是諸多,環(huán)節(jié)相對于某些別H勺大型系
統(tǒng)來說,是比較簡樸的,因此,強(qiáng)度也不是很大,按照估計的進(jìn)度的話,在兩個
月左右內(nèi)應(yīng)當(dāng)能很順利的完畢任務(wù)。
2.3.3應(yīng)用可行性:本系統(tǒng)合用于windows操作系統(tǒng),windows操作系統(tǒng)為
當(dāng)今社會最流行的操作系統(tǒng),重要長處為人機(jī)交互性好,而本系統(tǒng)對應(yīng)于此操作
系統(tǒng)而設(shè)計開發(fā),也將能很好地做到這一點。此外,本系統(tǒng)采用日勺是java和
ACCESS技術(shù)。這兩種技術(shù)都能很好地在windows操作系統(tǒng)上運行,因此此系統(tǒng)
能很好日勺應(yīng)用于學(xué)校日勺學(xué)生學(xué)籍日勺管理,能做到以便,高效日勺管理好學(xué)生的學(xué)籍
信息。
3.系統(tǒng)需求分析
3.1業(yè)務(wù)需求
3.1.1業(yè)務(wù)組織:高校學(xué)生學(xué)籍管理中心
3.1.2業(yè)務(wù)定義:管理高校的學(xué)生學(xué)籍信息。
3.2功能需求
3.2.1功能構(gòu)成:本系統(tǒng)是對學(xué)生日勺學(xué)籍信息進(jìn)行管理,重要包括添加、修
改和刪除學(xué)生的基本信息,對基本信息進(jìn)行查詢、排序及記錄等操作,從而實現(xiàn)
學(xué)生管理的自動化與計算機(jī)化。
3.2.2功能定義:系統(tǒng)管理是便于后來系統(tǒng)升級;對學(xué)生學(xué)籍信息的操作在信
息管理模塊中完畢,包括錄入、修改、刪除等操作;查詢和記錄分別在各自H勺模
塊中。
流程圖設(shè)計(系統(tǒng)管理員);
模塊定義:
主模塊:
輸入:操作系統(tǒng)傳遞日勺多種信息以及顧客輸入日勺多種數(shù)據(jù)。
輸出:系統(tǒng)啟動界面顯小。
系統(tǒng)登錄模塊:
輸入:選擇顧客并輸入口令V
輸出:確認(rèn)后顯示主菜單。
系統(tǒng)設(shè)置模塊:
輸入:數(shù)據(jù)并確認(rèn)
輸出:彈出對話框顯示設(shè)置成功與否
修改口令模塊:
輸入:兩次新口令并確認(rèn)
輸出:口令修改成功與否
學(xué)生學(xué)籍操作模塊:
1).錄入模塊:
輸入:學(xué)號等信息
輸出:確認(rèn)并提醒錄入成功與否。
2).修改模塊:
輸入:需要修改日勺信息
輸出:確認(rèn)并提醒修改成功與否。
3)刪除模塊:
輸入:需要刪除的信息。
輸出:確認(rèn)并提醒刪除成功與否。
數(shù)據(jù)查詢模塊:
輸入:選擇查詢方式并確認(rèn)
輸出:顯示查詢成果
數(shù)據(jù)記錄模塊:
輸入:選擇需要記錄的數(shù)據(jù)并確認(rèn)
輸出:顯示記錄成果
3.3數(shù)據(jù)需求
3.3.1靜態(tài)數(shù)據(jù)定義如下表所示:
名稱字段名稱數(shù)據(jù)類型主鍵非空
標(biāo)識ID自動編號YesYes
學(xué)號Num數(shù)字NoYes
姓名Name文本NoYes
性別Sex文本NoYes
民族Ehtnic文本NoNo
班級Class文本NoNo
生日Birthday文本NoNo
籍貫Home文本NoNo
3.3.2數(shù)據(jù)ER圖:
學(xué)生基本信息ER圖
學(xué)生學(xué)籍管理ER圖
數(shù)據(jù)查詢ER圖
記錄ER圖
3.4其他需求:界面友好,易于操作,數(shù)據(jù)傳播迅速高效。
4.系統(tǒng)構(gòu)造設(shè)計
4.1系統(tǒng)總體框架如圖所示:
4.2軟件構(gòu)造設(shè)計
重要劃分為三個模塊:
1).信息管理模塊:對學(xué)生學(xué)籍日勺基本信息進(jìn)行綜合管理,可以添加、修改
及刪除基本信息。
2).查詢模塊:查詢學(xué)生的基本學(xué)籍信息。
3).記錄模塊:根據(jù)不一樣特性對學(xué)生日勺狀況進(jìn)行記錄。
顧客
本系統(tǒng)的顧客可分為三類,系統(tǒng)管理員、教師、學(xué)生。
1).系統(tǒng)管理員:可以添加學(xué)生檔案資料、修改學(xué)生檔案資料、查詢學(xué)生檔
案資料。
2).教師:可以查詢學(xué)生學(xué)生的檔案資料,并可以查看系統(tǒng)開放給老師看時
信息。
3).學(xué)生:可以查詢自身檔案的開放信息,例如姓名、出生年月、政治面貌
等,不過不可以查詢自身檔案的不開放信息。
接口設(shè)計:
1).顧客接口:
按windows應(yīng)用軟件操作界面口勺規(guī)范來設(shè)計,使用以對話框為主的顧客界
面,便于顧客操作。
1.主對話框:由五個功能按鈕構(gòu)成:
系統(tǒng)管理、信息管理、查詢、記錄、協(xié)助。
2.信息管理添加對話框:
學(xué)號編輯框:用于輸入學(xué)生學(xué)號;
姓名編輯框:用于輸入學(xué)生姓名;
性別編輯框:用于輸入學(xué)生性別;
民族編輯框:用于輸入學(xué)生所屬民族;
所在班級編輯框:用于輸入學(xué)生所在班級;
出生日期編輯框:用于輸入學(xué)生出生日期;
籍貫編輯框:用于輸入學(xué)生的籍貫信息、;
保留按鈕:用于將在上面所述日勺編輯框內(nèi)輸入信息后將此學(xué)生信息存入
數(shù)據(jù)庫。
取消按鈕:用于取消本次輸入;
退出按鈕:用于退出錄入對話框;
3.信息管理修改信息對話框:
學(xué)號編輯框:用于輸入學(xué)生學(xué)號;
姓名編輯框:用于輸入學(xué)生姓名;
性別編輯框:用于輸入學(xué)生性別;
民族編輯框:用于輸入學(xué)生所屬民族;
所在班級編輯框:用于輸入學(xué)生所在班級;
出生日期編輯框:用于輸入學(xué)生出生日期;
籍貫編輯框:用于輸入學(xué)生的籍貫信息;
查詢按鈕:用于查詢輸入日勺學(xué)生信息,以修改其中日勺信息;
退出按鈕:用于退出信息修改對話框;
4.信息管理刪除信息對話框:
學(xué)號編輯框:用于輸入學(xué)生學(xué)號;
姓名編輯框:用于輸入學(xué)生姓名;
性別編輯框:用于輸入學(xué)生性別;
民族編輯框:用于輸入學(xué)生所屬民族;
所在班級編輯框:用于輸入學(xué)生所在班級;
出生日期編輯框:用于輸入學(xué)生出生日期;
籍貫編輯框:用于輸入學(xué)生的籍貫信息;
查詢按鈕:用于查詢輸入日勺學(xué)生信息,以便于管理員確認(rèn)其信息以決定
與否刪除此學(xué)生信息。
退出按鈕:用于退出刪除信息對話框;
5.查詢對話框:
請選擇查詢方式:用于選擇查詢方式,有按姓名、按學(xué)號、按班級三種
方式。選擇后,就會出現(xiàn)對應(yīng)的對話框。
按姓名查詢編輯框:用于輸入想要查詢的學(xué)生姓名;
按學(xué)號查詢編輯框:用于輸入想要查詢『、J學(xué)生學(xué)號;
按班級查詢編輯框:用于輸入想要查詢向?qū)W生班級;
確定按鈕:查詢信息日勺人員確認(rèn)輸入無誤后點確承認(rèn)獲取查詢成果;
取消按鈕:用于取消本次查詢
6.記錄對話框:
請選擇記錄選項:用于選擇需要記錄日勺數(shù)據(jù),有按學(xué)號、按性別、按班
級、按出生年月四種方式,選擇后,將會出現(xiàn)對應(yīng)的對話框。
按性別記錄編輯框:可選擇男或女,用于查詢學(xué)生H勺性別數(shù)據(jù);
按班級記錄編輯框:用于查詢每個班的數(shù)據(jù);
按出生年月記錄編輯框:用于查詢學(xué)生的年齡段分布狀況;
確定按鈕:記錄人員確認(rèn)輸入無誤后點確承認(rèn)獲取記錄成果;
取消按鈕:用于取消本次記錄;
2).軟件接口:
使用access的驅(qū)動程序。
4.3數(shù)據(jù)構(gòu)造:
4.3.1:數(shù)據(jù)庫與程序的聯(lián)絡(luò):
1).主模塊:連接數(shù)據(jù)庫
2).信息管理模塊:
信息錄入模塊:讀入學(xué)號、姓名、性別、民族、所在班級、出生日
期、籍貫等信息。
信息修改模塊:讀入對應(yīng)的輸入信息,顯示學(xué)生信息;
信息刪除模塊:讀入對應(yīng)的輸入信息,顯示學(xué)生信息。
3).查詢模塊:
對應(yīng)于多種查詢方式輸出對應(yīng)的I學(xué)生信息。
4).記錄模塊:
對應(yīng)于多種記錄方式輸出對應(yīng)的學(xué)生記錄信息。
5).系統(tǒng)操作模塊:
系統(tǒng)操作權(quán)限查驗?zāi)K:讀入帳號,口令,輸出對應(yīng)H勺信息。
學(xué)籍信息操作模塊:增長,修改,刪除圖書表中H勺信息。
數(shù)據(jù)查詢模塊:制定查詢條件,輸出對應(yīng)的信息。
數(shù)據(jù)記錄模塊:指定記錄條件,輸出對應(yīng)的信息。
數(shù)據(jù)備份模塊:復(fù)制學(xué)生學(xué)籍信息表,系統(tǒng)操作員登記表。
數(shù)據(jù)恢復(fù)模塊:讀取學(xué)生學(xué)籍信息表,系統(tǒng)操作員登記表。
5.系統(tǒng)詳細(xì)設(shè)計:
5.1:功能模塊詳細(xì)設(shè)計:
:定義對象:
〃定義內(nèi)容面板
JpnelcontentPane;
〃定義布局格式
XYLayoutxYLayoutl=newXYLayout();
〃定義菜單欄
JMcnuBarmainMenu=newJMenuBar();
〃定義系統(tǒng)管理菜單及其菜單項
JMenumenuSystem=newJMenuItemO;
JmenuItemitemExit=newJmenuitem();
〃定義信息管理菜單及其菜單項
JMenumenuinfo=newJMenu();
JMenuTtemitemShow=newJMenuItemO;
JMenuIternitemAdd=newJMenuItemO;
JMenuItomitemEdit=ncwJMenuItemO;
JmenulternitemDelcte=ncwJMenuItemO;
〃定義查詢菜單及其菜單項
JMenumenuSearchAll=newJMenu();
〃人員查詢菜單是查詢下日勺一種二級菜單
JMenumenuSearch=newJMenu();
JMenuItemitemSearchByName=newJMenuItemO;
JMenuItemitemSearchByNum=newJMenuItemO;
JMenuItemitemSearchByC1ass=newJMenuItemO;
JMenuTtemitemSearchGrade=newJMenuItemO;
〃定義記錄菜單及其菜單項
JMenumenuSum=newJMenu();
JMenuItomitemSumPcop1c=ncwJMenuItemO;
JMenuItcmitemSuniGrade=newJMenuItemO;
〃定義協(xié)助菜單及其菜單項
.(Menumenullelp=newJMenuO;
JMenuItemitemAbout=newJMenuItemO;
ResultSetrs;
Stringsql=newString();
DatabaseDB=newDatabase();
publicstaticstulnfoSIFall=newstuInfoO;
publicstaticeditStuInfoeditInfo=newcditStuInfoO;
publicstaticdelStuInfodellnfo=newdelStuInfoO;
publicstaticgradeinfogralnfo=newgradelnfoO;
〃設(shè)定contentPane為窗體默認(rèn)面板
contentPane=(JPanel)this.getContentPane();
〃設(shè)定contentPane布局為xYLayoutl
contentPane.setLayout(xYLayoutl);
〃設(shè)定窗體大小
this.setSize(newDimension(400,300));
〃設(shè)置窗體的名稱
this.setTitle(〃學(xué)生學(xué)籍管理系統(tǒng)〃);
mcnuSystcm.setTcxt(〃系統(tǒng)管理”);
menuinfo.sttText]〃信息管理");
menuSearchAll.setText(〃查詢〃);
menuSum.setText("查詢?nèi)藛T〃);
menuHelp.setText協(xié)助〃);
itemShow.setText「信息綜合管理”);
itemAdd.setText("添加信息〃);
itemEdit.setText1〃修改信息〃);
itcmDcletc.setText("刪除信息");
itemExit.setText("退出〃);
itemSearchByName.setText(〃按姓名〃);
itemSearchByNum.setText("按學(xué)號”);
itemSearchB)<lass.setText(〃按班級〃);
itemSumPeople.setText(〃〃);
iteinAbout.setText(〃〃);
〃設(shè)置主窗體的菜單欄為mainMenu
this,setJmenuBar(mainMenu);
〃窗體關(guān)閉按鈕日勺響應(yīng)動作
protectedvoidprocessWindowEvent(WindowEvente){
super.processWindowEvent(e);
if(e.getID()=Windowevent.WIND0W_CL0SING){
System,exit(0);
}
〃退出應(yīng)用程序
voiditemExitactionPerformed(ActionEvente){
System,exit(0);
)
〃人員信息綜合管理
voiditemShowactionPerformed(ActionEvente){
SIFall.setLocation(200,160);
SIFall.pack();
SIFall.show();
SIFall.setNull();
SIFall.setAvled(false);
SIFall.setButton(true,false,false,false,false);
)
//添加人員信息
voiditemAddactionPerformed(ActionEvente){
addStuInfodig=newaddStuInfoO;
DimensiondlgSizc=dlg.getPrcferredSize0;
DimensionfrmSize=getSize();
Pointloc=getLocation();
dig.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.he
ight-dlgSize.height;/2+loc.y);
dig.pack();
dig.show();
dig.setExeType(^addnew^);
)
〃修改人員信息
voiditemEdit_actionPerformed(ActionEvente){
DimensiondlgSize=editInfo.getPreferredSize();
DimensionfrmSize=getSize();
Pointloc=getLocation();
editinfo.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSi
ze.height-dlgSize.height)/2+loc.y);
editinfo.pack();
editinfo,show();
)
〃刪除人員信息
voiditemDcletc_actionPcrformed(ActionEvcnte){
DimensiondlgSize=delInfo.getPreferredSize();
DimensionfrmSize=getSize();
Pointloc=getLocation();
dellnfo.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSiz
e.height-dlgSize.height)/2+loc.y);
delInfo,pack();
dellnfo.show();
)
〃顯示按姓名查詢
voiditemSearchByName_actionPerformed(ActionEvente){
classsearchByNameextendssearch{
publicsearchByName()(
jRByName.setVisible(false);
jRByNum.setVisible(false);
jRByClass.setVisible(false);
xYLayoutl,setHeight(110);
)
}
searchByNamebyName=newsearchByName0;
DimensiondlgSizc=byName.gctPrcferrcdSizc();
DimensionrrmSize=getSize();
Pointloc=getLocation();
byName.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize
.height-dlgSize.height)/2+loc.y);
byName,pack();
byName.setLabelText(〃請輸入要查詢?nèi)藛T的名字:〃);
byName.setType(,/Name,/);
byNamc.show();
}
〃顯示按學(xué)號查詢
voiditemSearchByNumactionPerformed(ActionEvente){
classsearchByNumextendssearch{
publicsearchByNum(){
jRByName.setVisible(false);
jRByNum.setVisible(false);
jRByClass.setVisible(false);
xYLayoutl.setHeight(110);
}
)
searchByNumbyNum=ncwsearchByNum();
DimensiondlgSize=byNum.getPreferredSize();
DimensionfrmSize=getSize();
Pointloc=getLocation();
byNum.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.
height-dlgSize.height)/2+loc.y);
byNum.pack();
byNum.selLabelText(〃請輸入要查詢?nèi)藛T『、J學(xué)號〃);
byNum.sctTyppc(〃NunT);
byNum.show();
)
〃顯示按班級查詢
voiditemSearchByC1ass_actionPerformed(ActionEvente){
classsearchB5<lassextendssearch{
publicsearchByClass(){
jRByName.setVisible(false);
jRByNum.setVisible(false);
jRByClass.setVisible(false);
xYLayoutl.setHeight(110);
}
searchByClassbyClass=newsearchByClass();
DimensiondlgSize=byClass.getPreferredSize();
DimensionfrmSize=getSize();
Pointloc=getLocation();
byClass.setLocation;(frmSize.width-dlgSize.width)/2+loc.x,(frmSize.he
ight-dlgSize.height)/2+loc.y);
byClass,pack();
byClass.setLabclTcxt(〃請輸入要查詢?nèi)藛T歐|班級:〃);
byClass.setType("Class");
byClass.show();
}
〃人員記錄
voiditemSumPeopleactionPerformed(ActionEvente){
sumPeoplepeople=newsumPeople0;
DimensiondlgSize=pcople.getPreferredSize();
DimensionfrmSize=getSize();
Pointloc=getLocation();
people.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize
.height-dlgSize.height)/2+loc.y);
people,pack();
people,show();
}
5.1.2:信息管理模塊詳細(xì)設(shè)計:
.1綜合模塊
〃定義窗體中所用到日勺對象
JPaneljPanell=newJPanel0;
XYLayoutxYLayoutl=ncwXYLayout0;
XYLayoutxYLayoutl=newXYLayout0;
JLabeljLabell=newJLableO;
JLabeljLabel2=newJLableO;
.(LabeljLabe13=newJLableO;
JLabeljLabel4=newJLableO;
JLabeljLabe15=newJLableO;
JLabeljLabel6=newJLableO;
JLabeljLabel7=newJLableO;
JTextFieldjTNum=newJTextFieldO;〃輸入學(xué)號
JTextFieldjTName=newJTextField();〃輸入姓名
JTextFieldjTSex二newJTextFieldO;〃輸入性別
JTextFieldjTHome=newJTextFieldO;〃輸入籍貫
JTextFieldjTBirth=newJTextField();〃輸入生日
JTextFieldjTEthnic=newJTextField();〃輸入民族
JTextFieldjTClass二newJTextField。;〃輸入班級
JButtonjBAdd=newJButtonO;〃添加
JButtonjBModify:newJButtonO;〃修改
JButtonjBDelete二newJButtonO;〃刪除
JButtonjBCancel二newJButton();〃取消
JButtonjBSavc=newJButtonO;〃保留
JButtonjBExit=newJButton();〃退出
JButtonjBSearch:newJButtonO;〃查詢
JButtonjBSum二newJButtonO;〃人員記錄
StringextType=newString。;〃標(biāo)識操作類型
DatabaseDB=newDatabase();〃連接數(shù)據(jù)庫
ResultSetrs;〃返回成果
Stringsql=newString。"/SQL語句
〃初始化時設(shè)置文本框不可編輯
setAbled(false);
〃初始化時除添加按鈕外,其他操作信息日勺按鈕均不可用
setButton(true,false,false,false,false);
〃設(shè)置文本框與否可編輯
voidsetAbled(booleanlogic){
jTNum.setEnabled(logic);
jTEthnic.setEnabled(logic);
jTName.setEnabled(logic);
jTClass.setEnabled(logic);
jTSex.setEnabled(logic);
jTBirth.setEnabled(logic);
jTHomc.setEnabled(logic);
}
〃設(shè)置按鈕的I狀態(tài)
voidsetButton(booleanadd,booleanxiugai,booleandel,boolean
save,booleancanceE(
jBAdd.setEnabled(add);
jBModify.setEnabled(xiugai);
jBDelete.setEnabled(del);
jBSave.setEnabled(save);
jBCancel.setEnabled(cancel);
)
〃將文本框清空
voidsetNulll(){
jTNum.setText(null);
jTEthnic.setText(null);
jTName.setText(null);
jTClass.setText(null);
jTSex.setText(null);
jTBirth.setText(nul1);
jTHome.setText(null);
)
〃設(shè)置操作類型
voidsetExtType(Stringtype){
extType=type;
}
〃新增人員基本信息
voidJBAdd_actionPerformed(ActionEvente){
setExtType(,,addnew,/);
setNull();
this.set/\bled(true);
this.setButton(false,false,false,true,true);
}
//修改目前人員信息
voidjBModify_actionPerformed(ActionEvente){
setExeType("edit");
setAbled(true);
setButton(false,false,false,true,true);
)
〃刪除目前人員信息
voidjBDeleteactionPerformed(ActionEvente){
Stringsql;
sql="deletefromstuTablewhere
Num=,,+Integer.parselnt(jTNum.getText());
if(DB.executeSql(sql)){
JOptionPane.showMessageDialog(null,"成功刪除信息!”);
)
else{
JOptionPane.showMessageDialog(null,"刪除信息失??!〃);
)
)
〃保留信息
voidjBSaveactionPerformed(ActionEvente){
〃判斷操作類型,若是新增,則插入信息,若是編輯,則更新信息
if(cxeType二="addncw〃){
〃檢查新增的學(xué)號在數(shù)據(jù)庫中與否已經(jīng)存在
sql=/,selectNumfromstuTablewhere
Num=〃+Integer.parseZnt(jTNum.getText());
rs=DB.getResult(sql);
try(
〃從數(shù)據(jù)庫中查詢目前學(xué)號,若不為空,闡明此學(xué)號已存在
if(rs.first0){
JOptionPane.showMessagcDialog(null,〃學(xué)號不能反復(fù)!〃;;
setNull();
)
else(
〃若不反復(fù),生成SQL語句
sql二〃insertinto
stuTable(Num,Name,Sex,Ethnic,Class,Birthday,Home)values(〃;
sql=sql+〃〃+Integer.parselnt(jTNum.getText())+〃,〃;
sql=sql+〃'"+jTName.getText()一〃',〃;
sql=sql+"'〃+jTSex.gelText()+”',〃;
sql=sql+〃'〃+jTElhnic.getText:)+〃',〃;
sql=sql+''"+jTClass.getTextC+〃',〃;
sql=sql+///z+Integer.parselnt(jTBirth.getText())+〃,
sql=sql+"'/z+jTHome.getText。-“'〃;
sql=sql+〃)〃;
if(DB.executeSql(sql)){
setAbled(false);
JOptionPane.showMessageDialog(nul1,〃成功添加信息!
〃);
sctButton(true,true,true,false,false);
}
else{
JOptionPane.showMessageDialog(null,“添加信息失敗!
〃);
)
)
}
catch(SQLExceptionex){
JOptionPane.showMessageDialog(nul1,〃添加信息失??!〃);
}
)
〃假如操作類型為編輯,則執(zhí)行更新操作
elseif(extType=,/edit/z){
sql=,,updatestuTableSETName=,z,+jTName.getTextO.toStringD;
sql=sql+z,Sex=,z,+jTSex.getText().toString()+〃',〃;
sql=sql+〃Ethnic='〃+jTEthnic.getText;).toString()+〃',〃;
sql=sql+“Class='〃+jTClass.getText().toString()+〃,,";
sql=sql+〃Birthday=〃+Integer.parselnt(jTbirth.getText())+〃,
sql=sql+〃Home='〃+jTHome.getText().toString()+"'
sql=sql+〃whcrcNum=〃+Intcgcr.parselnt(jTNum.getText0)+〃”;
if(DB.execute(Sql)){
JOptionPane.showMessageDialog(null,〃成功更新信息!〃);
setButton(true,true,true,false,false);
setAbled(false);
)
else{
JOptionPane.showMessageDialog(null,〃更新信息失敗!〃);
}
)
)
〃取消,放棄目前操作
voidjBCancel_actionPerformcd(ActionEvcnte){
this.setAbled(false);
if(exeType二二〃addne'v〃){
this.setNull;);
}
this.setButton(true,true,true,false,false);
)
〃退出,關(guān)閉目前窗口
voidjBExit_actionPcrformcd(ActionEvcntc){
this,dispose();
)
〃查詢
voidjBSearch_actionPerformed(ActionEvente){
searchby=newsearch();
DimensiondlgSize=by.getPreferredSize();
DimensionfrmSize=getSize();
Pointloc=getLocation();
by.seLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.heig
ht-dlgSize.height)/2+loc.y);
by.pack();
by.sctLablcTcxt(〃請選擇查詢方式:〃);
by.jTContent.setEnabled(false);
by.show();
}
〃切換到人員記錄
voidjBSumactionPerfonned(ActionEvente){
sumPeoplepeople=newsumPeople();
DimensiondlgSize=people.getPreferredSize();
DimensionfrmSizc=getSizc0;
Pointloc=getLocation();
people.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize
.height-dlgSize.height)/2+loc.y);
people,pack();
people,show();
this.disposeO;
}
?2添加信息模塊
publicclassaddStuInfoextendsstuTnfo{
publicaddStuTnfoO{
〃設(shè)置修改、刪除、查詢、人員記錄按鈕為不可見
jBModify.setVisiblc(false);
jBDelete.setVisible(false);
jBSearch.setVisible(false);
jBSum.setVisible(false);
this.getContentPaneO.add(JPanel1,new
XYConstraints(3,-20,363,251));
JPanel1.add(jBAdd,newXYComstraints(102,218,53,23));
jPanell.add(jBSave,newXYConstraints(163,218,53,23));
jPancll.add(jBCanccl,newXYConstraints(224,218,53,23));
jPanell.add(jBExit,newXYConstraints(284,218,53,23));
xYLayoutl.setWidth(384);
xYLayoutl.setHeight(240);
this.setTitle("添加信息〃);
this.setExeType(,,addnew,/);
this.setAbled(true);
this.jBAdd.setEnabled(false);
this.jBSave.setEnabled(true);
this.jBCancel.setEnabled(true);
}
)
.3:修改信息模塊
publicclasseditStuInfoextendsstulnfo{
publiceditStuInfoO{
〃設(shè)置按鈕的可見性
JBAdd.setVisible(false);
jBModify.setVisible(false);
JBDelete.setVisible(false);
JBSum.setVisible(false);
〃重設(shè)按鈕和窗體的大小及位置
jBScarch.setTcxt("查詢”);
jBSearch.setMargin(newInsets(2,2,2,2));
this.getContentPaneO.add(JPanell,new
XYConstraints⑶-20,363,251));
jPanell.add(jBsearch,newXYConstraints(102,218,53,23));
jPanell.add(jBSave,newXYConstraints(163,218,53,23));
jPanell.add(jBCancel,newXYConstraints(224,218,53,23));
jPanell.add(jBExit,newXYConstraints(284,218,53,23));
xYLayout1.setWidth(384);
xYLayoutl.selHeight(240);
this.setAbled(false);
jBSave.setEnabled(false);
jBCancel.setEnaled(false);
this.setTitle("修改信息〃);
〃操作類型設(shè)為編輯
this.setExeType(,,edit,/);
}
voidJBSearchactionPerformed(ActionEvente){
searchby=newsearch();
DimensiondlgSizc=by.gctPrcferrcdSizc0;
DimensionfrnSizc=getSize0;
Pointloc=getLocation();
by.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.hei
ght-dlgSize.height)/2+loc.y);
by.pack();
by.setLableText(〃請選擇查詢方式:〃);
by.jTContent.setEnablcd(false);
by.show();
〃設(shè)置成果集返回類型
by.setShowType(^edit^);
.4:刪除信息模塊:
publicclassdelStulnfoextendsstulnfo{
publicdelStuInfoO{
〃設(shè)置按鈕日勺可見性
JBAdd.setVible(false);
JBModify.setVisible(false);
jBSavc.setVisible(false);
jBCancel.setVisible(false);
jBSum.setVisible(false);
jBSearch.settext(〃查詢〃);
jBSearch.setMargin(newInsets(2,2,2,2));
this.getContentPaneO.add(jPanel1,new
XYConstraints⑶-20,363,251));
jPanel.add(jBSearch,newXYConstraints(163,218,53,23));
jPanel.add(jBDelete,newXYConstraints(224,218,53,23));
jPanel.add(jBExit,newXYConstraints:284,218,53,23));
xYLayoutl.selWidth(384);
xYLayoutl.setHeight(240);
this.setAbled(false);
this.setTitle(〃刪除信息〃);
〃初始化時尚無人員信息,因此刪除按鈕設(shè)為不可用
jBDelete.setEnabled(false);
}
voidjBSearchactionPerformed(ActionEvente){
searchby=newsearch();
DimensiondlgSize=by.getPreferredSizeO;
DimensionfrnSizc=getSize0;
Pointloc=gctLocation();
by.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.hei
ght-dlgSize.height)/2+loc.y);
by.pack();
by.setLabelText(〃請選擇查詢方式:〃);
by.JTContent.setEnabled(false);
by.show();
by.setShowType("del〃);
}
)
5.1.3:查詢模塊詳細(xì)設(shè)計:
〃定義窗體所用到歐I本象
XYLayoutxYLayoutl=newXYLayout();
JLabeljLabe11=newjLabel():
〃輸入待查詢值
JTextField"Content=newJTextFieldO;
JButtonjB0K=newJButtonO;
JButtonjBCancel=newJButton0;
〃標(biāo)識查詢類別
StringsearchTyp=newStringO;
〃記錄查詢值
StringsearchValue=newStringO;
StringinfoShowType=newStringO;
〃定義用于數(shù)據(jù)庫操作日勺對象
DatabaseDB=newDatabase();
ResultSetrs;
Stringsql=newStringO:
〃定義單項選擇按鈕及一種按鈕組
JRadioButtonjRByName=newJRadioButton0:
JRadioButtonjRByNum=newJRadioButton();
JRadioButtonjRByClass=newJRadioButtonO:
ButtonGroupgroup=newButtonGroup():
jLabell.seFont(newJava.awt.Font("Dialog”,0,12));
xYLayoutl.setWidth(298);
xYLayoutl.setHeight(130);
this.getContentPane().setLayout(xYLayoutl);
jBOK.setText(〃確定〃);
jBOK.addActionListcncr(newsearchjBOKactionAdapter(this));
jBCancel.setFont(newJava.wat.Font(〃Dilog”,0,12));
jBCancel.setText(〃取消〃);
jBCancel.addActionListener(new
search_jBCancel_actionAdapter(this));
jTContent.setFont(newJava.awt.Font("Dialog”,0,12));
jTContent.setText(〃〃);
this.setTitle(〃人員查詢〃);
jRByName.setFont(newJava.awt.Font("Dialog”,0,12));
jRByName.setText(〃按姓名〃);
jRByName.addActionListener(new
searchjRByName_actionAdcipter(this));
jRByNum.setFont(newJava.awt.Font("Dilog”,0,12));
jRByNum.setText(〃按學(xué)號〃);
jRByNum.addActionListener(newsearch_jRByNum_actionAdapter(this));
jRByClass.setFont(newJava.awt.Font("Dialog”,0,12));
jRByClass.setText(〃按班級〃);
jRByClass.addActionListener(new
searchJRByClassactionAdapter(this));
group.add(jRByNamc);
group,add(jRByNum);
group,add(jRByClass);
this.getContentPane().add(JLabeli,new
XYConstraints(26,23,161,23));
this.getContentPane().add(JTContent,new
XYConstraints(30,57,130,25));
this.getContentPane().add(JBOK,newXYConstraints(200,23,66,24));
this.getContentPane().add(JBCancel,new
XYConstraints(200,59,66,24));
this.getContentPane().add(JRByName,new
XYConstraints(24,103,66,17));
this.getContentPane0.add(JRByNum,new
XYConstraints(95,103,-1,16));
this.getContentPane().add(JRByClass,new
XYConstraints(168,103,69,16));
voidsetLabelText(Stringcontent){
jLabel1.setText(content);
}
〃設(shè)置查詢類型
voidsetType(Stringi){
infoShowType=i;
)
〃設(shè)置要顯示的I人員信息窗體
voidsetShowT)rpe(Stringtype){
infoShowType=type;
}
voidlistShowO{
stuShowstuList=newstuShowO;
DimensiondlgSize=stuList.getPerferredSize();
DimensionfrnSize=getSize();
Pointloc=getLocation();
stuList.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSiz
e.height-dlgSize.height)/2+loc.y);
stuList.pack:);
stuList.show:);
stuList.resultShow(rs);
}
voidsetContent(stulnforesult){
try(
result.jTNum.setText(rs.getString(,,Num,/));
result.jTName.setText(rs.getString(〃Name〃));
result.jTSex.setText(rs.getString("Sex"));
result.jTHome.setText(rs.getString(〃Home〃));
result.jTClass.setText(rs.getString("Class")j;
result.jTEthnic.setText(rs.getString(,,Ehinic,/));
result.jTBirth.setText(rs.getString("Birthday"));
}
catch(SQLExceptionex){}
voidshowResult0{
〃在修改人員信息模塊中調(diào)用查詢
if(infoShowType二二〃edit〃){
setContent(menuClass.editlnfo);
menuClass.editinfo.setAbled(false);
menuClass.editlnfo.setButton(true,true,true,false,false);
)
〃在刪除人員模塊中調(diào)用查詢
elseif(infoShowType二二〃del〃){
setContent(menuClass.dellnfo);
menuClass.dellnfo.setAbled(false);
menuClass.dellnfo.setButton(true,true,true,false,false);
}
else{
menuClass.STFal1.setLocation(200,160);
menuClass.STFal1.pack();
menuClass.SIFall.show();
setContent(me
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年倉庫溫濕度記錄表(冷鏈藥品)
- 2024年長白朝鮮族自治縣招教考試備考題庫及答案解析(奪冠)
- 急診護(hù)理中急性心肌梗死的急救處理流程及制度
- 江蘇鹽城市五校聯(lián)盟2025-2026學(xué)年度第一學(xué)期期末學(xué)情調(diào)研檢測高一年級英語試題(含答案無聽力原文及音頻)
- 河北省石家莊市趙縣2025-2026學(xué)年八年級上學(xué)期1月期末考試道德與法治試卷(無答案)
- 2025-2026學(xué)年度第一學(xué)期期末質(zhì)量檢測七年級道德與法治試卷
- 2024年黑龍江中醫(yī)藥大學(xué)馬克思主義基本原理概論期末考試題含答案解析(必刷)
- 2025年哈爾濱北方航空職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析(必刷)
- 2025年浙江特殊教育職業(yè)學(xué)院單招職業(yè)技能測試題庫帶答案解析
- 2025年寧強(qiáng)縣招教考試備考題庫附答案解析
- 2020春人教版部編本三年級下冊語文全冊課文原文
- 《微生物與殺菌原理》課件
- 醫(yī)療機(jī)構(gòu)藥事管理規(guī)定版
- DB34T 1909-2013 安徽省鉛酸蓄電池企業(yè)職業(yè)病危害防治工作指南
- 北京市歷年中考語文現(xiàn)代文之議論文閱讀30篇(含答案)(2003-2023)
- 檔案學(xué)概論-馮惠玲-筆記
- 全國民用建筑工程設(shè)計技術(shù)措施-結(jié)構(gòu)
- (正式版)YST 1693-2024 銅冶煉企業(yè)節(jié)能診斷技術(shù)規(guī)范
- 1999年勞動合同范本【不同附錄版】
- 全國優(yōu)質(zhì)課一等獎職業(yè)學(xué)校教師信息化大賽《語文》(基礎(chǔ)模塊)《我愿意是急流》說課課件
- 初三寒假家長會ppt課件全面版
評論
0/150
提交評論