版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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)具體要求撰寫(xiě)課程設(shè)計(jì)報(bào)告】</p><p><b> 一 需求分析</b></p><p> 隨著計(jì)算機(jī)的發(fā)展,
4、越來(lái)越多的學(xué)校有自己的學(xué)籍管理系統(tǒng)。這樣更方便數(shù)據(jù)的長(zhǎng)期保存,更適用于數(shù)據(jù)的集中處理。通過(guò)這個(gè)簡(jiǎn)單的學(xué)籍管理系統(tǒng),可以添加新成員的基本信息,通過(guò)其姓名,學(xué)號(hào),班級(jí)等信息查詢這個(gè)人的基本信息??梢院芊奖愕倪M(jìn)行數(shù)據(jù)修改,以及數(shù)據(jù)刪除。本系統(tǒng)主要是通過(guò)二進(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ì)得很簡(jiǎn)單,因?yàn)樗瑂tudent類的基本信息,通過(guò)公有繼承,直接應(yīng)用person類的成員函數(shù)及其變量。</p><p>
8、其中的數(shù)據(jù)成員含義如下:</p><p> 用戶姓名:用name字符數(shù)組來(lái)表示,或者直接使用string類型的變量來(lái)存放</p><p> 用戶性別:用sex字符數(shù)組來(lái)表示,或者直接使用string類型的變量來(lái)存放</p><p> 為了對(duì)person類的信息進(jìn)行必要的操作,最主要是添加函數(shù):</p><p> void add();
9、//主要是輸入姓名,性別的基本信息。</p><p> 為了實(shí)現(xiàn)學(xué)生管理系統(tǒng)的基本功能,主要是通過(guò)建立一個(gè)student類的成員函數(shù)來(lái)實(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: 用來(lái)存放一個(gè)學(xué)生的學(xué)號(hào)。</p><p> xibie:用來(lái)存放一個(gè)學(xué)生的系別。</p><p> ban:用來(lái)存放一個(gè)學(xué)生的班級(jí)。</p><p> 其中的成員函數(shù)解釋如下:</p><p> void add();//寫(xiě)入函數(shù)</p><p&
14、gt; void add2();//寫(xiě)入函數(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()//寫(xiě)入函數(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();//寫(xiě)入函數(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()//寫(xiě)入函數(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)制打開(kāi)文件,指針指向文件尾</p><p> file.write((
25、char*)&a,sizeof(a));//把類信息寫(xiě)入文件</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)制打開(kāi)文件,指針在文件頭</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));//如果指針沒(méi)到文件尾,繼續(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)制打開(kāi)文件。指針在文件頭</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、 //如果指針沒(méi)到文件尾,繼續(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)制打開(kāi)文件。指針在文件頭</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));//如果指針沒(méi)到文件尾,繼續(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è)人的信息的長(zhǎng)度</p><p> strcpy(name,""); //刪除用空字符和0來(lái)代表的,</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)制打開(kāi)文件。指針在文件頭</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);//把空字符寫(xiě)入文件</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è)人的信息的長(zhǎng)度</p><p> fstream file("student.txt",ios::binary|ios::in|ios::out); //二進(jìn)制打開(kāi)文件。指針在文件頭</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)用寫(xiě)入函數(shù)</p><p> file.seekp((n-1)*recsize,ios::beg);//指向功能</p><p> file.write((char*)(&a),sizeof(a));//寫(xiě)入對(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> 通過(guò)這次課程設(shè)計(jì),我更加深刻的知道了我們學(xué)的c++和我們的生活密切相連,所以更應(yīng)該注意平時(shí)上課各種小知識(shí)點(diǎn)的積累。然后上機(jī)具體操作的情況又與筆
73、試有很大的不同,因?yàn)橥ㄟ^(guò)鍵盤(pán)操作,更容易出錯(cuò)。所以我們平時(shí)在學(xué)習(xí)的時(shí)候,就應(yīng)該做到邊學(xué)邊編,如果很久沒(méi)有接觸到c++的編譯環(huán)境,就會(huì)出現(xiàn)不知道從何如手。</p><p> 另外,程序的變化太大拉,它需要我們拓展課外知識(shí),所以僅靠在課堂上的時(shí)間學(xué)好它是不現(xiàn)實(shí)的。有很多小的技巧,以及編程思想需要我們自己去領(lǐng)悟,這要求我們要有很好的自學(xué)能力。比如說(shuō)這次變成如果沒(méi)有掌握好用2進(jìn)制的方式輸入文件的話,就很難編出能實(shí)現(xiàn)功能
74、的程序</p><p> 編程最重要的是思路清晰,條理清楚,只有思路比較清楚的條件下,進(jìn)展才比較順利。并且,在編譯過(guò)程中遇到的錯(cuò)誤也要耐心去修改,并且記住這相應(yīng)的錯(cuò)誤代碼,以便以后遇到相同的情況,知道怎么修正。</p><p><b> 六 參考資料</b></p><p> 《軟件工程導(dǎo)論》 第四版 清華大學(xué)出版</p>
75、<p> 《C#開(kāi)發(fā)實(shí)戰(zhàn)寶典》王小科 編著 清華大學(xué)出版社</p><p> 《C#開(kāi)發(fā)大全》劉麗霞 編著 清華大學(xué)出版</p><p> 《數(shù)據(jù)庫(kù)系統(tǒng)概論》 王珊 薩師煊 編著 浙江大學(xué)出版社</p><p> 《C語(yǔ)言程序設(shè)計(jì)實(shí)例精粹》譚明金、俞海英編著 電子工業(yè)出版社</p><p> 七 附件:源程序清單&l
76、t;/p><p> 學(xué)生學(xué)籍管理系統(tǒng)源程序清單</p><p> void add()//寫(xiě)入函數(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();//寫(xiě)入函數(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()//寫(xiě)入函數(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)制打開(kāi)文件,指針指向文件尾</p><p> file.write((char*)&a,sizeof(a));//把類信息寫(xiě)入文件</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)制打開(kāi)文件,指針在文件頭</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));//如果指針沒(méi)到文件尾,繼續(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)制打開(kāi)文件。指針在文件頭</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)); //如果指針沒(méi)到文件尾,繼續(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)制打開(kāi)文件。指針在文件頭</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));//如果指針沒(méi)到文件尾,繼續(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è)人的信息的長(zhǎng)度</p><p> strcpy(name,""); //刪除用空字符和0來(lái)代表的,</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)制打開(kāi)文件。指針在文件頭</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);//把空字符寫(xiě)入文件</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è)人的信息的長(zhǎng)度</p><p> fstream file("student.txt",ios::bin
107、ary|ios::in|ios::out); //二進(jìn)制打開(kāi)文件。指針在文件頭</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)用寫(xiě)入函數(shù)</p><p> file.seekp((n-1)*recsize,ios::beg);//指向功能</p><p> file.write((char*)(&a
109、mp;a),sizeof(a));//寫(xiě)入對(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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--學(xué)籍管理系統(tǒng)
- 學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- mis課程設(shè)計(jì)報(bào)告---學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)籍管理系統(tǒng) 課程設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告-- 學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍管理系統(tǒng)c課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)---學(xué)籍管理系統(tǒng)
- uml課程設(shè)計(jì)-學(xué)籍管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告(學(xué)生學(xué)籍管理系統(tǒng))
- c++課程設(shè)計(jì)報(bào)告(學(xué)生學(xué)籍管理系統(tǒng))
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)籍管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告--學(xué)籍管理系統(tǒng)設(shè)計(jì)
- java課程設(shè)計(jì)學(xué)籍管理系統(tǒng)
- java課程設(shè)計(jì)-學(xué)籍管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論