c語言課程設計--學生籍貫信息記錄簿設計_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  C語言與程序設計課程設計</p><p>  學生籍貫信息記錄簿設計</p><p>  學 院 信息工程 </p><p>  班 級 </p><p>  學 號 </p><p>  姓 名

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

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

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

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

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

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

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

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

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

11、和switch語句 內,不能單獨使用或用于其他語句中。</p><p><b>  】</b></p><p><b>  四.調試與測試</b></p><p>  在Visual C++6.0環(huán)境下輸入代碼并進行調試和正確運行</p><p>  五.源程序清單和執(zhí)行結果</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; //學號</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ù)組學生總數(shù)</p><p>  string fileName="students.txt";</p><p>  int AddStudent(); //添加一個學生到數(shù)組</p><

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

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

19、t Remove (); //修改一個學生</p><p>  int Rediscovername(); //重新輸入學生</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 添加一個學生到數(shù)組" <<endl;

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

22、</p><p>  cout<<"5 按學號查詢學生" <<endl;</p><p>  cout<<"6 按籍貫查詢學生" <<endl;</p><p>  cout<<"7 按姓名查詢學生" <<end

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

24、lt;endl;</p><p>  cout<<"0 完成" <<endl;</p><p>  cout<<"選擇上面一個數(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("你輸入了個錯誤的數(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<<"學號:"; 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<<"學號:"; 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<<"學號,籍貫: "; 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<<"顯示所有學生:"<<endl;</p><p>  for(i=0;i<n;i++)</p><p>  cout<<"學號= "<<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. 本站所有資源如無特殊說明,都需要本地電腦安裝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

提交評論