學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁
學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁
學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁
學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁
學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論