版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 計(jì)算機(jī)科學(xué)與技術(shù)系</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 2012~2013 學(xué)年第1學(xué)期</p><p><b> 目錄</b></p><p> 一、緒言——需求分析…………………… </p&
2、gt;<p> 二、系統(tǒng)設(shè)計(jì) ……………………………</p><p> (一) 設(shè)計(jì)思想………………………… </p><p> (二) 源程序設(shè)計(jì)………………………… </p><p> ?。ㄈ?、設(shè)計(jì)表示……………………………</p><p> 三、系統(tǒng)調(diào)試 ………………………………</p>&l
3、t;p> 四、學(xué)生籍貫記錄薄使用說(shuō)明…………………</p><p> 五、 總結(jié) …………………………………… </p><p> 六、參考文獻(xiàn)……………………………………</p><p> 一、緒言——需求分析</p><p> 隨著學(xué)校辦學(xué)規(guī)模的不斷擴(kuò)大、辦學(xué)層次的 多樣化、在校生的不斷增多。開(kāi)發(fā)這系統(tǒng)可以是教務(wù)處老師減輕
4、工作壓力,比較系統(tǒng)的對(duì)學(xué)生進(jìn)行管理,加快速度、加強(qiáng)管理,使各項(xiàng)管理更加規(guī)范化 。</p><p> 題目要求設(shè)計(jì)一個(gè)學(xué)生籍貫信息記錄簿系統(tǒng),該系統(tǒng)要求對(duì)學(xué)生籍貫信息進(jìn)行管理和維護(hù)。</p><p><b> 要求為:</b></p><p> ?。?)創(chuàng)建信息鏈表并以磁盤(pán)文件保存;</p><p> ?。?)讀取磁盤(pán)
5、文件并顯示輸出所有學(xué)生的籍貫信息;</p><p> ?。?)按學(xué)號(hào)或姓名查詢(xún)其籍貫;</p><p> ?。?)按籍貫查詢(xún)并輸出該籍貫的所有學(xué)生;</p><p> ?。?)能添加、刪除和修改學(xué)生的籍貫信息(可選項(xiàng))。</p><p><b> 二、系統(tǒng)設(shè)計(jì)</b></p><p> ?。ㄒ唬?/p>
6、 設(shè)計(jì)思想:流程圖</p><p><b> ?。ǘ?、源程序設(shè)計(jì)</b></p><p> #include<stdio.h> ///宏定義函數(shù)</p><p> #include<stdlib.h> //串操作及內(nèi)存操作函數(shù)</p><p> #include&l
7、t;string.h> /////調(diào)用系統(tǒng)函數(shù)</p><p> typedef struct student ////定義新結(jié)構(gòu)體 student </p><p><b> {</b></p><p> char name[10]; /*定義姓名*/</p><p> int num;
8、 /*定義學(xué)號(hào)*/</p><p> char sex[10]; /*定義性別*/</p><p> int age; /*定義年齡*/</p><p> char location[10]; /*定義籍貫*/</p><p><b> }s;</b></p><p> void Fun
9、()</p><p><b> { </b></p><p> char ch1;/*定義字符*/</p><p> printf("繼續(xù)操作?\n\t——輸入Y繼續(xù)操作/N退出系統(tǒng)[不區(qū)分大小寫(xiě)]\n");</p><p> scanf("%s",&ch1);
10、 /*接收字符*/</p><p> switch(ch1) /*選擇結(jié)構(gòu)*/</p><p><b> {</b></p><p><b> case 'Y':</b></p><p><b> case 'y':</b>&l
11、t;/p><p><b> break;</b></p><p><b> case 'N':</b></p><p><b> case 'n':</b></p><p> printf("歡迎您再次使用。\n");&l
12、t;/p><p><b> exit(0);</b></p><p><b> default:</b></p><p> printf("輸入有誤!");</p><p> /*若輸入的字符不是“Y”或“y”或“N”或“n”,會(huì)提示輸入有誤*/</p>&
13、lt;p><b> }</b></p><p> system("cls"); /*清屏*/</p><p><b> }</b></p><p> void menu()</p><p><b> /*主函數(shù)菜單*/</b><
14、/p><p><b> {</b></p><p> /*按說(shuō)明鍵入數(shù)字并鍵入 enter后可查詢(xún)*/</p><p> printf("**********歡迎進(jìn)入學(xué)生籍貫信息記錄簿*************\n");</p><p> printf("1 --顯示所有信息\n&quo
15、t;); </p><p> printf("2 --按學(xué)號(hào)查詢(xún)\n"); </p><p> printf("3 --按姓名查詢(xún)\n"); </p><p> printf("4 --按籍貫查詢(xún)\n"); </p><p> printf("
16、5 --結(jié)束程序\n");</p><p> printf("***********請(qǐng)選擇您需進(jìn)行的選項(xiàng)************\n");</p><p><b> }</b></p><p><b> main()</b></p><p><b>
17、{</b></p><p> FILE *fp; /*定義文件型指針變量*/</p><p> s stu[100];</p><p> int i=0,n=0,m,num; /*定義變量*/</p><p> char name[10],location[20];</p><p>
18、 fp=fopen("information.txt","r+");/*打開(kāi)文件并讀取*/ </p><p> while(!feof(fp))</p><p><b> {</b></p><p> fscanf(fp,"%s%d%s%d%s",&stu[i].n
19、ame,&stu[i].num,&stu[i].sex,&stu[i].age,&stu[i].location); </p><p> /*讀取姓名,學(xué)號(hào)等信息*/</p><p><b> i++;</b></p><p><b> n++;</b></p>&
20、lt;p><b> }</b></p><p> L: menu();</p><p> printf("輸入序號(hào):"); </p><p> scanf("%d",&m); </p><p> system("cls");
21、 </p><p><b> switch(m)</b></p><p> /*選擇結(jié)構(gòu),選擇查詢(xún)方式或添加學(xué)生信息*/</p><p><b> {</b></p><p><b> case 1:</b></p><p> for(i=0;
22、i<n;i++) printf("%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].location);</p><p><b> Fun();</b></p><p> goto L; /*循環(huán)*/</p>&
23、lt;p><b> case 2:</b></p><p> K: printf("請(qǐng)輸入學(xué)號(hào):"); </p><p> scanf("%d",&num); </p><p> if(num>10) /*在 “information.txt”這
24、個(gè)文件中只有10位學(xué)生的信息,所以鍵入的數(shù)字不能超過(guò)10*/ </p><p><b> { </b></p><p> printf("警告:輸入錯(cuò)誤!請(qǐng)重新輸入:\n");</p><p> /*鍵入的數(shù)字超過(guò)10后所顯示的提示*/ </p><p> goto K
25、; </p><p><b> } </b></p><p> system("cls"); </p><p> for(i=0;i<n;i++)</p><p> /*依次查詢(xún)滿(mǎn)足的學(xué)生*/ </p><p> { if(stu[i
26、].num==num) </p><p> { printf("%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].location) </p><p><b> break;</b></p><p&
27、gt;<b> }</b></p><p><b> } </b></p><p><b> Fun();</b></p><p><b> goto L;</b></p><p> case 3: </p>&l
28、t;p> printf("請(qǐng)輸入需查詢(xún)的學(xué)生姓名\n"); </p><p> printf("若輸入錯(cuò)誤則無(wú)法查詢(xún)!\n:"); </p><p> scanf("%s",name); </p><p> system("cls"); </p
29、><p> for(i=0;i<n;i++)</p><p> /*依次查詢(xún)滿(mǎn)足的學(xué)生*/</p><p> { if(strcmp(stu[i].name,name)==0) </p><p> /*判斷字符串比較是否相等*/ </p><p> { printf(&quo
30、t;%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].location); </p><p><b> break;</b></p><p><b> }</b></p><p><b>
31、 }</b></p><p><b> Fun();</b></p><p><b> goto L;</b></p><p> case 4: </p><p> printf("請(qǐng)輸入籍貫\n"); </p><p>
32、printf("若輸入錯(cuò)誤則無(wú)法查詢(xún)!\n:"); scanf("%s",location);</p><p> system("cls"); </p><p> for(i=0;i<n;i++)</p><p> { if(strcmp(stu[i].location,loca
33、tion)==0)</p><p> /*判斷字符串比較是否相等*/ </p><p> { printf("%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].location); </p><p><b>
34、 }</b></p><p><b> }</b></p><p><b> Fun();</b></p><p><b> goto L;</b></p><p><b> case 5:</b></p><p&
35、gt; fp=fopen("information.txt","a+");</p><p> /*打開(kāi)文件并往里寫(xiě)入信息*/</p><p> printf("請(qǐng)輸入增加學(xué)生的人數(shù):");</p><p> scanf("%d",&n);</p><p
36、> printf("請(qǐng)輸入增加學(xué)生的姓名、學(xué)號(hào)、性別、年齡及籍貫:\n");</p><p> for(i=0;i<n;i++)</p><p> { scanf("%s%d%s%d%s",stu[i].name,&stu[i].num,stu[i].sex,&stu[i].age,stu[i].locati
37、on);/* 接收信息*/</p><p> fprintf(fp,"%s\t%d\t%s\t%d\t%s\n",stu[i].name,stu[i].num,stu[i].sex,stu[i].age,stu[i].location);/*打印信息*/</p><p><b> }</b></p><p><b&
38、gt; Fun();</b></p><p><b> goto L;</b></p><p> case 6: </p><p> exit(0); </p><p> default: </p><p> printf("輸入錯(cuò)誤,請(qǐng)重新輸入!
39、\n");</p><p> /*若輸入的數(shù)字不是1,2,3,4,5,6所提示的信息*/</p><p><b> goto L;</b></p><p><b> }</b></p><p><b> }</b></p><p>&l
40、t;b> (三)、設(shè)計(jì)表示</b></p><p> 2.3.1 進(jìn)入到界面</p><p> printf("*****************歡迎進(jìn)入學(xué)生籍貫信息記錄簿*******************\n");</p><p> 2.3.2選擇程序進(jìn)行管理</p><p> print
41、f("1 --顯示所有信息\n"); </p><p> printf("2 --按學(xué)號(hào)查詢(xún)\n"); </p><p> printf("3 --按姓名查詢(xún)\n"); </p><p> printf("4 --按籍貫查詢(xún)\n"); </p>
42、<p> printf("5 --結(jié)束程序\n");</p><p> 2.3.3對(duì)文件進(jìn)行讀取,并顯示學(xué)生的信息。</p><p><b> FILE *fp;</b></p><p> s stu[100];</p><p> int i=0,n=0,m,num;</
43、p><p> char name[10],location[20];</p><p> fp=fopen("information.txt","r+");</p><p> while(!feof(fp))</p><p> fscanf(fp,"%s%d%s%d%s",&
44、;stu[i].name,&stu[i].num,&stu[i].sex,&stu[i].age,&stu[i].location)</p><p><b> i++;</b></p><p><b> n++;</b></p><p><b> 2.3.4</b&g
45、t;</p><p> 后續(xù)程序?yàn)閟witch語(yǔ)句進(jìn)行選擇,選擇完畢后會(huì)提示是否繼續(xù),繼續(xù)則進(jìn)入到主菜單,否則退出系統(tǒng)。</p><p><b> 三、系統(tǒng)調(diào)試</b></p><p><b> 3.2調(diào)試程序</b></p><p> 3.1.1 顯示所有信息</p><
46、;p> 進(jìn)入系統(tǒng)后鍵入“1+enter”后即可顯示如下界面。</p><p> 選擇第一個(gè)選項(xiàng)后,系統(tǒng)將會(huì)讀取磁盤(pán)文件"information.txt" 中所保存的信息,并在顯示屏上顯示(如下圖),且會(huì)提示是繼續(xù)操作還是退出系統(tǒng)。</p><p> 3.1.2 按學(xué)號(hào)查詢(xún)</p><p> 系統(tǒng)會(huì)先提示:“請(qǐng)輸入學(xué)號(hào)”。</p
47、><p> 輸入學(xué)號(hào)(例如:3)后鍵入“enter”: </p><p> 隨后鍵入“Y”或“y”繼續(xù)運(yùn)行程序。</p><p> 3.1.3 按姓名查詢(xún)</p><p> 鍵入“enter”后,若磁盤(pán)文件中有你輸入的學(xué)生姓名,則該同學(xué)的信息會(huì)在顯示屏上顯示。</p><p> 如若無(wú)此學(xué)生則直接跳到繼續(xù)操作這一
48、項(xiàng)。</p><p> 3.1.4 按籍貫查詢(xún)</p><p> 若磁盤(pán)文件所有學(xué)生籍貫信息中有你所輸入的地點(diǎn)這會(huì)顯示所有這個(gè)地點(diǎn)的學(xué)生,若無(wú)此地點(diǎn)的學(xué)生則直接跳到繼續(xù)操作這一項(xiàng)。</p><p> 3.1.5 添加學(xué)生信息</p><p> 系統(tǒng)先會(huì)提示你要輸入的學(xué)生數(shù)目。</p><p> 接著會(huì)提示要依
49、次輸入那些信息:“請(qǐng)輸入增加學(xué)生的姓名、學(xué)號(hào)、性別、年齡及籍貫”。</p><p> 輸入的信息將會(huì)被寫(xiě)入“information.txt”文件中。如下圖:</p><p> 3.1.6 退出系統(tǒng)</p><p> 隨后任意鍵入一個(gè)鍵就結(jié)束程序。</p><p><b> 3.2調(diào)試小結(jié)</b></p>
50、;<p> 自己做的這個(gè)程序雖然簡(jiǎn)單,但過(guò)程中還是遇到了很多困難。例如對(duì)字符串的處理。開(kāi)始時(shí)總是無(wú)法顯示輸入的學(xué)生姓名,性別,籍貫這三項(xiàng)信息。后來(lái)通過(guò)自己看書(shū)和詢(xún)問(wèn)同學(xué),總算把字符串問(wèn)題處理得當(dāng)了。程序雖簡(jiǎn)單,調(diào)試過(guò)程中總是會(huì)出現(xiàn)這樣那樣很多錯(cuò)誤,例如:少分號(hào),未定義等等。有些錯(cuò)誤很簡(jiǎn)單,自己看一下就可以改出來(lái),但有些錯(cuò)誤怎么也修改不出來(lái),例如簡(jiǎn)單的少分號(hào),很多時(shí)候加了分號(hào)還是沒(méi)用!此時(shí)只有問(wèn)同學(xué)和請(qǐng)教老師。好在最后是完
51、成了這個(gè)程序。</p><p> 四、學(xué)生籍貫信息記錄簿的使用說(shuō)明</p><p> 進(jìn)入系統(tǒng)后按照提示輸入數(shù)字并鍵入enter即可實(shí)現(xiàn)你需要的操作。進(jìn)入后會(huì)有提示信息提示用戶(hù)應(yīng)該怎么做,按照提示輸入后再鍵入enter即可實(shí)現(xiàn)功能。</p><p> 本系統(tǒng)較為簡(jiǎn)單,使用時(shí)按照提示操作,輸入所提示的信息后按enter鍵即可。</p><p&
52、gt;<b> 五、總結(jié)</b></p><p> 通過(guò)這次課程設(shè)計(jì),使我們更加熟悉的掌握了Visual C++語(yǔ)言的運(yùn)用。幫助我們熟悉了更多Visual C++語(yǔ)言的功能,提高了我們的動(dòng)手能力,學(xué)到了許多解決實(shí)際問(wèn)題的寶貴經(jīng)驗(yàn).同時(shí)也挖掘出了我們潛在的能力,使我們對(duì)自己更有自信,對(duì)編程也更有興趣。我相信,只要努力、勤奮、堅(jiān)持不懈,就沒(méi)有什么做不到的事,不能還沒(méi)開(kāi)始就退縮,要勇于拼搏,敢
53、于創(chuàng)新?,F(xiàn)在知道自己還有很多的不足,而且,由于認(rèn)識(shí)的有限,無(wú)法去完善現(xiàn)在的程序,導(dǎo)致這個(gè)程序有很多功能還沒(méi)有實(shí)現(xiàn)。對(duì)此,自己以后還需要繼續(xù)學(xué)習(xí),把它完善。</p><p><b> 六、參考文獻(xiàn)</b></p><p> [1] 馬安鵬.Visual C++程序設(shè)計(jì)導(dǎo)學(xué)。北京:清華大學(xué)出版社,2002</p><p> [2] 譚浩強(qiáng),C
54、程序設(shè)計(jì)(第四版)</p><p> [2] 電子書(shū)籍. Visual C++技術(shù)內(nèi)幕(第四版).網(wǎng)址:http://www.5xsoft.com</p><p> [3] Beck Zaratian.Microsoft Visual Visual C++ 6.0程序員指南.希望圖書(shū)創(chuàng)作室譯.北京:北京希望電腦公司出品,1998</p><p> [4]Ric
55、hard C.Leinecker,Tom Archer. Visual C++ 6 寶典.張艷,張謙譯.北京:電子工業(yè)出版社,1999</p><p> [5] 李強(qiáng),賈云霞. Visual C++項(xiàng)目開(kāi)發(fā)實(shí)踐.北京:中國(guó)鐵道出版社,2004</p><p> [6] 鄭莉,董淵,張瑞豐.C++語(yǔ)言程序設(shè)計(jì).2003.</p><p> [7] H.M.Dei
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---學(xué)生籍貫信息記錄簿系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生籍貫信息記錄簿設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---學(xué)生籍貫信息記錄簿
- 學(xué)生籍貫信息記錄簿課程設(shè)計(jì)報(bào)告
- 學(xué)生籍貫信息記錄簿
- 基于c++的學(xué)生籍貫信息記錄簿設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)信息記錄簿的設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)記錄簿
- c語(yǔ)言課程設(shè)計(jì)成績(jī)記錄簿
- c語(yǔ)言課程設(shè)計(jì)成績(jī)記錄簿
- c學(xué)生成績(jī)記錄簿課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告成績(jī)記錄簿
- c語(yǔ)言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告成績(jī)記錄簿
- 成績(jī)記錄簿課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告-成績(jī)記錄簿
- 成績(jī)記錄簿課程設(shè)計(jì)
- 課程設(shè)計(jì)--- 成績(jī)記錄簿
- 課程設(shè)計(jì)---學(xué)生成績(jī)記錄簿設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告-學(xué)生籍貫信息記錄薄
- c++課程設(shè)計(jì)——學(xué)生籍貫信息記錄薄
評(píng)論
0/150
提交評(píng)論