版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
./C語(yǔ)言課程設(shè)計(jì)報(bào)告班級(jí):電氣1004學(xué)號(hào):201009334姓名:雷海燕指導(dǎo)教師:王果評(píng)語(yǔ):評(píng)語(yǔ):2011年07月1基本題目1.1題目1.1題目 有17個(gè)人圍成一圈,從0號(hào)的人開(kāi)始報(bào)數(shù),凡報(bào)到3的倍數(shù)的人離開(kāi)圈子,然后再數(shù)下去。直到最后只剩下一個(gè)人為止。問(wèn)此人原來(lái)的位置是多少號(hào)。1.2題目分析創(chuàng)建一個(gè)指針變量,指針變量中的初值為0至16。然后通過(guò)for循環(huán)將指針變量中所指的值是三的倍數(shù)的變量賦值為0,最后找出所要找的值。1.3程序#include<stdio.h>#defineN17intmain<>{inti,j,k,a[N+1],*p;for<i=0,p=a;p<=a+N;i++,p++>*p=i;p=a+1;k=N;for<i=0,j=1;k!=1;j++>{if<p><a+N>>p=a+1;if<*p!=0>i++;if<i%3==0&&i!=0>{*p=0;i=0;k--;}p++;}for<i=1;i<=N;i++>if<a[i]!=0>printf<"最后留下的是%d\n",a[i]>;return0;}1.4流程圖開(kāi)始開(kāi)始i=0,p=aN=17i=0,p=aN=17i=0i=0p<=a+Np<=a+NYYN*p=i,i++,p++N*p=i,i++,p++p=a+1,i=0,j=0p=a+1,i=0,j=0k!=1k!=1k!=1k!=1YYp>a+Np>a+NNNNNp=a+Np=a+NYY*p!=0*p!=0NNi++i++YYi%3!=0i%3!=0NNYY*p=0,i=0,k--*p=0,i=0,k--p++,j++p++,j++p++,j++p++,j++i<=Ni<=NYY輸出最后留下的值輸出最后留下的值NNi++i++結(jié)束圖1.1基本題目的流程圖1.5程序的運(yùn)行結(jié)果基本體運(yùn)行結(jié)果如圖1.2所示:圖1.2基本題目運(yùn)行結(jié)果2改錯(cuò)題目2.1改正后程序#include<stdio.h>intmain<>{intx=1;inty;y=x++;printf<"y=%d",y>;intz;z=++x;printf<"z=%d\n",z>return0;}2.2程序運(yùn)行結(jié)果程序完成的功能:用x的初始值算出y與z的值。改正后的運(yùn)行結(jié)果如圖2.1所示:圖2.1改正后的運(yùn)行結(jié)果3.綜合題目3.1題目班級(jí)成績(jī)管理系統(tǒng),對(duì)一個(gè)有N個(gè)學(xué)生的班級(jí),每個(gè)學(xué)生有M門課程。該系統(tǒng)實(shí)現(xiàn)對(duì)班級(jí)成績(jī)的錄入、顯示、修改、排序、保存等操作的管理。3.2程序的主要功能本程序?qū)崿F(xiàn)對(duì)一個(gè)班學(xué)生某幾門課程的錄入,成績(jī)的顯示、成績(jī)的保存、對(duì)成績(jī)進(jìn)行排、對(duì)成績(jī)進(jìn)行修改、對(duì)成績(jī)進(jìn)行統(tǒng)計(jì)〔包括每門課程的最高分、平均分、超過(guò)每門平均分的人數(shù)等,運(yùn)行程序后退出程序。3.3各函數(shù)的功能〔1input函數(shù)利用嵌套循環(huán)語(yǔ)句,實(shí)現(xiàn)對(duì)N位學(xué)生,M門課程的輸入?!?output函數(shù)實(shí)現(xiàn)對(duì)先前輸入學(xué)生成績(jī)的輸出。〔3save函數(shù)將輸入數(shù)據(jù)存入指定文件中?!?rank函數(shù)計(jì)算出所有學(xué)生的成績(jī)總分,并按照分?jǐn)?shù)從高到低,進(jìn)行輸出。〔5change函數(shù)判斷密碼是否正確,并對(duì)選中學(xué)生成績(jī)進(jìn)行修改。3.4程序流程圖開(kāi)始輸入輸入x'A'或'a''B'或''A'或'a''B'或'b''F'或'f'i=0i=0'C'i=0i=0'C'或'c''D'或'd''E'或'e'''G'或'g'輸出科目名利用for循環(huán),對(duì)每一位學(xué)生算出成績(jī)總分輸出科目名利用for循環(huán),對(duì)每一位學(xué)生算出成績(jī)總分輸入科目名將數(shù)據(jù)存入指定文件輸入科目名將數(shù)據(jù)存入指定文件Y利用coun函數(shù),進(jìn)行對(duì)學(xué)生成績(jī)的統(tǒng)計(jì)Y利用coun函數(shù),進(jìn)行對(duì)學(xué)生成績(jī)的統(tǒng)計(jì)詳見(jiàn)圖6i++i++i++YRi++YReturn0,即退出系統(tǒng)i<=Mi<=M利用tran函數(shù),進(jìn)行加密碼,修改學(xué)生成績(jī)。詳見(jiàn)圖5利用tran函數(shù),進(jìn)行加密碼,修改學(xué)生成績(jī)。詳見(jiàn)圖5i<MNi<MNNi=0Ni=0i=0輸出姓名、學(xué)號(hào)i=0輸出姓名、學(xué)號(hào)利用for循環(huán),將學(xué)生按成績(jī)從高到低輸出利用for循環(huán),將學(xué)生按成績(jī)從高到低輸出輸入學(xué)生姓名輸入學(xué)生姓名j=0j=0輸出成績(jī)輸出成績(jī)輸入學(xué)號(hào)輸入學(xué)號(hào)Yj++YYj++YYY輸入成績(jī)輸入成績(jī)j<MNNi++i++i++i++i<Ni<Ni<Ni<NNNNNWhile<1>While<1>結(jié)束圖3.1綜合題目的流程圖3.4源程序#include<stdio.h>#include<string.h>#include<windows.h>#defineN10 /*學(xué)生人數(shù)*/#defineM4 /*課程數(shù)*/#definePASS890508 /*修改密碼*/voidinput<>; /*成績(jī)輸入*/voidoutput<>; /*成績(jī)顯示*/voidsave<>; /*成績(jī)保存*/voidrank<>; /*成績(jī)排序*/voidtran<>; /*成績(jī)修改*/voidcoun<>; /*成績(jī)統(tǒng)計(jì)*/voiderrorinput<>; /*出錯(cuò)輸出*/structstudent /*成績(jī)數(shù)據(jù)結(jié)構(gòu)體*/{ charname[10]; intnum; floatscore[M]; doublesum;}stud[N];charsubject_name[N][10];intmain<>{ charx; while<1> { system<"cls">; printf<"________________________________________________________\n">; printf<"***班級(jí)成績(jī)管理系統(tǒng)***\n">; printf<"******\n">; printf<"***A[成績(jī)錄入]***\n">; printf<"******\n">; printf<"***B[成績(jī)顯示]***\n">; printf<"******\n">; printf<"***C[成績(jī)保存]***\n">; printf<"******\n">; printf<"***D[成績(jī)排序]***\n">; printf<"******\n">; printf<"***E[成績(jī)修改]***\n">; printf<"******\n">; printf<"***F[成績(jī)統(tǒng)計(jì)]***\n">; printf<"******\n">; printf<"***G[退出系統(tǒng)]***\n">; printf<"******\n">; printf<"________________________________________________________\n">; printf<"輸入你的選擇:">; scanf<"%c",&x>; switch<x> { case'a':case'A':input<>; break; case'b':case'B':output<>; break; case'c':case'C':save<>; break; case'd':case'D':rank<>; break; case'e':case'E':tran<>; break; case'f':case'F':coun<>; break; case'g':case'G':return0; default:errorinput<>; break; } getchar<>; } return0;}voidinput<> /*成績(jī)輸入*/{ inti,j; printf<"請(qǐng)輸入科目名稱:\n">; for<i=0;i<M;i++> /*輸入科目名稱*/ { printf<"科目%d:",i+1>; scanf<"%s",subject_name[i]>; } for<i=0;i<N;i++> /*輸入學(xué)生信息、各科成績(jī)*/ { printf<"學(xué)生%d:\n",i+1>; printf<":">; scanf<"%s",&stud[i].name>; printf<"學(xué)號(hào):">; scanf<"%d",&stud[i].num>; for<j=0;j<M;j++> { printf<"%s成績(jī):",subject_name[j]>; scanf<"%f",&stud[i].score[j]>; } printf<"\n">; }}voidoutput<> /*成績(jī)顯示*/{ inti,j; system<"cls">; printf<"學(xué)號(hào)">; for<i=0;i<=M;i++> printf<"%s",subject_name[i]>; /*在一行里面輸出科目名稱,相互之間有間隔。作為其下列表的目錄。*/ printf<"\n">; for<i=0;i<N;i++> { printf<"%1s\t%1d\t",stud[i].name,stud[i].num>; for<j=0;j<M;j++> printf<"%5.1f\t",stud[i].score[j]>; printf<"\n">; } printf<"!輸入任意鍵返回!\n">; getchar<>;}voidsave<> /*成績(jī)保存*/{ FILE*fp; inti,j; if<<fp=fopen<"data.txt","w">>==NULL> /*文件打開(kāi)*/ { printf<"Fileopenerror!\n">; return; } for<i=0;i<M;i++> /*寫(xiě)入各科目名稱*/ fprintf<fp,"%s",subject_name[i]>; fprintf<fp,"\n">; for<i=0;i<N;i++> /*寫(xiě)入學(xué)生數(shù)據(jù)、成績(jī)信息*/ { fprintf<fp,"%5s%5d",stud[i].name,stud[i].num>; for<j=0;j<M;j++> { fprintf<fp,"%6.1f",stud[i].score[j]>; } fprintf<fp,"\n">; } if<fclose<fp>> /*文件關(guān)閉*/ { printf<"Cannotclosethefile!\n">; return; } printf<"Filesavesucceed!\n">; getchar<>; return;}voidrank<> /*成績(jī)排序*/{ voidswap<int*px,int*py>; int*a; a=newint[N]; inti,j; doubletot; system<"cls">; for<i=0;i<N;i++>/*循環(huán)計(jì)算總分*/ { a[i]=i; for<j=0,tot=0;j<M;j++> tot=tot+stud[i].score[j]; stud[i].sum=tot; } for<i=0;i<N;i++>{ for<j=0;j<N-i-1;j++> if<stud[a[j]].sum<stud[a[j+1]].sum> swap<&a[j],&a[j+1]>; } printf<"學(xué)號(hào)總分\n">; for<i=0;i<N;i++> printf<"%d\t%s\t%.1f\n",stud[a[i]].num,stud[a[i]].name,stud[a[i]].sum>; delete[]a; printf<"!輸入任意鍵退出!\n">; getchar<>;}voidswap<int*px,int*py>{ intt; t=*px; *px=*py; *py=t;}voidtran<> /*成績(jī)修改*/{ charch[10],flag='Y'; intnum; inti,j; printf<"請(qǐng)輸入密碼:">;//檢查密碼 scanf<"%s",ch>; if<strcmp<ch,"123">!=0> { printf<"密碼錯(cuò)誤!〔按任意鍵返回\n">; getchar<>; return; } while<flag=='Y'||flag=='y'>//修改成績(jī) { printf<"輸入要修改成績(jī)的學(xué)生學(xué)號(hào):">;//按學(xué)號(hào)搜索 scanf<"%d",&num>; for<i=0;i<N;i++>//i保存搜索到的學(xué)生序號(hào) if<num==stud[i].num> break; if<i==N> { if<num==0> return; else { printf<"沒(méi)有找到學(xué)生,請(qǐng)重新輸入!<輸入0退出>\n">; continue; } } printf<"請(qǐng)輸入新的各科成績(jī):\n">;//修改成績(jī) for<j=0;j<M;j++> { printf<"%s:",subject_name[j]>; scanf<"%f",&stud[i].score[j]>; } printf<"是否繼續(xù)修改<Y/N>?">; scanf<"%s",&flag>; }}voidcoun<> /*成績(jī)統(tǒng)計(jì)*/{ voidstate_high<>; voidstate_ave<>; voidstate_num<>; charchoice; system<"cls">; printf<"&&&================================================&&&\n">; printf<"&&&選擇菜單&&&\n">; printf<"&&&A.顯示每門課程成績(jī)最高的學(xué)生的基本信息&&&\n">; printf<"&&&B.顯示每門課程的平均成績(jī)&&&\n">; printf<"&&&C.顯示超過(guò)某門課程平均成績(jī)的學(xué)生人數(shù)&&&\n">; printf<"&&&D.返回&&&\n">; printf<"&&&================================================&&&\n">; scanf<"%s",&choice>; switch<choice> { case'A':case'a':state_high<>; break; case'B':case'b':state_ave<>; break; case'C':case'c':state_num<>; break; case'D':case'd':break; default:errorinput<>;coun<>; break; } printf<"按任意鍵返回主菜單\n">; getchar<>;}voidstate_high<>/*輸出各科最高分的基本信息*/{ inti,j,high; system<"cls">; for<j=0;j<M;j++> { for<i=0,high=0;i<N;i++>/*high:最高分的stu[high]*/ { if<stud[i].score[j]>stud[high].score[j]> high=i; } printf<"%s最高分:",subject_name[j]>; printf<"%s\t學(xué)號(hào)%d\t\n",stud[high].name,stud[high].num>; } printf<"\n">;}voidstate_ave<>/*每門課程平均成績(jī)*/{ inti,j; floatsum,ave; system<"cls">; for<j=0;j<M;j++> { for<i=0,sum=0;i<N;i++> { sum+=stud[i].score[j]; } ave=sum/N; printf<"%s平均成績(jī):%.1f\n",subject_name[j],ave>; } printf<"\n">;}voidstate_num<> /*每門課程超過(guò)平均成績(jī)的學(xué)生人數(shù)*/{ inti,j,n; floatsum,ave; system<"cls">; for<j=0;j<M;j++> { for<i=0,sum=0;i<N;i++> { sum=sum+stud[i].score[j]; } ave=sum/N; for<i=0,n=0;i<N;i++> { if<stud[i].score[j]>ave> n++; } printf<"%s超過(guò)平均分的人數(shù)為:%d\t\n",subject_name[j],n>; } printf<"\n">;}voiderrorinput<> /*出錯(cuò)輸出*/{ system<"cls">; printf<"無(wú)效的輸入,請(qǐng)重新輸入!\n">;}3.5程序運(yùn)行結(jié)果程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 古代戶籍檔案管理制度(3篇)
- 江西注射器管理制度(3篇)
- 開(kāi)封春游活動(dòng)策劃方案(3篇)
- 和祥小區(qū)施工方案(3篇)
- 棗莊酒吧活動(dòng)策劃方案(3篇)
- 有水防水施工方案(3篇)
- 景區(qū)突發(fā)事件應(yīng)急預(yù)案制度
- 罕見(jiàn)自身免疫病的營(yíng)養(yǎng)干預(yù)策略
- 食品安全16個(gè)制度
- 山東省棲霞二中2026屆高二上生物期末統(tǒng)考試題含解析
- 《看圖找關(guān)系》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年六年級(jí)上冊(cè)數(shù)學(xué)北師大版
- 新版高中物理必做實(shí)驗(yàn)?zāi)夸浖捌鞑?(電子版)
- 心理與教育測(cè)量課件
- ABAQUS在隧道及地下工程中的應(yīng)用
- 【郎朗:千里之行我的故事】-朗朗千里之行在線閱讀
- 相似件管理規(guī)定
- 長(zhǎng)沙市財(cái)政評(píng)審中心 2023年第一期材料價(jià)格手冊(cè)簽章版
- 病原生物與免疫學(xué)試題(含答案)
- 尼帕病毒專題知識(shí)宣講
- 現(xiàn)代企業(yè)管理制度
- GB/T 24312-2022水泥刨花板
評(píng)論
0/150
提交評(píng)論