2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  題 目 學(xué)籍管理系統(tǒng) </p><p>  課 程 名 稱 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì) </p><p>  院 部 名 稱 信息技術(shù)學(xué)院 </p><p>  專 業(yè)

2、 計(jì)算機(jī)科學(xué)與技術(shù)(本)</p><p>  班 級(jí) 09計(jì)算機(jī)科學(xué)與技術(shù)(1) </p><p>  學(xué) 生 姓 名 </p><p>  學(xué) 號(hào) </p><p>  課程設(shè)計(jì)地點(diǎn) </p>

3、<p>  課程設(shè)計(jì)學(xué)時(shí) </p><p>  指 導(dǎo) 教 師 </p><p>  【注:根據(jù)課程設(shè)計(jì)大綱第四項(xiàng)具體要求撰寫課程設(shè)計(jì)報(bào)告】</p><p><b>  一 需求分析</b></p><p>  隨著計(jì)算機(jī)的發(fā)展,

4、越來越多的學(xué)校有自己的學(xué)籍管理系統(tǒng)。這樣更方便數(shù)據(jù)的長期保存,更適用于數(shù)據(jù)的集中處理。通過這個(gè)簡單的學(xué)籍管理系統(tǒng),可以添加新成員的基本信息,通過其姓名,學(xué)號(hào),班級(jí)等信息查詢這個(gè)人的基本信息??梢院芊奖愕倪M(jìn)行數(shù)據(jù)修改,以及數(shù)據(jù)刪除。本系統(tǒng)主要是通過二進(jìn)制的文件讀取,進(jìn)行輸入,輸出,以及修改,刪除等基本功能。一共涉及到兩個(gè)類,第一個(gè)類是person類,主要是成員數(shù)據(jù),只有一個(gè)添加數(shù)據(jù)的公有接口。主要是方便第2個(gè)類student對(duì)其的繼承,繼

5、承它的所有成員函數(shù)及其成員數(shù)據(jù)。</p><p>  Person 類的數(shù)據(jù)成員</p><p><b>  姓名</b></p><p><b>  性別</b></p><p><b>  系統(tǒng)功能包括:</b></p><p><b> 

6、 添加函數(shù)</b></p><p><b>  二 概要設(shè)計(jì)</b></p><p>  class person</p><p><b>  {</b></p><p>  public: </p><p>  void add();</p>

7、;<p>  protected:</p><p>  char name[10];char sex[3];</p><p><b>  };</b></p><p>  這個(gè)類設(shè)計(jì)得很簡單,因?yàn)樗瑂tudent類的基本信息,通過公有繼承,直接應(yīng)用person類的成員函數(shù)及其變量。</p><p>  

8、其中的數(shù)據(jù)成員含義如下:</p><p>  用戶姓名:用name字符數(shù)組來表示,或者直接使用string類型的變量來存放</p><p>  用戶性別:用sex字符數(shù)組來表示,或者直接使用string類型的變量來存放</p><p>  為了對(duì)person類的信息進(jìn)行必要的操作,最主要是添加函數(shù):</p><p>  void add();

9、//主要是輸入姓名,性別的基本信息。</p><p>  為了實(shí)現(xiàn)學(xué)生管理系統(tǒng)的基本功能,主要是通過建立一個(gè)student類的成員函數(shù)來實(shí)現(xiàn)它。所以每個(gè)student類的成員函數(shù)都非常重要,它直接影響要功能的實(shí)現(xiàn)。</p><p>  class student:public person//繼承 person 類</p><p><b>  {</

10、b></p><p><b>  public: </b></p><p>  void add();</p><p>  void add2();</p><p>  void addban();</p><p>  void del();</p><p>  vo

11、id change();</p><p>  void menue();</p><p>  void reader();</p><p>  void searchname();</p><p>  void searchban();</p><p>  void searchnumber();</p>

12、<p>  void disp();</p><p><b>  private:</b></p><p>  int number;char xibie[10];int ban;//定義學(xué)號(hào) 系別 班級(jí)</p><p><b>  };</b></p><p>  其中數(shù)據(jù)成員的含義

13、如下:</p><p>  number: 用來存放一個(gè)學(xué)生的學(xué)號(hào)。</p><p>  xibie:用來存放一個(gè)學(xué)生的系別。</p><p>  ban:用來存放一個(gè)學(xué)生的班級(jí)。</p><p>  其中的成員函數(shù)解釋如下:</p><p>  void add();//寫入函數(shù)</p><p&

14、gt;  void add2();//寫入函數(shù)</p><p>  void addban();//增加班</p><p>  void del();//刪除函數(shù)</p><p>  void change();//改變函數(shù)</p><p>  void menue();//主菜單</p><p>  void rea

15、der();//次菜單</p><p>  void searchname();//查詢姓名</p><p>  void searchban();//查詢班級(jí)</p><p>  void searchnumber();//查詢學(xué)號(hào)</p><p>  void disp();//顯示</p><p>  類體外定義

16、了一個(gè)比較函數(shù)</p><p>  bool comp(char s1[],char s2[]);//比較兩個(gè)字符串相等 </p><p><b>  三 詳細(xì)設(shè)計(jì)</b></p><p>  Person類的實(shí)現(xiàn)</p><p>  void add()//寫入函數(shù)</p><p><b

17、>  {</b></p><p>  cout<<"請(qǐng)輸入姓名:"<<endl;</p><p>  cin>>name;</p><p>  cout<<"請(qǐng)輸入性別:"<<endl;</p><p><b>  

18、cin>>sex;</b></p><p><b>  }</b></p><p>  Student類的實(shí)現(xiàn)</p><p>  void student::disp()//顯示</p><p><b>  {</b></p><p>  cout&

19、lt;<"姓名:"<<name<<" ";</p><p>  cout<<"性別:"<<sex<<" ";</p><p>  cout<<"班級(jí):"<<ban<<" "

20、;;</p><p>  cout<<"學(xué)號(hào):"<<number<<" ";</p><p>  cout<<"系別:"<<xibie<<endl;</p><p><b>  }</b></p>&

21、lt;p>  void student::add()</p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入學(xué)生信息:"<<endl;</p><p>  person::add();//寫入函數(shù)</p><p>  cout<<&q

22、uot;請(qǐng)輸入學(xué)號(hào):"<<endl;</p><p>  cin>>number;//輸入學(xué)號(hào)</p><p>  cout<<"請(qǐng)輸入系別:"<<endl;</p><p>  cin>>xibie;//輸入系別</p><p>  cout<&

23、lt;"請(qǐng)輸入班級(jí) "<<endl;</p><p>  cin>>ban;//輸入班級(jí)</p><p><b>  }</b></p><p>  void student::add2()//寫入函數(shù)</p><p><b>  {</b></p&

24、gt;<p>  student a;</p><p><b>  a.add();</b></p><p>  fstream file("student.txt",ios::binary|ios::out|ios::app); //二進(jìn)制打開文件,指針指向文件尾</p><p>  file.write((

25、char*)&a,sizeof(a));//把類信息寫入文件</p><p>  file.close(); //關(guān)閉文件</p><p><b>  }</b></p><p>  void student::searchname()//按姓名查詢</p><p><b>  {</b>&

26、lt;/p><p>  cout<<"請(qǐng)輸入所要查詢的學(xué)生姓名:";</p><p>  char name2[10];cin>>name2;</p><p>  student a;</p><p>  fstream file("student.txt",ios::binary|

27、ios::in);//二進(jìn)制打開文件,指針在文件頭</p><p>  file.read((char*)&a,sizeof(a)); //讀取類信息</p><p>  while(!file.eof()) //判斷文件指針是否到文件尾</p><p><b>  {</b></p><

28、;p>  if(comp(a.name,name2)) //判斷輸入的字符是否與文件重點(diǎn)一樣</p><p>  a.disp(); //如一樣的話,顯示信息</p><p>  file.read((char*)&a,sizeof(a));//如果指針沒到文件尾,繼續(xù)讀取</p><p><b> 

29、 }</b></p><p>  file.close(); //關(guān)閉文件</p><p><b>  }</b></p><p>  void student::searchban()//按班級(jí)查詢</p><p><b>  {</b></

30、p><p>  cout<<"請(qǐng)輸入所要查詢的學(xué)生班級(jí):";</p><p>  int ban2;cin>>ban2; //輸入年齡</p><p>  student a; //第一個(gè)學(xué)生類的對(duì)象</p><p>  fstre

31、am file("student.txt",ios::binary|ios::in); //二進(jìn)制打開文件。指針在文件頭</p><p>  file.read((char*)&a,sizeof(a)); //讀取類信息</p><p>  while(!file.eof()) //判斷指針是否在文件尾</p>&

32、lt;p><b>  {</b></p><p>  if(a.ban==ban2) //判斷輸入年齡是否與文件中的年齡一樣</p><p>  a.disp(); //如果一樣的話,顯示信息</p><p>  file.read((char*)&a,sizeof(a));

33、 //如果指針沒到文件尾,繼續(xù)讀取</p><p><b>  }</b></p><p>  file.close(); //關(guān)閉文件</p><p><b>  }</b></p><p>  void student::searchnumber()//

34、按學(xué)號(hào)查詢</p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入所要查詢的學(xué)生編號(hào):";</p><p>  int number2;cin>>number2; //輸入學(xué)號(hào)</p><p>  student a; /

35、/第一個(gè)學(xué)生類的對(duì)象</p><p>  fstream file("student.txt",ios::binary|ios::in); //二進(jìn)制打開文件。指針在文件頭</p><p>  file.read((char*)&a,sizeof(a)); //讀取類信息</p><p>  while(!file.eof())

36、 //判斷指針是否在文件尾</p><p><b>  {</b></p><p>  if(a.number==number2) //判斷輸入的學(xué)號(hào)是否與文件中的一樣</p><p>  a.disp(); //如一樣的話,顯示信息</p><p>  fi

37、le.read((char*)&a,sizeof(a));//如果指針沒到文件尾,繼續(xù)讀取</p><p><b>  }</b></p><p>  file.close(); //關(guān)閉文件</p><p><b>  }</b></p><p> 

38、 void student::del()//刪除函數(shù)</p><p><b>  {</b></p><p>  static char read_name[10]; //定義靜態(tài)變量</p><p>  static char read_sex[3];</p><p>  static int read_ban;<

39、;/p><p>  static int read_number;</p><p>  static char read_xibie[10];</p><p><b>  int n; </b></p><p>  int recsize=sizeof(read_name)+sizeof(read_sex)+sizeof(i

40、nt)+sizeof(int)+sizeof(read_xibie); //一個(gè)人的信息的長度</p><p>  strcpy(name,""); //刪除用空字符和0來代表的,</p><p>  strcpy(sex,"");</p><p><b>  ban=0;</b></p>

41、;<p><b>  number=0;</b></p><p>  strcpy(xibie,"");</p><p>  fstream file("student2.txt",ios::binary|ios::in); //二進(jìn)制打開文件。指針在文件頭</p><p>  cout&l

42、t;<endl<<"請(qǐng)輸入你要?jiǎng)h除第幾位學(xué)生的信息:";</p><p>  cin>>n;//輸入第幾個(gè)學(xué)生</p><p>  file.seekp((n-1)*recsize,ios::beg);//指向功能</p><p>  file.write(name,10);//把空字符寫入文件</p>

43、<p>  file.write(sex,3);</p><p>  file.write((char*)&ban,sizeof(int));</p><p>  file.write((char*)&number,sizeof(int));</p><p>  file.write(xibie,10);</p><p

44、>  file.close();</p><p>  cout<<endl<<"該學(xué)生刪除成功"<<endl<<endl; //提示</p><p>  cout<<endl;</p><p><b>  }</b></p><p> 

45、 void student::change() //修改函數(shù)</p><p><b>  {</b></p><p>  static char read_name[10]; //定義靜態(tài)變量</p><p>  static char read_sex[3];</p><p>  static int read_y

46、ear;</p><p>  static int read_number;</p><p>  static char read_xibie[10];</p><p><b>  int n;</b></p><p>  int recsize=sizeof(read_name)+sizeof(read_sex)+si

47、zeof(int)+sizeof(int)+sizeof(read_xibie); //一個(gè)人的信息的長度</p><p>  fstream file("student.txt",ios::binary|ios::in|ios::out); //二進(jìn)制打開文件。指針在文件頭</p><p>  cout<<endl<<"請(qǐng)輸入你要修改

48、第幾位學(xué)生的信息:"; //定位的位置</p><p><b>  cin>>n;</b></p><p>  cout<<"輸入你要修改的信息:"<<endl;</p><p>  student a;//定義學(xué)生對(duì)象</p><p>  a.add

49、(); //調(diào)用寫入函數(shù)</p><p>  file.seekp((n-1)*recsize,ios::beg);//指向功能</p><p>  file.write((char*)(&a),sizeof(a));//寫入對(duì)象</p><p>  file.close();//關(guān)閉文件</p><p>  cout<<

50、;"該學(xué)生信息修改成功"<<endl;</p><p>  cout<<endl;</p><p><b>  }</b></p><p>  void student::addban()</p><p><b>  {</b></p>&l

51、t;p><b>  int c;</b></p><p>  student a;</p><p><b>  char b;</b></p><p><b>  char y;</b></p><p>  cout<<"輸入你要建立的班級(jí)"

52、;<<endl;</p><p><b>  cin>>c;</b></p><p>  cout<<"輸入這個(gè)班的成員"<<endl;</p><p>  cout<<"繼續(xù),輸入y"<<endl;</p><p

53、><b>  cin>>b;</b></p><p>  while(b=='y')</p><p><b>  {</b></p><p><b>  a.add2();</b></p><p>  cout<<"繼續(xù)?

54、輸入y"<<endl;</p><p><b>  cin>>b;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void student::menue() </p>

55、<p><b>  {</b></p><p>  cout<<"1 添加學(xué)生信息 " <<endl;</p><p>  cout<<"2 修改學(xué)生信息 "<<endl;</p><p>  cout<<"3 刪除學(xué)生信

56、息 "<<endl;</p><p>  cout<<"4 查詢學(xué)生信息 "<<endl;</p><p>  cout<<"5 新建班級(jí) "<<endl;</p><p>  cout<<"6 退出系統(tǒng) &qu

57、ot;<<endl;</p><p><b>  }</b></p><p>  void student::reader()</p><p><b>  {</b></p><p>  cout<<"1 按姓名查詢"<<endl;</p

58、><p>  cout<<"2 班級(jí)查詢"<<endl;</p><p>  cout<<"3 按學(xué)號(hào)查詢"<<endl;</p><p>  cout<<"4 退出 "<<endl;</p><p

59、><b>  }</b></p><p><b>  類外函數(shù)的實(shí)現(xiàn)</b></p><p>  bool comp(char s1[],char s2[]) //比較文件中字符和輸入的字符是否相同</p><p><b>  {</b></p><p>&

60、lt;b>  int i=0;</b></p><p>  while(s1[i]!='\0'&&s2[i]!='\0'&&s1[i]==s2[i])</p><p><b>  i++;</b></p><p>  if(s1[i]=='\0'

61、 &&s2[i]=='\0')</p><p><b>  return 1;</b></p><p><b>  else</b></p><p><b>  return 0;</b></p><p><b>  }</b&g

62、t;</p><p><b>  四 程序測(cè)試</b></p><p>  /******************************************</p><p><b>  * </b></p><p>  * 測(cè)試主函數(shù)</p><p&g

63、t;  *******************************************/</p><p>  void main()</p><p><b>  {</b></p><p>  student a;</p><p>  int x1,x2;</p><p><b&g

64、t;  do</b></p><p><b>  {</b></p><p>  a.menue();//主菜單</p><p>  cout<<"請(qǐng)輸入操作號(hào):";</p><p>  cin>>x1;//輸入選項(xiàng)</p><p>  sw

65、itch(x1)//主菜單選擇</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  a.add2 ();</p><p><b>  break;</b></p><p><b>  

66、case 2:</b></p><p>  a.change();</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p><b>  a.del();</b></p><p>&

67、lt;b>  break;</b></p><p><b>  case 4:</b></p><p><b>  do</b></p><p><b>  { </b></p><p>  a.reader();</p><p> 

68、 cout<<"請(qǐng)輸入操作號(hào):"<<endl;</p><p><b>  cin>>x2;</b></p><p>  switch(x2)</p><p><b>  {</b></p><p><b>  case 1:<

69、/b></p><p>  a.searchname();</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  a.searchban();</p><p><b>  break;<

70、/b></p><p><b>  case 3:</b></p><p>  a.searchnumber();</p><p><b>  break;</b></p><p><b>  }</b></p><p>  }while(x2!=

71、4);break;</p><p><b>  case 5:</b></p><p>  a.addban();</p><p><b>  break;</b></p><p><b>  }</b></p><p>  }while(x1!=6);

72、</p><p><b>  }</b></p><p>  部分測(cè)試數(shù)據(jù)與運(yùn)行結(jié)果:</p><p><b>  五 個(gè)人體會(huì)</b></p><p>  通過這次課程設(shè)計(jì),我更加深刻的知道了我們學(xué)的c++和我們的生活密切相連,所以更應(yīng)該注意平時(shí)上課各種小知識(shí)點(diǎn)的積累。然后上機(jī)具體操作的情況又與筆

73、試有很大的不同,因?yàn)橥ㄟ^鍵盤操作,更容易出錯(cuò)。所以我們平時(shí)在學(xué)習(xí)的時(shí)候,就應(yīng)該做到邊學(xué)邊編,如果很久沒有接觸到c++的編譯環(huán)境,就會(huì)出現(xiàn)不知道從何如手。</p><p>  另外,程序的變化太大拉,它需要我們拓展課外知識(shí),所以僅靠在課堂上的時(shí)間學(xué)好它是不現(xiàn)實(shí)的。有很多小的技巧,以及編程思想需要我們自己去領(lǐng)悟,這要求我們要有很好的自學(xué)能力。比如說這次變成如果沒有掌握好用2進(jìn)制的方式輸入文件的話,就很難編出能實(shí)現(xiàn)功能

74、的程序</p><p>  編程最重要的是思路清晰,條理清楚,只有思路比較清楚的條件下,進(jìn)展才比較順利。并且,在編譯過程中遇到的錯(cuò)誤也要耐心去修改,并且記住這相應(yīng)的錯(cuò)誤代碼,以便以后遇到相同的情況,知道怎么修正。</p><p><b>  六 參考資料</b></p><p>  《軟件工程導(dǎo)論》 第四版 清華大學(xué)出版</p>

75、<p>  《C#開發(fā)實(shí)戰(zhàn)寶典》王小科 編著 清華大學(xué)出版社</p><p>  《C#開發(fā)大全》劉麗霞 編著 清華大學(xué)出版</p><p>  《數(shù)據(jù)庫系統(tǒng)概論》 王珊 薩師煊 編著 浙江大學(xué)出版社</p><p>  《C語言程序設(shè)計(jì)實(shí)例精粹》譚明金、俞海英編著 電子工業(yè)出版社</p><p>  七 附件:源程序清單&l

76、t;/p><p>  學(xué)生學(xué)籍管理系統(tǒng)源程序清單</p><p>  void add()//寫入函數(shù)</p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入姓名:"<<endl;</p><p>  cin>>name

77、;</p><p>  cout<<"請(qǐng)輸入性別:"<<endl;</p><p><b>  cin>>sex;</b></p><p><b>  }</b></p><p>  Student類的實(shí)現(xiàn)</p><p&g

78、t;  void student::disp()//顯示</p><p><b>  {</b></p><p>  cout<<"姓名:"<<name<<" ";</p><p>  cout<<"性別:"<<sex<

79、<" ";</p><p>  cout<<"班級(jí):"<<ban<<" ";</p><p>  cout<<"學(xué)號(hào):"<<number<<" ";</p><p>  cout<&l

80、t;"系別:"<<xibie<<endl;</p><p><b>  }</b></p><p>  void student::add()</p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入學(xué)生信息:

81、"<<endl;</p><p>  person::add();//寫入函數(shù)</p><p>  cout<<"請(qǐng)輸入學(xué)號(hào):"<<endl;</p><p>  cin>>number;//輸入學(xué)號(hào)</p><p>  cout<<"請(qǐng)輸入系

82、別:"<<endl;</p><p>  cin>>xibie;//輸入系別</p><p>  cout<<"請(qǐng)輸入班級(jí) "<<endl;</p><p>  cin>>ban;//輸入班級(jí)</p><p><b>  }</b>

83、</p><p>  void student::add2()//寫入函數(shù)</p><p><b>  {</b></p><p>  student a;</p><p><b>  a.add();</b></p><p>  fstream file("stu

84、dent.txt",ios::binary|ios::out|ios::app); //二進(jìn)制打開文件,指針指向文件尾</p><p>  file.write((char*)&a,sizeof(a));//把類信息寫入文件</p><p>  file.close(); //關(guān)閉文件</p><p><b>  }</b>&

85、lt;/p><p>  void student::searchname()//按姓名查詢</p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入所要查詢的學(xué)生姓名:";</p><p>  char name2[10];cin>>name2;</p

86、><p>  student a;</p><p>  fstream file("student.txt",ios::binary|ios::in);//二進(jìn)制打開文件,指針在文件頭</p><p>  file.read((char*)&a,sizeof(a)); //讀取類信息</p><p>  while(

87、!file.eof()) //判斷文件指針是否到文件尾</p><p><b>  {</b></p><p>  if(comp(a.name,name2)) //判斷輸入的字符是否與文件重點(diǎn)一樣</p><p>  a.disp(); //如一樣的話,顯示信息</p

88、><p>  file.read((char*)&a,sizeof(a));//如果指針沒到文件尾,繼續(xù)讀取</p><p><b>  }</b></p><p>  file.close(); //關(guān)閉文件</p><p><b>  }</b><

89、/p><p>  void student::searchban()//按班級(jí)查詢</p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入所要查詢的學(xué)生班級(jí):";</p><p>  int ban2;cin>>ban2; //輸

90、入年齡</p><p>  student a; //第一個(gè)學(xué)生類的對(duì)象</p><p>  fstream file("student.txt",ios::binary|ios::in); //二進(jìn)制打開文件。指針在文件頭</p><p>  file.read((char*)&a,size

91、of(a)); //讀取類信息</p><p>  while(!file.eof()) //判斷指針是否在文件尾</p><p><b>  {</b></p><p>  if(a.ban==ban2) //判斷輸入年齡是否與文件中的年齡一樣</p><p>

92、  a.disp(); //如果一樣的話,顯示信息</p><p>  file.read((char*)&a,sizeof(a)); //如果指針沒到文件尾,繼續(xù)讀取</p><p><b>  }</b></p><p>  file.close(); //關(guān)

93、閉文件</p><p><b>  }</b></p><p>  void student::searchnumber()//按學(xué)號(hào)查詢</p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入所要查詢的學(xué)生編號(hào):";</p>

94、<p>  int number2;cin>>number2; //輸入學(xué)號(hào)</p><p>  student a; //第一個(gè)學(xué)生類的對(duì)象</p><p>  fstream file("student.txt",ios::binary|ios::in); //二進(jìn)制打開文件。指針在文件頭</p>

95、<p>  file.read((char*)&a,sizeof(a)); //讀取類信息</p><p>  while(!file.eof()) //判斷指針是否在文件尾</p><p><b>  {</b></p><p>  if(a.number==number2) //判

96、斷輸入的學(xué)號(hào)是否與文件中的一樣</p><p>  a.disp(); //如一樣的話,顯示信息</p><p>  file.read((char*)&a,sizeof(a));//如果指針沒到文件尾,繼續(xù)讀取</p><p><b>  }</b></p><p>  file.c

97、lose(); //關(guān)閉文件</p><p><b>  }</b></p><p>  void student::del()//刪除函數(shù)</p><p><b>  {</b></p><p>  static char read_name[10]; //

98、定義靜態(tài)變量</p><p>  static char read_sex[3];</p><p>  static int read_ban;</p><p>  static int read_number;</p><p>  static char read_xibie[10];</p><p><b&g

99、t;  int n; </b></p><p>  int recsize=sizeof(read_name)+sizeof(read_sex)+sizeof(int)+sizeof(int)+sizeof(read_xibie); //一個(gè)人的信息的長度</p><p>  strcpy(name,""); //刪除用空字符和0來代表的,</p

100、><p>  strcpy(sex,"");</p><p><b>  ban=0;</b></p><p><b>  number=0;</b></p><p>  strcpy(xibie,"");</p><p>  fstrea

101、m file("student2.txt",ios::binary|ios::in); //二進(jìn)制打開文件。指針在文件頭</p><p>  cout<<endl<<"請(qǐng)輸入你要?jiǎng)h除第幾位學(xué)生的信息:";</p><p>  cin>>n;//輸入第幾個(gè)學(xué)生</p><p>  file.s

102、eekp((n-1)*recsize,ios::beg);//指向功能</p><p>  file.write(name,10);//把空字符寫入文件</p><p>  file.write(sex,3);</p><p>  file.write((char*)&ban,sizeof(int));</p><p>  file.

103、write((char*)&number,sizeof(int));</p><p>  file.write(xibie,10);</p><p>  file.close();</p><p>  cout<<endl<<"該學(xué)生刪除成功"<<endl<<endl; //提示</p

104、><p>  cout<<endl;</p><p><b>  }</b></p><p>  void student::change() //修改函數(shù)</p><p><b>  {</b></p><p>  static char read_name[1

105、0]; //定義靜態(tài)變量</p><p>  static char read_sex[3];</p><p>  static int read_year;</p><p>  static int read_number;</p><p>  static char read_xibie[10];</p><p>

106、<b>  int n;</b></p><p>  int recsize=sizeof(read_name)+sizeof(read_sex)+sizeof(int)+sizeof(int)+sizeof(read_xibie); //一個(gè)人的信息的長度</p><p>  fstream file("student.txt",ios::bin

107、ary|ios::in|ios::out); //二進(jìn)制打開文件。指針在文件頭</p><p>  cout<<endl<<"請(qǐng)輸入你要修改第幾位學(xué)生的信息:"; //定位的位置</p><p><b>  cin>>n;</b></p><p>  cout<<"

108、;輸入你要修改的信息:"<<endl;</p><p>  student a;//定義學(xué)生對(duì)象</p><p>  a.add(); //調(diào)用寫入函數(shù)</p><p>  file.seekp((n-1)*recsize,ios::beg);//指向功能</p><p>  file.write((char*)(&a

109、mp;a),sizeof(a));//寫入對(duì)象</p><p>  file.close();//關(guān)閉文件</p><p>  cout<<"該學(xué)生信息修改成功"<<endl;</p><p>  cout<<endl;</p><p><b>  }</b><

110、;/p><p>  void student::addban()</p><p><b>  {</b></p><p><b>  int c;</b></p><p>  student a;</p><p><b>  char b;</b></

111、p><p><b>  char y;</b></p><p>  cout<<"輸入你要建立的班級(jí)"<<endl;</p><p><b>  cin>>c;</b></p><p>  cout<<"輸入這個(gè)班的成員&qu

112、ot;<<endl;</p><p>  cout<<"繼續(xù),輸入y"<<endl;</p><p><b>  cin>>b;</b></p><p>  while(b=='y')</p><p><b>  {</b

113、></p><p><b>  a.add2();</b></p><p>  cout<<"繼續(xù)?輸入y"<<endl;</p><p><b>  cin>>b;</b></p><p><b>  }</b>&

114、lt;/p><p><b>  }</b></p><p>  void student::menue() </p><p><b>  {</b></p><p>  cout<<"1 添加學(xué)生信息 " <<endl;</p><p&g

115、t;  cout<<"2 修改學(xué)生信息 "<<endl;</p><p>  cout<<"3 刪除學(xué)生信息 "<<endl;</p><p>  cout<<"4 查詢學(xué)生信息 "<<endl;</p><p>  cout&l

116、t;<"5 新建班級(jí) "<<endl;</p><p>  cout<<"6 退出系統(tǒng) "<<endl;</p><p><b>  }</b></p><p>  void student::reader()</p><p

117、><b>  {</b></p><p>  cout<<"1 按姓名查詢"<<endl;</p><p>  cout<<"2 班級(jí)查詢"<<endl;</p><p>  cout<<"3 按學(xué)號(hào)查詢"<&

118、lt;endl;</p><p>  cout<<"4 退出 "<<endl;</p><p><b>  }</b></p><p><b>  類外函數(shù)的實(shí)現(xiàn)</b></p><p>  bool comp(char s1[],cha

119、r s2[]) //比較文件中字符和輸入的字符是否相同</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  while(s1[i]!='\0'&&s2[i]!='\0'&&s1[i]=

120、=s2[i])</p><p><b>  i++;</b></p><p>  if(s1[i]=='\0' &&s2[i]=='\0')</p><p><b>  return 1;</b></p><p><b>  else<

121、;/b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  /******************************************</p><p><b>  * </b><

122、/p><p>  * 測(cè)試主函數(shù)</p><p>  *******************************************/</p><p>  void main()</p><p><b>  {</b></p><p>  student a;</p>

123、<p>  int x1,x2;</p><p><b>  do</b></p><p><b>  {</b></p><p>  a.menue();//主菜單</p><p>  cout<<"請(qǐng)輸入操作號(hào):";</p><p&

124、gt;  cin>>x1;//輸入選項(xiàng)</p><p>  switch(x1)//主菜單選擇</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  a.add2 ();</p><p><b>

125、  break;</b></p><p><b>  case 2:</b></p><p>  a.change();</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>&

126、lt;b>  a.del();</b></p><p><b>  break;</b></p><p><b>  case 4:</b></p><p><b>  do</b></p><p><b>  { </b></p

127、><p>  a.reader();</p><p>  cout<<"請(qǐng)輸入操作號(hào):"<<endl;</p><p><b>  cin>>x2;</b></p><p>  switch(x2)</p><p><b>  {<

128、;/b></p><p><b>  case 1:</b></p><p>  a.searchname();</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  a.sear

129、chban();</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  a.searchnumber();</p><p><b>  break;</b></p><p><b&

130、gt;  }</b></p><p>  }while(x2!=4);break;</p><p><b>  case 5:</b></p><p>  a.addban();</p><p><b>  break;</b></p><p><b>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論