net課程設(shè)計(jì)--大學(xué)生信息管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論