




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課程設計報告課程名稱C語言程序設計課題名稱學生綜合測評系統(tǒng)專業(yè)班級學號姓名指導教師2012年湖南工程學院課程設計任務書課程名稱C語言程序設計課題學生綜合測評系統(tǒng)專業(yè)班級學生姓名學號指導老師審批任務書下達日期2012年12月25日任務完成日期2013年1月2日一、設計內容與設計要求1.設計內容:課題十:學生綜合測評系統(tǒng)一、問題描述:每個學生得信息為:學號、姓名、性別、家庭住址、聯系電話、語文、數學、外語三門單科成績、考試平均成績、考試名次、同學互評分、品德成績、任課教師評分、綜合測評總分、綜合測評名次??荚嚻骄煽?、同學互評分、品德成績、任課教師評分分別占綜合測評總分得60%,10%,10%,20%。二、功能描述:A、學生信息處理(1)輸入學生信息、學號、姓名、性別、家庭住址、聯系電話,按學號以小到大得順序存入文件中。提示:學生信息可先輸入到數組中,排序后可寫到文件中。(2)插入(修改)同學信息:提示:先輸入將插入得同學信息,然后再打開源文件并建立新文件,把源文件與輸入得信息合并到新文件中(保持按學號有序)若存在該同學則將新記錄內容替換源內容,(3)刪除同學信息:提示:輸入將刪除同學號,讀出該同學信息,要求對此進行確認,以決定就是否刪除將刪除后得信息寫到文件中。(4)瀏覽學生信息:提示:打開文件,顯示該文件得學生信息。B、學生數據處理:(1)按考試科目錄入學生成績并且按公式:考試成績=(語文+數學+外語)/3計算考試成績,并計算考試名次,提示:先把學生信息讀入數組,然后按提示輸入每科成績,計算考試成績,求出名次,最后把學生記錄寫入一個文件中。(2)學生測評數據輸入并計算綜合測評總分及名次。提示:綜合測評總分=(考試成績)*0、6+(同學互評分)*0、1+品德成績*0、1+任課老師評分*0、2。(3)學生數據管理提示:輸入學號,讀出并顯示該同學信息,輸入新數據,將改后信息寫入文件(4)學生數據查詢:提示:輸入學號或其她信息,即讀出所有數據信息,并顯示出來。C、學生綜合信息輸出提示:輸出學生信息到屏幕。三、算法提示:1、數據結構:結構體類型數組2、數據庫結構:下表構成該系統(tǒng)得基本數據庫。學號姓名考試成績…評分…CharCharstruct…int…四、測試數據:學生人數:N=10學生綜合測評系統(tǒng)1.課程設計目得掌握結構化程序設計得主體思想,以自頂向下逐步求精得方法編制程序解決一些實際得問題,為將來編寫軟件積累一些典型得案例處理經驗。2.課程設計主要任務一、問題描述:得信息為:學號、姓名、性別、家庭住址、聯系電話、語文、數學、外語三門單科成績、考試平均成績、考試名次、同學互評分、品德成績、任課教師評分、綜合測評總分、綜合測評名次??荚嚻骄煽?、同學互評分、品德成績、任課教師評分分別占綜合測評總分得60%,10%,10%,20%。二、功能描述:A學生信息處理(1)輸入學生信息、學號、姓名、性別、家庭住址、聯系電話,按學號以小到大得順序存入文件中。(2)插入(修改)同學信息:(3)刪除同學信息:(4)瀏覽學生信息:B、學生數據處理:(1)按考試科目錄入學生成績并且按公式:考試成績=(語文+數學+外語)/3計算考試成績,并計算考試名次。(2)學生測評數據輸入并計算綜合測評總分及名次。(3)學生數據管理(4)學生數據查詢:C、學生綜合信息輸出3.設計環(huán)境1)硬件:PC機,檔次不低于CPU為PIII667,內存為128M,4G硬盤,其它硬件與此相配套。2)軟件:WindowsXP,VC++6、04.總體設計方案得選定本設計采用模塊化結構設計,主要包括:主菜單(menu)下得學生信息處理系統(tǒng)(info_menu)、學生數據處理系統(tǒng)(data_menu)、學生綜合信息輸出(shuchu)、幫助信息(help)、退出系統(tǒng);學生信息處理系統(tǒng)(info_menu)下得輸入學生信息(info_input)、修改學生信息(xiugai)、刪除學生信息(info_del)、瀏覽學生信息(info_output)、返回主菜單;學生數據處理系統(tǒng)下得(data_menu)錄入成績數據(data_input)、修改學生數據(data_xiugai)、學生數據查詢(data_chaxun)、返回主菜單。主菜單學生信息處理學生數據處理主菜單學生信息處理學生數據處理綜合信息輸出幫助信息退出系統(tǒng)學生數據處理系統(tǒng)修改學生數據學生數據查詢錄入成績數據返回主菜單學生信息處理系統(tǒng)刪除學生信息修改學生信息輸入學生信息瀏覽學生信息返回主菜單學生綜合測評系統(tǒng)結構框圖5.源程序清單#include<stdio、h> //包含文件#include"stdlib、h"#include"string、h"intcount;voidinfo_daoru();voidinfo_xieru();voidinfo_del();voidinfo_xiugai();voiddata_xieru();voiddata_daoru();voiddata_xiugai();voiddata_chaxun();voiddata_input();voidshuchu();structstudent{ //定義學生信息結構數組 doublenumber; charname[11]; charsex[4]; charadds[15]; charphone[14];}p,info[100],w={0,"","","","",};structdata{ //定義學生數據結構數組doublenumber; charname[11]; charsex[4]; charadds[15]; charphone[14]; intchinese,math,english,stu,ksmc,pinde,teacher; floataver,ceping;}data[100];intmain() //主函數{ system("color9e"); voiddata_menu(); voidinfo_menu(); voidhelp(); voidmenu(); printf("\n\n\n\t\t、、、、、、、、、、、、歡迎使用學生綜合管理系統(tǒng)、、、、、、、、、、、、\n\n"); printf("\t\t\t\t本程序由宗幸幸借鑒陳偉得程序編寫\n\n"); printf("\n\n\t\t"); system("pause");menu(); return0;}voidhelp()//幫助信息{ system("cls"); //清屏 printf("*歡迎使用本系統(tǒng)!*\n\n"); printf("本系統(tǒng)可以存儲學生得基本信息與各科成績,并能計算考試平均成績,綜合測評成績與排名。\n"); printf("基本信息包括:學號、姓名、性別、家庭住址、聯系電話;\n各科成績包括:語文、數學、外語成績;\n"); printf("其它包括:考試名次、同學互評分、品德成績、任課教師評分等。\n"); printf("說明:考試成績排名就是按照考試成績計算得(考試成績=(語+數+外)/3);\n"); printf("綜合測評總分=((考試成績)*0、6+(同學互評分)*0、1+(品德成績)*0、1+(任課教師評分)*0、2)\n"); printf("其它請按照提示操作即可。\n\n"); printf("如有疑問,請聯系:QQ:905524188\n\n"); printf("\n\n\t\t"); system("pause");}voidinfo_daoru()//學生信息導出文件函數{ FILE*f_info; structstudentp={NULL}; printf("\n\n\t正在導入、、、\n\n"); if((f_info=fopen("info、txt","r"))==NULL){ printf("\n\t打開文件失敗!\n\n"); return; } count=0;while(!feof(f_info)){ fscanf(f_info,"%lf%s%s%s%s",&p、number,p、name,p、sex,p、adds,p、phone); info[count]=p; count++; } printf("\n\t導入已完成!共導入%d條記錄!\n\n\n",count); fclose(f_info);}voidinfo_input()//學生信息輸入函數{ inti,j; info_daoru(); for(;;){ printf("\t請輸入學號(輸入0退出):"); scanf("%lf",&p、number); if(p、number==0)return; for(i=0;i<=count;i++){//判斷就是否存在該學生 if(p、number==info[i]、number){ printf("\n\n\t該學號已存在!請重新輸入!\n\n"); return; } } printf("\t請輸入姓名:"); //輸入學生信息 getchar(); gets(p、name); printf("\t請輸入性別:"); getchar(); gets(p、sex); printf("\t請輸入家庭住址:"); getchar(); gets(p、adds); printf("\t請輸入電話號碼:"); getchar(); gets(p、phone); info[count]=p; for(i=0;i<count;i++){//按學號排序 if(info[i]、number>info[count]、number){for(j=count;j>i;j--){ info[j]=info[j-1]; } info[i]=p; break; } } count++; }}voidinfo_output() //學生信息瀏覽{ FILE*f_info; inti; if((f_info=fopen("info、txt","r"))==NULL){ //判斷 printf("\n\t沒有學生信息!"); printf("\n\n\t\t"); system("pause"); return; } info_daoru(); if(count==0){ //判斷printf("\n\t沒有學生信息!"); printf("\n\n\t\t"); system("pause"); return; }else{ printf("\t學號\t姓名\t性別\t家庭住址\t聯系電話\n");//輸出學生信息 for(i=0;i<count;i++){ printf("%10、0lf",info[i]、number); printf("%10s",info[i]、name); printf("%10s",info[i]、sex); printf("%15s",info[i]、adds); printf("%13s\n\n",info[i]、phone); } } printf("\t請按任意鍵返回上級:"); printf("\n\n\t\t"); system("pause"); printf("\n\n\n\n");}voidinfo_menu()//學生信息菜單{ intchoice; while(1){ system("cls"); //清屏 printf("\n\n\n\n\t\t☆☆☆☆☆學生信息處理系統(tǒng)☆☆☆☆☆\n\n"); printf("\t\t\t●1、輸入學生信息\n"); printf("\t\t\t●2、修改學生信息\n"); printf("\t\t\t●3、刪除學生信息\n"); printf("\t\t\t●4、瀏覽學生信息\n"); printf("\t\t\t●0、返回主菜單\n\n"); printf("\t\t請輸入序號選擇操作:"); scanf("%d",&choice); if(choice==0)break; switch(choice){ case1:info_input();info_xieru();break;case2:info_xiugai();break;case3:info_del();break; case4:info_output();break; default:printf("\n\t輸入有誤!請重新輸入!\n\n");break; } }}voiddata_menu()//數據處理菜單{ intchoice; printf("\n\t在進入學生數據管理前,請確認學生信息已全部完成!\n"); printf("\n\t就是否繼續(xù)?輸入數字選擇(0:返回;其它數字繼續(xù)。)\n"); scanf("%d",&choice); if(choice==0)return; while(1){ system("cls"); //清屏 printf("\n\n\n\n\t\t☆☆☆☆☆學生數據處理系統(tǒng)☆☆☆☆☆\n\n"); printf("\t\t\t●1、錄入成績數據\n"); printf("\t\t\t●2、修改學生數據\n"); printf("\t\t\t●3、學生數據查詢\n"); printf("\t\t\t●0、返回主菜單\n\n"); printf("\t\t請輸入序號選擇操作:"); scanf("%d",&choice); if(choice==0)break; switch(choice){ case1:data_input();break;case2:data_xiugai();break;case3:data_chaxun();break; default:printf("\n\t輸入有誤!請重新輸入!\n\n");break; } }}voidmenu()//主菜單函數{ intchoice; while(1){ system("cls"); printf("\n\n\n\n\t\t--------※主----菜----單※--------\n\n"); printf("\t\t\t●1、學生信息處理系統(tǒng)\n"); printf("\t\t\t●2、學生數據處理系統(tǒng)\n"); printf("\t\t\t●3、學生綜合信息輸出\n"); printf("\t\t\t●4、幫助信息\n"); printf("\t\t\t●0、退出系統(tǒng)\n\n"); printf("\t\t請輸入序號選擇操作:"); scanf("%d",&choice); printf("\n"); if(choice==0){ printf("\t\t☆☆☆☆☆您已經退出,謝謝使用!☆☆☆☆☆\n\n\t\t"); break; } switch(choice){ case1:info_menu();break; case2:data_menu();break; case4:help();break; case3:shuchu();break; default:printf("\n\t輸入有誤!請重新輸入!\n\n");break; } }}voidinfo_xieru()//學生信息寫入文件函數{ FILE*f; inti; if((f=fopen("info、txt","a"))==NULL){ printf("\n\t打開文件失敗!\n\n"); exit(0); }for(i=0;i<count;i++){ //保存文件 if(info[i]、number==w、number)continue;elsefprintf(f,"%、0lf%s%s%s%s",info[i]、number,info[i]、name,info[i]、sex,info[i]、adds,info[i]、phone); } fclose(f); printf("\n\t保存成功!\n\n"); printf("\n\n\t\t"); system("pause"); return;}voidinfo_del() //學生信息刪除{ doublepp; inti,j; info_daoru(); printf("\n\t請輸入要刪除學生得學號:"); scanf("%lf",&pp); printf("\n"); for(i=0;i<=count;i++){ //判斷if(info[i]、number==pp)break; if(i>=count){ printf("\n\t沒有找到該學生!\n");return; } } printf("\t學號\t姓名\t性別家庭住址\t聯系電話\n");//顯示刪除信息 printf("%10、0lf",info[i]、number); printf("%10s",info[i]、name); printf("%10s",info[i]、sex); printf("%13s\n\n",info[i]、phone); printf("\n\t就是否刪除?\t1、就是\t2、否\t"); while(1){ scanf("%d",&j); switch(j){ case1:info[i]=w;printf("\n\t刪除成功!\n\n");info_xieru();return; case2:return; default:printf("輸入錯誤!請重新輸入!");break; } break; } printf("\n\n\t\t");system("pause");}voidinfo_xiugai() //修改學生信息{ doublepp; inti,j; info_daoru(); printf("\n\t請輸入要修改學生得學號:");//查找 scanf("%lf",&pp); printf("\n"); for(i=0;i<=count;i++){if(info[i]、number==pp)break; printf("\n\t沒有找到該學生!\n");return; } printf("\t學號\t姓名\t性別\t家庭住址\t聯系電話\n");//顯示 printf("%10、0lf",info[i]、number); printf("%10s",info[i]、name); printf("%10s",info[i]、sex); printf("%15s",info[i]、adds); printf("%13s\n\n",info[i]、phone); printf("\n\t就是否修改?\t1、就是\t2、否\t"); while(1){ //修改 scanf("%d",&j); switch(j){ case1:{ printf("\t學號為:%、0lf\n",info[i]、number); printf("\t請輸入姓名::"); scanf("%s",info[i]、name); printf("\t請輸入性別:"); scanf("%s",info[i]、sex); printf("\t請輸入家庭住址::"); scanf("%s",info[i]、adds); printf("\t請輸入電話號碼:"); scanf("%s",info[i]、phone); printf("\n\t修改成功!\n\n");info_xieru();return;//保存 } case2:return; default:printf("輸入錯誤!請重新輸入!");break; } break; } printf("\n\n\t\t");system("pause");}voiddata_daoru() //學生數據導出{FILE*f_data; structdatap={NULL}; printf("\n\n\t正在導入、、、\n\n"); if((f_data=fopen("data、txt","r"))==NULL){ printf("\n\t打開文件失敗!\n\n"); return; } count=0;while(!feof(f_data)){ fscanf(f_data,"%lf%s%s%s%s%d%d%d%d%f%d%d%d%f",&p、number,p、name,p、sex,p、adds,p、phone,&p、chinese,&p、math,&p、english,&p、stu,&p、aver,&p、ksmc,&p、pinde,&p、teacher,&p、ceping); data[count]=p;//nnaseadpchmaensuavkspitece count++; } printf("\n\t導入已完成!共導入%d條記錄!\n\n\n",count); fclose(f_data); //關閉文件}voiddata_xieru()//寫入文件函數{ FILE*f; inti; if((f=fopen("data、txt","w"))==NULL){ printf("\n\t打開文件失敗!\n\n"); exit(0); }for(i=0;i<count;i++){fprintf(f,"%、0lf%s%s%s%s%d%d%d%、1f%d%d%d%、1f",data[i]、number,data[i]、name,data[i]、sex,data[i]、adds,data[i]、phone,data[i]、chinese,data[i]、math,data[i]、english,data[i]、aver,data[i]、ksmc,data[i]、stu,data[i]、pinde,data[i]、teacher,data[i]、ceping); }//numnamsadtelcmeaveksstutcep fclose(f); printf("\n\n\t\t"); system("pause"); return;}voiddata_input() //數據輸入{ FILE*f_info; intchoice,i,k; structdatap={NULL};printf("\n\t警告!原有成績將被覆蓋!\n"); printf("\n\t就是否繼續(xù)?輸入數字選擇(0、返回;其余數字繼續(xù))\n\n"); scanf("%d",&choice); if(choice==0)return; printf("\n\n\t正在導入、、、\n\n"); //判斷 if((f_info=fopen("info、txt","r"))==NULL){ printf("\n\t打開文件失敗!\n\n"); return; } count=0;while(!feof(f_info)){ //導出學生信息 fscanf(f_info,"%lf%s%s%s%s",&p、number,p、name,p、sex,p、adds,p、phone); data[count]=p; count++; } printf("\n\t導入已完成!共導入%d條記錄!\n\n\n",count); fclose(f_info); for(i=0;i<count;i++){ //輸入學生數據 printf("\n\t學號:%、0lf姓名:%s\n",data[i]、number,data[i]、name); printf("\n\t請輸入語文成績:"); scanf("%d",&data[i]、chinese); printf("\t請輸入數學成績:"); scanf("%d",&data[i]、math); printf("\t請輸入英語成績:"); scanf("%d",&data[i]、english); printf("\t請輸入同學互評分:"); scanf("%d",&data[i]、stu); printf("\t請輸入品德成績:"); scanf("%d",&data[i]、pinde); printf("\t請輸入老師評分:"); scanf("%d",&data[i]、teacher); data[i]、aver=(data[i]、chinese+data[i]、math+data[i]、english)/3、0; data[i]、ceping=(data[i]、aver*0、6+data[i]、stu*0、1+data[i]、pinde*0、1+data[i]、teacher*0、2); data[i]、ksmc=i+1; for(k=0;k<i;k++){ //名次排序 if(data[i]、aver>data[k]、aver){data[k]、ksmc=data[k]、ksmc+1; if(data[i]、ksmc>data[k]、ksmc-1) data[i]、ksmc=data[k]、ksmc-1; } } } printf("\n\n\t輸入已完成!正在保存、、、\n"); data_xieru();}voiddata_xiugai() //數據修改{ doublepp; inti,j,k; data_daoru(); printf("\n\t請輸入要修改學生得學號:"); scanf("%lf",&pp); printf("\n"); for(i=0;i<=count;i++){if(data[i]、number==pp)break; printf("\n\t沒有找到該學生!\n");return; } printf("\n\t學號:%、0lf姓名:%s\n\n\t語文:%d數學:%d英語:%d同學互評分:%d品德成績:%d老師評分:%d\n\n",data[i]、number,data[i]、name,data[i]、chinese,data[i]、math,data[i]、english,data[i]、stu,data[i]、pinde,data[i]、teacher); printf("\n\t就是否修改?\t1、就是\t2、否\t"); while(1){ //詢問 scanf("%d",&j); switch(j){ case1:{ for(k=0;k<=count;k++){ //重新排名次 if(data[i]、aver>data[k]、aver)data[k]、ksmc=data[k]、ksmc-1; } printf("\n\t請輸入語文成績:"); scanf("%d",&data[i]、chinese); printf("\t請輸入數學成績:"); scanf("%d",&data[i]、math); printf("\t請輸入英語成績:"); scanf("%d",&data[i]、english);printf("\t請輸入同學互評分:"); scanf("%d",&data[i]、stu); printf("\t請輸入品德成績:"); scanf("%d",&data[i]、pinde); printf("\t請輸入老師評分:"); scanf("%d",&data[i]、teacher); data[i]、aver=(data[i]、chinese+data[i]、math+data[i]、english)/3、0; data[i]、ceping=(data[i]、aver*0、6+data[i]、stu*0、1+data[i]、pinde*0、1+data[i]、teacher*0、2); data[i]、ksmc=count; for(k=0;k<count;k++){ //重新排名次 if(data[i]、aver>data[k]、aver){ data[k]、ksmc=data[k]、ksmc+1; if(data[i]、ksmc>data[k]、ksmc-1) data[i]、ksmc=data[k]、ksmc-1; } }printf("\n\t修改成功!\n\n");data_xieru();return;//寫入文件 }case2:return;default:printf("輸入錯誤!請重新輸入!");break; } break; } printf("\n\n\t\t");system("pause");}voiddata_chaxun() //數據查詢{doublepp; inti; data_daoru(); //導出文件數據 printf("\n\t請輸入要查詢學生得學號:"); scanf("%lf",&pp); printf("\n"); for(i=0;i<=count;i++){if(data[i]、number==pp)break; if(i>=c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年一年級下學期數學《總復習》(教案)
- 六年級下冊數學教案-1.4 求比一個數多(少)百分之幾的數是多少 青島版
- 六年級上冊數學教案-2.2 圓的周長 ︳西師大版
- 學習2025年雷鋒精神六十二周年主題活動實施方案 (3份)-66
- 數學-云南省師范大學附屬中學2025屆高三下學期開學考試試題和答案
- 2025年度東莞市入學積分制社區(qū)教育志愿者服務協議
- 2025年度交通事故人傷私了協議(賠償期限與方式)
- 二零二五年度醫(yī)療機構與康復醫(yī)院醫(yī)生合作合同
- 2025年度安保服務滿意度調查合同范本
- 二零二五年度白酒品牌授權區(qū)域代理及市場拓展合同
- 班會課件:逆風飛翔破繭成蝶-從《哪吒之魔童鬧?!房辞啻浩诘某砷L與責任
- 2.1 堅持依憲治國 教案 -2024-2025學年統(tǒng)編版道德與法治八年級下冊
- 【語文試卷+答案】2024-2025學年泉州高二上期末質檢
- 《修繕定額講解》課件
- 大學學生宿舍管理員工作培訓
- 初三物理常識試卷單選題100道及答案
- 浙江2024公務員考試真題及答案
- 初中新課標培訓課件
- 2025年吉林省吉林市事業(yè)單位招聘入伍高校畢業(yè)生54人歷年高頻重點提升(共500題)附帶答案詳解
- 公司銀行貸款申請書范文
- 機械設計制造及其自動化專業(yè)知識
評論
0/150
提交評論