學(xué)生成績管理系統(tǒng)報告文檔_第1頁
學(xué)生成績管理系統(tǒng)報告文檔_第2頁
學(xué)生成績管理系統(tǒng)報告文檔_第3頁
學(xué)生成績管理系統(tǒng)報告文檔_第4頁
學(xué)生成績管理系統(tǒng)報告文檔_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余20頁可下載查看

下載本文檔

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

文檔簡介

1、沈陽化工大學(xué)課程名稱課題名稱專業(yè)班級學(xué)號姓名指導(dǎo)教師課程設(shè)計報告數(shù)據(jù)結(jié)構(gòu)計算機(jī)科學(xué)與技術(shù)專業(yè)計算機(jī)*2012年 12月 9 日、兒前言設(shè)計課題八三十:學(xué)生成績管理系統(tǒng)一、問題描述:現(xiàn)有學(xué)生成績信息文件1(1.txt) , 內(nèi) 容 如 下姓名學(xué)號語文數(shù)學(xué)英語張明明01677882李成友02789188張輝燦03688256王露04564577陳東明05673847學(xué)生成績信息文件2(2.txt),內(nèi)容如下:姓名學(xué)號語文數(shù)學(xué)英語陳果31576882李華明32889068張明東33484256李明國34504587陳道亮35475877試編寫一管理系統(tǒng),要求如下:1) 實現(xiàn)對兩個文件數(shù)據(jù)進(jìn)行合并,生

2、成新文件3.txt2) 抽取出三科成績中有補(bǔ)考的學(xué)生并保存在一個新文件4.txt3) 對合并后的文件3.txt 中的數(shù)據(jù)按總分降序排序(至少采用兩種排序方法實現(xiàn))4) 輸入一個學(xué)生姓名后,能查找到此學(xué)生的信息并輸出結(jié)果(至少采用兩種查找方法實現(xiàn))5) 要求使用結(jié)構(gòu)體,鏈或數(shù)組等實現(xiàn)上述要求.二、功能要求:1、 實現(xiàn)對兩個文件數(shù)據(jù)進(jìn)行合并,生成新文件3.txt。2、本系統(tǒng)顯示這樣的菜單:請選擇系統(tǒng)功能項:0. 退出1. . 顯示學(xué)生信息2. 顯示按學(xué)號排序后的學(xué)生信息3. 顯示按總分排序后的學(xué)生信息4. 按學(xué)號查學(xué)生各科分?jǐn)?shù)和總分5. 按姓名查學(xué)生各科分?jǐn)?shù)和總分6. 抽取出三科成績中有補(bǔ)考的學(xué)生

3、并保存、算法提示:1、數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組2、數(shù)據(jù)庫結(jié)構(gòu):下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫姓名學(xué)號語文數(shù)學(xué)英語Charintintintint四、測試數(shù)據(jù):學(xué)生人數(shù)N=10五、其它:對該系統(tǒng)有興趣的同學(xué)可以在實現(xiàn)上述基本功能后,完善系統(tǒng)的其它 功能。目錄第一章緒論第一節(jié)課程背景第二節(jié)本文所做工作第二章需求分析第三章總體設(shè)計第四章詳細(xì)設(shè)計第五章測試第六章使用說明第七章總結(jié)附錄A源代碼附錄B參考資料第一章緒論學(xué)生成績管理系統(tǒng)是一個教育單位不可缺少的部分, 它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要, 所以學(xué)生成績管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段?學(xué)生檔案管理系統(tǒng)是典型的信息管

4、理系統(tǒng)(MIS), 經(jīng)過分析如此情況, 我們用code#blocks 開發(fā)工具 , 利用其提供的各種面向?qū)ο蟮拈_發(fā)工具和功能強(qiáng)大的SQL0吉構(gòu)化查詢語言)。第一節(jié) 課程背景在我國,各大中小學(xué)校的各類信息管理系統(tǒng)并非一個新的課題,但也有的學(xué)校根本就沒有信息任何管理系統(tǒng),所有的工作幾乎還是手工操作來完成。計算機(jī)技術(shù)在日新月異的發(fā)展,但是有的很多學(xué)校,特別是在西部貧困地區(qū),學(xué)校的種類管理都依然由手工操作來完成,這十分落后,效率極低,成本很大,而且極異出錯。隨著社會的發(fā)展,信息化是社會進(jìn)程的必然趨勢,學(xué)校管理只有只有快,準(zhǔn),精才能發(fā)揮其價值。所以機(jī)器代替人力是必然的歷史發(fā)展趨勢,只有領(lǐng)導(dǎo)的重視和支持才

5、能從人工操作改為計算機(jī)的自動化系統(tǒng)。人工操作必將被計算機(jī)代替。有些學(xué)校雖使用了計算機(jī),甚至管理系統(tǒng),但是仍然存在很多問題,問題一日不解決,效率就一日提不上去。第二節(jié) 本文所做工作本系統(tǒng)是將現(xiàn)代化的計算機(jī)技術(shù)和傳統(tǒng)的教學(xué)、教務(wù)工作相結(jié)合,按照學(xué)院的工作流程設(shè)計完成的。為了使系統(tǒng)在學(xué)院的管理中發(fā)揮更大的作用,實現(xiàn)工作過程的計算機(jī)化,提高工作效率和工作質(zhì)量,現(xiàn)提出如下的系統(tǒng)開發(fā)目標(biāo):( 1)系統(tǒng)管理員進(jìn)入學(xué)生成績管理系統(tǒng)學(xué)生檔案管理的主要功能是:實現(xiàn)添加學(xué)生的基本信息、修改學(xué)生的基本信息、查詢學(xué)生的基本信息、刪除學(xué)生的基本信息等基本功能。( 2)系統(tǒng)管理員進(jìn)入學(xué)生成績管理系統(tǒng)學(xué)生成績管理的主要功能是

6、:實現(xiàn)學(xué)生成績的錄入、學(xué)生成績的修改與保存等基本功能。( 3)系統(tǒng)管理員進(jìn)行學(xué)生成績管理系統(tǒng)查詢與統(tǒng)計的主要功能是:實現(xiàn)根據(jù)某個學(xué)生的基本信息查詢他的成績,還可以根據(jù)學(xué)生成績的高低進(jìn)行排序等基本功能。1.1 編寫目的本需求的編寫目的在于研究學(xué)生成績管理系統(tǒng)軟件的開發(fā)途徑和應(yīng)用方法 ?1.2 背景及范圍本項目的名稱: 學(xué)生成績管理系統(tǒng)? 本軟件基本上能具體化?合理化的管理學(xué)生的學(xué)籍檔案, 用結(jié)構(gòu)化的思維方式去了解計算機(jī)的基本工作原理和高級程序設(shè)計語言?1.3 功能主要功能 : 學(xué)生成績錄入?學(xué)生信息和成績修改?查詢成績?第二章 系統(tǒng)需求分析可以使用戶錄入學(xué)生信息,并在系統(tǒng)中顯示出來,還能對錄入的

7、信息進(jìn)行保 存,當(dāng)需要時還可以對信息進(jìn)行修改和刪除,還能分別用學(xué)號、姓名、性別、 年齡對學(xué)生信息進(jìn)行查詢,用戶進(jìn)入系統(tǒng)需要輸入密碼。第三章總體設(shè)計struct student : 一個結(jié)構(gòu)體類型,他能存放姓名、學(xué)號、語文、數(shù)學(xué)、英語等成績等不同類型數(shù)據(jù)組成的組合型的數(shù)據(jù)結(jié)構(gòu)。void main():主函數(shù)。FILE * fp :定義一個指向文件的指針變量fp.fp=fopen("學(xué)生成績","w +"):將fopen函數(shù)的返回值賦給指針變量fp,或者說,fp指向了學(xué)生信息這個文件。如果文件不存在,則建立一個新的文本文Fscanf,fprintf:用格式化

8、的方式讀寫文件。Strcmp:字符串比較函數(shù)。Strcpy:字符串復(fù)制函數(shù)。程序中還用到當(dāng)型循環(huán)、swith分支語句、if語句等。system("cls");:清屏函數(shù),使界面更簡潔。第四章 系統(tǒng)調(diào)試存 保 井 生 息息八XS乎 生生爵老 的的父刀有 息生成 信£千科 生學(xué)總杳查三 學(xué)字號名出 出示示一至子姓取 退顯顯顯 _ 0 12 3 4 5ft系統(tǒng)主界面選擇代碼(0( 1, 2, 3, 4, S, 6)1顯示學(xué)生信息23吾 英82語S7427891顯示按學(xué)號排序后的學(xué)生信息(按升序)7845號 學(xué)316 6 24 4 82 11S ff明等國亮破蹊路東裹十明

9、明道重張王陳顯示按總分排序后的學(xué)生信息77677622826 5420088-754 2222211111語8822677776 +夕 8688578745學(xué)災(zāi) 1088285582張女 9-976854434文887?8706?8 7865645564白戶 2 1 5 4 3.2313333453友明明燦亮國i明果輝道襄東明姓陳張陳李王陳張按學(xué)號查學(xué)生各科分?jǐn)?shù)和總分按姓名查學(xué)生各科分?jǐn)?shù)和總分請輸入要查找學(xué)生電姓名t王霞學(xué)號諳文數(shù)孳英諳總分王露 4564577178道輸入要查找學(xué)生的姓名.德杰舐此人I抽取出三科成績中有補(bǔ)考的學(xué)生并保存明東國亮 蹊路東果明明道 張王露塞陳13 4 53 3 3

10、36 7 75 8?第五章使用說明利用結(jié)構(gòu)體函數(shù)類型,使函數(shù)顯得沒那么繁瑣,利用文件指針,輸入的信 息將保存在文件中,以便下次查詢和修改,使用“ W+'方式讀寫文件,當(dāng)指定 那個文件不存在時,將建立一個文件,不會出現(xiàn)出錯信息 。利用fscanf和 fprintf 實現(xiàn)對文件的讀寫。不足之處:錄入的信息沒能保存,每次便已運(yùn)行 需要重新輸入數(shù)據(jù),對所學(xué)的東西沒有合理結(jié)合。第七章總結(jié)當(dāng)剛開始聽到要課程設(shè)計時,心里有點(diǎn)怕怕的,因為畢竟剛接觸c語言,雖說也學(xué)到了一些皮毛,但當(dāng)聽到要自己去編寫程序時,才發(fā)現(xiàn)自己不會的不 懂的還多著呢,要編寫一個程序還是有一些困難的,當(dāng)真的讓我去編寫程序時, 真的是

11、有點(diǎn)怕怕的感覺。剛?cè)雽W(xué)時,聽到要學(xué)習(xí) c語言時,我是非常的感興趣, 也非常高興,因為那游戲、軟件都要用 c語言來實現(xiàn),我想探究一下那到底是 怎么實現(xiàn)的,能達(dá)到那樣的效果,所以剛開始我很有激情,每節(jié)課我都認(rèn)真聽 講,雖然剛開始聽起來有點(diǎn)困難,但是我相信功夫不負(fù)有心人,我知道課堂上 的知識是不夠的,所以我利用課下時間,積極搜尋與之相關(guān)的信息,去圖書館 借閱相關(guān)資料和習(xí)題,來增長自己的知識。當(dāng)程序?qū)懲炅?,我終于可以松口氣了 ,經(jīng)過一個思考,查資料,寫源程序,上 機(jī)調(diào)試.現(xiàn)在終于告一段落了 .看到自己的勞動成果,心中不免有些驚喜,沒想到 自己還能獨(dú)立完成初次的課程設(shè)計,雖然不敢說這個程序都是我一個人寫

12、的, 但其中大部分都是我的成果,另外我還參考了別人的意見,對自己的程序進(jìn)行 修改和完善。這種課程設(shè)計對我們是非常有好處的,對C這門程序語言的掌握卻有非常 大的作用.從開始對題目的分析,就注定擺在我這樣一個對C了解不多的新手面 前的是一段艱難的旅程.但最終很慶幸的是我居然能夠堅持下來,而且完成了設(shè) 計工作.C語言是很難學(xué)的,這也許是因人而異,但對我來說確實是一個障礙。如今要自己完成一個課程設(shè)計, 無疑是對自己的一個挑戰(zhàn). 先是上網(wǎng)查找有關(guān)的資料,分析題目所需的數(shù)據(jù), 要用到哪些函數(shù)等等,星期二上網(wǎng)初步調(diào)試,將函數(shù)用些結(jié)構(gòu)和語句連接起來,做這個工作時,又將書本翻閱了一遍,重新獲得許多東西。如帶參函

13、數(shù)的特點(diǎn),以及一些語句的運(yùn)用及特點(diǎn)等等。將工作分配到每塊是我完成這個設(shè)計的主要方法,然而將每塊都完成看起來比較輕松, 但實際操作起來卻是比較麻煩的.由于平時對C知識的積累較為匱乏,(這可能是最主要的原因了 ), 所以操作起來真是寸步難行, 沒辦法 , 只有拿出課本找到相應(yīng)的知識點(diǎn), 臨陣磨槍 . 費(fèi)了一番功夫, 再上機(jī)調(diào)試時就是最痛苦的時候了,錯誤一大堆,要一個一個的修改。經(jīng)過幾翻調(diào)試修改之后終于可以執(zhí)行了,那時還興奮了好長時間呢!然而執(zhí)行出來的結(jié)果是不令人滿意的,界面不美觀不說,最重要的是輸入太煩瑣,而且受到的限制太多,如只能以某種方式輸入,且個數(shù)受限制。于是又發(fā)費(fèi)了大量時間去修改,終于比較

14、滿意了,但也到了星期五了,也就是答辯的時間。答辯的時候我才發(fā)現(xiàn)還有好多知識是我不會的,老師問了我一些問題,我回答出來的卻不多,我體會到我還要很努力的學(xué)習(xí),在C的學(xué)習(xí)上我還有很長的一段路要走。今天不管怎樣把這個設(shè)計作出來是件很高興的事情,不過能夠把這個設(shè)計順利完成要?dú)w功于我的指導(dǎo)老師,幫了我很多忙,也讓我發(fā)現(xiàn)了我有好多欠缺的地方,真的很感謝你們,謝謝!不管怎么說, 我還是完成了這個設(shè)計. 雖說累了點(diǎn), 但我想這對我們進(jìn)一步掌握C,并為下學(xué)期的C二級考試是有很大的幫助的.能夠編出程序,其實本身就是 對自己的一種肯定,是對自己前面一段時間學(xué)習(xí)C綜合水平的一個檢閱.當(dāng)然完 成后的興喜, 只有經(jīng)歷過了才

15、能體會到,而我體會到了.C語言課程設(shè)計是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題 , 鍛煉實踐能力的重要環(huán)節(jié), 是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計算機(jī)應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握計算機(jī)開發(fā)技術(shù)是十分重要的。從拿到題目到完成整個編程,從理論到實踐,在整整一個星期的日子里,可以學(xué)到很多很多的的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)

16、論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨(dú)立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體通過這次課程設(shè)計之后,一定把以前所學(xué)過的知識重新溫故。這次課程設(shè)計我最要感謝的就是我們的幾位指導(dǎo)老師,老師們每天都不辭勞苦為我們服務(wù),不管我們有什么問題,他們都耐心的為我們解答,我們有什么錯誤他們都積極給我們指正出來,雖然有時也批評一下,但這對我們是有很大幫助的,有這么多優(yōu)秀的指導(dǎo)老師,我想我以后的學(xué)習(xí)會更上一層樓。A 源代碼# incl

17、ude <stdio.h># include <stdlib.h># include <string.h># include <stdbool.h># include <math.h># include <conio.h># define eps 1;typedef structchar name50;int num;int Chinese;int Math;int English;int sum;Node;Node student1000;int n;char text50;int cmp(const void *a,

18、const void *b)return (*(Node *)b).sum > (*(Node *)a).sum?1:-1;int cmpnum(const void *a, const void *b)return (*(Node *)a).num > (*(Node *)b).num?1:-1;void showstudent()int i;printf(" t 姓名 t 學(xué)號 t 語文 t 數(shù)學(xué) t 英語 t 總分 n");for(i=0;i<n;i+)printf("t%st%dt%dt%dt%dt%dn",studenti.n

19、ame, studenti.num,studenti.Chinese,studenti.Math,stude nti.English,studenti.sum);getch();menu();void sortnum()int i,j,k;char a55;for(i=0;i<n;i+)for(j=0;j<n-i-1;j+)if(studentj.num>studentj+1.num)k=studentj.num;studentj.num=studentj+1.num;studentj+1.num=k;k=studentj.Chinese;studentj.Chinese=s

20、tudentj+1.Chinese;studentj+1.Chinese=k;k=studentj.Math;studentj.Math=studentj+1.Math;studentj+1.Math=k;k=studentj.English;studentj.English=studentj+1.English;studentj+1.English=k;k=studentj.sum;studentj.sum=studentj+1.sum;studentj+1.sum=k;strcpy(a,);strcpy(,studentj+1.name)

21、;strcpy(studentj+1.name,a);showstudent();getch();menu();void sortsum()qsort(student, n, sizeof(Node), cmp);showstudent();getch();menu();void searchnum(int number)int min = 0, max = n-1, mid;bool escape = false;qsort(student, n, sizeof(Node), cmpnum); while(min <= max)mid = (min + max) / 2;if(stud

22、entmid.num > number)max = mid - eps;else if(studentmid.num < number) min = mid + eps;elseescape = true;printf("t 姓名 t 學(xué)號 t 語文 t 數(shù)學(xué) t 英語 t 總分 n");printf("t%st%dt%dt%dt%dt%dn",,studentmid.num,studentmid.Chinese,studentmid.Math,studentmid.English, studentmid.sum

23、);break;if(!escape) printf("t 查無此人");getch();menu();void searchname() int i;for(i=0;i<n;i+)if(strcmp(text,)=0)printf("t 姓名 t 學(xué)號 t 語文 t 數(shù)學(xué) t 英語 t 總 分 n");printf("t%st%dt%dt%dt%dt%dn",,studenti.num,studenti.Chinese,studenti.Math,studenti.Engli

24、sh,studenti.sum);break;if(i>=n)printf("t查無此人n");getch();menu();void save()FILE *fp;fp=fopen("4.txt","w");int i;fprintf(fp, "t 姓名 t 學(xué)號 t 語文 t 數(shù)學(xué) t 英語 t 總分 n");for(i=0;i<n;i+)if(studenti.Chinese<60|studenti.Math<60|studenti.English<60) printf(&quo

25、t;t%st%dt%dt%dt%dn",,studenti.num,studenti.Chinese,studenti.Math,studenti.E nglish);fprintf(fp,"t%st%dt%dt%dt%dn",, studenti.num,studenti.Chinese,studenti.Math,stude nti.English);)printf("n");printf(" 1 n");printf("| 保存成功 I n");p

26、rintf("11 n");getch();menu();)void menu()(int choice;system("cls");printf("菜單 n");printf(" 1 n");printf(" |0.退出I n");printf(" |1.顯示學(xué)生信息I n");printf(" |2.顯示按學(xué)號排序后的學(xué)生信息printf("信息printf("總分printf("總分printf("的學(xué)生并保存n&quo

27、t;);3 .顯示按總分排序后的學(xué)生n");4 .按學(xué)號查學(xué)生各科分?jǐn)?shù)和n");5 .按姓名查學(xué)生各科分?jǐn)?shù)和n");6 .抽取出三科成績中有補(bǔ)考n");printf(" 11 n");printf("選擇代碼(0, 1, 2, 3, 4, 5, 6):");scanf("%d", &choice);switch(choice)case 0:system("cls");printf("謝謝使用!n");exit(0);case 1:system("cls");showstudent();case 2:system("cls");sortnum();case 3:system("cls");sortsum();case 4:system("cls");");int num;printf("t 請輸入要查找學(xué)生的學(xué)號:scanf("%d", &num);searchnum(num

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論