《Visual C# NET程序設(shè)計(jì)基礎(chǔ)》課件011_第1頁
《Visual C# NET程序設(shè)計(jì)基礎(chǔ)》課件011_第2頁
《Visual C# NET程序設(shè)計(jì)基礎(chǔ)》課件011_第3頁
《Visual C# NET程序設(shè)計(jì)基礎(chǔ)》課件011_第4頁
《Visual C# NET程序設(shè)計(jì)基礎(chǔ)》課件011_第5頁
已閱讀5頁,還剩155頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第11章綜合案例:學(xué)生信息管理系統(tǒng)11.1需求概述11.2系統(tǒng)總體設(shè)計(jì)11.3系統(tǒng)的實(shí)現(xiàn)

學(xué)習(xí)目標(biāo)●了解學(xué)生信息管理系統(tǒng)的需求●掌握學(xué)生信息管理系統(tǒng)的設(shè)計(jì)方法●實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)本章將以大家熟悉的學(xué)生信息管理系統(tǒng)為案例背景,采用軟件工程化的思想和流行的三層開發(fā)模式,將本書所學(xué)到的知識融入到本案例中,達(dá)到學(xué)完本書內(nèi)容就可以做項(xiàng)目的目的。11.1需求概述隨著學(xué)校的規(guī)模不斷擴(kuò)大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生的各種信息量也成倍增長。面對龐大的信息量,就需要建立學(xué)生信息管理系統(tǒng)來提高學(xué)生管理工作的效率。通過這樣的系統(tǒng),可以做到信息的規(guī)范管理、科學(xué)統(tǒng)計(jì)和快速的查詢,從而減少管理方面的工作量。根據(jù)和軟件用戶的溝通,確定學(xué)生信息管理系統(tǒng)主要的功能需求如下:

(1)有關(guān)學(xué)籍等信息的輸入,包括學(xué)生基本信息、所在班級、所學(xué)課程和成績等。(2)學(xué)生信息的查詢,包括學(xué)生基本信息、所在班級、已學(xué)課程、所有成績和獎罰信息等。

(3)學(xué)生信息(包括獎罰信息)修改。

(4)班級管理信息的輸入,包括班級設(shè)置、年級信息和班級輔導(dǎo)員等。

(5)班級管理信息的查詢。

(6)班級管理信息的修改。

(7)學(xué)校基本課程信息的輸入。

(8)基本課程信息的修改。

(9)學(xué)生課程的設(shè)置和修改。

(10)學(xué)生成績信息的輸入。(11)學(xué)生成績信息的修改。

(12)學(xué)生成績信息的查詢。

(13)學(xué)生成績的報表打印。

(14)用戶登錄信息的添加、修改和刪除等。

(15)用戶登錄的密碼修改。

(16)數(shù)據(jù)庫文件的備份。11.2系統(tǒng)總體設(shè)計(jì)了解了項(xiàng)目的需求后,下面將根據(jù)需求對該項(xiàng)目進(jìn)行功能模塊設(shè)計(jì)和數(shù)據(jù)模塊的設(shè)計(jì)。本項(xiàng)目采用了三層設(shè)計(jì)模式,分別為界面表現(xiàn)層、數(shù)據(jù)訪問層、數(shù)據(jù)層,如圖11-1所示。11.2.1功能模塊設(shè)計(jì)系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)信息關(guān)系的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)的結(jié)構(gòu)關(guān)系如圖11-2所示。系統(tǒng)的結(jié)構(gòu)關(guān)系圖是系統(tǒng)的總體功能分析,是在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成的。圖11-1三層開發(fā)模式圖11-2系統(tǒng)結(jié)構(gòu)關(guān)系圖

以下是上述各模塊結(jié)構(gòu)的描述。

1.系統(tǒng)用戶管理模塊用戶管理模塊主要實(shí)現(xiàn)以下功能:●用戶名修改;●添加用戶;●修改用戶密碼;●數(shù)據(jù)庫文件備份。

2.學(xué)籍管理模塊學(xué)籍信息管理模塊主要實(shí)現(xiàn)以下功能:●注冊學(xué)生學(xué)籍信息;●修改學(xué)生學(xué)籍信息;●查詢學(xué)生學(xué)籍信息。3.課程班級信息管理模塊

班級信息主要實(shí)現(xiàn)以下功能:●添加班級及輔導(dǎo)員信息;●修改班級及輔導(dǎo)員信息;●查詢班級及輔導(dǎo)員信息。課程信息主要實(shí)現(xiàn)以下功能:●添加班級課程信息;●查詢班級課程信息。

4.成績管理模塊成績管理模塊主要實(shí)現(xiàn)以下功能:●添加學(xué)生成績;●修改學(xué)生成績;●查詢個人成績;●查詢班級成績;●打印班級成績。

5.學(xué)生獎罰信息管理模塊獎罰信息模塊主要實(shí)現(xiàn)以下功能:●添加學(xué)生獎罰信息;●修改學(xué)生獎罰信息;●查詢學(xué)生獎罰信息。

11.2.2數(shù)據(jù)模塊設(shè)計(jì)

1.?dāng)?shù)據(jù)處理流程

系統(tǒng)的總體處理數(shù)據(jù)流程如圖11-3所示。圖11-3處理流程圖2.?dāng)?shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

根據(jù)上述數(shù)據(jù)處理流程,在本項(xiàng)目中的數(shù)據(jù)庫采用了Microsoft推出的Access數(shù)據(jù)庫,這是微軟集成到Office中的一個桌面數(shù)據(jù)庫,能夠快速方便地和Office的其他套件綜合使用。由于Access具有顯著的簡易性和有效性,大量的桌面數(shù)據(jù)庫系統(tǒng)都采用Access作為后臺數(shù)據(jù)庫。使用Access的好處還在于,如果你的系統(tǒng)擴(kuò)展到Client/Server模式,就可以使用Microsoft的數(shù)據(jù)庫服務(wù)器軟件SQLServer,此時,程序只需要簡單地修改一下鏈接(ADO的數(shù)據(jù)源)就可以了,這將為程序的平滑擴(kuò)展提供非常便利的條件。1)本系統(tǒng)中所涉及到的主要實(shí)體

(1)登錄信息表:{用戶名,密碼}。

(2)學(xué)生信息表:{學(xué)號,姓名,性別,出生年月,民族,籍貫,家庭住址,電話,入學(xué)年份,班名,專業(yè)名,政治面貌,職務(wù),宿舍住址,班內(nèi)序號},如圖11-4所示。

(3)課程表:{班級,課程},如圖11-5所示。

(4)學(xué)生成績表:{班級,學(xué)號,姓名,性別,課程名稱,成績,備注},如圖11-4所示。

(5)班級輔導(dǎo)員信息表:{班級名稱,輔導(dǎo)員,電話},如圖11-5所示。

(6)學(xué)生獎罰信息表:{學(xué)號,姓名,班級,獎罰,日期,備注},如圖11-6所示。圖11-4學(xué)生信息表和學(xué)生成績表圖11-5班級輔導(dǎo)員信息表和課程表圖11-6學(xué)生獎罰信息表和登錄信息表2)本系統(tǒng)所涉及到的主要結(jié)構(gòu)設(shè)計(jì)

(1)邏輯結(jié)構(gòu)設(shè)計(jì)。在數(shù)據(jù)庫的邏輯結(jié)構(gòu)中分別定義了每個表中所需的字段信息,這是數(shù)據(jù)庫設(shè)計(jì)中關(guān)鍵的一步。

(2)物理結(jié)構(gòu)設(shè)計(jì)。系統(tǒng)的物理結(jié)構(gòu)具體由數(shù)據(jù)庫來設(shè)計(jì)與生成,此處略。

(3)數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系。系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)由標(biāo)準(zhǔn)數(shù)據(jù)庫語言SQL生成。

(4)實(shí)體聯(lián)系圖設(shè)計(jì)如圖11-7所示。圖11-7實(shí)體聯(lián)系圖11.3系?統(tǒng)?的?實(shí)?現(xiàn)本部分根據(jù)功能模塊和數(shù)據(jù)模塊的設(shè)計(jì),在VisualStudio.NET2005中實(shí)現(xiàn)該系統(tǒng)。主要介紹了該系統(tǒng)各模塊的界面以及相應(yīng)功能實(shí)現(xiàn)的源代碼與分析。圖11-8項(xiàng)目源文件結(jié)構(gòu)在各模塊進(jìn)行介紹之前,關(guān)于本項(xiàng)目的一些配置說明如下:

(1)為了方便使用該系統(tǒng),本項(xiàng)目采用了小型桌面數(shù)據(jù)庫Access。在為讀者提供的源代碼文件中。本項(xiàng)目的數(shù)據(jù)庫文件放在項(xiàng)目的Bin文件夾下面的Debug目錄下,文件名為MyDb.MDB。

(2)本項(xiàng)目的源代碼文件結(jié)構(gòu)如圖11-8所示。圖11-8項(xiàng)目源文件結(jié)構(gòu)

文件說明如下:①其中Program.cs類文件為主類文件,包含了程序啟動的主方法Main()。②本項(xiàng)目采用了三層開發(fā)模式,即數(shù)據(jù)層、數(shù)據(jù)訪問層和界面層。其中:數(shù)據(jù)層就是數(shù)據(jù)庫文件,里面保存了本項(xiàng)目所有的數(shù)據(jù)。數(shù)據(jù)訪問層是介于界面層和數(shù)據(jù)層之間的橋梁,其中保含了連接數(shù)據(jù)庫和插入、更新、刪除、檢索數(shù)據(jù)的接口。圖11-8中的MyData.cs就是數(shù)據(jù)訪問層。界面層主要是用來為用戶提供輸入和顯示數(shù)據(jù)的接口,它主要通過調(diào)用數(shù)據(jù)訪問層提供的接口來操作數(shù)據(jù)庫。圖11-8中帶窗體小圖標(biāo)的文件都是界面層。③數(shù)據(jù)訪問層Mydata.cs類的源代碼如下:

usingSystem;usingSystem.Data;usingSystem.Data.OleDb;usingSystem.Windows.Forms;namespace學(xué)生信息管理系統(tǒng)

{publicclassMyData{//定義連接字符串

privatestringstrDSN;//定義數(shù)據(jù)庫連接對象

privateOleDbConnectionmyConn;//構(gòu)造函數(shù)實(shí)現(xiàn)打開數(shù)據(jù)庫連接publicMyData(){strDSN="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=mydb.mdb";myConn=newOleDbConnection(strDSN);myConn.Open();}//利用DataReader對象檢索數(shù)據(jù)

publicOleDbDataReadergetDataReader(StringstrSQL){try{OleDbCommandmyCmd=newOleDbCommand(strSQL,myConn);OleDbDataReaderdatareader=myCmd.ExecuteReader();returndatareader;}catch(Exceptione){MessageBox.Show(e.Message,"數(shù)據(jù)庫操作失敗",MessageBoxButtons.OK,?MessageBoxIcon.Information);returnnull;}}//更新數(shù)據(jù)庫

publicBooleanupdateSql(StringstrSQL){OleDbCommandmyCmd=newOleDbCommand(strSQL,myConn);try{myCmd.ExecuteNonQuery();returntrue;}catch(Exceptione){MessageBox.Show(e.Message,"提示",MessageBoxButtons.OK,?MessageBoxIcon.Information);returnfalse;}}//創(chuàng)建數(shù)據(jù)集publicDataSetgetDataSet(stringstr){OleDbDataAdapterda=newOleDbDataAdapter(str,myConn);DataSetds=newDataSet();da.Fill(ds,"");returnds;}//關(guān)閉數(shù)據(jù)庫連接

publicvoidcloseConnection(){ try {myConn.Close(); }catch(Exceptionsqle) {Console.WriteLine("數(shù)據(jù)庫關(guān)閉失敗"); }}}}

這個類是一個公共模塊,為其他模塊提供數(shù)據(jù)庫訪問的服務(wù)。④本項(xiàng)目的界面有別于傳統(tǒng)界面,這是由于在本項(xiàng)目的界面設(shè)計(jì)中使用了皮膚組件。該皮膚組件為SuniSoft.IrisSkin.,讀者可以從網(wǎng)上下載該組件,然后添加到工具箱中。從工具箱中拖到界面上后,設(shè)置皮膚,不用寫一句代碼,所有屬于該項(xiàng)目的界面都會重新穿上新“衣裳”。11.3.1系統(tǒng)登錄模塊系統(tǒng)登錄模塊的主要功能是為了提高系統(tǒng)的安全性管理,需要用戶提供正確的用戶名和帳號才能登錄本系統(tǒng)進(jìn)行使用。本系統(tǒng)的用戶名和密碼保存在數(shù)據(jù)庫的“登錄信息表”中。在本書提供的項(xiàng)目源代碼中,可以找到該數(shù)據(jù)庫。默認(rèn)的用戶名和密碼分別是“admin”和“555”,通過正確的用戶名和密碼就可以登錄到系統(tǒng),如圖11-9所示。圖11-9登錄界面Login.cs源代碼如下:

publicpartialclassLogin:Form//登錄窗體

{publicLogin(){InitializeComponent();//初始化

}privatevoidbtnCancel_Click(objectsender,EventArgse) //取消按鈕

{Application.Exit();//退出程序

}privatevoidbtnLogin_Click(objectsender,EventArgse){FrmMainFm=(FrmMain)this.Owner;MyDatamydata=newMyData();//為自定義的數(shù)據(jù)庫表讀寫類

Stringstr=“select*from登錄信息表where用戶名

='"+this.txtUsername.Text+"'and密碼='"+this.txtPassword.Text+"'";//SQL語名:查詢登錄信息表中的符合規(guī)定的數(shù)據(jù)

OleDbDataReaderobjDbr=mydata.getDataReader(str);//mydata的一個方法,返回OleDbDataReader對象,用來讀寫數(shù)據(jù)庫

if(objDbr.HasRows) //判斷符合規(guī)定的記錄是否存在

{while(objDbr.Read()) //利用循環(huán)逐行讀取數(shù)據(jù)

{stringstrusername=objDbr["用戶名"].ToString().Trim();//取出當(dāng)前所指記錄的用戶名stringusername=this.txtUsername.Text;//用戶名文本框的數(shù)據(jù)

if(username==strusername)//文本框數(shù)據(jù)與登錄信息表的用戶名進(jìn)行比較

{stringstuPSW=objDbr["密碼"].ToString().Trim();//取出表中密碼

stringpsw=this.txtPassword.Text;//密碼文本框數(shù)據(jù)

if(stuPSW==psw)//同理:當(dāng)比較結(jié)果為真時,就打開主界面

{Fm.UserName=strusername;Fm.PassWord=stuPSW;Fm.Show();this.Close();}}}}else{//進(jìn)行提示,并把文本框清空,重新輸入

MessageBox.Show("密碼或用戶名錯誤","警告",MessageBoxButtons.OK,?MessageBoxIcon.Error);txtUsername.Text="";txtPassword.Text="";txtUsername.Focus();}mydata.closeConnection(); //關(guān)閉數(shù)據(jù)庫連接

}}11.3.2系統(tǒng)主模塊系統(tǒng)主模塊是本系統(tǒng)的應(yīng)用界面,在本界面上集成了本系統(tǒng)的所有功能,共有八個功能菜單和14個子菜單(功能模塊),從而實(shí)現(xiàn)了本系統(tǒng)從用戶管理、繳費(fèi)管理、課程管理、成績管理等系統(tǒng)的具體功能,同時,在系統(tǒng)管理模塊中可以完成對本系統(tǒng)的安全性管理,如圖11-10所示。圖11-10系統(tǒng)主界面FrmMain.cs源代碼如下:

publicpartialclassFrmMain:Form//此為主界面的源代碼

{publicstringUserName;publicstringPassWord;publicFrmMain(){InitializeComponent();}privatevoidFrmMain_Load(objectsender,EventArgse){Loginlog=newLogin();log.Owner=this;this.Visible=false;log.Show();}privatevoidmniRegisterQuery_Click(objectsender,EventArgse){FrmRegisterobjFR=newFrmRegister();//此為調(diào)用新生注冊窗體

objFR.MdiParent=this;objFR.Show();}privatevoidMenuItem10_Click(objectsender,EventArgse){FrmCourseobjFC=newFrmCourse(); //此為調(diào)用課程設(shè)置窗體

objFC.MdiParent=this;objFC.btnCanceladd.Visible=false;objFC.Show();}privatevoidMenuItem11_Click(objectsender,EventArgse){FrmClassobjFCL=newFrmClass(); //此為調(diào)用班級設(shè)置窗體

objFCL.MdiParent=this;objFCL.Show();}privatevoidMenuItem7_Click(objectsender,EventArgse){FrmPersonobjFP=newFrmPerson(); //此為調(diào)用學(xué)生信息窗體

objFP.MdiParent=this;objFP.Show();}privatevoidmniExit_Click(objectsender,EventArgse){Application.Exit(); //結(jié)束程序運(yùn)行

}privatevoidmniLogin_Click(objectsender,EventArgse){FrmAlterPasswordobjFAP=newFrmAlterPassword(UserName,PassWord);//調(diào)用修改用戶窗體

objFAP.MdiParent=this;objFAP.Show();}privatevoidMenuItem2_Click(objectsender,EventArgse){FrmAddUserobjFAD=newFrmAddUser();//調(diào)用添加用戶窗體

objFAD.MdiParent=this;objFAD.Show();}privatevoidMenuItem3_Click(objectsender,EventArgse){FrmDelUserobjFDU=newFrmDelUser();//調(diào)用刪除用戶窗體

objFDU.MdiParent=this;objFDU.Show();}privatevoidMenuItem14_Click(objectsender,EventArgse)//數(shù)據(jù)庫的備份

{FileInfofile=newFileInfo(Application.StartupPath+@"\mydb.mdb");//設(shè)置要備份的數(shù)據(jù)庫所在路徑

SaveFileDialog1.DefaultExt="mdb";//設(shè)置相關(guān)數(shù)據(jù)庫信息

SaveFileDialog1.FileName="mydb";SaveFileDialog1.Title="數(shù)據(jù)庫文件備份...";SaveFileDialog1.Filter="Accessfiles(*.mdb)|*.mdb";SaveFileDialog1.InitialDirectory=@"c:\";SaveFileDialog1.OverwritePrompt=true;if(SaveFileDialog1.ShowDialog()==DialogResult.OK) //選擇要保存新數(shù)據(jù)庫的路徑{file.CopyTo(SaveFileDialog1.FileName,true); //此方法對數(shù)據(jù)庫進(jìn)行備份

MessageBox.Show("數(shù)據(jù)庫備份成功","提",MessageBoxButtons.OK,?MessageBoxIcon.Information);}else{MessageBox.Show("找不到數(shù)據(jù)庫文件,任務(wù)無法完成","警告",MessageBoxButtons.OK,MessageBoxIcon.Error);}}privatevoidMenuItem6_Click(objectsender,EventArgse){frmPrizeobjPrize=newfrmPrize();//此為調(diào)用學(xué)生獎罰信息窗體

objPrize.MdiParent=this;objPrize.Show();}privatevoidMenuItem8_Click(objectsender,EventArgse){QueryResultobjQR=newQueryResult(); //此為調(diào)用班級信息窗體

objQR.MdiParent=this;objQR.Show();}privatevoidMenuItem9_Click(objectsender,EventArgse){newInputBox().Show();}privatevoidMenuItem12_Click(objectsender,EventArgse){ResultobjResult=newResult();//此為調(diào)用成績錄入窗體

objResult.MdiParent=this;objResult.Show();}}11.3.3用戶管理模塊用戶管理模塊是本系統(tǒng)的安全性設(shè)置模塊,對用戶進(jìn)行管理。此模塊主要有添加、刪除、修改功能,同時還兼有數(shù)據(jù)庫備份功能,如圖11-11、11-12所示。圖11-11添加用戶

圖11-12刪除用戶

下面的三個事件處理過程分別是添加用戶、修改用戶密碼和刪除用戶的實(shí)現(xiàn)源代碼:

privatevoidbtnSubmit_Click(objectsender,EventArgse)//此為添加用戶的源代碼

{try{stringstr="select用戶名from登錄信息表where用戶名='"+txtUsername.Text+"'";//SQL語句主要用來查找登錄信息表是否存在有此用戶

OleDbDataReaderobjDbr=mydata.getDataReader(str);if(objDbr.HasRows==true)落成//存在則彈出警告,取消注冊

{MessageBox.Show("用戶名已經(jīng)存在");this.txtUsername.Text="";this.txtPasswordone.Text="";this.txtPasswordtwo.Text="";txtUsername.Focus();}objDbr.Close();}catch(Exceptionex){MessageBox.Show(ex.Message,"警告",MessageBoxButtons.OK,

MessageBoxIcon.Error);

}if(this.txtPasswordone.Text.Trim()=?="")return;if(this.txtPasswordone.Text!=this.txtPasswordtwo.Text){MessageBox.Show("兩次密碼輸入不一致");this.txtUsername.Text="";this.txtPasswordone.Text="";this.txtPasswordtwo.Text="";txtPasswordone.Focus();}stringstrinsert="insertinto登錄信息表(用戶名,密碼)values('"+this.txtUsername.Text+"','"+this.txtPasswordone.Text+"')"; //此語句主要用于添加用戶if(mydata.updateSql(strinsert)){MessageBox.Show("注冊成功");this.Close();}}privatevoidbtnSubmit_Click(objectsender,EventArgse) //此方法主要用于修改用戶密碼

{if(PassWord==txtPassword.Text){stringstr="update登錄信息表set密碼='"+txtNewPassword.Text+"'where用戶名='"+txtname.Text+"'";//更新密碼的SQL語句

if(mydata.updateSql(str)){MessageBox.Show("密碼修改成功!(如需再修改請重新登錄)",“提示",MessageBoxButtons.OK,MessageBoxIcon.Information);this.Close();}}else{MessageBox.Show("原密碼輸入錯誤,請重新輸入!","提示",MessageBoxButtons.OK,?MessageBoxIcon.Information);txtPassword.Text="";txtNewPassword.Text="";txtPassword.Focus();}}privatevoidbtnDel_Click(objectsender,EventArgse) //刪除用戶的源碼

{stringstr=“select*from登錄信息表where用戶名

='"+cmbAlluser.Text+"'";

stringpassword="";OleDbDataReaderobjDbr=mydata.getDataReader(str);while(objDbr.Read()){password=objDbr["密碼"].ToString().Trim();}if(password==txtPassword.Text){stringstrdelete="deletefrom登錄信息表where用戶名='"+cmbAlluser.Text+"'";//SQL的刪除語句if(mydata.updateSql(strdelete)){MessageBox.Show("用戶刪除成功","提示",MessageBoxButtons.OK,

MessageBoxIcon.Information);txtPassword.Text="";FrmDelUser_Load(sender,e);}}else{MessageBox.Show(“密碼錯誤,不允許刪除”,“警告",MessageBoxButtons.OK,

MessageBoxIcon.Error);txtPassword.Text="";FrmDelUser_Load(sender,e);}}11.3.4學(xué)籍信息管理模塊學(xué)籍信息管理模塊主要由學(xué)籍查詢、學(xué)籍修改、學(xué)生個人信息等窗體組成,達(dá)到學(xué)生信息管理的一體化,如圖11-13、11-14所示。圖11-13新生注冊圖11-14學(xué)生個人信息查詢

下面的兩個事件處理過程和三個方法實(shí)現(xiàn)了新生注冊、查詢學(xué)生基本信息、查詢學(xué)生成績信息和查詢學(xué)生獎罰信息的實(shí)現(xiàn)源代碼。

privatevoidbtnConfirm_Click(objectsender,EventArgse)//此方法為注冊新生信息

{if(MyDUpDown.Text==""){MessageBox.Show("請選擇入學(xué)年份!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);MyDUpDown.Focus();return;}…………//此處代碼省略,主要用于判斷文本框是否為空stringbirth=ComboBox1.Text+"-"+ComboBox2.Text;MyDatamydata=newMyData();Stringstrsql=“insertinto學(xué)生信息表(學(xué)號,姓名,性別,出生年月,民族,籍貫,家庭住址,電話,入學(xué)年份,班名,專業(yè)名,政治面貌,職務(wù),宿舍住址,班內(nèi)序號)values('"+txtID.Text+"','"+txtName.Text+"','"+cmbSex.Text+"','"+birth+"','"+txtNation.Text+"','"+txtzg.Text+"','"+txtFamilyAddr.Text+"','"+txtPhone.Text+"',"+MyDUpDown.Text+",'"+cmbClass.Text+"','"+cmbProfession.Text+"','"+cmbVisage.Text+"','"+txtDuty.Text+"','"+txtbedroomaddr.Text+"',"+txtClassnumber.Text+")";//此SQL語句主要用于在學(xué)生信息表中插入一條新的學(xué)生信息記錄if(mydata.updateSql(strsql))//保存數(shù)據(jù),保存成功返回一個true{?MessageBox.Show(“記錄插入成功”,“提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}txtID.Text=""; //對輸入文本框進(jìn)行清空

txtName.Text="";txtNation.Text="";txtDuty.Text="";txtzg.Text="";txtPhone.Text="";txtClassnumber.Text="";txtFamilyAddr.Text="";txtbedroomaddr.Text="";}//下邊的方法為學(xué)生個人信息的查詢publicvoidbaseInfo_load() //學(xué)生基本信息

{stringstr=“select學(xué)號,入學(xué)年份,姓名,性別,出生年月,電話,民族,政治面貌,職務(wù),班名,專業(yè)名,家庭住址,宿舍住址from學(xué)生信息表where

學(xué)號='"+txtIdsearch.Text+"'";OleDbDataReaderobjDbr=mydata.getDataReader(str);while(objDbr.Read()){txtyear.Text=objDbr["入學(xué)年份"].ToString().Trim();txtname.Text=objDbr["姓名"].ToString().Trim();txtsex.Text=objDbr["性別"].ToString().Trim();txtbrith.Text=objDbr["出生年月"].ToString().Trim();txtPhone.Text=objDbr["電話"].ToString().Trim();txtNation.Text=objDbr["民族"].ToString().Trim();txtVisage.Text=objDbr["政治面貌"].ToString().Trim();txtDuty.Text=objDbr["職務(wù)"].ToString().Trim();txtclass.Text=objDbr["班名"].ToString().Trim();txtProfession.Text=objDbr["專業(yè)名"].ToString().Trim();txtFamilyaddr.Text=objDbr["家庭住址"].ToString().Trim();

txtBedroomaddr.Text=objDbr["宿舍住址"].ToString().Trim();}}

publicvoiddgResult_load() //學(xué)生成績

{dgResult.TableStyles.Clear();stringstr="select*from學(xué)生成績表where學(xué)='"+txtIdsearch.Text+"'";

DataSetDs=mydata.getDataSet(str);dgResult.DataSource=Ds.Tables[0];}

publicvoiddgPrize_load() //學(xué)生獎罰信息

{dgPrize.TableStyles.Clear();stringstr=“select*from學(xué)生獎罰信息表where學(xué)號='"+txtIdsearch.Text+"'";DataSetDs=mydata.getDataSet(str);

dgPrize.DataSource=Ds.Tables[0];}privatevoidtxtpersonalsubmit_Click(objectsender,EventArgse){txtPhone.Text="";txtname.Text="";txtsex.Text="";txtbrith.Text="";txtyear.Text="";txtNation.Text="";txtVisage.Text="";txtDuty.Text="";txtclass.Text="";txtProfession.Text="";txtFamilyaddr.Text="";txtBedroomaddr.Text="";dgResult_load();//調(diào)用顯示學(xué)生成績方法

dgPrize_load();//調(diào)用顯示學(xué)生獎罰方法

baseInfo_load();//調(diào)用顯示學(xué)生基本信息方法

}11.3.5課程班級管理模塊課程班級管理模塊主要包括課程設(shè)置,班級設(shè)置,班主任管理。因?yàn)楸鞠到y(tǒng)中有些功能模塊具有相似之處,所以在這里只為此模塊進(jìn)行一個簡單的說明,如圖11-15、11-16所示。圖11-15課程設(shè)置圖11-16班級輔導(dǎo)員設(shè)置privatevoidbtnSearchcourse_Click(objectsender,EventArgse)//此方法用于顯示課程表中的所有課程

{stringstr="select課程from課程表where班級='"+cmbClass.Text+"'";OleDbDataReaderobjDbr=mydata.getDataReader(str);lstbAllCourse.Items.Clear();while(objDbr.Read()){lstbAllCourse.Items.Add(objDbr["課程"].ToString().Trim());//提取數(shù)據(jù)表的中課程信息寫入到組合框中privatevoidbtnModify_Click(objectsender,EventArgse)?//添加輔導(dǎo)員

{stringstr="update班級輔導(dǎo)員信息表set班級名稱='"+cmbName.Text+"',輔導(dǎo)員='"+txtCharge.Text+"',電話='"+txtPhone.Text+"'where班級名稱='"+cmbName.Text+"'";

if(mydata.updateSql(str)){MessageBox.Show("記錄修改成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);add();}}privatevoidbtnDelete_Click(objectsender,EventArgse)//刪除班級輔導(dǎo)員信息表的所指記錄

{if(MessageBox.Show("確定刪除嗎?","提示",MessageBoxButtons.OKCancel,?MessageBoxIcon.Information)==DialogResult.OK){stringstr="deletefrom班級輔導(dǎo)員信息表where班級名稱='"+cmbName.Text+"'";if(mydata.updateSql(str)){MessageBox.Show("記錄刪除成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);add();}}}11.3.6成績信息管理模塊學(xué)生成績管理模塊主要是對學(xué)生成績進(jìn)行管理。在使用學(xué)生成績管理模塊前請先進(jìn)入學(xué)生信息管理模塊錄入相關(guān)信息,如圖11-17所示。圖11-17成績錄入privatevoidbtnConfirm_Click(objectsender,EventArgse)//此模塊用于學(xué)生成績添加記錄

{if(cmbCourse.Text=?=""){MessageBox.Show("請先選擇課程!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);cmbCourse.Focus();return;}if(txtID.Text=?=""){MessageBox.Show("請輸入學(xué)號!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);txtID.Focus();return;}if(txtName.Text=?=""){MessageBox.Show("請輸入姓名!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);txtName.Focus();return;}if(cmbSex.Text=?=""){MessageBox.Show("請選擇性別!!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);cmbSex.Focus();return;}if(txtResult.Text=?=""){MessageBox.Show("請輸入分?jǐn)?shù)!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);txtResult.Focus();return;}MyDatamydata=newMyData();Stringstrsql="insertinto學(xué)生成績表(班級,學(xué)號,姓名,性別,課程名稱,成績,備注)values('"+cmbClassname.Text+"','"+txtID.Text+"','"+txtName.Text+"','"+cmbSex.Text+"','"+cmbCourse.Text+"','"+txtResult.Text+"','"+txtRemarks.Text+"'"+")";if(mydata.updateSql(strsql))//保存學(xué)生成績記錄

{MessageBox.Show("記錄插入成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}cmbClassname.Text="";txtID.Text="";txtName.Text="";cmbSex.SelectedItem=0;cmbCourse.Text="";txtResult.Text=""

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論