版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《程序設(shè)計與算法語言》課程設(shè)計</p><p><b> 報 告 書</b></p><p> 題 目 學(xué)生信息管理系統(tǒng) </p><p> 院系名稱 </p><p> 專 業(yè) (班 級) 信息與計算科學(xué)</p&g
2、t;<p> 姓 名 (學(xué) 號) </p><p> 指 導(dǎo) 教 師 </p><p> 完 成 時 間 2013-01-10</p><p><b> 一、問題描述</b></p><p> 在學(xué)校對學(xué)生的管理中,要掌握每個班
3、級學(xué)生的一些基本信息,需要建立一個基本的學(xué)生管理系統(tǒng)。這個系統(tǒng)可以管理學(xué)生的一些基本信息姓名,學(xué)號,學(xué)生科目的成績;可以對學(xué)生的姓名、學(xué)號基本信息錄入,修改,注銷,成績的錄如,和信息的修改。</p><p><b> 二、基本要求</b></p><p> 1、利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計</p><p> 2、系統(tǒng)的各個功能
4、模塊要求用函數(shù)形式實現(xiàn)</p><p> 3、使用學(xué)生管理系統(tǒng)對學(xué)生一些基本信息的管理</p><p> 4、結(jié)構(gòu)體成員中包括學(xué)生的學(xué)號、年齡、名字、所學(xué)的科目</p><p> 5、學(xué)生信息管理系統(tǒng)應(yīng)該提供以下功能</p><p> a、學(xué)生基本信息的錄入</p><p> b、學(xué)生基本信息的修改</
5、p><p><b> c、學(xué)生成績的錄入</b></p><p><b> d、修改成績</b></p><p><b> e、瀏覽</b></p><p><b> f、退出</b></p><p><b> 三、
6、算法思想</b></p><p> 本程序中包括了11個函數(shù)和一個清屏函數(shù)</p><p> student-new</p><p> student-del</p><p> student-edit</p><p> score-input</p><p> scor
7、e-edit</p><p><b> brower</b></p><p> page-title</p><p> return-confirm</p><p><b> search-id</b></p><p> 10、sort-it</p>
8、<p><b> 11、main</b></p><p> 在函數(shù)page-title中形參menu-item被聲明為char *類型的指針變量,其中函數(shù)page-title在函數(shù)1、2、3、4、5、6,和主函數(shù)11中被調(diào)用。調(diào)用函數(shù)7時,函數(shù)分別將實參(字符串的首地址)傳遞給menu-item,使menu-item指向字符串的首地址,在函數(shù)中輸出字符串。函數(shù)return-co
9、nfirm中定義是一個無形參的函數(shù),其中函數(shù)return-confirm在函數(shù)1、2、3、4、5被調(diào)用。函數(shù)student-new是無形參的函數(shù),在函數(shù)student-new中,當(dāng)學(xué)號不等于0,n不大于班級學(xué)生的總?cè)藬?shù)是執(zhí)行函數(shù),采用遍歷分別實現(xiàn)學(xué)號、姓名、年齡的錄入。在錄入學(xué)生的基本信息后執(zhí)行函數(shù)8,返回主菜單。函數(shù)search-id函數(shù)定義為int型無形參,定義變量i為當(dāng)前輸入的學(xué)號,采用遍歷法實現(xiàn)當(dāng)前的學(xué)號與系統(tǒng)已保存的學(xué)號比較,
10、當(dāng)輸入的學(xué)號已在在系統(tǒng)保存中并且輸入的學(xué)號不等于0時顯示學(xué)生的信息再返回學(xué)號,否者就顯示錯誤或者學(xué)號不存在返回-1,其中search-id在函數(shù)2、3、5中被調(diào)用。函數(shù)student-del是無形參函數(shù),定義n為int型,調(diào)用search-</p><p> 四 系統(tǒng)模塊圖和模塊劃分</p><p> 1、page-title函數(shù)</p><p><b&g
11、t; 功能:顯示字符串</b></p><p><b> 參數(shù):無</b></p><p> 2、return-confirm</p><p> 功能:顯示字符串,并提示按任意鍵返回函數(shù)主菜單</p><p><b> 參數(shù):無</b></p><p>
12、 3、student-new函數(shù)</p><p> 功能:實行學(xué)生信息學(xué)號、姓名、年齡的錄入</p><p> 參數(shù):n為int型表示學(xué)生的人數(shù)</p><p> 4、search-id函數(shù)</p><p> 功能:得到一個函數(shù)的返回值</p><p> 參數(shù):n,i都為int型,其中n是系統(tǒng)已錄入的學(xué)生人
13、數(shù),i是重新輸入的學(xué)號</p><p> 5、student-edit函數(shù)</p><p> 功能:注銷學(xué)生的基本信息</p><p> 參數(shù):n為int型,n為系統(tǒng)已存在的學(xué)生人數(shù)</p><p> 6、student-edit函數(shù)</p><p> 功能:重新編輯學(xué)生的基本信息</p>&l
14、t;p> 參數(shù):n為int型,n系統(tǒng)已存在的學(xué)生人數(shù)</p><p> 7、score-input函數(shù)</p><p> 功能:學(xué)生成績的錄入</p><p> 參數(shù):s,n,t都為int型,s代表的科目,n是系統(tǒng)已存在的學(xué)生人數(shù),t代表的是要錄入的學(xué)生科目的成績</p><p> 8、score-edit函數(shù)</p&g
15、t;<p> 功能:學(xué)生成績的修改</p><p> 參數(shù):n為int型,n是已錄入系統(tǒng)的學(xué)生人數(shù)</p><p> 9、sort-it函數(shù)</p><p> 功能:按學(xué)號從高到低進(jìn)行選擇排序</p><p> 參數(shù):n、m、p、x、t[53]為int型,n是已錄入系統(tǒng)的學(xué)生人數(shù),t[53]為儲存學(xué)號的數(shù)組</p
16、><p> 10、browser函數(shù)</p><p> 功能:瀏覽已錄入的學(xué)生信息</p><p> 參數(shù):n,x為int型,k為char型,n是已錄入系統(tǒng)的學(xué)生人數(shù),x為學(xué)號所對應(yīng)的數(shù)組的下標(biāo),k是當(dāng)調(diào)用sort-it函數(shù)時傳遞為形參的值,進(jìn)行swith語句選擇</p><p><b> 五 源程序</b><
17、/p><p> #include <stdio.h></p><p> #include <stdlib.h></p><p> #include <conio.h></p><p> int INDEX[53];</p><p> struct STUDENT{</p&
18、gt;<p><b> int id;</b></p><p><b> int age;</b></p><p> int chinese,math,english;</p><p> char name[21];</p><p> }students[53]; //結(jié)構(gòu)
19、體</p><p> void page_title(char *menu_item)</p><p> { printf("學(xué) 生 管 理 系 統(tǒng) \n %s",menu_item);</p><p><b> }</b></p><p> void return_confirm(void)
20、</p><p> {printf("按任意鍵返回");</p><p><b> getch();</b></p><p><b> }</b></p><p> void student_new(void) //錄入學(xué)生信息</p><p>
21、;<b> {int n;</b></p><p> page_title("錄入學(xué)生基本信息");</p><p> for(n=0;n<53;n++)</p><p> if(students[n].id==0) break;</p><p> printf("學(xué)號:&
22、quot;);</p><p> scanf("%d",&students[n].id);</p><p> printf("姓名:");</p><p> scanf("%s",&students[n].name);</p><p> printf(&quo
23、t;年齡:");</p><p> scanf("%d",&students[n].age);</p><p> return_confirm();</p><p><b> }//1</b></p><p> int search_id(void) //查找學(xué)生<
24、/p><p> {int n,i;</p><p> printf("請輸入學(xué)生學(xué)號:");</p><p> scanf("%d",&i);</p><p> for(n=0;n<53;n++)</p><p><b> {</b>&
25、lt;/p><p> if(students[n].id==i&&students[n].id!=0)</p><p><b> {</b></p><p> printf("學(xué)號:%d",students[n].id);</p><p> printf("姓名:%s&q
26、uot;,students[n].name);</p><p> printf("年齡:%d",students[n].age);</p><p><b> return n;</b></p><p><b> }</b></p><p><b> }</
27、b></p><p> printf("輸入錯誤或?qū)W號不存在.");</p><p> return -1;</p><p><b> }</b></p><p> void student_del(void) //注銷學(xué)生信息</p><p><b&g
28、t; {int n;</b></p><p> page_title("注銷學(xué)生基本信息");</p><p> if((n=search_id())!=-1) students[n].id=0;</p><p> printf("!該學(xué)生已注銷.");</p><p> ret
29、urn_confirm();</p><p><b> }//3</b></p><p> void student_edit(void) //修改學(xué)生信息</p><p><b> {int n;</b></p><p> page_title("編輯學(xué)生基本信息"
30、;);</p><p> if((n=search_id())!=-1)</p><p><b> {</b></p><p> printf("請重新輸入新信息:學(xué)號:");</p><p> scanf("%d",&students[n].id);</p&
31、gt;<p> printf("姓名:");</p><p> scanf("%s",&students[n].name);</p><p> printf("年齡:");</p><p> scanf("%d",&students[n].age);
32、</p><p><b> }</b></p><p> return_confirm();</p><p><b> }//2</b></p><p> void score_input(void) //輸入學(xué)生成績</p><p> {int s,n,t;
33、</p><p> page_title("錄入成績");</p><p> printf("請用數(shù)字鍵選擇科目1-語文 2-數(shù)學(xué) 3-英語\n");</p><p> scanf("%d",&s);</p><p> for(n=0;n<53;n++)<
34、/p><p><b> {</b></p><p> if(students[n].id!=0)</p><p><b> {</b></p><p> printf("學(xué)號:%d 姓名:%s 成績:",students[n].id,students[n].name);<
35、;/p><p> scanf("%d",&t);</p><p><b> switch(s)</b></p><p><b> {</b></p><p> case 1 : students[n].chinese=t;break;</p><p
36、> case 2 : students[n].math=t;break;</p><p> case 3 : students[n].english=t;break;</p><p><b> } </b></p><p><b> } </b></p><p><b>
37、; }</b></p><p> return_confirm();</p><p><b> }//4</b></p><p> void score_edit(void) //修改學(xué)生成績</p><p><b> {int n;</b></p><
38、;p> page_title("修改成績");</p><p> if((n=search_id())!=-1)</p><p><b> {</b></p><p> printf("語文:%d 數(shù)學(xué):%d 英語:%d\n",students[n].chinese,students[n].
39、math,students[n].english);</p><p> printf("請重新輸入成績:語文:");</p><p> scanf("%d",&students[n].chinese);</p><p> printf("數(shù)學(xué):");</p><p>
40、 scanf("%s",&students[n].math);</p><p> printf("英語:");</p><p> scanf("%d",&students[n].english);</p><p><b> }</b></p><
41、;p> return_confirm();</p><p><b> }//5</b></p><p> void sort_it(char nn) //學(xué)生信息排序</p><p> {int n,m,p,x,t[53];</p><p> for(n=0;n<53;n++)</p&g
42、t;<p><b> {</b></p><p> switch(nn)</p><p><b> {</b></p><p> case '1' : t[n]=students[n].id;break;</p><p> case '2' :
43、 t[n]=students[n].chinese;break;</p><p> case '3' : t[n]=students[n].math;break;</p><p> case '4' : t[n]=students[n].english;break;</p><p> case '5' : t[n
44、]=students[n].chinese+students[n].math+students[n].english;break;</p><p><b> }</b></p><p><b> }</b></p><p> for(n=0;n<53;n++)</p><p><b
45、> {</b></p><p><b> x=0;</b></p><p><b> p=-1;</b></p><p> for(m=0;m<53;m++)</p><p><b> {</b></p><p> i
46、f(t[m]>x)</p><p><b> {</b></p><p><b> x=t[m];</b></p><p><b> p=m;</b></p><p><b> }</b></p><p><b&
47、gt; }</b></p><p><b> t[p]=-1;</b></p><p> INDEX[n]=p; </p><p><b> }</b></p><p><b> }//</b></p><p> void bro
48、wser(void) //瀏覽</p><p> {int n,x;</p><p><b> char k;</b></p><p> sort_it('1');</p><p><b> while(1)</b></p><p><b&
49、gt; {</b></p><p> page_title("瀏覽");</p><p> printf("按數(shù)字鍵選擇排序方式或按 0 返回\n");</p><p> printf("學(xué)號-1\t姓名\t年齡\t語文-2\t數(shù)學(xué)-3\t英語-4\t總分-5\n");</p>
50、;<p> for(n=0;n<53;n++)</p><p><b> {</b></p><p> if(INDEX[n]!=-1)</p><p><b> {</b></p><p> x=INDEX[n];</p><p> prin
51、tf("%d\t%s\t",students[x].id,students[x].name);</p><p> printf("%d\t%d\t",students[x].age,students[x].chinese);</p><p> printf("%d\t%d\t",students[x].math,student
52、s[x].english);</p><p> printf("%d\n",students[x].chinese+students[x].math+students[x].english);</p><p><b> }</b></p><p><b> }</b></p><
53、;p> k=getch();</p><p> if(k<'6'&&k>'0') sort_it(k);</p><p> else if(k=='0') break;</p><p> else continue; </p><p><b>
54、 }</b></p><p><b> }//6</b></p><p> void main(void) //主函數(shù)</p><p> {menu: page_title("操作選單\n");</p><p> printf("請用數(shù)字鍵選擇操作\n")
55、;</p><p> printf("1 錄入學(xué)生基本信息\n2 修改學(xué)生基本信息\n");</p><p> printf("3 注銷學(xué)生基本信息\n4 錄入成績\n5 修改成績\n");</p><p> printf("6 瀏覽\n0 退出\n");</p><p>
56、switch(getch())</p><p><b> {</b></p><p> case '1' : student_new();break;</p><p> case '2' : student_edit();break;</p><p> case '3
57、9; : student_del();break;</p><p> case '4' : score_input();break;</p><p> case '5' : score_edit();break;</p><p> case '6' : browser();break;</p>&l
58、t;p> case '0' : exit(0);</p><p><b> }</b></p><p> system("cls");</p><p> goto menu;</p><p><b> }</b></p><p&
59、gt;<b> 六 測試數(shù)據(jù)和結(jié)果</b></p><p> 1、學(xué)生信息的基本錄入</p><p> 1)學(xué)號:01、02、03</p><p> 2)姓名:張某某、李某某、王某某</p><p> 3)年齡:21、20、19</p><p> 2、修改學(xué)生的基本信息</p&g
60、t;<p><b> 1)學(xué)號:01</b></p><p> 2)修改為:02 張某某 19</p><p> 3、注銷學(xué)生的基本信息</p><p><b> 學(xué)號:01</b></p><p><b> 4、錄入成績</b></p>
61、<p> 1)學(xué)號:02 語文成績100</p><p> 2)學(xué)號:03 語文成績 99</p><p><b> 5、修改學(xué)生成績</b></p><p><b> 6、瀏覽</b></p><p><b> 程序執(zhí)行頁面</b></p>
62、<p><b> 學(xué)生信息的基本錄入</b></p><p><b> 學(xué)生信息的修改</b></p><p><b> 錯誤為</b></p><p> 3、 注銷學(xué)生基本信息</p><p><b> 錄入成績</b><
63、;/p><p> 5、 修改成績、瀏覽</p><p><b> 七、參考文獻(xiàn)</b></p><p> 1、嚴(yán)蔚敏.《數(shù)據(jù)結(jié)構(gòu)( C語言版)》.清華大學(xué)出版社,</p><p> 2、譚浩強.《C語言程序設(shè)計》.清華大學(xué)出版社,</p><p><b> 小結(jié)</b&
64、gt;</p><p> 課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計算機應(yīng)用在是生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握計算機開發(fā)技術(shù)十分重要的。我的題目是學(xué)生管理系統(tǒng)的設(shè)計,對于我們這些新手來說,這是很大的考驗,我一千次一萬次的問自己,怎么才能找到課堂所學(xué)與實際應(yīng)用的
65、最佳結(jié)合點?怎么才能讓自己的程序在篇幅上簡單,在使用價值上豐富?怎樣讓自己的業(yè)余更靠近專業(yè)?怎樣讓自己的計劃更具有序性,而不會忙無一用?機會是老師,學(xué)校,以及無數(shù)代教育工作者給的,而能力是自己的,耐性是需要的。經(jīng)過自己的琢磨,聽取了師姐,師兄們的建議,還查閱了很多書籍,才做到了心中有數(shù),才了解了C語言課程設(shè)計的真正用意——培養(yǎng)自學(xué)能力,養(yǎng)成程序編輯的好習(xí)慣。我從來不相信車到山前必有路的說法,認(rèn)為那只是懶惰者自尋懶惰的借口,我要積極,要把
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計--- 學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計——學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)-c語言課程設(shè)計
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)設(shè)計
- c語言課程設(shè)計----學(xué)生信息管理系統(tǒng)設(shè)計
- c語言課程設(shè)計--學(xué)生信息管理
- 學(xué)生信息管理系統(tǒng)c語言課程設(shè)計報告
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng) (2)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng) (2)
- c語言課程設(shè)計報告----學(xué)生信息管理系統(tǒng)
評論
0/150
提交評論