管理信息系統(tǒng)課程設計---學生成績管理系統(tǒng)_第1頁
已閱讀1頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  《管理信息系統(tǒng)》</b></p><p><b>  課程設計報告</b></p><p>  選 題:學生成績管理系統(tǒng)</p><p><b>  班 級:</b></p><p><b>  姓名學號:</b>

2、</p><p><b>  目錄</b></p><p>  前言……………………………………………………………………………2</p><p>  系統(tǒng)分析………………………………………………………………………3</p><p>  可行性分析…………………………………………………………………3</p>

3、<p>  1.管理上的可行性………………………………………………………………3</p><p>  2.技術上的可行性………………………………………………………………3</p><p>  3.經濟上的可行性………………………………………………………………3</p><p>  組織結構圖…………………………………………………………………4</p&

4、gt;<p>  1.組織結構圖分析………………………………………………………………4</p><p>  2.具體組織結構圖………………………………………………………………4</p><p>  業(yè)務流程圖…………………………………………………………………5</p><p>  數(shù)據(jù)流程圖和數(shù)據(jù)字典……………………………………………………6</

5、p><p>  1.數(shù)據(jù)流程圖……………………………………………………………………6</p><p>  2.數(shù)據(jù)字典………………………………………………………………………8</p><p>  系統(tǒng)設計………………………………………………………………………10</p><p>  模塊結構體系………………………………………………………………10

6、</p><p>  1.功能模塊………………………………………………………………………10</p><p>  2.功能模塊說明…………………………………………………………………11</p><p>  3.系統(tǒng)維護模塊…………………………………………………………………11</p><p>  4.系統(tǒng)流程圖…………………………………………

7、…………………………12</p><p>  5.數(shù)據(jù)庫設計……………………………………………………………………12</p><p>  (1)數(shù)據(jù)庫概要設計……………………………………………………………12</p><p> ?。?)數(shù)據(jù)庫詳細設計……………………………………………………………13</p><p>  (二)代碼設計…………

8、…………………………………………………………13</p><p>  (三)輸入/輸出設計…………………………………………………………… 20</p><p>  四、體會和收獲……………………………………………………………………20</p><p>  五、課程設計小組分工……………………………………………………………21</p><p>

9、  學生成績管理信息系統(tǒng)</p><p><b>  前言</b></p><p>  學生成績管理系統(tǒng)是為了更好的管理學生考試成績而開發(fā)的數(shù)據(jù)管理軟件。它對于一個學校是不可缺少的重要部分,它的內容對于學校的決策者和管理者來說都至關重要。目前各個高校的基本情況是:每次考試結束,老師們都要統(tǒng)計大量的學生成績,這些數(shù)據(jù)的歸檔、統(tǒng)計工作任務重,統(tǒng)計結束后往往錯誤百出。工作量

10、之大,查閱,維護都有不同程度的問題存在。所以,學生成績管理管理系統(tǒng)為用戶提供充足的信息和快捷的查詢手段,實現(xiàn)學生基本信息、成績的錄入,刪除,查詢,維護以及成績的統(tǒng)計分析等幾方面的功能,是現(xiàn)實問題的迫切要求。</p><p>  如果一個學校沒有一個完善的成績管理平臺,計算機的使用就沒有真正發(fā)揮有效的作用。隨著計算機應用的普及與深入,利用計算機能夠對所有考試成績進行統(tǒng)一管理,進行分析,大大減少了工作量,提高了工作效

11、率,為教學辦公帶來了極大的方便。本系統(tǒng)開發(fā)的總體任務是實現(xiàn)學生成績管理的系統(tǒng)化、規(guī)范化、自動化。達到提高學生成績管理效率的目的。與傳統(tǒng)管理方法相比有明顯的優(yōu)點:查找方便,可靠性高,保密性好,成本低。徹底改變了以前繁雜的管理模式,實現(xiàn)全面的、相對集中的、職能化的信息綜合管理。</p><p>  計算機被用到信息管理系統(tǒng)的環(huán)境正是適應了當今時代飛速發(fā)展的信息時代。人們深刻的認識到了計算機功能的強大,對于復雜的信息管

12、理,計算機充分發(fā)揮著它的優(yōu)越性。檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低,這些優(yōu)點極大地減輕了學院教學人員的工作量,縮小開支,提高了學生檔案管理的效率和準確性,能夠合理的安排時間,學生能夠盡快的知道自己的考試成績。同時,學生管理系統(tǒng)的應用也為今天的教育在未來市場的競爭力有所提高。</p><p>  對于一個學校而言,學生成績管理是一項非常繁瑣和復雜的工作,工作量大,不好管理。為了適應時代

13、的發(fā)展,提高工作效率尤為重要。學生成績管理系統(tǒng)的改進更好的利用了現(xiàn)代高科技,對學生負責,對本校未來的發(fā)展負責,對整個中國教育的負責,是真正朝向未來教育發(fā)展的順應潮流的進步。</p><p><b>  系統(tǒng)分析</b></p><p><b>  可行性性分析</b></p><p>  1.管理上的可行性:</p&

14、gt;<p>  主要是教務處管理人員的大力支持,系領導認同,現(xiàn)有的管理制度和方法科學,規(guī)章制度齊全,原始數(shù)據(jù)正確等。規(guī)章制度和管理方法系統(tǒng)的建設提供了制度保障。</p><p>  2.技術上的可行性:</p><p>  技術的可行性分析要考慮將來要采用的硬件和軟件技術能否滿足用戶提出的要求。此外還要考慮開發(fā)人員的水平,在數(shù)據(jù)庫方面要對管理模式比較熟悉。我們學習過數(shù)據(jù)庫和

15、管理信息系統(tǒng)課程設計的相關課程,有能力編寫學生成績管理系統(tǒng)這種不算太難的程序。</p><p>  使用VB作為系統(tǒng)開發(fā)環(huán)境,它提供完善的指令控制語句、類與對象的支持及豐富的數(shù)據(jù)類型,給開發(fā)高性能系統(tǒng)提供的保障為開發(fā)滿足客戶要求的系統(tǒng),保證了代碼的模塊化要求,而代碼模塊化的提高,非常有利于以后對新系統(tǒng)的擴展與修改。</p><p>  而且由于有指導老師的指導和相關參考文獻,特別是網(wǎng)上資料

16、,特別是參考其它程序的功能,因此幾乎可以實現(xiàn)。</p><p>  綜上所述,本系統(tǒng)的設計與開發(fā)在技術上和硬件設備上的條件都是滿足的,因此,它在技術上是可行的。</p><p>  3.經濟上的可行性:</p><p>  現(xiàn)在,計算機的價格已經十分低廉,性能卻有了長足的進步。而本系統(tǒng)的開發(fā),也在一定程度上為學校的工作效率帶來了一個質的飛躍,為此主要表現(xiàn)有以下幾個方

17、面:一方面是支出的費用,包括設備購置費、管理和維護費用、人員工資和培訓費等,另一個是取得的收益。這是個超小的管理系統(tǒng),從投入的人力,財力與物力來講是非常之小的,只要一臺電腦,一臺打印機,這個系統(tǒng)就可以搞起來,考慮到學校里有電腦,現(xiàn)只要購置一臺打印機就可以了。從節(jié)省人力方面,可以讓管理人員從繁冗復雜的工作中解脫出來,做更多的工作,可以給教學管理提高一個層次。具體有以下幾個方面:</p><p> ?。?)本系統(tǒng)只需

18、要一臺計算機;</p><p> ?。?)本系統(tǒng)的運行可以節(jié)省許多資源;</p><p>  (3)本系統(tǒng)的運行可以大大的提高學校的工作效率;</p><p>  (4)本系統(tǒng)可以敏感文檔更加安全,等等。</p><p><b>  組織結構圖</b></p><p><b>  1.組

19、織結構圖分析</b></p><p>  總控模塊管理有三種不同的信息的處理模塊,即管理員模塊、教師模塊、學生模塊,各模塊的主要功能有:</p><p> ?。?)系統(tǒng)管理員進入學生成績管理的主要功能:實現(xiàn)管理員用戶的添加、修改和刪除,以及對教師添加、教師修改、教師刪除、教師查詢、學生添加、學生修改、學生刪除、學生查詢等基本功能,并且參與開設課程、選擇課程的管理,安排教師的任課

20、和學生的選課工作。</p><p> ?。?)教師進入學生成績管理系統(tǒng)的主要功能:各科教師登錄系統(tǒng)后查詢和修改個人信息,修改自己的賬號密碼,查詢自己的授課課程,實現(xiàn)對選修了自己課程的學生的成績進行查詢、錄入和修改,各科老師可以對自己學生選修課程結束后給予分數(shù),同時可以對自己所帶課程的成績優(yōu)秀人數(shù)、及格人數(shù)、不及格人數(shù)的分布信息進行查詢。</p><p> ?。?)學生進入學生成績管理系統(tǒng)的

21、主要功能:每個學生登錄后可以查詢和修改個人信息、修改自己的賬號密碼,以及自己所選任課老師的個人信息,同時在課程結束后可以查詢在校期間各個時間段選修課程的成績與學分,以及對單科成績和總分的排名查詢。</p><p>  2.具體的組織機構圖如圖1所示:</p><p><b>  圖1 組織結構圖</b></p><p><b>  業(yè)

22、務流程圖</b></p><p>  經調查之后,結合現(xiàn)行管理模式,為開發(fā)本系統(tǒng)而繪制出的學生成績管理業(yè)務流程圖。如圖2所示:</p><p><b>  圖2 業(yè)務流程圖</b></p><p>  數(shù)據(jù)流程圖和數(shù)據(jù)字典</p><p><b>  1.數(shù)據(jù)流程圖</b></p&

23、gt;<p>  系統(tǒng)的數(shù)據(jù)流程圖如圖3、圖4所示:</p><p>  圖3 學生成績管理數(shù)據(jù)流程圖(頂層圖)</p><p>  圖4 學生成績管理數(shù)據(jù)流程圖(展開圖)</p><p><b>  2.數(shù)據(jù)字典</b></p><p><b>  (1)數(shù)據(jù)流的描述</b><

24、/p><p>  數(shù)據(jù)流 表1 數(shù)據(jù)字典(一) No:__________</p><p>  填表人_____________ 年 月 日 </p><p>  (2)處理邏輯的描述</p><p>  處 理 表

25、2 數(shù)據(jù)字典(二) No:__________</p><p>  填表人_____________ 年 月 日 </p><p><b> ?。?)數(shù)據(jù)存儲</b></p><p>  數(shù)據(jù)存儲 表3 數(shù)據(jù)字典(三) No:______

26、____</p><p>  填表人_____________ 年 月 日</p><p><b> ?。?)外部實體</b></p><p>  外部實體 表4 數(shù)據(jù)字典(四) No:__________</p><p>  填表

27、人_____________ 年 月 日</p><p><b> ?。?)數(shù)據(jù)項</b></p><p>  數(shù)據(jù)項 表5 數(shù)據(jù)字典(五) No:__________</p><p>  填表人_____________ 年 月

28、 日</p><p><b> ?。?)數(shù)據(jù)結構</b></p><p>  數(shù)據(jù)結構 表6 數(shù)據(jù)字典(六) No:__________</p><p>  填表人_____________ 年 月 日</p><p>&

29、lt;b>  系統(tǒng)設計</b></p><p><b>  模塊結構體系</b></p><p><b>  功能模塊</b></p><p><b>  圖5 功能模塊圖</b></p><p><b>  2.功能模塊說明</b>&

30、lt;/p><p>  (1)用戶管理和班級管理:</p><p>  通過驗證用戶的使用權限及進行數(shù)據(jù)的導入、導出工作。</p><p><b>  對班級的管理。</b></p><p><b> ?。?)學生信息設置</b></p><p>  對與學生相關信息的錄入。&l

31、t;/p><p> ?。?)課程與成績設置:</p><p>  各門課程所屬學院及相關學分設置。</p><p><b>  學生成績的錄入。</b></p><p> ?。?)成績查詢與統(tǒng)計:</p><p><b>  按要求查詢成績。</b></p><

32、;p><b>  進行圖表的統(tǒng)計。</b></p><p>  成績審核業(yè)務,就單據(jù)格式是否規(guī)范和填寫數(shù)據(jù)是否與實務數(shù)量相符的審核在系統(tǒng)中仍由人工完成,對成績單上填寫的學生人數(shù)量大于實際學生成績數(shù)量的情況可在成績錄入過程中自動審核,并拒絕該成績單。</p><p>  數(shù)據(jù)錄入模塊用于錄入學生名單和成績單,它是高校學生成績管理系統(tǒng)的基本數(shù)據(jù)輸入的模塊,他根據(jù)各科

33、教師送來的成績單,記錄各學生的每人成績數(shù)據(jù)。</p><p>  為方便學校各級管理人員及時了解、掌握各學院的學生成績,新系統(tǒng)特別設計了數(shù)據(jù)查詢模塊,并提供多種查詢功能,每學期、各學院的查詢等。</p><p>  報表輸出模塊可以完成系統(tǒng)所需的各種報表的計算和打印輸出功能,可輸出“學生成績表”等。</p><p>  為了統(tǒng)一產品的品種及其特性,方便數(shù)據(jù)輸入。特設

34、計了產品代碼、產品名稱及其特性對照表。系統(tǒng)中設計代碼維護模塊的目的是當產品代碼或特性變動時及時修改代碼表,可對代碼表進行增加、刪除和修改等處理。</p><p><b>  3.系統(tǒng)維護模塊</b></p><p>  圖6 系統(tǒng)維護內部模塊圖</p><p><b>  4.系統(tǒng)流程圖</b></p>&l

35、t;p><b>  圖7 系統(tǒng)流程圖</b></p><p><b>  5.數(shù)據(jù)庫設計</b></p><p>  (1)數(shù)據(jù)庫概要設計</p><p>  本系統(tǒng)的數(shù)據(jù)庫主要有“學生”、“班級”、“課程”、“教師”等。其中教師與課程系統(tǒng)存在授課聯(lián)系,并且一個教師可以授N門課程,即教師與課程是一對多的關系。一個學生

36、可以學習N們課程,一門課程可以有M個學生學習,即學生與課程是多對多的關系。整個數(shù)據(jù)庫可以用一個E-R圖表示。如圖8所示:</p><p><b>  圖8 系統(tǒng)E-R圖</b></p><p> ?。?)數(shù)據(jù)庫詳細設計</p><p>  該系統(tǒng)子系統(tǒng)分為學生系統(tǒng)、班級系統(tǒng)、課程系統(tǒng)、學生-課程系統(tǒng)、用戶信息系統(tǒng)。</p><

37、;p><b> ?。ǘ┐a設計</b></p><p>  新系統(tǒng)為每個學生設計了代碼,一方面可統(tǒng)一學生的成績管理,另一方面是為了方便數(shù)據(jù)輸入。產品代碼為兩位數(shù)字字符,采用的是順序碼結構。</p><p>  在系統(tǒng)運行過程中,凡是需要輸入某種產品時,只需輸入產品代碼即可,系統(tǒng)可根據(jù)學生代碼、成績表單、自動將相應的學生姓名和成績等信息調出來,而且代碼表顯示在輸

38、入/輸出窗口中,用戶不一定要記住學生的代碼,可隨時通過系統(tǒng)聯(lián)機查詢。</p><p>  #include<stdio.h> /*引用庫函數(shù)*/ </p><p>  #include<stdlib.h> </p><p>  #include<ctype.h> </p><p>  #include<

39、;string.h> </p><p>  typedef struct /*定義結構體數(shù)組*/ </p><p><b>  { </b></p><p>  char num[10]; /*學號*/ </p><p>  char name[20]; /*姓名*/ </p><p>  

40、int score; /*成績*/ </p><p><b>  }</b></p><p><b>  Student; </b></p><p>  Student stu[80]; /*結構體數(shù)組變量*/ </p><p>  int menu_select() /*菜單函數(shù)*/ </p

41、><p><b>  { </b></p><p><b>  char c; </b></p><p><b>  do</b></p><p><b>  { </b></p><p>  system("cls"

42、;); /*運行前清屏*/ </p><p>  printf("\t\t****Students' Grade Management System****\n"); /*菜單選擇*/ </p><p>  printf("\t\t | 1. Input Records |\n"); </p><p>  printf

43、("\t\t | 2. Display All Records |\n"); </p><p>  printf("\t\t | 3. Sort |\n"); </p><p>  printf("\t\t | 4. Insert a Record |\n"); </p><p>  printf(&quo

44、t;\t\t | 5. Delete a Record |\n"); </p><p>  printf("\t\t | 6. Query |\n"); </p><p>  printf("\t\t | 7. Statistic |\n"); </p><p>  printf("\t\t | 8. Ad

45、d Records from a Text File|\n"); </p><p>  printf("\t\t | 9. Write to a Text file |\n"); </p><p>  printf("\t\t | 0. Quit |\n"); </p><p>  printf("\t\t

46、*****************************************\n"); </p><p>  printf("\t\t\tGive your Choice(0-9):"); </p><p>  c=getchar();/*讀入選擇*/ </p><p><b>  }</b></p&g

47、t;<p>  while(c<'0'||c>'9'); </p><p>  return(c-'0'); /*返回選擇*/ </p><p><b>  } </b></p><p>  int Input(Student stud[],int n) /*輸入若干條

48、記錄*/ </p><p>  { int i=0; </p><p>  char sign,x[10]; /*x[10]為清除多余的數(shù)據(jù)所用*/ </p><p>  while(sign!='n'&&sign!='N') /*判斷*/ </p><p><b>  { <

49、;/b></p><p>  printf("\t\t\tstudent's num:"); /*交互輸入*/ </p><p>  scanf("\t\t\t%s",stud[n+i].num); </p><p>  printf("\t\t\tstudent's name:");

50、 </p><p>  scanf("\t\t\t%s",stud[n+i].name); </p><p>  printf("\t\t\tstudent's score:"); </p><p>  scanf("\t\t\t%d",&stud[n+i].score); </p&g

51、t;<p>  gets(x); /*清除多余的輸入*/ </p><p>  printf("\t\t\tany more records?(Y/N)"); </p><p>  scanf("\t\t\t%c",&sign); /*輸入判斷*/ </p><p><b>  i++; &l

52、t;/b></p><p><b>  } </b></p><p>  return(n+i); </p><p><b>  } </b></p><p>  void Display(Student stud[],int n) /*顯示所有記錄*/ </p><p&g

53、t;<b>  { </b></p><p><b>  int i; </b></p><p>  printf("\t\t\t-----------------------------------\n"); /*格式頭*/ </p><p>  printf("\t\t\tnumber n

54、ame score\n"); </p><p>  printf("\t\t\t-----------------------------------\n"); </p><p>  for(i=1;i<n+1;i++) /*循環(huán)輸入*/ </p><p><b>  { </b></p>&l

55、t;p>  printf("\t\t\t%-16s%-15s%d\n",stud[i-1].num,stud[i-1].name,stud[i-1].score); </p><p>  if(i>1&&i%10==0) /*每十個暫停*/ </p><p><b>  {</b></p><p>

56、;  printf("\t\t\t-----------------------------------\n"); /*格式*/ </p><p>  printf("\t\t\t"); </p><p>  system("pause"); </p><p>  printf("\t\t\t--

57、---------------------------------\n"); </p><p><b>  } </b></p><p><b>  } </b></p><p>  printf("\t\t\t"); </p><p>  system("p

58、ause"); </p><p><b>  } </b></p><p>  void Sort_by_num(Student stud[],int n) /*按學號排序*/ </p><p><b>  { </b></p><p>  int i,j,*p,*q,s; </p&

59、gt;<p>  char t[10]; </p><p>  for(i=0;i<n-1;i++) /*冒泡法排序*/ </p><p>  for(j=0;j<n-1-i;j++) </p><p>  if(strcmp(stud[j].num,stud[j+1].num)>0) </p><p><

60、;b>  {</b></p><p>  strcpy(t,stud[j+1].num); </p><p>  strcpy(stud[j+1].num,stud[j].num); </p><p>  strcpy(stud[j].num,t); </p><p>  strcpy(t,stud[j+1].name);

61、</p><p>  strcpy(stud[j+1].name,stud[j].name); </p><p>  strcpy(stud[j].name,t); </p><p>  p=&stud[j+1].score; </p><p>  q=&stud[j].score; </p><p>

62、<b>  s=*p; </b></p><p><b>  *p=*q; </b></p><p><b>  *q=s; </b></p><p><b>  } </b></p><p><b>  } </b></p&g

63、t;<p>  int Insert_a_record(Student stud[],int n) /*插入一條記錄*/ </p><p><b>  {</b></p><p>  char x[10]; /*清除多余輸入所用*/ </p><p>  printf("\t\t\tstudent's num:&

64、quot;); /*交互式輸入*/ </p><p>  scanf("\t\t\t%s",stud[n].num); </p><p>  printf("\t\t\tstudent's name:"); </p><p>  scanf("\t\t\t%s",stud[n].name); <

65、;/p><p>  printf("\t\t\tstudent's score:"); </p><p>  scanf("\t\t\t%d",&stud[n].score); </p><p><b>  gets(x); </b></p><p><b>

66、  n++; </b></p><p>  Sort_by_num(stud,n); /*調用排序函數(shù)*/ </p><p>  printf("\t\t\tInsert Successed!\n"); /*返回成功信息*/ </p><p>  return(n); </p><p><b>  }

67、 </b></p><p>  int Delete_a_record(Student stud[],int n) /*按姓名查找,刪除一條記錄*/ </p><p><b>  { </b></p><p>  char s[20]; </p><p>  int i=0,j; </p>&l

68、t;p>  printf("\t\t\ttell me his(her) name:"); /*交互式問尋*/ </p><p>  scanf("%s",s); </p><p>  while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判斷*/ </p><p

69、><b>  if(i==n) </b></p><p><b>  { </b></p><p>  printf("\t\t\tnot find!\n"); /*返回失敗信息*/ </p><p>  return(n); </p><p><b>  } &

70、lt;/b></p><p>  for(j=i;j<n-1;j++) /*刪除操作*/ </p><p><b>  { </b></p><p>  strcpy(stud[j].num,stud[j+1].num); </p><p>  strcpy(stud[j].name,stud[j+1].na

71、me); </p><p>  stud[j].score=stud[j+1].score; </p><p><b>  } </b></p><p>  printf("\t\t\tDelete Successed!\n"); /*返回成功信息*/ </p><p>  return(n-1);

72、</p><p><b>  } </b></p><p>  void Query_a_record(Student stud[],int n) /*查找并顯示一個記錄*/ </p><p><b>  {</b></p><p>  char s[20]; </p><p&g

73、t;<b>  int i=0; </b></p><p>  printf("\t\t\tinput his(her) name:"); /*交互式輸入*/ </p><p>  scanf("\t\t\t%s",s); </p><p>  while(strcmp(stud[i].name,s)!=

74、0&&i<n) i++; /*查找判斷*/ </p><p><b>  if(i==n) </b></p><p><b>  { </b></p><p>  printf("\t\t\tnot find!\n"); /*輸入失敗信息*/ </p><p&g

75、t;<b>  return; </b></p><p><b>  } </b></p><p>  printf("\t\t\this(her) number:%s\n",stud[i].num); /*輸出該學生信息*/ </p><p>  printf("\t\t\this(her)

76、 score:%d\n",stud[i].score); </p><p><b>  } </b></p><p>  void Statistic(Student stud[],int n) /*新增功能,輸出統(tǒng)計信息*/ </p><p><b>  { </b></p><p> 

77、 int i,j=0,k=0,sum=0; </p><p>  float aver; /*成績平均值*/ </p><p>  for(i=0;i<n;i++) /*循環(huán)輸入判斷*/ </p><p><b>  { </b></p><p>  sum+=stud[i].score; </p>

78、<p>  if(stud[j].score>stud[i].score) j=i; </p><p>  if(stud[k].score<stud[i].score) k=i; </p><p><b>  } </b></p><p>  aver=1.0*sum/n; </p><p>  

79、printf("\t\t\tthere are %d records.\n",n); /*總共記錄數(shù)*/ </p><p>  printf("\t\t\tthe hignest score:\n"); /*最高分*/ </p><p>  printf("\t\t\tnumber:%s name:%s score:%d\n",s

80、tud[j].num,stud[j].name,stud[j].score); </p><p>  printf("\t\t\tthe lowest score:\n"); /*最低分*/ </p><p>  printf("\t\t\tnumber:%s name:%s score:%d\n",stud[k].num,stud[k].name,

81、stud[k].score); </p><p>  printf("\t\t\tthe average score is %5.2f\n",aver); /*平均分*/ </p><p><b>  } </b></p><p>  int AddfromText(Student stud[],int n) /*從文件中讀

82、入數(shù)據(jù)*/ </p><p><b>  { </b></p><p>  int i=0,num; </p><p>  FILE *fp; /*定義文件指針*/ </p><p>  char filename[20]; /*定義文件名*/ </p><p>  printf("\t

83、\t\tInput the filename:"); </p><p>  scanf("\t\t\t%s",filename); /*輸入文件名*/ </p><p>  if((fp=fopen(filename,"rb"))==NULL) /*打開文件*/ </p><p><b>  { </

84、b></p><p>  printf("\t\t\tcann't open the file\n"); /*打開失敗信息*/ </p><p>  printf("\t\t\t"); </p><p>  system("pause"); </p><p>  ret

85、urn(n); </p><p><b>  } </b></p><p>  fscanf(fp,"%d",&num); /*讀入總記錄量*/ </p><p>  while(i<num) /*循環(huán)讀入數(shù)據(jù)*/ </p><p><b>  { </b><

86、/p><p>  fscanf(fp,"%s%s%d",stud[n+i].num,stud[n+i].name,&stud[n+i].score); </p><p><b>  i++; </b></p><p><b>  } </b></p><p><b>

87、;  n+=num; </b></p><p>  fclose(fp); /*關閉文件*/ </p><p>  printf("\t\t\tSuccessed!\n"); </p><p>  printf("\t\t\t"); </p><p>  system("pause

88、"); </p><p>  return(n); </p><p><b>  } </b></p><p>  void WritetoText(Student stud[],int n) /*將所有記錄寫入文件*/ </p><p><b>  { </b></p>&

89、lt;p><b>  int i=0; </b></p><p>  FILE *fp; /*定義文件指針*/ </p><p>  char filename[20]; /*定義文件名*/ </p><p>  printf("\t\t\tWrite Records to a Text File\n"); /*輸入文

90、件名*/ </p><p>  printf("\t\t\tInput the filename:"); </p><p>  scanf("\t\t\t%s",filename); </p><p>  if((fp=fopen(filename,"w"))==NULL) /*打開文件*/ </p&

91、gt;<p><b>  { </b></p><p>  printf("\t\t\tcann't open the file\n"); </p><p>  system("pause"); </p><p><b>  return; </b></p

92、><p><b>  } </b></p><p>  fprintf(fp,"%d\n",n); /*循環(huán)寫入數(shù)據(jù)*/ </p><p>  while(i<n) </p><p><b>  { </b></p><p>  fprintf(fp,&

93、quot;%-16s%-15s%d\n",stud[i].num,stud[i].name,stud[i].score); </p><p><b>  i++; </b></p><p><b>  } </b></p><p>  fclose(fp); /*關閉文件*/ </p><p&

94、gt;  printf("Successed!\n"); /*返回成功信息*/ </p><p><b>  } </b></p><p>  void main() /*主函數(shù)*/ </p><p><b>  { </b></p><p><b>  int n=0

95、; </b></p><p><b>  for(;;) </b></p><p><b>  { </b></p><p>  switch(menu_select()) /*選擇判斷*/ </p><p><b>  { </b></p><

96、p><b>  case 1: </b></p><p>  printf("\t\t\tInput Records\n"); /*輸入若干條記錄*/ </p><p>  n=Input(stu,n); </p><p><b>  break; </b></p><p>

97、;<b>  case 2: </b></p><p>  printf("\t\t\tDisplay All Records\n"); /*顯示所有記錄*/ </p><p>  Display(stu,n); </p><p><b>  break; </b></p><p&g

98、t;<b>  case 3: </b></p><p>  printf("\t\t\tSort\n"); </p><p>  Sort_by_num(stu,n); /*按學號排序*/ </p><p>  printf("\t\t\tSort Suceessed!\n"); </p>

99、<p>  printf("\t\t\t"); </p><p>  system("pause"); </p><p><b>  break; </b></p><p><b>  case 4: </b></p><p>  printf(&

100、quot;\t\t\tInsert a Record\n"); </p><p>  n=Insert_a_record(stu,n); /*插入一條記錄*/ </p><p>  printf("\t\t\t"); </p><p>  system("pause"); </p><p>&

101、lt;b>  break; </b></p><p><b>  case 5: </b></p><p>  printf("\t\t\tDelete a Record\n"); </p><p>  n=Delete_a_record(stu,n); /*按姓名查找,刪除一條記錄*/ </p>

102、;<p>  printf("\t\t\t"); </p><p>  system("pause"); </p><p><b>  break; </b></p><p><b>  case 6: </b></p><p>  printf

103、("\t\t\tQuery\n"); </p><p>  Query_a_record(stu,n); /*查找并顯示一個記錄*/ </p><p>  printf("\t\t\t"); </p><p>  system("pause"); </p><p><b>

104、  break; </b></p><p><b>  case 7: </b></p><p>  printf("\t\t\tStatistic\n"); </p><p>  Statistic(stu,n); /*新增功能,輸出統(tǒng)計信息*/ </p><p>  printf(&q

105、uot;\t\t\t"); </p><p>  system("pause"); </p><p><b>  break; </b></p><p><b>  case 8: </b></p><p>  printf("\t\t\tAdd Record

106、s from a Text File\n"); </p><p>  n=AddfromText(stu,n); /*新增功能,輸出統(tǒng)計信息*/ </p><p><b>  break; </b></p><p><b>  case 9: </b></p><p>  printf(&

107、quot;\t\t\tWrite to a Text file\n"); </p><p>  WritetoText(stu,n); /*循環(huán)寫入數(shù)據(jù)*/ </p><p>  printf("\t\t\t"); </p><p>  system("pause"); </p><p>&l

108、t;b>  break; </b></p><p><b>  case 0: </b></p><p>  printf("\t\t\tHave a Good Luck,Bye-bye!\n"); /*結束程序*/ </p><p>  printf("\t\t\t"); </p

109、><p>  system("pause"); </p><p><b>  exit(0); </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }<

110、/b></p><p>  (三)輸入/輸出設計</p><p>  在系統(tǒng)的輸入/輸出設計上遵循的是既滿足用戶需求又方便用戶使用的原則。輸入/輸出界面的確定都與用戶反復溝通,直到用戶滿意為止。 </p><p>  輸入界面的設計不僅考慮數(shù)據(jù)輸入窗口的屏幕格式,而且考慮如何使輸入數(shù)據(jù)的錯誤率可能的小,為此在程序中加入了對輸入數(shù)據(jù)的校驗和判斷等功能,如輸入數(shù)據(jù)

111、上下限的設置、與相關數(shù)據(jù)關系的判斷、參考對照表等。例如,在輸入和選擇學生時,只輸入學生代碼即可,系統(tǒng)可根據(jù)成績代碼、科目及其學生姓名對照表,自動將相應的學生姓名和成績等信息調出來。當用戶輸入的學生代碼不對時,系統(tǒng)自動轉入代碼表查詢窗口,讓用戶在窗口中瀏覽查詢選擇學生代碼,因此用戶可不必一定記住每個產品的代碼,系統(tǒng)將代碼表顯示在輸入輸出窗口旁,用戶可隨時通過系統(tǒng)聯(lián)機查詢。</p><p><b>  收獲

112、和體會</b></p><p>  通過這次的課程設計,我們對管理信息系統(tǒng)這門課有了更深入的認識,同時體會最深的是,軟件的編寫需要一絲不茍的精神和足夠的耐心。軟件編程工作是辛苦的,每一個細小的環(huán)節(jié)都是注意的重點,因為稍有不慎,所有的努力就會白費,就會前功盡棄。出現(xiàn)的錯誤每次都是細微的,因為小小的疏忽,就要花費很長時間去查找,這個過程是痛苦的。由于我們的經驗不足,只有理論知識而缺乏實踐經驗,在做的過程中

113、總是反反復復。雖然我們做的速度不快,但是我們的體會逐漸深入,每一次嘗試的小小成功都讓我們興奮不已。</p><p>  編寫報告的過程,我們各展所長,積極討論,分工合作,查閱資料,之后又一起畫圖,一起總結。這次課程設計首先要感謝老師的幫助,我們的成果也許不是最矚目的,也許還會有缺陷,但每一個過程我們都是經過細心的研討后不斷的嘗試。這只是一個簡單的軟件,只是對管理信息系統(tǒng)最簡單的認識,但是應用的過程我們學到的是實際

114、的東西。</p><p>  這是一個學習的過程,是一個總結與沉淀的過程,更是一個團隊合作磨練的過程。我們共同討論,共同嘗試。通過這次課程設計使我們深刻了解到管理信息系統(tǒng)的應用以及開發(fā),同時也讓我們熟練了各種小軟件的應用,更擴展了我們的視野。</p><p>  五、課程設計小組分工:</p><p>  周秋:模塊結構體系,其中包括:功能模塊圖、功能模塊說明、系統(tǒng)

115、維護模塊圖、系統(tǒng)流程圖。</p><p>  吳楚、舒暢:前言、系統(tǒng)分析,其中包括:可行性分析、組織結構圖、數(shù)據(jù)字典(數(shù)據(jù)流的描述、處理邏輯的描述、數(shù)據(jù)存儲、外部實體、數(shù)據(jù)項、數(shù)數(shù)據(jù)結構)、體會和收獲。</p><p>  羅星、王廷勇:業(yè)務流程圖、數(shù)據(jù)流程圖(頂層圖、展開圖)、數(shù)據(jù)庫概要設計(系統(tǒng)E-R圖)、數(shù)據(jù)庫詳細設計(學生信息表、班級信息表、課程信息表、學生-課程表、用戶信息表)、

溫馨提示

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

評論

0/150

提交評論