《C語言程序》課程設(shè)計(jì)報(bào)告書 學(xué)生信息管理_第1頁
《C語言程序》課程設(shè)計(jì)報(bào)告書 學(xué)生信息管理_第2頁
《C語言程序》課程設(shè)計(jì)報(bào)告書 學(xué)生信息管理_第3頁
《C語言程序》課程設(shè)計(jì)報(bào)告書 學(xué)生信息管理_第4頁
《C語言程序》課程設(shè)計(jì)報(bào)告書 學(xué)生信息管理_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、吉林工程技術(shù)師范學(xué)院c語言程序課程設(shè)計(jì)報(bào)告書設(shè)計(jì)題目: 學(xué)生信息管理 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí): 學(xué)生姓名: 學(xué)號(hào): 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)試與測(cè)試- 23 -第六章 總結(jié)與心得- 25 -附 錄- 26 -附錄一- 26 -附錄二- 36 -摘 要 學(xué)生信息管理系統(tǒng)是典型的信息管理系統(tǒng) (mis),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫

2、的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。 經(jīng)過分析,我使用c語言開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡潔操縱數(shù)據(jù)庫的智能化對(duì)象,首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后,對(duì)初始原型系統(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é)生的各種信息量也成倍增長。面對(duì)龐大的信息量需要有學(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ī)范化和自動(dòng)化,其主要任務(wù)是用計(jì)算機(jī)對(duì)學(xué)生各種信息進(jìn)行日常管理,如查詢、修改 、增加、刪除,另外還考慮到學(xué)生選課,針對(duì)這些要求設(shè)計(jì)了學(xué)生信息管理系統(tǒng)本系統(tǒng)主要用于學(xué)校學(xué)生信息管理,總體任務(wù)是實(shí)現(xiàn)學(xué)生信息關(guān)系的系統(tǒng)化、規(guī)范化和自動(dòng)化,其主要任務(wù)是用計(jì)算機(jī)對(duì)學(xué)生各種信息進(jìn)行日常管理,如查詢、修改 、增加、刪除,針對(duì)這些要求設(shè)計(jì)了學(xué)生信息管理系統(tǒng)。本系統(tǒng)的主要功能主要有:有關(guān)學(xué)籍等信息的輸入,包括輸入學(xué)生基本信息、所在

4、班級(jí)、成績等。顯示學(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é)生的姓名,班級(jí),學(xué)號(hào),c語言成績等等相關(guān)信息。并通過input函數(shù)錄入學(xué)生信息。二、顯示學(xué)生信息:輸入一個(gè)班級(jí),顯示該班學(xué)生的全部信息。再根據(jù)c語言成績分?jǐn)?shù)段來顯示學(xué)生信息。三、成績排序:根據(jù)c語言成績高低進(jìn)行排序。四、添加學(xué)生信息:輸入一個(gè)新學(xué)號(hào)、班級(jí)、姓名、成績,從而添加全部信息。五、刪除學(xué)生信息:輸入一個(gè)學(xué)號(hào),刪除該生的全部信息。六、修改學(xué)生信息

5、:輸入姓名,進(jìn)而修改該生信息。七、查詢學(xué)生信息:輸入姓名,進(jìn)而查詢?cè)撋啃畔?。八、退出系統(tǒng).2.2 性能需求:具有良好的可靠性和安全性。對(duì)于系統(tǒng)要求比較低。使用范圍比較廣。第三章 總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)3.1 總體設(shè)計(jì):將此系統(tǒng)化分為如下模塊(即如下函數(shù)):1、輸入初始的學(xué)生信息:其中包括學(xué)生的學(xué)號(hào)、班級(jí)、姓名、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é)號(hào)來進(jìn)行刪除。6、修改模塊:用modify( )函數(shù)來實(shí)現(xiàn)。通過輸入學(xué)生姓名來刪除該生信息。7、查詢模塊:用find( )函數(shù)來實(shí)現(xiàn)。通過輸入學(xué)生姓名來查詢?cè)撋啃畔ⅰ?、退出系統(tǒng):可用一個(gè)函數(shù)exit()來實(shí)現(xiàn),首先將信息保存到文件中,釋放動(dòng)態(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é)生編號(hào):); scanf(%d,&stui.no); printf(n輸入學(xué)員班級(jí)(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(輸入所查班級(jí)(14):);scanf(%d,&j);do printf(tttt%d班學(xué)員信息列表n,j); printf(ttt編號(hào)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班級(jí)t編號(hào)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班級(jí)t編號(hào)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班級(jí)t編號(hào)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班級(jí)t編號(hào)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班級(jí)t編號(hào)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é)生編號(hào):);scanf(%d,&stunow_no.no); printf(n輸入學(xué)員班級(jí):); 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(輸入要?jiǎng)h除學(xué)員的編號(hào):); 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編號(hào)t班級(jí)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é)生編號(hào):); scanf(%d,&stui.no); printf(n輸入學(xué)員班級(jí):); scanf(%d,&stui.classs); printf(n輸入學(xué)員c語言成績:); scanf(%f,&stui.score1); printf

19、(nn); sort(); break; system(cls); 第五章 調(diào)試與測(cè)試第六章 總結(jié)與心得此次課程設(shè)計(jì),使我仍感慨頗多,的確,從確定題目到完成整個(gè)編程,從理論到實(shí)踐,在短短兩周時(shí)間里,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)

20、計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,尤其對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識(shí)重新溫故。而且在課程設(shè)計(jì)過程中,我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒,編程看起來似乎是一件很枯燥、乏味的事情,但是經(jīng)歷了這次大程序的編輯之后,發(fā)現(xiàn)其實(shí)里面還是充滿樂趣的,一旦真的專研下去什么事情都可以放下,來認(rèn)真研究??傊?,編程是一項(xiàng)細(xì)致深入的工作,需要下工夫、動(dòng)腦子、善于積累經(jīng)驗(yàn),這往往能反映出一個(gè)人的水平、經(jīng)驗(yàn)和科學(xué)態(tài)度。課程設(shè)計(jì)結(jié)束了。無論我以后會(huì)不

21、會(huì)涉及到c語言程序編譯的研究,我想,我至少掌握了一種系統(tǒng)的研究方法,我們學(xué)習(xí)的目的就在于運(yùn)用,而且我們運(yùn)用這種研究方法的時(shí)候會(huì)很多。 附 錄附錄一:源代碼:#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é)生編號(hào):); scanf(%d,&stui.no); printf(n輸入學(xué)員班級(jí)(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(輸入所查班級(jí)(14):);scanf(%d,&j); do printf(tttt%d班學(xué)員信息列表n,j); printf(ttt編號(hào)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班級(jí)t編號(hào)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班級(jí)t編號(hào)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班級(jí)t編號(hào)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班級(jí)t編號(hào)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班級(jí)t編號(hào)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é)生編號(hào):);scanf(%d,&stunow_no.no); printf(n輸入學(xué)員班級(jí):); scanf(%d,&stunow_no.classs); printf(n輸入學(xué)員姓名:); gets(stunow_); printf(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論