版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 報(bào) 告</p><p> 課程設(shè)計(jì)名稱 .NET課程設(shè)計(jì) </p><p> 專 業(yè) 信息管理與信息系統(tǒng) </p><p> 班 級(jí) 信管 二 班 </p><p> 學(xué) 號(hào) </p><p&g
2、t;<b> 2011年9月2日</b></p><p><b> 目 錄</b></p><p> 一、設(shè)計(jì)任務(wù)與要求1</p><p> 1.1 設(shè)計(jì)任務(wù)與要求1</p><p> 1.2 選題目的與意義1</p><p> 1.3 團(tuán)隊(duì)介紹和人
3、員分工1</p><p><b> 二、需求分析3</b></p><p> 2.1 用戶需求分析3</p><p> 2.2 開發(fā)環(huán)境分析3</p><p> 三、系統(tǒng)總體設(shè)計(jì)4</p><p> 3.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)(或系統(tǒng)設(shè)計(jì)思想)4</p><p&
4、gt; 3.2 功能模塊劃分4</p><p> 3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)5</p><p><b> 四、程序?qū)崿F(xiàn)11</b></p><p> 4.1 系統(tǒng)管理模塊實(shí)現(xiàn)11</p><p> 4.2 專業(yè)管理模塊實(shí)現(xiàn)14</p><p> 4.3 課程管理模塊實(shí)現(xiàn)19<
5、/p><p> 4.4 學(xué)生管理模塊25</p><p> 4.5 成績(jī)管理模塊實(shí)現(xiàn)28</p><p> 4.6用戶管理模塊實(shí)現(xiàn)32</p><p><b> 五、設(shè)計(jì)體會(huì)34</b></p><p><b> 一、設(shè)計(jì)任務(wù)與要求</b></p>
6、<p> 1.1 設(shè)計(jì)任務(wù)與要求</p><p><b> 設(shè)計(jì)任務(wù):</b></p><p> 根據(jù)所選題目,完成對(duì)大學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)的分析、設(shè)計(jì)和編碼,實(shí)現(xiàn)用戶登錄,管理員對(duì)學(xué)生信息的錄入修改以及學(xué)生對(duì)自己信息的查詢,最后寫出課程設(shè)計(jì)報(bào)告。</p><p><b> 要求如下:</b><
7、;/p><p> (1)掌握C#的語(yǔ)言規(guī)范;</p><p> (2)掌握C#及ASP.NET的編程技術(shù),主要是數(shù)據(jù)庫(kù)的連接及處理;</p><p> (3)掌握.NET平臺(tái)應(yīng)用軟件的開發(fā)環(huán)境和開發(fā)過(guò)程;</p><p> (4)掌握面向?qū)ο?、軟件工程的思想和程序設(shè)計(jì)方法。</p><p> 1.2 選題目的與意
8、義</p><p> 系統(tǒng)針對(duì)學(xué)校學(xué)生信息的特點(diǎn)以及管理中實(shí)際需要而設(shè)計(jì),能夠有效地實(shí)現(xiàn)學(xué)生信息管理的信息化,減輕管理人員的工作負(fù)擔(dān),高效率、規(guī)范化地管理大量的學(xué)生信息,并避免人為操作的錯(cuò)誤和不規(guī)范行為。</p><p> 1.3 團(tuán)隊(duì)介紹和人員分工</p><p><b> 二、需求分析</b></p><p>
9、; 2.1 用戶需求分析</p><p> 本系統(tǒng)的功能主要包括以下幾個(gè)方面:</p><p> ●系統(tǒng)給管理員添加年級(jí)信息、班級(jí)信息、所開設(shè)的課程信息和系統(tǒng)用戶信息,對(duì)用戶進(jìn)行權(quán)限設(shè)置并對(duì)其進(jìn)行維護(hù);</p><p> ●新生入學(xué)時(shí),普通管理員錄入大學(xué)生的基本信息,并在以后的教學(xué)中對(duì)大學(xué)生信息進(jìn)行維護(hù);</p><p> ●考試結(jié)
10、束后,由任課老師對(duì)大學(xué)生的成績(jī)進(jìn)行錄入,并對(duì)成績(jī)進(jìn)行分析;</p><p> ●學(xué)期之初,導(dǎo)師給每位大學(xué)生選擇課程,并可以對(duì)大學(xué)生的信息和成績(jī)進(jìn)行查詢;</p><p> ●每位大學(xué)生可以根據(jù)自己的需要對(duì)以上的錄入的信息進(jìn)行適當(dāng)?shù)牟樵儯?lt;/p><p> 2.2 開發(fā)環(huán)境分析</p><p> 客戶端操作系統(tǒng):Windows XP、V
11、ista、Win7</p><p> 數(shù)據(jù)庫(kù)管理系統(tǒng):Microsoft SQL Server 2005</p><p> 前臺(tái)開發(fā)工具:Microsoft Visual Studio 2005、2008 中文版</p><p> 后臺(tái)數(shù)據(jù)庫(kù)管理工具:SQL Server 2005</p><p><b> 三、系統(tǒng)總體設(shè)計(jì)
12、</b></p><p> 3.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)(或系統(tǒng)設(shè)計(jì)思想)</p><p> 大學(xué)生信息管理是一項(xiàng)非常重要的工作,他關(guān)系到整個(gè)學(xué)校的工作效率。一個(gè)好的信息管理系統(tǒng)能夠方便系統(tǒng)管理人員對(duì)學(xué)校的基本數(shù)據(jù)進(jìn)行維護(hù),包括信息的增加、修改以及對(duì)各項(xiàng)信息的變動(dòng)等操作。采用大學(xué)生管理系統(tǒng)不僅可以節(jié)省人力物力,而且可以增強(qiáng)學(xué)校資料的安全性,提高學(xué)校的管理能力。</p>
13、<p> 大學(xué)生信息管理涉及專業(yè)、課程、成績(jī)、個(gè)人信息等的管理,需要處理大量數(shù)據(jù)和信息,而且對(duì)這些數(shù)據(jù)和信息的準(zhǔn)確性、及時(shí)性都要求非常高,任何的錯(cuò)誤和遺漏都會(huì)造成學(xué)校管理的混亂;若采用純?nèi)斯さ姆椒ㄟM(jìn)行管理有一定難度,因此,目前大多數(shù)學(xué)校都開始采用計(jì)算機(jī)技術(shù)來(lái)實(shí)現(xiàn)大學(xué)生信息的管理。</p><p> 3.2 功能模塊劃分</p><p> 大學(xué)生信息管理系統(tǒng)由系統(tǒng)管理、專
14、業(yè)管理、課程管理、大學(xué)生管理、成績(jī)管理、用戶管理等模塊組成,具體如下。</p><p><b> 1.系統(tǒng)管理模塊</b></p><p> 可以添加新用戶,新建角色,并且為角色賦予權(quán)限。</p><p><b> 2.專業(yè)管理模塊</b></p><p> 可以瀏覽、添加、修改、刪除、專業(yè)
15、信息。</p><p><b> 3.課程管理模塊</b></p><p> 可以瀏覽、添加、修改、刪除課程信息。</p><p><b> 4.大學(xué)生管理模塊</b></p><p> 可以瀏覽、添加、修改、刪除、大學(xué)生基本信息</p><p><b>
16、 5.成績(jī)管理模塊</b></p><p> 可以瀏覽、添加、修改、刪除、大學(xué)生成績(jī)信息</p><p><b> 6.用戶管理模塊</b></p><p> 可以修改密碼,重新登錄。</p><p> 大學(xué)生信息管理系統(tǒng)的系統(tǒng)功能結(jié)構(gòu)如圖3-1所示。</p><p> 圖3
17、-1 系統(tǒng)功能結(jié)構(gòu)圖</p><p><b> 3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 根據(jù)大學(xué)生信息管理系統(tǒng)的功能要求,該系統(tǒng)的數(shù)據(jù)庫(kù)命名為masterMIS,數(shù)據(jù)庫(kù)中包括7張表:</p><p> ●用戶信息表(userinfo),包含用戶的名稱、口令和角色;</p><p> ●角色信息表(roles
18、),包含角色名稱和與該角色相關(guān)的權(quán)限;</p><p> ●課程信息表(courseinfo),包含學(xué)校所開設(shè)專業(yè)的名稱級(jí)其詳細(xì)介紹;</p><p> ●大學(xué)生基本信息表(studentinfo),包含大學(xué)生的學(xué)號(hào)、姓名、性別、專業(yè)、等基本信息;</p><p> ●成績(jī)信息表(scoreinfo),包含大學(xué)生的學(xué)號(hào)、課程、成績(jī)等信息;</p>
19、<p> ●教師信息表(teacherinfo),包括教師的姓名等信息。</p><p> 下面列出了各個(gè)表的數(shù)據(jù)結(jié)構(gòu),如表3-1~表3-7所示。</p><p> 表3-1用戶信息表(userinfo)的數(shù)據(jù)結(jié)構(gòu)</p><p> 表3-2角色信息表(roles)的數(shù)據(jù)結(jié)構(gòu)</p><p> 表3-3專業(yè)信息表(
20、majorinfo)的數(shù)據(jù)結(jié)構(gòu)</p><p> 表3-4課程信息表(courseinfo)的數(shù)據(jù)結(jié)構(gòu)</p><p> 表3-5教師信息表(teacherinfo)的數(shù)據(jù)結(jié)構(gòu)</p><p> 表3-6大學(xué)生信息表(studentinfo)的數(shù)據(jù)結(jié)構(gòu)</p><p> 表3-7成績(jī)信息表(scoreinfo)的數(shù)據(jù)結(jié)構(gòu)<
21、;/p><p> 下面列出了各個(gè)表的E-R圖,如圖3-1~圖3-7所示。</p><p><b> 圖3-1用戶信息</b></p><p><b> 圖3-2角色信息</b></p><p><b> 圖3-3專業(yè)信息</b></p><p>
22、;<b> 圖3-4課程信息</b></p><p> 圖3-5大學(xué)生基本信息</p><p><b> 圖3-6成績(jī)信息</b></p><p><b> 圖3-7教師信息</b></p><p> 根據(jù)本實(shí)例的特點(diǎn),需要設(shè)置課程信息表、專業(yè)信息表、大學(xué)生信
23、息表、成績(jī)信息表和教師信息表之間的關(guān)系,如圖3-8所示。設(shè)置用戶信息表與角色信息表之間的關(guān)系,如圖3-9所示。</p><p> 圖3-8數(shù)據(jù)庫(kù)關(guān)系圖</p><p> 圖3-9用戶角色關(guān)系圖</p><p><b> 四、程序?qū)崿F(xiàn)</b></p><p> 4.1 系統(tǒng)管理模塊實(shí)現(xiàn)</p><
24、;p> 4.1.1 程序流程圖</p><p><b> 系統(tǒng)管理流程圖</b></p><p> 4.1.2關(guān)鍵算法與技術(shù)實(shí)現(xiàn)</p><p> 系統(tǒng)管理模塊包括添加用戶和新建角色兩個(gè)功能,在添加玉女冠胡界面中首先需要通過(guò)DataSet把數(shù)據(jù)庫(kù)中的數(shù)據(jù)和ComboBox控件綁定起來(lái),設(shè)置為鍵對(duì)值,代碼如例程5-1所示。</
25、p><p> 例程4-1 數(shù)據(jù)庫(kù)綁定代碼</p><p> private void AddUser_Load(object sender, System.EventArgs e)</p><p><b> {</b></p><p> DataSet ds = new DataSet();</p>&
26、lt;p> OleDbDataAdapter adp = new OleDbDataAdapter("",oleConnection1);</p><p> adp.SelectCommand.CommandText = "select RoleName from roles";</p><p> adp.Fill(ds);</p&
27、gt;<p> comRole.DataSource=ds.Tables[0].DefaultView;</p><p> comRole.DisplayMember="RoleName";</p><p> comRole.ValueMember="RoleName";</p><p><b>
28、 }</b></p><p> 單擊【確定】按鈕需要判斷信息是否輸入完整,并判斷用戶名是否已經(jīng)存在和兩次輸入的密碼是否一致。該部分代碼如例程5-2所示。</p><p> 例程4-2 【確定】按鈕的部分代碼</p><p> private void btAdd_Click(object sender, System.EventArgs e)&l
29、t;/p><p><b> {</b></p><p> if (textName.Text.Trim()==""||textPassword.Text.Trim()==""||textPWDNew.Text.Trim()==""||comRole.Text.Trim()=="")<
30、/p><p><b> {</b></p><p> MessageBox.Show("請(qǐng)輸入完整信息!","警告");</p><p><b> } </b></p><p><b> else</b></p><
31、;p><b> {</b></p><p> if (textPassword.Text.Trim()!=textPWDNew.Text.Trim())</p><p><b> {</b></p><p> MessageBox.Show("兩次密碼輸入不一致!","警告&qu
32、ot;);</p><p><b> } </b></p><p><b> else</b></p><p><b> {</b></p><p> oleConnection1.Open();</p><p> OleDbCommand c
33、md = new OleDbCommand("",oleConnection1);</p><p> string sql = "select * from userinfo where UName = '"+textName.Text.Trim()+"'";</p><p> cmd.CommandText
34、= sql;</p><p> if (null == cmd.ExecuteScalar())</p><p><b> {</b></p><p> string sql1 = "insert into userinfo (UName,PWD,RoleName) "+</p><p> &
35、quot;values ('"+textName.Text.Trim()+"','"+textPWDNew.Text.Trim()+"','"+comRole.Text.Trim()+"')";</p><p> cmd.CommandText = sql1;</p><p&
36、gt; cmd.ExecuteNonQuery();</p><p> MessageBox.Show("添加用戶成功!","提示");</p><p> this.Close();</p><p><b> } </b></p><p><b> else&l
37、t;/b></p><p> MessageBox.Show("用戶名"+textName.Text.Trim()+"已經(jīng)存在!","提示");</p><p> oleConnection1.Close();</p><p><b> }</b></p>&
38、lt;p><b> }</b></p><p><b> }</b></p><p> 在新建角色界面中,也要首先判斷輸入的信息是否完整,角色的名稱是否重復(fù),代碼如例程4-3所示。</p><p> 例程4-3 新建角色的代碼</p><p> private void btAdd_
39、Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> oleConnection1.Open();</p><p> OleDbCommand cmd = new OleDbCommand("",oleConnection1);<
40、/p><p> if (textRole.Text.Trim()!="")</p><p><b> {</b></p><p> string sql = "select * from roles where RoleName = '"+textRole.Text.Trim()+"&
41、#39;";</p><p> cmd.CommandText = sql;</p><p> if (null == cmd.ExecuteScalar())</p><p><b> {</b></p><p> string sql1 = "insert into roles value
42、s ('"+textRole.Text.Trim()+"',"+ckSys.Checked+","+ckMajor.Checked+","+</p><p> ""+ckCourse.Checked+","+ckScore.Checked+")";</p>
43、<p> cmd.CommandText = sql1;</p><p> cmd.ExecuteNonQuery();</p><p> MessageBox.Show("新建角色成功!","提示");</p><p><b> }</b></p><p>
44、<b> else</b></p><p> MessageBox.Show("角色名稱重復(fù)!","警告");</p><p><b> } </b></p><p><b> else</b></p><p> Message
45、Box.Show("角色名稱不能為空!","警告");</p><p> oleConnection1.Close();</p><p><b> }</b></p><p> 4.2 專業(yè)管理模塊實(shí)現(xiàn)</p><p> 4.2.1 程序流程圖</p><
46、;p> 4.2.2關(guān)鍵算法與技術(shù)實(shí)現(xiàn)</p><p> 添加專業(yè)信息的代碼如例程5-4所示。</p><p> 例程4-4 添加專業(yè)信息的代碼</p><p> private void btAdd_Click(object sender, System.EventArgs e)</p><p><b> {<
47、/b></p><p> if ((textName.Text.Trim()=="") || (textRemark.Text.Trim()==""))</p><p> MessageBox.Show("請(qǐng)輸入完整的專業(yè)信息","提示");</p><p><b>
48、 else</b></p><p><b> { </b></p><p> oleConnection1.Open();</p><p> string sql1 = "select * from majorinfo where MName='"+textName.Text.Trim()+&qu
49、ot;'";</p><p> oleCommand1.CommandText = sql1;</p><p> if (null!=oleCommand1.ExecuteScalar())</p><p> MessageBox.Show("專業(yè)名稱發(fā)生重復(fù)","提示");</p>&l
50、t;p><b> else</b></p><p><b> {</b></p><p> string sql2="insert into majorinfo (MName,MRemark) values ('"+textName.Text.Trim()+"','"+t
51、extRemark.Text.Trim()+"')";</p><p> oleCommand1.CommandText=sql2;</p><p> oleCommand1.ExecuteNonQuery();</p><p> MessageBox.Show("專業(yè)信息添加成功","提示"
52、);</p><p> textName.Clear();</p><p> textRemark.Clear();</p><p><b> }</b></p><p> oleConnection1.Close();</p><p><b> }</b><
53、/p><p><b> }</b></p><p> private void btClose_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> this.Close();</p><p&
54、gt;<b> }</b></p><p> 瀏覽專業(yè)信息的代碼如例程4-5所示。該部分代碼會(huì)在界面加載時(shí)被調(diào)用。</p><p> 例程4-5 瀏覽專業(yè)信息的代碼</p><p> DataSet ds;</p><p> private void Major_Load(object sender, Syst
55、em.EventArgs e)</p><p><b> {</b></p><p> oleConnection1.Open();</p><p> string sql ="select MName as 專業(yè)名稱,MRemark as 專業(yè)描述,MID as 專業(yè)編號(hào)from majorinfo";</p&
56、gt;<p> OleDbDataAdapter adp = new OleDbDataAdapter(sql,oleConnection1);</p><p> ds=new DataSet();</p><p> ds.Clear();</p><p> adp.Fill(ds,"major");</p>
57、<p> dataGrid1.DataSource=ds.Tables[0].DefaultView;</p><p> dataGrid1.CaptionText="共有"+ds.Tables[0].Rows.Count+"條記錄";</p><p> oleConnection1.Close();</p><p
58、><b> }</b></p><p> 刪除專業(yè)信息的代碼如例程4-6所示。該部分中首先要判斷是否有與該專業(yè)相關(guān)的課程,如果有則提示先刪掉課程信息再刪掉專業(yè)信息。</p><p> 例程4-6 刪除專業(yè)信息的代碼</p><p> private void btDel_Click(object sender, System.Ev
59、entArgs e)</p><p><b> {</b></p><p> if (dataGrid1.CurrentRowIndex>=0 && dataGrid1.DataSource!=null && dataGrid1[dataGrid1.CurrentCell]!=null)</p><p>
60、;<b> {</b></p><p> oleConnection1.Open();</p><p> string sql ="select * from courseinfo where MName='"+ds.Tables["major"].Rows[dataGrid1.CurrentCell.RowNum
61、ber][0].ToString().Trim()+"'";</p><p> OleDbCommand cmd=new OleDbCommand(sql,oleConnection1);</p><p> OleDbDataReader dr;</p><p> dr=cmd.ExecuteReader();</p>
62、<p> if (dr.Read())</p><p><b> {</b></p><p> MessageBox.Show("刪除專業(yè)'"+ds.Tables["major"].Rows[dataGrid1.CurrentCell.RowNumber][0].ToString().Trim()+&q
63、uot;'失敗,請(qǐng)先刪除與此專業(yè)相關(guān)的課程","提示");</p><p> dr.Close();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p
64、><p> dr.Close();</p><p> sql="delete * from majorinfo where MName not in (select distinct MName from courseinfo) and MID="+ds.Tables["major"].Rows[dataGrid1.CurrentCell.RowNu
65、mber][2].ToString().Trim();</p><p> cmd.CommandText=sql;</p><p> cmd.ExecuteNonQuery();</p><p> MessageBox.Show("刪除專業(yè)'"+ds.Tables["major"].Rows[dataGrid1.
66、CurrentCell.RowNumber][0].ToString().Trim()+"'成功","提示");</p><p><b> }</b></p><p> oleConnection1.Close();</p><p><b> }</b></p&g
67、t;<p><b> }</b></p><p> 修改專業(yè)信息的代碼如例程5-7所示。在該部分中首先要把選擇的那條數(shù)據(jù)信息顯示在修改的各個(gè)控件中,然后根據(jù)所系那條數(shù)據(jù)的唯一編號(hào),對(duì)這條數(shù)據(jù)信息進(jìn)行修改。</p><p> 例程4-7 修改專業(yè)信息的代碼</p><p> MajorModify majorModify;&
68、lt;/p><p> private void btModify_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> if (dataGrid1.DataSource != null || dataGrid1[dataGrid1.CurrentCell] !
69、= null)</p><p><b> {</b></p><p> majorModify = new MajorModify();</p><p> majorModify.textID.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][2].ToString().Tri
70、m();</p><p> majorModify.textName.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][0].ToString().Trim();</p><p> majorModify.textRemark.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowN
71、umber][1].ToString().Trim();</p><p> majorModify.ShowDialog();</p><p><b> }</b></p><p><b> else</b></p><p> MessageBox.Show("沒有指定專業(yè)信息!&
72、quot;,"提示");</p><p><b> }</b></p><p> private void btAdd_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> if ((te
73、xtName.Text.Trim()=="") || (textRemark.Text.Trim()==""))</p><p> MessageBox.Show("提示","請(qǐng)輸入完整的專業(yè)信息");</p><p><b> else</b></p><p>
74、;<b> { </b></p><p> oleConnection1.Open();</p><p> string sql1 = "select * from majorinfo where MName='"+textName.Text.Trim()+"' and MID<>"+textI
75、D.Text.Trim();</p><p> oleCommand1.CommandText = sql1;</p><p> if (null!=oleCommand1.ExecuteScalar())</p><p> MessageBox.Show("專業(yè)名稱發(fā)生重復(fù)","提示");</p><
76、;p><b> else</b></p><p><b> {</b></p><p> string sql2="update majorinfo set MName='"+textName.Text.Trim()+"',MRemark='"+textRemark.Te
77、xt.Trim()+"' where MID="+this.textID.Text.Trim();</p><p> oleCommand1.CommandText=sql2;</p><p> oleCommand1.ExecuteNonQuery();</p><p> MessageBox.Show("專業(yè)信息修改成
78、功","提示");</p><p><b> }</b></p><p> oleConnection1.Close();</p><p><b> }</b></p><p><b> }</b></p><p>
79、 4.3 課程管理模塊實(shí)現(xiàn)</p><p> 4.1.1 程序流程圖</p><p> 4.1.2關(guān)鍵算法與技術(shù)實(shí)現(xiàn)</p><p> 添加課程信息的代碼如例程4-8所示。在添加課程信息前,要把專業(yè)名稱綁定在界面上的CombBox控件中共用戶選擇。在添加課程信息時(shí)要判斷信息的完整性,并且還要判斷在同一專業(yè)中是否添加了相同課程。</p><
80、p> 例程4-8 添加課程息的代碼</p><p> private void CourseAdd_Load(object sender, System.EventArgs e)</p><p><b> {</b></p><p><b> try</b></p><p><b
81、> {</b></p><p> oleConnection1.Open();</p><p> string sql="select MID,MName from majorinfo";</p><p> OleDbDataAdapter adp=new OleDbDataAdapter(sql,oleConnecti
82、on1);</p><p> DataSet ds=new DataSet();</p><p> adp.Fill(ds,"major");</p><p> comboMajor.DataSource=ds.Tables["major"].DefaultView;</p><p> comb
83、oMajor.DisplayMember="MName";</p><p> comboMajor.ValueMember="MID";</p><p> oleConnection1.Close();</p><p><b> }</b></p><p> catch (
84、Exception ee)</p><p><b> {</b></p><p> Console.WriteLine(ee.Message);</p><p><b> }</b></p><p><b> }</b></p><p> pr
85、ivate void btAdd_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> if (comboMajor.Text.Trim()=="" || textName.Text.Trim()=="" || textDate.Text.T
86、rim()=="" || textNum.Text.Trim()=="")</p><p> MessageBox.Show("請(qǐng)?zhí)顚懲暾畔?quot;,"提示");</p><p><b> else</b></p><p><b> {</b>
87、;</p><p> oleConnection1.Open();</p><p> string sql;</p><p> sql="select * from courseinfo where MName='"+comboMajor.Text.ToString()+"' and CName='&quo
88、t;+textName.Text.Trim()+"'";</p><p> OleDbCommand cmd=new OleDbCommand(sql,oleConnection1);</p><p> if (null==cmd.ExecuteScalar())</p><p><b> {</b></
89、p><p> sql="insert into courseinfo (MName,CName,CDate,CNum,CRemark) values ('"+comboMajor.Text.Trim()+"',"+</p><p> "'"+textName.Text.Trim()+"',
90、'"+textDate.Text.Trim()+"','"+textNum.Text.Trim()+"','"+textRemark.Text.Trim()+"')"; </p><p> cmd.CommandText=sql;</p><p> c
91、md.ExecuteNonQuery();</p><p> MessageBox.Show("課程添加成功","提示");</p><p><b> clear();</b></p><p><b> }</b></p><p><b>
92、else</b></p><p> MessageBox.Show("在同一專業(yè)不能添加相同的課程","提示");</p><p> oleConnection1.Close();</p><p><b> }</b></p><p><b> }&l
93、t;/b></p><p> 在瀏覽課程信息時(shí)首先要把專業(yè)名稱加載到TreeView控件當(dāng)中,然后根據(jù)選擇的專業(yè)名稱,把該專業(yè)的課程信息顯示在DataGrid控件中,代碼如例程4-9所示。</p><p> 例程4-9 瀏覽專業(yè)課程息的代碼</p><p> DataSet ds;</p><p> private void C
94、ourse_Load(object sender, System.EventArgs e)</p><p><b> {</b></p><p> OleDbDataReader rd;</p><p> string sql;</p><p> sql="select MName from major
95、info";</p><p> oleCommand1.CommandText=sql;</p><p> oleConnection1.Open();</p><p> rd=oleCommand1.ExecuteReader();</p><p> while (rd.Read())</p><p&g
96、t;<b> {</b></p><p> TreeNode node=new TreeNode();</p><p> node.Text=rd.GetString(0).ToString();</p><p> treeView1.Nodes.Add(node);</p><p><b> }&l
97、t;/b></p><p> rd.Close();</p><p> oleConnection1.Close();</p><p><b> }</b></p><p> private void treeView1_AfterSelect(object sender, System.Windows.F
98、orms.TreeViewEventArgs e)</p><p><b> {</b></p><p> string sql="";</p><p> OleDbDataAdapter adp=new OleDbDataAdapter(sql,oleConnection1);</p><p>
99、; ds=new DataSet();</p><p> ds.Clear();</p><p> oleConnection1.Open();</p><p> sql="select CName as 課程名稱,CDate as 學(xué)時(shí),CNum as 學(xué)分,MName as 專業(yè)名稱,CRemark as 課程描述,CID as 課程編號(hào)&qu
100、ot;+</p><p> " from courseinfo where MName='"+e.Node.Text.ToString()+"'";</p><p> adp.SelectCommand.CommandText=sql;</p><p> adp.Fill(ds,"course&
101、quot;);</p><p> dataGrid1.DataSource=ds.Tables[0].DefaultView;</p><p> dataGrid1.CaptionText=e.Node.Text+"專業(yè)課程表";</p><p> oleConnection1.Close();</p><p>&l
102、t;b> }</b></p><p> 刪除課程的代碼如例程4-10所示。</p><p> 例程4-10 刪除課程息的代碼</p><p> private void btDel_Click(object sender, System.EventArgs e)</p><p><b> {</b&
103、gt;</p><p> if (dataGrid1.CurrentRowIndex>=0 && dataGrid1.DataSource != null && dataGrid1[dataGrid1.CurrentCell] != null)</p><p><b> {</b></p><p>
104、string sql="delete * from courseinfo where CID="+ds.Tables["course"].Rows[dataGrid1.CurrentCell.RowNumber][5].ToString().Trim()+"";</p><p> oleConnection1.Open();</p>&l
105、t;p> oleCommand1.CommandText = sql;</p><p> oleCommand1.ExecuteNonQuery();</p><p> MessageBox.Show("刪除課程'"+ds.Tables["course"].Rows[dataGrid1.CurrentCell.RowNumber]
106、[0].ToString().Trim()+"'成功","提示");</p><p> oleConnection1.Close();</p><p><b> }</b></p><p><b> else</b></p><p> Mess
107、ageBox.Show("沒有指定課程信息!","提示");</p><p><b> }</b></p><p> 修改課程信息的代碼如例程4-11所示。該部分代碼與修改專業(yè)的代碼相似,只是在該部分中設(shè)置了一個(gè)界面的Tag屬性,用來(lái)傳遞編號(hào)到另一個(gè)界面,并根據(jù)此編號(hào)修改這條數(shù)據(jù)信息。</p><p>
108、; 例程4-11 修改課程息的代碼</p><p> CourseModify courseModify;</p><p> private void btModify_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> if
109、 (dataGrid1.DataSource != null || dataGrid1[dataGrid1.CurrentCell] != null)</p><p><b> {</b></p><p> courseModify = new CourseModify();</p><p> courseModify.textName.
110、Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][0].ToString().Trim();</p><p> courseModify.textDate.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][1].ToString().Trim();</p><p>
111、 courseModify.textNum.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][2].ToString().Trim();</p><p> courseModify.textMajor.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][3].ToString().Trim
112、();</p><p> courseModify.textRemark.Text=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][4].ToString().Trim();</p><p> courseModify.Tag=ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][5]
113、.ToString().Trim();</p><p> courseModify.ShowDialog();</p><p><b> }</b></p><p><b> else</b></p><p> MessageBox.Show("沒有指定專業(yè)信息!",&q
114、uot;提示");</p><p><b> }</b></p><p> private void btAdd_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> if ((textName.T
115、ext.Trim()=="") || (textRemark.Text.Trim()=="") || textNum.Text.Trim()=="" || textDate.Text.Trim()=="")</p><p> MessageBox.Show("請(qǐng)輸入完整的課程信息","提示")
116、;</p><p><b> else</b></p><p><b> { </b></p><p> oleConnection1.Open();</p><p> string sql1 = "select * from courseinfo where CName='
117、;"+textName.Text.Trim()+"' and CID<>"+this.Tag.ToString().Trim();</p><p> oleCommand1.CommandText = sql1;</p><p> if (null!=oleCommand1.ExecuteScalar())</p><
118、;p> MessageBox.Show("課程名稱發(fā)生重復(fù)","提示");</p><p><b> else</b></p><p><b> {</b></p><p> string sql2="update courseinfo set CName=&
119、#39;"+textName.Text.Trim()+"',CRemark='"+textRemark.Text.Trim()+"',"+</p><p> "CDate='"+textDate.Text.Trim()+"',CNum='"+textNum.Text.Trim
120、()+"' where CID="+this.Tag.ToString().Trim();</p><p> oleCommand1.CommandText=sql2;</p><p> oleCommand1.ExecuteNonQuery();</p><p> MessageBox.Show("課程信息修改成功&qu
121、ot;,"提示");</p><p> this.Close();</p><p><b> }</b></p><p> oleConnection1.Close();</p><p><b> }</b></p><p><b>
122、}</b></p><p> 4.4 學(xué)生管理模塊</p><p> 4.4.1 程序流程圖</p><p> 4.4.2關(guān)鍵算法與技術(shù)實(shí)現(xiàn)</p><p> 添加學(xué)生信息的代碼如例程4-12所示。在添加學(xué)生信息前,要把專業(yè)名稱和教師姓名綁定在界面上的ComboBox控件中供用戶選擇。在添加學(xué)生信息時(shí)也要判斷信息的完整性,
123、并且保證一個(gè)學(xué)號(hào)對(duì)應(yīng)一個(gè)唯一的身份證號(hào)。</p><p> 例程4-11 添加學(xué)生的程息的代碼</p><p> private void StudentAdd_Load(object sender, System.EventArgs e)</p><p><b> {</b></p><p><b>
124、 try</b></p><p><b> {</b></p><p> oleConnection1.Open();</p><p> string sql1="select MID,MName from majorinfo";</p><p> string sql2=&quo
125、t;select TID,TName from teacherinfo";</p><p> OleDbDataAdapter adp1=new OleDbDataAdapter(sql1,oleConnection1);</p><p> OleDbDataAdapter adp2=new OleDbDataAdapter(sql2,oleConnection1);<
126、/p><p> DataSet ds=new DataSet();</p><p> adp1.Fill(ds,"major");</p><p> adp2.Fill(ds,"teacher");</p><p> comboMajor.DataSource=ds.Tables["maj
127、or"].DefaultView;</p><p> comboMajor.DisplayMember="MName";</p><p> comboMajor.ValueMember="MID";</p><p> comboTeacher.DataSource=ds.Tables["teacher
128、"].DefaultView;</p><p> comboTeacher.DisplayMember="TName";</p><p> comboTeacher.ValueMember="TID";</p><p> oleConnection1.Close();</p><p>&
129、lt;b> }</b></p><p> catch (Exception ee)</p><p><b> {</b></p><p> Console.WriteLine(ee.Message);</p><p><b> }</b></p><p
130、><b> }</b></p><p> private void btAdd_Click(object sender, System.EventArgs e)</p><p><b> {</b></p><p> if (comboMajor.Text.Trim()==""||text
131、Name.Text.Trim()==""||comboSex.Text.Trim()==""||textID.Text.Trim()==""||textNum.Text.Trim()=="")</p><p> MessageBox.Show("請(qǐng)?zhí)顚懲暾畔?quot;,"提示");</p>
132、;<p><b> else</b></p><p><b> {</b></p><p> oleConnection1.Open();</p><p> string sql;</p><p> sql="select * from studentinfo wh
133、ere SID='"+textID.Text.ToString()+"' or SNum='"+textNum.Text.ToString()+"'";</p><p> OleDbCommand cmd=new OleDbCommand(sql,oleConnection1);</p><p> if
134、(null==cmd.ExecuteScalar())</p><p><b> {</b></p><p> sql="insert into studentinfo (MName,SName,SBirth,SNum,SRemark,SID,SSex,TID) values ('"+comboMajor.Text.Trim()+&qu
135、ot;',"+</p><p> "'"+textName.Text.Trim()+"','"+date1.Text.Trim()+"','"+textNum.Text.Trim()+"','"+textRemark.Text.Trim()+"
136、9;,"+</p><p> "'"+textID.Text.Trim()+"','"+comboSex.Text.Trim()+"','"+comboTeacher.SelectedValue.ToString().Trim()+"')"; </p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c#學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)(net)
- 課程設(shè)計(jì)--大學(xué)生超市商品信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)----學(xué)生信息管理系統(tǒng)
- 課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生信息管理系統(tǒng) 課程設(shè)計(jì)
- 課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)
- 課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)-- 學(xué)生信息管理系統(tǒng)設(shè)計(jì)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì) (4)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 課程設(shè)計(jì)報(bào)告--學(xué)生信息管理系統(tǒng)
- 課程設(shè)計(jì)delphi學(xué)生信息管理系統(tǒng)
- vfp課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)java課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論