c++課程設(shè)計(jì)(簡(jiǎn)易圖書(shū)管理系統(tǒng))實(shí)習(xí)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩36頁(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><b>  目 錄</b></p><p>  一、綜合訓(xùn)練目的與要求1</p><p>  二、綜合訓(xùn)練任務(wù)1</p><p><b>  三、總體設(shè)計(jì)1</b></p><p>  四、詳細(xì)設(shè)計(jì)說(shuō)明2</p><p>  1、類設(shè)計(jì)詳細(xì)說(shuō)名

2、2</p><p>  2、部分代碼詳解5</p><p>  1)Student類的設(shè)計(jì)5</p><p>  2)將文本文件信息存入Stulist容器6</p><p>  3)查詢學(xué)生信息6</p><p>  4)刪除學(xué)生信息7</p><p><b>  五、調(diào)試與

3、測(cè)試8</b></p><p>  1、登錄前進(jìn)行登錄選擇8</p><p>  2、選擇管理員登錄后9</p><p>  3、選擇讀者登錄后12</p><p><b>  六、實(shí)習(xí)日志14</b></p><p><b>  七、實(shí)習(xí)總結(jié)15</b&g

4、t;</p><p>  八、附錄:核心代碼清單15</p><p>  1、各個(gè)類設(shè)計(jì).h核心代碼15</p><p>  1)教工類(Teacher.h代碼)15</p><p>  2)學(xué)生類.h核心代碼16</p><p>  3)借閱記錄類.h核心代碼17</p><p> 

5、 4)圖書(shū)類.h核心代碼18</p><p>  5)管理員類.h核心代碼19</p><p>  6)MangBook類.h核心代碼19</p><p>  7)圖書(shū)管理類.h核心代碼20</p><p>  8)借閱記錄管理類.h核心代碼20</p><p>  9)學(xué)生管理類.h核心代碼20</

6、p><p>  10)教工管理類.h核心代碼20</p><p>  11)管理員管理類.h核心代碼21</p><p>  12)MangLirary類.h核心代碼21</p><p>  13)管理員登錄類.h核心代碼21</p><p>  14)讀者登錄類.h核心代碼21</p><p

7、>  2、部分類設(shè)計(jì).CPP核心代碼22</p><p>  1)學(xué)生管理類.CPP核心代碼22</p><p>  2)讀者登錄類.CPP核心代碼30</p><p>  一、綜合訓(xùn)練目的與要求</p><p>  掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本方法,加深對(duì)面向?qū)ο蟮乃枷?,包括封裝性、繼承性、多態(tài)性的理解,掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的分析

8、、設(shè)計(jì)和實(shí)現(xiàn)方法。通過(guò)實(shí)題的分析設(shè)計(jì)、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法,提高程序設(shè)計(jì)能力和綜合知識(shí)運(yùn)用能力。通過(guò)課程設(shè)計(jì),培養(yǎng)學(xué)生嚴(yán)肅認(rèn)真的工作作風(fēng)。培養(yǎng)學(xué)生自學(xué)的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問(wèn)題、解決問(wèn)題的能力。</p><p>  要求:(1)理解并掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)方法;(2)掌握課程設(shè)計(jì)的目標(biāo)和詳細(xì)要求;</p><p> ?。?)鞏固和加深對(duì)程序設(shè)計(jì)課

9、程的理解,提高綜合運(yùn)用課程所學(xué)知識(shí)的能</p><p><b>  二、綜合訓(xùn)練任務(wù)</b></p><p>  本次所選題目及要求任務(wù)如下:</p><p>  1) 圖書(shū)管理系統(tǒng)中存在如下業(yè)務(wù)實(shí)體:圖書(shū)(編號(hào)、書(shū)名、作者、所屬科目、出版社、出版時(shí)間、入庫(kù)時(shí)間、頁(yè)數(shù)、定價(jià)等),圖書(shū)管理員(工號(hào)、名稱、崗位等),學(xué)生(學(xué)號(hào)、名稱、性別、年齡、類

10、別、所屬學(xué)院、入學(xué)時(shí)間、畢業(yè)時(shí)間、借閱時(shí)長(zhǎng)限制、借閱冊(cè)數(shù)限制等),教工(工號(hào)、名稱、性別、年齡、所屬學(xué)院、入職時(shí)間、借閱時(shí)長(zhǎng)限制、借閱冊(cè)數(shù)限制等),借閱記錄(借閱編號(hào)、圖書(shū)編號(hào)、讀者編號(hào)、借閱時(shí)間、應(yīng)還時(shí)間、圖書(shū)管理員編號(hào)等);</p><p>  2) 支持對(duì)以上相關(guān)業(yè)務(wù)實(shí)體的新增、刪除、屬性編輯、查詢等操作;</p><p>  3) 實(shí)現(xiàn)圖書(shū)管理中以上所有業(yè)務(wù)實(shí)體的保存與打開(kāi)等文件操

11、作。</p><p><b>  三、總體設(shè)計(jì)</b></p><p>  如圖1是對(duì)本次實(shí)習(xí)《簡(jiǎn)易圖書(shū)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》的總體框架圖。對(duì)本管理系統(tǒng)我對(duì)其設(shè)置了6個(gè)基礎(chǔ)類2個(gè)大類。在大類中設(shè)置相應(yīng)的管理類及相應(yīng)的函數(shù)對(duì)6個(gè)基本類進(jìn)行一些操作。在整個(gè)管理程序中,我將6個(gè)類相關(guān)的數(shù)據(jù)存儲(chǔ)在文本文件中,實(shí)現(xiàn)了對(duì)文件的讀寫(xiě)操作。在操作類里面我使用了list容器來(lái)存儲(chǔ)從文件

12、中讀取的數(shù)據(jù)。總體設(shè)計(jì)思路如圖1所示。</p><p><b>  四、詳細(xì)設(shè)計(jì)說(shuō)明</b></p><p><b>  1、類設(shè)計(jì)詳細(xì)說(shuō)名</b></p><p>  在整個(gè)系統(tǒng)中,建立了如圖2所示管理員登錄類(Admlogin)、讀者登錄類(Readerlogin),如圖3所示管理員類(Administrator)、登

13、錄密碼類(Admpassword),如圖4所示圖書(shū)類(Book)、學(xué)生類(Student),如圖5所示教工類(Teacher)、借書(shū)記錄類(RecordBooks)、如圖6所示六個(gè)管理類。</p><p>  圖2. Admlogin類和Readerlogin類的UML圖示</p><p>  在管理員登錄類中,有個(gè)Administratorlogin()函數(shù),在這個(gè)函數(shù)中,進(jìn)行打開(kāi)管理員

14、密碼文件,實(shí)現(xiàn)管理員身份驗(yàn)證。登錄后管理員可以進(jìn)行圖書(shū)管理、學(xué)生管理、管理員管理、教工管理、借書(shū)記錄管理以及對(duì)登錄用戶的管理。在每個(gè)分管理中調(diào)用圖6 所示的各個(gè)管理類中相應(yīng)的管理函數(shù)來(lái)進(jìn)行各個(gè)部分的管理。同時(shí)在管理員登錄類里面設(shè)置一個(gè)判斷,可以直接進(jìn)行對(duì)用戶登錄管理。</p><p>  圖3.Administrator類和Admpassword 類的UML圖示</p><p>  在管理

15、員類中有私有的管理員屬性和對(duì)管理員屬性操作的訪問(wèn)器函數(shù)。在登錄密碼類同樣設(shè)置私有屬性和訪問(wèn)器函數(shù)來(lái)獲得屬性或?qū)傩孕薷?。同理,圖4、圖5中的圖書(shū)類、學(xué)生類、教工類、借閱記錄類以同樣的方式來(lái)構(gòu)建相應(yīng)的類。</p><p>  圖4.Book類和Student類的UMT圖示</p><p>  圖5. Teacher類和RecordBooks類的UML圖示</p><p&

16、gt;  圖6. 管理類的UML圖示</p><p>  在管理類當(dāng)中MangBook類是Book類的一個(gè)Public派生類。為了實(shí)現(xiàn)對(duì)Book類中屬性的顯示,在show()函數(shù)和showbook()函數(shù)里面調(diào)用訪問(wèn)器函數(shù)來(lái)輸出。其它5個(gè)管理類實(shí)現(xiàn)方法大相近庭。以MangStudent類為例。在MangStudent類當(dāng)中有個(gè)ManageStudent()函數(shù),在此函數(shù)當(dāng)中采用list容器,定義一個(gè)list<

17、;Student> Stulist容器。定義文件輸入輸出流,讀寫(xiě)打開(kāi)文件。將文本文件中的信息存入Stulist容器當(dāng)中。再定義一個(gè)Stulist容器自身迭代器list<Student>::iterator s_iter = Stulist.begin()。在以后的刪除、編輯、查詢操作時(shí),就用迭代器s_iter在Stulist上查找相應(yīng)的信息來(lái)進(jìn)行操作。在信息的增加時(shí),直接以追加的方式打開(kāi)文件寫(xiě)入文件。在每一個(gè)操作結(jié)束后

18、將Stulist容器中的信息寫(xiě)入文件保存呢。在其它管理類中才用同樣的方法進(jìn)行系統(tǒng)的管理。</p><p><b>  2、部分代碼詳解</b></p><p>  下面是以MangStudent類管理Student類信息為例的部分代碼:</p><p>  1)Student類的設(shè)計(jì)</p><p>  class St

19、udent</p><p><b>  {</b></p><p><b>  private:</b></p><p>  int snumber;</p><p>  string sname;</p><p>  string ssex;</p><

20、p><b>  int sage;</b></p><p>  string sdapt;</p><p>  string srutime;</p><p>  string sbiyetime;</p><p>  string sjieyuetime;</p><p>  int sj

21、iecount;</p><p><b>  public:</b></p><p>  Student(int number=0,string name="0",string sex="0",int age=0,string dapt="0",</p><p>  string ru

22、time="0",string biyetime="0",string jieyuetime="0",int jiecount=0);</p><p>  virtual ~Student();</p><p>  int Getsnumber();</p><p>  void Setsnumber(in

23、t number);</p><p>  string Getsname();</p><p>  void Setsname(string name);</p><p>  string Getssex();</p><p>  void Setssex(string sex);</p><p>  int Gets

24、age();</p><p>  void Setsage(int age);</p><p>  string Getsdapt();</p><p>  void Setsdapt(string dapt);</p><p>  string Getsrutime();</p><p>  void Setsrut

25、ime(string rutime);</p><p>  string Getsbiyetime();</p><p>  void Setsbiyetime(string biyetime);</p><p>  string Getsjieyuetime();</p><p>  void Setsjieyuetime(string j

26、ieyutime);</p><p>  int Getsjiecount();</p><p>  void Setsjiecount(int jiecount);</p><p>  void Studentshow();</p><p><b>  };</b></p><p>  2)將文

27、本文件信息存入Stulist容器</p><p>  int snumber;</p><p>  string sname;</p><p>  string ssex;</p><p><b>  int sage;</b></p><p>  string sdapt;</p>

28、<p>  string srutime;</p><p>  string sbiyetime;</p><p>  string sjieyuetime;</p><p>  int sjiecount;</p><p>  //定義Stulist容器和相應(yīng)迭代器</p><p>  list<S

29、tudent> Stulist;</p><p>  list<Student>::iterator s_iter=Stulist.begin();</p><p>  list<Student>::iterator iter=Stulist.begin();</p><p>  //定義文件輸入流,讀取文件</p>&l

30、t;p>  ifstream infile2;</p><p>  infile2.open("Student.txt",ios::in); </p><p>  //將文本文件信息存入Stulist容器中</p><p>  infile2>>snumber>>sname>>ssex>>

31、;sage>>sdapt>>srutime>>sbiyetime>>sjieyuetime>></p><p>  sjiecount;</p><p>  Student std(snumber,sname,ssex,sage,sdapt,srutime,sbiyetime,sjieyuetime,sjiecount);<

32、/p><p>  Stulist.push_back(std);</p><p>  while(infile2>>snumber>>sname>>ssex>>sage>>sdapt>>srutime>>sbiyetime>>sjieyuet ime>>sjiecount)</p&

33、gt;<p><b>  {</b></p><p>  Student std(snumber,sname,ssex,sage,sdapt,srutime,sbiyetime,sjieyuetime,</p><p>  sjiecount);</p><p>  Stulist.push_back(std);</p>

34、;<p><b>  }</b></p><p><b>  3)查詢學(xué)生信息</b></p><p>  cout<<"1、顯示所有信息\t\t2、查詢某個(gè)學(xué)生"<<endl;</p><p>  cout<<"請(qǐng)選擇··

35、····"<<endl;</p><p><b>  int xuan;</b></p><p>  cin>>xuan;</p><p>  if(xuan==1)</p><p><b>  {</b></p>

36、<p>  cout<<"全部學(xué)生信息如下:"<<endl;</p><p>  for(s_iter=Stulist.begin(); s_iter!=Stulist.end(); s_iter++)</p><p><b>  {</b></p><p>  s_iter->S

37、tudentshow();</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(xuan==2)</p><p><b>  {</b></p><p>  cout<<&quo

38、t;請(qǐng)輸入您要查詢學(xué)生的編號(hào)(20100128**)->>";</p><p>  int xuehao;</p><p>  int judge=0;</p><p>  cin>>xuehao;</p><p>  for(s_iter=Stulist.begin(); s_iter!=Stulist.e

39、nd(); s_iter++)</p><p><b>  {</b></p><p>  if(s_iter->Getsnumber()==xuehao)</p><p><b>  {</b></p><p>  cout<<"查詢結(jié)果如下:"<<

40、;endl;</p><p>  s_iter->Studentshow();</p><p><b>  judge=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><

41、b>  }</b></p><p>  if(judge == 0)</p><p><b>  {</b></p><p>  cout<<"你要查找的學(xué)生不存在!"<<endl;</p><p><b>  }</b></p&g

42、t;<p><b>  }</b></p><p>  else{ cout<<"無(wú)此選項(xiàng)!"<<endl;}</p><p><b>  4)刪除學(xué)生信息</b></p><p>  cout<<"請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào)(20100128**

43、)->>";</p><p>  int number;</p><p>  int judge=0;</p><p><b>  int ok=0;</b></p><p>  cin>>number;</p><p>  for(s_iter=Stulist.

44、begin(); s_iter!=Stulist.end(); s_iter++)</p><p><b>  {</b></p><p>  if(s_iter->Getsnumber()==number)</p><p><b>  {</b></p><p>  iter=s_iter;

45、</p><p>  iter->Studentshow();</p><p><b>  judge=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  e

46、lse{;}</b></p><p><b>  }</b></p><p>  cout<<"是否刪除:1、是2、否->>";</p><p><b>  cin>>ok;</b></p><p>  if(judge==1 &a

47、mp;& ok==1)</p><p><b>  {</b></p><p>  Stulist.erase(s_iter);</p><p>  ofstream Delestu;</p><p>  Delestu.open("Student.txt",ios::out);</p&

48、gt;<p>  for(s_iter=Stulist.begin(); s_iter!=Stulist.end(); s_iter++)</p><p><b>  {</b></p><p>  Delestu<<s_iter->Getsnumber()<<""<<s_iter->G

49、etsname()<<""<<s_iter-></p><p>  Getssex()<<""<<s_iter->Getsage()<<""<<s_iter->Getsdapt()<<""<<s_iter-><

50、/p><p>  Getsrutime()<<""<<s_iter->Getsbiyetime()<<""<<s_iter->Getsjieyuetime()</p><p>  <<""<<s_iter->Getsjiecount()<&

51、lt;endl;</p><p><b>  }</b></p><p>  cout<<"刪除成功!"<<endl;</p><p><b>  }</b></p><p>  else if(judge==0)</p><p>

52、<b>  {</b></p><p>  cout<<"未找到相應(yīng)學(xué)生編號(hào),無(wú)法刪除!"<<endl;</p><p><b>  }</b></p><p><b>  else{;}</b></p><p><b> 

53、 五、調(diào)試與測(cè)試</b></p><p>  根據(jù)題目要求,完成相關(guān)類的設(shè)計(jì)后,實(shí)現(xiàn)對(duì)相關(guān)業(yè)務(wù)實(shí)體的新增、刪除、屬性編輯、查詢等操作; 實(shí)現(xiàn)圖書(shū)管理中所有業(yè)務(wù)實(shí)體的保存與打開(kāi)等文件操作。在完成代碼編寫(xiě)后對(duì)程序進(jìn)行運(yùn)行調(diào)試和測(cè)試。</p><p><b>  登錄前進(jìn)行登錄選擇</b></p><p><b>  圖7.登錄

54、選擇</b></p><p>  2、選擇管理員登錄后</p><p><b>  圖8.管理員登錄后</b></p><p>  管理員在登錄后,可以對(duì)圖書(shū)、學(xué)生、管理員、教工、借書(shū)記錄、管理用戶登錄等幾項(xiàng)操作進(jìn)行選擇操作,由于操作類別過(guò)多,操作原理基本相同,在這里選擇對(duì)圖書(shū)操作為例。</p><p>  

55、圖 9.選擇對(duì)圖書(shū)操作</p><p>  圖10.查詢刪除前所有圖書(shū)</p><p>  圖 11.刪除編號(hào)100000的圖書(shū)</p><p>  圖 12.查詢刪除圖書(shū)后所有圖書(shū)</p><p><b>  圖 13.增加圖書(shū)</b></p><p>  圖 14.增加圖書(shū)后查詢所有圖書(shū)<

56、;/p><p>  圖15.編輯圖書(shū)屬性</p><p><b>  選擇讀者登錄后</b></p><p><b>  圖16.讀者登錄后</b></p><p>  選擇讀者登錄后,會(huì)進(jìn)入到讀者程序塊。讀者可以查詢圖書(shū),在查詢圖書(shū)時(shí)不需要進(jìn)行用戶驗(yàn)證,可以查詢?nèi)繄D書(shū)或按圖書(shū)編號(hào)進(jìn)行查詢。讀者如果要

57、查詢自己的借閱情況必須進(jìn)行用戶驗(yàn)證,才能看見(jiàn)自己的借閱圖書(shū)信息。</p><p><b>  圖 17.讀者查詢</b></p><p>  圖 18.讀者查詢所有圖書(shū)</p><p>  圖19.讀者查詢自己借書(shū)情況</p><p>  在圖書(shū)借閱記錄管理的操作中,對(duì)借閱記錄的增加時(shí),會(huì)打開(kāi)圖書(shū)文本文件對(duì)圖書(shū)的“是否借

58、閱”進(jìn)行修改,使之改為“已借”(由0或1判斷)。在還書(shū)過(guò)程中由管理員對(duì)借閱記錄的還書(shū)時(shí)間(在增加借閱時(shí)間的時(shí)候默認(rèn)為0000.00.00)進(jìn)行修改。同時(shí)在打開(kāi)圖書(shū)文本文件對(duì)圖書(shū)的是否借閱進(jìn)行修改,改為“未借”(由0或1判斷)。</p><p><b>  六、實(shí)習(xí)日志</b></p><p>  2012年2月20日</p><p>  在剛剛

59、過(guò)完寒假來(lái)的時(shí)候,就開(kāi)始進(jìn)行了C++面向?qū)ο蟪绦蛟O(shè)計(jì)。在之前已經(jīng)確定了題目,今天在老師的幫助下,對(duì)設(shè)計(jì)內(nèi)容進(jìn)行了分析,確定了大致方向。對(duì)未來(lái)幾天的實(shí)習(xí)進(jìn)行了初步的安排,書(shū)寫(xiě)了書(shū)面的實(shí)施計(jì)劃書(shū)。</p><p>  2012年2月21日</p><p>  今天的主要目的是開(kāi)始對(duì)程序的功能進(jìn)行分析,該程序設(shè)計(jì)題要求是對(duì)圖書(shū)、管理員、學(xué)生、教工、借閱記錄幾個(gè)業(yè)務(wù)實(shí)體能夠進(jìn)行增加、刪除、編輯和查

60、詢。實(shí)現(xiàn)對(duì)以上幾個(gè)實(shí)體的保存與打開(kāi)文件等操作。對(duì)程序運(yùn)行時(shí)程序運(yùn)行步驟進(jìn)行了分析。確定了設(shè)計(jì)幾個(gè)類,類的組成。</p><p>  2012年2月22日</p><p>  開(kāi)始進(jìn)行類的設(shè)計(jì)和完成相應(yīng)的代碼。今天的任務(wù)主要完成了圖書(shū)類(Book)和它的派生類MangBook類的設(shè)計(jì)。在初步設(shè)計(jì)的時(shí)候會(huì)遇到一些困難。在進(jìn)行代碼的編寫(xiě)的同時(shí)還要進(jìn)行知識(shí)的復(fù)習(xí)。不停的翻閱課本和上網(wǎng)查閱資料。基本

61、上算是完成了基本圖書(shū)類的設(shè)計(jì)。</p><p>  2012年2月23日</p><p>  在昨天的基礎(chǔ)上設(shè)計(jì)了圖書(shū)管理類(MangLibrary),在管理圖書(shū)類里面采用容器,對(duì)來(lái)存儲(chǔ)信息。在MangLibrary類里面設(shè)計(jì)了一個(gè)Mangbooks()函數(shù),來(lái)實(shí)現(xiàn)對(duì)管理圖書(shū)業(yè)務(wù)的增加、刪除、查詢和編輯屬性等操作。</p><p>  2012年2月24日-2012

62、年2月25日</p><p>  在有昨天的基礎(chǔ)上進(jìn)行著下一個(gè)類的設(shè)計(jì),在這兩天中,設(shè)計(jì)了學(xué)生類(Studnet)、學(xué)生管理類(MangStudent)、管理員類(Administrator)、管理員管理類(MangAdm)。在各個(gè)基礎(chǔ)類中定義各自的屬性,和訪問(wèn)器函數(shù)。在各個(gè)管理類中定義相應(yīng)的管理函數(shù),對(duì)相應(yīng)業(yè)務(wù)實(shí)體進(jìn)行了增加、刪除、查詢和編輯屬性等操作。</p><p>  2012年2

63、月26日-2012年2月27日</p><p>  在這三天的時(shí)間里,對(duì)接下來(lái)設(shè)計(jì)的借閱記錄類(RecordBooks)、借閱記錄管理類(MangRecordbook)、密碼類(Asmpassword)、管理員登錄類(Admlogin)、讀者登錄類(Teaderlogin)、教工類(Teacher)、教工管理類(MangTeacher)進(jìn)行了代碼的編寫(xiě)。在各個(gè)基礎(chǔ)類中定義各自的屬性,和訪問(wèn)器函數(shù)。在各個(gè)管理類中定

64、義相應(yīng)的管理函數(shù),對(duì)相應(yīng)業(yè)務(wù)實(shí)體進(jìn)行了增加、刪除、查詢和編輯屬性等操作。對(duì)設(shè)計(jì)好的類進(jìn)一步優(yōu)化設(shè)計(jì),完善相應(yīng)的功能操作。</p><p>  2012年2月28日</p><p>  在將類全部設(shè)計(jì)完以后在主函數(shù)里面設(shè)計(jì)讀者登錄和管理員登錄類變量,對(duì)管理類的函數(shù)進(jìn)行調(diào)用。完成程序的運(yùn)行。</p><p>  2012年2月29日</p><p&g

65、t;  主要進(jìn)行了程序的調(diào)試。檢查程序是否存在漏洞,對(duì)程序給個(gè)環(huán)節(jié)進(jìn)一步的優(yōu)化和完善。今本完成了本次設(shè)計(jì)的要求。完成了對(duì)各個(gè)業(yè)務(wù)實(shí)體的曾加、刪除、編輯、查詢;完成對(duì)各個(gè)業(yè)務(wù)實(shí)體的保存和打開(kāi)文件操作。看著結(jié)果還是挺滿意的,只有唯一的遺憾是未能做出本程序的界面。</p><p><b>  2012年3月1日</b></p><p>  開(kāi)始撰寫(xiě)本次實(shí)習(xí)的報(bào)告論文。制作設(shè)

66、計(jì)的各個(gè)類的UML圖示。對(duì)程序運(yùn)行的部分環(huán)節(jié)進(jìn)行了截圖。今本完善了論文的初稿。</p><p><b>  2012年3月2日</b></p><p>  在上午完成實(shí)習(xí)答辯需要的PPT。對(duì)論文做了進(jìn)一步的修改。在下午進(jìn)行了答辯,介紹了自己所設(shè)計(jì)的各個(gè)實(shí)體的類和功能。</p><p><b>  七、實(shí)習(xí)總結(jié)</b><

67、;/p><p>  在本次實(shí)現(xiàn)的過(guò)程中,自己不斷的翻閱課本和在網(wǎng)上查詢相應(yīng)的資料。第一個(gè)目的完成了題目設(shè)計(jì)的要求,覺(jué)得很欣慰。第二個(gè)目的,實(shí)現(xiàn)對(duì)C++編程的進(jìn)一步了解,對(duì)類設(shè)計(jì)的安排有了進(jìn)一步的體會(huì)。在用C++面向?qū)ο蟪绦蛟O(shè)計(jì)的時(shí)候,設(shè)計(jì)出一個(gè)合理的、合適的類來(lái)的是完成相應(yīng)程序設(shè)計(jì)的基礎(chǔ)。</p><p>  在本次的實(shí)現(xiàn)階段我體會(huì)到,做事情要有安排,要有想法。對(duì)事情有一定的管理分類,就像本次

68、設(shè)計(jì)的圖書(shū)管理系統(tǒng)一樣。在管理的同時(shí)要有清晰的思路。在本次程序設(shè)計(jì)的時(shí)候唯一的遺憾是未能實(shí)現(xiàn)本系統(tǒng)的界面設(shè)計(jì)。由于時(shí)間的原因,界面的設(shè)計(jì)只是完成了一點(diǎn)點(diǎn)。對(duì)初學(xué)Qt編程有了一定的了解。在完成實(shí)習(xí)階段后,我還將繼續(xù)學(xué)習(xí)界面的設(shè)計(jì)。</p><p>  這次設(shè)計(jì)讓我進(jìn)一步培養(yǎng)了自學(xué),自律,自覺(jué)的好習(xí)慣。進(jìn)一步了解了C++面向?qū)ο蟪绦蛟O(shè)計(jì)的思想。</p><p>  八、附錄:核心代碼清單<

69、;/p><p>  1、各個(gè)類設(shè)計(jì).h核心代碼</p><p>  1)教工類(Teacher.h代碼)</p><p>  class Teacher</p><p><b>  {</b></p><p><b>  private:</b></p><p

70、>  int tnumber;</p><p>  string tname;</p><p>  string tsex;</p><p><b>  int tage;</b></p><p>  string tdpat;</p><p>  string trutime;</p

71、><p>  string tjieyuetime;</p><p>  int tjiecount;</p><p><b>  public:</b></p><p>  Teacher(int number=0,string name="0",string sex="0",int

72、 age=0,string dpat="0",</p><p>  string rutime="0",string jieyuetime="0",int jiecount=0);</p><p>  virtual ~Teacher();</p><p>  int Gettnumber();</p

73、><p>  void Settnumber(int number);</p><p>  string Gettname();</p><p>  void Settname(string name);</p><p>  string Gettsex();</p><p>  void Settsex(string s

74、ex);</p><p>  int Gettage();</p><p>  void Settage(int age);</p><p>  string Gettdpat();</p><p>  void Settdpat(string dpat);</p><p>  string Gettrutime();

75、</p><p>  void Settrutime(string rutime);</p><p>  string Gettjieyuetime();</p><p>  void Settjieyuetime(string jieyuetime);</p><p>  int Gettjiecount();</p><

76、;p>  void Settjiecount(int jiecount);</p><p>  void Teachershow();</p><p><b>  };</b></p><p>  2)學(xué)生類.h核心代碼</p><p>  class Student</p><p><

77、;b>  {</b></p><p><b>  private:</b></p><p>  int snumber;</p><p>  string sname;</p><p>  string ssex;</p><p><b>  int sage;<

78、/b></p><p>  string sdapt;</p><p>  string srutime;</p><p>  string sbiyetime;</p><p>  string sjieyuetime;</p><p>  int sjiecount;</p><p>

79、<b>  public:</b></p><p>  Student(int number=0,string name="0",string sex="0",int age=0,string dapt="0",string rutime="0",string biyetime="0",<

80、;/p><p>  string jieyuetime="0",int jiecount=0);</p><p>  virtual ~Student();</p><p>  int Getsnumber();</p><p>  void Setsnumber(int number);</p><p&g

81、t;  string Getsname();</p><p>  void Setsname(string name);</p><p>  string Getssex();</p><p>  void Setssex(string sex);</p><p>  int Getsage();</p><p>  

82、void Setsage(int age);</p><p>  string Getsdapt();</p><p>  void Setsdapt(string dapt);</p><p>  string Getsrutime();</p><p>  void Setsrutime(string rutime);</p>

83、<p>  string Getsbiyetime();</p><p>  void Setsbiyetime(string biyetime);</p><p>  string Getsjieyuetime();</p><p>  void Setsjieyuetime(string jieyutime);</p><p&g

84、t;  int Getsjiecount();</p><p>  void Setsjiecount(int jiecount);</p><p>  void Studentshow();</p><p><b>  };</b></p><p>  3)借閱記錄類.h核心代碼</p><p>

85、;  class RecordBooks</p><p><b>  {</b></p><p><b>  private:</b></p><p>  int rnumber;</p><p>  int rbooknumber;</p><p>  int rreadn

86、umber;</p><p>  string rjieyuetime;</p><p>  string rhuanshutime;</p><p>  int radmnumber;</p><p><b>  public:</b></p><p>  RecordBooks(int num

87、ber=0,int booknumber=0,int readnumber=0,string jieyuetime="0",string huanshutime="0",int admnumber=0);</p><p>  virtual ~RecordBooks();</p><p>  void Setrnumber(int number);&

88、lt;/p><p>  int Getrnumber();</p><p>  void Setrbooknumber(int booknumber);</p><p>  int Getrbooknumber();</p><p>  void Setrreadnumber(int readnumber);</p><p&g

89、t;  int Getrreadnumber();</p><p>  void Setrjieyuetime(string jieyuetime);</p><p>  string Getrjieyuetime();</p><p>  void Setrhuanshutime(string huanshutime);</p><p> 

90、 string Getrhuanshutime();</p><p>  void Setradmnumber(int admnumber);</p><p>  int Getradmnumber();</p><p>  void RecordBookshow();</p><p>  void RecordBookshowread();

91、</p><p><b>  };</b></p><p>  4)圖書(shū)類.h核心代碼</p><p>  class Book</p><p><b>  {</b></p><p><b>  private:</b></p><

92、p>  string bname;</p><p>  int bnumber;</p><p>  string bstype;</p><p>  string bzname;</p><p>  string bchuban;</p><p>  string bchubantime;</p>

93、<p>  string brukutime;</p><p>  int byeshu;</p><p>  int bdingjia;</p><p>  int bjieyue;//借閱為0為未借,為1為已借</p><p><b>  public:</b></p><p>&

94、lt;b>  Book(){};</b></p><p>  Book(string name= "0",int number=0,string stype= "0",string zname= "0",string chuban= "0",</p><p>  string chubanti

95、me= "0",string rukutime= "0",int yeshu=0,int dingjia=0,int jieyue=0);</p><p>  ~Book() {};</p><p>  void Setbname(string name);//設(shè)置書(shū)名</p><p>  string Getbname();

96、//返回書(shū)名</p><p>  void Setbnumber(int number);//設(shè)置書(shū)號(hào)</p><p>  int Getbnumber();//返回書(shū)號(hào)</p><p>  void Setbstype(string stype);</p><p>  string Getstype();</p><p&

97、gt;  void Setbzname(string name);</p><p>  string Getbzname();</p><p>  void Setbchuban(string chuban);</p><p>  string Getbchuban();</p><p>  void Setbchubantime(strin

98、g chubantime);</p><p>  string Getbchubantime();</p><p>  void Setbrukutime(string rukutime);</p><p>  string Getbrukutime();</p><p>  void Setbyeshu(int yeshu);</p&

99、gt;<p>  int Getbyeshu();</p><p>  void Setbdingjia(int dingjia);</p><p>  int Getbdingjia();</p><p>  void Setbjieyue(int jieyue);</p><p>  int Getbjieyue();<

100、;/p><p><b>  };</b></p><p>  5)管理員類.h核心代碼</p><p>  class Administrator</p><p><b>  {</b></p><p><b>  private:</b></p>

101、;<p>  int anumber;</p><p>  string aname;</p><p>  string astation;</p><p><b>  public:</b></p><p>  Administrator(int number=0,string name="0&

102、quot;,string sta="0");</p><p>  virtual ~Administrator();</p><p>  void Setanumber(int number);</p><p>  int Getanumber();</p><p>  void Setaname(string name)

103、;</p><p>  string Getaname();</p><p>  void Setastation(string sta);</p><p>  string Getastation();</p><p>  void AdminiShow();</p><p><b>  };</b&

104、gt;</p><p>  6)MangBook類.h核心代碼</p><p>  class MangBook:public Book</p><p><b>  {</b></p><p><b>  public:</b></p><p>  MangBook(stri

105、ng name= "0",int number=0,string stype= "0",string zname= "0",string chuban= "0",string chubantime= "0",string rukutime= "0",int yeshu=0,int dingjia=0,int jieyu

106、e=0);</p><p>  void show();</p><p>  void showbook();</p><p>  virtual ~MangBook();</p><p><b>  };</b></p><p>  7)圖書(shū)管理類.h核心代碼</p><p&

107、gt;  class MangLirary</p><p><b>  {</b></p><p><b>  public:</b></p><p>  MangLirary();</p><p>  void Mangbooks();</p><p>  virtual

108、~MangLirary();</p><p><b>  };</b></p><p>  8)借閱記錄管理類.h核心代碼</p><p>  class MangRecordbook</p><p><b>  {</b></p><p><b>  public

109、:</b></p><p>  MangRecordbook();</p><p>  void ManageRecord();</p><p>  virtual ~MangRecordbook();</p><p><b>  };</b></p><p>  9)學(xué)生管理類.h核

110、心代碼</p><p>  class MangStudent</p><p><b>  {</b></p><p><b>  public:</b></p><p>  MangStudent();</p><p>  void ManageStudent();<

111、/p><p>  virtual ~MangStudent();</p><p><b>  };</b></p><p>  10)教工管理類.h核心代碼</p><p>  class MangTeacher</p><p><b>  {</b></p>&l

112、t;p><b>  public:</b></p><p>  MangTeacher();</p><p>  void ManageTeacher();</p><p>  virtual ~MangTeacher();</p><p><b>  };</b></p>&l

113、t;p>  11)管理員管理類.h核心代碼</p><p>  class MangAdm</p><p><b>  {</b></p><p><b>  public:</b></p><p>  MangAdm();</p><p>  void MangAdm

114、inistrator();</p><p>  virtual ~MangAdm();</p><p><b>  };</b></p><p>  12)MangLirary類.h核心代碼</p><p>  class Admpassword</p><p><b>  {</

115、b></p><p><b>  public:</b></p><p>  Admpassword(int number=0,int passw=0);</p><p>  virtual ~Admpassword();</p><p>  void Setnumber(int number);</p>

116、;<p>  int Getnumber();</p><p>  void Setpassword(int passw);</p><p>  int Getpassword();</p><p>  void showpass();</p><p><b>  private:</b></p>

117、;<p>  int admnumber;</p><p>  int password;</p><p><b>  };</b></p><p>  13)管理員登錄類.h核心代碼</p><p>  class Admlogin</p><p><b>  {<

118、/b></p><p><b>  public:</b></p><p>  Admlogin();</p><p>  void Aministratorlogin();</p><p>  virtual ~Admlogin();</p><p><b>  };</b

119、></p><p>  14)讀者登錄類.h核心代碼</p><p>  using namespace std;</p><p>  class Readerlogin</p><p><b>  {</b></p><p><b>  public:</b><

120、/p><p>  Readerlogin();</p><p>  void Readerloginlibrary();</p><p>  virtual ~Readerlogin();</p><p><b>  };</b></p><p>  2、部分類設(shè)計(jì).CPP核心代碼</p>

121、<p>  1)學(xué)生管理類.CPP核心代碼</p><p>  #include "MangStudent.h"</p><p>  void MangStudent::ManageStudent()</p><p><b>  {</b></p><p>  int snumber;&

122、lt;/p><p>  string sname;</p><p>  string ssex;</p><p><b>  int sage;</b></p><p>  string sdapt;</p><p>  string srutime;</p><p>  st

123、ring sbiyetime;</p><p>  string sjieyuetime;</p><p>  int sjiecount;</p><p>  list<Student> Stulist;</p><p>  list<Student>::iterator s_iter=Stulist.begin()

124、;</p><p>  list<Student>::iterator iter=Stulist.begin();</p><p>  ifstream infile2;</p><p>  infile2.open("Student.txt",ios::in);</p><p>  infile2>&g

125、t;snumber>>sname>>ssex>>sage>>sdapt>>srutime>>sbiyetime>>sjieyuetime>>sjiecount;</p><p>  Student std(snumber,sname,ssex,sage,sdapt,srutime,sbiyetime,sjieyueti

126、me,sjiecount);</p><p>  Stulist.push_back(std);</p><p>  while(infile2>>snumber>>sname>>ssex>>sage>>sdapt>>srutime>>sbiyetime>>sjieyuetime>>

127、sjiecount)</p><p><b>  {</b></p><p>  Student std(snumber,sname,ssex,sage,sdapt,srutime,sbiyetime,sjieyuetime,sjiecount);</p><p>  Stulist.push_back(std);</p><

128、;p><b>  }</b></p><p>  cout<<"*******************************************************"<<endl;</p><p>  cout<<"1、新增學(xué)生\t2、刪除學(xué)生\t3、編輯學(xué)生屬性"<&l

129、t;endl;</p><p>  cout<<"4、查詢學(xué)生\t0、退出"<<endl;</p><p>  cout<<"*******************************************************"<<endl;</p><p>  cou

130、t<<"請(qǐng)輸入所選操作(1 2 3 4······)"<<endl;</p><p>  int choice;</p><p>  cin>>choice;</p><p>  while(choice!=0)</p><p>

131、;<b>  {</b></p><p>  switch(choice)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b>  {</b></p><p><

132、b>  //增加學(xué)生</b></p><p>  cout<<"請(qǐng)輸入-->學(xué)號(hào)(20100128**):"<<endl;</p><p>  cin>>snumber;</p><p>  cout<<"請(qǐng)輸入-->姓名:"<<endl

133、;</p><p>  cin>>sname;</p><p>  cout<<"請(qǐng)輸入-->性別:"<<endl;</p><p>  cin>>ssex;</p><p>  cout<<"請(qǐng)輸入-->年齡:"<<e

134、ndl;</p><p>  cin>>sage;</p><p>  cout<<"請(qǐng)輸入-->學(xué)院:"<<endl;</p><p>  cin>>sdapt;</p><p>  cout<<"請(qǐng)輸入-->入學(xué)時(shí)間(****.**.**

135、):"<<endl;</p><p>  cin>>srutime;</p><p>  cout<<"請(qǐng)輸入-->畢業(yè)時(shí)間(****.**.**):"<<endl;</p><p>  cin>>sbiyetime;</p><p>  cout

136、<<"請(qǐng)輸入-->借閱時(shí)長(zhǎng)限制(*個(gè)月):"<<endl;</p><p>  cin>>sjieyuetime;</p><p>  cout<<"請(qǐng)輸入-->借閱數(shù)量限制:"<<endl;</p><p>  cin>>sjiecount;

137、</p><p>  ofstream Addstu;</p><p>  Addstu.open("Student.txt",ios::app);</p><p>  Addstu<<snumber<<" "<<sname<<" "<<ssex&

138、lt;<" "<<sage<<" "<<sdapt<<" "<<srutime<<" "<<sbiyetime<<" "<<sjieyuetime<<" "<<sjiecount&l

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論