課程設(shè)計報告--教師信息管理系統(tǒng)_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  課程設(shè)計報告</b></p><p>  課程設(shè)計題目:C語言程序設(shè)計 </p><p>  第一章 課程設(shè)計內(nèi)容</p><p>  1.1 課程設(shè)計目的</p><p>  此次課題主要是實現(xiàn)對教師信息的簡易管理。首先定義一個教師TeacherList類;其次可

2、以對教師信息進行增加,用鏈表來做,所以可以分別從表頭和表尾來增加;然后可以用鏈表來查找和刪除教師的相關(guān)信息;最后可以顯示教師的所有信息并要求用二進制文件進行讀寫操作。由此來系統(tǒng)化的管理教師的信息,并達到簡易操作的目的。在課程設(shè)計同時,我們應(yīng)學會以下幾點:</p><p>  1、通過C++語言的課程設(shè)計進一步的了解和掌握C++語言的有關(guān)知識和相關(guān)語法的使用方法。</p><p>  2、熟

3、練掌握使用C++語言對一些簡單常見問題進行解決,編譯程序?qū)栴}進行解決。</p><p>  3、通過課程設(shè)計,進一步掌握C++語言中有關(guān)重要的數(shù)據(jù)結(jié)構(gòu),諸如類、鏈表、結(jié)構(gòu)</p><p>  體、文件等在程序開發(fā)中的應(yīng)用。</p><p>  4、通過課程設(shè)計,能根據(jù)實際問題的具體情況,結(jié)合面向?qū)ο蟮幕纠碚摵突炯记?,正確分析問題,并能設(shè)計出解決問題的有效算法與

4、程序。提高程序開發(fā)能力,能運用合理的控制流編寫清晰高效的程序。</p><p>  5、通過課程設(shè)計,培養(yǎng)C++語言知識運用和自學能力,驗證自己設(shè)計的算法和程序的正確性。學會有效利用基本調(diào)試方法,迅速找出程序代碼中的錯誤并且修改,進一步提高程序設(shè)計水平。獨立或合作設(shè)計和開發(fā)一個中小型系統(tǒng),掌握系統(tǒng)研發(fā)全過程。</p><p>  6、通過此次課程設(shè)計發(fā)現(xiàn)自己在C++語言編程上的不足并進一步

5、掌握C++語言,為以</p><p><b>  后課程打下基礎(chǔ)。</b></p><p><b>  課程設(shè)計功能說明</b></p><p>  1.2.1 功能分析說明圖</p><p>  該課題功能分析說明如下圖所示:</p><p>  1.2.2 各項功能說

6、明</p><p> ?。?)教師信息的增加:</p><p>  這部分的功能主要是在鏈表中加入教師的信息。首先開辟一個結(jié)點,若開辟成功,則按程序提示輸入教師的相關(guān)信息,包括編號、姓名、性別、電話以及職位等,并將這些信息分別賦給結(jié)點中的相應(yīng)變量;然后把這個結(jié)點加入到鏈表中,可以從表頭或表尾來增加,計數(shù)器加一;最后根據(jù)提示是否繼續(xù)加入教師信息來循環(huán)操作。這樣一個教師信息的鏈表就形成了。&l

7、t;/p><p> ?。?)查找教師信息:</p><p>  進入該功能界面后,可以通過教師的編號查找出該教師的所有信息。首先開辟一個結(jié)點,并把鏈表頭結(jié)點賦給它,根據(jù)輸入的教師編號,逐個查找鏈表中與此編號匹配的教師結(jié)點,找到之后,將此教師的所有信息輸出。</p><p>  (3)刪除教師信息:</p><p>  進入該功能界面后,可以通過教

8、師的編號對某個教師信息進行刪除。首先開辟一個</p><p>  結(jié)點,并把鏈表頭結(jié)點賦給它,根據(jù)輸入的教師編號,逐個查找鏈表中與此編號匹配的教師結(jié)點,找到之后,將此教師的所有信息刪除。可以通過顯示所有的教師信息來看此教師信息是否刪除。</p><p>  (4)統(tǒng)計教師人數(shù):</p><p>  選擇這個功能后就可以知道當前的所有教師數(shù),同時也可以根據(jù)刪除前后的教

9、師數(shù)來判斷教師信息是否刪除。</p><p>  (5)顯示教師信息:</p><p>  選擇此功能后可以將當前的所有教師信息顯示出來。</p><p>  1.3 各項功能的驗收標準</p><p>  一、有較為美觀簡潔大方的菜單,能保證用戶方便、直觀、快捷的熟悉并使用軟件的各項功能。</p><p>  二、

10、有嚴密正確的數(shù)據(jù)驗證功能和數(shù)據(jù)處理功能,可根據(jù)需要增加教師信息,不會有空間的浪費,并能按編號進行查找和刪除教師信息,刪除后將空間釋放。</p><p>  三、系統(tǒng)要有一定的可靠性。</p><p><b>  課程設(shè)計環(huán)境與原理</b></p><p>  設(shè)計環(huán)境與模塊的劃分</p><p>  2.1.1軟件設(shè)計環(huán)

11、境</p><p>  Microsoft Visual C++ 6.0 </p><p>  2.1.2軟件模塊的劃分</p><p>  該軟件主要組成模塊和各個模塊之間的調(diào)用關(guān)系如下圖:</p><p>  第三章 軟件的設(shè)計過程</p><p>  3.1 各軟件模塊之間的調(diào)用方式&

12、lt;/p><p>  程序中各個模塊之間的調(diào)用方式主要是通過文件的包含和函數(shù)的調(diào)用實現(xiàn)的,用文件的形式把各個函數(shù)分開,再用頭文件把它們包含進來,使用主函數(shù)進行調(diào)用。</p><p>  3.2 軟件中實現(xiàn)各項功能的函數(shù)與程序代碼</p><p>  #include<iostream></p><p>  #include<

13、fstream></p><p>  #include<string></p><p>  #include<conio.h></p><p>  using namespace std;</p><p>  class TeacherList</p><p><b>  {&l

14、t;/b></p><p><b>  private:</b></p><p>  stringname; //教師姓名</p><p>  stringnumber; //教師序號</p><p>  intteachage; //教師教齡</

15、p><p>  stringawards; //教師職稱</p><p><b>  public:</b></p><p><b>  int flag;</b></p><p>  string getname()</p><p><b>  {

16、</b></p><p>  return name;</p><p><b>  }</b></p><p>  string getnum()</p><p><b>  {</b></p><p>  return number;</p>&l

17、t;p><b>  }</b></p><p>  void init();</p><p>  void display();</p><p><b>  };</b></p><p>  void TeacherList::display()</p><p><

18、;b>  {</b></p><p>  cout<<"教師姓名:"<<name<<endl;</p><p>  cout<<"教師序號:"<<number<<endl;</p><p>  cout<<"教師教齡

19、:"<<teachage<<endl;</p><p>  cout<<"教師職稱:"<<awards<<endl;</p><p><b>  }</b></p><p>  void TeacherList::init()</p><

20、;p><b>  {</b></p><p>  cout<<"教師姓名:";</p><p>  cin>>name;</p><p>  cout<<"教師序號:";</p><p>  cin>>number;</p

21、><p>  cout<<"教師教齡:";</p><p>  cin>>teachage;</p><p>  cout<<"教師職稱:";</p><p>  cin>>awards;</p><p><b>  flag

22、=1;</b></p><p><b>  }</b></p><p>  void insert();</p><p>  void deleteinf();</p><p>  void search();</p><p>  void amend(); /

23、/修改信息</p><p>  void about();</p><p>  void help();</p><p>  void show();</p><p>  void menu();</p><p>  const int amount=500;</p><p>  Teacher

24、List tech[amount];</p><p>  void main()</p><p><b>  {</b></p><p><b>  menu();</b></p><p><b>  }</b></p><p>  void inser

25、t() //輸入信息</p><p><b>  {</b></p><p><b>  int i,c;</b></p><p>  system("cls"); //清屏功能</p><p>  for(i=0;i<amount

26、;i++)</p><p><b>  {</b></p><p>  if(tech[i].flag!=1)//對標志進行判斷,如果沒有初始化就將該對象初始化</p><p><b>  {</b></p><p>  tech[i].init();</p><p><

27、;b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  cout<<"是否繼續(xù)輸入?(y/n)";</p><p>  c=getch();</p><p

28、>  while(c!=121&&c!=110)</p><p>  c=getch();</p><p>  if(c==121)</p><p>  insert(); //繼續(xù)調(diào)用輸入功能函數(shù)</p><p><b>  else</b></p><p

29、><b>  {</b></p><p>  ofstream os("data",ios_base::out |ios_base::binary );//把數(shù)據(jù)存到文件中</p><p>  for(i=0;i<500;i++)</p><p><b>  {</b></p>

30、<p>  os.write (reinterpret_cast<char * >(&tech[i]),sizeof(tech[i]));</p><p><b>  }</b></p><p>  os.close();</p><p><b>  }</b></p><

31、;p><b>  }</b></p><p>  void search() //查找信息</p><p><b>  {</b></p><p>  string temp;</p><p>  int c,i,mark=0;</p><p>

32、;  cout<<"查找菜單:\n\n\n\n1.按姓名查找 2.按序號查找 "<<endl;</p><p>  c=getch();</p><p>  while((c<'1')||(c>'4'))</p><p>  c=getch();</p>

33、<p><b>  switch(c)</b></p><p><b>  {</b></p><p>  case '1': //按姓名查找</p><p><b>  {</b></p><p>  cout<<

34、"\n\n\n輸入姓名:";</p><p>  cin>>temp;</p><p>  for(i=0;i<amount;i++)</p><p><b>  {</b></p><p>  if(temp==tech[i].getname())</p><p

35、><b>  {</b></p><p>  tech[i].display();</p><p><b>  mark=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p&

36、gt;<b>  }</b></p><p><b>  break;</b></p><p>  case '2': //按序號查找</p><p><b>  {</b></p><p>  cout<<"\n\

37、n\n輸入序號:";</p><p>  cin>>temp;</p><p>  for(i=0;i<amount;i++)</p><p><b>  {</b></p><p>  if(temp==tech[i].getnum())</p><p><b&

38、gt;  {</b></p><p>  tech[i].display();</p><p><b>  mark=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b&g

39、t;  }break;</b></p><p><b>  }</b></p><p>  if(mark!=1)</p><p><b>  {</b></p><p>  cout<<"查無此教師信息..."<<endl;</p&g

40、t;<p><b>  }</b></p><p><b>  }</b></p><p>  void deleteinf() //刪除信息 </p><p><b>  {</b></p><p>  int i,j,c;</p>

41、;<p>  string temp;</p><p>  cout<<"刪除菜單:\n\n\n\n1.按姓名刪除 2.按序號刪除"<<endl;</p><p>  c=getch();</p><p>  while(c!='1'&&c!='2'

42、)</p><p>  c=getch();</p><p><b>  switch(c)</b></p><p><b>  {</b></p><p>  case '1': //刪除該對象數(shù)組的一個成員就是把后面一個元素覆蓋前一個。最后一個沒有做

43、處理(有一定問題)</p><p><b>  {</b></p><p>  cout<<"\n\n\n輸入姓名:";</p><p>  cin>>temp;</p><p>  for(i=0;i<500;i++)</p><p><b

44、>  {</b></p><p>  if(temp==tech[i].getname())</p><p><b>  {</b></p><p>  for(j=i;j<500;j++)</p><p><b>  {</b></p><p>  

45、tech[j]=tech[j+1];</p><p><b>  }</b></p><p>  cout<<"刪除信息成功。"<<endl;</p><p>  system("pause");</p><p><b>  break;</

46、b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break;</b></p><p>  case '2'

47、;://</p><p><b>  {</b></p><p>  cout<<"\n\n\n輸入序號:";</p><p>  cin>>temp;</p><p>  for(i=0;i<500;i++)</p><p><b> 

48、 {</b></p><p>  if(temp==tech[i].getnum())</p><p><b>  {</b></p><p>  for(j=i;j<500;j++)</p><p><b>  {</b></p><p>  tech[j

49、]=tech[j+1];</p><p><b>  }</b></p><p>  cout<<"刪除信息成功。"<<endl;</p><p>  system("pause");</p><p><b>  break;</b>&

50、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  ofstream os("data&quo

51、t;,ios_base::out |ios_base::binary );//把數(shù)據(jù)存到文件中</p><p>  for(i=0;i<500;i++)</p><p><b>  {</b></p><p>  os.write (reinterpret_cast<char * >(&tech[i]),sizeof(

52、tech[i]));</p><p><b>  }</b></p><p>  os.close();</p><p><b>  }</b></p><p>  void amend() //修改信息</p><p><b>  {&

53、lt;/b></p><p><b>  int i,c;</b></p><p>  string temp;</p><p>  cout<<"修改菜單:\n\n\n\n1.按姓名修改 2.按序號修改"<<endl;</p><p>  c=getch()

54、;</p><p>  while(c!='1'&&c!='2')</p><p>  c=getch();</p><p><b>  switch(c)</b></p><p><b>  {</b></p><p><

55、;b>  case '1':</b></p><p><b>  {</b></p><p>  cout<<"\n\n\n輸入姓名:";</p><p>  cin>>temp;</p><p>  for(i=0;i<500;i++)

56、</p><p><b>  {</b></p><p>  if(temp==tech[i].getname())</p><p><b>  {</b></p><p>  tech[i].init();</p><p><b>  }</b><

57、;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  case '2':</b></p><p><b>

58、  {</b></p><p>  cout<<"\n\n\n輸入序號:";</p><p>  cin>>temp;</p><p>  for(i=0;i<500;i++)</p><p><b>  {</b></p><p> 

59、 if(temp==tech[i].getnum())</p><p><b>  {</b></p><p>  tech[i].init();</p><p><b>  }</b></p><p><b>  }</b></p><p><b

60、>  }</b></p><p><b>  }</b></p><p>  ofstream os("data",ios_base::out |ios_base::binary );//把數(shù)據(jù)存到文件中</p><p>  for(i=0;i<500;i++)</p><p>

61、;<b>  {</b></p><p>  os.write (reinterpret_cast<char * >(&tech[i]),sizeof(tech[i]));</p><p><b>  }</b></p><p>  os.close();</p><p><

62、;b>  }</b></p><p>  void menu()</p><p><b>  {</b></p><p><b>  char c;</b></p><p><b>  int i;</b></p><p>  syst

63、em("cls"); //清屏</p><p>  for(i=0;i<=19;i++)cout<<(" ");cout<<("\n");</p><p>  for(i=0;i<=19;i++)cout<<(" ");cout<<(&quo

64、t;\n");</p><p>  for(i=0;i<=19;i++)cout<<(" ");cout<<(" 教師信息管理系統(tǒng) \n\n");</p><p>  for(i=0;i<=19;i++)cout<<(" ");cout<&l

65、t;("\n");</p><p>  for(i=0;i<=19;i++)cout<<(" ");cout<<(" 1:添加信息 2:查看全部\n\n");</p><p>  for(i=0;i<=19;i++)cout<<(" ");cout

66、<<(" 3:查找信息 4:刪除信息\n\n");</p><p>  for(i=0;i<=19;i++)cout<<(" ");cout<<(" 5:修改信息 6:使用說明\n\n");</p><p>  for(i=0;i<=19;i++)co

67、ut<<(" ");cout<<(" 7:關(guān)于作者 8:退出程序\n\n");</p><p>  for(i=0;i<=19;i++)cout<<(" ");cout<<("\n");</p><p>  c=getch();</p&

68、gt;<p>  while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&c!='6'&&c!='7'&&c!='8')</p><

69、;p>  c=getch();</p><p><b>  switch(c)</b></p><p><b>  {</b></p><p>  case '1':insert();</p><p><b>  break;</b></p>

70、<p>  case '2':show();system("pause");</p><p><b>  break;</b></p><p>  case '3':search();system("pause");</p><p><b>  bre

71、ak;</b></p><p>  case '4':deleteinf();</p><p><b>  break;</b></p><p>  case '5':amend();</p><p><b>  break;</b></p>

72、<p>  case '6':help();</p><p><b>  break;</b></p><p>  case '7':about();</p><p><b>  break;</b></p><p>  case '8':

73、exit(0);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  menu();</b></p><p><b>  }</b></p><p>  void a

74、bout() //關(guān)于作者</p><p><b>  {</b></p><p>  cout<<" ";</p><p><b>  }</b></p><p>  void help() //使用說明</p><p><

75、;b>  {</b></p><p><b>  }</b></p><p>  void show()</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  for(i=0;i&

76、lt;amount&&tech[i].flag==1;i++)</p><p><b>  {</b></p><p>  tech[i].display();</p><p>  cout<<"\n";</p><p><b>  }</b><

77、/p><p><b>  }</b></p><p>  第四章 設(shè)計結(jié)果與分析</p><p>  4.1 軟件使用結(jié)果</p><p>  在此,我們將把軟件使用過程寫出,并對此程序的一些細節(jié)的具體的操作方法加以說明,說明如下:</p><p>  1.將軟件進行初始化。</p>

78、<p>  2.進入程序菜單,界面如下:</p><p><b>  3.添加教師信息</b></p><p><b>  查看教師信息</b></p><p>  5.查找教師信息(按姓名查找)</p><p><b> ?。ò葱蛱柌檎遥?lt;/b></p>

79、<p><b>  6.修改教師信息</b></p><p><b>  7.刪除教師信息</b></p><p><b>  8.退出程序</b></p><p><b>  總結(jié)</b></p><p>  通過這次課程設(shè)計,我們從中受益

80、匪淺,不僅讓我們對C++語言程序設(shè)計這一門課程有了更深一步的認識,還讓我對復(fù)雜程序的開發(fā)有了一個深刻的認識,使我進一步明白了模塊化思想在程序開發(fā)中的重要性。另外,通過為期一周的C++課程設(shè)計實驗課使我了解到了一個程序開發(fā)的過程,雖然規(guī)模不大,但為我以后的編程學習打下了基礎(chǔ)。在編程的過程中,我們可以把這學期所學的理論知識和實踐聯(lián)系起來,在所要開發(fā)的項目中漸漸成長。雖然我們對這些C++語言知識運用得還不是很熟練,但是相信我們也在滴水穿石地成

81、長起來。發(fā)現(xiàn)問題,提出問題,解決問題,使我們從不足之處出發(fā),尋找新的學習方向。同時我也體會到了學習編程的辛苦,為了一個算法的實現(xiàn)而思考,為了一個小小的編譯錯誤而花時間去尋找,這需要很大的毅力和耐心,而且要有比較清晰的思維。同時,我也發(fā)現(xiàn)自己的一些不足,良好的編程習慣的養(yǎng)成,堅定的毅力和耐心是我要加強的,同別人的交流也是必須的,這樣才能不斷使我進步,還要加強自己基礎(chǔ)學科的學習 ,能把所學知識融會貫通。</p><p&g

82、t;  在這次課程設(shè)計中,我們設(shè)計了一個對教師信息進行管理的系統(tǒng),它基本滿足了界面友好,易于操作的要求,因此更利于用戶操作方便,運行簡易,從而達到對教師信息更加有效的系統(tǒng)管理。在此次設(shè)計中我們實現(xiàn)了根據(jù)用戶的需求對教師信息的增加、查找和刪除功能,采用鏈表,合理利用了空間。但軟件仍存在一些不足,比如沒有實現(xiàn)用二進制文件進行讀寫操作,在輸入有關(guān)教師的信息時對數(shù)據(jù)沒有詳細的限定等。</p><p>  通過這段時間的學

溫馨提示

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

評論

0/150

提交評論