版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、成績 課程設(shè)計(jì)報(bào)告題 目 學(xué)籍管理系統(tǒng) 課 程 名 稱 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì) 院 部 名 稱 信息技術(shù)學(xué)院 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)(本)班 級 09計(jì)算機(jī)科學(xué)與技術(shù)(1) 學(xué) 生 姓 名 周浩 學(xué) 號 0905101005 課程設(shè)計(jì)地點(diǎn) a203 課程設(shè)計(jì)學(xué)時(shí) 20 指 導(dǎo) 教 師 李慧 金陵科技學(xué)院教務(wù)處制【注:根據(jù)課程設(shè)計(jì)大綱第四項(xiàng)具體要求撰寫課程設(shè)計(jì)報(bào)告】一 需求分析隨著計(jì)算機(jī)的發(fā)展,越來越多的學(xué)校有自己的學(xué)籍管理系統(tǒng)。這樣更方便數(shù)據(jù)的長期保存,更適用于數(shù)據(jù)的集中處理。通過這個(gè)簡單的學(xué)籍管理系統(tǒng),可以添加新成員的基本信息,通過其姓名,學(xué)號,班級等信息查詢這個(gè)人的基本信息??梢院芊奖?/p>
2、的進(jìn)行數(shù)據(jù)修改,以及數(shù)據(jù)刪除。本系統(tǒng)主要是通過二進(jìn)制的文件讀取,進(jìn)行輸入,輸出,以及修改,刪除等基本功能。一共涉及到兩個(gè)類,第一個(gè)類是person類,主要是成員數(shù)據(jù),只有一個(gè)添加數(shù)據(jù)的公有接口。主要是方便第2個(gè)類student對其的繼承,繼承它的所有成員函數(shù)及其成員數(shù)據(jù)。person 類的數(shù)據(jù)成員1 姓名2 性別系統(tǒng)功能包括:1 添加函數(shù)二 概要設(shè)計(jì)class personpublic: void add();protected:char name10;char sex3;這個(gè)類設(shè)計(jì)得很簡單,因?yàn)樗瑂tudent類的基本信息,通過公有繼承,直接應(yīng)用person類的成員函數(shù)及其變量。其中的數(shù)
3、據(jù)成員含義如下:用戶姓名:用name字符數(shù)組來表示,或者直接使用string類型的變量來存放用戶性別:用sex字符數(shù)組來表示,或者直接使用string類型的變量來存放為了對person類的信息進(jìn)行必要的操作,最主要是添加函數(shù):void add();/主要是輸入姓名,性別的基本信息。為了實(shí)現(xiàn)學(xué)生管理系統(tǒng)的基本功能,主要是通過建立一個(gè)student類的成員函數(shù)來實(shí)現(xiàn)它。所以每個(gè)student類的成員函數(shù)都非常重要,它直接影響要功能的實(shí)現(xiàn)。class student:public person/繼承 person 類public: void add();void add2();void addban
4、();void del();void change();void menue();void reader();void searchname();void searchban();void searchnumber();void disp();private:int number;char xibie10;int ban;/定義學(xué)號 系別 班級;其中數(shù)據(jù)成員的含義如下:number: 用來存放一個(gè)學(xué)生的學(xué)號。xibie:用來存放一個(gè)學(xué)生的系別。ban:用來存放一個(gè)學(xué)生的班級。其中的成員函數(shù)解釋如下:void add();/寫入函數(shù)void add2();/寫入函數(shù)void addban();/
5、增加班void del();/刪除函數(shù)void change();/改變函數(shù)void menue();/主菜單void reader();/次菜單void searchname();/查詢姓名void searchban();/查詢班級void searchnumber();/查詢學(xué)號void disp();/顯示類體外定義了一個(gè)比較函數(shù)bool comp(char s1,char s2);/比較兩個(gè)字符串相等 三 詳細(xì)設(shè)計(jì)person類的實(shí)現(xiàn)void add()/寫入函數(shù)cout請輸入姓名:name;cout請輸入性別:sex;student類的實(shí)現(xiàn)void student:disp()/顯
6、示cout姓名:name ;cout性別:sex ;cout班級:ban ;cout學(xué)號:number ;cout系別:xibieendl;void student:add()cout請輸入學(xué)生信息:endl;person:add();/寫入函數(shù)cout請輸入學(xué)號:number;/輸入學(xué)號cout請輸入系別:xibie;/輸入系別cout請輸入班級 ban;/輸入班級void student:add2()/寫入函數(shù)student a;a.add();fstream file(student.txt,ios:binary|ios:out|ios:app); /二進(jìn)制打開文件,指針指向文件尾fil
7、e.write(char*)&a,sizeof(a);/把類信息寫入文件file.close(); /關(guān)閉文件void student:searchname()/按姓名查詢coutname2;student a;fstream file(student.txt,ios:binary|ios:in);/二進(jìn)制打開文件,指針在文件頭file.read(char*)&a,sizeof(a); /讀取類信息while(!file.eof() /判斷文件指針是否到文件尾if(comp(,name2) /判斷輸入的字符是否與文件重點(diǎn)一樣a.disp(); /如一樣的話,顯示信息file.rea
8、d(char*)&a,sizeof(a);/如果指針沒到文件尾,繼續(xù)讀取file.close(); /關(guān)閉文件void student:searchban()/按班級查詢coutban2; /輸入年齡student a; /第一個(gè)學(xué)生類的對象fstream file(student.txt,ios:binary|ios:in); /二進(jìn)制打開文件。指針在文件頭file.read(char*)&a,sizeof(a); /讀取類信息while(!file.eof() /判斷指針是否在文件尾if(a.ban=ban2) /判斷輸入年齡是否與文件中的年齡一樣a.disp(); /如果一樣的話,顯示信
9、息file.read(char*)&a,sizeof(a); /如果指針沒到文件尾,繼續(xù)讀取file.close(); /關(guān)閉文件void student:searchnumber()/按學(xué)號查詢coutnumber2; /輸入學(xué)號student a; /第一個(gè)學(xué)生類的對象fstream file(student.txt,ios:binary|ios:in); /二進(jìn)制打開文件。指針在文件頭file.read(char*)&a,sizeof(a); /讀取類信息while(!file.eof() /判斷指針是否在文件尾if(a.number=number2) /判斷輸入的學(xué)號是否與文件中的一樣
10、a.disp(); /如一樣的話,顯示信息file.read(char*)&a,sizeof(a);/如果指針沒到文件尾,繼續(xù)讀取file.close(); /關(guān)閉文件void student:del()/刪除函數(shù) static char read_name10; /定義靜態(tài)變量 static char read_sex3; static int read_ban; static int read_number; static char read_xibie10; int n; int recsize=sizeof(read_name)+sizeof(read_sex)+sizeof(int)
11、+sizeof(int)+sizeof(read_xibie); /一個(gè)人的信息的長度strcpy(name,); /刪除用空字符和0來代表的,strcpy(sex,);ban=0; number=0;strcpy(xibie,); fstream file(student2.txt,ios:binary|ios:in); /二進(jìn)制打開文件。指針在文件頭coutendln;/輸入第幾個(gè)學(xué)生file.seekp(n-1)*recsize,ios:beg);/指向功能file.write(name,10);/把空字符寫入文件file.write(sex,3);file.write(char*)&b
12、an,sizeof(int);file.write(char*)&number,sizeof(int);file.write(xibie,10); file.close();coutendl該學(xué)生刪除成功endlendl; /提示coutendl;void student:change() /修改函數(shù)static char read_name10; /定義靜態(tài)變量 static char read_sex3; static int read_year; static int read_number; static char read_xibie10;int n;int recsize=size
13、of(read_name)+sizeof(read_sex)+sizeof(int)+sizeof(int)+sizeof(read_xibie); /一個(gè)人的信息的長度fstream file(student.txt,ios:binary|ios:in|ios:out); /二進(jìn)制打開文件。指針在文件頭coutendln;cout輸入你要修改的信息:endl;student a;/定義學(xué)生對象a.add(); /調(diào)用寫入函數(shù)file.seekp(n-1)*recsize,ios:beg);/指向功能file.write(char*)(&a),sizeof(a);/寫入對象file.close
14、();/關(guān)閉文件 cout該學(xué)生信息修改成功endl; coutendl;void student:addban()int c;student a;char b;char y;cout輸入你要建立的班級c;cout輸入這個(gè)班的成員endl;cout繼續(xù),輸入yb;while(b=y)a.add2(); cout繼續(xù)?輸入yb;void student:menue() cout1 添加學(xué)生信息 endl;cout2 修改學(xué)生信息 endl;cout3 刪除學(xué)生信息 endl;cout4 查詢學(xué)生信息 endl;cout5 新建班級 endl; cout6 退出系統(tǒng) endl;void stude
15、nt:reader()cout1 按姓名查詢endl;cout2 班級查詢endl;cout3 按學(xué)號查詢endl;cout4 退出 endl;類外函數(shù)的實(shí)現(xiàn)bool comp(char s1,char s2) /比較文件中字符和輸入的字符是否相同int i=0; while(s1i!=0&s2i!=0&s1i=s2i) i+; if(s1i=0 &s2i=0) return 1; else return 0;四 程序測試/* * 測試主函數(shù)*/ void main() student a;int x1,x2;doa.menue();/主菜單coutx1;/輸入選項(xiàng)switch(x1)/主菜單
16、選擇case 1:a.add2 ();break;case 2:a.change();break;case 3:a.del();break;case 4:do a.reader(); cout請輸入操作號:x2;switch(x2)case 1:a.searchname();break;case 2:a.searchban();break;case 3:a.searchnumber();break;while(x2!=4);break;case 5:a.addban();break;while(x1!=6);部分測試數(shù)據(jù)與運(yùn)行結(jié)果:五 個(gè)人體會通過這次課程設(shè)計(jì),我更加深刻的知道了我們學(xué)的c+和
17、我們的生活密切相連,所以更應(yīng)該注意平時(shí)上課各種小知識點(diǎn)的積累。然后上機(jī)具體操作的情況又與筆試有很大的不同,因?yàn)橥ㄟ^鍵盤操作,更容易出錯(cuò)。所以我們平時(shí)在學(xué)習(xí)的時(shí)候,就應(yīng)該做到邊學(xué)邊編,如果很久沒有接觸到c+的編譯環(huán)境,就會出現(xiàn)不知道從何如手。另外,程序的變化太大拉,它需要我們拓展課外知識,所以僅靠在課堂上的時(shí)間學(xué)好它是不現(xiàn)實(shí)的。有很多小的技巧,以及編程思想需要我們自己去領(lǐng)悟,這要求我們要有很好的自學(xué)能力。比如說這次變成如果沒有掌握好用2進(jìn)制的方式輸入文件的話,就很難編出能實(shí)現(xiàn)功能的程序編程最重要的是思路清晰,條理清楚,只有思路比較清楚的條件下,進(jìn)展才比較順利。并且,在編譯過程中遇到的錯(cuò)誤也要耐心
18、去修改,并且記住這相應(yīng)的錯(cuò)誤代碼,以便以后遇到相同的情況,知道怎么修正。六 參考資料軟件工程導(dǎo)論 第四版 清華大學(xué)出版 c#開發(fā)實(shí)戰(zhàn)寶典王小科 編著 清華大學(xué)出版社 c#開發(fā)大全劉麗霞 編著 清華大學(xué)出版數(shù)據(jù)庫系統(tǒng)概論 王珊 薩師煊 編著 浙江大學(xué)出版社c語言程序設(shè)計(jì)實(shí)例精粹譚明金、俞海英編著 電子工業(yè)出版社七 附件:源程序清單 學(xué)生學(xué)籍管理系統(tǒng)源程序清單void add()/寫入函數(shù)cout請輸入姓名:name;cout請輸入性別:sex;student類的實(shí)現(xiàn)void student:disp()/顯示cout姓名:name ;cout性別:sex ;cout班級:ban ;cout學(xué)號:
19、number ;cout系別:xibieendl;void student:add()cout請輸入學(xué)生信息:endl;person:add();/寫入函數(shù)cout請輸入學(xué)號:number;/輸入學(xué)號cout請輸入系別:xibie;/輸入系別cout請輸入班級 ban;/輸入班級void student:add2()/寫入函數(shù)student a;a.add();fstream file(student.txt,ios:binary|ios:out|ios:app); /二進(jìn)制打開文件,指針指向文件尾file.write(char*)&a,sizeof(a);/把類信息寫入文件file.clos
20、e(); /關(guān)閉文件void student:searchname()/按姓名查詢coutname2;student a;fstream file(student.txt,ios:binary|ios:in);/二進(jìn)制打開文件,指針在文件頭file.read(char*)&a,sizeof(a); /讀取類信息while(!file.eof() /判斷文件指針是否到文件尾if(comp(,name2) /判斷輸入的字符是否與文件重點(diǎn)一樣a.disp(); /如一樣的話,顯示信息file.read(char*)&a,sizeof(a);/如果指針沒到文件尾,繼續(xù)讀取file.clos
21、e(); /關(guān)閉文件void student:searchban()/按班級查詢coutban2; /輸入年齡student a; /第一個(gè)學(xué)生類的對象fstream file(student.txt,ios:binary|ios:in); /二進(jìn)制打開文件。指針在文件頭file.read(char*)&a,sizeof(a); /讀取類信息while(!file.eof() /判斷指針是否在文件尾if(a.ban=ban2) /判斷輸入年齡是否與文件中的年齡一樣a.disp(); /如果一樣的話,顯示信息file.read(char*)&a,sizeof(a); /如果指針沒到文件尾,繼續(xù)讀
22、取file.close(); /關(guān)閉文件void student:searchnumber()/按學(xué)號查詢coutnumber2; /輸入學(xué)號student a; /第一個(gè)學(xué)生類的對象fstream file(student.txt,ios:binary|ios:in); /二進(jìn)制打開文件。指針在文件頭file.read(char*)&a,sizeof(a); /讀取類信息while(!file.eof() /判斷指針是否在文件尾if(a.number=number2) /判斷輸入的學(xué)號是否與文件中的一樣a.disp(); /如一樣的話,顯示信息file.read(char*)&a,sizeo
23、f(a);/如果指針沒到文件尾,繼續(xù)讀取file.close(); /關(guān)閉文件void student:del()/刪除函數(shù) static char read_name10; /定義靜態(tài)變量 static char read_sex3; static int read_ban; static int read_number; static char read_xibie10; int n; int recsize=sizeof(read_name)+sizeof(read_sex)+sizeof(int)+sizeof(int)+sizeof(read_xibie); /一個(gè)人的信息的長度st
24、rcpy(name,); /刪除用空字符和0來代表的,strcpy(sex,);ban=0; number=0;strcpy(xibie,); fstream file(student2.txt,ios:binary|ios:in); /二進(jìn)制打開文件。指針在文件頭coutendln;/輸入第幾個(gè)學(xué)生file.seekp(n-1)*recsize,ios:beg);/指向功能file.write(name,10);/把空字符寫入文件file.write(sex,3);file.write(char*)&ban,sizeof(int);file.write(char*)&number,sizeo
25、f(int);file.write(xibie,10); file.close();coutendl該學(xué)生刪除成功endlendl; /提示coutendl;void student:change() /修改函數(shù)static char read_name10; /定義靜態(tài)變量 static char read_sex3; static int read_year; static int read_number; static char read_xibie10;int n;int recsize=sizeof(read_name)+sizeof(read_sex)+sizeof(int)+sizeof(int)+sizeof(read_xibie); /一個(gè)人的信息的長度fstream file(student.txt,ios:binary|ios:in|ios:out); /二進(jìn)制打開文件。指針在文件頭coutendln;cout輸入你要修改的信息:endl;student a;/定義學(xué)生對象a.add(); /調(diào)用寫入函數(shù)file.seekp(n-1)*recsize,ios:beg);/指向功能file.write(char*)(&a),sizeof(a);/寫入對象f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)游戲產(chǎn)業(yè)與虛擬社交娛樂融合研究-洞察分析
- 2025年浙教版九年級物理上冊月考試卷含答案
- 2025年冀少新版八年級化學(xué)下冊階段測試試卷
- 2025年滬科版九年級物理上冊階段測試試卷含答案
- 2025年滬科新版八年級科學(xué)下冊階段測試試卷含答案
- 2025年滬科版九年級地理下冊月考試卷
- 2025年上教版七年級生物下冊階段測試試卷含答案
- 2025年冀少新版八年級科學(xué)下冊階段測試試卷含答案
- 2025年度健康管理系統(tǒng)個(gè)人服務(wù)合同4篇
- 2025年浙教版九年級生物下冊月考試卷含答案
- 最終版 古城文化修復(fù)監(jiān)理大綱
- GB/T 43391-2023市場、民意和社會調(diào)查調(diào)查報(bào)告編制指南
- 拔罐技術(shù)操作考核評分標(biāo)準(zhǔn)
- 軟件無線電原理與應(yīng)用第3版 課件 第4-6章 軟件無線電硬件平臺設(shè)計(jì)、軟件無線電信號處理算法、信道編譯碼技術(shù)
- RB-T 099-2022 進(jìn)口食品供應(yīng)商評價(jià)技術(shù)規(guī)范
- 戒賭法律協(xié)議書范本
- (完整版)A4筆記本模板(可編輯修改word版)
- 競選市級三好學(xué)生PPT
- 2024屆甘肅省蘭州市五十一中生物高一上期末檢測模擬試題含解析
- (國家基本公共衛(wèi)生服務(wù)項(xiàng)目第三版)7高血壓患者健康管理服務(wù)規(guī)范
- 12 富起來到強(qiáng)起來 精神文明新風(fēng)尚(說課稿)-部編版道德與法治五年級下冊
評論
0/150
提交評論