2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩23頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  課 程 設 計 報 告</p><p>  課程名稱 數據庫原理課程設計 </p><p>  課題名稱 學生成績管理系統 </p><p>  專 業 </p><p>  班 級

2、</p><p>  學 號 </p><p>  姓 名 </p><p>  指導教師 </p><p>  2012年 1 月 3 日</p><p><b>  目 錄&

3、lt;/b></p><p>  一、系統定義…………………………………………………………….1</p><p>  二、需求分析…………………………………………………………….1</p><p>  三、系統設計…………………………………………………………….5</p><p>  四、詳細設計……………………………………………………

4、………13</p><p>  五、課程設計總結………………………………………………………20</p><p>  六、參考文獻……………………………………………………………21</p><p>  七、附錄…………………………………………………………………22</p><p><b>  一、系統定義</b></

5、p><p>  學生成績管理系統是一個教育單位不可缺少的部分,它的內容對于學校的決策者和管理者來說都至關重要,所以學生成績管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段,對學生來說可以輕松的查閱自己在校的成績以及信息等。使用計算機對學生成績信息進行管理,有著手工管理所無法比擬的優點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優點能夠極大地提高學生成績管理的效率,也是企業的科學

6、化、正規化管理,與世界接軌的重要條件。因此,開發這樣的一套成績管理系統成為很有必要的事情。 學生成績管理系統提供了強大的學生成績管理管理功能,方便系統管理員對學生成績等信息的添加、修改、刪除、查詢、留言等操作,同時一樣的方面學生對自己各科成績查詢,學習的交流。 </p><p><b>  二、需求分析</b></p><p><b> ?。ㄒ唬┫到y綜合需求

7、</b></p><p>  1. 教師(管理員)夠實現對整個學生信息的添加、修改、刪除、查詢等操作,對教師(管理員)用戶的添加、刪除、修改等操作。</p><p>  2. 教師(管理員)可以將學生成績的數據庫發布到網上,學生的信息發布的網上,方便學生教師進行查詢,達到資源共享的目的。 </p><p>  3.教師(管理員)能夠在一定的權限內對所有學

8、生成績的查詢、刪除、修改是、查看等,對,登錄密碼的修改。</p><p>  4.學生可以在自己的權限內對對自己成績的查詢,以及個人信息的查詢,登錄密碼的修改,的相關操作。 </p><p><b> ?。ǘ┫到y邏輯模型</b></p><p><b>  1.數據流圖:</b></p><p>

9、  2.數據字典(1)對學生信息的管理</p><p> ?。?)對系別信息的管理</p><p> ?。?)對學生證注冊信息的管理</p><p><b>  三、系統設計</b></p><p><b> ?。ㄒ唬└拍罱Y構設計</b></p><p><b> 

10、?。ǘ┻壿嫿Y構設計</b></p><p>  邏輯結構是獨立于任何一種數據模型的信息結構。邏輯結構的任務是把概念結構設計階段設計好的基本E-R圖轉化為宜選用的DBMS所支持的數據模型相符合的邏輯結構,并對其進行優化。</p><p>  設計學生成績管理數據庫,包括系別、教研室、班級、教師、學生、課程、成績七個關系,考慮到數據庫完整性,其關系模式中對每個實體定義的屬性如下:

11、</p><p><b>  系別表</b></p><p>  系別:(系號,系名)</p><p><b>  教研室表</b></p><p>  教研室:(教研室號,教研室名)</p><p><b>  班級表</b></p>&

12、lt;p>  班級:(班號,班名,系號)</p><p><b>  教師表</b></p><p>  教師:(教師號,姓名,教研室號)</p><p><b>  學生表</b></p><p>  學生:(學號,姓名,性別,班號)</p><p><b>

13、;  課程表</b></p><p>  課程:(課程號,課程名,教師號,學時,學分)</p><p><b>  成績表</b></p><p>  成績:(學號,課程號,成績)</p><p>  為了存放前臺用戶信息再添加一用戶表</p><p><b>  用戶表&l

14、t;/b></p><p>  用戶:(用戶名,密碼)</p><p><b>  四、詳細設計</b></p><p><b>  1.注冊新用戶</b></p><p>  注冊用戶界面如圖所示,新注冊的賬戶存于數據庫中的用戶表中。通過相關代碼設置用戶名和密碼都不為空,并且彈出提示框。詳細

15、代碼見附錄。</p><p><b>  2.菜單欄設計</b></p><p>  菜單欄前三個菜單都為查詢菜單,通過SQL查詢語句顯示查詢結果。初始化狀態為顯示全部結果,若記錄太多可按主碼值查詢,若要返回初始狀態,點擊刷新按鈕即可??梢詾槊總€窗口設置適當的圖片背景。</p><p><b>  (1) 院系查詢</b>

16、</p><p>  院系查詢菜單提供系別、教研室和班級的詳細信息。單擊相應菜單實現對應的查詢功能。</p><p><b>  (2)信息查詢</b></p><p>  信息查詢菜單提供教師信息、學生信息和課程信息的詳細查詢。單擊相應菜單實現對應的查詢功能。</p><p><b>  (3)成績查詢<

17、;/b></p><p>  成績查詢菜單提供按不同方式對學生成績的詳細查詢。單擊相應菜單實現對應的查詢功能。</p><p><b>  3.管理模塊設計</b></p><p>  管理模塊在主界面主面板上,用于對各個數據表的更新操作。數據操作部允許控制操作,若有空值則提示錯誤。</p><p><b&g

18、t;  系別管理</b></p><p>  系別管理可以通過系號來確定系別,從而對系別信息進行操作。不允許有空值操作。</p><p><b>  教研室管理</b></p><p>  教研室管理通過教研室號來確定教研室,從而對教研室信息進行操作。不允許有空值操作。</p><p><b>  

19、班級管理</b></p><p>  班級管理可以通過班號來確定班級,從而對班級信息進行操作。不允許有空值操作。</p><p><b>  教師管理</b></p><p>  教師管理通過教師號來確定教師,從而對教師信息進行操作。</p><p><b>  學生管理</b><

20、/p><p>  學生管理可根據學號唯一確定學生,從而對信息進行添加、刪除、修改操作。</p><p> ?。ㄒ唬╅_發平臺及工具</p><p>  開發工具Microsoft Visual C++ 6.0</p><p>  DBMS:Microsoft SQL Server 2000</p><p>  建模工

21、具:Microsoft Visio, Sybase PowerDesigner</p><p> ?。ǘ┚幋a設計及觸發器</p><p><b>  1查詢學生信息</b></p><p> ?。?)給定學號,查詢某位學生的學生證信息</p><p>  創建存儲過程QureyInfor,傳遞參數sno,通過給定學

22、號,判斷該學生的學生證信息是否存在,如不存在,則告知不存在該學生證信息;如存在,則顯示出該學生的學生證信息.</p><p>  create procedure QureyInfor</p><p>  ( @sno char(10))</p><p><b>  as</b></p><p><b>  

23、begin </b></p><p>  declare @cant varchar(50)</p><p>  set @cant='信息不存在'</p><p>  if exists (select * from Stu_card where SNo=@sno)</p><p><b>  sele

24、ct *</b></p><p>  from Stu_card</p><p>  where SNo=@sno</p><p><b>  else</b></p><p>  print @cant</p><p><b>  end</b></p

25、><p> ?。?)給定班號,查詢該班所有學生的學生證信息</p><p>  創建存儲過程DisplayInfor,傳遞參數classno,通過給定班級號,判斷該班學生的學生證信息是否存在,如不存在,則告知"不存在該班學生證信息";如存在,則顯示出該班全部學生的學生證信息。</p><p>  create procedure DisplayInf

26、or</p><p>  ( @classno char(6) )</p><p><b>  as</b></p><p><b>  begin </b></p><p>  declare @cant varchar(50)</p><p>  set @cant=&#

27、39;無相關信息'</p><p>  if exists (select * from Stu_card where ClassNo=@classno)</p><p><b>  select *</b></p><p>  from Stu_card</p><p>  where ClassNo=@cla

28、ssno</p><p><b>  else</b></p><p>  print @cant</p><p><b>  end</b></p><p><b>  2.修改學生信息</b></p><p>  對于學生證信息的修改,是先通過給定學

29、生學號,先判斷該學生的學生證信息是否存在,如存在,再通過添加表信息來添加學生證信息。</p><p> ?。?)首先創建存儲過程ModIf,用來判斷需修改的學生證信息是否存在,如不存在,則告知"不存在該學生證信息";如存在,則將該學生證原本信息顯示出來,表明可以進行修改。</p><p>  create procedure ModIf</p><p

30、>  ( @sno char(10) )</p><p><b>  as</b></p><p><b>  begin</b></p><p>  declare @cant varchar(50)</p><p>  set @cant='無此學生證信息,不能修改'<

31、;/p><p>  if exists (select * from Stu_card where SNo=@sno)</p><p><b>  begin</b></p><p>  select * from Stu_card where SNo=@sno</p><p><b>  end</b&

32、gt;</p><p><b>  else </b></p><p>  print @cant</p><p><b>  end</b></p><p> ?。?)再創建存儲過程ModS,ModC及ModD,通過更新操作update對表進行修改,以修改學生證信息。</p><

33、;p>  create procedure ModS //更新表中學生信息</p><p><b>  (</b></p><p>  @sname varchar(30),</p><p>  @sno char(10),</p><p>  @classno char(6),</p><p&

34、gt;  @sex char(2),</p><p>  @birthday datetime,</p><p>  @native char(2),</p><p>  @birthplace varchar(30)</p><p><b>  )</b></p><p><b>  

35、as </b></p><p><b>  update S </b></p><p>  Set stu_name=@sname,stu_no=@sno,class_no=@classno,stu_sex@sex,</p><p>  stu_birthday=@birthday,stu_native=@native,stu_bi

36、rthplace=@birthplace</p><p>  create procedure ModD //更新表中學生信息</p><p><b>  (</b></p><p>  @dept varchar(30),</p><p>  @classno char(6),</p><p>

37、<b>  )</b></p><p><b>  as </b></p><p><b>  update S </b></p><p>  Set dept=@dept,class_no=@classno</p><p>  create procedure ModC -

38、-修改表中信息</p><p><b>  (</b></p><p>  @sno char(10),</p><p>  @logindate datetime,</p><p>  @validate datetime</p><p><b>  )</b></p

39、><p><b>  as</b></p><p><b>  update C</b></p><p>  set stu_no=@sno,login_date=@logindate,validity_date=@validate</p><p><b>  3刪除學生信息</b>

40、;</p><p>  在刪除學生證信息時,并不是將學生證中的學生信息及相關系別信息也相應刪除,而只是刪除該學生證的注冊信息。應保證在刪除學生證信息同時保留該學生的學生信息及相關的系別信息。</p><p>  (1)判斷該學生證信息是否存在</p><p>  創建存儲過程,給定學號參數,判斷是否存在該學生的學生證信息,如不存在,則告知"不存在該學生證信

41、息",即無法刪除;如存在,則告知"存在信息",并顯示出該條信息。</p><p>  該操作同樣可以使用存儲過程ModIf來完成,因此不需再重新創建。</p><p><b>  (2)刪除信息</b></p><p>  創建存儲過程DelInfor,給出要刪除的學生學號,通過delete操作刪除注冊信息表C中的

42、該條記錄,即完成學生證信息的刪除工作。</p><p>  create procedure DelInfor</p><p>  ( @sno char(6) )</p><p><b>  as</b></p><p><b>  delete </b></p><p>

43、<b>  from C</b></p><p>  where stu_no=@sno</p><p>  (3)顯示刪除后信息</p><p>  在刪除完成后,通過顯示剩余全部學生證信息,確認要刪除的學生證信息是否刪除成功。</p><p>  創建觸發器DisplayAll,完成刪除工作的檢驗工作,當對表C進行d

44、elete操作時,通過查詢視圖,顯示剩余全部學生證信息。</p><p>  create trigger DisplayAll</p><p><b>  on C</b></p><p>  for delete</p><p><b>  as</b></p><p>

45、<b>  select *</b></p><p>  from Stu_card</p><p><b>  五、課程設計總結</b></p><p>  經過一周的課程設計,完成了一個簡單的學生證管理系統,并成功實現了各要求所需功能。首先,在設計方面,考慮到數據的冗余及沖突等問題,將學生證信息分別存儲到三個表中,考慮

46、了系別信息數據,學生信息數據及學生證注冊信息數據的獨立性問題。其次,在設計表時,注意了數據的數據類型及長度的選擇,考慮各種數據的添加情況,在添加該項時將“漢”設置為默認情況,同時還要保證不浪費數據的存儲空間。第三,使用了視圖,實現數據的保密性,將學生證所需信息以視圖方式存放,在數據查詢時使用視圖查詢。第四,對于各功能的實現,均使用了存儲過程,通過傳遞參數得到想要的結果。在實現功能時,注意了條件的判斷,根據分析各種情況,實現不同的操作。例

47、如,在實現信息的添加時,總的分兩種情況,一是存在信息,另一個則是不存在信息,在不存在信息中又需考慮兩種情況,即存在該學生信息,但由于未注冊學生證,因此也不存在學生證信息;另一是根本不存在該學生信息。針對這兩種情況,在添加信息時就有兩種不同的方法。第四,在本系統中使用了觸發器,觸發器用于響應數據庫更新,因此在刪除信息時,我使用了觸發器,在信息刪除后,顯示其余信息,用來確認信息是否成功刪除。第五,</p><p>&

48、lt;b>  六、參考文獻</b></p><p>  1.《數據庫系統概論(第三版)》 薩師煊等 高等教育出版社</p><p><b>  七、附錄</b></p><p><b>  部分源代碼</b></p><p><b>  1.登錄控制:</b>

49、;</p><p>  void CNcistSSMDlg::OnEnter() </p><p><b>  {</b></p><p>  CDatabase database;</p><p>  database.Open("湖南工程學院成績管理",FALSE,FALSE,"ODBC

50、;",FALSE);</p><p>  CRecordset rs(&database); </p><p>  UpdateData(TRUE);</p><p>  CString str;</p><p>  str.Format("select * from 用戶 where 用戶名='%s

51、9;",m_name);</p><p>  CRecordset rs1(&database);</p><p>  rs1.Open(AFX_DB_USE_DEFAULT_TYPE,str);</p><p>  if(rs1.IsEOF())</p><p><b>  {</b></p&g

52、t;<p>  MessageBox("用戶名輸入錯誤!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  str.Format("select * from 用戶 where 用戶名='%s'a

53、nd 密碼='%s'",m_name,m_password);</p><p>  rs.Open(AFX_DB_USE_DEFAULT_TYPE,str);</p><p>  if(rs.GetRecordCount()==0)</p><p><b>  {</b></p><p>  

54、MessageBox("密碼輸入錯誤!");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  { </b></p><p>  CMainDlg dlg;</p><p

55、>  dlg.DoModal();//進入主界面</p><p>  CNcistSSMDlg::OnCancel();</p><p><b>  }</b></p><p>  database.Close();</p><p><b>  }</b></p><

56、p><b>  2.添加記錄:</b></p><p>  UpdateData(true);</p><p>  // 確定所有輸入有效</p><p>  CString sWarning="";</p><p>  if ( ""==m_CouNo) sWarning=

57、_T("課程號");</p><p>  else if ( ""==m_CouName) sWarning=_T("課程名");</p><p>  else if ( ""==m_TeaNO) sWarning=_T("教師號");</p><p>  else

58、if ( ""==m_xueshi) sWarning=_T("學時");</p><p>  else if ( ""==m_xuefen) sWarning=_T("學分");</p><p>  if ( ""!=sWarning ) </p><p><

59、b>  {</b></p><p>  sWarning += _T("不能為空");</p><p>  AfxMessageBox(sWarning, MB_ICONEXCLAMATION);</p><p><b>  return;</b></p><p><b>

60、  }</b></p><p>  CDatabase database; </p><p>  database.Open("湖南工程學院成績管理");</p><p>  CString sql;</p><p>  CString item;</p><p>  sql.Forma

61、t(</p><p>  "insert into 課程(課程號,課程名,教師號,學時,學分) \</p><p>  values('"+m_CouNo+"','"+m_CouName+"','"+m_TeaNO+"','"+m_xueshi+"

62、;','"+m_xuefen+"')");</p><p><b>  try{</b></p><p>  database.ExecuteSQL(sql);//執行sql語句</p><p>  MessageBox("添加成功!");</p><

63、p><b>  }</b></p><p>  catch(CDBException e)</p><p><b>  {</b></p><p>  MessageBox("添加失??!");</p><p><b>  return;</b><

64、/p><p><b>  }</b></p><p>  database.Close();</p><p><b>  show();</b></p><p>  UpdateData(true);</p><p><b>  3.修改記錄:</b><

65、;/p><p>  UpdateData(true);</p><p>  CString str,sWarning="";</p><p>  CDatabase database;</p><p>  //CString sWarning="";</p><p>  if ( &

66、quot;"==m_CouNo) sWarning=_T("課程號");</p><p>  else if ( ""==m_CouName) sWarning=_T("課程名");</p><p>  else if ( ""==m_TeaNO) sWarning=_T("教師號"

67、;);</p><p>  else if ( ""==m_xueshi) sWarning=_T("學時");</p><p>  else if ( ""==m_xuefen) sWarning=_T("學分");</p><p>  if ( ""!=sWarn

68、ing ) </p><p><b>  {</b></p><p>  sWarning += _T("不能為空");</p><p>  AfxMessageBox(sWarning, MB_ICONEXCLAMATION);</p><p><b>  return;</b>

69、;</p><p><b>  }</b></p><p>  database.Open("湖南工程學院成績管理");</p><p><b>  try{</b></p><p>  str.Format("update 課程 set 課程名='"

70、+m_CouName+"' where (課程號='"+m_CouNo+"')");</p><p>  database.ExecuteSQL(str);</p><p>  str.Format("update 課程 set 教師號='"+m_TeaNO+"' where (課

71、程號='"+m_CouNo+"')");</p><p>  database.ExecuteSQL(str);</p><p>  str.Format("update 課程 set 學時='"+m_xueshi+"' where (課程號='"+m_CouNo+"&#

72、39;)");</p><p>  database.ExecuteSQL(str);</p><p>  str.Format("update 課程 set 學分='"+m_xuefen+"' where (課程號='"+m_CouNo+"')");</p><p&g

73、t;  database.ExecuteSQL(str);</p><p>  AfxMessageBox("修改成功!");</p><p><b>  }</b></p><p>  catch(CDBException e1)</p><p><b>  {</b><

74、/p><p>  AfxMessageBox("修改失??!");</p><p><b>  }</b></p><p>  database.Close();</p><p><b>  show();</b></p><p><b>  4

75、.刪除記錄:</b></p><p>  UpdateData(true);</p><p>  CString str,sWarning="";</p><p>  CDatabase database;</p><p>  //CString sWarning="";</p>

76、<p>  if ( ""==m_CouNo) sWarning=_T("課程號");</p><p>  if ( ""!=sWarning ) </p><p><b>  {</b></p><p>  sWarning += _T("不能為空"

77、);</p><p>  AfxMessageBox(sWarning, MB_ICONEXCLAMATION);</p><p><b>  return;</b></p><p><b>  }</b></p><p>  database.Open("湖南工程學院成績管理"

78、);</p><p><b>  try{</b></p><p>  str.Format("delete from 課程 where (課程號='"+m_CouNo+"')");</p><p>  database.ExecuteSQL(str);</p><p&

79、gt;  AfxMessageBox("刪除成功!");</p><p><b>  }</b></p><p>  catch(CDBException e1)</p><p><b>  {</b></p><p>  AfxMessageBox("刪除失??!&qu

80、ot;);</p><p><b>  }</b></p><p>  database.Close();</p><p><b>  show();</b></p><p><b>  5.查詢記錄:</b></p><p>  UpdateDa

81、ta(TRUE);</p><p>  // TODO: Add your control notification handler code here</p><p>  CDatabase database;</p><p>  database.Open("華北科技學院成績管理",FALSE,FALSE,"ODBC;",

82、FALSE);</p><p><b>  {</b></p><p>  CString str;</p><p>  CRecordset set(&database);</p><p>  if(m_CKCouNo.IsEmpty())</p><p><b>  {<

83、;/b></p><p>  MessageBox("請輸入課程號");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  m_ListCouMes.DeleteAllItems();</p>&l

84、t;p>  set.Open(CRecordset::dynaset,_T(</p><p>  "select 課程.課程號,課程.課程名,教師.教師姓名,課程.學時,課程.學分\</p><p>  from 課程,教師 where 課程.教師號=教師.教師號 \</p><p>  and 課程.課程號='"+m_CKCouN

85、o+"'"));</p><p><b>  int i=0;</b></p><p>  while(!set.IsEOF())</p><p><b>  {</b></p><p>  m_ListCouMes.InsertItem(i,"");

86、</p><p>  CString str1,str2,str3,str4,str5;</p><p>  set.GetFieldValue("課程號",str1);</p><p>  m_ListCouMes.SetItemText(i,0,str1);</p><p>  set.GetFieldValue(&q

87、uot;課程名",str2);</p><p>  m_ListCouMes.SetItemText(i,1,str2);</p><p>  set.GetFieldValue("教師姓名",str3);</p><p>  m_ListCouMes.SetItemText(i,2,str3);</p><p>

88、;  set.GetFieldValue("學時",str4);</p><p>  m_ListCouMes.SetItemText(i,3,str4);</p><p>  set.GetFieldValue("學分",str5);</p><p>  m_ListCouMes.SetItemText(i,4,str5);

89、</p><p>  set.MoveNext();</p><p><b>  i++;</b></p><p><b>  }</b></p><p>  set.Close();</p><p><b>  }</b></p><

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論