版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)說明書</b></p><p> 題 目: 校友錄管理系統(tǒng)</p><p><b> 學(xué)生姓名: </b></p><p> 學(xué) 院: 信息工程學(xué)院</p><p> 班 級(jí): 計(jì)09-2</p><p><b&
2、gt; 指導(dǎo)教師: </b></p><p> 2011 年 7 月 8 日</p><p><b> 目錄</b></p><p> 內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計(jì)(論文)任務(wù)書- 2 -</p><p> 第一章 總體功能介紹- 3 -</p><p> 1.1 功能介
3、紹- 3 -</p><p> 1.2 類的設(shè)計(jì)- 4 -</p><p> 第二章 各功能模塊的具體實(shí)現(xiàn)- 6 -</p><p> 2.1 維護(hù)同學(xué)錄內(nèi)同學(xué)信息:- 6 -</p><p> 2.2 維護(hù)同學(xué)錄- 9 -</p><p> 2.3對(duì)同學(xué)錄內(nèi)信息的操作菜單- 12 -</p
4、><p> 2.4歡迎界面功能實(shí)現(xiàn)- 14 -</p><p> 第三章 調(diào)試及運(yùn)行結(jié)果- 17 -</p><p> 第四章 總結(jié)- 21 -</p><p> 參考文獻(xiàn)- 22 -</p><p> 課程設(shè)計(jì)(論文)任務(wù)書</p><p> 課程名稱: 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)
5、計(jì) 學(xué)院: 信息工程學(xué)院 班級(jí): </p><p> 學(xué)生姓名: ___ 學(xué)號(hào): _ </p><p> 指導(dǎo)教師: </p><p> 第一章 總體功能介紹</p><p><b> 1.1 功能介紹</b></p>
6、<p> 校友錄管理系統(tǒng):實(shí)現(xiàn)對(duì)同學(xué)錄及同學(xué)基本信息的插入、查找、刪除及修改等功能。系統(tǒng)結(jié)構(gòu)如下圖:</p><p> 校友錄管理系統(tǒng)結(jié)構(gòu)框架圖</p><p> 系統(tǒng)的管理(維護(hù))內(nèi)容</p><p> 由上圖可以看出,本系統(tǒng)是由同學(xué)錄及同學(xué)信息兩層內(nèi)容構(gòu)成,校友錄可包含多個(gè)同學(xué)錄,同學(xué)錄內(nèi)可包含多個(gè)同學(xué)信息;這樣的結(jié)構(gòu)在現(xiàn)實(shí)應(yīng)用當(dāng)中可便于查
7、找及分類。</p><p> 本系統(tǒng)的功能主要是對(duì)校友錄及同學(xué)錄進(jìn)行維護(hù),即實(shí)現(xiàn)對(duì)同學(xué)錄的新增、查找、刪除、修改,也可實(shí)現(xiàn)對(duì)同學(xué)錄內(nèi)同學(xué)信息的插入、刪除、查找和修改。并將修改完成的內(nèi)容保存在文件中。</p><p><b> 1.2 類的設(shè)計(jì)</b></p><p> 本程序包含3個(gè)類;分別是student類、record類、txl類。&
8、lt;/p><p><b> 具體作用:</b></p><p> student類,包含每個(gè)同學(xué)的信息,為record類的節(jié)點(diǎn)。</p><p><b> UML圖:</b></p><p> record類,維護(hù)同學(xué)錄中同學(xué)的信息(本質(zhì)是鏈表,以同學(xué)信息student類為節(jié)點(diǎn)),</p
9、><p> 其主要功能有 插入,刪除,查找,保存,讀取,student類的信息。</p><p><b> UML圖:</b></p><p> txl類,主要維護(hù)各個(gè)同學(xué)錄(本質(zhì)是一個(gè)鏈表,以record類為節(jié)點(diǎn)),其主要功能有 插入,刪除,查找,保存,讀取,student類的信息。</p><p><b>
10、; UML圖:</b></p><p> 第二章 各功能模塊的具體實(shí)現(xiàn)</p><p> 2.1 維護(hù)同學(xué)錄內(nèi)同學(xué)信息:</p><p> class record</p><p><b> {</b></p><p><b> public:</b>
11、</p><p> student stu[Max];</p><p> char path_name[Maxp];</p><p><b> int top;</b></p><p> record(char str[] = "student.txt")</p><p&g
12、t;<b> {</b></p><p> strcpy(path_name,str);</p><p> /////path_name=str;</p><p><b> top = -1;</b></p><p><b> }</b></p><
13、;p> int findbyName(string str_Name)</p><p><b> {</b></p><p> for(int i = 0;i<=top;i++)</p><p><b> {</b></p><p> if(-2==stu[i].info.nu
14、m) continue;</p><p> if (str_Name==stu[i].info.name) </p><p><b> {</b></p><p><b> return i;</b></p><p><b> }</b></p><
15、p><b> }</b></p><p> return -1;</p><p><b> }</b></p><p> int deletebynum(int num)</p><p><b> {</b></p><p> stu[
16、num].info.num=-2;//表示刪除</p><p><b> return 1;</b></p><p><b> }</b></p><p> int insert(student& s)</p><p><b> {</b></p>
17、<p> //如果還沒有存在則插入</p><p><b> top++;</b></p><p> s.info.num=top;</p><p> stu[top] = s;</p><p><b> return 1;</b></p><p>&l
18、t;b> }</b></p><p> int clear()</p><p><b> {</b></p><p><b> top = -1;</b></p><p><b> return 1;</b></p><p>
19、<b> }</b></p><p> int save()</p><p><b> {</b></p><p> fstream file(path_name,ios::out);</p><p><b> if(!file)</b></p><
20、;p><b> {</b></p><p> cout<<"錯(cuò)誤??!";</p><p><b> return 0;</b></p><p><b> }</b></p><p> for(int i=0;i<=top;i
21、++)</p><p><b> {</b></p><p> if(-2==stu[i].info.num) continue;</p><p> file.write((char*)&stu[i],sizeof(stu[i]));</p><p><b> }</b><
22、/p><p> file.close();</p><p><b> return 1;</b></p><p><b> }</b></p><p> int load()</p><p><b> {</b></p><p&
23、gt;<b> top = -1;</b></p><p> fstream file(path_name,ios::in);</p><p> if (!file) </p><p><b> {</b></p><p> cout<<"錯(cuò)誤??!"<
24、<endl;</p><p><b> return 0;</b></p><p><b> }</b></p><p> student s;</p><p> int temp = file.tellg();</p><p> file.seekg(0,i
25、os::end);</p><p> int filelong = file.tellg();</p><p> file.seekg(temp);</p><p> while(file.tellg()<filelong) </p><p><b> {</b></p><p>
26、 memset(&s,0,sizeof(s));</p><p> file.read((char*)&s,sizeof(s));</p><p><b> top++;</b></p><p> s.info.num = top;</p><p> stu[top] = s;</p>
27、<p><b> }</b></p><p> file.close();</p><p><b> return 1;</b></p><p><b> }</b></p><p> int display()</p><p>
28、<b> {</b></p><p> if (top<0) </p><p><b> {</b></p><p> cout<<"無"<<endl;</p><p><b> return 0;</b></p
29、><p><b> }</b></p><p> cout<<setiosflags(ios::left)<<setw(7)<<"NO."</p><p> <<setw(7)<<"名字"</p><p> <&
30、lt;setw(7)<<"電話"</p><p> <<setw(7)<<"班級(jí)"</p><p> <<setw(7)<<"地址"</p><p> <<setw(7)<<"性別"</p&g
31、t;<p> <<setw(7)<<"屆"</p><p> <<setw(7)<<"學(xué)院"</p><p> <<setw(7)<<"年齡"</p><p><b> <<endl;<
32、/b></p><p> for(int i = 0;i<=top;i++)</p><p><b> {</b></p><p> stu[i].display();</p><p><b> }</b></p><p><b> retur
33、n 1;</b></p><p><b> }</b></p><p><b> };</b></p><p><b> 2.2 維護(hù)同學(xué)錄</b></p><p><b> class txl</b></p><p
34、><b> {</b></p><p><b> public:</b></p><p> rcdname rn[Max];</p><p><b> int top;</b></p><p><b> txl()</b></p>
35、;<p><b> {</b></p><p><b> top = -1;</b></p><p><b> }</b></p><p> int insert(rcdname& s)</p><p><b> {</b>
36、</p><p> //如果還沒有存在則插入</p><p><b> top++;</b></p><p> s.num=top;</p><p> rn[top] = s;</p><p><b> return 1;</b></p><p&
37、gt;<b> }</b></p><p> int clear()</p><p><b> {</b></p><p><b> top = -1;</b></p><p><b> return 1;</b></p><
38、p><b> }</b></p><p> int save()</p><p><b> {</b></p><p> fstream file("txl.txt",ios::out);</p><p><b> if(!file)</b>
39、</p><p><b> {</b></p><p> cout<<"錯(cuò)誤??!";</p><p><b> return 0;</b></p><p><b> }</b></p><p> for(int
40、i=0;i<=top;i++)</p><p><b> {</b></p><p> if(-2==rn[i].num) continue;</p><p> file.write((char*)&rn[i],sizeof(rn[i]));</p><p><b> }</b&
41、gt;</p><p> file.close();</p><p><b> return 1;</b></p><p><b> }</b></p><p> int load()</p><p><b> {</b></p>
42、<p><b> top = -1;</b></p><p> fstream file("txl.txt",ios::in);</p><p> if (!file) </p><p><b> {</b></p><p> cout<<&qu
43、ot;錯(cuò)誤?。?quot;<<endl;</p><p><b> return 0;</b></p><p><b> }</b></p><p> rcdname r;</p><p> int temp = file.tellg();</p><p>
44、; file.seekg(0,ios::end);</p><p> int filelong = file.tellg();</p><p> file.seekg(temp);</p><p> while(file.tellg()<filelong) </p><p><b> {</b></
45、p><p> memset(&r,0,sizeof(r));</p><p> file.read((char*)&r,sizeof(r));</p><p><b> top++;</b></p><p> r.num = top;</p><p> rn[top] = r
46、;</p><p><b> }</b></p><p> file.close();</p><p><b> return 1;</b></p><p><b> }</b></p><p> int display()</p>
47、<p><b> {</b></p><p> if (top<0) </p><p><b> {</b></p><p> cout<<"無"<<endl;</p><p><b> return 0;</
48、b></p><p><b> }</b></p><p> cout<<setiosflags(ios::left)<<setw(7)<<"NO."<<setw(10)<<"已有同學(xué)錄名稱"<<endl;</p><p>
49、 for(int i = 0;i<=top;i++)</p><p><b> {</b></p><p> cout<<setiosflags(ios::left)<<setw(7)<<rn[i].num+1<<setw(10)<<rn[i].name<<endl;</p>
50、;<p><b> }</b></p><p><b> return 1;</b></p><p><b> }</b></p><p><b> };</b></p><p> 2.3對(duì)同學(xué)錄內(nèi)信息的操作菜單</p>
51、<p> void welcome(record& rcd)</p><p> { </p><p> char choice;</p><p><b> int num;</b></p><p> string str_Name;&
52、lt;/p><p> StInfo s1;</p><p> student stu1;</p><p><b> do</b></p><p><b> { </b></p><p> string path = rcd.path_name;///////
53、/////////////////</p><p> cout <<endl<<endl<<"\t\t\t\t"<<path<<"同學(xué)錄\n\n\n";</p><p> cout <<"\t\t\t1顯示\n\n\t\t\t2新增\n\n\t\t\t3查找\
54、n\n\t\t\t4刪除 \n\n\t\t\t0離開"<<endl;</p><p> cin >> choice;</p><p> switch (choice)</p><p><b> {</b></p><p><b> case '1':
55、</b></p><p> rcd.load();</p><p> rcd.display();</p><p><b> break;</b></p><p><b> case '2':</b></p><p> cout<&
56、lt;"同學(xué)的姓名:\t"<<endl;</p><p> cin>>s1.name;</p><p> cout<<"同學(xué)的電話:\t";</p><p> cin>>s1.tel;</p><p> cout<<"同學(xué)的班
57、級(jí):\t";</p><p> cin>>s1.banji;</p><p> cout<<"同學(xué)的住址:\t";</p><p> cin>>s1.addrs;</p><p> cout<<"同學(xué)的性別:\t";</p>
58、<p> cin>>s1.sex;</p><p> cout<<"同學(xué)的年齡:\t";</p><p> cin>>s1.year;</p><p> cout<<"同學(xué)的學(xué)院:\t";</p><p> cin>>s1
59、.xueyuan;</p><p> cout<<"同學(xué)的屆級(jí):\t";</p><p> cin>>s1.jie;</p><p> stu1.add(s1);</p><p> rcd.insert(stu1);</p><p> rcd.save();<
60、/p><p><b> break;</b></p><p><b> case '3':</b></p><p> cout<<"輸入同學(xué)的名字:\t";</p><p> cin>>str_Name;</p><
61、p> num = rcd.findbyName(str_Name);</p><p> if(-1!=num)</p><p><b> {</b></p><p> cout<<setiosflags(ios::left)</p><p> <<setw(7)<<&q
62、uot;NO."</p><p> <<setw(7)<<"姓名"</p><p> <<setw(7)<<"電話"</p><p> <<setw(7)<<"班級(jí)"</p><p> <
63、<setw(7)<<"地址"</p><p> <<setw(7)<<"性別"</p><p> <<setw(7)<<"年齡"</p><p> <<setw(7)<<"學(xué)院"</p&
64、gt;<p> <<setw(7)<<"屆級(jí)"</p><p><b> <<endl;</b></p><p> rcd.stu[num].display();</p><p><b> break;</b></p><p&
65、gt;<b> }</b></p><p> cout<<"沒有要找的人!!!"<<endl;</p><p><b> break;</b></p><p><b> case '4':</b></p><p&g
66、t; cout<<"輸入同學(xué)的姓名:\t";</p><p> cin>>str_Name;</p><p> num = rcd.findbyName(str_Name);</p><p> if(-1!=num)</p><p><b> {</b></p&
67、gt;<p> rcd.stu[num].display();</p><p> rcd.deletebynum(num);</p><p> rcd.save();</p><p><b> break;</b></p><p><b> }</b></p>
68、<p> cout<<"沒有要找的人!!!"<<endl;</p><p><b> break;</b></p><p> default:cout<<"請(qǐng)從新輸入:\n";</p><p><b> }</b></p&g
69、t;<p> }while(choice!='0');</p><p><b> }</b></p><p> 2.4歡迎界面功能實(shí)現(xiàn)</p><p> void first_menu()</p><p> {//校友錄目錄的管理界面(增加或刪除某個(gè)同學(xué)錄)</p>
70、<p> cout <<"********************************************************************************"<<endl;</p><p> cout <<endl<<"\t\t\t\t校友錄管理系統(tǒng)\n\n\n";</p>
71、;<p> rcdname r;</p><p><b> txl t1;</b></p><p> t1.load();</p><p> char name[Maxp];</p><p> char choice;</p><p><b> int num;
72、</b></p><p><b> do</b></p><p> { cout <<"********************************************************************************"<<endl;</p><p>
73、 cout <<"\n\n\t\t\t1顯示已有同學(xué)錄\n\n\t\t\t2進(jìn)入編輯菜單\n\n\t\t\t3新增同學(xué)錄\n\n\t\t\t4刪除同學(xué)錄\n\n\t\t\t0離\t開\n\n"<<endl;</p><p> cout <<"***********************************************
74、*********************************"<<endl;</p><p> cin >> choice;</p><p> switch(choice) </p><p><b> {</b></p><p> case '0':brea
75、k;</p><p><b> case '1':</b></p><p> t1.display();</p><p> cout <<"********************************************************************************&
76、quot;<<endl;</p><p><b> case '2':</b></p><p> second_menu();</p><p> cout <<"****************************************************************
77、****************"<<endl;</p><p><b> break;</b></p><p><b> case '3':</b></p><p> cout<<"輸入同學(xué)錄名稱:\t";</p><p>
78、; cin>>name;</p><p> strcpy(r.name,name);</p><p> t1.insert(r);</p><p> t1.save();</p><p> t1.load();</p><p> t1.display();</p><p>
79、; cout <<"********************************************************************************"<<endl;</p><p><b> break;</b></p><p><b> case '4':&l
80、t;/b></p><p> t1.display();</p><p> cout<<"輸入同學(xué)錄名稱前的序號(hào):\t";</p><p><b> cin>>num;</b></p><p><b> num--;</b></p>
81、;<p> for(;num<=t1.top;num++)</p><p><b> {</b></p><p> strcpy(t1.rn[num].name,t1.rn[num+1].name);</p><p><b> }</b></p><p><b>
82、; t1.top--;</b></p><p> t1.save();</p><p><b> break;</b></p><p><b> default:</b></p><p> cout<<"輸入有誤,重新輸入或輸入't'退出&
83、quot;<<endl;</p><p> cin.get();</p><p> cout <<"********************************************************************************"<<endl;</p><p><b&g
84、t; break;</b></p><p><b> }</b></p><p> }while('t'!=choice);</p><p><b> }</b></p><p> 第三章 調(diào)試及運(yùn)行結(jié)果</p><p><b&g
85、t; 運(yùn)行結(jié)果如下:</b></p><p><b> 主界面</b></p><p> 顯示已存入的幾個(gè)同學(xué)錄</p><p> 打開了ji09-2這個(gè)同學(xué)錄</p><p> 顯示這個(gè)同學(xué)錄內(nèi)同學(xué)的信息可選擇繼續(xù)操作或返回上一層</p><p> 按姓名查找 找到了wr
86、y2這個(gè)同學(xué)并顯示信息</p><p> 按姓名刪除,刪除了wry1這個(gè)人的信息同學(xué)錄里面僅剩余wry2的信息(顯示)</p><p> 返回主菜單對(duì)同學(xué)錄進(jìn)行操作 按序號(hào)刪除了ji09-4這個(gè)同學(xué)錄</p><p> 像同學(xué)錄目錄中添加了一個(gè)新同學(xué)錄ji09-5并顯示</p><p><b> 第四章 總結(jié)</b&g
87、t;</p><p> 這次為期一周的課程設(shè)計(jì)結(jié)束了,還是頗有心得的。作為一個(gè)計(jì)算機(jī)專業(yè)學(xué)生運(yùn)用面向?qū)ο蟮姆椒ň幊淌俏覀兊囊豁?xiàng)基本技能。這次編寫了一個(gè)校友錄管理系統(tǒng),學(xué)到了很多東西。感覺自己最大的收獲就是將面向?qū)ο蠓椒ㄖ械念惻c數(shù)據(jù)結(jié)構(gòu)中的鏈表結(jié)合在了一起應(yīng)用。我在看到題目的時(shí)候就想一個(gè)類不夠用,但是類多了又想不出怎么樣能夠把類與類之間聯(lián)系起來,后來在同學(xué)的提示下決定用鏈表的方法,以類作為節(jié)點(diǎn)建立一個(gè)鏈表。在編寫
88、程序的時(shí)候我遇到的最大問題就是類太多而且定義的特別亂,自己定義的東西自己都記不住了,于是我想到了結(jié)構(gòu)體,將一些標(biāo)注屬性的變量全部放在結(jié)構(gòu)體當(dāng)中,這樣條理就清晰多了,自己不至于弄混亂??傊?,這次收獲很大,也為能做出這么一個(gè)程序挺有成就感的。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]《C++語言程序設(shè)計(jì)(第四版)》,鄭莉,清華大學(xué)出版社,2
溫馨提示
- 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. 眾賞文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校友錄管理系統(tǒng)課程設(shè)計(jì)
- 【課程設(shè)計(jì)】面向?qū)ο蟪绦蛟O(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- java面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)程序設(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 《面向?qū)ο蟮某绦蛟O(shè)計(jì)》課程設(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)--火車訂票系統(tǒng)
- c面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)-人事管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)--圖書管理系統(tǒng)的設(shè)計(jì)
- 課程設(shè)計(jì)--校友錄數(shù)碼相冊(cè)網(wǎng)
- java課程設(shè)計(jì)--java面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)---java日歷
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)java日歷
- 面向?qū)ο蟪绦蛟O(shè)計(jì)學(xué)生選課系統(tǒng)課程設(shè)計(jì)報(bào)告
- 面向?qū)ο蟮某绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告
- c++面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告---學(xué)籍管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)報(bào)告---書店圖書管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論