最新C語言案例實踐學生成績管理系統_第1頁
最新C語言案例實踐學生成績管理系統_第2頁
最新C語言案例實踐學生成績管理系統_第3頁
最新C語言案例實踐學生成績管理系統_第4頁
最新C語言案例實踐學生成績管理系統_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、學習好資料常熟理工學院2016年春季學期C語言案例實踐報告題目:學生成績管理系統設計學號:092715217姓名:梁偉指導教師:趙秀蘭日期:2016.05.10目錄主要包含下列內容:(1)系統分析:包括設計題目、設計內容以及系統功能需求分析;(2)系統設計:包括總體設計(主要功能模塊的劃分)及詳細設計(各功能模塊的算法設計以及對應的流程圖);(3)系統實現:包括使用的所有變量、自定義函數、結構體的說明, 以及完整源程序清單,關鍵代碼應加注釋。(4)系統運行:包括系統操作使用的簡單說明,使用測試數據運行 的結果。(5)總結:包括課程設計過程中的學習體會與收獲,出現的問題和 解決的方法,沒有完成的

2、部分及原因,對C項目實踐課程的認識以及 自己的建議等內容。更多精品文檔目錄正文 31. 系統需求分析 32. 系統總體設計 43詳細設計 64. 系統測試 95. 軟件使用說明書 13總結 14附錄:部分原程序代碼 15正文隨著信息技術在管理上越來越深入而廣泛的應用,管理信息系統的實施在技 術上已逐步成熟。管理信息系統是一個不斷發展的新型學科,任何一個單位要生 存要發展要高效率的把內部活動有機的組織起來, 就必須建立自身特點相適應的 管理信息系統。本組設計的是一個關于學生信息管理的數據庫系統, 通過這個系統,管理員 可以簡捷方便的對學生信息進行增加、 刪除、修改等功能,而用戶也可以通過這 個系

3、統對學生信息進行查詢等功能。1. 系統需求分析1.1需求概述:(1)學生信息錄入功能;(2)學生信息瀏覽功能;(3)學生信息查詢(或排序)功能;(4)學生信息刪除功能;(5)學生信息修改功能;1.2需求說明:(1)學生信息包括姓名學號和成績,并且要求學生號不重復。(2)學生信息的顯示要求有一定的規范格式。(3)對學生信息應能夠分別按學號及按姓名兩種方式進行查詢,要求能返回所 有符合條件的學生的信息。(4)對學生信息的修改應逐個地進行,在一個學生的信息的更改不影響其他的 學生記錄。(5)所設計的系統應以菜單方式工作,應為用戶提供清晰的使用提示,依據用 戶的選擇來進行各種處理,并要求在此過程中能盡

4、可能地兼容用戶使用過程中的 異常情況。更多精品文檔學習-好資料2. 系統總體設計一、編寫目的根據需求分析文檔,初步提出問題的解決方案,以及軟件系統的體系結構和 數據結構的設計方案,并寫出書面文檔總體設計說明書,為下一步進行詳細設計 做準備。二、總體設計1. 功能劃分該系統可以按功能進行模塊劃分,如圖 1所示。圖1系統模塊圖其中:(1)菜單選擇模塊完成用戶命令的接受,此模塊也是學生信息管理的入口,用 戶所要進行的各種操作均需在此模塊中進行選擇, 并進而調用其他模塊實 現相應的功能。(2)信息輸入模塊完成學生信息的輸入功能,輸入信息包括姓名學號和成績。(3)信息瀏覽模塊完成已錄入學生信息的顯示。(

5、4)信息查詢模塊完成學生信息的查詢,查詢時對應有按編號查詢和按姓名查 詢兩種方式。(5)信息修改模塊完成學生信息的修改功能。(6)信息刪除功能模塊完成學生信息的刪除功能。2. 數據結構本系統中主要的數據結構就是學生的信息,包含姓名學號和成績,在處理過 程中各項可以作為一個學生的不同屬性來進行處理。3. 程序流程系統的執行應從功能菜單選擇開始, 依據用戶的選擇來進行后續的處理,直 到用戶選擇退出系統為止,其間應對用戶的選擇做出判斷及異常處理。系統的流 程圖如圖2所示:圖2程序流程圖學習-好資料3詳細設計1. 數據結構(1) 性別:emum Sexmale,female;(2) 學歷: enum

6、Educationhighjunior,college,master,doctor;(3) 日期:Struct Dateint year;int mon th;int day;(4)學生信息:Struct Info學生號*/姓名*/性別*/出生年月*/學歷*/職務*/工資*/地址*/電話*/char nu m5 ;/*char n ame8;/*enum Sex sex;/*struct Date birthday;/*enum Educatio n educati on;/*char duty8;/*double wage;/*char addr12;/*char phon e8;/*;2.

7、 各個功能模塊的處理流程對應于總體設計時的系統模塊圖,各個功能模塊的處理流程如下:(1) 信息輸入模塊輸入三個學生信息以初始化系統;讀入學生信息;(2) 信息瀏覽模塊依次輸出學生信息;(3) 信息查詢模塊while (繼續查詢)if(按編號查詢)讀入查詢的學生編號;順序讀出一個學生的信息;if(該學生信息的編號符合條件)學習好資料輸出該學生的信息;else if(按姓名查詢)讀入查詢的學生姓名;順序讀出一個學生的信息;if(該學生信息的姓名符合條件)輸出該學生的信息;else提示輸入不合適; 提示是否繼續查詢;(4)信息修改模版while ( 繼續修改)提示并讀入待修改的學生的編號;順序讀出一

8、個學生的信息;if (該學生信息的編號符合條件)將學生的信息進行修改;顯示修改后所有學生的信息;(5)信息刪除模塊while (繼續刪除)提示并讀入待刪除的學生號; 查找是否有符合條件的學生記錄; if (有符合條件的記錄)while (所有學生信息未讀完)讀出下一條記錄;if (此條記錄不是待刪除記錄)刪除該學生信息記錄;else提示沒有符合條件的記錄存在;(7)信息排序模塊if (按姓名排序)將第i個學生姓名和他的下一個學生姓名作對比通過對比大小將學生信息交換依次排序;else if(按學號排序)將第i個學生學號和他的下一個學生學號作對比通過對比大小將學生信息交換依次排序;else if

9、(按成績排序)將第i個學生學號和他的下一個學生學號作對比通過對比大小將學生信息交換依次排序;打印排序后的學生信息;更多精品文檔4. 系統測試一、設置測試數據根據以下幾個列子分析測試:1.錄入:姓名tom學號0001成績982.錄入:姓名lili學號0002成績563.錄入:姓名alin學號0003成績742.顯示所有學生的信息。3.增加一個學生的信息姓名joh n學號0004成績884. 刪除學生號為0002的學生信息。5. 將alin 學號的信息由0003改為00056. 查找學號為0001的學生信息。7. 將所有學生的信息按成績排序。8. 退出。、測試結果及分析(1) 學生信息錄入分析圖如

10、圖1所示:學習-好資料(2) 學生信息系統菜單界面如圖2所示:L 1E;;網逕152梁R作業?海序文件生百理系范exE X*章林學生菅土里系纟充*處*字*1;斷學生倩息 匚增加孝生特息. 3;刪除學生信息 4:修改學生信息 5:查找學生信息 乎學生彳瓷懇 7: exit更多精品文檔(3)顯示學生信息如圖3所示E;網洛152彌咋坐程序文禪D亡bug學生管理手選尼心村*枠豐生管理* d|o|c*!>: *各各各-In ml i_ o al 1x t 1 a壬號號輦學11- O O02OOO換il:學習好資料學習-好資料(4)學生信息錄入圖如圖4所示:(5)學生信息刪除如圖5所示更多精品文檔(

11、6) 學生信息修改圖如圖6所示:KJ E;網紳翠梁偉昨業握序文伸iDebu或學生管理毒統,exe枠* 學牛壬里條壬充*片本*按姓名查找需要修改的學生信息輸人1,撞學號查找需要修改的學生信息輸入21j.n請輸入需要修改學生的姓名| alin姓名* alin 學號;0003 分數;74 請重新輸入該學生的名字、學號、分數 alin 0005 74姓名:邊lin 學號:0005 分數:?4專勰蠶生信息請如退出請按任意鍵:(7) 學生信息查找圖如圖7所示:E3電:麗竄152彌在業程睜文酢D昔bug學主管理系統學生管理系銃 * jfcsfc zfc * * * * * 9C * # *3(C按硅名查找輸

12、入1.按學號査找輸入22請輸入需要查找學生的學號00D1姓召:tom 學號I 0001分敵1 98還需查詢請按X退出請按任意鍵:學習-好資料(8) 學生信息排序圖如圖8所示:荀52站咋業閔序立常Dubug學生管理系統小e未*那*學牛2條統*:t:*木襯*辱*按姓名排序龜入1,按學號排序輸入N按成績排序輸入3Me衣地丈史*去乂蟲半1管甲 系 纟充傘朵床*申覃傘就*水車+ * 名名名號號 學學1±O-004 87 8 8gI *數數咯分分翎夕5. 軟件使用說明書(1) 根據正確的提示安裝軟件。(2) Intel486以上系列、AMD K6以上系列等PC臺式機和便攜式電腦都可 運行。(3)

13、 打開該程序系統,瀏覽菜單,根據需要選擇功能,進行各項操作。 操作如下:輸入三名學生信息以初始化程序根據菜單提示輸入需要的信息即可完成指令。當信息輸入正確,進入你所需要的菜單程序中: 學生信息:顯示姓名、學號、成績。設計總結在本系統的開發過程中,由于組是初次開發軟件,在知識、經驗方面都存 在著不足。另外,在整個開發的過程中,時間也比較倉促。因此,該系統必然會 存在一些缺陷和不足。因為對學生信息管理的整個流程不夠熟悉, 在需求分析時 未能做到完全滿足用戶的需求。盡管本管理系統存在著很多不足,但其功能全面、易于日后程序更新、數據 庫管理容易、界面友好、操作方便、效率高、安全性好等優點是本管理系統所

14、必 需的。通過開發這個系統,我組掌握了的項目基本開發過程, 用到的知識鞏固了 我組對C語言的學習,但在這次設計中的最大收獲并不是掌握這幾門開發工具的 應用,而是學會了設計系統的思維方法,以及與同學們之間相互幫助的精神。學習好資料附錄:部分源程序代碼#i nclude <stdio.h>/#in elude <win dows.h>#in elude vconi o.h>#i nclude <process.h>#in clude <math.h>#in clude <stri ng.h>寫入頭文件typedef struct S

15、TU/char n ame10;char num10;int grade;st;建立鏈表typedef struct node st data;struct node *n ext;no de;no de* jia nli();/int se();void xia nshi (node *head);void zen gjia( node *head); no de* sha nchu (node *head);void xiugai (node *head); void chazhao (node *head);void paixu (node *head);函數定義no de* jia n

16、li()/int i;node *he,*tail,*p;he二tail二NULL;建立函數printf(nt學生管理系統初始化n*nnn請先輸入3位學生的有效信息:n");for(i=0;i<3;i+)p=(node *)malloc(sizeof( no de);p-> next二NULL;printf(”請輸入第d位學生的信息n",i+1);sea nf("%s %s %d",p->data .n ame,p->data .num,&p->data.grade); while(atoi(p->data .

17、num)=0|p->data.grade<0)printf("printf("您輸入的信息有誤,請重新輸入!"); 請輸入第d位學生的信息n",i+1);sea nf("%s %s %d",p->data .n ame,p->data .num,&p->data.grade); if(he=NULL)he=p;elsetail->n ext=p; tail=p;p=he;system("els");學生管理printf( "*、nt系統初始化 n*nnnn&qu

18、ot;);while(p!=NULL)prin tf("姓名:%s學號:%s分數:%dn",p->,p->data.num,p->data.grade);p=p->n ext;prin tf("已錄入三個基礎學生信息,按任意鍵進入學生管理系統菜單n");geteh(); retur n he;mai n()void/主函數入口int a;node *head; system("eolor 2e"); head=jia nli (); dosystem("els");a=se

19、(); switeh(a)/輸入選擇case 1:xia nshi(head);break;case 2:ze ngjia(head);break;case 3:head=sha nchu(head);break;case 4:xiugai(head);break;case 5:chazhao(head);break;case 6:paixu(head);break;case 7:exit(0);break; while(1);int/菜單界面se()int i,t;char s10;char*me n叩二*學 生 管*、nn""n","3:刪除學生信息

20、n","6:排顯示學生信息n","2:n","4:修改學生信息n","5:序學生理系統 增加學生信息 查找學生信息信息n","7:exitnn""*、n"for(i=0;i<9;i+)prin tf("%s",me nui); doprin tf("請輸入數字命令:");scan f("%s",s);t=atoi(s);while(t<0|t>7);return t;void/顯示學生信息

21、函數xia nshi (node*head)更多精品文檔node *p; system("cls");p=head;printf(學生管理系統*nn");while(p!二NULL)prin tf("姓名:%s學號:%s分學習-好資料 數:dn”,p->,p->data.num,p->data.grade);p=p->n ext;getch();zen gjia( node*head)void/增加學生信息函數 node *p,*tail,*t;system("cls"); p=head;pr

22、intf(學生管理系統*nn");更多精品文檔while(p!二NULL)tail=p;p=p->n ext;p=(node *)malloc(sizeof( no de);p-> next二NULL;printf(”請輸入新增學生的學號:");sca nf("%s",p->data .nu m);while(atoi(p->data .num)=0)system("cls");printf(學 生 管 理 系*、nn")printf(”您輸入的學號有誤,請重新輸入!");prin tf(&

23、quot;請輸入新增學生的學號:");sca nf("%s",p->data .nu m);t=head;while(t!=NULL)if(atoi(p->data .num )=atoi(t->data .num)t=head;*nn);system("cls");printf( "*學生的學號已被使用,請重新輸入學號! n");prin tf("請輸入新增學生的學號:sca nf("%s",p->data. nu m);con ti nue;學習-好資料t=t- &g

24、t;n ext;printf("請輸入該學生的名字、分數n");sea nf("%s %d",p->data .n ame,&p->data.grade);tail->n ext=p; tail=p;p=head;system("cls");p=head;printf(學生管理系統*nn");while(p!二NULL)printf(" 姓名:%s學號:%s數:%dn",p->,p->data.num,p->data.grade);p=p-&g

25、t;n ext; printf("n按任意鍵返回n");getch();*head)no de*sha nchu (node/刪除學生信息函數char d10;node *p,*t,*flag=NULL;system("cls");printf(學生管理系統*nn");printf(”請輸入需要刪除學生的學號:");sca nf("%s",d); t=head;while(strcmp(d,t->data. num)!=0&&t-> next!二NULL) flag=t;t=t- >

26、;n ext;if(strcmp(d,t->data .nu m)=0) if(strcmp(d,head->data. nu m)=0) p=head;學習好資料更多精品文檔head二head->n ext; free(p);elseflag->n ext=t- >n ext;free(t);elseprintf(”沒有搜索到需要刪除的學生信息,請核對后再輸入 getch();p=head; system("cls");printf( "*while(p!二NULL)prin tf(" 姓名:%s學號:%s數:%dn&qu

27、ot;,p->,p->data.num,p->data.grade); p=p->n ext;printf("n按任意鍵返回n");getch();retur n(head);void/修改學生信息函數int d,m,flag;char c10, n10,ex;node *p;p=head;do system("cls");printf( "*printf(牛管壬理 系幺統 *、nn");xiugai (node*");*head)牛管壬理 系幺統*門門");"按

28、姓名查找需要修改的學生信息輸入1,按學號查找需要修改的學生信息輸入2t");sca nf("%s",c);while(atoi(c)!=1 &&atoi(c)!=2) printf(”輸入的指令有誤,請重新輸入n");printf(”按姓名查找需要修改的學生信息輸入1,按學號查找需要修改的學生信息輸入2t");sea nf("%s",c);if(atoi(c)=1)printf("請輸入需要修改學生的姓名:");sea nf("%s", n);m=strcmp( n,p

29、->data. name);while(m!=O&&p-> next!二NULL)p=p->n ext;m=strcmp( n,p->data .n ame);if(m=0)prin tf("n 姓名:%s學號:%s分數: %dn",p->,p->data.num,p->data.grade);flag=1;elseprintf("沒有搜索到需要修改的學生信息,請核對后再輸入n");flag=0; if(atoi(c)=2)printf("請輸入需要修改學生的學號:&q

30、uot;);sca nf("%d",&d);while(d!=atoi(p->data. num)&&p->n ext!=NULL)p=p->n ext;if(d=atoi(p->data .num)prin tf("n 姓名:%s學號:%s分數: %dn",p->,p->data.num,p->data.grade);flag=1;elseprintf(”沒有搜索到需要修改的學生信息,請核對后再輸入n");flag=O; if(flag=1)printf(&q

31、uot;請重新輸入該學生的名字、學號、分數n ”);sca nf("%s %s %d",p->data .n ame,p->data .num,&p->data.grade);prin tf(" 姓名:%s學號:%s分數:%dn",p->,p->data.num,p->data.grade);printf("n修改成功! n還需修改學生信息請按1,退出請按任意鍵:n ”);ex=getchar();ex=getchar();elseprintf("還需刪除學生信息輸入1,退

32、出請按任意鍵:n");ex=getchar();ex=getchar();while(ex='1');chazhao (node*head)void/查找學生信息函數int c,d,m;char ex ,n 10; node *p;p=head;dosystem("cls");printf(學生管理系統*nn");printf("按姓名查找輸入1,按學號查找輸入2t");sca nf("%d", &c);while(c!=1 &&c!=2)printf(" prin

33、tf("輸入的指令有誤,請重新輸入");按姓名查找輸入1,按學號查找輸入2t");學習-好資料sea nf("%d",&c);if(c=1)printf(”請輸入需要查找學生的姓名:");sea nf("%s", n);m=strcmp( n,p->data. name);while(m!=O&&p-> next!二NULL)p=p->n ext;m=strcmp( n,p->data .n ame);if(m=0)prin tf("nnn");p

34、rin tf(" 姓名:%s學號:%s分數: %dn",p->,p->data.num,p->data.grade);elseprin tf("沒有搜索到需要查找的學生信息,請核對后再輸入");if(c=2)printf("請輸入需要查找學生的學號:");sca nf("%d",&d);while(d!=atoi(p->data. num)&&p->n ext!=NULL)p=p->n ext;if(d=atoi(p->data .

35、num)prin tf("nnn");prin tf(" 姓名:%s學號:%s分數: %dn",p->,p->data.num,p->data.grade);elseprin tf("沒有搜索到需要查找的學生信息,請核對后再輸入");p=head;printf("還需查詢請按1,退出請按任意鍵:n");更多精品文檔學習好資料ex二getchar(); ex二getchar(); while(ex='1');/排序學生void paixu(node *head)信息函數int c,d;char min 10;node *p,*q,*x;st t;p=head;system("cls");printf("*生管壬理系幺統 *

溫馨提示

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

評論

0/150

提交評論