數(shù)據(jù)結(jié)構(gòu)課程設(shè)計學生成績管理系統(tǒng)_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計學生成績管理系統(tǒng)_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計學生成績管理系統(tǒng)_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計學生成績管理系統(tǒng)_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計學生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(論文)課程名稱: 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 題 目: 學生成績管理系統(tǒng) 院 (系): 信息與控制系 專業(yè)班級: 計算機1202 姓 名: 陳 安 學 號: 201206060202 指導教師: 張 帆 2014年 11 月 14 日西安建筑科技大學華清學院課程設(shè)計(論文)任務(wù)書專業(yè)班級: 計算機1202 學生姓名: 陳安 指導教師(簽名): 一、課程設(shè)計(論文)題目學生成績管理二、本次課程設(shè)計(論文)應(yīng)達到的目的數(shù)據(jù)結(jié)構(gòu)是實踐性很強的課程。課程設(shè)計是加強學生實踐能力的一個強有力手段。課程設(shè)計要求學生在完成程序設(shè)計的同時能夠?qū)懗霰容^規(guī)范的設(shè)計報告。嚴格實施課程設(shè)計這一環(huán)節(jié),對于學生基本程序設(shè)計

2、素養(yǎng)的培養(yǎng)和軟件工作者工作作風的訓練,將起到顯著的促進作用。本題目要達到目的:熟練掌握鏈表結(jié)構(gòu)的實現(xiàn)與應(yīng)用。 三、本次課程設(shè)計(論文)任務(wù)的主要內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、設(shè)計要求等) 實現(xiàn)輸入、輸出、插入、刪除、查找、追加、讀入、顯示、保存、拷貝、排序、索引、分類合計、退出等功能。輸入數(shù)據(jù):學生姓名;學生證號;學生所在院系;學生所修課程名;學生成績;實現(xiàn)對學生成績的如下操作:1. 輸入、輸出;2. 各種數(shù)據(jù)操作:插入、刪除、查找、追加;3. 排序、索引、分類合計;4. 優(yōu)化界面設(shè)計(用到菜單、命令按鈕等)。四、應(yīng)收集的資料及主要參考文獻: 由于本課程沒有安排“課內(nèi)上機”學時,因此,在

3、課程設(shè)計之前必須自己已經(jīng)上機練習了“線性表”的基本操作。 參考文獻:1.本年級使用的教材:數(shù)據(jù)結(jié)構(gòu)與算法分析(C+版),電子工業(yè)出版社,2005.7,Clifford A.Shaffer編著2. 數(shù)據(jù)結(jié)構(gòu)與算法,科學出版社,2005.08,趙文靜 祁飛等編著3. 數(shù)據(jù)結(jié)構(gòu)-C+語言描述,西安交通大學出版社,1999.01,趙文靜編著4.VC+深入詳解,電子工業(yè)出版社,2007.7,孫鑫,于安萍編著5.C+程序設(shè)計, 清華大學出版社, 2005.8,COHOON & DAVIDSON編著五、審核批準意見教研室主任(簽字) 摘要 本課程設(shè)計是對學生信息(包括學號、姓名、性別、高數(shù)、英語、C

4、語言、平均分)進行管理,包括學生成績的信息輸入、顯示、添加、刪除、修改、查詢、退出.將學生的成績信息進行記錄,信息內(nèi)容包含:(1)學生的學號(2)學生的姓名(3)學生的成績。假設(shè),現(xiàn)收集到了一個班學生的所有成績信息,要求用C語言編寫一個簡單的成績管理系統(tǒng),可進行錄入、查詢、修改和瀏覽等功能關(guān)鍵詞:學生成績管理系統(tǒng)目錄一、需求分析1二、概要設(shè)計1三、詳細設(shè)計2四、調(diào)試分析7五、使用說明10六、課設(shè)總結(jié)10參考文獻11一、需求分析 主要敘述軟件必須具備的功能和要求。本課程設(shè)計是用于對學生的成績進行管理。通過本系統(tǒng),可以將各個學生的成績記錄輸入到系統(tǒng)中,保存到文件,便于查閱和相關(guān)管理。此外

5、,該系統(tǒng)還能實現(xiàn)對學生成績記錄的顯示,查詢以及插入或刪除學生的成績記錄等功能。二、概要設(shè)計 主要說明對軟件中有關(guān)信息設(shè)計的數(shù)據(jù)結(jié)構(gòu);畫出整個軟件的系統(tǒng)結(jié)構(gòu)圖,說明各個模塊的功能。2. 1利用的數(shù)據(jù)結(jié)構(gòu)內(nèi)容:以c語言和數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)知識,應(yīng)用結(jié)構(gòu)體把學生信息(學號、姓名、性別、高數(shù)成績、英語成績、C語言成績)連接起來組成一個整體,建立雙向循環(huán)鏈表,運用主函數(shù)調(diào)用鏈表的功能函數(shù),用鏈表的建立、遍歷、修改、添加、刪除、輸出等操作實現(xiàn)各個功能。2.2功能描述 針對學生具體情況,進行學生成績管理。采用鏈表和文件存儲結(jié)構(gòu)進行學生信息的存儲;對學生的信息可以進行修改、刪除、添加、查詢;菜單函數(shù)輸入

6、學生成績顯示學生成績添加學生成績將文件內(nèi)信息插入鏈表刪除學生成績修改學生成績 主函數(shù)查詢學生成績退出系統(tǒng) 系統(tǒng)結(jié)構(gòu)圖 圖 2.1三、詳細設(shè)計主要寫出所設(shè)計數(shù)據(jù)結(jié)構(gòu)的詳細定義和組成;各個模塊的算法流程圖或偽碼表示。3.1學生成績的結(jié)構(gòu)體類型定義為:定義與系統(tǒng)需求有關(guān)的結(jié)構(gòu)體:姓名;性別:高數(shù)成績:英語成績,C語言成績struct student/學生信息 int no; char name20;/學生姓名 char sex4;/學生性別 float gaoshu;/學生高數(shù)成績 float yingyu;/學生英語成績 float cyuyan;/學生C語言成績 float ave; float

7、 sum; ;struct student stuMAX,*p;3.2 主函數(shù): 運行出菜單,然后根據(jù)菜單選擇執(zhí)行的功能,1輸入學生成績,2顯示學 生成績3添加學生成績,4刪除學生成績,5修改學生成績,6查詢學生成績 7.退出 head=(DuLNode*)malloc(sizeof(DuLNode);/*分配頭結(jié)點的空間*/ if(!head)/*判斷頭結(jié)點空間分配是否成功*/3.3 DuLNode *save(DuLinkList head) 保存函數(shù),將文件中的內(nèi)容保存在鏈表 里面:利用鏈式存儲把有關(guān)的相應(yīng)信息:姓名,性別,高數(shù)成績,英語成績, C語言成績存儲起來。建立一個txt格式的文

8、本文檔,定義并建立指針,利用指針把這些信息存儲 到這個文本文檔里面。 DuLNode *save(DuLinkList head) DuLinkList p,q;/*定義結(jié)點類型指針*/ FILE *fp ;/*定義文件指針*/ if(fp=fopen("consumer.txt","r+")=NULL) printf("cannot open this file.n"); fflush(stdin); getch(); exit(0); 3.4 DuLNode *find(DuLinkList&head,int n),查找函

9、數(shù),根據(jù)學生的姓名信息,對鏈表進行遍歷,然后將指針指向查找結(jié)點,將結(jié)點內(nèi)的信息讀出:調(diào)用查找函數(shù),輸入要查詢的學生學號,系統(tǒng)給出所要查找學生的資料返 回 主 菜 單輸 出學 生資 料 輸 入 要查 詢 對的 學 生姓 名 查詢 學生 資料 查詢學生資料 圖3.1 printf("輸入要查詢的學生姓名:"); fflush(stdin); gets(str); for(i=0;i<now;i+) if(!strcmp(,str) printf("t學號t姓名t性別t高數(shù)t英語tC語言t平均值n"); printf("t%d

10、t%st%st%.2ft%.2ft%.2ft%.2fn",stui.no,,stui.sex,stui.gaoshu,stui.yingyu,stui.cyuyan,stui.ave); printf("tt按任意鍵返回主菜單."); fflush(stdin); as=getch();3.5 DuLNode *alter(DuLinkList&head)更改函數(shù),根據(jù)學生學號利用鏈表的遍 歷找到存儲想要更改學生信息的鏈表,然后再鏈表內(nèi)更改學生信息,最后 利用文件指針將鏈表內(nèi)的信息重新輸入文件中:修改學生資 料返回主菜單判斷姓名是否正確輸

11、入要修改學生姓名 不正確 正確進行學生信息修改 修改學生資料 圖3.2 int i; char str20; printf("輸入要修改的學生姓名:"); fflush(stdin); gets(str); for(i=0;i<now;i+) if(!strcmp(,str) system("cls"); printf("ntt輸入修改學生信息n"); printf("n輸入學生學號:"); fflush(stdin); scanf("%d",&stui.no);

12、 printf("n輸入學生性別:"); fflush(stdin); gets(stui.sex); printf("n輸入學生高數(shù):"); fflush(stdin); scanf("%f",&stui.gaoshu); printf("n輸入學生英語:"); fflush(stdin); scanf("%f",&stui.yingyu); printf("n輸入學生C語言:"); fflush(stdin); scanf("%f",&

13、amp;stui.cyuyan); printf("nn"); break; 3.6 DuLNode *add(DuLinkList&head)添加函數(shù),在頭結(jié)點和末端結(jié)點之間添加新的結(jié)點,存儲新的學生信息,并且刪除文件中的內(nèi)容,將鏈表內(nèi)的新信息寫入文件: 返回主菜單判斷是否繼續(xù)輸入輸入學生的學號姓名成績信息添加學生成績 否 是 添加學生資料 圖3.3 printf("ntt輸入新插入學生隊信息n"); printf("n輸入學生學號:"); scanf("%d",&stunow.no); fflu

14、sh(stdin); printf("n輸入學生姓名:"); fflush(stdin); gets(); printf("n輸入學生性別:"); fflush(stdin); gets(stunow.sex); printf("n輸入學生高數(shù):"); fflush(stdin); scanf("%f",&stunow.gaoshu); printf("n輸入學生英語:"); fflush(stdin); scanf("%f",&stun

15、ow.yingyu); printf("n輸入學生C語言:"); fflush(stdin); scanf("%f",&stunow.cyuyan); printf("nn"); now=now+1; printf("是否繼續(xù)輸入?(Y/N)"); fflush(stdin); ch=getch(); system("cls"); 3.7. DuLNode *del(DuLinkList&head)刪除函數(shù),對鏈表進行遍歷,找到存儲想 要刪除信息的結(jié)點,然后在鏈表中刪除該結(jié)點,最

16、后刪除文件中的舊信息, 將鏈表中的全部信息輸入文件中:輸入要刪除的學生學號刪除學生資料返回主菜單刪 除資 料 刪除學生資料 圖3.4 int inum,i; printf("請輸入要刪除的學生的學號:"); fflush(stdin); scanf("%d",&inum); for(i=0;i<now;i+) if(stui.no=inum) if(i=now)now-=1; else stui=stunow-1; now-=1; break; system("cls");四、調(diào)試分析包括: 測試數(shù)據(jù); 測試輸出的結(jié)果;

17、時間復雜度分析;算法的改進設(shè)想。 運行開始(圖4.1) 選擇1輸入成績(圖4.2) 選擇2顯示成績(圖4.3) 選擇3添加學生信息(圖4.4) 選擇4刪除學生信息(輸入學號1)(圖4.5) 選擇5修改學生信息(修改謝海洋同學的)(圖4.6) 選擇6查詢學生信息(輸入姓名張瑜)(圖4.7) 選擇7退出(如圖4.8)五、使用說明應(yīng)該寫明程序的主要程序文件名,如果需要安裝,要有程序的安裝使用說明;#include<stdio.h>#include<conio.h>#include <stdlib.h>#include<string.h>/頭文件#def

18、ine MAX 80void input();void display();void insert();void del();void average();void find();void average();void modify(); /聲明錄入(input),顯示(display),排序(sort),添加(insert),刪除(del),修改(modify),查詢(find)函數(shù)。六、課設(shè)總結(jié)包括: 課程設(shè)計過程的收獲;遇到的問題,解決問題過程的思考(存在問題?問題如何解決?);程序調(diào)試能力的思考; 對數(shù)據(jù)結(jié)構(gòu)這門課程的思考; 在課程設(shè)計過程中對數(shù)據(jù)結(jié)構(gòu)課程的認識等內(nèi)由于本課題中的許多知識點都沒有學過都要靠自己到課外的資料中去查找。在用的時候難免出現(xiàn)這樣那樣的錯誤。如開始設(shè)計出來的菜單不是預想的那樣,而是總個窗中出現(xiàn)混亂。解決的這個問題的辦法是調(diào)整。一個系統(tǒng)的菜單和提示信息非常重要。如果沒有這些用戶根本不知道怎么用你設(shè)計的這個系統(tǒng)。在設(shè)計的調(diào)試過程中也無法順利的完成調(diào)試工作。有了一個清晰簡單的菜單和一些提示信息這后,調(diào)試過程完成的非常順利??偨Y(jié)出了一點點的經(jīng)驗如下:1、要對系統(tǒng)的功能和要求做出詳細的分析,并合理分解

溫馨提示

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

評論

0/150

提交評論