




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)報(bào)告一、問題陳述及其需求分析(一)問題陳述學(xué)生信息管理系統(tǒng)是對學(xué)生信息的基本管理,其中包括以下及模塊:(1) 增加一個學(xué)生的信息(需輸入要增加學(xué)生的所有信息);(2)統(tǒng)計(jì)本班學(xué)生總?cè)藬?shù)及男女生人數(shù)。(3)分別按照學(xué)號查找學(xué)生的信息;若找到則輸出該學(xué)生全部信息,否則輸出 查找不到的提示信息。(4)按學(xué)號對所有學(xué)生信息排序,并輸出結(jié)果;(5)刪除一個學(xué)生的信息(需指定要刪除學(xué)生的學(xué)號);同時顯示刪除后的結(jié)果(二)功能需求分析學(xué)生信息管理系統(tǒng)設(shè)計(jì)學(xué)生信息包括:學(xué)號,姓名,性別,出生年月,電話使之提供以下功能:1、 系統(tǒng)以菜單方式工作2、建立鏈表并顯示3、插入新的學(xué)生信息4、 刪除某學(xué)號的學(xué)生信息
2、5、查找某學(xué)號的學(xué)生信息6對學(xué)生信息排序7、統(tǒng)計(jì)學(xué)生人數(shù)8、輸出學(xué)生信息實(shí)驗(yàn)報(bào)告二總體設(shè)計(jì)(一)模塊依據(jù)程序的數(shù)據(jù)結(jié)構(gòu),描述該程序的層次結(jié)構(gòu),如下圖:1、建立鏈表并顯示上void createlist(struct stucode *r);2、插入新的學(xué)生信息void in sert(struct stucode *r);3、刪除某學(xué)號的學(xué)生信息void del(struct stucode *r);4、查找某學(xué)號的學(xué)生信息void search1(struct stucode *r);5、對學(xué)生信息排序void sort(struct stucode *r);6、統(tǒng)計(jì)學(xué)生人數(shù)void sea
3、rch2(struct stucode *r);7、輸出學(xué)生信息void out(struct stucode *r);菜單函勺數(shù)1建立鏈表并顯示2添加學(xué)生信息3刪除學(xué)生信息息4按學(xué)號查找學(xué)生信main()(二)程序總體框架模塊層次結(jié)構(gòu),只確定了模塊之間的關(guān)系和函數(shù)原型,不是程序的執(zhí)行步驟。 程序總體框架是該程序的總體流程圖。 改程序不是順序連續(xù)地執(zhí)行全部功能, 而 是在某一時刻有選擇地執(zhí)行一種或多種功能。因此選用菜單方式是較佳的方案, 程序總體框架如下圖:mai n()菜單1輸入2輸出3排序4添加5刪除6、統(tǒng)計(jì)7查詢8退出(三)運(yùn)行環(huán)境(軟,硬件環(huán)境)4按學(xué)號查找學(xué)生63刪除學(xué)生信息51建立
4、鏈表并顯示硬件:CPU,內(nèi)存,主板,硬盤,顯卡,鍵盤,顯示器等等。軟件:Windows XP trubo c應(yīng)用軟件。(四)開發(fā)工具和編程語言開發(fā)工具:trubo c編程語言:C語言三、詳細(xì)設(shè)計(jì)(一)數(shù)據(jù)結(jié)構(gòu)依據(jù)給定學(xué)生信息和數(shù)據(jù)格式,數(shù)組用結(jié)構(gòu)體實(shí)現(xiàn),結(jié)構(gòu)體層次結(jié)構(gòu):struct stud學(xué)號 整型long int num;姓名字符串n ame20;性別 字符串sex2;出生日期字符串birthday12;聯(lián)系方式 字符串tel12;;頭文件彳#i nclude#i nclude#i ncludevstri ng.h/*定義數(shù)據(jù)結(jié)構(gòu)和鏈表*/struct studlong num;char
5、n ame20;char sex2;char birthday12;char tel12;typedef struct stucodestruct stud stude nt ;struct stucode *n ext;L;(二八算法說明1、主函數(shù)的算法設(shè)計(jì):清屏、顯示子菜單及運(yùn)用選擇操作(運(yùn)用swith語句),調(diào)用各個子函數(shù),最后退出程序,主要代碼:while(flag)system(cls);menu();choose=getchar();switch(choose)2、各個子函數(shù)的算法設(shè)計(jì)1、一些顯示操作,輸入相應(yīng)的內(nèi)容即可V 代碼:2、創(chuàng)建鏈表并顯示學(xué)生信息申請空間p=(L *)ma
6、lloc(sizeof(L);學(xué)生信息的輸入及顯示:p-stude nt. num=n;strcpy(p-stude nt. name,a);p-n ext=NULL;3、學(xué)生信息的刪除首先查詢要刪除的學(xué)生信息的學(xué)號,如果存在刪除該學(xué)生,如果不存在給予 相應(yīng)的提示。t=p-n ext;p-n ext=p-n ext- n ext;free(t);/釋放空間4、學(xué)生信息的排序新建鏈接,然后按要求對學(xué)生信息進(jìn)行排序while(z-n ext&z-n ext-stude nt.num =p-stude nt. num)z=z-n ext;p-n ext=z-n ext;z-n ext=p;5、學(xué)生人
7、數(shù)的統(tǒng)計(jì):6、學(xué)生信息的顯示:直接發(fā)調(diào)用函數(shù)即可。四、運(yùn)行結(jié)果五、總結(jié)1、調(diào)試分析(1)剛編譯完后有好多錯誤和警告,運(yùn)行失敗,然后經(jīng)過修改錯誤警告慢慢減 少,最終可以運(yùn)行。(2)該程序中可能還存在一些小問題,比如有的時候它會主動清屏,有的時候不會。并且我在編譯的過程中發(fā)現(xiàn)自己存在好多毛病,有粗心了等,不注意細(xì)節(jié),其實(shí)自己也知道細(xì)節(jié)決定成敗,以后我會注意。2、設(shè)計(jì)總結(jié)經(jīng)過一周的課程設(shè)計(jì),我學(xué)到了很多東西:1鞏固和加深了對數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運(yùn)用本課程所學(xué)知識的能力。2培養(yǎng)了我選用參考書,查閱手冊及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究, 分析問題、解決問題的能力。3過實(shí)際編譯系統(tǒng)的分析設(shè)計(jì)、
8、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì) 方法。4夠按要求編寫課程設(shè)計(jì)報(bào)告書,能正確闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果,正確繪制系統(tǒng)和 程序框圖。5通過課程設(shè)計(jì),培養(yǎng)了我嚴(yán)肅認(rèn)真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng) 濟(jì)觀念和全局觀念。課程設(shè)計(jì)是把我們所學(xué)的理論知識進(jìn)行系統(tǒng)的總結(jié)并應(yīng)用于實(shí)踐的良好機(jī) 會,有利于加強(qiáng)我們用知識理論來分析實(shí)際問題的能力,進(jìn)而加強(qiáng)了我們對知識 認(rèn)識的實(shí)踐度,鞏固了我們的理論知識,深化了對知識的認(rèn)識,并為走向社會打 下一個良好的基礎(chǔ)。在這次課程設(shè)計(jì)中我遇到許多問題和麻煩,得到了老師的幫助和指導(dǎo),才能夠使得這次課程設(shè)計(jì)順利的進(jìn)行下去,另外,在程序調(diào)試過程中,也得到很多同學(xué)的幫助,給我
9、及時指出錯誤,提出許多寶貴意見。在此對老師和同學(xué)們表示感 謝!六、參考文獻(xiàn)書籍:譚浩強(qiáng) C程序設(shè)計(jì)(第三版)北京清華大學(xué)出版社譚浩強(qiáng)C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第三版)北京清華大學(xué)出版社王為青 劉變紅 C語言高級編程及實(shí)例剖析人民郵電出版社張建勛 c語言程序設(shè)計(jì)教程q清華大學(xué)出版社李玲 桂瑋珍 劉蓮英 c語言程序設(shè)計(jì)教程習(xí)題解答與實(shí)驗(yàn)指導(dǎo)人民郵電出版社源程序:#i nclude#i nclude#i ncludestruct studlong num;char n ame20;char sex2;char birthday12;char tel12;;typedef struct stucode
10、struct stud stude nt ;struct stucode *n ext;L;void menu();void createlist(struct stucode *r);void out(struct stucode *r);void search1(struct stucode *r);void search2(struct stucode *r);void del(struct stucode *r);void in sert(struct stucode *r);void sort(struct stucode *r);void mai n()char choose;in
11、t flag=1;struct stucode *r=NULL;while(flag)system(cls);menu();choose=getchar();getchar();switch(choose)case 1:createlist(&r);out(r);printf(Testing function 1nPress any key to continued);getchar();getchar();break;case 2:search1(r);printf(Testing function 1nPress any key to continued);getchar();getcha
12、r();break;case 3:search2(r);printf(Testing function 1nPress any key to continued);getchar();getchar();break;case 4:del(&r);out(r);printf(Testing function 1nPress any key to continued); getchar();break;getchar();case 5:in sert(&r);out(r);printf(Testing function 1nPress any key to continued);getchar()
13、;getchar();break;case 6:sort(&r);out(r);printf(Testing function 1nPress any key to continued);getchar();getchar();break;case 7:out(r);printf(Testing function 7nPress any key to continued);getchar();getchar();break;case O:flag=0;prin tf(The en d.n);getchar();break;default: printf(nWrong Selection!(選擇
14、錯誤,請重選!)n);getchar(); getchar();void createlist(struct stucode *r)struct stucode *p,*t;long n;char a20;char s4;char b12;char m12;if(*r) *r=NULL;printf( n請輸入:n學(xué)號(請按學(xué)號升序排列)姓名 性別 出生日期(若要結(jié)束請輸入五個為零)n);sca nf(%ld%s%s%s%s,&n ,a,s,b,m);if(n=0) retur n;p=(L *)malloc(sizeof(L);p-stude nt. num=n;strcpy(p-stude
15、 nt. name,a);strcpy(p-stude nt.sex,s);strcpy(p-stude nt.birthday,b);strcpy(p-stude nt.tel,m);p- next=NULL;*r=p;sca nf(%ld%s%s%s%s,&n ,a,s,b,m);while( n)電話t=p;p=(L *)malloc(sizeof(L);p-stude nt. num=n;strcpy(p-stude nt. name,a);strcpy(p-stude nt.sex,s);strcpy(p-stude nt.birthday,b);strcpy(p-stude nt.
16、tel,m);p- next=NULL;t-n ext=p;sca nf(%ld%s%s%s%s,&n ,a,s,b,m);void search1(struct stucode *r)long x;if(!r)printf(沒有學(xué)生信息可查詢!n);return ;printf(請輸入要查詢的學(xué)生信息的學(xué)生學(xué)號sca nf(%ld, &x);while(r&r-stude nt. nu m!=x)r=r-n ext;if(r=NULL)printf(Error! No such student !n);else prin tf(%ld %s %s %s %sn ,r-stude nt. nu
17、m ,r-stude nt.n ame,r-student.sex,r-stude n t.birthday,r-stude nt.tel);:n);void search2(struct stucode *r)int a=0,b=0,c=0;if(!r)printf(沒有學(xué)生信息可統(tǒng)計(jì)!n);return ;elsewhile(r)a+;if(strcmp(r-stude nt.sex,男)=0)b+;if(strcmp(r-stude nt.sex,女)=0)c+;r=r-n ext;printf(共有學(xué)生%d人,其中男生%d人,女生%d人,a,b,c);void del(struct s
18、tucode *r)long k;struct stucode *p=*r,*t;if(!(*r)printf(沒有學(xué)生信息可刪除!n);return ;printf(請輸入要刪除的學(xué)生信息的學(xué)生學(xué)號:n);sea nf(%ld,&k);if(p-stude nt. num=k)*r=(*r)-n ext,free(p);elsewhile(p-n ext&p-n ext-stude nt. nu m!=k) p=p-n ext;if(p- next=NULL)printf(Error! No such student !n);elset=p-n ext;p-n ext=p-n ext- n
19、ext;free(t);void in sert(struct stucode *r)long n;char a20;char s4;char b12;char m12;L *p,*t,*k;printf( n請輸入:n學(xué)號(請按學(xué)號升序排列)姓名 性別 出生日期(若要結(jié)束請輸入三個為零)n);sea nf(%ld%s%s%s%s,&n ,a,s,b,m);p=(L *)malloc(sizeof(L);p-stude nt. num=n;strcpy(p-stude nt. name,a);電話strcpy(p-stude nt.sex,s);strcpy(p-stude nt.birthd
20、ay,b);strcpy(p-stude nt.tel,m);if(!(*r)*r=p;(*r)- next=NULL;return ;if(p-stude nt. num v(*r)-stude nt. num)p-n ext=(*r),(*r)=p;elset=*r;k=t;while(t- n ext&t- n ext-stude nt. num v=p-stude nt. num)t=t- n ext;p-n ext=t- n ext; t-n ext=p;*r=k; void sort(struct stucode *r)struct stucode *t,*p,*q,*z;if(!r)printf(沒有學(xué)生信息可排序!n);return ;if(
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 烤肉調(diào)料出售合同范本
- 合同范本有作用
- 烏市購房合同范本
- 墓地個人協(xié)議合同范本
- 合租鋪?zhàn)愚D(zhuǎn)讓合同范本
- 個人間合作合同范本
- 2025年防腐導(dǎo)靜電材料項(xiàng)目合作計(jì)劃書
- 危廢收購合同范例
- 勞改農(nóng)場收購合同范本
- 其他類合同范本
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)基礎(chǔ)(創(chuàng)新創(chuàng)業(yè)課程)完整全套教學(xué)課件
- 人教版小學(xué)數(shù)學(xué)四年級下冊第一單元測試卷附答案(共9套)
- 財(cái)務(wù)報(bào)表分析財(cái)務(wù)報(bào)表分析課件
- T∕CCCMHPIE 1.2-2016 植物提取物 檳榔多糖多酚
- 局域網(wǎng)規(guī)劃設(shè)計(jì)_畢業(yè)論文
- 脛骨平臺骨折(課堂PPT)
- 冷室壓鑄機(jī)電腦操作控制部分操作說明
- 中考復(fù)習(xí)復(fù)分解反應(yīng)類型方程式書寫訓(xùn)練題(無答案)
- 部編版四年級道德與法治下冊第3課《當(dāng)沖突發(fā)生》優(yōu)秀課件(含視頻)
- 病理學(xué)課程標(biāo)準(zhǔn)
- 通橋(2013)8388A常用跨度梁橋面附屬設(shè)施_圖文
評論
0/150
提交評論