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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

7、對學生信息的排序。10退出系統(tǒng)。(3) 程序流程圖(4) 主要函數(shù)之間相互調用如下:主函數(shù)main () 的調用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();總結首先經(jīng)過一周的編程實習, 并在后一段的報告總結, 我對數(shù)據(jù)結 構這門科有新的認識, 本人實在是獲益不淺! 要想編寫一個準確、 高 效并有使用價值的程序, 一定先要對課本知識熟悉, 還要掌握必要的 上機操作能力,寫程序其實很容易而關鍵在于調試程序。這次設計 , 讓我重新掌握了

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

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

11、onio.h> #include<malloc.h> #include<string.h> typedef struct STUDENTchar studentNumber10;/* 學生學號 */ char studentName20;/* 學生姓名 */ char className20;/* 班級名稱 */ char yearName20;/* 學期名稱 */ float mark1;/* 第 1 門成績 */ float mark2;/* 第 2 門成績 */ float mark3;/* 第 3 門成績 */ 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ù)功能:從文件中讀學生信息到鏈表中 */ 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ù)用戶的輸入 完成相應的功能*/void DesplayMenu(void)STUDENT *p;printf(" 請選擇相應功能 nn");printf("| 1 按班級輸出學生成績單 |n");printf("| 2按姓名查詢 |n");printf("| 3增加學生 |n");printf("| 4刪除學生 |

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

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

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

19、*/ /* 函數(shù)功能:建立鏈表表頭*/void CreateHeadLink(void)STUDENT *p; p=(STUDENT*)malloc(sizeof(STUDENT);headLink=p; p->next=NULL; /* 函數(shù)功能:申請一個新結點,并將其初始化*/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ù)功能:取得用戶輸入的學生信息*/ void GetInformation(STUDENT *t)printf(" 請輸入學生學號: n"); scanf("%s",t->studentNumber);pri

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

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

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

24、輸出一個結點的信息 */ 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ù)用戶輸入的學號刪除該學生 */ void DeleteNodeBystudentNumber(void) char studentNumber10;STUDENT *p,*q;char flag=0;printf(" 請輸入要刪除的學生學號: ");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(" 不存在該學號的學生 n");return;printf(" 成功刪除 n");/* 函數(shù)功能:顯示所有學生的信息*/ void OutputInformation(void)STUDENT *p;p=headL

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

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

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

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

31、0)printf(" 請輸入新的第 1 門成績: n"); scanf("%f",&mark1);printf(" 請輸入新的第 2 門成績: n"); scanf("%f",&mark2);printf(" 請輸入新的第 3 門成績: 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(" 對不起,不存在學期為 %s 的學生 n",studentNumber);/* 函數(shù)功能:保存鏈表數(shù)據(jù)到文件中*/void SaveLinkToFile(void)STUDENT *p;FILE *fp;p=headLink->next;if(p=NULL)printf(" 現(xiàn)在沒有學生信息,請先輸入學生信息 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ù)功能:不及格學生成績*/void DesplayMarkSegment(void)STUDENT *p;int count=0;p=headLink->next;printf("60 分以下 (不及格 ) 的學生成績如下: n");printf(" 學號t姓名t班級t成績1t成績1t成績3t總成績t平均成績nn");while(p)if(6>(int)(p->mark1/10)|(6>(int)(p->mark2/10)|(6>(int)(p->mark3/10)/* 只要有一科不及格就認為該生不及格 */count+;Desp

溫馨提示

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

最新文檔

評論

0/150

提交評論