新學(xué)生信息管理系統(tǒng)C語(yǔ)言課程設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
新學(xué)生信息管理系統(tǒng)C語(yǔ)言課程設(shè)計(jì)說(shuō)明書(shū)_第2頁(yè)
新學(xué)生信息管理系統(tǒng)C語(yǔ)言課程設(shè)計(jì)說(shuō)明書(shū)_第3頁(yè)
新學(xué)生信息管理系統(tǒng)C語(yǔ)言課程設(shè)計(jì)說(shuō)明書(shū)_第4頁(yè)
新學(xué)生信息管理系統(tǒng)C語(yǔ)言課程設(shè)計(jì)說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、*實(shí)踐教學(xué)* 蘭州理工大學(xué)軟件學(xué)院2013年秋季學(xué)期 計(jì)算機(jī)應(yīng)用基礎(chǔ) 課程設(shè)計(jì)題 目:學(xué)生信息管理系統(tǒng)專(zhuān)業(yè)班級(jí): 軟件1班 姓 名: 陳靜 學(xué) 號(hào): 13700146 指導(dǎo)教師: 任旭鵬 成 績(jī):_ 摘要 此次我們?cè)O(shè)計(jì)的是學(xué)生信息管理系統(tǒng),在程序中運(yùn)行學(xué)生信息創(chuàng)建模塊,列出模塊,刪除模塊,查找模塊,保存模塊等,在程序中用到了選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu),結(jié)構(gòu)體,數(shù)組,文件操作,自定義函數(shù)等。關(guān)鍵詞:結(jié)構(gòu)體;文件操作;數(shù)組; 循環(huán)結(jié)構(gòu);選擇結(jié)構(gòu);自定義函數(shù)目 錄1需求分析12總體設(shè)計(jì)12.1程序的總體設(shè)計(jì)12.2數(shù)據(jù)結(jié)構(gòu)23詳細(xì)設(shè)計(jì)43.1主控模塊設(shè)計(jì)43.2列出模塊54主要函數(shù)功能描述64.1 主函數(shù)m

2、ain()64.2列出函數(shù)print_list()75測(cè)試與調(diào)試86個(gè)人設(shè)計(jì)小結(jié)與心得體會(huì)11參考文獻(xiàn)11附件1 程序源代碼111需求分析(1)問(wèn)題根據(jù)需求,該系統(tǒng)所應(yīng)包含的信息有以下一些:息學(xué)生的基本信:學(xué)號(hào)、姓名、性別、QQ、電話(huà)根據(jù)需求,該系統(tǒng)所應(yīng)實(shí)現(xiàn)的功能有以下一些:各種基本數(shù)據(jù)的錄入。如:學(xué)生基本信息錄入。各種基本數(shù)據(jù)的修改。即:允許對(duì)已經(jīng)錄入的數(shù)據(jù)重新進(jìn)行編輯、修改。例如修改學(xué)生信息中張三的電話(huà)信息各種基本數(shù)據(jù)的刪除。例如將張三的信息從學(xué)生信息中刪除基于各種數(shù)據(jù)的查詢(xún)。例如輸入學(xué)號(hào)1,查詢(xún)學(xué)號(hào)為1的名字、性別、QQ和電話(huà)。各種基本信息的瀏覽。例如對(duì)保存的學(xué)生信息的瀏覽。(2)系統(tǒng)

3、采用C語(yǔ)言實(shí)現(xiàn),開(kāi)發(fā)環(huán)境為VC,可以運(yùn)行在操作系統(tǒng)windows98及以上皆可。(3)運(yùn)行要求 能不受限制的錄入學(xué)生信息。 界面友好,操作方便,例如刪除前需要提示用戶(hù)是否刪除。 容錯(cuò)性強(qiáng),例如數(shù)據(jù)導(dǎo)出時(shí),如果文件不存在需要提示用戶(hù)。2總體設(shè)計(jì)2.1程序的總體設(shè)計(jì)在系統(tǒng)設(shè)計(jì)方面需采用模塊化,把一個(gè)復(fù)雜的問(wèn)題簡(jiǎn)單化,化成幾個(gè)簡(jiǎn)單的模塊來(lái)處理,.但是在劃分的同時(shí)又必須要了解各自的功能,它們之間應(yīng)該有自己的獨(dú)立性,同時(shí)又存在相互的聯(lián)系.通訊記錄時(shí)以二進(jìn)制的形式進(jìn)行存儲(chǔ)和輸入,一般程序從整體到部分,先進(jìn)行整體概括,然后在逐步細(xì)化完善本系統(tǒng)由一個(gè)圖來(lái)表示為主菜單創(chuàng)建刪除列出保存插入查找修改退出圖1系統(tǒng)總圖

4、本通訊管理系統(tǒng)可以概括的劃分為以下幾大模塊:1 輸入創(chuàng)建模塊2 列出菜單模塊3 刪除數(shù)據(jù)模塊4 修改數(shù)據(jù)模塊5 查找數(shù)據(jù)模塊6 插入數(shù)據(jù)模塊7 保存數(shù)據(jù)模塊8 退出系統(tǒng)2.2數(shù)據(jù)結(jié)構(gòu)根據(jù)系統(tǒng)要求,系統(tǒng)中需要保存的數(shù)據(jù)學(xué)生的信息,其結(jié)構(gòu)如下:數(shù)據(jù)項(xiàng)名稱(chēng)數(shù)據(jù)項(xiàng)系統(tǒng)表示數(shù)據(jù)類(lèi)型數(shù)據(jù)長(zhǎng)度備注學(xué)生學(xué)號(hào)numint學(xué)生姓名namechar10學(xué)生QQqqchar10學(xué)生性別sexint學(xué)生電話(huà)phoneint 使用語(yǔ)言創(chuàng)建的結(jié)構(gòu)體如下:#include<stdio.h>#include<stdlib.h>#include<string.h>int num; /*學(xué)生學(xué)號(hào)

5、*/ char name10; /*學(xué)生姓名*/ char qq10; /*學(xué)生QQ*/ int sex; /*學(xué)生性別*/ int phone; /*學(xué)生電話(huà)*/ LIST;LIST L100;int main(void)void revise_list () /*自定義函數(shù)-修改數(shù)組*/void print_list() /*自定義函數(shù)-列出菜單*/void delete_list() /*自定義函數(shù)-刪除文件*/void insert_list() /*自定義函數(shù)-創(chuàng)建文件*/void find_list() /*自定義函數(shù)-查找文件*/ void into_list() /*自定義函數(shù)

6、-插入文件*/void save_list() /*自定義函數(shù)-保存文件*/3詳細(xì)設(shè)計(jì)3.1主控模塊設(shè)計(jì) 調(diào)用子函數(shù)結(jié)束創(chuàng)建修改刪除列出查找插入保存退出輸入選擇開(kāi)始密碼界面菜單界面控制整個(gè)程序的運(yùn)行,通過(guò)主函數(shù)模塊分別調(diào)用各個(gè)模塊,實(shí)現(xiàn)各項(xiàng)功能,流程如下圖 1 2 3 4 5 6 7 0圖2主模塊流程圖注釋1主控是用switch多分支選擇結(jié)構(gòu)來(lái)實(shí)現(xiàn)功能選擇3.2列出模塊列出模塊是通過(guò)循環(huán)結(jié)構(gòu)變化個(gè)個(gè)列出數(shù)組自定義數(shù)組Lkey信息 i+結(jié)束輸出一個(gè)記錄i<keyinti; i=0開(kāi)始 圖3列出模塊流程圖4主要函數(shù)功能描述4.1 主函數(shù)main()函數(shù)原型:#include<stdio

7、.h>#include<stdlib.h>#include<string.h>#define EXIT -1#define LEN sizeof(struct list)int key=0; /*stdlib-標(biāo)準(zhǔn)庫(kù)頭文件.sizeof-運(yùn)算符.string-字符串.typedef-定義類(lèi)型*/typedef struct list int num; /*學(xué)生學(xué)號(hào)*/ char name10; /*學(xué)生姓名*/ int qq; /*學(xué)生QQ*/ char sex10; /*學(xué)生性別*/ long int phone; /*學(xué)生電話(huà)*/ LIST;LIST L100

8、;int main(void) /*主函數(shù)*/ int choice,y; printf("ttt*學(xué)生信息管理系統(tǒng)*"); printf(" 請(qǐng)輸入密碼:"); scanf("%d",&y); if(y=123) do printf("nnnttt*學(xué)生信息管理系統(tǒng)*"); printf("ntttt*=*n"); printf(" tttt 1.*創(chuàng)建*n"); printf(" tttt 2.*列出*n"); printf(" tt

9、tt 3.*刪除*n"); printf(" tttt 4.*修改*n"); printf(" tttt 5.*查找*n"); printf(" tttt 6.*插入*n"); printf(" tttt 7.*保存*n"); printf(" tttt 0.*退出*n"); printf(" tttt 請(qǐng)選擇:"); scanf("%d",&choice); switch(choice) case 1:insert_list();bre

10、ak; case 2:print_list();break; case 3:delete_list();break; case 4:revise_list(); break; case 5:find_list();break; case 6:into_list();break; case 7:save_list();break; case 0:exit(0); default:printf("input againn"); while(1); else printf("密碼錯(cuò)誤!請(qǐng)重啟程序!"); fflush(stdin); getchar(); re

11、turn 0;功能描述:通過(guò)if選擇結(jié)構(gòu)實(shí)現(xiàn)加密正確輸入密碼后進(jìn)入主菜單,否則提示“密碼密碼錯(cuò)誤!請(qǐng)重啟程”進(jìn)入主菜單后用switch多分支選擇結(jié)構(gòu)來(lái)調(diào)用子函數(shù)來(lái)實(shí)現(xiàn)對(duì)學(xué)生信息的創(chuàng)建、修改、插入等。流程圖如圖2所示。4.2列出函數(shù)print_list()函數(shù)原型:void print_list() /*列出菜單*/ int i; for(i=0;i<key;i+) printf("學(xué)號(hào)t姓名tQQ號(hào) t性別t電話(huà)tn"); printf("%dt%st%d t%st%dn ",Li.num,L,Li.qq,Li.sex,Li.phone

12、); if(key=0) printf("the shuzu is NULL!n");功能描述:通過(guò)for循環(huán)結(jié)構(gòu)改變i的值調(diào)用Li保存的值逐個(gè)顯示。流程圖如圖3所示5測(cè)試與調(diào)試1主程序測(cè)試測(cè)試數(shù)據(jù):輸入密碼123圖4測(cè)試結(jié)果:程序運(yùn)行沒(méi)有錯(cuò)誤,如下 圖5菜單選項(xiàng)測(cè)試:輸入數(shù)據(jù)請(qǐng)選擇:1圖6測(cè)試結(jié)果:程序運(yùn)行沒(méi)有錯(cuò)誤,如下圖72列出測(cè)試測(cè)試數(shù)據(jù):輸入2,如下圖8測(cè)試結(jié)果程序運(yùn)行有錯(cuò)誤,如下 圖9錯(cuò)誤是性別、電話(huà)沒(méi)有對(duì)其修改后如下圖106個(gè)人設(shè)計(jì)小結(jié)與心得體會(huì)為期一個(gè)星期的C語(yǔ)言實(shí)訓(xùn)結(jié)束了,在這一個(gè)星期內(nèi)我的感觸頗深。因?yàn)樵趯?xiě)程序中實(shí)在是遇到了太多的困難了,這讓我意識(shí)到自己對(duì)

13、C語(yǔ)言知識(shí)的貧乏。我們只學(xué)會(huì)了簡(jiǎn)單的指針和函數(shù),這些應(yīng)付考試是絕對(duì)沒(méi)有問(wèn)題了的,然而應(yīng)用在實(shí)際的程序設(shè)計(jì)當(dāng)中卻是遠(yuǎn)遠(yuǎn)不夠的??上攵?,驗(yàn)收過(guò)程很不滿(mǎn)意,這讓我覺(jué)得很對(duì)不起老師的一番含辛茹苦。所以哪怕我的驗(yàn)收過(guò)程不是很理想都好,我交實(shí)訓(xùn)報(bào)告的時(shí)候也一定要把這個(gè)學(xué)生信息管理系統(tǒng)理解透徹!在整個(gè)編程過(guò)程中,我堅(jiān)持虛心的向同學(xué)請(qǐng)教問(wèn)題,同時(shí)自己也在網(wǎng)上查找各種信息,通過(guò)不斷地改正,我終于知道編好一個(gè)完美的程序是多么的不容易啊!同時(shí),在不斷的犯錯(cuò)中,我也了解了許多以前不知道的東西。做得不好的,也請(qǐng)老師多多見(jiàn)諒,以后我一定會(huì)好好改進(jìn)的!最后,衷心地多謝老師辛苦的指導(dǎo)!參考文獻(xiàn)【1】姜靈芝,余健. C語(yǔ)言課

14、程設(shè)計(jì)案例精編.北京:清華大學(xué)出版社,2008【2】王新,孫雷. C語(yǔ)言課程設(shè)計(jì).北京:清華大學(xué)出版社,2009【3】游洪躍、彭駿、譚斌.C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)與課程設(shè)計(jì)教程.北京:清華大學(xué)出版社,2011【4】王連相.C/C+程序設(shè)計(jì)上機(jī)指導(dǎo)與測(cè)試. 北京:中國(guó)鐵道出版社,2006【5】C語(yǔ)言函數(shù)手冊(cè),機(jī)械工業(yè)出版社,1999附件1 程序源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#define EXIT -1#define LEN sizeof(struct list)int key=0;

15、/*stdlib-標(biāo)準(zhǔn)庫(kù)頭文件.sizeof-運(yùn)算符.string-字符串.typedef-定義類(lèi)型*/typedef struct list int num; /*學(xué)生學(xué)號(hào)*/ char name10; /*學(xué)生姓名*/ int qq; /*學(xué)生QQ*/ char sex10; /*學(xué)生性別*/ long int phone; /*學(xué)生電話(huà)*/ LIST;LIST L100;void revise_list () /*修改數(shù)組(revise-修改)*/ int i,j,k; int num; char name10; int qq; char sex10; long int phone; p

16、rintf("請(qǐng)選擇修改項(xiàng)學(xué)號(hào)"); scanf("%d",&j); for(k=0;k<key;k+) if(j=Lk.num) break; printf("您要修改成為:"); printf("tt學(xué)號(hào)tt"); scanf("%d",&num); printf("tt姓名tt"); scanf("%s",name); printf("ttQQ號(hào)tt"); scanf("%d",&

17、qq); printf("tt性別tt"); scanf("%s",sex); printf("tt電話(huà)tt"); scanf("%d",&phone); Lk.num=num; strcpy(L,name); /*拷貝字符串*/ Lk.qq=qq; strcpy(Lk.sex,sex); Lk.phone=phone;void print_list() /*列出菜單*/ int i; for(i=0;i<key;i+) printf("學(xué)號(hào)t姓名tQQ號(hào) t性別t電話(huà)tn&qu

18、ot;); printf("%dt%st%d t%st%dn ",Li.num,L,Li.qq,Li.sex,Li.phone); if(key=0) printf("the shuzu is NULL!n");void delete_list() /*刪除文件*/ int i,j,k; printf("您要?jiǎng)h除的是:n"); scanf("%d",&j); for(k=0;k<key;k+) if(j=Lk.num) break; if(k>=key) printf("您

19、輸入的數(shù)據(jù)有誤,請(qǐng)重新輸入:"); for(i=k;i<key;i+) Li=Li+1; key-; void insert_list() /*創(chuàng)建文件*/ int num; char name10; int qq; char sex10; long int phone; printf("tt學(xué)號(hào)tt"); scanf("%d",&num); printf("tt姓名tt"); scanf("%s",name); printf("ttQQ號(hào)tt"); scanf(&quo

20、t;%d",&qq); printf("tt性別tt"); scanf("%s",sex); printf("tt電話(huà)tt"); scanf("%d",&phone); Lkey.num=num; strcpy(L,name); Lkey.qq=qq; strcpy(Lkey.sex,sex); Lkey.phone=phone; key+;void find_list() /*查找文件*/ int i,num; printf("請(qǐng)輸入你要查找的學(xué)號(hào):"

21、); scanf("%d",&num); for (i=0;i<key;i+) if(Li.num=num) printf("學(xué)號(hào)t姓名tQQ號(hào)t性別t電話(huà)tn"); printf("%dt%st%dt%st%dn ",Li.num,L,Li.qq,Li.sex,Li.phone); break; if(i>=key) printf("無(wú)此人信息,請(qǐng)重新選擇:"); void into_list() /*插入文件*/ int i,j,k; int num;char name10; i

22、nt qq; char sex10; long int phone; printf("ttt您要插入項(xiàng)是:t"); scanf("%d",&j); if (j>0&&j<=key) for(i=key;i>=j;i-) Li=Li-1; key+; printf("請(qǐng)輸入你要插入的內(nèi)容:n"); printf("tt學(xué)號(hào)tt"); scanf("%d",&num); printf("tt姓名tt"); scanf("

23、%s",name); printf("ttQQ號(hào)tt"); scanf("%d",&qq); printf("tt性別tt"); scanf("%s",sex); printf("tt電話(huà)tt"); scanf("%d",&phone); k=j-1; Lk.num=num; strcpy(L,name); Lk.qq=qq; strcpy(Lk.sex,sex); Lk.phone=phone; else printf("er

24、ror"); void save_list() /*保存文件*/ int i; FILE *fp; if(fp=fopen("file.txt","wb")=NULL) printf("不能打開(kāi)文件n"); return; for(i=0;i<key;i+) if(fwrite(&Li,LEN,1,fp)!=1); fclose(fp); int main(void) /*主函數(shù)*/ int choice,y; printf("ttt*學(xué)生信息管理系統(tǒng)*"); printf(" 請(qǐng)輸入密碼:"); scan

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論