版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上X X 大學C S UC語言程序設計實踐報告題 目 學生成績管理系統(tǒng) 學生姓名 剽悍的小白兔 指導教師 T Z 學 院 信息科學與工程學院 專業(yè)班級 電氣信息類XXXX班 完成時間 20XX年X月 一、 設計目的通過課程設計使學生綜合使用所學過的C語言程序設計知識,掌握結構化程序設計的基本思路和方法,在所掌握的基本知識和技能的基礎上,進一步提高自學能力和查找資料的能力,解決一定程度的復雜的結構化程序設計問題,加深對所學知識的理解與掌握,增強學生我們利用自己所學知識解決實際問題的能力,為以后的程序開發(fā)打下基礎。二、系統(tǒng)分析隨著科學技術的不斷發(fā)展,對人們的工作水平要求也越
2、來越高,然而計算機就成了幫助人們解決這個問題的工具,熟練的運用計算機,它能為人們解決許多工作上的難題。對與一個管理人員來說,快而迅速的了解各種信息是很關鍵的。使用計算機在C語言環(huán)境下編寫相關的管理系統(tǒng)就能達到對相關信息的錄入、顯示;對記錄的查詢極其修改等目的?;谕瑯拥腃語言環(huán)境,對其提供的頭文件*h(stdio.h ,stdlib.h,string.h,malloc.h,mem.h,ctype.h,conio.h等)的不同組合,能為我們解決許許多多的問題,因此,用它來編寫成績管理管理系統(tǒng)是可行的。 三、學生成績管理系統(tǒng)主要功能² 數(shù)據(jù)的錄入:如錄入學生的基本信息,以及該學生選修課程
3、的基本信息;² 數(shù)據(jù)的修改:如修改指定學號、或者指定姓名的學生信息,或者修改其選修課程信息;² 數(shù)據(jù)的插入:插入某個學生信息;² 數(shù)據(jù)的查詢:如按學號查詢、按姓名查詢等;² 數(shù)據(jù)的刪除:如刪除指定學號、或者指定姓名的學生及其選修課程信息;² 平均成績的計算:計算每個學生各門功課的平均成績,并按平均成績從高到低的次序輸出學生信息;² 列出不及格學生清單(學號、姓名、不及格的課程和成績)。四、功能的實現(xiàn)與要求1數(shù)據(jù)錄入:數(shù)據(jù)錄入的功能是將需要的數(shù)據(jù)進行錄入,用于后面的各項操作。實現(xiàn):用輸入函數(shù)對數(shù)據(jù)進行錄入,先確定學生的個數(shù),再用一個循環(huán)
4、進行輸入,選修課程數(shù)量亦然。2. 數(shù)據(jù)修改:數(shù)據(jù)修改的主要功能是為修改數(shù)據(jù)輸入出現(xiàn)的錯誤,實現(xiàn):先指定該生的學號,找到該生,再輸出該生當前的信息,用一個if語句對數(shù)據(jù)進行修改,再用一個循環(huán)語句對選修課信息進行修改。3. 數(shù)據(jù)插入: 數(shù)據(jù)插入的主要功能是在數(shù)據(jù)錄入之后,為防止數(shù)據(jù)輸入的遺漏,實現(xiàn):分為兩個部分,第一個是插入第一個位置,第二是插入第一個位置之后,把當前的位置賦給后面的加以實現(xiàn)。4數(shù)據(jù)查詢: 數(shù)據(jù)查詢的主要功能是在數(shù)據(jù)輸入之后進行分類再現(xiàn),實現(xiàn):分為輸出所有數(shù)據(jù),按學號查詢,按姓名查詢,當輸入的數(shù)據(jù)滿足條件時即輸出所要求的。 5數(shù)據(jù)刪除:數(shù)據(jù)刪除的主要功能是在數(shù)據(jù)錄入、數(shù)據(jù)插入和數(shù)據(jù)
5、修改完成之后對無用數(shù)據(jù)進行刪除,實現(xiàn):輸入學號,滿足條件時即把后一個數(shù)值賦給前一個數(shù)值,達到刪除的目的。6平均值計算:平均值計算的主要功能是求平均值,再對其進行排序,實現(xiàn):用公式進行計算求平均值,之后便是排序問題,求最大值,然后依次輸出各最大值,即實現(xiàn)了排序功能。7. 列出不及格學生清單:這部分的主要功能是列出不及格學生清單,實現(xiàn):用一個判斷語句,當分數(shù)小于60時,即輸出相應的學生信息即可。五、系統(tǒng)框圖登錄模塊學生基本信息查詢錄入修改班機信息管理學生課程管理輸入修改查詢學生成績管理輸入修改查詢退出系統(tǒng)六、系統(tǒng)流程圖開始結束選擇操作輸入數(shù)據(jù)排序顯示數(shù)據(jù)查詢刪除主菜單插入數(shù)據(jù)退出系統(tǒng)按學號按姓名保
6、存數(shù)據(jù)吧按景平均成績選擇7選擇6選擇5選擇4選擇3選擇2選擇1選擇8按平均成績高低i讀取數(shù)據(jù)吧選擇8班級學號性別姓名七、 界面設計·系統(tǒng)運行界面(部分)如下: 圖1主界面圖2主菜單圖3錄入數(shù)據(jù)圖4修改數(shù)據(jù)圖5插入數(shù)據(jù)圖6數(shù)據(jù)查詢圖7計算平均成績圖8不及格學生統(tǒng)計八、程序代碼#include<stdio.h>#include<windows.h>#include<string.h>#include <stdlib.h>main()int i,w=0,u/*被選中學生的下標*/,f/*科目數(shù)量*/;int o=0/*學生總數(shù)*/,p=0,g
7、50/*每個學生的選修課程數(shù)量*/,a,x,b/*新增學生個數(shù)*/,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 scoreint q;/*課程編號*/char w50;/*課程名稱*/float e;/*學分*/float r;/*考試成績*/float t;/*平時成績*/
8、double y;/*綜合成績*/z5010;printf("nn*nnn 歡 迎 進 入nn 學生成績管理系統(tǒng)nnn 設計者:剽悍的小白兔 XXXXnn指導教師:TZnnXX大學 信息科學與工程學院 電氣09XX班nnn 2010年7月nnn*n Press Enter to Continue");getchar();system("CLS");while(1)system("CLS");printf("nn*n 系統(tǒng)主菜單nn1.錄入數(shù)據(jù)nn2.修改數(shù)據(jù)nn3.插入數(shù)據(jù)nn4.數(shù)據(jù)查詢nn5.刪除數(shù)據(jù)nn6.平均成績計算
9、nn7.列出不及格學生清單nn8.退出系統(tǒng)nn");printf("請輸入一個數(shù)字來選擇目錄:nn");scanf("%d",&i);system("CLS");if(i=1)/*1.錄入數(shù)據(jù)*/printf("錄入數(shù)據(jù)nn");while(1)printf("n請輸入要錄入的學生個數(shù):n");scanf("%d",&b);if(b<1) printf("n輸入錯誤!n請輸入要錄入的學生個數(shù)n");else if(b>
10、=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);printf("n請輸入此學生選修課程數(shù)量:n");scanf("%d",&f);go+a=f;for(i=0;i<f;i+)printf("n請輸入該學生第%d門選修課程信息:nn課程編
11、號 課程名稱 學分 考試成績 平時成績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是否繼續(xù)輸入y/n?n");scanf("%s",&h);if(strcmp(h,"n")=0) break;else if(strcmp(h,"y")=0) system("CLS
12、");else if(i=2)/*2.修改數(shù)據(jù)*/printf("修改數(shù)據(jù)n");if(o=0) printf("n系統(tǒng)內(nèi)沒有學生信息");elsewhile(1)printf("n請輸入要修改數(shù)據(jù)的學生的學號:n");scanf("%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=
13、w+1;if(w=0)printf("輸入錯誤!");break;while(1)printf("n請輸入數(shù)字選擇要修改的數(shù)據(jù):n1.班級 2.學號 3.姓名 4.性別 5.年齡 6.選修課程信息n");scanf("%d",&i);if(i!=6) printf("n請輸入修改后數(shù)據(jù):n");if(i=1)scanf("%d",&cu.i);else if(i=2)scanf("%ld",&cu.j);else if(i=3)scanf("
14、%s",&cu.m);else if(i=4)scanf("%s",&cu.n);else if(i=5)scanf("%d",&cu.x);else if(i=6)printf("n 該學生選修課當前信息:");for(i=0;i<gu;i+)printf(" 課程編號:%d 課程名稱:%s 學分:%3.1f 考試成績:%3.1f 平時成績:%3.1fn",zui.q,zui.w,zui.e,zui.r,zui.t);printf("n請輸入要修改的數(shù)據(jù)的當前選修
15、課程編號:n");scanf("%d",&x);w=0;for(i=0;i<gu;i+)if(x=zui.q)printf("n請輸入數(shù)字選擇要修改的數(shù)據(jù):1.課程編號 2.課程名稱 3.學分 4.考試成績 5.平時成績n");scanf("%d",&xx);printf("n請輸入修改后數(shù)據(jù):n");if(xx=1)scanf("%d",&zui.q);else if(xx=2)scanf("%s",&zui.w);else
16、if(xx=3)scanf("%f",&zui.e);else if(xx=4)scanf("%f",&zui.r);else if(xx=5)scanf("%f",&zui.t);else printf("輸入錯誤!");w=w+1;if(w=0) printf("輸入錯誤!");else printf("輸入錯誤!");break;printf("nn是否繼續(xù)修改此學生信息y/n?n");scanf("%s"
17、,&h);if(strcmp(h,"n")=0) break;else if(strcmp(h,"y")=0) system("CLS");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=3)/*3.插入數(shù)據(jù)*/printf("
18、;插入數(shù)據(jù)");while(1)printf("n是否要將信息插入到第一個位置y/n?nn");scanf("%s",&h);if(strcmp(h,"n")=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(
19、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,&ca+1.n,&ca+1.x);o=o+1;printf("是否添加該學生的選修課程信息y/n?");scanf("%s",&h);if(strcmp(h,"y")=0)printf("n請輸入此學生選修課程數(shù)量:n");scanf("%d",&f);ga+1
20、=f;printf("n請分別輸入該學生選修課程信息:nn課程編號 課程名稱 學分 考試成績 平時成績n");for(i=0;i<f;i+)scanf("%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
21、;i<gu;i+)zu+1i=zui;gu+1=gu;scanf("%d %ld %s %s %d",&c0.i,&c0.j,&c0.m,&c0.n,&c0.x);o=o+1;printf("是否添加該學生的選修課程信息y/n?n");scanf("%s",&h);if(strcmp(h,"y")=0)printf("n請輸入此學生選修課程數(shù)量:n");scanf("%d",&f);g0=f;printf(&quo
22、t;n請分別輸入該學生選修課程信息:nn課程編號 課程名稱 學分 考試成績 平時成績n");for(i=0;i<f;i+)scanf("%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) sy
23、stem("CLS");else if(i=4)/*4.數(shù)據(jù)查詢*/printf("數(shù)據(jù)查詢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)printf("nn*nn 數(shù) 據(jù) 查 詢nnn1.顯示全部數(shù)據(jù)nn2.按學號查詢nn3.按姓名查詢nn4.返回主菜單");printf("nn請輸入一個數(shù)字來選擇目錄:nn");scanf("%d",&p);if(p=1)for(a=0;a<
24、o;a+)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);else if(p=2)printf("請輸入要查詢學生的學號:n");scanf("%ld",&qq);w=0;for
25、(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);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(&
26、quot;請輸入要查詢學生的姓名:n");scanf("%s",&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.
27、t,zai.y);w=w+1; if(w=0) printf("此姓名不存在!n");else if(p=4)break;else printf("輸入錯誤!n");printf("nn是否返回數(shù)據(jù)查詢界面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.刪除數(shù)據(jù)*/printf("
28、刪除數(shù)據(jù)");while(1)printf("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ù)刪除學生數(shù)據(jù)y/n?n");sc
29、anf("%s",&h);if(strcmp(h,"n")=0) break;else if(strcmp(h,"y")=0) system("CLS");else if(i=6)/*6.平均成績計算*/printf("平均成績計算");printf("n按平均成績從高到低的次序輸出學生信息:nn");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<
30、o;a+)ala=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) system("CLS");else if(i=7)/*7.列出不及格學生清單*/printf(&quo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45097.2-2024智能消費品安全第2部分:風險評估
- 2024年苗木種植與環(huán)保技術合作合同3篇
- 2024年遠程監(jiān)控設施安裝協(xié)議3篇
- 倉庫叉車租賃合同
- 水產(chǎn)品安全質(zhì)量協(xié)議書
- 國際體育俱樂部租賃合約
- 城市輕軌監(jiān)理招標文件樣本
- 廣東省加油站非油品業(yè)務拓展
- 工業(yè)園區(qū)臨電施工合同
- 醫(yī)療行業(yè)專家顧問聘用合同模板
- 期末(試題)-2024-2025學年人教PEP版英語六年級上冊
- 三創(chuàng)賽獲獎-非遺文化創(chuàng)新創(chuàng)業(yè)計劃書
- 冷庫項目專項扶持資金申請報告(模板范本)
- 鉑銠合金漏板.
- (完整版)建筑力學(習題答案)
- 少年宮籃球活動教案
- 國有建設企業(yè)《大宗材料及設備采購招標管理辦法》
- 民間秘術絕招大全
- N摻雜TiO2納米管的合成及光催化性能研究
- 二沉池設計說明書
- (完整版)展廳展館博物館美術館設計標招標評分細則及打分表
評論
0/150
提交評論