版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課 程 設 計 報 告</p><p> 課程設計名稱 .NET課程設計 </p><p> 專 業(yè) 信息管理與信息系統(tǒng) </p><p> 班 級 信管 二 班 </p><p> 學 號 </p><p&g
2、t;<b> 2011年9月2日</b></p><p><b> 目 錄</b></p><p> 一、設計任務與要求1</p><p> 1.1 設計任務與要求1</p><p> 1.2 選題目的與意義1</p><p> 1.3 團隊介紹和人
3、員分工1</p><p><b> 二、需求分析3</b></p><p> 2.1 用戶需求分析3</p><p> 2.2 開發(fā)環(huán)境分析3</p><p> 三、系統(tǒng)總體設計4</p><p> 3.1 系統(tǒng)結構設計(或系統(tǒng)設計思想)4</p><p&
4、gt; 3.2 功能模塊劃分4</p><p> 3.3 數(shù)據(jù)庫設計5</p><p><b> 四、程序實現(xiàn)11</b></p><p> 4.1 系統(tǒng)管理模塊實現(xiàn)11</p><p> 4.2 專業(yè)管理模塊實現(xiàn)14</p><p> 4.3 課程管理模塊實現(xiàn)19<
5、/p><p> 4.4 學生管理模塊25</p><p> 4.5 成績管理模塊實現(xiàn)28</p><p> 4.6用戶管理模塊實現(xiàn)32</p><p><b> 五、設計體會34</b></p><p><b> 一、設計任務與要求</b></p>
6、<p> 1.1 設計任務與要求</p><p><b> 設計任務:</b></p><p> 根據(jù)所選題目,完成對大學生信息管理系統(tǒng)課程設計的分析、設計和編碼,實現(xiàn)用戶登錄,管理員對學生信息的錄入修改以及學生對自己信息的查詢,最后寫出課程設計報告。</p><p><b> 要求如下:</b><
7、;/p><p> (1)掌握C#的語言規(guī)范;</p><p> (2)掌握C#及ASP.NET的編程技術,主要是數(shù)據(jù)庫的連接及處理;</p><p> (3)掌握.NET平臺應用軟件的開發(fā)環(huán)境和開發(fā)過程;</p><p> (4)掌握面向對象、軟件工程的思想和程序設計方法。</p><p> 1.2 選題目的與意
8、義</p><p> 系統(tǒng)針對學校學生信息的特點以及管理中實際需要而設計,能夠有效地實現(xiàn)學生信息管理的信息化,減輕管理人員的工作負擔,高效率、規(guī)范化地管理大量的學生信息,并避免人為操作的錯誤和不規(guī)范行為。</p><p> 1.3 團隊介紹和人員分工</p><p><b> 二、需求分析</b></p><p>
9、; 2.1 用戶需求分析</p><p> 本系統(tǒng)的功能主要包括以下幾個方面:</p><p> ●系統(tǒng)給管理員添加年級信息、班級信息、所開設的課程信息和系統(tǒng)用戶信息,對用戶進行權限設置并對其進行維護;</p><p> ●新生入學時,普通管理員錄入大學生的基本信息,并在以后的教學中對大學生信息進行維護;</p><p> ●考試結
10、束后,由任課老師對大學生的成績進行錄入,并對成績進行分析;</p><p> ●學期之初,導師給每位大學生選擇課程,并可以對大學生的信息和成績進行查詢;</p><p> ●每位大學生可以根據(jù)自己的需要對以上的錄入的信息進行適當?shù)牟樵儯?lt;/p><p> 2.2 開發(fā)環(huán)境分析</p><p> 客戶端操作系統(tǒng):Windows XP、V
11、ista、Win7</p><p> 數(shù)據(jù)庫管理系統(tǒng):Microsoft SQL Server 2005</p><p> 前臺開發(fā)工具:Microsoft Visual Studio 2005、2008 中文版</p><p> 后臺數(shù)據(jù)庫管理工具:SQL Server 2005</p><p><b> 三、系統(tǒng)總體設計
12、</b></p><p> 3.1 系統(tǒng)結構設計(或系統(tǒng)設計思想)</p><p> 大學生信息管理是一項非常重要的工作,他關系到整個學校的工作效率。一個好的信息管理系統(tǒng)能夠方便系統(tǒng)管理人員對學校的基本數(shù)據(jù)進行維護,包括信息的增加、修改以及對各項信息的變動等操作。采用大學生管理系統(tǒng)不僅可以節(jié)省人力物力,而且可以增強學校資料的安全性,提高學校的管理能力。</p>
13、<p> 大學生信息管理涉及專業(yè)、課程、成績、個人信息等的管理,需要處理大量數(shù)據(jù)和信息,而且對這些數(shù)據(jù)和信息的準確性、及時性都要求非常高,任何的錯誤和遺漏都會造成學校管理的混亂;若采用純人工的方法進行管理有一定難度,因此,目前大多數(shù)學校都開始采用計算機技術來實現(xiàn)大學生信息的管理。</p><p> 3.2 功能模塊劃分</p><p> 大學生信息管理系統(tǒng)由系統(tǒng)管理、專
14、業(yè)管理、課程管理、大學生管理、成績管理、用戶管理等模塊組成,具體如下。</p><p><b> 1.系統(tǒng)管理模塊</b></p><p> 可以添加新用戶,新建角色,并且為角色賦予權限。</p><p><b> 2.專業(yè)管理模塊</b></p><p> 可以瀏覽、添加、修改、刪除、專業(yè)
15、信息。</p><p><b> 3.課程管理模塊</b></p><p> 可以瀏覽、添加、修改、刪除課程信息。</p><p><b> 4.大學生管理模塊</b></p><p> 可以瀏覽、添加、修改、刪除、大學生基本信息</p><p><b>
16、 5.成績管理模塊</b></p><p> 可以瀏覽、添加、修改、刪除、大學生成績信息</p><p><b> 6.用戶管理模塊</b></p><p> 可以修改密碼,重新登錄。</p><p> 大學生信息管理系統(tǒng)的系統(tǒng)功能結構如圖3-1所示。</p><p> 圖3
17、-1 系統(tǒng)功能結構圖</p><p><b> 3.3 數(shù)據(jù)庫設計</b></p><p> 根據(jù)大學生信息管理系統(tǒng)的功能要求,該系統(tǒng)的數(shù)據(jù)庫命名為masterMIS,數(shù)據(jù)庫中包括7張表:</p><p> ●用戶信息表(userinfo),包含用戶的名稱、口令和角色;</p><p> ●角色信息表(roles
18、),包含角色名稱和與該角色相關的權限;</p><p> ●課程信息表(courseinfo),包含學校所開設專業(yè)的名稱級其詳細介紹;</p><p> ●大學生基本信息表(studentinfo),包含大學生的學號、姓名、性別、專業(yè)、等基本信息;</p><p> ●成績信息表(scoreinfo),包含大學生的學號、課程、成績等信息;</p>
19、<p> ●教師信息表(teacherinfo),包括教師的姓名等信息。</p><p> 下面列出了各個表的數(shù)據(jù)結構,如表3-1~表3-7所示。</p><p> 表3-1用戶信息表(userinfo)的數(shù)據(jù)結構</p><p> 表3-2角色信息表(roles)的數(shù)據(jù)結構</p><p> 表3-3專業(yè)信息表(
20、majorinfo)的數(shù)據(jù)結構</p><p> 表3-4課程信息表(courseinfo)的數(shù)據(jù)結構</p><p> 表3-5教師信息表(teacherinfo)的數(shù)據(jù)結構</p><p> 表3-6大學生信息表(studentinfo)的數(shù)據(jù)結構</p><p> 表3-7成績信息表(scoreinfo)的數(shù)據(jù)結構<
21、;/p><p> 下面列出了各個表的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大學生基本信息</p><p><b> 圖3-6成績信息</b></p><p><b> 圖3-7教師信息</b></p><p> 根據(jù)本實例的特點,需要設置課程信息表、專業(yè)信息表、大學生信
23、息表、成績信息表和教師信息表之間的關系,如圖3-8所示。設置用戶信息表與角色信息表之間的關系,如圖3-9所示。</p><p> 圖3-8數(shù)據(jù)庫關系圖</p><p> 圖3-9用戶角色關系圖</p><p><b> 四、程序實現(xiàn)</b></p><p> 4.1 系統(tǒng)管理模塊實現(xiàn)</p><
24、;p> 4.1.1 程序流程圖</p><p><b> 系統(tǒng)管理流程圖</b></p><p> 4.1.2關鍵算法與技術實現(xiàn)</p><p> 系統(tǒng)管理模塊包括添加用戶和新建角色兩個功能,在添加玉女冠胡界面中首先需要通過DataSet把數(shù)據(jù)庫中的數(shù)據(jù)和ComboBox控件綁定起來,設置為鍵對值,代碼如例程5-1所示。</
25、p><p> 例程4-1 數(shù)據(jù)庫綁定代碼</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> 單擊【確定】按鈕需要判斷信息是否輸入完整,并判斷用戶名是否已經存在和兩次輸入的密碼是否一致。該部分代碼如例程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("請輸入完整信息!","警告");</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()+"已經存在!","提示");</p><p> oleConnection1.Close();</p><p><b> }</b></p>&
38、lt;p><b> }</b></p><p><b> }</b></p><p> 在新建角色界面中,也要首先判斷輸入的信息是否完整,角色的名稱是否重復,代碼如例程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("角色名稱重復!","警告");</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è)管理模塊實現(xiàn)</p><p> 4.2.1 程序流程圖</p><
46、;p> 4.2.2關鍵算法與技術實現(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("請輸入完整的專業(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ā)生重復","提示");</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所示。該部分代碼會在界面加載時被調用。</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è)編號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è)相關的課程,如果有則提示先刪掉課程信息再刪掉專業(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;'失敗,請先刪除與此專業(yè)相關的課程","提示");</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ù)信息顯示在修改的各個控件中,然后根據(jù)所系那條數(shù)據(jù)的唯一編號,對這條數(shù)據(jù)信息進行修改。</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("提示","請輸入完整的專業(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ā)生重復","提示");</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 課程管理模塊實現(xiàn)</p><p> 4.1.1 程序流程圖</p><p> 4.1.2關鍵算法與技術實現(xiàn)</p><p> 添加課程信息的代碼如例程4-8所示。在添加課程信息前,要把專業(yè)名稱綁定在界面上的CombBox控件中共用戶選擇。在添加課程信息時要判斷信息的完整性,并且還要判斷在同一專業(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("請?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> 在瀏覽課程信息時首先要把專業(yè)名稱加載到TreeView控件當中,然后根據(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 學時,CNum as 學分,MName as 專業(yè)名稱,CRemark as 課程描述,CID as 課程編號&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è)的代碼相似,只是在該部分中設置了一個界面的Tag屬性,用來傳遞編號到另一個界面,并根據(jù)此編號修改這條數(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("請輸入完整的課程信息","提示")
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ā)生重復","提示");</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 學生管理模塊</p><p> 4.4.1 程序流程圖</p><p> 4.4.2關鍵算法與技術實現(xiàn)</p><p> 添加學生信息的代碼如例程4-12所示。在添加學生信息前,要把專業(yè)名稱和教師姓名綁定在界面上的ComboBox控件中供用戶選擇。在添加學生信息時也要判斷信息的完整性,
123、并且保證一個學號對應一個唯一的身份證號。</p><p> 例程4-11 添加學生的程息的代碼</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("請?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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c#學生信息管理系統(tǒng)課程設計(net)
- 課程設計--大學生超市商品信息管理系統(tǒng)
- 學生信息管理系統(tǒng)課程設計
- 課程設計----學生信息管理系統(tǒng)
- 課程設計--學生信息管理系統(tǒng)
- 課程設計---學生信息管理系統(tǒng)
- 學生信息管理系統(tǒng)課程設計
- 學生信息管理系統(tǒng)課程設計
- 學生信息管理系統(tǒng) 課程設計
- 課程設計-學生信息管理系統(tǒng)
- 課程設計——學生信息管理系統(tǒng)
- 學生信息管理管理系統(tǒng)課程設計
- 課程設計-- 學生信息管理系統(tǒng)設計
- 學生信息管理系統(tǒng)課程設計 (4)
- 學生信息管理系統(tǒng)課程設計報告
- java課程設計--學生信息管理系統(tǒng)
- 課程設計報告--學生信息管理系統(tǒng)
- 課程設計delphi學生信息管理系統(tǒng)
- vfp課程設計學生信息管理系統(tǒng)
- 學生信息管理系統(tǒng)java課程設計
評論
0/150
提交評論