面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)--校友錄管理系統(tǒng)_第1頁
已閱讀1頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)說明書</b></p><p>  題 目: 校友錄管理系統(tǒng)</p><p><b>  學(xué)生姓名: </b></p><p>  學(xué) 院: 信息工程學(xué)院</p><p>  班 級(jí): 計(jì)09-2</p><p><b&

2、gt;  指導(dǎo)教師: </b></p><p>  2011 年 7 月 8 日</p><p><b>  目錄</b></p><p>  內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計(jì)(論文)任務(wù)書- 2 -</p><p>  第一章 總體功能介紹- 3 -</p><p>  1.1 功能介

3、紹- 3 -</p><p>  1.2 類的設(shè)計(jì)- 4 -</p><p>  第二章 各功能模塊的具體實(shí)現(xiàn)- 6 -</p><p>  2.1 維護(hù)同學(xué)錄內(nèi)同學(xué)信息:- 6 -</p><p>  2.2 維護(hù)同學(xué)錄- 9 -</p><p>  2.3對(duì)同學(xué)錄內(nèi)信息的操作菜單- 12 -</p

4、><p>  2.4歡迎界面功能實(shí)現(xiàn)- 14 -</p><p>  第三章 調(diào)試及運(yùn)行結(jié)果- 17 -</p><p>  第四章 總結(jié)- 21 -</p><p>  參考文獻(xiàn)- 22 -</p><p>  課程設(shè)計(jì)(論文)任務(wù)書</p><p>  課程名稱: 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)

5、計(jì) 學(xué)院: 信息工程學(xué)院 班級(jí): </p><p>  學(xué)生姓名: ___ 學(xué)號(hào): _ </p><p>  指導(dǎo)教師: </p><p>  第一章 總體功能介紹</p><p><b>  1.1 功能介紹</b></p>

6、<p>  校友錄管理系統(tǒng):實(shí)現(xiàn)對(duì)同學(xué)錄及同學(xué)基本信息的插入、查找、刪除及修改等功能。系統(tǒng)結(jié)構(gòu)如下圖:</p><p>  校友錄管理系統(tǒng)結(jié)構(gòu)框架圖</p><p>  系統(tǒng)的管理(維護(hù))內(nèi)容</p><p>  由上圖可以看出,本系統(tǒng)是由同學(xué)錄及同學(xué)信息兩層內(nèi)容構(gòu)成,校友錄可包含多個(gè)同學(xué)錄,同學(xué)錄內(nèi)可包含多個(gè)同學(xué)信息;這樣的結(jié)構(gòu)在現(xiàn)實(shí)應(yīng)用當(dāng)中可便于查

7、找及分類。</p><p>  本系統(tǒng)的功能主要是對(duì)校友錄及同學(xué)錄進(jìn)行維護(hù),即實(shí)現(xiàn)對(duì)同學(xué)錄的新增、查找、刪除、修改,也可實(shí)現(xiàn)對(duì)同學(xué)錄內(nèi)同學(xué)信息的插入、刪除、查找和修改。并將修改完成的內(nèi)容保存在文件中。</p><p><b>  1.2 類的設(shè)計(jì)</b></p><p>  本程序包含3個(gè)類;分別是student類、record類、txl類。&

8、lt;/p><p><b>  具體作用:</b></p><p>  student類,包含每個(gè)同學(xué)的信息,為record類的節(jié)點(diǎn)。</p><p><b>  UML圖:</b></p><p>  record類,維護(hù)同學(xué)錄中同學(xué)的信息(本質(zhì)是鏈表,以同學(xué)信息student類為節(jié)點(diǎn)),</p

9、><p>  其主要功能有 插入,刪除,查找,保存,讀取,student類的信息。</p><p><b>  UML圖:</b></p><p>  txl類,主要維護(hù)各個(gè)同學(xué)錄(本質(zhì)是一個(gè)鏈表,以record類為節(jié)點(diǎn)),其主要功能有 插入,刪除,查找,保存,讀取,student類的信息。</p><p><b>

10、;  UML圖:</b></p><p>  第二章 各功能模塊的具體實(shí)現(xiàn)</p><p>  2.1 維護(hù)同學(xué)錄內(nèi)同學(xué)信息:</p><p>  class record</p><p><b>  {</b></p><p><b>  public:</b>

11、</p><p>  student stu[Max];</p><p>  char path_name[Maxp];</p><p><b>  int top;</b></p><p>  record(char str[] = "student.txt")</p><p&g

12、t;<b>  {</b></p><p>  strcpy(path_name,str);</p><p>  /////path_name=str;</p><p><b>  top = -1;</b></p><p><b>  }</b></p><

13、;p>  int findbyName(string str_Name)</p><p><b>  {</b></p><p>  for(int i = 0;i<=top;i++)</p><p><b>  {</b></p><p>  if(-2==stu[i].info.nu

14、m) continue;</p><p>  if (str_Name==stu[i].info.name) </p><p><b>  {</b></p><p><b>  return i;</b></p><p><b>  }</b></p><

15、p><b>  }</b></p><p>  return -1;</p><p><b>  }</b></p><p>  int deletebynum(int num)</p><p><b>  {</b></p><p>  stu[

16、num].info.num=-2;//表示刪除</p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  int insert(student& s)</p><p><b>  {</b></p>

17、<p>  //如果還沒有存在則插入</p><p><b>  top++;</b></p><p>  s.info.num=top;</p><p>  stu[top] = s;</p><p><b>  return 1;</b></p><p>&l

18、t;b>  }</b></p><p>  int clear()</p><p><b>  {</b></p><p><b>  top = -1;</b></p><p><b>  return 1;</b></p><p>

19、<b>  }</b></p><p>  int save()</p><p><b>  {</b></p><p>  fstream file(path_name,ios::out);</p><p><b>  if(!file)</b></p><

20、;p><b>  {</b></p><p>  cout<<"錯(cuò)誤??!";</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  for(int i=0;i<=top;i

21、++)</p><p><b>  {</b></p><p>  if(-2==stu[i].info.num) continue;</p><p>  file.write((char*)&stu[i],sizeof(stu[i]));</p><p><b>  }</b><

22、/p><p>  file.close();</p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  int load()</p><p><b>  {</b></p><p&

23、gt;<b>  top = -1;</b></p><p>  fstream file(path_name,ios::in);</p><p>  if (!file) </p><p><b>  {</b></p><p>  cout<<"錯(cuò)誤??!"<

24、<endl;</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  student s;</p><p>  int temp = file.tellg();</p><p>  file.seekg(0,i

25、os::end);</p><p>  int filelong = file.tellg();</p><p>  file.seekg(temp);</p><p>  while(file.tellg()<filelong) </p><p><b>  {</b></p><p> 

26、 memset(&s,0,sizeof(s));</p><p>  file.read((char*)&s,sizeof(s));</p><p><b>  top++;</b></p><p>  s.info.num = top;</p><p>  stu[top] = s;</p>

27、<p><b>  }</b></p><p>  file.close();</p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  int display()</p><p>

28、<b>  {</b></p><p>  if (top<0) </p><p><b>  {</b></p><p>  cout<<"無"<<endl;</p><p><b>  return 0;</b></p

29、><p><b>  }</b></p><p>  cout<<setiosflags(ios::left)<<setw(7)<<"NO."</p><p>  <<setw(7)<<"名字"</p><p>  <&

30、lt;setw(7)<<"電話"</p><p>  <<setw(7)<<"班級(jí)"</p><p>  <<setw(7)<<"地址"</p><p>  <<setw(7)<<"性別"</p&g

31、t;<p>  <<setw(7)<<"屆"</p><p>  <<setw(7)<<"學(xué)院"</p><p>  <<setw(7)<<"年齡"</p><p><b>  <<endl;<

32、/b></p><p>  for(int i = 0;i<=top;i++)</p><p><b>  {</b></p><p>  stu[i].display();</p><p><b>  }</b></p><p><b>  retur

33、n 1;</b></p><p><b>  }</b></p><p><b>  };</b></p><p><b>  2.2 維護(hù)同學(xué)錄</b></p><p><b>  class txl</b></p><p

34、><b>  {</b></p><p><b>  public:</b></p><p>  rcdname rn[Max];</p><p><b>  int top;</b></p><p><b>  txl()</b></p>

35、;<p><b>  {</b></p><p><b>  top = -1;</b></p><p><b>  }</b></p><p>  int insert(rcdname& s)</p><p><b>  {</b>

36、</p><p>  //如果還沒有存在則插入</p><p><b>  top++;</b></p><p>  s.num=top;</p><p>  rn[top] = s;</p><p><b>  return 1;</b></p><p&

37、gt;<b>  }</b></p><p>  int clear()</p><p><b>  {</b></p><p><b>  top = -1;</b></p><p><b>  return 1;</b></p><

38、p><b>  }</b></p><p>  int save()</p><p><b>  {</b></p><p>  fstream file("txl.txt",ios::out);</p><p><b>  if(!file)</b>

39、</p><p><b>  {</b></p><p>  cout<<"錯(cuò)誤??!";</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  for(int

40、i=0;i<=top;i++)</p><p><b>  {</b></p><p>  if(-2==rn[i].num) continue;</p><p>  file.write((char*)&rn[i],sizeof(rn[i]));</p><p><b>  }</b&

41、gt;</p><p>  file.close();</p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  int load()</p><p><b>  {</b></p>

42、<p><b>  top = -1;</b></p><p>  fstream file("txl.txt",ios::in);</p><p>  if (!file) </p><p><b>  {</b></p><p>  cout<<&qu

43、ot;錯(cuò)誤?。?quot;<<endl;</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  rcdname r;</p><p>  int temp = file.tellg();</p><p>

44、;  file.seekg(0,ios::end);</p><p>  int filelong = file.tellg();</p><p>  file.seekg(temp);</p><p>  while(file.tellg()<filelong) </p><p><b>  {</b></

45、p><p>  memset(&r,0,sizeof(r));</p><p>  file.read((char*)&r,sizeof(r));</p><p><b>  top++;</b></p><p>  r.num = top;</p><p>  rn[top] = r

46、;</p><p><b>  }</b></p><p>  file.close();</p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  int display()</p>

47、<p><b>  {</b></p><p>  if (top<0) </p><p><b>  {</b></p><p>  cout<<"無"<<endl;</p><p><b>  return 0;</

48、b></p><p><b>  }</b></p><p>  cout<<setiosflags(ios::left)<<setw(7)<<"NO."<<setw(10)<<"已有同學(xué)錄名稱"<<endl;</p><p>

49、  for(int i = 0;i<=top;i++)</p><p><b>  {</b></p><p>  cout<<setiosflags(ios::left)<<setw(7)<<rn[i].num+1<<setw(10)<<rn[i].name<<endl;</p>

50、;<p><b>  }</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  };</b></p><p>  2.3對(duì)同學(xué)錄內(nèi)信息的操作菜單</p>

51、<p>  void welcome(record& rcd)</p><p>  { </p><p>  char choice;</p><p><b>  int num;</b></p><p>  string str_Name;&

52、lt;/p><p>  StInfo s1;</p><p>  student stu1;</p><p><b>  do</b></p><p><b>  { </b></p><p>  string path = rcd.path_name;///////

53、/////////////////</p><p>  cout <<endl<<endl<<"\t\t\t\t"<<path<<"同學(xué)錄\n\n\n";</p><p>  cout <<"\t\t\t1顯示\n\n\t\t\t2新增\n\n\t\t\t3查找\

54、n\n\t\t\t4刪除 \n\n\t\t\t0離開"<<endl;</p><p>  cin >> choice;</p><p>  switch (choice)</p><p><b>  {</b></p><p><b>  case '1':

55、</b></p><p>  rcd.load();</p><p>  rcd.display();</p><p><b>  break;</b></p><p><b>  case '2':</b></p><p>  cout<&

56、lt;"同學(xué)的姓名:\t"<<endl;</p><p>  cin>>s1.name;</p><p>  cout<<"同學(xué)的電話:\t";</p><p>  cin>>s1.tel;</p><p>  cout<<"同學(xué)的班

57、級(jí):\t";</p><p>  cin>>s1.banji;</p><p>  cout<<"同學(xué)的住址:\t";</p><p>  cin>>s1.addrs;</p><p>  cout<<"同學(xué)的性別:\t";</p>

58、<p>  cin>>s1.sex;</p><p>  cout<<"同學(xué)的年齡:\t";</p><p>  cin>>s1.year;</p><p>  cout<<"同學(xué)的學(xué)院:\t";</p><p>  cin>>s1

59、.xueyuan;</p><p>  cout<<"同學(xué)的屆級(jí):\t";</p><p>  cin>>s1.jie;</p><p>  stu1.add(s1);</p><p>  rcd.insert(stu1);</p><p>  rcd.save();<

60、/p><p><b>  break;</b></p><p><b>  case '3':</b></p><p>  cout<<"輸入同學(xué)的名字:\t";</p><p>  cin>>str_Name;</p><

61、p>  num = rcd.findbyName(str_Name);</p><p>  if(-1!=num)</p><p><b>  {</b></p><p>  cout<<setiosflags(ios::left)</p><p>  <<setw(7)<<&q

62、uot;NO."</p><p>  <<setw(7)<<"姓名"</p><p>  <<setw(7)<<"電話"</p><p>  <<setw(7)<<"班級(jí)"</p><p>  <

63、<setw(7)<<"地址"</p><p>  <<setw(7)<<"性別"</p><p>  <<setw(7)<<"年齡"</p><p>  <<setw(7)<<"學(xué)院"</p&

64、gt;<p>  <<setw(7)<<"屆級(jí)"</p><p><b>  <<endl;</b></p><p>  rcd.stu[num].display();</p><p><b>  break;</b></p><p&

65、gt;<b>  }</b></p><p>  cout<<"沒有要找的人!!!"<<endl;</p><p><b>  break;</b></p><p><b>  case '4':</b></p><p&g

66、t;  cout<<"輸入同學(xué)的姓名:\t";</p><p>  cin>>str_Name;</p><p>  num = rcd.findbyName(str_Name);</p><p>  if(-1!=num)</p><p><b>  {</b></p&

67、gt;<p>  rcd.stu[num].display();</p><p>  rcd.deletebynum(num);</p><p>  rcd.save();</p><p><b>  break;</b></p><p><b>  }</b></p>

68、<p>  cout<<"沒有要找的人!!!"<<endl;</p><p><b>  break;</b></p><p>  default:cout<<"請(qǐng)從新輸入:\n";</p><p><b>  }</b></p&g

69、t;<p>  }while(choice!='0');</p><p><b>  }</b></p><p>  2.4歡迎界面功能實(shí)現(xiàn)</p><p>  void first_menu()</p><p>  {//校友錄目錄的管理界面(增加或刪除某個(gè)同學(xué)錄)</p>

70、<p>  cout <<"********************************************************************************"<<endl;</p><p>  cout <<endl<<"\t\t\t\t校友錄管理系統(tǒng)\n\n\n";</p>

71、;<p>  rcdname r;</p><p><b>  txl t1;</b></p><p>  t1.load();</p><p>  char name[Maxp];</p><p>  char choice;</p><p><b>  int num;

72、</b></p><p><b>  do</b></p><p>  { cout <<"********************************************************************************"<<endl;</p><p>

73、  cout <<"\n\n\t\t\t1顯示已有同學(xué)錄\n\n\t\t\t2進(jìn)入編輯菜單\n\n\t\t\t3新增同學(xué)錄\n\n\t\t\t4刪除同學(xué)錄\n\n\t\t\t0離\t開\n\n"<<endl;</p><p>  cout <<"***********************************************

74、*********************************"<<endl;</p><p>  cin >> choice;</p><p>  switch(choice) </p><p><b>  {</b></p><p>  case '0':brea

75、k;</p><p><b>  case '1':</b></p><p>  t1.display();</p><p>  cout <<"********************************************************************************&

76、quot;<<endl;</p><p><b>  case '2':</b></p><p>  second_menu();</p><p>  cout <<"****************************************************************

77、****************"<<endl;</p><p><b>  break;</b></p><p><b>  case '3':</b></p><p>  cout<<"輸入同學(xué)錄名稱:\t";</p><p>

78、;  cin>>name;</p><p>  strcpy(r.name,name);</p><p>  t1.insert(r);</p><p>  t1.save();</p><p>  t1.load();</p><p>  t1.display();</p><p>

79、;  cout <<"********************************************************************************"<<endl;</p><p><b>  break;</b></p><p><b>  case '4':&l

80、t;/b></p><p>  t1.display();</p><p>  cout<<"輸入同學(xué)錄名稱前的序號(hào):\t";</p><p><b>  cin>>num;</b></p><p><b>  num--;</b></p>

81、;<p>  for(;num<=t1.top;num++)</p><p><b>  {</b></p><p>  strcpy(t1.rn[num].name,t1.rn[num+1].name);</p><p><b>  }</b></p><p><b>

82、;  t1.top--;</b></p><p>  t1.save();</p><p><b>  break;</b></p><p><b>  default:</b></p><p>  cout<<"輸入有誤,重新輸入或輸入't'退出&

83、quot;<<endl;</p><p>  cin.get();</p><p>  cout <<"********************************************************************************"<<endl;</p><p><b&g

84、t;  break;</b></p><p><b>  }</b></p><p>  }while('t'!=choice);</p><p><b>  }</b></p><p>  第三章 調(diào)試及運(yùn)行結(jié)果</p><p><b&g

85、t;  運(yùn)行結(jié)果如下:</b></p><p><b>  主界面</b></p><p>  顯示已存入的幾個(gè)同學(xué)錄</p><p>  打開了ji09-2這個(gè)同學(xué)錄</p><p>  顯示這個(gè)同學(xué)錄內(nèi)同學(xué)的信息可選擇繼續(xù)操作或返回上一層</p><p>  按姓名查找 找到了wr

86、y2這個(gè)同學(xué)并顯示信息</p><p>  按姓名刪除,刪除了wry1這個(gè)人的信息同學(xué)錄里面僅剩余wry2的信息(顯示)</p><p>  返回主菜單對(duì)同學(xué)錄進(jìn)行操作 按序號(hào)刪除了ji09-4這個(gè)同學(xué)錄</p><p>  像同學(xué)錄目錄中添加了一個(gè)新同學(xué)錄ji09-5并顯示</p><p><b>  第四章 總結(jié)</b&g

87、t;</p><p>  這次為期一周的課程設(shè)計(jì)結(jié)束了,還是頗有心得的。作為一個(gè)計(jì)算機(jī)專業(yè)學(xué)生運(yùn)用面向?qū)ο蟮姆椒ň幊淌俏覀兊囊豁?xiàng)基本技能。這次編寫了一個(gè)校友錄管理系統(tǒng),學(xué)到了很多東西。感覺自己最大的收獲就是將面向?qū)ο蠓椒ㄖ械念惻c數(shù)據(jù)結(jié)構(gòu)中的鏈表結(jié)合在了一起應(yīng)用。我在看到題目的時(shí)候就想一個(gè)類不夠用,但是類多了又想不出怎么樣能夠把類與類之間聯(lián)系起來,后來在同學(xué)的提示下決定用鏈表的方法,以類作為節(jié)點(diǎn)建立一個(gè)鏈表。在編寫

88、程序的時(shí)候我遇到的最大問題就是類太多而且定義的特別亂,自己定義的東西自己都記不住了,于是我想到了結(jié)構(gòu)體,將一些標(biāo)注屬性的變量全部放在結(jié)構(gòu)體當(dāng)中,這樣條理就清晰多了,自己不至于弄混亂??傊?,這次收獲很大,也為能做出這么一個(gè)程序挺有成就感的。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]《C++語言程序設(shè)計(jì)(第四版)》,鄭莉,清華大學(xué)出版社,2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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)論