學生成績管理系統(tǒng)報告文檔_第1頁
學生成績管理系統(tǒng)報告文檔_第2頁
學生成績管理系統(tǒng)報告文檔_第3頁
學生成績管理系統(tǒng)報告文檔_第4頁
學生成績管理系統(tǒng)報告文檔_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課 程 設 計 報 告課程名稱 數據結構 課題名稱 _學生成績管理系統(tǒng) 專 業(yè) 計算機科學與技術專業(yè) 班 級 計算機 學 號 姓 名 * 指導教師 * 2012年 12 月 9 日 前 言 設計課題八三十:學生成績管理系統(tǒng)一、問題描述:現有學生成績信息文件1(1.txt),內容如下姓名 學號 語文 數學 英語 張明明 01 67 78 82李成友 02 78 91 88張輝燦 03 68 82 56王露 04 56 45 77陳東明 05 67 38 47. . . . 學生成績信息文件2(2.txt),內容如下:姓名 學號 語文 數學 英語 陳果 31 57 68 82李華明 32 88 9

2、0 68張明東 33 48 42 56李明國 34 50 45 87陳道亮 35 47 58 77. 試編寫一管理系統(tǒng),要求如下:1) 實現對兩個文件數據進行合并,生成新文件3.txt2) 抽取出三科成績中有補考的學生并保存在一個新文件4.txt3) 對合并后的文件3.txt中的數據按總分降序排序(至少采用兩種排序方法實現)4) 輸入一個學生姓名后,能查找到此學生的信息并輸出結果(至少采用兩種查找方法實現)5) 要求使用結構體,鏈或數組等實現上述要求.二、功能要求:1、實現對兩個文件數據進行合并,生成新文件3.txt。2、本系統(tǒng)顯示這樣的菜單:請選擇系統(tǒng)功能項:0.退出1 .顯示學生信息2.顯

3、示按學號排序后的學生信息3.顯示按總分排序后的學生信息4.按學號查學生各科分數和總分5.按姓名查學生各科分數和總分6.抽取出三科成績中有補考的學生并保存三、算法提示:1、 數據結構:結構體類型數組2、 數據庫結構:下表構成該系統(tǒng)的基本數據庫。姓名學號語文數學英語Charint intintint四、測試數據:學生人數N=10 五、其它:對該系統(tǒng)有興趣的同學可以在實現上述基本功能后,完善系統(tǒng)的其它功能。目錄第一章 緒論第一節(jié) 課程背景第二節(jié) 本文所做工作第二章 需求分析第三章 總體設計第四章 詳細設計第五章 測試第六章 使用說明第七章 總結附錄A 源代碼附錄B 參考資料第一章緒論學生成績管理系統(tǒng)

4、是一個教育單位不可缺少的部分,它的內容對于學校的決策者和管理者來說都至關重要,所以學生成績管理系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段 學生檔案管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),經過分析如此情況,我們用code#blocks開發(fā)工具,利用其提供的各種面向對象的開發(fā)工具和功能強大的SQL(結構化查詢語言)。 第一節(jié) 課程背景在我國,各大中小學校的各類信息管理系統(tǒng)并非一個新的課題,但也有的學校根本就沒有信息任何管理系統(tǒng),所有的工作幾乎還是手工操作來完成。計算機技術在日新月異的發(fā)展,但是有的很多學校,特別是在西部貧困地區(qū),學校的種類管理都依然由手工操作來完成,這十分落后,效率極低,成本

5、很大,而且極異出錯。隨著社會的發(fā)展,信息化是社會進程的必然趨勢,學校管理只有只有快,準,精才能發(fā)揮其價值。所以機器代替人力是必然的歷史發(fā)展趨勢,只有領導的重視和支持才能從人工操作改為計算機的自動化系統(tǒng)。人工操作必將被計算機代替。有些學校雖使用了計算機,甚至管理系統(tǒng),但是仍然存在很多問題,問題一日不解決,效率就一日提不上去。第二節(jié) 本文所做工作本系統(tǒng)是將現代化的計算機技術和傳統(tǒng)的教學、教務工作相結合,按照學院的工作流程設計完成的。為了使系統(tǒng)在學院的管理中發(fā)揮更大的作用,實現工作過程的計算機化,提高工作效率和工作質量,現提出如下的系統(tǒng)開發(fā)目標:(1)系統(tǒng)管理員進入學生成績管理系統(tǒng)學生檔案管理的主要

6、功能是:實現添加學生的基本信息、修改學生的基本信息、查詢學生的基本信息、刪除學生的基本信息等基本功能。(2)系統(tǒng)管理員進入學生成績管理系統(tǒng)學生成績管理的主要功能是:實現學生成績的錄入、學生成績的修改與保存等基本功能。(3)系統(tǒng)管理員進行學生成績管理系統(tǒng)查詢與統(tǒng)計的主要功能是:實現根據某個學生的基本信息查詢他的成績,還可以根據學生成績的高低進行排序等基本功能。1.1 編寫目的 本需求的編寫目的在于研究學生成績管理系統(tǒng)軟件的開發(fā)途徑和應用方法 1.2 背景及范圍 本項目的名稱: 學生成績管理系統(tǒng) 本軟件基本上能具體化合理化的管理學生的學籍檔案,用結構化的思維方式去了解計算機的基本工作原理和高級程序

7、設計語言1.3 功能 主要功能:學生成績錄入學生信息和成績修改查詢成績第二章 系統(tǒng)需求分析 可以使用戶錄入學生信息,并在系統(tǒng)中顯示出來,還能對錄入的信息進行保存,當需要時還可以對信息進行修改和刪除,還能分別用學號、姓名、性別、年齡對學生信息進行查詢,用戶進入系統(tǒng)需要輸入密碼。第三章 總體設計struct student:一個結構體類型,他能存放姓名、學號、語文、數學、英語等成績等不同類型數據組成的組合型的數據結構。void main():主函數。FILE * fp:定義一個指向文件的指針變量fp.fp=fopen("學生成績","w +"):將fopen

8、函數的返回值賦給指針變量fp,或者說,fp指向了學生信息這個文件。如果文件不存在,則建立一個新的文本文件。Fscanf,fprintf:用格式化的方式讀寫文件。Strcmp:字符串比較函數。Strcpy:字符串復制函數。程序中還用到當型循環(huán)、swith分支語句、if語句等。system("cls");:清屏函數,使界面更簡潔。第四章 系統(tǒng)調試系統(tǒng)主界面顯示學生信息顯示按學號排序后的學生信息(按升序)顯示按總分排序后的學生信息按學號查學生各科分數和總分按姓名查學生各科分數和總分抽取出三科成績中有補考的學生并保存第五章 使用說明利用結構體函數類型,使函數顯得沒那么繁瑣,利用文件

9、指針,輸入的信息將保存在文件中,以便下次查詢和修改,使用“w+”方式讀寫文件,當指定那個文件不存在時,將建立一個文件,不會出現出錯信息。利用fscanf和fprintf實現對文件的讀寫。不足之處:錄入的信息沒能保存,每次便已運行需要重新輸入數據,對所學的東西沒有合理結合。第七章 總結當剛開始聽到要課程設計時,心里有點怕怕的,因為畢竟剛接觸c語言,雖說也學到了一些皮毛,但當聽到要自己去編寫程序時,才發(fā)現自己不會的不懂的還多著呢,要編寫一個程序還是有一些困難的,當真的讓我去編寫程序時,真的是有點怕怕的感覺。剛入學時,聽到要學習c語言時,我是非常的感興趣,也非常高興,因為那游戲、軟件都要用c語言來實

10、現,我想探究一下那到底是怎么實現的,能達到那樣的效果,所以剛開始我很有激情,每節(jié)課我都認真聽講,雖然剛開始聽起來有點困難,但是我相信功夫不負有心人,我知道課堂上的知識是不夠的,所以我利用課下時間,積極搜尋與之相關的信息,去圖書館借閱相關資料和習題,來增長自己的知識。當程序寫完了,我終于可以松口氣了,經過一個思考,查資料,寫源程序,上機調試.現在終于告一段落了.看到自己的勞動成果,心中不免有些驚喜,沒想到自己還能獨立完成初次的課程設計,雖然不敢說這個程序都是我一個人寫的,但其中大部分都是我的成果,另外我還參考了別人的意見,對自己的程序進行修改和完善。 這種課程設計對我們是非常有好處的,對C這門程

11、序語言的掌握卻有非常大的作用.從開始對題目的分析,就注定擺在我這樣一個對C了解不多的新手面前的是一段艱難的旅程.但最終很慶幸的是我居然能夠堅持下來,而且完成了設計工作. C語言是很難學的,這也許是因人而異,但對我來說確實是一個障礙。如今要自己完成一個課程設計,無疑是對自己的一個挑戰(zhàn).先是上網查找有關的資料,分析題目所需的數據,要用到哪些函數等等,星期二上網初步調試,將函數用些結構和語句連接起來,做這個工作時,又將書本翻閱了一遍,重新獲得許多東西。如帶參函數的特點,以及一些語句的運用及特點等等。將工作分配到每塊是我完成這個設計的主要方法,然而將每塊都完成看起來比較輕松,但實際操作起來卻是比較麻煩

12、的.由于平時對C知識的積累較為匱乏,(這可能是最主要的原因了),所以操作起來真是寸步難行,沒辦法,只有拿出課本找到相應的知識點,臨陣磨槍.費了一番功夫,再上機調試時就是最痛苦的時候了,錯誤一大堆,要一個一個的修改。經過幾翻調試修改之后終于可以執(zhí)行了,那時還興奮了好長時間呢!然而執(zhí)行出來的結果是不令人滿意的,界面不美觀不說,最重要的是輸入太煩瑣,而且受到的限制太多,如只能以某種方式輸入,且個數受限制。于是又發(fā)費了大量時間去修改,終于比較滿意了,但也到了星期五了,也就是答辯的時間。答辯的時候我才發(fā)現還有好多知識是我不會的,老師問了我一些問題,我回答出來的卻不多,我體會到我還要很努力的學習,在C的學

13、習上我還有很長的一段路要走。今天不管怎樣把這個設計作出來是件很高興的事情,不過能夠把這個設計順利完成要歸功于我的指導老師,幫了我很多忙,也讓我發(fā)現了我有好多欠缺的地方,真的很感謝你們,謝謝!不管怎么說,我還是完成了這個設計.雖說累了點,但我想這對我們進一步掌握C,并為下學期的二級考試是有很大的幫助的.能夠編出程序,其實本身就是對自己的一種肯定,是對自己前面一段時間學習綜合水平的一個檢閱.當然完成后的興喜,只有經歷過了才能體會到,而我體會到了.C語言課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現,提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發(fā)

14、展的日新日異,當今計算機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握計算機開發(fā)技術是十分重要的。從拿到題目到完成整個編程,從理論到實踐,在整整一個星期的日子里,可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現了自

15、己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結構體通過這次課程設計之后,一定把以前所學過的知識重新溫故。這次課程設計我最要感謝的就是我們的幾位指導老師,老師們每天都不辭勞苦為我們服務,不管我們有什么問題,他們都耐心的為我們解答,我們有什么錯誤他們都積極給我們指正出來,雖然有時也批評一下,但這對我們是有很大幫助的,有這么多優(yōu)秀的指導老師,我想我以后的學習會更上一層樓。附錄A 源代碼# include <stdio.h># include <stdlib.h># include <string.h># include <stdbo

16、ol.h># include <math.h># include <conio.h># define eps 1;typedef struct char name50; int num; int Chinese; int Math; int English; int sum;Node;Node student1000;int n;char text50;int cmp(const void *a, const void *b) return (*(Node *)b).sum > (*(Node *)a).sum?1:-1;int cmpnum(const v

17、oid *a, const void *b) return (*(Node *)a).num > (*(Node *)b).num?1:-1;void showstudent() int i;printf(" t姓名t學號t語文t數學t英語t總分n");for(i=0;i<n;i+)printf("t%st%dt%dt%dt%dt%dn",,studenti.num,studenti.Chinese,studenti.Math,studenti.English,studenti.sum); getch(); menu

18、();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=studentj+1.Chinese;studentj+1.Chinese=k;k=studentj.Math;studentj.Math=studentj+1.Math;student

19、j+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);strcpy(studentj+1.name,a);showstudent(); getch(); menu();void sortsum() qsort(student, n, s

20、izeof(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(studentmid.num > number) max = mid - eps; else if(studentmid.num < number) min

21、= mid + eps; else escape = true; printf("t姓名t學號t語文t數學t英語t總分n"); printf("t%st%dt%dt%dt%dt%dn", , studentmid.num, studentmid.Chinese, studentmid.Math, studentmid.English, studentmid.sum); break; if(!escape) printf("t查無此人"); getch(); menu();void searchname()

22、 int i;for(i=0;i<n;i+)if(strcmp(text,)=0)printf("t姓名t學號t語文t數學t英語t總分n"); printf("t%st%dt%dt%dt%dt%dn", , studenti.num, studenti.Chinese, studenti.Math, studenti.English, studenti.sum);break;if(i>=n)printf("t查無此人n"); getch(); menu();void sa

23、ve() FILE *fp;fp=fopen("4.txt","w");int i;fprintf(fp, "t姓名t學號t語文t數學t英語t總分n");for(i=0;i<n;i+)if(studenti.Chinese<60|studenti.Math<60|studenti.English<60) printf("t%st%dt%dt%dt%dn",,studenti.num,studenti.Chinese,studenti.Math,studenti.En

24、glish);fprintf(fp,"t%st%dt%dt%dt%dn",,studenti.num,studenti.Chinese,studenti.Math,studenti.English);printf("n");printf("n"); printf("保存成功n"); printf("n"); getch(); menu();void menu() int choice; system("cls"); printf(" 菜單n

25、"); printf("n"); printf(" 0.退出 n"); printf(" 1.顯示學生信息 n"); printf(" 2.顯示按學號排序后的學生信息 n"); printf(" 3.顯示按總分排序后的學生信息 n"); printf(" 4.按學號查學生各科分數和總分 n"); printf(" 5.按姓名查學生各科分數和總分 n"); printf(" 6.抽取出三科成績中有補考的學生并保存 n"); pr

26、intf("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請輸入要查找學生的學號:"); scanf("%d", &num); searchnum(num); case 5: system("cls"); printf("t請輸入要查找學生的姓名:"); sca

溫馨提示

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

評論

0/150

提交評論