




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、吉林工程技術(shù)師范學(xué)院c語言程序課程設(shè)計(jì)報(bào)告書設(shè)計(jì)題目: 學(xué)生信息管理 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級: 學(xué)生姓名: 學(xué)號: 30 指導(dǎo)教師: 2009年7月信息工程學(xué)院目 錄摘 要- 2 -第一章 緒 論- 3 -第二章 問題定義- 4 -2.1 功能需求- 4 -2.2 性能需求- 5 -第三章 總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)- 6 -3.1 總體設(shè)計(jì)- 6 -3.2 詳細(xì)設(shè)計(jì)- 8 -第四章 編碼- 23 -第五章 調(diào)試與測試- 23 -第六章 總結(jié)與心得- 25 -附 錄- 26 -附錄一- 26 -附錄二- 36 -摘 要 學(xué)生信息管理系統(tǒng)是典型的信息管理系統(tǒng) (mis),其開發(fā)主要包括后臺數(shù)據(jù)庫
2、的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。 經(jīng)過分析,我使用c語言開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡潔操縱數(shù)據(jù)庫的智能化對象,首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后,對初始原型系統(tǒng)進(jìn)行需求迭代,不斷修正和改進(jìn),直到形成用戶滿意的可行系統(tǒng)。關(guān)鍵字:信息管理系統(tǒng)(mis) 數(shù)據(jù)庫 完整性強(qiáng) 安全性好 功能完備 易使用 第一章 緒 論 隨著學(xué)校的規(guī)模不斷擴(kuò)大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生的各種信息量也成倍增長。面對龐大的信息量需要有學(xué)生管理系統(tǒng)來提高學(xué)生管理
3、工作的效率。通過這樣的系統(tǒng)可以做到信息的規(guī)范管理、科學(xué)統(tǒng)計(jì)和快速查詢、修改、增加、刪除等,從而減少管理方面的工作量。本系統(tǒng)主要用于學(xué)校學(xué)生信息管理,總體任務(wù)是實(shí)現(xiàn)學(xué)生信息關(guān)系的系統(tǒng)化、規(guī)范化和自動化,其主要任務(wù)是用計(jì)算機(jī)對學(xué)生各種信息進(jìn)行日常管理,如查詢、修改 、增加、刪除,另外還考慮到學(xué)生選課,針對這些要求設(shè)計(jì)了學(xué)生信息管理系統(tǒng)本系統(tǒng)主要用于學(xué)校學(xué)生信息管理,總體任務(wù)是實(shí)現(xiàn)學(xué)生信息關(guān)系的系統(tǒng)化、規(guī)范化和自動化,其主要任務(wù)是用計(jì)算機(jī)對學(xué)生各種信息進(jìn)行日常管理,如查詢、修改 、增加、刪除,針對這些要求設(shè)計(jì)了學(xué)生信息管理系統(tǒng)。本系統(tǒng)的主要功能主要有:有關(guān)學(xué)籍等信息的輸入,包括輸入學(xué)生基本信息、所在
4、班級、成績等。顯示學(xué)生信息2.成績排序3.添加學(xué)生信息4.刪除學(xué)生信息5.修改學(xué)生信息6.查詢學(xué)生信息第二章 問題定義2.1 功能需求:根據(jù)主界面顯示內(nèi)容進(jìn)行選擇并進(jìn)一步執(zhí)行相應(yīng)操作。一、當(dāng)前學(xué)生信息:通過結(jié)構(gòu)體structstudent來保存學(xué)生的姓名,班級,學(xué)號,c語言成績等等相關(guān)信息。并通過input函數(shù)錄入學(xué)生信息。二、顯示學(xué)生信息:輸入一個(gè)班級,顯示該班學(xué)生的全部信息。再根據(jù)c語言成績分?jǐn)?shù)段來顯示學(xué)生信息。三、成績排序:根據(jù)c語言成績高低進(jìn)行排序。四、添加學(xué)生信息:輸入一個(gè)新學(xué)號、班級、姓名、成績,從而添加全部信息。五、刪除學(xué)生信息:輸入一個(gè)學(xué)號,刪除該生的全部信息。六、修改學(xué)生信息
5、:輸入姓名,進(jìn)而修改該生信息。七、查詢學(xué)生信息:輸入姓名,進(jìn)而查詢該生全部信息。八、退出系統(tǒng).2.2 性能需求:具有良好的可靠性和安全性。對于系統(tǒng)要求比較低。使用范圍比較廣。第三章 總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)3.1 總體設(shè)計(jì):將此系統(tǒng)化分為如下模塊(即如下函數(shù)):1、輸入初始的學(xué)生信息:其中包括學(xué)生的學(xué)號、班級、姓名、c語言成績等相關(guān)信息;可用函數(shù)input( )函數(shù)來實(shí)現(xiàn)此操作。2、顯示模塊:用display( )函數(shù)來實(shí)現(xiàn)。輸出此學(xué)生全部信息。3、排序模塊:可用sort()函數(shù)來實(shí)現(xiàn)。其中通過成績的高低來比較的,并且以此來排序。4、添加模塊:用insert( )函數(shù)來實(shí)現(xiàn)。5、刪除模塊:用del(
6、 )函數(shù)來實(shí)現(xiàn)。通過學(xué)號來進(jìn)行刪除。6、修改模塊:用modify( )函數(shù)來實(shí)現(xiàn)。通過輸入學(xué)生姓名來刪除該生信息。7、查詢模塊:用find( )函數(shù)來實(shí)現(xiàn)。通過輸入學(xué)生姓名來查詢該生全部信息。8、退出系統(tǒng):可用一個(gè)函數(shù)exit()來實(shí)現(xiàn),首先將信息保存到文件中,釋放動態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):程序設(shè)計(jì)中用到的結(jié)構(gòu)體類型: 存放學(xué)生信息的結(jié)構(gòu)體: struct student int no;int classs;char name20; float score1; float sort; ; 3.2 詳細(xì)設(shè)計(jì):int as;1顯示主界面as=1as=2yesif system
7、(cls);input();break;主函數(shù)流程圖:輸入模塊流程圖:system(cls);ch!=n&ch!=nint i=0;printf(tttt1.錄入學(xué)員信息n輸入第%d個(gè)學(xué)員的信息n,i+1);temp=stuj;stuj-1.score1stuj.score1j+j=now_no-ij=1i+inow_noi=1struct student ;排序模塊流程圖:添加模塊流程圖:char ch;ch!=n&ch!=nprintf(ntt輸入新插入學(xué)員隊(duì)信息n);顯示模塊流程圖:printf(按任意鍵繼續(xù).n);ch!=n&ch!=n!asint i;printf(tttt%d班學(xué)員
8、信息列表n,j);printf(是否按分?jǐn)?shù)段查看學(xué)生成績?(y/n);查詢模塊流程圖:i+inow_noi=0system(cls);!asint i;printf(輸入要查詢的學(xué)生姓名:);printf(tt按任意鍵返回主菜單.);刪除模塊流程圖:stui=stunow_no-1;i=now_nostui.no=inumsystem(cls);i+inow_noi=0int num,i,j;修改模塊流程圖:break;system(cls);system(cls);i+inow_noi=0int i;第四章 編碼頭文件包含:#include #include #include #includ
9、e #include #define max 80nt now_no=0; 數(shù)據(jù)結(jié)構(gòu):struct student int no;int classs;char name20; float score1; float sort; ; struct student stumax,*p;原始數(shù)據(jù)錄入模塊:void input() int i=0; char ch; do printf(tttt1.錄入學(xué)員信息n輸入第%d個(gè)學(xué)員的信息n,i+1); printf(n輸入學(xué)生編號:); scanf(%d,&stui.no); printf(n輸入學(xué)員班級(14):); scanf(%d,&stui.c
10、lasss); printf(n輸入學(xué)員姓名:); gets(); printf(n輸入學(xué)員c語言成績:); scanf(%f,&stui.score1);printf(nn); i+; now_no=i; printf(是否繼續(xù)輸入?(y/n); ch=getch(); system(cls); while(ch!=n&ch!=n); system(cls); 排序數(shù)據(jù)函數(shù):void sort() struct student temp;int i,j; for(i=1;inow_no;i+) for(j=1;j=now_no-i;j+) if(stuj-1.score1s
11、tuj.score1) temp=stuj; stuj=stuj-1; stuj-1=temp; 顯示數(shù)據(jù)函數(shù):void display() int i; int j;int mark;char as; char ch;printf(輸入所查班級(14):);scanf(%d,&j);do printf(tttt%d班學(xué)員信息列表n,j); printf(ttt編號t姓名tc語言n); for(i=0;inow_no&0;i+)if(stui.classs=j)printf(ttt%dt%st%.2fn,stui.no,,stui.score1); prin
12、tf(按任意鍵繼續(xù).n); as=getch(); while(!as); printf(是否按分?jǐn)?shù)段查看學(xué)生成績?(y/n);ch=getchar();if(ch!=n&ch!=n)printf(tttt 90100分學(xué)員信息列表n); printf(ttt班級t編號t姓名tc語言值n); for(i=0;i=9) printf(ttt%dt%dt%st%.2fn,stui.classs,stui.no,,stui.score1);printf(tttt 8090分學(xué)員信息列表n); printf(ttt班級t編號t姓名tc語言值n); for(i=0;inow_no&st
13、0;i+)mark=stui.score1/10; if(mark=8) printf(ttt%dt%dt%st%.2fn,stui.classs,stui.no,,stui.score1);printf(tttt 7080分學(xué)員信息列表n,j); printf(ttt班級t編號t姓名tc語言值n); for(i=0;inow_no&0;i+)mark=stui.score1/10; if(mark=7) printf(ttt%dt%dt%st%.2fn,stui.classs,stui.no,,stui.score1);pr
14、intf(tttt 6070分學(xué)員信息列表n,j); printf(ttt班級t編號t姓名tc語言值n); for(i=0;inow_no&0;i+)mark=stui.score1/10;if(mark=6) printf(ttt%dt%dt%st%.2fn,stui.classs,stui.no,,stui.score1);printf(tttt 不及格學(xué)員信息列表n,j); printf(ttt班級t編號t姓名tc語言值n); for(i=0;inow_no&0;i+)mark=stui.score1/10;if(mark6) pri
15、ntf(ttt%dt%dt%st%.2fn,stui.classs,stui.no,,stui.score1);printf(按任意鍵繼續(xù).n); as=getch(); system(cls); 插入數(shù)據(jù)函數(shù):void insert() char ch; do printf(ntt輸入新插入學(xué)員隊(duì)信息n); printf(n輸入學(xué)生編號:);scanf(%d,&stunow_no.no); printf(n輸入學(xué)員班級:); scanf(%d,&stunow_no.classs); printf(n輸入學(xué)員姓名:); gets(stunow_); printf
16、(n輸入學(xué)員c語言成績:); scanf(%f,&stunow_no.score1); printf(nn); now_no=now_no+1; sort(); printf(是否繼續(xù)輸入?(y/n); ch=getch(); system(cls); while(ch!=n&ch!=n); 刪除數(shù)據(jù)函數(shù):void del() int inum,i,j; printf(輸入要刪除學(xué)員的編號:); scanf(%d,&inum); for(i=0;inow_no;i+) if(stui.no=inum) if(i=now_no)now_no-=1; else stui=stunow_no-1;
17、now_no-=1; sort(); break; system(cls); 查詢函數(shù):void find() int i; char str20,as; do printf(輸入要查詢的學(xué)生姓名:); gets(str); for(i=0;inow_no;i+) if(!strcmp(,str) printf(t編號t班級t姓名tc語言成績n); printf(t%dt%dt%st%.2fn,stui.no,stui.classs,,stui.score1); printf(tt按任意鍵返回主菜單.); as=getch(); while(!as); sy
18、stem(cls); 修改數(shù)據(jù)函數(shù):void modify() int i; char str20,as; printf(輸入要修改的學(xué)生姓名:); gets(str); for(i=0;inow_no;i+) if(!strcmp(,str) system(cls); printf(ntt輸入新插入學(xué)員隊(duì)信息n); printf(n輸入學(xué)生編號:); scanf(%d,&stui.no); printf(n輸入學(xué)員班級:); scanf(%d,&stui.classs); printf(n輸入學(xué)員c語言成績:); scanf(%f,&stui.score1); printf
19、(nn); sort(); break; system(cls); 第五章 調(diào)試與測試第六章 總結(jié)與心得此次課程設(shè)計(jì),使我仍感慨頗多,的確,從確定題目到完成整個(gè)編程,從理論到實(shí)踐,在短短兩周時(shí)間里,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時(shí)在設(shè)
20、計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,尤其對函數(shù)調(diào)用的正確使用不夠熟悉,通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識重新溫故。而且在課程設(shè)計(jì)過程中,我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒,編程看起來似乎是一件很枯燥、乏味的事情,但是經(jīng)歷了這次大程序的編輯之后,發(fā)現(xiàn)其實(shí)里面還是充滿樂趣的,一旦真的專研下去什么事情都可以放下,來認(rèn)真研究??傊?,編程是一項(xiàng)細(xì)致深入的工作,需要下工夫、動腦子、善于積累經(jīng)驗(yàn),這往往能反映出一個(gè)人的水平、經(jīng)驗(yàn)和科學(xué)態(tài)度。課程設(shè)計(jì)結(jié)束了。無論我以后會不
21、會涉及到c語言程序編譯的研究,我想,我至少掌握了一種系統(tǒng)的研究方法,我們學(xué)習(xí)的目的就在于運(yùn)用,而且我們運(yùn)用這種研究方法的時(shí)候會很多。 附 錄附錄一:源代碼:#include #include #include #include #include #define max 80 void input(); void sort(); void display(); void insert(); void del(); void find(); void modify(); int now_no=0; struct student int no;int classs;char name20; floa
22、t score1; float sort; ; struct student stumax,*p; main() int as; start: printf(nttt * 歡迎使用學(xué)生成績管理系統(tǒng) *n); do printf(ntttt1.錄入學(xué)員信息ntttt2.顯示學(xué)員信息ntttt3.成績排序信息ntttt4.添加學(xué)員信息ntttt5.刪除學(xué)員信息ntttt6.修改學(xué)員信息ntttt7.查詢學(xué)員信息ntttt8.退出n); printf(tttt選擇功能選項(xiàng):); scanf(%d,&as); switch(as) case 1:system(cls);input();break; c
23、ase 2:system(cls);display();break; case 3:system(cls);sort();break; case 4:system(cls);insert();break; case 5:system(cls);del();break; case 6:system(cls);modify();break; case 7:system(cls);find();break; case 8:system(exit);exit(0); default:system(cls);goto start; while(1); void input() int i=0; char
24、 ch; do printf(tttt1.錄入學(xué)員信息n輸入第%d個(gè)學(xué)員的信息n,i+1); printf(n輸入學(xué)生編號:); scanf(%d,&stui.no); printf(n輸入學(xué)員班級(14):); scanf(%d,&stui.classs); printf(n輸入學(xué)員姓名:); gets(); printf(n輸入學(xué)員c語言成績:); scanf(%f,&stui.score1);printf(nn); i+; now_no=i; printf(是否繼續(xù)輸入?(y/n); ch=getch(); system(cls); while(ch!=n&ch!=n)
25、; system(cls); void sort() struct student temp;int i,j; for(i=1;inow_no;i+) for(j=1;j=now_no-i;j+) if(stuj-1.score1stuj.score1) temp=stuj; stuj=stuj-1; stuj-1=temp; void display() int i; int j;int mark;char as; char ch;printf(輸入所查班級(14):);scanf(%d,&j); do printf(tttt%d班學(xué)員信息列表n,j); printf(ttt編號t姓名tc語
26、言n); for(i=0;inow_no&0;i+)if(stui.classs=j)printf(ttt%dt%st%.2fn,stui.no,,stui.score1); printf(按任意鍵繼續(xù).n); as=getch(); while(!as); printf(是否按分?jǐn)?shù)段查看學(xué)生成績?(y/n);ch=getchar();if(ch!=n&ch!=n)printf(tttt 90100分學(xué)員信息列表n); printf(ttt班級t編號t姓名tc語言值n); for(i=0;i=9) printf(ttt%dt%dt%st%.2fn,stui.
27、classs,stui.no,,stui.score1);printf(tttt 8090分學(xué)員信息列表n); printf(ttt班級t編號t姓名tc語言值n); for(i=0;inow_no&0;i+)mark=stui.score1/10; if(mark=8) printf(ttt%dt%dt%st%.2fn,stui.classs,stui.no,,stui.score1);printf(tttt 7080分學(xué)員信息列表n,j); printf(ttt班級t編號t姓名tc語言值n); for(i=0;inow_no&stui.n
28、ame0;i+)mark=stui.score1/10; if(mark=7) printf(ttt%dt%dt%st%.2fn,stui.classs,stui.no,,stui.score1);printf(tttt 6070分學(xué)員信息列表n,j); printf(ttt班級t編號t姓名tc語言值n); for(i=0;inow_no&0;i+)mark=stui.score1/10;if(mark=6) printf(ttt%dt%dt%st%.2fn,stui.classs,stui.no,,stui.score1);printf(
29、tttt 不及格學(xué)員信息列表n,j); printf(ttt班級t編號t姓名tc語言值n); for(i=0;inow_no&0;i+)mark=stui.score1/10; if(mark6) printf(ttt%dt%dt%st%.2fn,stui.classs,stui.no,,stui.score1);printf(按任意鍵繼續(xù).n); as=getch(); system(cls); void insert() char ch; do printf(ntt輸入新插入學(xué)員隊(duì)信息n); printf(n輸入學(xué)生編號:);scanf(%d,&stunow_no.no); printf(n輸入學(xué)員班級:); scanf(%d,&stunow_no.classs); printf(n輸入學(xué)員姓名:); gets(stunow_); printf(
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 橋面拋丸施工方案
- 果園機(jī)械安裝施工方案
- 廚房空調(diào)吊頂施工方案
- 2025年圓方性格測試題及答案
- 楊成玉綜述低滲透油藏化學(xué)驅(qū)研究現(xiàn)狀
- 污水原理面試題及答案
- 低收入人口動態(tài)監(jiān)測和救助幫扶機(jī)制
- c++的時(shí)間轉(zhuǎn)字符串函數(shù)
- 水源保護(hù)工程施工方案
- 甘肅交通護(hù)欄施工方案
- 駕駛員職業(yè)心理和生理健康知識專家講座
- 信息安全等級保護(hù)測評指南
- GB/T 712-2022船舶及海洋工程用結(jié)構(gòu)鋼
- 食管癌化療臨床路徑及表單
- 國際市場營銷(第三版)-教學(xué)課件
- 幼兒園大班數(shù)學(xué)《認(rèn)識門牌號》課件
- 公司安全生產(chǎn)“一會三卡”管理規(guī)定
- 山地回憶-完整版獲獎?wù)n件
- 國家體育館QC成果之提高鋼結(jié)構(gòu)現(xiàn)場焊縫的一次合格率
- 國際商務(wù)(International Business)英文全套完整課件
- 高速鐵路隧道空氣動力學(xué)關(guān)鍵技術(shù)
評論
0/150
提交評論