![新生報到系統(tǒng)詳細設(shè)計說明書_第1頁](http://file4.renrendoc.com/view10/M03/39/14/wKhkGWW7NVCAIxWAAAF9TaevNnM752.jpg)
![新生報到系統(tǒng)詳細設(shè)計說明書_第2頁](http://file4.renrendoc.com/view10/M03/39/14/wKhkGWW7NVCAIxWAAAF9TaevNnM7522.jpg)
![新生報到系統(tǒng)詳細設(shè)計說明書_第3頁](http://file4.renrendoc.com/view10/M03/39/14/wKhkGWW7NVCAIxWAAAF9TaevNnM7523.jpg)
![新生報到系統(tǒng)詳細設(shè)計說明書_第4頁](http://file4.renrendoc.com/view10/M03/39/14/wKhkGWW7NVCAIxWAAAF9TaevNnM7524.jpg)
![新生報到系統(tǒng)詳細設(shè)計說明書_第5頁](http://file4.renrendoc.com/view10/M03/39/14/wKhkGWW7NVCAIxWAAAF9TaevNnM7525.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
新生報到系統(tǒng)詳細設(shè)計說明書
(小組成員:XX)
1引言
1.1編寫目的
在新生報道系統(tǒng)概要設(shè)計說明書中,已經(jīng)解決了實現(xiàn)系統(tǒng)需求的程序模塊設(shè)計問題。包括如何把
該系統(tǒng)化分為若干個模塊、決定各個模塊之間的接口、模塊自己傳遞的信息,以及數(shù)據(jù)結(jié)構(gòu)、模塊
結(jié)構(gòu)的設(shè)計等,以下的詳細設(shè)計報告中將對在本階段中對系統(tǒng)所做的所有詳細設(shè)計進行說明。
在本階段中,確定該如何具體的實現(xiàn)所要求的系統(tǒng),以便在編碼階段直接翻譯成用具體程序語言
書寫的程序。主要工作有,根據(jù)軟件需求說明書中所描述的數(shù)據(jù),功能運行、性能需求,并依據(jù)概
要設(shè)計說明書所確定的處理流程、總體結(jié)構(gòu)和模塊外部設(shè)計,軟件系統(tǒng)的結(jié)構(gòu),逐個模塊的程序描
述。
1.2背景
軟件開發(fā)名稱:新生報到管理系統(tǒng)
項目任務(wù)提出者:黃岡師范學(xué)院
軟件開發(fā)者:數(shù)學(xué)與計算機科學(xué)學(xué)院
用戶:黃岡師范學(xué)院
軟件開發(fā)人員:
定義
FRMS:新生報到管理系統(tǒng)
B/S:Brower/Server:瀏覽器/服務(wù)器
1.3參考資料
《新生報到管理系統(tǒng)可行性分析報告》
《新生報到管理系統(tǒng)需求分析報告》
《新生報到管理系統(tǒng)概要設(shè)計報告》
《軟件工程導(dǎo)論》
《使用軟件工程》
《軟件文檔寫作》
2程序系統(tǒng)的組織結(jié)構(gòu)
新生報到系統(tǒng)
3程序1(標(biāo)識符)設(shè)計說明
3.1程序描述
從面需求分析可以看出,系統(tǒng)功能龐雜,主要分為前臺瀏覽器(B/S)信息發(fā)布和數(shù)
據(jù)查詢,后臺(C/S)數(shù)據(jù)管理和處理,學(xué)生管理功能部分數(shù)據(jù)分為5類:新生相關(guān);在校生相關(guān);
組織社團相關(guān);畢業(yè)生相關(guān);學(xué)生成績綜合查詢相關(guān)。從使用和操作的功能上分,有三種用戶:普
通用戶(瀏覽器瀏覽、查詢);業(yè)務(wù)數(shù)據(jù)管理人員(學(xué)生工作輔導(dǎo)員、教務(wù)干事);系統(tǒng)管理員。為
便于整個系統(tǒng)組織管理,把各個相對獨立的數(shù)據(jù)或功能組織到整個大系統(tǒng)中來,我們把各個相對獨
立的功能完全獨立設(shè)計,編譯成獨立的目標(biāo)(功能)模塊(singleExecutable),各功能模塊最后被集
成到一個稱為虛擬桌面的控制臺模塊中。相應(yīng)地將系統(tǒng)結(jié)構(gòu)分為一個控制臺程序和五個子系統(tǒng),各
子系統(tǒng)又分為若干個子模塊。對應(yīng)于每個模塊,幾乎都有錄入、查詢、修改、刪除、查看詳細資料
這幾個功能。整個業(yè)務(wù)流程就是有這幾種基本功能實現(xiàn)的。在這里每個模塊都要用到的功能沒必要
在每個子模塊里重復(fù)闡述,在每個子模塊里只列出區(qū)別于其他子模塊的功能實現(xiàn)。
3.2功能
(1)一般功能:
(2)特殊功能1:
3.3性能
(1)系統(tǒng)登錄:用戶輸入網(wǎng)址,來到登陸界面,輸入用戶名與密碼進行登錄。用戶名與密碼
有誤時提醒用戶重新輸入,并清除用戶的錯誤輸入數(shù)據(jù),如果用戶按取消,說明用戶自己意識到輸
入有誤,故系統(tǒng)也要實現(xiàn)用戶名與密碼欄。
(2)報到管理:當(dāng)有新生報到時,點擊'報到管理'按鈕,系統(tǒng)將進入報到管理界面,工作
人員輸入學(xué)生報到的錄取通知書號,點擊查詢按鈕,系統(tǒng)顯示該學(xué)生的基本信息、,并提供輔導(dǎo)員、
班級等信息,方便幫助學(xué)生找到老師與班級。這個界面適合幾個部門共同使用,檔案收取的部門進
入該界面后,輸入學(xué)生通知書號,在‘報道管理’欄的'高中檔案繳納'處點擊單選框'是',登記
學(xué)生已經(jīng)繳納檔案,同理,組織關(guān)系處也采用類似操作,在組織關(guān)系繳納后面勾選‘是
(3)繳費管理:工作人員點擊‘繳費管理’,顯示繳費管理界面,輸出學(xué)生錄取通知書號,
如果新生已經(jīng)將錢按額存入銀行,則系統(tǒng)可以在此查詢繳費是否成功,系統(tǒng)必須顯示出繳費成功與
否,如果已經(jīng)交費,則系統(tǒng)在‘繳費管理‘處'是‘欄自動打上勾。未交費則在'否’欄打上勾,
此時要求新生去交費,到現(xiàn)場交費后拿繳費單刀報道人員處,人員將其繳費情況錄入系統(tǒng),即在繳
費管理欄選擇'是
(4)宿舍管理:工作人員輸入學(xué)生的錄取通知書號,查看學(xué)生基本信息,并確定分配的宿
舍分別配給哪一位同學(xué)。工作人員在“寢室分配”欄里的下拉列表中選擇查詢的條件,當(dāng)這條件選
擇后,系統(tǒng)開始查詢數(shù)據(jù),將數(shù)據(jù)顯示在下面的表格中,查詢出學(xué)生滿意的寢室后,在右下角的“寢
室登記“欄,輸入房間編號,點擊‘登記'按鈕,對學(xué)生分配宿舍。
(5)系統(tǒng)管理:實現(xiàn)新用戶注冊,系統(tǒng)密碼修改。
3.4輸入項
新生注冊碼作為新生的唯一標(biāo)示,其余的信息均由系統(tǒng)生成。
3.5輸出項
本系統(tǒng)的輸出主要是總體信息,而且大部分是數(shù)字信息。
如:
學(xué)工部:它需要知道有多少人到了,還缺多少人,他們分布在哪些系。
財務(wù)部:它需要知道有多少人交費了,還有多少人沒有交費,欠費人的名單及欠費金額。這
些學(xué)生分布在哪些系。
各系部:它需要知道哪些專業(yè)(班級)的報到情況,交費情況。
而以上所有信息必須準(zhǔn)確、清晰、明了,不能有任何的失誤。
3.6算法
功能說明:打開系統(tǒng),來到登陸界面,輸入用戶名與密碼進行登陸。用戶名與密碼有誤時
提醒用戶重新輸入,并清除用戶的錯誤輸入數(shù)據(jù),如果用戶按取消,說明用戶自己意識到有
錯誤,故系統(tǒng)也要實現(xiàn)清空用戶名與密碼欄。
3.7流程邏輯
繳費流程如下:
報到管理流程:
3.8接口
1、外部接口
(1)用戶界面:采用非常流行的WEB界面。
(2)軟件接口:運行于IE6.0以上的版本。
(3)硬件接口:支持一般X86系統(tǒng)微型計算機。
2、內(nèi)部接口
有IE調(diào)用本系統(tǒng),進入登陸模塊。退出系統(tǒng)模塊,執(zhí)行完畢返回操作系統(tǒng)。主模
塊由登陸模塊調(diào)用,接收系統(tǒng)功能相應(yīng)信息,啟動個人信息管理、收費、退費收費匯
總、宿舍情況管理、宿舍分配。個人信息管理模塊由模塊調(diào)用,執(zhí)行增加、查詢、修
改刪除個人信息的功能。部門審查模塊由系統(tǒng)菜單模塊調(diào)用,執(zhí)行刪除、查詢、審查
上報申請書的功能。匯總模塊由系統(tǒng)菜單模塊調(diào)用,執(zhí)行查詢、匯總申請書的功能。
系統(tǒng)管理模塊由系統(tǒng)菜單模塊調(diào)用,執(zhí)行數(shù)據(jù)維護、用戶管理的功能。
3.9存儲分配
數(shù)據(jù)記錄格式設(shè)計為了便于操作人員、填表人員、現(xiàn)場工作人員填寫,我們把表格設(shè)計得比
較規(guī)范而獨特。采用了一下技術(shù):1)風(fēng)格2)陰影3)選擇框4)顏色5)設(shè)立數(shù)字域
3.10注釋設(shè)計
為了分析具備什么特點的系統(tǒng)易于修改,必須先找出修改一個系統(tǒng)的困難來自何處。系統(tǒng)
的修改,往往是某一個模塊或某一子系統(tǒng)的細節(jié)的一些變動,或者是子系統(tǒng)組合關(guān)系的某些變
動,更常見的是某一局部的數(shù)據(jù)結(jié)構(gòu)或執(zhí)行語句的修改。這種修改的本生并不困難,困難在于
找出需要修改的地方和這一修改對其他部分的影響。我們知道系統(tǒng)各個部分之間存在控制、調(diào)
用、數(shù)據(jù)交換等種種聯(lián)系。對某一局部的修改,可能直接或間接的影響到系統(tǒng)其他部分。對A
的修改波及到B,而對B的修改又會影響到C,E…,人們把這種影響形象地稱為“水波效應(yīng)”。雨
因此要進行系統(tǒng)某一個局部的修改,必須十分小心的追蹤這一修改所波及的各個方面,這是系
統(tǒng)難以修改的主要原因。一個易于修改的系統(tǒng)應(yīng)該由一些相對獨立、功能單一的模塊按照層次
結(jié)構(gòu)組成。這些模塊之間不必要的聯(lián)系都已去掉,而且他們的功能及相互關(guān)系都已闡明。這就
是結(jié)構(gòu)化設(shè)計的基本思想。
3.11限制條件
無
3.12測試計劃
詳見代碼實現(xiàn)部分
3.13尚未解決的問題
無
4.1.1登陸界面設(shè)計及實現(xiàn)
(1)主要功能
登錄界面主要是對用戶進行身份、密碼驗證,以保證系統(tǒng)的安全性,以及對管理員身份角色的
判斷,設(shè)置對應(yīng)不同的權(quán)限。。
(2)界面設(shè)計
包含兩個文本框和一個下拉列表框,下拉列表框包括管理員和操作員兩種角色,用戶登陸時
根據(jù)自己不同的角色進行選擇,當(dāng)用戶輸入的賬號和密碼正確時,進入對應(yīng)的操作主界面,當(dāng)用戶輸
入密碼不正確時,會提示密碼錯誤,請重新輸入
系統(tǒng)登陸主界面如下圖:
(3)部分事件代碼實現(xiàn)
登錄“確定”按鈕單擊事件處理程序:
privatevoidbtLoginClick1(objectsender,EventArgse)
(
s=cmbRoles.Text;
if(this.txtUserName.Text==""||this.txtPwd.Text=="")
(
MessageBox.Show("賬號或"密碼不能為空”);
txtUserName.Focus();
}
else
(
if(this.cmbRoles.Text=="管理員")
try
sqldb.myconn.Open();
stringname=txtUserName.Text;
stringpwd=txtPwd.Text;
stringsql="select*fromAdminwhereLoginName='"+this.txtUserName.Text
+“'andLoginPwd='〃+this.txtPwd.Text+"'〃;
//stringsql="selectcount(*)fromAdminwhereLoginName=@LoginNameand
LoginPwd^@LoginPwd,z;//參數(shù)化sql語句
//SqlCommandcmd=newSqlCommand(sql,sqldb.myconn);
//cmd.Parameters.Add(newSqlParameter(^?LoginName^,name));
//cmd.Parameters.Add(newSqlParameter(z,@LoginPwd/z,pwd));
inti=Convei't.Tolnt32(sqldb.executescalar(sql));
〃判斷密碼和賬號是否有誤
//inti=Convert.ToTnt32(cmd.ExecuteScalar(sql));
sqldb.myconn.Close();
if(i=0)
(
MessageBox.Show("賬號或密碼有誤“);
txtUserName.Text=
txtPwd.Text=
txtUserName.Focus();
)
//if(sqldb.executescalar(sql)==null)
//{
//MessageBox.Show("賬號或密碼有誤”);
//textBoxl.Text=〃”;
//textBox2.Text=
//textBoxl.Focus();
//)
else
(
Program,flag=1;
//this.HideO;
this.Close();
)
)
catch
(
sqldb.myconn.Close();
)
else
stringsql="select*fromOperwhereLoginName=+this.txtUserName.Text+
“'andLoginPwd='〃+this.txtPwd.Text+
if(sqldb.executescalar(sql)==null)
(
MessageBox.Show("賬號或密碼有誤“);
txtUserName.Text二〃〃;
txtPwd.Text="〃;
txtUserName.Focus();
}
else
(
Program,flag=1;
this.Close();
)
)
}
)
4.1.2主界面設(shè)計
主界面作為父窗體,窗體上端使用menuStrip控件做的一個菜單項,菜單
面是用toolstrip做的一個工具欄,如果為管理員登陸,擁有所有權(quán)限,上面
菜單及按鈕全部都能使用,如果是操作員登陸,只有報到統(tǒng)計查詢和新生信息查詢,修改密碼權(quán)限
其余功能都不能使用,菜單項和按鈕為灰色
主界面如下圖:
4.1.3信息導(dǎo)入界面設(shè)計及實現(xiàn)
(1)主要功能
將存放新生信息的execl表,導(dǎo)入到系統(tǒng)的數(shù)據(jù)庫中
界面設(shè)計,
一個打開文件夾的導(dǎo)入按鈕,另一個保存到數(shù)據(jù)庫的保存按鈕,和一個顯示導(dǎo)入數(shù)據(jù)
的datagridview控件
信息導(dǎo)入界面如下圖:
(1)部分事件代碼實現(xiàn)
〃導(dǎo)入execel代碼
privatevoidbtlnfoTnto^Click(objectsender,EventArgse)
(
OpenFi1eDialogopenFileDialogl=newOpenFileDialogO;
openFileDialogl.Filter="Execlfiles(*.xls)I*.xls”;
openFileDialogl.Fi1terlndex=0;
openFileDialogl.RestoreDirectory=true;
openFileDialogl.FileName=nul1;
openFileDialogl.ShowDialogO;〃選擇要導(dǎo)入的execel
stringPath=openFileDialogl.FileName;
txtFilePath.Text=Path;
stringstrConn="Provider=Microsoft.Jet.OLEDB.4.0;"+'DataSource="+
txtFilePath.Text++"ExtendedProperties=Excel8.0;";
OleDbConnectionconn=newOleDbConnection(strConn);
stringstrExcel=
01eDbDataAdaptermyda=null;
DataSetds=null;
strExcel="select*from[sheetl$]〃;
myda=new01eDbDataAdapter(strExcel,strConn);
ds=newDataSet();
if(txtFilePath.Text!=
(
myda.Fi11(ds);
dGVStuInf.DataSource=ds.Tables[0];
)
else
(
MessageBox.Show("你沒有選擇要導(dǎo)入的數(shù)據(jù)”);
return;
)
)
〃將excel表保存到數(shù)據(jù)庫
privatevoidbtSaveDB_Click(objectsender,EventArgse)
(
try
(
stringstrConn="Provider:Microsoft.Jet.OLEDB.4.0;"+“DataSourcei十
txtFilePath.Text++"ExtendedProperties=Excel8.0;";
OleDbConnectionconn=newOleDbConnection(strConn);
stringstrExcel=〃”;
01eDbDataAdaptermyda=null;
DataSetds=null;
strExcel="select*from[sheetl$]”;
myda=new01eDbD<itaAdapter(strExcel,strConn);
ds=newDataSet();
myda.Fill(ds);
conn.Close();
DataTabledt=ds.Tables[0];
stringstrInsertComm;
for(inti=0;i<dt.Rows.Count;i++)
(
strTnsertComm=
strlnsertComm="Insertinto
student(ksh,xm,xb,csrq,sfzh,zzmm,mz,yxdm,yxmc,zydm,zymc,cc,xz,xxxs,kslb,shengshi,jIguan,score)
;〃數(shù)據(jù)庫表的字段
strlnsertComm+="values(";
for(intj=0;j<18;j++)
if(j>0)
strlnsertComm+=";"+dt.Rows[i][j].ToStringO.Trim()+
else
(
strlnsertComm+="+dt.Rows[i][j].ToStringO.TrimO+〃'〃;
)
)
strlnsertComm+=")”;
sqldb.execute(strlnsertComm);
)
MessageBox.Show("導(dǎo)入成功!〃);
State();
)
catch
(
MessageBox.Show("導(dǎo)入失敗");
)
}
4.1.4資格審查界面設(shè)計及實現(xiàn)
(1)主要功能
核對報到新生的信息,對報到新生進行標(biāo)示
(2)界面設(shè)計
通過輸入報到新生的準(zhǔn)考證號,進行核對,如果正確,在下面顯示新生的信息,并進行核
對,如果無誤,選擇報到狀態(tài),進行保存
資格審查界面如下圖
事新生報到系統(tǒng)-[濟格審查匚叵區(qū)
(2)部分事件代碼實現(xiàn)
查詢按鈕單擊處理程序:
〃資格審查
privatevoidbtstuCheckClick(objectsender,EventArgse)
(
stringpicname=txtksh.Text+〃.jpg”;
SqlConnectionmyconn;
myconn=newSqlConnection();
myconn.ConnectionString=
ConfigurationManager.ConnectionStrings[^sqlconnz,].ConnectionString;
myconn.Open();
stringsql="Select
xm,xb,sfzh,zzmm,kslb,yxmc,jiguan,zymc,xxxs,score,mz,yxdm,zydm,csrq,shengshi,RegStatefrom
studentwhereksh='〃+txtksh.Text+
SqlCommandcommand=newSqlCommand(sql,myconn);
SqlDataReaderdateReader=command.ExecuteReader();
if(!dateReader.HasRows)
(
MessageBox.Show("查詢有誤"?,請核對你的輸,"錯誤提示”);
return;
}
else
{〃判斷該生是否已經(jīng)注冊
dateReader.ReadO;
stringReg=dateReader[^RegState^].ToStringO;
if(Reg=T)
MessageBox.Show("該生|已注冊,請核對你的輸入”);
txtksh.Text="〃;
return;
)
〃從數(shù)據(jù)庫中讀..取??數(shù)據(jù)
stringxm=(string)dateReader[O];
stringxb=(string)dateReader[l];
stringsfzh二(string)dateReader[2];
stringzzmm=(string)dateReader[3];
stringkslb二(string)dateReader[4];
stringyxmc=(string)dateReader[5];
stringjiguan二(string)dateReader[6];
stringzymc=(string)dateReader[7];
stringxxxs二dateReader[8].ToStringO
stringscore=dateReader[9].ToStringO;
stringmz二(string)dateReader[10];
stringyxdm=(string)dateReader[11].ToStringO;
stringzydm=(string)dateReader[12].ToString();
stringcsrq=(string)dateReader[13];
stringshengshi二(string)dateReader[14];
txtxm.Text=xm;
txtxb.Text=xb;
txtsfzh.Text=sfzh;
txtzzmm.Text=zzmm;
txtkslb.Text=kslb;
txtyxmc.Text=yxmc;
txtjiguan.Text=jiguan;
txtxxxs.Text=xxxs;
txtzymc.Text=zymc;
txtscore.Text=score;
txtmz.Text=mz;
txtyxdm.Text=yxdm;
txtzydm.Text=zydm;
txtcsrq.Text=csrq;
txtshengshi.Text=shengshi;
//判斷該生照片是否存在..
try
(
stringfilePath=Application.Startuppath+“\\Image\\〃+picname;
picSTU.Image=Image.FromFile(filePath);
)
catch
MessageBox.Show("該生照不存在!");
Clear();
picSTU.Image=picSTU.InitialImage;
return;
)
)
4.1.5報到率查詢界面設(shè)計及實現(xiàn)
(1)主要功能
按條件對報到新生進行統(tǒng)計,以圖標(biāo)的形式顯示出來
(2)界面設(shè)計
左邊用datagridview綁定顯示查詢的報到率數(shù)據(jù),右邊運用第三方圖表控件進行報
到率的顯示
報到率界面如下圖:
(3)部分事件代碼實現(xiàn)
選擇專業(yè)時的處理程序:
〃按專業(yè)對報到新生的圖表統(tǒng)計
privatevoidcmbprofessSelectedlndexChanged(objectsender,EventArgse)
{
//comboBox2.Text="--請選擇
Profess(cmbprofess.Text);
chartletl.ChartTitle.Text="報到信息圖表統(tǒng)計名稱
stringsql;
chartletl.AppearanceStyle=
FanG.Chartlet.AppearanceSty1es.Bar_2D_Aurora_FlatCrystal_Glow_NoBorder;/7圖表顯示形式
//chartletl.Background.Paper=Color.FromArgb(0,0,0,0);
//chartlet1.AppearanceStyle=
FanG.Chartlet.AppearanceStyles.Pie3DAuroraFlatCrystalNoGlowNoBorder;
〃全部專業(yè)以柱狀圖形式顯示
if(cmbprofess.Text=="一全部專業(yè)-")
(
//chartletl.ChartTitle.Text="報到信息”;
sql="selectzymcas'專業(yè)count(*)as'錄取",count(RegState)as'報到
1,cast(round(cast(count(RegState)asdecimal)/cast(count(*)asdecimal),3)*100asdecimal(10,2))
as'報到率"°%'fromstudentgroupbyzymc”;
}
〃各個專業(yè)餅狀圖a顯示
else
(
chartletl.ChartTitle.Text="報到信息";
chartlet1.AppearanceStyle=
FanG.Chartlet.AppearanceStyles.Pie3DAuroraFlatCrystalNoGlowNoBorder;
sql="selectstate,count(*)as'錄取',count(RegState)as'報到'fromstudent
wherezymc='"+cmbprofess.Text+groupbystate”;
)
try
(
SqlDataAdapterda=newSq1Data^^dapter(sql,sqldb.myconn);
DataSetds=newDataSet();
da.Fill(ds);
chartletl.BindChartData(ds.Tables[0]);
chartletl.Refresh();
)
catch
(
return;
)
)
〃專業(yè)報到率表
privatevoidProfess(stringcboProfess)
(
DataSetds=newDataSet();
stringsql;
if(cboProfess=="一全部專業(yè)
(
sql=string.Format(,zselectzymcas'專業(yè)',count(*)as'錄取',count(RegState)
as'報至cast(round(cast(count(RegState)asdecimal)/cast(count(*)asdecimal),3)*100as
decimal(10,2))as'報到率"fromstudentgroupbyzymc");
)
else
(
sql=string.Format(^selectzymcas'專業(yè)i',count(*)as'錄取',count(RegState)
as*JR?],cast(round(cast(count(RegState)asdecimal)/cast(count(*)asdecimal),3)*100as
decimal(10,2))as'報到率fromstudentwherezymc='"+cboProfess+groupbyzymc");
}
SqlDataAdapterda=newSqlDataAdapter(sql,sqldb.myconn);
da.Fill(ds);
dGVReg.DataSource=ds.Tables[0];
)
4.1.6系統(tǒng)分班界面設(shè)計及實現(xiàn)
(1)主要功能
根據(jù)所選專業(yè)的人數(shù)設(shè)置要分班級的個數(shù),然后點擊分班自動產(chǎn)生該專業(yè)每個學(xué)生的班級
名稱,學(xué)生的學(xué)號,并且每個班級男女比例很相近
(2)界面設(shè)計
窗體上方有兩個下拉列表框的級聯(lián)查詢,根據(jù)院系,選擇對應(yīng)的專業(yè),
下面有兩個文本框,一個顯示該專業(yè)的人數(shù),另一個填寫要分班級的個數(shù),右邊有一個分班按鈕,
進行分班,下面datagridview顯示分班的結(jié)果
(3)部分事件代碼實現(xiàn)
分班按鈕的單擊處理程序:
publicvoidclassset(DataSetdsStu,intClassCount)
{
stringprofessName="";
professName=cmbprofess.Text;
^region創(chuàng)建班級
stringClassic!=
StringBuiIderclassList=newStringBuiIder("BEGINTRANSACTION");〃插班級sql
for(inti=0;i<ClassCount;i++)
(
stringClassName=professName+(i+1)+”班〃班級名稱
stringProfessTD=cmbprofess.SelectedValue.ToStringO;
Classld=〃〃;
Classld=(i+1).ToStringO;
if(Classld.Length==1)
{
Classld=〃0"+Classld;
)
classList.AppendFormat(z,insertintoClass(classID,className,professID)
values('{0}{1}{2}');",Classld,ClassName,ProfessID);
}
classList.Append("COMMITTRANSACTION");〃執(zhí)行事務(wù)
intreturnNum=sqldb.execute(classList.ToStringO);
if(returnNum<=0)
(
MessageBox.Show("系;統(tǒng)分班出錯請重新分班”);
return;
)
ttendregion
ttregion分Q?班VO
StringBuiIderstulist=newStringBuiIder("BEGINTRANSACTION");〃插學(xué)生sql
//stringProId=dsStu.Tables[0].Rows[0][,zzydnfz].ToStringO;
DataSetclassDS=sqldb.sqlSet(^select*fromClasswhereprofessID='〃+
cmbprofess.SelectedValue+〃);
〃男D生
intyushu=0;
DataRowf]boysum=dsStu.Tables[。].Select("xb='男D'","kshasc");
for(intnum=0;num<boysum.Length;num++)
(
yushu=num%ClassCount;
stulist.AppendFormat(,zupdatestudentsetclassID=,(0}*,className=,⑴',cid二’(2}
whereksh='{3}';",classDS.Tables[0].Rows[yushu][*classID*].ToStringO,
classDS.Tables[0].Rows[yushu]["className"].ToStringO,
classDS.Tables[0].Rows[yushu]ToStringO,boysum[num][/zksh,z].ToStringO);
}
〃女生
DataRowf]girlsum=dsStu.Tables[0].Select(〃xb二'女",〃kshasc");
for(intnum=0;num<girlsum.Length;num++)
(
yushu=num%ClassCount;
stulist.AppendFormat(^updatestudentsetclassID=,{0;1,,className=,⑴',cid二’(2)
whereksh='{3}';",classDS.Tables[0].Rows[yushu][^classID*].ToString(),
classDS.Tables[0].Rows[yushu]["className"].ToString(),
classDS.Tables[0].Rows[yushu]ToString(),girlsum[num][,zksh,z].ToStringO);
)
stulist.AppendCCOMMITTRANSACTION");
returnNum=sqldb.execute(stulist.ToStringO);
Sno(classDS);
)
〃分學(xué)號
publicboolSno(DataSetclassDS)
(
intClassCount=int.Parse(txtclasscount.Text);
stringsql=string.Format(''select*fromstudentwherezymc='"+cmbprofess.Text+〃'and
RegState=TO;
DataSetStuDS=sqldb.sqlSet(sql);
stringnian=DateTime.Now.Year.ToStringO;
stringxihao=StuDS.Tables[0].Rows[0][z/yxdmz,].ToString();
stringzhuanye=StuDS.Tables[0].Rows[0][^zydm*].ToStringO;
stringClassID=
stringClassic!=
stringxuliehao=
stringSNo=””;
DataRowf]ClassStuDRS=null;
StringBuildersb=newStringBuiIderCBEGINTRANSACTION〃);
for(intclassindex=0;classindex<classDS.Tables[0].Rows.Count;classlndex++)
(
ClassID=classDS.Tables[0].Rows[classindex]ToStringO;
ClassStuDRS=StuDS.Tables[。].Select("cid='"+ClassID+"kshASC");
^region查詢出班級編號ClassID
stringClasssql=string.Format(z,selectclassIDfromClasswhereid={0}”,ClassID);
SqlCommandcomm=newSqlCommand(Classsql,sqldb.myconn);
if(sqldb.myconn.State==ConnectionState.Closed)
{
sqldb.myconn.Open();
SqlDataReadeidr=comm.ExecuteReader();
if(dr.HasRows)
{
dr.Read();
Classic!=dr["ClassID"].ToStringO;
sqldb.myconn.Close();
}
#endregion
for(intClassStuIndex=1;ClassStuIndex<=ClassStuDRS.Length;ClassStuIndex++)
{
xuliehao=ClassStuIndex.ToStringO;
switch(xuliehao.Length)
(
case1:
xuliehao="000〃+xuliehao;
break;
case2:
xuliehao=“00〃+xuliehao;
break;
case3:
xuliehao="0"+xuliehao;
break;
default:
break;
)
SNo=nian+xihao+zhuanye+Classic!+xuliehao;
sb.AppendFormat(z,updatestudentsetSNO='{01*whereksh=,⑴';",SNo,
ClassStuDR
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《勞動合同法》知識考試題庫100題(含答案)
- 2025年株洲師范高等專科學(xué)校高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 《綠色環(huán)保培訓(xùn)教材》課件
- 山東省博興二中高三教學(xué)質(zhì)量檢測語文試題(含答案)
- 精準(zhǔn)醫(yī)療治療服務(wù)項目合同
- 通勤車合同協(xié)議書
- 2025科學(xué)儀器行業(yè)前景及發(fā)展趨勢分析報告
- 蔬菜水果居間合同
- 安裝窗簾合同范本
- 設(shè)備訂購合同協(xié)議
- (一模)蕪湖市2024-2025學(xué)年度第一學(xué)期中學(xué)教學(xué)質(zhì)量監(jiān)控 英語試卷(含答案)
- 完整版秸稈炭化成型綜合利用項目可行性研究報告
- 2025中國海油春季校園招聘1900人高頻重點提升(共500題)附帶答案詳解
- 膽汁淤積性肝硬化護理
- 《數(shù)據(jù)采集技術(shù)》課件-Scrapy 框架的基本操作
- (2024)河南省公務(wù)員考試《行測》真題及答案解析
- 湖北省十一校2024-2025學(xué)年高三上學(xué)期第一次聯(lián)考化學(xué)試題 含解析
- 醫(yī)療保險結(jié)算與審核制度
- 圍城讀書分享課件
- 2025年河北省單招語文模擬測試二(原卷版)
- 2024版房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)內(nèi)容解讀
評論
0/150
提交評論