中南大學(xué)C課程設(shè)計報告_第1頁
中南大學(xué)C課程設(shè)計報告_第2頁
中南大學(xué)C課程設(shè)計報告_第3頁
中南大學(xué)C課程設(shè)計報告_第4頁
中南大學(xué)C課程設(shè)計報告_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

中南大學(xué)C++程序設(shè)計基礎(chǔ)課程設(shè)計題目學(xué)生成績管理系統(tǒng)姓名學(xué)號班級指導(dǎo)教師劉嬪學(xué)院信息科學(xué)與工程學(xué)院日期二〇一四年七月設(shè)計任務(wù)書1、題目:C++課程設(shè)計報告2、程序功能組成:數(shù)據(jù)的錄入:如錄入學(xué)生的基本信息,以及該學(xué)生選修課程的基本信息;數(shù)據(jù)的修改:如修改指定學(xué)號、或者指定姓名的學(xué)生信息,或者修改其選修課程信息;數(shù)據(jù)的插入:插入某個學(xué)生信息;數(shù)據(jù)的查詢:如按學(xué)號查詢、按姓名查詢等;數(shù)據(jù)的刪除:如刪除指定學(xué)號、或者指定姓名的學(xué)生及其選修課程信息;平均成績的計算:計算每個學(xué)生各門功課的平均成績,并按平均成績從高到低的次序輸出學(xué)生信息;列出不及格學(xué)生清單(學(xué)號、姓名、不及格的課程和成績)。進度安排:序號設(shè)計內(nèi)容名稱完成時間備注1組隊;確定題目;分工6.252初步的需求分析與設(shè)計建模6.25~6.273詳細的需求分析與設(shè)計建模6.28~6.304關(guān)鍵模塊的實現(xiàn)與測試7.015編寫課程設(shè)計報告7.01~7.026最后總結(jié),修改。7.03目錄一、總設(shè)計方案.............................................................................1二、使用說明及運行實例..............................................................2三、成員設(shè)計內(nèi)容簡介.................................................................6四、項目源程序代碼.....................................................................7五、設(shè)計心得...............................................................................19一、總設(shè)計方案系統(tǒng)流程圖:開始開始結(jié)束選擇操作輸入數(shù)據(jù)排序顯示數(shù)據(jù)查詢刪除主菜單插入數(shù)據(jù)退出系統(tǒng)按學(xué)號按姓名保存數(shù)據(jù)吧按景平均成績選擇7選擇6選擇5選擇4選擇3選擇2選擇1選擇8按平均成績高低i讀取數(shù)據(jù)吧選擇8班級學(xué)號性別姓名二、使用說明及運行實例主界面數(shù)據(jù)錄入數(shù)據(jù)修改3.數(shù)據(jù)插入4.?dāng)?shù)據(jù)查詢數(shù)據(jù)刪除平均值計算列出不及格學(xué)生三、成員設(shè)計內(nèi)容簡介1.?dāng)?shù)據(jù)錄入:數(shù)據(jù)錄入的功能是將需要的數(shù)據(jù)進行錄入,用于后面的各項操作。實現(xiàn):用輸入函數(shù)對數(shù)據(jù)進行錄入,先確定學(xué)生的個數(shù),再用一個循環(huán)進行輸入,選修課程數(shù)量亦然。2.數(shù)據(jù)修改:數(shù)據(jù)修改的主要功能是為修改數(shù)據(jù)輸入出現(xiàn)的錯誤,實現(xiàn):先指定該生的學(xué)號,找到該生,再輸出該生當(dāng)前的信息,用一個if語句對數(shù)據(jù)進行修改,再用一個循環(huán)語句對選修課信息進行修改。3.數(shù)據(jù)插入:數(shù)據(jù)插入的主要功能是在數(shù)據(jù)錄入之后,為防止數(shù)據(jù)輸入的遺漏,實現(xiàn):分為兩個部分,第一個是插入第一個位置,第二是插入第一個位置之后,把當(dāng)前的位置賦給后面的加以實現(xiàn)。4.?dāng)?shù)據(jù)查詢:數(shù)據(jù)查詢的主要功能是在數(shù)據(jù)輸入之后進行分類再現(xiàn),實現(xiàn):分為輸出所有數(shù)據(jù),按學(xué)號查詢,按姓名查詢,當(dāng)輸入的數(shù)據(jù)滿足條件時即輸出所要求的。5.?dāng)?shù)據(jù)刪除:數(shù)據(jù)刪除的主要功能是在數(shù)據(jù)錄入、數(shù)據(jù)插入和數(shù)據(jù)修改完成之后對無用數(shù)據(jù)進行刪除,實現(xiàn):輸入學(xué)號,滿足條件時即把后一個數(shù)值賦給前一個數(shù)值,達到刪除的目的。6.平均值計算:平均值計算的主要功能是求平均值,再對其進行排序,實現(xiàn):用公式進行計算求平均值,之后便是排序問題,求最大值,然后依次輸出各最大值,即實現(xiàn)了排序功能。7.列出不及格學(xué)生清單:這部分的主要功能是列出不及格學(xué)生清單,實現(xiàn):用一個判斷語句,當(dāng)分數(shù)小于60時,即輸出相應(yīng)的學(xué)生信息即可。四、項目源程序代碼#include<stdio.h>#include<windows.h>#include<string.h>#include<stdlib.h>main() inti,w=0,u/*被選中學(xué)生的下標*/,f/*科目數(shù)量*/;into=0/*學(xué)生總數(shù)*/,p=0,g[50]/*每個學(xué)生的選修課程數(shù)量*/,a,x,b/*新增學(xué)生個數(shù)*/,xx/*當(dāng)前學(xué)生班級*/;charxm[50]/*當(dāng)前學(xué)生姓名*/,h[10];charoo/*判斷是否繼續(xù)*/,q;floats[50]/*平均成績*/,max,al[50];longqq; structstudent inti;/*班級*/ longj;/*學(xué)號*/ charm[30];/*姓名*/ charn[10];/*性別*/ intx;/*年齡*/ }c[50]; structscore intq;/*課程編號*/ charw[50];/*課程名稱*/ floate;/*學(xué)分*/ floatr;/*考試成績*/ floatt;/*平時成績*/ doubley;/*綜合成績*/ }z[50][10]; printf("\n\n*******************************************************************************\n\n\n 歡迎進入\n\n學(xué)生成績管理系統(tǒng)\n\n\n設(shè)計者:xxx000000000\n\n 指導(dǎo)教師:劉嬪\n\n 中南大學(xué)信息科學(xué)與工程學(xué)院000000000\n\n\n 2014年6月\n\n\n*******************************************************************************\n請輸入空回車鍵繼續(xù)"); getchar();system("CLS"); while(1) system("CLS"); printf("\n\n*******************************************************************************\n系統(tǒng)主菜單\n\n1.錄入數(shù)據(jù)\n\n2.修改數(shù)據(jù)\n\n3.插入數(shù)據(jù)\n\n4.數(shù)據(jù)查詢\n\n5.刪除數(shù)據(jù)\n\n6.平均成績計算\n\n7.列出不及格學(xué)生清單\n\n8.退出系統(tǒng)\n\n"); printf("請輸入一個數(shù)字來選擇目錄:\n\n"); scanf("%d",&i); system("CLS"); if(i==1)/*1.錄入數(shù)據(jù)*/ printf(" 錄入數(shù)據(jù)\n\n"); while(1) printf("\n請輸入要錄入的學(xué)生個數(shù):\n"); scanf("%d",&b); if(b<1)printf("\n輸入錯誤?。?!\n請輸入要錄入的學(xué)生個數(shù)\n"); elseif(b>=1) for(a=0;a<b;a++) printf("\n請輸入第%d個學(xué)生的基本信息:\n\n班級學(xué)號姓名性別年齡\n",a+1); scanf("%d%ld%s%s%d",&c[o+a].i,&c[o+a].j,&c[o+a].m,&c[o+a].n,&c[o+a].x); printf("\n請輸入此學(xué)生課程數(shù)量:\n"); scanf("%d",&f); g[o+a]=f; for(i=0;i<f;i++) printf("\n請輸入該學(xué)生第%d門課程信息:\n\n課程編號課程名稱學(xué)分考試成績平時成績\n",i+1); scanf("%d%s%f%f%f",&z[o+a][i].q,&z[o+a][i].w,&z[o+a][i].e,&z[o+a][i].r,&z[o+a][i].t); o=p+b; p=b; getchar(); printf("\n是否繼續(xù)輸入y/n\n"); scanf("%s",&h); if(strcmp(h,"n")==0)break; elseif(strcmp(h,"y")==0)system("CLS"); elseif(i==2)/*2.修改數(shù)據(jù)*/ printf(" 修改數(shù)據(jù)\n"); if(o==0)printf("\n系統(tǒng)內(nèi)沒有學(xué)生信息"); else while(1) printf("\n請輸入要修改數(shù)據(jù)的學(xué)生的學(xué)號:\n"); scanf("%ld",&qq);w=0; for(a=0;a<o;a++) if(qq==c[a].j) printf("該學(xué)生當(dāng)前信息:班級:%d學(xué)號:%ld姓名:%s性別:%s年齡:%d\n",c[a].i,c[a].j,c[a].m,c[a].n,c[a].x); u=a;w=w+1; if(w==0) {printf("輸入錯誤?。?!");break;} while(1) printf("\n請輸入數(shù)字選擇要修改的數(shù)據(jù):\n1.班級2.學(xué)號3.姓名4.性別5.年齡6.課程信息\n"); scanf("%d",&i); if(i!=6)printf("\n請輸入修改后數(shù)據(jù):\n"); if(i==1) scanf("%d",&c[u].i); elseif(i==2) scanf("%ld",&c[u].j); elseif(i==3) scanf("%s",&c[u].m); elseif(i==4) scanf("%s",&c[u].n); elseif(i==5) scanf("%d",&c[u].x); elseif(i==6) printf("\n該學(xué)生課程當(dāng)前信息:"); for(i=0;i<g[u];i++) printf("課程編號:%d課程名稱:%s學(xué)分:%3.1f考試成績:%3.1f平時成績:%3.1f\n",z[u][i].q,z[u][i].w,z[u][i].e,z[u][i].r,z[u][i].t); printf("\n請輸入要修改的數(shù)據(jù)的當(dāng)前課程編號:\n"); scanf("%d",&x);w=0; for(i=0;i<g[u];i++) if(x==z[u][i].q) printf("\n請輸入數(shù)字選擇要修改的數(shù)據(jù):1.課程編號2.課程名稱3.學(xué)分4.考試成績5.平時成績\n"); scanf("%d",&xx); printf("\n請輸入修改后數(shù)據(jù):\n"); if(xx==1) scanf("%d",&z[u][i].q); elseif(xx==2) scanf("%s",&z[u][i].w); elseif(xx==3) scanf("%f",&z[u][i].e); elseif(xx==4) scanf("%f",&z[u][i].r); elseif(xx==5) scanf("%f",&z[u][i].t); elseprintf("輸入錯誤?。?!"); w=w+1; if(w==0)printf("輸入錯誤!?。?); else{printf("輸入錯誤?。?!");break;} printf("\n\n是否繼續(xù)修改此學(xué)生信息y/n\n"); scanf("%s",&h); if(strcmp(h,"n")==0)break; elseif(strcmp(h,"y")==0)system("CLS"); printf("\n\n是否繼續(xù)下一學(xué)生信息y/n\n"); scanf("%s",&h); if(strcmp(h,"n")==0)break; elseif(strcmp(h,"y")==0)system("CLS"); elseif(i==3)/*3.插入數(shù)據(jù)*/ printf(" 插入數(shù)據(jù)"); while(1) printf("\n是否要將信息插入到第一個位置y/n\n\n"); scanf("%s",&h); if(strcmp(h,"n")==0) printf("\n請輸入要插入位置前一個學(xué)生的學(xué)號:"); scanf("%ld",&qq); for(a=0;a<o;a++) if(qq==c[a].j) printf("\n請輸入要添加的學(xué)生信息:\n班級學(xué)號姓名性別年齡\n"); for(u=o;u>a;u--) c[u+1]=c[u]; for(i=0;i<g[u];i++) z[u+1][i]=z[u][i]; g[u+1]=g[u]; scanf("%d%ld%s%s%d",&c[a+1].i,&c[a+1].j,&c[a+1].m,&c[a+1].n,&c[a+1].x); o=o+1; printf("是否添加該學(xué)生的課程信息y/n"); scanf("%s",&h); if(strcmp(h,"y")==0) printf("\n請輸入此學(xué)生課程數(shù)量:\n"); scanf("%d",&f); g[a+1]=f; printf("\n請分別輸入該學(xué)生課程信息:\n\n課程編號課程名稱學(xué)分考試成績平時成績\n"); for(i=0;i<f;i++) scanf("%d%s%f%f%f",&z[a+1][i].q,&z[a+1][i].w,&z[a+1][i].e,&z[a+1][i].r,&z[a+1][i].t); elseif(strcmp(h,"y")==0) printf("\n請輸入要添加的學(xué)生信息:\n班級學(xué)號姓名性別年齡\n"); for(u=o;u>=0;u--) c[u+1]=c[u]; for(i=0;i<g[u];i++) z[u+1][i]=z[u][i]; g[u+1]=g[u]; scanf("%d%ld%s%s%d",&c[0].i,&c[0].j,&c[0].m,&c[0].n,&c[0].x); o=o+1; printf("是否添加該學(xué)生的課程信息y/n\n"); scanf("%s",&h); if(strcmp(h,"y")==0) printf("\n請輸入此學(xué)生課程數(shù)量:\n"); scanf("%d",&f); g[0]=f; printf("\n請分別輸入該學(xué)生課程信息:\n\n課程編號課程名稱學(xué)分考試成績平時成績\n"); for(i=0;i<f;i++) scanf("%d%s%f%f%f",&z[0][i].q,&z[0][i].w,&z[0][i].e,&z[0][i].r,&z[0][i].t); printf("\n\n是否繼續(xù)插入下一學(xué)生信息y/n\n"); scanf("%s",&h); if(strcmp(h,"n")==0)break; elseif(strcmp(h,"y")==0)system("CLS"); elseif(i==4)/*4.數(shù)據(jù)查詢*/ printf(" 數(shù)據(jù)查詢\n"); for(a=0;a<o;a++) for(i=0;i<g[a];i++) z[a][i].y=z[a][i].r*0.7+z[a][i].t*0.3; while(1) printf("\n\n*******************************************************************************\n\n數(shù)據(jù)查詢\n\n\n1.顯示全部數(shù)據(jù)\n\n2.按學(xué)號查詢\n\n3.按姓名查詢\n\n4.返回主菜單"); printf("\n\n請輸入一個數(shù)字來選擇目錄:\n\n"); scanf("%d",&p); if(p==1) for(a=0;a<o;a++) printf("班級:%d學(xué)號:%ld姓名:%s性別:%s年齡:%d\n",c[a].i,c[a].j,c[a].m,c[a].n,c[a].x); for(i=0;i<g[a];i++) printf(" 課程編號:%d課程名稱:%s學(xué)分:%3.1f考試成績:%3.1f平時成績:%3.1f綜合成績:%3.1f\n",z[a][i].q,z[a][i].w,z[a][i].e,z[a][i].r,z[a][i].t,z[a][i].y); elseif(p==2) printf("請輸入要查詢學(xué)生的學(xué)號:\n"); scanf("%ld",&qq);w=0; for(a=0;a<o;a++) if(qq==c[a].j) printf("班級:%d學(xué)號:%ld姓名:%s性別:%s年齡:%d\n",c[a].i,c[a].j,c[a].m,c[a].n,c[a].x); for(i=0;i<g[a];i++) printf(" 課程編號:%d課程名稱:%s學(xué)分:%3.1f考試成績:%3.1f平時成績:%3.1f綜合成績:%3.1f\n",z[a][i].q,z[a][i].w,z[a][i].e,z[a][i].r,z[a][i].t,z[a][i].y); w=w+1; if(w==0)printf("此學(xué)號不存在!\n"); elseif(p==3) printf("請輸入要查詢學(xué)生的姓名:\n"); scanf("%s",&xm);w=0; for(a=0;a<o;a++) if(strcmp(xm,c[a].m)==0) printf("班級:%d學(xué)號:%ld姓名:%s性別:%s年齡:%d\n",c[a].i,c[a].j,c[a].m,c[a].n,c[a].x); for(i=0;i<g[a];i++) printf(" 課程編號:%d課程名稱:%s學(xué)分:%3.1f考試成績:%3.1f平時成績:%3.1f綜合成績%3.1f\n",z[a][i].q,z[a][i].w,z[a][i].e,z[a][i].r,z[a][i].t,z[a][i].y); w=w+1; if(w==0)printf("此姓名不存在!\n"); elseif(p==4) break; elseprintf("輸入錯誤!?。n"); printf("\n\n是否返回數(shù)據(jù)查詢界面y/n\n"); scanf("%s",&h); if(strcmp(h,"n")==0)break; elseif(strcmp(h,"y")==0)system("CLS"); elseif(i==5)/*5.刪除數(shù)據(jù)*/ printf(" 刪除數(shù)據(jù)"); while(1) printf("\n請輸入要刪除的學(xué)生的學(xué)號:\n"); scanf("%ld",&qq);w=0; for(a=0;a<o;a++) if(qq==c[a].j) for(i=a;i<o;i++) c[i]=c[i+1]; for(u=0;u<g[i];u++) z[i][u]=z[i+1][u]; g[i]=g[i+1]; printf("\n已刪除\n\n");w=w+1; o=o-1; if(w==0)printf("\n該學(xué)生不存在!\n"); printf("\n\n是否繼續(xù)刪除學(xué)生數(shù)據(jù)y/n\n"); scanf("%s",&h); if(strcmp(h,"n")==0)break; elseif(strcmp(h,"y")==0)system("CLS"); elseif(i==6)/*6.平均成績計算*/ printf(" 平均成績計算"); printf("\n按平均成績從高到低的次序輸出學(xué)生信息:\n\n"); for(a=0;a<o;a++) for(i=0;i<g[a];i++) z[a][i].y=z[a][i].r*0.7+z[a][i].t*0.3; while(1) for(a=0;a<o;a++) al[a]=0; for(u=0;u<g[a];u++) al[a]=al[a]+z[a][u].t; s[a]=al[a]/g[a]; for(a=0;a<o;a++) max=s[a]; for(u=a;u<o;u++) if(s[u]>max) max=s[u]; s[u]=s[a]; s[a]=max; for(a=0;a<o;a++) printf("平均成績:%3.1f班級:%d學(xué)號:%ld姓名:%s性別:%s年齡:%d\n",s[a],c[a].i,c[a].j,c[a].m,c[a].n,c[a].x); for(i=0;i<g[a];i++) printf("課程編號:%d課程名稱:%s學(xué)分:%3.1f考試成績:%3.1f平時成績:%3.1f綜合成績%3.1f\n",z[a][i].q,z[a][i].w,z[a][i].e,z[a][i].r,z[a][i].t,z[a][i].y); printf("\n\n是否返回主目錄y/n\n"); scanf("%s",&h); if(strcmp(h,"y")==0)break; elseif(strcmp(h,"n")==0)sys

溫馨提示

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

評論

0/150

提交評論