新生報到系統(tǒng)詳細設(shè)計說明書_第1頁
新生報到系統(tǒng)詳細設(shè)計說明書_第2頁
新生報到系統(tǒng)詳細設(shè)計說明書_第3頁
新生報到系統(tǒng)詳細設(shè)計說明書_第4頁
新生報到系統(tǒng)詳細設(shè)計說明書_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

評論

0/150

提交評論