c語(yǔ)言課程設(shè)計(jì)--學(xué)生籍貫信息記錄簿設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩14頁(yè)未讀, 繼續(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>  C語(yǔ)言與程序設(shè)計(jì)課程設(shè)計(jì)</p><p>  學(xué)生籍貫信息記錄簿設(shè)計(jì)</p><p>  學(xué) 院 信息工程 </p><p>  班 級(jí) </p><p>  學(xué) 號(hào) </p><p>  姓 名

2、 </p><p><b>  一.設(shè)計(jì)目的</b></p><p>  該軟件主要是編輯一個(gè)學(xué)生籍貫信息記錄簿記錄每個(gè)學(xué)生信息,包括:學(xué)號(hào)、姓名、籍貫。具體功能:</p><p>  1.創(chuàng)建信息鏈表并以磁盤文件保存;</p><p>  2.讀取磁盤文件并顯示輸出所有學(xué)生的籍貫信息;&

3、lt;/p><p>  3.按學(xué)號(hào)或姓名查詢其籍貫;</p><p>  4.按籍貫查詢并輸出該籍貫的所有學(xué)生;</p><p>  5.能添加、刪除和修改學(xué)生的籍貫信息;</p><p><b>  二.總體設(shè)計(jì)</b></p><p>  1.設(shè)置輸入輸出流及將程序由磁盤文件保存,構(gòu)件類stu,其

4、主要包括:學(xué)號(hào),姓名,籍貫;</p><p>  2.構(gòu)建無(wú)返回值main函數(shù),輸出由與程序相關(guān)操作構(gòu)成的信息鏈表;</p><p>  3.根據(jù)鏈表設(shè)置利用switch函數(shù)和循環(huán)函數(shù)將鏈表中的內(nèi)容一一實(shí)現(xiàn);</p><p><b>  三.詳細(xì)設(shè)計(jì)</b></p><p>  1.學(xué)生基本信息的錄入</p>

5、<p>  這部分的功能主要包括信息的錄入,首先按程序提示輸入學(xué)生的學(xué)號(hào),姓名,籍貫等。在錄入數(shù)據(jù)的同時(shí),系統(tǒng)將對(duì)信息的合法性進(jìn)行檢驗(yàn)。若用戶輸入不合法的信息,則被系統(tǒng)要求重新輸入;若合法性成立則錄入完畢后系統(tǒng)將返回主頁(yè)面。主頁(yè)面還有顯示學(xué)生的全部信息,并且這些信息都會(huì)寫到你所指定的文本文件中。</p><p><b>  2.顯示學(xué)生信息</b></p><

6、;p>  此功能是將原錄入的學(xué)生信息讀出,并在屏幕上顯示出來,并且錄入到你所指定的文本文件中。</p><p><b>  3.學(xué)生信息讀取</b></p><p>  進(jìn)入該項(xiàng)功能界面后,用戶可以對(duì)學(xué)生的個(gè)人信息進(jìn)行查看,并且錄入到你所指定的文本文件中。</p><p>  4.按學(xué)號(hào)或姓名查找學(xué)生信息</p><p

7、>  此項(xiàng)功能可以根據(jù)用戶輸入的選擇查處該學(xué)生的所有信息,并且錄入到你所指定的文本文件中。</p><p>  5.刪除和修改個(gè)人信息</p><p>  選擇此項(xiàng)功能后,系統(tǒng)將會(huì)自動(dòng)在屏幕上顯示按學(xué)號(hào)錄入原來同學(xué)的個(gè)人信息,輸入后進(jìn)行修改,并且錄入到你所指定的文本文件中。</p><p>  6.退出系統(tǒng),結(jié)束任務(wù)</p><p>&

8、lt;b>  【注:</b></p><p><b>  main()主函數(shù)</b></p><p>  每一C 程序都必須有一main()函數(shù), 可以根據(jù)自己的愛好把它放在程序某個(gè)地方。程序之前輸入學(xué)生信息,main()申明主函數(shù),輸出相應(yīng)的功能函數(shù)。 </p><p>  #include<>頭文件&

9、lt;/p><p>  iostream意為輸入輸出流,包含了對(duì)輸入輸出流進(jìn)行操作所需的基本信息;string意為字符串,用于定義程序中的字符串;fstream用于用戶管理的文件的I/O操作。</p><p>  using namespace 命名空間名</p><p>  using namespace一次只能聲明一個(gè)命名空間成員,using</p>

10、;<p>  namespace std聲明了在本作用域中要用的命名空間std中的成員。</p><p><b>  break語(yǔ)言</b></p><p>  break語(yǔ)句可以使流程跳出switch結(jié)構(gòu),繼續(xù)執(zhí)行switch語(yǔ)句下面的一個(gè)語(yǔ)句。其作用為使流程從循環(huán)體內(nèi)跳出循環(huán)體,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)體下面的語(yǔ)句。break語(yǔ)句只能用于循環(huán)語(yǔ)句

11、和switch語(yǔ)句 內(nèi),不能單獨(dú)使用或用于其他語(yǔ)句中。</p><p><b>  】</b></p><p><b>  四.調(diào)試與測(cè)試</b></p><p>  在Visual C++6.0環(huán)境下輸入代碼并進(jìn)行調(diào)試和正確運(yùn)行</p><p>  五.源程序清單和執(zhí)行結(jié)果</p>

12、<p>  #include<iostream></p><p>  #include<string></p><p>  #include<fstream></p><p>  using namespace std;</p><p>  class CStudent</p>&l

13、t;p><b>  {</b></p><p><b>  private:</b></p><p>  int ID; //學(xué)號(hào)</p><p>  string Province; //籍貫</p><p>  string Name; //姓名 <

14、;/p><p><b>  public:</b></p><p>  void setID(int id) {ID=id;}</p><p>  void setProvince(string province) {Province=province;}</p><p>  void setName(string name

15、) {Name=name;}</p><p>  int getID() {return ID;}</p><p>  string getProvince() {return Province;}</p><p>  string getName() {return Name;}</p><p><b>  };</b>

16、;</p><p>  CStudent student[1000];</p><p>  int n = 0; //數(shù)組學(xué)生總數(shù)</p><p>  string fileName="students.txt";</p><p>  int AddStudent(); //添加一個(gè)學(xué)生到數(shù)組</p><

17、;p>  int Loop(); //顯示數(shù)組中所有學(xué)生</p><p>  int AddToFile(); //加數(shù)組學(xué)生到文件</p><p>  int SaveFile(); //數(shù)組到文件</p><p>  int ShowFile(); //顯示文件所有學(xué)生</p><p>  int FindID(); //按學(xué)號(hào)查詢

18、學(xué)生</p><p>  int Findname(); //按姓名查詢學(xué)生</p><p>  int FindProvince(); //按籍貫查詢學(xué)生</p><p>  int Delete (); //刪除一個(gè)學(xué)生</p><p>  int ReadFile(); //文件輸入數(shù)組</p><p>  in

19、t Remove (); //修改一個(gè)學(xué)生</p><p>  int Rediscovername(); //重新輸入學(xué)生</p><p>  int ReadFile(); //文件輸入數(shù)組</p><p>  void main()</p><p><b>  {</b></p><p>&

20、lt;b>  int k=-1;</b></p><p>  while(k!=0)</p><p><b>  {</b></p><p>  cout<<endl; </p><p>  cout<<"1 添加一個(gè)學(xué)生到數(shù)組" <<endl;

21、</p><p>  cout<<"2 顯示數(shù)組中所有學(xué)生" <<endl;</p><p>  cout<<"3 加數(shù)組學(xué)生到文件" <<endl;</p><p>  cout<<"4 顯示文件中所有學(xué)生" <<endl;

22、</p><p>  cout<<"5 按學(xué)號(hào)查詢學(xué)生" <<endl;</p><p>  cout<<"6 按籍貫查詢學(xué)生" <<endl;</p><p>  cout<<"7 按姓名查詢學(xué)生" <<end

23、l;</p><p>  cout<<"8 刪除一個(gè)學(xué)生" <<endl;</p><p>  cout<<"9 修改一個(gè)學(xué)生" <<endl;</p><p>  cout<<"10 文件輸入數(shù)組" <&

24、lt;endl;</p><p>  cout<<"0 完成" <<endl;</p><p>  cout<<"選擇上面一個(gè)數(shù)字:"; cin>>k;</p><p>  if (k==1) AddStudent();</p>

25、<p>  else if(k==2) Loop();</p><p>  else if(k==3) AddToFile();</p><p>  else if(k==4) ShowFile();</p><p>  else if(k==5) FindID();</p><p>  else if(

26、k==6) FindProvince();</p><p>  else if(k==7) Delete();</p><p>  else if(k==8) Remove();</p><p>  else if(k==9) ReadFile();</p><p>  else if(k==0) printf(

27、"完成!\n");</p><p>  else printf("你輸入了個(gè)錯(cuò)誤的數(shù)字!\n");</p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }&l

28、t;/b></p><p>  int FindProvince()</p><p><b>  {</b></p><p><b>  int id;</b></p><p>  string province1,province2;</p><p>  cout&l

29、t;<"籍貫:"; cin>>province1;</p><p>  ifstream iFile(fileName.c_str());</p><p>  while(iFile>>id>>province2)</p><p><b>  {</b></p><

30、;p>  if(province1==province2)</p><p>  cout<<id<<" "<<province2<<endl;</p><p><b>  }</b></p><p>  iFile.close();</p><p>

31、;<b>  return 0;</b></p><p><b>  }</b></p><p>  int FindID()</p><p><b>  {</b></p><p>  int id1,id2;</p><p>  string pro

32、vince;</p><p>  cout<<"學(xué)號(hào):"; cin>>id1;</p><p>  ifstream iFile(fileName.c_str());</p><p>  while(iFile>>id2>>province)</p><p><b>

33、;  {</b></p><p>  if(id1==id2)</p><p><b>  {</b></p><p>  cout<<id2<<" "<<province<<endl;</p><p><b>  break;&l

34、t;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  iFile.close();</p><p><b>  return 0;</b></p><p><b>  }</

35、b></p><p>  int FindProvince()</p><p><b>  {</b></p><p><b>  int name;</b></p><p>  string province1,province2;</p><p>  cout<

36、;<"籍貫:"; cin>>province1;</p><p>  ifstream iFile(fileID.c_str());</p><p>  while(iFile>>name>>province2)</p><p><b>  {</b></p><

37、p>  if(province1==province2)</p><p>  cout<<name<<" "<<province2<<endl;</p><p><b>  }</b></p><p>  iFile.close();</p><p&g

38、t;<b>  return 0;</b></p><p><b>  }</b></p><p>  int FindName()</p><p><b>  {</b></p><p>  int name1,name2;</p><p>  str

39、ing province;</p><p>  cout<<"姓名:"; cin>>id1;</p><p>  ifstream iFile(fileID.c_str());</p><p>  while(iFile>>name2>>province)</p><p>&

40、lt;b>  {</b></p><p>  if(name1==name2)</p><p><b>  {</b></p><p>  cout<<name2<<" "<<province<<endl;</p><p><b&

41、gt;  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  iFile.close();</p><p><b>  return 0;</b></p><p><

42、b>  }</b></p><p>  int Remove()</p><p><b>  {</b></p><p>  int id,i,j;</p><p>  cout<<"學(xué)號(hào):"; cin>>id;</p><p>  R

43、eadFile();</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  if(student[i].getID()==id)</p><p><b>  {</b></p><p><b>  n

44、--;</b></p><p>  for(j=i;j<n;j++)</p><p>  student[j]=student[j+1];</p><p><b>  }</b></p><p><b>  }</b></p><p>  SaveFile(

45、);</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  int AddStudent()</p><p><b>  {</b></p><p><b>  int id;<

46、;/b></p><p>  string province;</p><p>  cout<<"學(xué)號(hào),籍貫: "; cin>>id>>province;</p><p>  student[n].setID(id);</p><p>  student[n].setProvinc

47、e(province);</p><p><b>  n++;</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  int AddToFile()</p><p><b>

48、  {</b></p><p>  ofstream oFile(fileName.c_str(),ios::app);</p><p><b>  int i;</b></p><p>  for(i=0;i<n;i++)</p><p>  oFile<<student[i].getID

49、()<<"</p><p>  "<<student[i].getProvince()<<endl;</p><p>  oFile.close();</p><p><b>  return 0;</b></p><p><b>  }</b>

50、;</p><p>  int SaveFile()</p><p><b>  {</b></p><p>  ofstream oFile(fileName.c_str());</p><p><b>  int i;</b></p><p>  for(i=0;i<

51、;n;i++)</p><p>  oFile<<student[i].getID()<<" "<<student[i].getProvince()<<endl;</p><p>  oFile.close();</p><p><b>  return 0;</b></

52、p><p><b>  }</b></p><p>  int ReadFile()</p><p><b>  {</b></p><p><b>  int id;</b></p><p>  string province;</p>&l

53、t;p>  ifstream iFile(fileName.c_str());</p><p><b>  n = 0;</b></p><p>  while(iFile>>id>>province)</p><p><b>  {</b></p><p>  stu

54、dent[n].setID(id);</p><p>  student[n].setProvince(province);</p><p><b>  n++;</b></p><p><b>  }</b></p><p>  iFile.close();</p><p>

55、;<b>  return 0;</b></p><p><b>  }</b></p><p>  int Loop()</p><p><b>  {</b></p><p><b>  int i;</b></p><p> 

56、 cout<<"顯示所有學(xué)生:"<<endl;</p><p>  for(i=0;i<n;i++)</p><p>  cout<<"學(xué)號(hào)= "<<student[i].getID()<<"籍貫= "<<student[i].getProvince()

57、<<endl;</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  int ShowFile()</p><p><b>  {</b></p><p><b>  i

58、nt id;</b></p><p>  string province;</p><p>  ifstream iFile(fileName.c_str());</p><p>  while(iFile>>id>>province)</p><p>  cout<<id<<&qu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(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)論