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

下載本文檔

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

文檔簡(jiǎn)介

1、淮陰工學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告選題名稱:學(xué)生成績(jī)管理系統(tǒng)系(院):數(shù)理學(xué)院專業(yè):信息與計(jì)算科學(xué)班級(jí):計(jì)科1102班姓名:徐連喜學(xué)號(hào):1104101233指導(dǎo)教師:周海巖學(xué)年學(xué)期:20112012學(xué)年 第 1 學(xué)期2012年06月06日21世紀(jì),科學(xué)技術(shù)突飛猛進(jìn),經(jīng)濟(jì)知識(shí)和信息產(chǎn)業(yè)初見端倪,特別是信息 技術(shù)和網(wǎng)絡(luò)技術(shù)的訊速發(fā)展和廣泛應(yīng)用,對(duì)社會(huì)的政治,經(jīng)濟(jì),軍事,文化等領(lǐng) 域產(chǎn)生越來越深刻。 學(xué)生成績(jī)管理系統(tǒng)是一個(gè)教育單位不可缺少的部分, 它的內(nèi) 容對(duì)于學(xué)校的決策者和管理者來說都至關(guān)重要。 本論文敘述到的學(xué)生成績(jī)管理系 統(tǒng)是用 IIS+ASP 網(wǎng)頁編程 +ACCESS 數(shù)據(jù)庫 +DREAMWEA

2、VER MX 2004+SQL 查 詢語言實(shí)現(xiàn)的。 重點(diǎn)介紹了學(xué)生成績(jī)管理系統(tǒng)的實(shí)現(xiàn)過程: 包括系統(tǒng)分析, 系統(tǒng) 調(diào)查,功能設(shè)計(jì),數(shù)據(jù)庫設(shè)計(jì),系統(tǒng)實(shí)現(xiàn),系統(tǒng)測(cè)試和調(diào)試等。本系統(tǒng)主要功能 有查詢學(xué)生成績(jī)、單個(gè)添加學(xué)生成績(jī)、批量添加學(xué)生成績(jī)、刪除學(xué)生成績(jī)、管理 頁面和修改管理員密碼等內(nèi)容。【關(guān)鍵詞】成績(jī)管理; 成績(jī)查詢; C+中文摘要1 緒論1.1 選題背景1.2 需求分析2 總體設(shè)計(jì)目錄000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002.1 程

3、序設(shè)計(jì)組成框圖00000000000000000000000000000000000000002.2模塊功能說明000000000000000000000002.3程序流程圖000000000000000000000000002.4主要函數(shù)之間相互調(diào)用00000000000010113 在設(shè)計(jì)過程中的感受00000000000012致謝00000000000000000000000000000000000000000000000013參考文獻(xiàn)0000000000000000000000000000000000000000000000014附錄:源程序清單00000000000000000000

4、000000000000000000151. 緒 論1.1 選題背景為了提高高校學(xué)生信息的管理效率, 方便對(duì)學(xué)生信息進(jìn)行管理、 學(xué)校里面的 學(xué)生和管理員方便去管理和查詢學(xué)生信息, 如再要進(jìn)行查詢, 就得在眾多的學(xué)生 信息中查找自己的成績(jī)信息, 面對(duì)學(xué)院大量的學(xué)生信息, 怎么可以即時(shí)而方便的 管理,學(xué)生只要登錄本系統(tǒng)就可以查找到自己的成績(jī)信息, 而管理員也方便去管 理每學(xué)期的學(xué)生的成績(jī)信息。 建立一個(gè)學(xué)生信息管理系統(tǒng), 使學(xué)生信息管理工作 規(guī)范化,系統(tǒng)化,程序化,避免學(xué)生管理的隨意性,提高信息處理的速度和準(zhǔn)確 性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改學(xué)生信息是必須而且十分迫切的工作。 2.1 需求分

5、析學(xué)生管理系統(tǒng)功能的信息量大, 數(shù)據(jù)安全性和保密性要求最高。 本功能實(shí)現(xiàn) 對(duì)專業(yè)信息、 學(xué)生信息、 教師信息情況信息的管理和統(tǒng)計(jì)、 課程信息和成績(jī)信息 查看及維護(hù)。系統(tǒng)管理員可以瀏覽、查詢、學(xué)生的基本信息,能添加、刪除和修 改學(xué)生信息, 這部分功能應(yīng)該由系統(tǒng)管理員執(zhí)行, 但是,刪除某條專業(yè)基本信息 記錄時(shí),應(yīng)實(shí)現(xiàn)對(duì)該專業(yè)的相關(guān)信息也級(jí)聯(lián)刪除。 并且還應(yīng)具有查詢, 并打印輸 出的功能設(shè)計(jì)不同用戶的操作權(quán)限和登陸方法、 對(duì)所有用戶開放的用戶提供學(xué)生成績(jī) 信息查詢、 由于本系統(tǒng)功能實(shí)現(xiàn)方面并不太復(fù)雜, 所以上面只是相關(guān)的學(xué)生信息 管理查詢的總體分析, 具體實(shí)現(xiàn)就主要體現(xiàn)在學(xué)生管理, 教師的管理和課程

6、的管 理這一塊,也就是重點(diǎn)實(shí)現(xiàn)查詢與添加學(xué)生信息,以及對(duì)成績(jī)信息管理。2 總體設(shè)計(jì)(i)程序設(shè)計(jì)組成框圖1.按班級(jí)輸出學(xué)生成績(jī)單2.按姓名查詢學(xué)生成績(jī)管理系統(tǒng)3.增加學(xué)生4.刪除學(xué)生5.按班級(jí)修改學(xué)生成績(jī)6.按班學(xué)期改學(xué)生成績(jī)7保存所有學(xué)生信息8顯示不及格學(xué)生成績(jī)9. 按平均成績(jī)排序并輸出成績(jī)10. 退出(2)模塊功能說明1輸出功能:完成全部學(xué)生記錄的顯示。2查詢功能:輸入姓名可以查詢學(xué)生的詳細(xì)信息3增加功能:增加新學(xué)生的信息。4刪除功能:刪除學(xué)生信息。5修改功能:修改學(xué)生的錯(cuò)誤信息。6保存功能:保存已輸入信息。7讀取功能:讀取已輸入信息。8顯示功能:按要求顯示學(xué)生記錄。9排序功能:按要求完成

7、對(duì)學(xué)生信息的排序。10退出系統(tǒng)。(3) 程序流程圖(4) 主要函數(shù)之間相互調(diào)用如下:主函數(shù)main () 的調(diào)用switch(choice)case 1:Outputl nformati on( );break;case 2:Desplay In foBystude ntName();break;case 3:p=MallocNode();Get In formati on( p); I nsertOn eNode(p); break; case 4:DeleteNodeBystude ntNumber();break;case 5:Cha ngeMarkByName();break;case

8、 6:Cha ngeMarkByNumber();break;case 7:SaveL in kToFile();break;case 8:DesplayMarkSegme nt();break;case 9:CompositorByTotalMark();break;case 10:SaveLi nkToFile();總結(jié)首先經(jīng)過一周的編程實(shí)習(xí), 并在后一段的報(bào)告總結(jié), 我對(duì)數(shù)據(jù)結(jié) 構(gòu)這門科有新的認(rèn)識(shí), 本人實(shí)在是獲益不淺! 要想編寫一個(gè)準(zhǔn)確、 高 效并有使用價(jià)值的程序, 一定先要對(duì)課本知識(shí)熟悉, 還要掌握必要的 上機(jī)操作能力,寫程序其實(shí)很容易而關(guān)鍵在于調(diào)試程序。這次設(shè)計(jì) , 讓我重新掌握了

9、數(shù)據(jù)結(jié)構(gòu) ,而且還得到了用數(shù)據(jù)結(jié)構(gòu)解決實(shí)際問題的 寶貴經(jīng)驗(yàn)。其次 , 通過此次編程我也發(fā)現(xiàn)了自己在學(xué)習(xí)中的錯(cuò)誤和不足, 復(fù) 習(xí)了以前學(xué)過的知識(shí)。 同時(shí)也學(xué)到了一些沒學(xué)過的知識(shí), 讓我從中收 益非淺,也為期末考試準(zhǔn)備了一下! 更重要的是培養(yǎng)了獨(dú)立思考問題 和解決問題的能力,熟悉了一些基本操作和解決問題的方法!致謝因?yàn)槌醮谓佑|等原因此次設(shè)計(jì)遇到了許多問題 ,我深刻體會(huì)到老 師發(fā)揮的重要作用 , 數(shù)據(jù)結(jié)構(gòu)程序?qū)ξ覀儊碚f比較難 ,在匆忙的學(xué)習(xí) 中更是難上加難 ,似乎覺得自己僅是個(gè)匆匆過客 ,但在老師的幫助下我 學(xué)會(huì)了如何調(diào)試 ,如何查找系統(tǒng)沒有提示的錯(cuò)誤 ,最后終于排除萬難把 程序搞定 ,體會(huì)到原來編

10、程也挺有意思的快感 .我想沒有老師的幫助我 很難在短期內(nèi)把程序設(shè)計(jì)做的這樣好 , 在此特地感謝老師的幫助。參考文獻(xiàn)1 李麗娟 . C 語言程序設(shè)計(jì)教程(第二版) . 北京:人民郵 電出版社 20092 刁成嘉 . C 語言程序設(shè)計(jì)論文 D. 北京:清華大學(xué)出版社 20043 楊文軍,楊柳 . C 語言程序設(shè)計(jì)教程 M. 北京:清華大學(xué) 出版社 20104 周啟海 . C 語言程序設(shè)計(jì)報(bào)告 R. 北京:中國(guó)水利工程出 版社 2005譚浩強(qiáng) . C 程序設(shè)計(jì)(第三版) M. 北京:清華大學(xué)出版 社 2005附錄 源程序清單 #include<stdio.h> #include<c

11、onio.h> #include<malloc.h> #include<string.h> typedef struct STUDENTchar studentNumber10;/* 學(xué)生學(xué)號(hào) */ char studentName20;/* 學(xué)生姓名 */ char className20;/* 班級(jí)名稱 */ char yearName20;/* 學(xué)期名稱 */ float mark1;/* 第 1 門成績(jī) */ float mark2;/* 第 2 門成績(jī) */ float mark3;/* 第 3 門成績(jī) */ struct STUDENT *next;S

12、TUDENT;STUDENT *headLink;/* 鏈表表頭指針 */ /* 以下是函數(shù)聲明 */void ReadInfoFormFile(void);void DesplayMenu(void);void CreateHeadLink(void); STUDENT *MallocNode(void);void GetInformation(STUDENT *t);void OutputInformation(void);void DesplayInfoBystudentName(void); void DesplayOneNode(STUDENT *t); void InsertOne

13、Node(STUDENT *t);void DeleteNodeBystudentNumber(void); void ChangeMarkByName(void);void ChangeMarkByNumber(void);void SaveLinkToFile(void);void DesplayMarkSegment(void); void CompositorByTotalMark(void); int choose;/* 用于接受用戶的選擇 */ /* 主函數(shù) */ void main()CreateHeadLink(); ReadInfoFormFile();DesplayMenu

14、();/* 函數(shù)功能:從文件中讀學(xué)生信息到鏈表中 */ void ReadInfoFormFile(void)FILE *fp;STUDENT *p;fp=fopen("student.txt","r");if(!fp)printf(" 文件不存在 n");return;p=MallocNode();while(fscanf(fp,"%s%s%s%f%f%f",p->studentNumber,p->studentName,p->cl assName,&(p->mark1),&

15、;(p->mark2),&(p->mark3)>0)InsertOneNode(p);p=MallocNode();fclose(fp);/* 函數(shù)功能:顯示菜單,根據(jù)用戶的輸入 完成相應(yīng)的功能*/void DesplayMenu(void)STUDENT *p;printf(" 請(qǐng)選擇相應(yīng)功能 nn");printf("| 1 按班級(jí)輸出學(xué)生成績(jī)單 |n");printf("| 2按姓名查詢 |n");printf("| 3增加學(xué)生 |n");printf("| 4刪除學(xué)生 |

16、n");printf("| 5按班級(jí)修改學(xué)生成績(jī)|n");printf("| 6按學(xué)期修改學(xué)生成績(jī)|n");printf("| 7 保存所有學(xué)生信息 |n");printf("| 8顯示不及格學(xué)生成績(jī)|n");printf("| 9 按平均成績(jī)排序并輸出績(jī) |n");printf("| 10 退出 |nn");scanf("%d",&choose);/* 取得用戶的選擇 */switch(choose)case 1:OutputInfor

17、mation();/* 顯示所有學(xué)生的信息 */ break;case 2:DesplayInfoBystudentName(); break;case 3: p=MallocNode();/* 先申請(qǐng)一個(gè)新結(jié)點(diǎn) */GetInformation(p);/* 要求用戶輸入信息到新結(jié)點(diǎn)中 */ InsertOneNode(p);/* 將新結(jié)點(diǎn)加到鏈表中 */ break;case 4:DeleteNodeBystudentNumber();/* 根據(jù)用戶輸入的學(xué)號(hào)刪除該學(xué)生 */ break;case 5:ChangeMarkByName();/* 根據(jù)用戶輸入的姓名修改學(xué)生成績(jī) */ brea

18、k;case 6:ChangeMarkByNumber();/* 根據(jù)用戶輸入的學(xué)號(hào)修改學(xué)生成績(jī) */ break;case 7:SaveLinkToFile();/* 保存數(shù)據(jù) */ break;case 8:DesplayMarkSegment();/* 顯示不及格的學(xué)生成績(jī) */ break;case 9:CompositorByTotalMark();/* 按平均成績(jī)排序 */ break;case 10:SaveLinkToFile();/* 保存數(shù)據(jù)后再退出 */ free(headLink);break; default: break;DesplayMenu();/* 遞歸調(diào)用

19、*/ /* 函數(shù)功能:建立鏈表表頭*/void CreateHeadLink(void)STUDENT *p; p=(STUDENT*)malloc(sizeof(STUDENT);headLink=p; p->next=NULL; /* 函數(shù)功能:申請(qǐng)一個(gè)新結(jié)點(diǎn),并將其初始化*/STUDENT *MallocNode(void)STUDENT *p;int i;p=(STUDENT*)malloc(sizeof(STUDENT); if(p=NULL)return NULL;for(i=0;i<10;i+) p->studentNumberi='0'for(

20、i=0;i<20;i+) p->studentNamei='0'for(i=0;i<20;i+) p->classNamei='0'p->mark1=0.0;p->mark2=0.0;p->mark3=0.0; p->next=NULL;return p; /* 函數(shù)功能:取得用戶輸入的學(xué)生信息*/ void GetInformation(STUDENT *t)printf(" 請(qǐng)輸入學(xué)生學(xué)號(hào): n"); scanf("%s",t->studentNumber);pri

21、ntf(" 請(qǐng)輸入學(xué)生姓名: n"); scanf("%s",t->studentName);printf(" 請(qǐng)輸入該生所在班級(jí): n"); scanf("%s",t->className);printf(" 請(qǐng)輸入第 1 門成績(jī): n"); scanf("%f",&(t->mark1);printf(" 請(qǐng)輸入第 2 門成績(jī): n"); scanf("%f",&(t->mark2);print

22、f(" 請(qǐng)輸入第 3 門成績(jī): n");scanf("%f",&(t->mark3);/*函數(shù)功能:在鏈表的結(jié)尾處增加一個(gè)結(jié)點(diǎn)*/void InsertOneNode(STUDENT *t)STUDENT *p;p=headLink;while(p->next)p=p->next;p->next=t;/* 函數(shù)功能:根據(jù)用戶輸入的學(xué)生姓名顯示該學(xué)生的信息 */void DesplayInfoBystudentName(void)STUDENT *p;char studentName20;char flag=0;p=head

23、Link->next;printf(" 請(qǐng)輸入學(xué)生姓名: n");scanf("%s",studentName);while(p) if(strcmp(p->studentName,studentName)=0)printf(" 學(xué)號(hào)t姓名t班級(jí)t成績(jī)1t成績(jī)1t成績(jī)3t總成績(jī)t平均成績(jī) nn");DesplayOneNode(p);flag=1;break;p=p->next;if(!flag)printf(" 對(duì)不起,不存在姓名為 %s 的學(xué)生 n",studentName);/* 函數(shù)功能:

24、輸出一個(gè)結(jié)點(diǎn)的信息 */ void DesplayOneNode(STUDENT *t) printf("%st",t->studentNumber);printf("%st",t->studentName); printf("%st",t->className); printf("%.2ft",t->mark1); printf("%.2ft",t->mark2); printf("%.2ft",t->mark3); printf(&qu

25、ot;%.2ft",t->mark1+t->mark2+t->mark3); printf("%.2ftn",(t->mark1+t->mark2+t->mark3)/3); /* 函數(shù)功能:根據(jù)用戶輸入的學(xué)號(hào)刪除該學(xué)生 */ void DeleteNodeBystudentNumber(void) char studentNumber10;STUDENT *p,*q;char flag=0;printf(" 請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào): ");scanf("%s",studentNumber

26、);p=headLink;q=headLink->next;while(q)if(strcmp(q->studentNumber,studentNumber)=0)p->next=q->next;free(q);flag=1;break;p=p->next;q=q->next;if(!flag)printf(" 不存在該學(xué)號(hào)的學(xué)生 n");return;printf(" 成功刪除 n");/* 函數(shù)功能:顯示所有學(xué)生的信息*/ void OutputInformation(void)STUDENT *p;p=headL

27、ink->next;if(p=NULL)printf(" 現(xiàn)在沒有學(xué)生信息,請(qǐng)先輸入學(xué)生信息 nn");return;printf(" 學(xué)號(hào)t姓名t班級(jí)t成績(jī)1t成績(jī)1t成績(jī)3t總成績(jī)t平均成績(jī) nn");while(p)DesplayOneNode(p);p=p->next;/*函數(shù)功能:根據(jù)輸入的班級(jí)修改成績(jī)*/void ChangeMarkByName(void)STUDENT *p;int a;char studentName20;char flag=0;float mark1,mark2,mark3;p=headLink->n

28、ext;printf(" 請(qǐng)輸入學(xué)生班級(jí) :n");scanf("%d",&a);printf(" 請(qǐng)輸入學(xué)生姓名: n");scanf("%s",studentName);while(p)if(strcmp(p->studentName,studentName)=0)printf(" 請(qǐng)輸入新的第 1 門成績(jī): n");scanf("%f",&mark1);printf(" 請(qǐng)輸入新的第 2 門成績(jī): n");scanf("

29、;%f",&mark2);printf(" 請(qǐng)輸入新的第 3 門成績(jī): n");scanf("%f",&mark3);p->mark1=mark1;p->mark2=mark2;p->mark3=mark3;flag=1;printf(" 修改成功 n"); break; p=p->next;if(!flag)printf(" 對(duì)不起,不存在班級(jí)為 %s 的學(xué)生 n",studentName); /* 函數(shù)功能:根據(jù)輸入的學(xué)期修改成績(jī) */ void ChangeM

30、arkByNumber(void) STUDENT *p;int b;char studentNumber20;char flag=0;float mark1,mark2,mark3; p=headLink->next;printf(" 請(qǐng)輸入學(xué)生所在學(xué)期 :n"); scanf("%d",&b);printf(" 請(qǐng)輸入學(xué)生學(xué)號(hào): n"); scanf("%s",studentNumber);while(p) if(strcmp(p->studentNumber,studentNumber)=

31、0)printf(" 請(qǐng)輸入新的第 1 門成績(jī): n"); scanf("%f",&mark1);printf(" 請(qǐng)輸入新的第 2 門成績(jī): n"); scanf("%f",&mark2);printf(" 請(qǐng)輸入新的第 3 門成績(jī): n"); scanf("%f",&mark3);p->mark1=mark1;p->mark2=mark2;p->mark3=mark3;flag=1;printf(" 修改成功 n&quo

32、t;); break; p=p->next;if(!flag)printf(" 對(duì)不起,不存在學(xué)期為 %s 的學(xué)生 n",studentNumber);/* 函數(shù)功能:保存鏈表數(shù)據(jù)到文件中*/void SaveLinkToFile(void)STUDENT *p;FILE *fp;p=headLink->next;if(p=NULL)printf(" 現(xiàn)在沒有學(xué)生信息,請(qǐng)先輸入學(xué)生信息 nn");return;fp=fopen("student.txt","w+");if(!fp)printf(&quo

33、t; 文件不存在 n");return;while(p)fprintf(fp,"%s %s %s %f %f %fn",p->studentNumber,p->studentName,p-> className,p->mark1,p->mark2,p->mark3);p=p->next;fclose(fp);/* 函數(shù)功能:不及格學(xué)生成績(jī)*/void DesplayMarkSegment(void)STUDENT *p;int count=0;p=headLink->next;printf("60 分以下 (不及格 ) 的學(xué)生成績(jī)?nèi)缦拢?n");printf(" 學(xué)號(hào)t姓名t班級(jí)t成績(jī)1t成績(jī)1t成績(jī)3t總成績(jī)t平均成績(jī)nn");while(p)if(6>(int)(p->mark1/10)|(6>(int)(p->mark2/10)|(6>(int)(p->mark3/10)/* 只要有一科不及格就認(rèn)為該生不及格 */count+;Desp

溫馨提示

  • 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)論