




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、X X大學C S UC語言程序設計實踐報告題 目學生成績管理系統(tǒng)學生姓名剽悍的小白兔指導教師TZ學 院信息科學與工程學院專業(yè)班級 電氣信息類 XXXX班完成時間20XX 年X月設計目的通過課程設計使學生綜合使用所學過的 C語言程序設計知識,掌握結構化程序設計的基本思路和方法,在所掌握的基本知 識和技能的基礎上,進一步提高自學能力和查找資料的能力,解 決一定程度的復雜的結構化程序設計問題,加深對所學知識的理 解與掌握,增強學生我們利用自己所學知識解決實際問題的能力, 為以后的程序開發(fā)打下基礎。隨著科學技術的不斷發(fā)展,對人們的工作水平要求也越來越 高,然而計算機就成了幫助人們解決這個問題的工具,熟
2、練的運 用計算機,它能為人們解決許多工作上的難題。對與一個管理人 員來說,快而迅速的了解各種信息是很關鍵的。使用計算機在 C 語言環(huán)境下編寫相關的管理系統(tǒng)就能達到對相關信息的錄入、顯 示;對記錄的查詢極其修改等目的。基 于 同 樣 的 C 語 言 環(huán) 境 , 對 其 提 供 的 頭 文 件 *h(stdio h ,stdlib h,string h,malloc h,mem h,ctype h,conio等)的 不同組合,能為我們解決許許多多的問題,因此,用它來編寫成 績管理管理系統(tǒng)是可行的。、學生成績管理系統(tǒng)主要功能數據的錄入: 如錄入學生的基本信息, 以及該學生選修課程的 基本信息;數據的
3、修改: 如修改指定學號、 或者指定姓名的學生信息, 或 者修改其選修課程信息;數據的插入:插入某個學生信息; 數據的查詢:如按學號查詢、按姓名查詢等; 數據的刪除:如刪除指定學號、 或者指定姓名的學生及其選修 課程信息;平均成績的計算: 計算每個學生各門功課的平均成績, 并按平 均成績從高到低的次序輸出學生信息; 列出不及格學生清單(學號、姓名、不及格的課程和成績) 。四、功能的實現(xiàn)與要求1數據錄入: 數據錄入的功能是將需要的數據進行錄入, 用于后面 的各項操作。實現(xiàn):用輸入函數對數據進行錄入,先確定學生的個 數,再用一個循環(huán)進行輸入,選修課程數量亦然。2. 數據修改:數據修改的主要功能是為修
4、改數據輸入出現(xiàn)的錯誤, 實現(xiàn): 先指定該生的學號, 找到該生,再輸出該生當前的信息, 用一 個 if 語句對數據進行修改,再用一個循環(huán)語句對選修課信息進行修改。3. 數據插入 : 數據插入的主要功能是在數據錄入之后,為防止數 據輸入的遺漏, 實現(xiàn):分為兩個部分,第一個是插入第一個位置, 第 二是插入第一個位置之后,把當前的位置賦給后面的加以實現(xiàn)。 4數據查詢: 數據查詢的主要功能是在數據輸入之后進行分類再 現(xiàn),實現(xiàn):分為輸出所有數據,按學號查詢,按姓名查詢,當輸入的 數據滿足條件時即輸出所要求的。5數據刪除:數據刪除的主要功能是在數據錄入、數據插入和數據 修改完成之后對無用數據進行刪除, 實現(xiàn)
5、:輸入學號, 滿足條件時即 把后一個數值賦給前一個數值,達到刪除的目的。6平均值計算:平均值計算的主要功能是求平均值,再對其進行排 序,實現(xiàn):用公式進行計算求平均值, 之后便是排序問題, 求最大值, 然后依次輸出各最大值,即實現(xiàn)了排序功能。7. 列出不及格學生清單:這部分的主要功能是列出不及格學生清 單,實現(xiàn):用一個判斷語句,當分數小于 60 時,即輸出相應的學生 信息即可。五、系統(tǒng)框圖25 / 23查詢學生基本信息錄入修改班機信息管理輸入修改登錄模塊學生課程管理查詢輸入修改學生成績管理查詢退出系統(tǒng)六、系統(tǒng)流程圖姓名選擇操作選擇選擇2選擇3選擇4選擇5選擇6選擇7選擇8選擇8結束* 排序 刪除
6、查詢-插入數據班級按景平均成績按學號按姓名*按平均成績高低七、界面設計-系統(tǒng)運行界面(部分)如下:歡迎進入學生咸績管理系統(tǒng)設計者09旳指辱教師* 大學信息科學與工程學院電氣班2010年7月Press Enter to Continu#圖1主界面系統(tǒng)主菜單卜錄入數據修改數據插入數據乩數據查詢軋刪瞬數據、平均成績計算*列出不及格學生清單*-退岀系統(tǒng)材輸入一個數字來選擇目錄*圖2主菜單1 1 A H請輸入此學生選倏課程數量:1請輸入該學生第門選修課程信息:課程編號課程名禰學分考試成績平時成績1 Math 2 8 ?0請輸入第交個學空的基本信息.班級學號姓名性別年齡2 2 B F 18請輸入此學生選條
7、課程數量;1請輸入該學生第丄門選修課程信息:課程編號課程名稱學分考試成績平時成績 1 Math 2 30 69是否繼續(xù)輸入"祈圖3錄入數據請輸入要修改數據的學生的學號:k學生當前信息:班級沁學號沁姓名汕性別汁年齡沁$J年齡氣選修課程信息障輸入修改后數據:F展否繼續(xù)修改此學生信息“n?圖4修改數據Q第一個位置W翻是否繼續(xù)插入下一學生信息"n?請輸入此學生選修課程數量:1請分別輸入該學生選修課程信息:課程編號課程名稱學分考試咸績平時威績12 45 67請前入瞽加的學生信息:Sa轄姓名性別年齡3 3 C H 18是否添加該學生的選僅詫程信息y是否要將信食插丿圖5插入數據數據查詢-
8、顯示全部數據匚按學號查詢,-按姓名查詢I*返回主菜單青輸入一個數字來選擇目錄:圖6數據查詢代易次序輸岀學生信息: 課:3稱:2稱His性別洞年齡汩8葦k戍績245平時成績謠?-羽 性別;IF年齡比考融成績:30-0平時成績:60-回綜合成績51-6綜合成績劉0圖7計算平均成績列出小及格學生清單不及格學空清單:不及綣合成績汚6 不戻稻諫S:Math綜合戍績:陽雇否返回主目錄”*圖8不及格學生統(tǒng)計八、程序代碼#include<stdio.h>#include<windows.h>#include<string.h>#include <stdlib.h>
9、;main()int i,w=O,u/*被選中學生的下標*/,f/*科目數量*/;int o=0/*學生總數*/,p=0,g50/*每個學生的選修課程數 量*/,a,x,b/*新增學生個數*/,xx/*當前學生班級*/;char xm50/*當前學生姓名*/,h10;char oo/*判斷是否繼續(xù) */,q;float s50/* 平均成績 */,max,al50;long qq;struct studentint i;/* 班級 */ long j;/* 學號 */char m30;/* 姓名 */ char n10;/* 性別 */ int x;/* 年齡 */c50; struct sc
10、ore int q;/* 課程編號 */ char w50;/* 課程名稱 */ float e;/* 學分 */ float r;/* 考試成績 */ float t;/* 平時成績 */ double y;/* 綜合成績 */ z5010;printf("nn*nnn歡 迎 進 入 nn學生成績管理系統(tǒng)nnn 設計者 :剽悍的小白兔 090909XXXXnn 電氣 09XX 班 nnn指導教師: TZnnXX 大學 信息科學與工程學院2010 年 7 月nnn*n*Press Enter to Continue");getchar();system("CLS&
11、quot;);while(1)system("CLS");printf("nn*n系統(tǒng)主菜單nn1.錄入數據nn2.修改數據nn3.插入數據nn4.數據查詢nn5.刪除數據nn6.平均成績計算nn7.列出不及格學生清單nn8.退出系統(tǒng)nn");printf(" 請輸入一個數字來選擇目錄 :nn");scanf("%d",&i); system("CLS");if(i=1)/*1. 錄入數據 */printf(" 錄入數據 nn");while(1)printf(&qu
12、ot;n 請輸入要錄入的學生個數 :n");scanf("%d",&b);if(b<1) printf("n輸入錯誤! ! n請輸入要錄入的學生個數n");else if(b>=1)for(a=0;a<b;a+)printf("n請輸入第%d個學生的基本信息:nn班級 學號 姓名 性別 年齡n",a+1);scanf("%d %ld %s %s %d",&co+a.i,&co+a.j,&co+a.m,&co+a.n,&co+a.x); pr
13、intf("n 請輸入此學生選修課程數量: n");scanf("%d",&f);go+a=f;for(i=0;i<f;i+)printf("n 請輸入該學生第 %d 門選修課程信息 :nn 課程編號 課程名稱 學分 考 試成績 平時成績 n",i+1);scanf("%d %s %f %f %f",&zo+ai.q,&zo+ai.w,&zo+ai.e,&zo+ai.r,&zo+ai.t);o=p+b;p=b;getchar();printf("n 是
14、否繼續(xù)輸入 y/n?n");scanf("%s",&h);if(strcmp(h,"n")=0) break;else if(strcmp(h,"y")=0) system("CLS");else if(i=2)/*2. 修改數據 */printf(" 修改數據 n");if(o=0) printf("n 系統(tǒng)內沒有學生信息 ");elsewhile(1)printf("n 請輸入要修改數據的學生的學號: n");scanf("
15、%ld",&qq);w=0;for(a=0;a<o;a+)if(qq=ca.j)printf(" 該 學 生 當 前 信 息 : 班 級 :%d 學 號 :%ld 姓 名 :%s 性 別 :%s 年 齡:dn",ca.i,ca.j,ca.m,ca.n,ca.x);u=a;w=w+1;if(w=0) printf(" 輸入錯誤! ");break;while(1)printf("n 請輸入數字選擇要修改的數據:n1. 班級 2.學號 3.姓名 4.性別 5.年齡 6.選修課程信息 n");scanf("
16、%d",&i);if(i!=6) printf("n 請輸入修改后數據 :n");if(i=1) scanf("%d",&cu.i);else if(i=2)scanf("%ld",&cu.j);else if(i=3)scanf("%s",&cu.m);else if(i=4)scanf("%s",&cu.n);else if(i=5)scanf("%d",&cu.x);else if(i=6)printf(&quo
17、t;n 該學生選修課當前信息: "); for(i=0;i<gu;i+)printf(”課程編號:d課程名稱:%s學分:3.1f考試成績:3.1f平時成 績:%3. 1 fn",zui.q,zui.w,zui.e,zui.r,zui.t);n");1.課程編號 2.課程名稱 3.學分 4.printf("n 請輸入要修改的數據的當前選修課程編號: scanf("%d",&x);w=0;for(i=0;i<gu;i+)if(x=zui.q)printf("n 請輸入數字選擇要修改的數據:考試成績 5.平時成
18、績 n");scanf("%d",&xx);printf("n 請輸入修改后數據 :n");if(xx=1)scanf("%d",&zui.q);else if(xx=2)else if(xx=3)else if(xx=4)else if(xx=5)scanf("%s",&zui.w); scanf("%f",&zui.e); scanf("%f",&zui.r); scanf("%f",&zui.
19、t);else printf(" 輸入錯誤! ");w=w+1; if(w=0) printf(" 輸入錯誤! ");else printf(" 輸入錯誤! ");break;printf("nn 是否繼續(xù)修改此學生信息 y/n?n");scanf("%s",&h);if(strcmp(h,"n")=0) break;else if(strcmp(h,"y")=0) system("CLS");printf("nn 是
20、否繼續(xù)下一學生信息 y/n?n");scanf("%s",&h);if(strcmp(h,"n")=0) break;else if(strcmp(h,"y")=0) system("CLS");else if(i=3)/*3. 插入數據 */printf(" 插入數據 ");while(1)printf("n 是否要將信息插入到第一個位置 y/n?nn"); scanf("%s",&h);if(strcmp(h,"n&
21、quot;)=0)printf("n 請輸入要插入位置前一個學生的學號: ");scanf("%ld",&qq);for(a=0;a<o;a+)if(qq=ca.j)printf("n 請輸入要添加的學生信息: n 班級 學號 姓名 性別 年齡 n"); for(u=o;u>a;u-)cu+1=cu;for(i=0;i<gu;i+)zu+1i=zui;gu+1=gu;scanf("%d %ld %s %s %d",&ca+1.i,&ca+1.j,&ca+1.m,&a
22、mp;ca+1.n,&ca+1.x); o=o+1;printf(" 是否添加該學生的選修課程信息 y/n?"); scanf("%s",&h);if(strcmp(h,"y")=0)printf("n 請輸入此學生選修課程數量: n");scanf("%d",&f);ga+1=f;printf("n 請分別輸入該學生選修課程信息: nn 課程編號 課程名稱 學分 考試成績 平時成績 n");for(i=0;i<f;i+)scanf("
23、%d %s %f %f %f",&za+1i.q,&za+1i.w,&za+1i.e,&za+1i.r,&za+1i.t);else if(strcmp(h,"y")=0)printf("n 請輸入要添加的學生信息: n 班級 學號 姓名 性別 年齡 n"); for(u=o;u>=0;u-)cu+1=cu; for(i=0;i<gu;i+)zu+1i=zui; gu+1=gu;scanf("%d %ld %s %s %d",&c0.i,&c0.j,&
24、;c0.m,&c0.n,&c0.x);o=o+1;printf(" 是否添加該學生的選修課程信息 y/n?n"); scanf("%s",&h);if(strcmp(h,"y")=0)printf("n 請輸入此學生選修課程數量: n"); scanf("%d",&f);g0=f;printf("n 請分別輸入該學生選修課程信息: nn 課程編號 課程名稱 學分 考試成績平時成績 n");for(i=0;i<f;i+)scanf(&quo
25、t;%d %s %f %f %f",&z0i.q,&z0i.w,&z0i.e,&z0i.r,&z0i.t);printf("nn 是否繼續(xù)插入下一學生信息 y/n?n"); scanf("%s",&h);if(strcmp(h,"n")=0) break;else if(strcmp(h,"y")=0) system("CLS");else if(i=4)/*4. 數據查詢 */printf(" 數據查詢 n");fo
26、r(a=0;a<o;a+)for(i=0;i<ga;i+)zai.y=zai.r*0.7+zai.t*0.3;while(1)printf("nn*nn 數據查 詢nnn1.顯示全部數據nn2.按學號查詢nn3.按姓名查詢nn4.返回主菜單");printf("nn 請輸入一個數字來選擇目錄 :nn");scanf("%d",&p);if(p=1)for(a=0;a<o;a+)printf(" 班 級 :%d 學 號 :%ld 姓 名 :%s 性 別 :%s 年齡:dn",ca.i,ca.
27、j,ca.m,ca.n,ca.x);for(i=0;i<ga;i+)printf(”課程編號:%d課程名稱:%s學分:3.1f考試成績:3.1f平時成績:%3.1f 綜合成績:3.1fn",zai.q,zai.w,zai.e,zai.r,zai.t,zai.y);else if(p=2)printf(" 請輸入要查詢學生的學號: n"); scanf("%ld",&qq);w=0;for(a=0;a<o;a+)if(qq=ca.j)printf(" 班 級 :%d 學 號 :%ld 姓 名 :%s 性 別 :%s
28、年 齡:dn",ca.i,ca.j,ca.m,ca.n,ca.x);for(i=0;i<ga;i+)printf(" 課程編號 :%d 課程名稱 :%s 學分 :%3.1f 考試成績 :%3.1f 平時 成績 :%3.1f 綜合成績 :%3.1fn",zai.q,zai.w,zai.e,zai.r,zai.t,zai.y);w=w+1;if(w=0) printf(" 此學號不存在! n");else if(p=3)printf(" 請輸入要查詢學生的姓名: n");scanf("%s",&
29、xm);w=0;for(a=0;a<o;a+)if(strcmp(xm,ca.m)=0)printf(" 班 級 :%d 學 號 :%ld 姓 名 :%s 性 別 :%s 年 齡:dn",ca.i,ca.j,ca.m,ca.n,ca.x);for(i=0;i<ga;i+)printf(" 課程編號 :%d 課程名稱 :%s 學分 :%3.1f 考試成績 :%3.1f 平時 成績 :%3.1f 綜合成績 %3.1fn",zai.q,zai.w,zai.e,zai.r,zai.t,zai.y);w=w+1;if(w=0) printf("
30、; 此姓名不存在! n");else if(p=4)break;else printf(" 輸入錯誤! n");printf("nn 是否返回數據查詢界面 y/n?n");scanf("%s",&h);if(strcmp(h,"n")=0) break;else if(strcmp(h,"y")=0) system("CLS");else if(i=5)/*5. 刪除數據 */printf(" 刪除數據 ");while(1)printf
31、("n 請輸入要刪除的學生的學號: n");scanf("%ld",&qq);w=0;for(a=0;a<o;a+)if(qq=ca.j)for(i=a;i<o;i+) ci=ci+1;for(u=0;u<gi;u+)ziu=zi+1u; gi=gi+1;printf("n 已刪除 nn");w=w+1;o=o-1;if(w=0) printf("n 該學生不存在! n"); printf("nn 是否繼續(xù)刪除學生數據 y/n?n"); scanf("%s&q
32、uot;,&h);if(strcmp(h,"n")=0) break;else if(strcmp(h,"y")=0) system("CLS");else if(i=6)/*6. 平均成績計算 */printf(" 平均成績計算 ");:nn");printf("n 按平均成績從高到低的次序輸出學生信息 for(a=0;a<o;a+)for(i=0;i<ga;i+) zai.y=zai.r*0.7+zai.t*0.3;while(1)for(a=0;a<o;a+)al
33、a=0;for(u=0;u<ga;u+) ala=ala+zau.t;sa=ala/ga;for(a=0;a<o;a+)max=sa;for(u=a;u<o;u+)if(su>max)max=su;su=sa;sa=max;for(a=0;a<o;a+)printf(" 平 均 成 績 : %3.1f 班 級 :%d 學 號 :%ld 姓 名 :%s 性 別 :%s 年 齡:dn",sa,ca.i,ca.j,ca.m,ca.n,ca.x);for(i=0;i<ga;i+)printf(" 課程編號 :%d 課程名稱 :%s 學分 :%3.1f 考試成績 :%3.1f 平時成績 :%3.1f 綜合成績 3.1fn",zai.q,zai.w,zai.e,zai.r,zai.t,zai.y);printf("nn 是否返回主目錄 y/n?n"); scanf("%s",&h);if(strcmp(h,"y")=0) break;else if(strcmp(h,"n")=0) sy
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 消防設施操作和維護保養(yǎng)規(guī)程
- 47歲高情商生日文案
- mysql 構造死鎖場景的代碼
- matlab三維成像函數
- 2025年血液透析器合作協(xié)議書
- 電流互感器二次側接地原因
- 電纜導管驗收要求
- 制定銷售目標提升業(yè)績計劃
- 建筑材料行業(yè)保安工作計劃
- 企業(yè)文化對會計工作的影響與作用計劃
- 我的家鄉(xiāng)湖南邵陽宣傳介紹
- 玻璃雨棚維修施工方案
- 安全生產費用提取及使用計劃
- WPSOffice辦公軟件實例教程PPT完整全套教學課件
- 四年級數學下冊-小數加減法的簡便運算課件
- igcse英語第一語言15年前真題0500 wqp
- 2023年河北省邯鄲市統(tǒng)招專升本生理學病理解剖學歷年真題匯總及答案
- keba教程科控編程手冊
- 高強螺栓檢測報告3
- 廣東英語中考必背1600詞
- 海南碼頭防波堤工程施工組織設計圖文并茂
評論
0/150
提交評論