第一篇:c語(yǔ)言程序設(shè)計(jì)實(shí)習(xí)報(bào)告程序
#include “stdio.h” /*定義學(xué)生結(jié)構(gòu)體*/ struct Student {
char ID[20];
char Name[20];
float Mark1;/*計(jì)算機(jī)*/
float Mark2;/*英語(yǔ)*/
float Mark3;/*數(shù)學(xué)*/
float Zongfen;/*總分*/
float Average;};/*平均分*/ /*聲明學(xué)生數(shù)組及學(xué)生數(shù)量*/ struct Student students[2000];int num=0;/*求總分*/ float Zong(struct Student stu){ return(stu.Mark1+stu.Mark2+stu.Mark3);} /*求平均值*/ float Avg(struct Student stu){return(stu.Mark1+stu.Mark2+stu.Mark3)/3;} /*通過(guò)學(xué)號(hào)返回?cái)?shù)組下標(biāo)*/ int Student_SearchByIndex(char id[]){
int i;
for(i=0;i int i; for(i=0;i {if(strcmp(students[i].Name,name)==0) {return i;}} return-1;} /*通過(guò)學(xué)號(hào)返回?cái)?shù)組下標(biāo)*/ int Student_SearchID(char id[]){ int i; for(i=0;i {if(strcmp(students[i].ID,id)==0) {return i;}} return-1;} /*顯示單條學(xué)生記錄*/ void Student_DisplaySingle(int index){printf(“%10s%10s%8s%8s%8s%8s%10sn”,“學(xué)號(hào)”,“姓名”,“計(jì)算機(jī)”,“英語(yǔ)”,“數(shù)學(xué)”,“總分”,“平均成績(jī)”);printf(“------------------------------n”);printf(“%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2fn”,students[index].ID,students[index].Name, students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Zongfen,students[index].Average);}void Student_DisplaySingle1(int index){printf(“------------------------------n”);printf(“%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2fn”,students[index].ID,students[index].Name, students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Zongfen,students[index].Average);} /*插入學(xué)生信息*/ void Student_Insert(){while(1){printf(“請(qǐng)輸入學(xué)號(hào):”);scanf(“%s”,&students[num].ID);getchar();printf(“請(qǐng)輸入姓名:”);scanf(“%s”,&students[num].Name);getchar();printf(“請(qǐng)輸入計(jì)算機(jī)成績(jī):”);scanf(“%f”,&students[num].Mark1);getchar();printf(“請(qǐng)輸入英語(yǔ)成績(jī):”);scanf(“%f”,&students[num].Mark2);getchar();printf(“請(qǐng)輸入數(shù)學(xué)成績(jī):”);scanf(“%f”,&students[num].Mark3);getchar(); students[num].Average=Avg(students[num]); students[num].Zongfen=Zong(students[num]); num++; printf(“是否繼續(xù)?(y/n)”); if(getchar()=='n'){break;} }} void exit();/*修改學(xué)生信息*/ void Student_Modify(){ float mark1,mark2,mark3; while(1) { char id[20]; int index; printf(“請(qǐng)輸入要修改的學(xué)生的學(xué)號(hào):”); scanf(“%s”,&id); getchar(); index=Student_SearchByIndex(id); if(index==-1) { printf(“學(xué)生不存在!n”); } else { printf(“你要修改的學(xué)生信息為:n”); Student_DisplaySingle(index); printf(“--請(qǐng)輸入新值--n”); printf(“請(qǐng)輸入學(xué)號(hào):”); scanf(“%s”,&students[index].ID); getchar(); printf(“請(qǐng)輸入姓名:”); scanf(“%s”,&students[index].Name); getchar(); printf(“請(qǐng)輸入成績(jī):”); scanf(“%f”,&students[index].Mark1); getchar(); printf(“請(qǐng)輸入成績(jī):”); scanf(“%f”,&students[index].Mark2); getchar(); printf(“請(qǐng)輸入成績(jī):”); scanf(“%f”,&students[index].Mark3); getchar(); students[index].Zongfen=Zong(students[index]); students[index].Average=Avg(students[index]); printf(“是否繼續(xù)?(y/n)”); if(getchar()=='n') { break; } } } /*刪除學(xué)生信息*/ void Student_Delete(){ int i; while(1) { char id[20]; int index; printf(“請(qǐng)輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào):”); scanf(“%s”,&id); } getchar(); index=Student_SearchByIndex(id); if(index==-1) { printf(“學(xué)生不存在!n”); } else { printf(“你要?jiǎng)h除的學(xué)生信息為:n”); Student_DisplaySingle(index); printf(“是否真的要?jiǎng)h除?(y/n)”); if(getchar()=='y') { for(i=index;i { students[i]=students[i+1]; } num--; } getchar(); } printf(“是否繼續(xù)?(y/n)”); if(getchar()=='n') { break; } } } /*按姓名或?qū)W號(hào)查詢*/ void Student_Select(){ int sel; printf(“1--------------------按姓名查詢n”); printf(“2--------------------按學(xué)號(hào)查詢n”); scanf(“%d”,&sel); if(sel==2){ while(1) { char id[20]; int index; printf(“請(qǐng)輸入要查詢的學(xué)生的學(xué)號(hào):”); scanf(“%s”,&id); getchar(); index=Student_SearchID(id); if(index==-1) { printf(“學(xué)生不存在!n”); } else { printf(“你要查詢的學(xué)生信息為:n”); Student_DisplaySingle(index); } printf(“是否繼續(xù)?(y/n)”); if(getchar()=='n') { break; } }}else if(sel==1) {while(1) { char name[20]; int index; printf(“請(qǐng)輸入要查詢的學(xué)生的姓名:”); scanf(“%s”,&name); getchar(); index=Student_SearchByName(name); if(index==-1) { printf(“學(xué)生不存在!n”); } else { printf(“你要查詢的學(xué)生信息為:n”); Student_DisplaySingle(index); } printf(“是否繼續(xù)?(y/n)”); if(getchar()=='n') { break; } }} else printf(“信息錯(cuò)誤!n”);} /*排序*/ void Student_SortByAverage(){ int a,sel; printf(“1--------------------按學(xué)號(hào)排序n”); printf(“2--------------------按姓名排序n”); printf(“3--------------------按計(jì)算機(jī)排序n”); printf(“4--------------------按英語(yǔ)排序n”); printf(“5--------------------按數(shù)學(xué)排序n”); printf(“6--------------------按總分排序n”); printf(“7--------------------按平均分排序n”); scanf(“%d”,&sel); if(sel==1) {int i,j; struct Student tmp; for(i=0;i { for(j=1;j { if(strcmp(students[j-1].ID,students[j].ID)>0) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } }} else if(sel==2) {int i,j; struct Student tmp; for(i=0;i { for(j=1;j { if(strcmp(students[j-1].Name,students[j].Name)>0) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } }} else if(sel==3) {int i,j; struct Student tmp; for(i=0;i { for(j=1;j { if(students[j-1].Mark1>students[j].Mark1) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } }} else if(sel==4) {int i,j; struct Student tmp; for(i=0;i { for(j=1;j { if(students[j-1].Mark2>students[j].Mark2) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } }} else if(sel==5) {int i,j; struct Student tmp; for(i=0;i { for(j=1;j { if(students[j-1].Mark3>students[j].Mark3) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } }} else if(sel==6) {int i,j; struct Student tmp; for(i=0;i { for(j=1;j { if(students[j-1].Zongfen>students[j].Zongfen) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } }} else if(sel==7) {int i,j; struct Student tmp; for(i=0;i { for(j=1;j { if(students[j-1].Average>students[j].Average) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } }} else printf(“信息錯(cuò)誤!n”);} /*顯示學(xué)生信息*/ void Student_Display(){ int i; printf(“%10s%10s%8s%8s%8s%8s%10sn”,“學(xué)號(hào)”,“姓名”,“計(jì)算機(jī)”,“英語(yǔ)”,“數(shù)學(xué)”,“總分”,“平均成績(jī)”); printf(“------------------------------n”); for(i=0;i { printf(“%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2fn”,students[i].ID,students[i].Name,students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Zongfen,students[i].Average); } } /*將學(xué)生信息從文件讀出*/ void IO_ReadInfo(){ FILE *fp; int i; if((fp=fopen(“Database.txt”,“rb”))==NULL) { printf(“不能打開文件!n”); return; } if(fread(&num,sizeof(int),1,fp)!=1) { num=-1; } else { for(i=0;i { fread(&students[i],sizeof(struct Student),1,fp); } } fclose(fp);} /*將學(xué)生信息寫入文件*/ void IO_WriteInfo(){ FILE *fp; int i; if((fp=fopen(“Database.txt”,“wb”))==NULL) { printf(“不能打開文件!n”); return; } if(fwrite(&num,sizeof(int),1,fp)!=1) { printf(“寫入文件錯(cuò)誤!n”); } for(i=0;i { if(fwrite(&students[i],sizeof(struct Student),1,fp)!=1) { printf(“寫入文件錯(cuò)誤!n”); } } fclose(fp);} /*統(tǒng)計(jì)不同分?jǐn)?shù)段的學(xué)生*/ void Student_TJ(){ while(1) { int a,sel; float m,n; printf(“1--------------------按計(jì)算機(jī)統(tǒng)計(jì)不同分?jǐn)?shù)段的學(xué)生n”); printf(“2--------------------按英語(yǔ)統(tǒng)計(jì)不同分?jǐn)?shù)段的學(xué)生n”); printf(“3--------------------按數(shù)學(xué)統(tǒng)計(jì)不同分?jǐn)?shù)段的學(xué)生n”); printf(“4--------------------按總分統(tǒng)計(jì)不同分?jǐn)?shù)段的學(xué)生n”); printf(“5--------------------按平均分統(tǒng)計(jì)不同分?jǐn)?shù)段的學(xué)生n”); scanf(“%d”,&sel); printf(“輸入所需查詢的分?jǐn)?shù)段[m,n]”); scanf(“%f%f”,&m,&n); printf(“%10s%10s%8s%8s%8s%8s%10sn”,“學(xué)號(hào)”,“姓名”,“計(jì)算機(jī)”,“英語(yǔ)”,“數(shù)學(xué)”,“總分”,“平均成績(jī)”); if(sel==1) {int j; for(j=0;j<=num;j++) { if(students[j].Mark1>=m&&students[j].Mark1<=n) Student_DisplaySingle1(j); }} else if(sel==2) {int j; for(j=0;j<=num;j++) { if(students[j].Mark2>=m&&students[j].Mark2<=n) Student_DisplaySingle1(j); }} else if(sel==3) {int j; for(j=0;j<=num;j++) { if(students[j].Mark3>=m&&students[j].Mark3<=n) Student_DisplaySingle1(j); }}else if(sel==4) {int j; for(j=0;j<=num;j++) { if(students[j].Zongfen>=m&&students[j].Zongfen<=n) Student_DisplaySingle1(j); }}else if(sel==5) {int j; for(j=0;j<=num;j++) { if(students[j].Average>=m&&students[j].Average<=n) Student_DisplaySingle1(j); }} else printf(“信息錯(cuò)誤!n”); printf(“是否繼續(xù)?(y/n)”); a=getchar(); if(getchar()=='n'){break;} } } /*主程序*/ main(){ int choice; IO_ReadInfo(); fflush(stdin);while(1) { /*主菜單*/ printf(“ ~~~~~~~~~~~~~~~~~~~~~&歡迎進(jìn)入學(xué)生成績(jī)管理系統(tǒng)&~~~~~~~~~~~~~~~~~~~~~ n”);printf(“ * 1.輸入學(xué)生記錄 *n”);printf(“ * 2.添加學(xué)生記錄 *n”);printf(“ * 3.修改學(xué)生記錄 *n”);printf(“ * 4.刪除學(xué)生記錄 *n”);printf(“ * 5.按姓名或?qū)W號(hào)查詢學(xué)生記錄 *n”);printf(“ * 6.排序 *n”);printf(“ * 7.統(tǒng)計(jì)不同分?jǐn)?shù)段的學(xué)生 *n”);printf(“ * 8.輸出學(xué)生記錄 *n”);printf(“ * 9.退出 *n”);printf(“ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ n”);printf(“ 請(qǐng)選擇(1-9):”);scanf(“%d”,&choice);getchar();switch(choice){ case 1:Student_Insert();break;case 2:Student_Insert();break;case 3:Student_Modify();break;case 4:Student_Delete();break;case 5:Student_Select();break;case 6:Student_SortByAverage();Student_Display();break;case 7:Student_TJ();break;case 8:Student_Display();break;} IO_WriteInfo(); } } 實(shí)習(xí)報(bào)告 題 目: C語(yǔ)言程序設(shè)計(jì) 所屬系、部 : 電氣工程學(xué)院 班 級(jí): 電子商務(wù)131 姓 名: 賀道君 學(xué) 號(hào): 20***5 指 導(dǎo) 教 師: 費(fèi) 玲 玲 2014年6月 一、實(shí)習(xí)目的 加深理解C語(yǔ)言基礎(chǔ)知識(shí)及其編程技術(shù),了解高級(jí)程序設(shè)計(jì)語(yǔ)言的結(jié)構(gòu),熟練掌握程序設(shè)計(jì)方法和技巧,掌握基本的分析和利用計(jì)算機(jī)求解問(wèn)題的能力,具備初步的高級(jí)語(yǔ)言程序設(shè)計(jì)能力。 二、實(shí)習(xí)時(shí)間、地點(diǎn) 6月16日(星期一)上午:微機(jī)室5 下午:微機(jī)室5 6月17日(星期二) 3、4:微機(jī)室5 下午:微機(jī)室3 6月18日(星期三)上午:微機(jī)室5 下午:學(xué)校 6月19日(星期四)上午:微機(jī)室5 下午:微機(jī)室3 6月20日(星期五)上午:C101 下午:學(xué)校 三、實(shí)習(xí)內(nèi)容 綜合 四、實(shí)習(xí)總結(jié) 在學(xué)C語(yǔ)言的一個(gè)學(xué)期后,我們進(jìn)行了C語(yǔ)言實(shí)訓(xùn)階段,嘗試自己編寫一個(gè)比較復(fù)雜的程序系統(tǒng)。在為期一周周的時(shí)間中,我們同組的同學(xué)共同的感受是:C語(yǔ)言實(shí)訓(xùn)和平時(shí)上課所接觸的程序是有很大不同的,所經(jīng)受的考驗(yàn)和克服的困難是平時(shí)所無(wú)法比擬的。好在同組的搭檔們精誠(chéng)合作,分工明確,有問(wèn)題共同解決,攻克了C語(yǔ)言實(shí)訓(xùn)的復(fù)雜程序。在這里,我作為其中的參與者,自然感觸良多 剛開始接觸到C的時(shí)候,我已經(jīng)學(xué)過(guò)一些有關(guān)VB的內(nèi)容,這個(gè)在算法和思維上稍微有點(diǎn)幫助。回想本學(xué)期的學(xué)習(xí),首先,最基本的,是C的數(shù)據(jù)格式,讓我們知道整數(shù),浮點(diǎn)數(shù)以及字符常量在C中的運(yùn)用。然后,在學(xué)會(huì)了數(shù)據(jù)轉(zhuǎn)化,以及熟練的可以對(duì)各種數(shù)據(jù)處理之后,我開始進(jìn)行有關(guān)數(shù)據(jù)結(jié)構(gòu),像數(shù)組,結(jié)構(gòu)體等的學(xué)習(xí),因?yàn)橛械臇|西從現(xiàn)有的知識(shí)來(lái)看都是非常簡(jiǎn)單的,還沒(méi)有聯(lián)系到指針等等一些復(fù)雜的概念??墒?,僅僅學(xué)會(huì)這些是遠(yuǎn)遠(yuǎn)不夠的,C語(yǔ)言中,還有很多更加經(jīng)典、重要、實(shí)用的知識(shí)。 說(shuō)說(shuō)函數(shù)。雖說(shuō)很多程序語(yǔ)言都有函數(shù)這一內(nèi)容,但我覺(jué)得C語(yǔ)言的函數(shù)是最有魅力的了。學(xué)習(xí)函數(shù)的方法是比較簡(jiǎn)單的,只有兩個(gè)字“牢記”,即:牢記函數(shù)的功能,牢記函數(shù)的用途以及如何輸入輸出。函數(shù)從本質(zhì)上講是一段通用程序,用它可以幫助我們節(jié)約很多編程的時(shí)間,學(xué)習(xí)C語(yǔ)言的“高人”都說(shuō),一個(gè)聰明的編程者在編寫程序前往往總是先找自己所編寫的程序中有多少是可以用函數(shù)來(lái)代替的。比如,大家可以作一個(gè)比較字符串的實(shí)驗(yàn),用C語(yǔ)言中的strcmp()函數(shù)只要一句話,而自己編寫的話,30句都很難實(shí)現(xiàn),可想而知函數(shù)的實(shí)用和快捷。在我們C語(yǔ)言實(shí)訓(xùn)的代碼中,函數(shù)更是得到了充分的應(yīng)用,可以說(shuō),實(shí)訓(xùn)題目的復(fù)雜代碼,就是用無(wú)數(shù)個(gè)函數(shù)的調(diào)用和嵌套積累出來(lái)的。要注意的是,有的同學(xué)剛剛開始的時(shí)候,都是被一些大的程序激勵(lì)的,所以當(dāng)開始的時(shí)候看到繁瑣的數(shù)據(jù)轉(zhuǎn)化和簡(jiǎn)單的算法,都覺(jué)得很無(wú)聊,都想自己做幾個(gè)自己滿意的程序來(lái)看看,雖然這種想法很好,但是,我們說(shuō),沒(méi)有基礎(chǔ),純粹是搬照一些現(xiàn)成設(shè)計(jì)方法,是不足取的。要知道,程序設(shè)計(jì)講究的是個(gè)人的思維的,假如剛開始就被一些現(xiàn)成的思想束縛住,以后就會(huì)覺(jué)得很無(wú)趣。 我們知道,指針其實(shí)是C語(yǔ)言的靈魂,許多的數(shù)據(jù)結(jié)構(gòu)在我們學(xué)到這里之前都可以說(shuō)是精通了。所以我們的任務(wù)就是,讓數(shù)據(jù)結(jié)構(gòu)在指針中運(yùn)行。當(dāng)然,剛剛開始接觸到這些新的東西,是一件非常痛苦的事情,所以我們一定要用非常形象的思維去看待指針,不能太固化。所以,新的東西,比如結(jié)構(gòu)體在指針中的表現(xiàn)方法,數(shù)組及多維數(shù)組在結(jié)構(gòu)體中的運(yùn)用,都一點(diǎn)一點(diǎn)的加了進(jìn)來(lái),同時(shí)豐滿了我們對(duì)原來(lái)C的數(shù)據(jù)機(jī)構(gòu),數(shù)據(jù)表示的理解。當(dāng)我們完成了這三步的學(xué)習(xí),我們已經(jīng)可以自豪的說(shuō),我們的基礎(chǔ)都扎實(shí)了,可以進(jìn)一步的學(xué)習(xí)有關(guān)算法,設(shè)計(jì)概念等等深層次的東西了。 但是,指針,結(jié)構(gòu)體,這些太抽象的東西,在學(xué)習(xí)C語(yǔ)言的時(shí)候我們就有點(diǎn)“似懂非懂”,可是在眼下的C語(yǔ)言實(shí)訓(xùn)中,像這么重要的C語(yǔ)言知識(shí),一定要達(dá)到能熟練掌握,實(shí)際運(yùn)用的程度。在實(shí)訓(xùn)的大程序中,結(jié)構(gòu)體在指針中的表現(xiàn)方法,數(shù)組及在結(jié)構(gòu)體中的運(yùn)用等具體的技術(shù)環(huán)節(jié),都得到了體現(xiàn),不會(huì)指針,我們的工作是沒(méi)法展開的。所以,在實(shí)訓(xùn)期間,大家在鞏固基本知識(shí)的基礎(chǔ)上,逐塊攻克實(shí)訓(xùn)課題,克服了困難,自信心得到了提高。 最后,談?wù)勎覀兘M的程序軟件。商店商品管理系統(tǒng),是一個(gè)比較利于應(yīng)用,解決實(shí)際問(wèn)題,方便實(shí)際管理的程序。設(shè)計(jì)代碼比較復(fù)雜,結(jié)構(gòu)比較嚴(yán)謹(jǐn)。在程序編寫的1周左右的時(shí)間里,組員們遇到了上述的困難,包括程序設(shè)計(jì)構(gòu)思,甚至是指針等某些知識(shí)點(diǎn)的欠缺,導(dǎo)致的工作中出現(xiàn)的困難。但是,當(dāng)大家一起團(tuán)結(jié)協(xié)作,解決了這些困難之后,發(fā)現(xiàn)自己也可以編寫復(fù)雜的、應(yīng)用性的程序了,更發(fā)現(xiàn)自己對(duì)C語(yǔ)言這門學(xué)科的興趣也提高了。 當(dāng)然,我們編寫的商店商品管理系統(tǒng),還存在很多疏漏和不合理之處。比如,程序復(fù)雜冗長(zhǎng),如果時(shí)間充裕,我們將在不改變程序運(yùn)行結(jié)果的基礎(chǔ)上,簡(jiǎn)化程序,使每一句更加精辟,總體上更加簡(jiǎn)化。另外,在程序的外觀上,我們由于時(shí)間問(wèn)題,沒(méi)有做更多的修飾,運(yùn)行起來(lái)顯得比較死板、枯燥乏味。如果增添一些色彩和其他效果,我們的程序也許會(huì)更加完美。以上就是我的C語(yǔ)言實(shí)訓(xùn)個(gè)人總結(jié) 大連東軟信息學(xué)院 電子工程系 2015級(jí) 本科 C語(yǔ)言圖形程序設(shè)計(jì)報(bào)告 系所: 專業(yè): 電子工程系 通信工程 學(xué)生姓名: 湯程皓 學(xué)生學(xué)號(hào): *** 完成日期: 2015 年 12 月 大連東軟信息學(xué)院 Dalian Neusoft University of Information 目錄 目錄..............................................................................................................................................C語(yǔ)言圖形程序設(shè)計(jì)主要內(nèi)容包括圖形模式的初始化、基本圖形功能、圖形窗口以及圖形模式下的文本輸出等圖形函數(shù)的使用,以及按鍵處理和聲音等。學(xué)生根據(jù)C語(yǔ)言圖形程序設(shè)計(jì)指導(dǎo)書,通過(guò)編輯、編譯、調(diào)試、運(yùn)行示例代碼,逐步掌握C語(yǔ)言圖形應(yīng)用程序中常用函數(shù)的作用與使用方法,并綜合運(yùn)用《C語(yǔ)言程序設(shè)計(jì)》課程所學(xué)知識(shí),設(shè)計(jì)、實(shí)現(xiàn)具有創(chuàng)新功能的程序。成果物是一個(gè)綜合性較好的圖形應(yīng)用程序和項(xiàng)目報(bào)告。設(shè)計(jì)要求 設(shè)計(jì)并實(shí)現(xiàn)一個(gè)獨(dú)特的圖形應(yīng)用程序。要求程序功能完整;包含屏幕顏色設(shè)置、圖形繪制與填充、圖形窗口設(shè)置、圖形模式下文本輸出、按鍵操作等;用戶界面友好;代碼量500行以上。程序功能 使用if,for,switch,circle,line,arc及另外一些圖形化編程函數(shù)實(shí)現(xiàn)一些畫面效果(形狀顏色變化,字體顏色大小設(shè)置等),最后使用line畫線的方法畫出中文“再見“二字。核心算法 大量使用for循環(huán),switch、if判斷來(lái)實(shí)現(xiàn)一些畫面的變化;大量使用函數(shù)調(diào)用的方式來(lái)保持代碼的整潔;使用delay()函數(shù)來(lái)延遲兩幅畫面切換的時(shí)間;大量使用圖形化編程的函數(shù)和方法來(lái)實(shí)現(xiàn)畫面效果。 注:流程圖無(wú)能為力了,不會(huì)畫。程序代碼 #include #include /*模塊化編程*/ /*函數(shù)調(diào)用*/ void start();void tuoyuan();void guochang();void kaitou();void huaban();void tree();void moon();void end();void zai();void jian();main(){ int gdriver;int gmode;int i;int line;clrscr();gdriver=DETECT;initgraph(&gdriver,&gmode,“C:TC20BGI”);kaitou();start();getch(); tuoyuan();delay(800);setbkcolor(15);cleardevice(); /*插入眼睛像*/ ellipse(320,240,0,360,30,17.5);setcolor(4);circle(320,240,17.5);setfillstyle(1,4);floodfill(320,240,4);/*畫顏色漸變同心圓*/ for(i=0;i<=30;i++){ } delay(800);guochang();delay(1000);cleardevice();huaban();moon();tree();delay(500);cleardevice();end(); setcolor(i);circle(320,240,20+i*10);delay(80); } setbkcolor(6);zai();delay(1000);/*開頭過(guò)渡*/ void start(){ } /*畫一些形狀顏色漸變橢圓*/ void tuoyuan(){ int x=360;int y=160;int driver;int mode=VGAHI; int gd;int gm;gd=DETECT;initgraph(&gd,&gm,“C:TC20BGI”);randomize();cleardevice();setbkcolor(3);setcolor(4);settextstyle(0,0,2);outtextxy(100,160,“ tttt ARE YOU READY?!”);settextstyle(0,0,2);outtextxy(100,240,“ Input any key,let's go!”); } int num=20;int i;int t;int b;driver=DETECT;initgraph(&driver,&mode,“C://TC20//BGI”);t=y-30;b=y-30;setbkcolor(0); for(i=0;i } delay(300);for(i=0;i<20;i++){ } setcolor(i+2-1);ellipse(470,240,0,360,t,b);t+=5;b-=5;setcolor(i+2-1);ellipse(200,230,0,360,t,b);t-=5;b+=5;/*畫變色圓周運(yùn)動(dòng)*/ void guochang() { case 2:for(i=1;i<640;i++) { if(i==1){ setcolor(4); int gdriver;int i;int b;int c;int gmode;gdriver=DETECT;initgraph(&gdriver,&gmode,“C:TC20BGI”);setbkcolor(13);for(c=1;c<9;c++){ switch(c){ case 1:for(i=1;i<640;i++) { } break;if(i==1){ } else{} setcolor(14);for(b=1;b<240;b++)line(320, 240, 1, b); } } for(b=240;b<480;b++)line(320,240,1,b); else{} break; case 3:for(i=1;i<640;i++) { } break; if(i<320&&i>1){ } else{} setcolor(6);line(320,240,i,479); case 4:for(i=1;i<640;i++) { } break; if(i<640&&i>=320){ } else{} setcolor(5);line(320, 240, i,479); case 5:for(i=640;i>0;i--) { } break;if(i==639){ } else{} setcolor(10);for(b=480;b>240;b--)line(320,240,639,b); case 6:for(i=640;i>0;i--) { } break;if(i==639){ } else{} setcolor(3);for(b=240;b>0;b--)line(320, 240,639, b); case 7:for(i=640;i>0;i--) { if(i<640&&i>=320){ setcolor(9); } } } line(320,240,i,1); else{} break; } } case 8:for(i=640;i>0;i--) { } break; if(i<320&&i>0){ } else{} setcolor(12);line(320, 240, i, 1);/*開頭*/ void kaitou(){ int i;int a;int b;int c;int gdriver; int gmode;char s[30];clrscr();gdriver=DETECT;initgraph(&gdriver, &gmode, “C:TC20BGI”);setbkcolor(14);cleardevice();for(a=50;a<640;){ } b=50;setcolor(4);circle(a,b,43);setcolor(9);ellipse(a,b,0,360,43,20);ellipse(a,b,0,360,20,43);setcolor(7);ellipse(a,b,0,360,20,10);setcolor(8);circle(a,b,10);setfillstyle(1,8);floodfill(a,b,8);a=a+90;for(b=50;b<480;){ a=50; } setcolor(4);circle(a,b,45);setcolor(9);ellipse(a,b,0,360,21,45);ellipse(a,b,0,360,45,21);setcolor(7);ellipse(a,b,0,360,22.5,12);circle(a,b,12);b=b+95;for(a=50;a<640;){ } b=430;setcolor(4);circle(a,b,43);setcolor(9);ellipse(a,b,0,360,43,20);ellipse(a,b,0,360,20,43);setcolor(7);ellipse(a,b,0,360,20,10);circle(a,b,10);a=a+90;for(b=50;b<480;){ a=590;setcolor(4); } } circle(a,b,45);setcolor(9);ellipse(a,b,0,360,21,45);ellipse(a,b,0,360,45,21);setcolor(7);ellipse(a,b,0,360,22.5,12);circle(a,b,12);b=b+95;setviewport(100, 100, 540, 380, 0);setfillstyle(1, 2);setcolor(14);rectangle(0, 0, 439, 279);floodfill(50, 50, 14);setcolor(12);settextstyle(4, 0, 8);outtextxy(20, 20, “TCH”);setcolor(15);settextstyle(3, 0, 5);outtextxy(120, 120, “DREAM START!”);setcolor(14);settextstyle(3, 0, 2);outtextxy(120, 200, “Please input any key!”);getch();closegraph();return 0;/*用math畫顏色變化花瓣*/ void huaban(){ for(b=1;b<6;b++){ switch(b){ case 1:for(a=0.0;a<2*3.14;a+=2*3.14/720) case 2:for(a=0.0;a<2*3.14;a+=2*3.14/720) { e=100*(1+sin(4*a));x1=320+e*cos(a); float a,e;float x1,y1,x2,y2;int gdriver=DETECT,b;int gmode;initgraph(&gdriver,&gmode,“C://TC20//BGI”);cleardevice();setcolor(GREEN);setbkcolor(0);{ e=100*(1+sin(4*a));x1=320+e*cos(a);x2=320+e*cos(a+3.14/5);y1=240+e*sin(a);y2=240+e*sin(a+3.14/5);setcolor(10);line(x1,y1,x2,y2);}break; x2=320+e*cos(a+3.14/5);y1=240+e*sin(a);y2=240+e*sin(a+3.14/5);setcolor(12);line(x1,y1,x2,y2);}break;case 3:for(a=0.0;a<2*3.14;a+=2*3.14/720) case 4:for(a=0.0;a<2*3.14;a+=2*3.14/720) { e=100*(1+sin(4*a));x1=320+e*cos(a);x2=320+e*cos(a+3.14/5);y1=240+e*sin(a);y2=240+e*sin(a+3.14/5);setcolor(14);line(x1,y1,x2,y2);}break;{ e=100*(1+sin(4*a));x1=320+e*cos(a);x2=320+e*cos(a+3.14/5);y1=240+e*sin(a);y2=240+e*sin(a+3.14/5);setcolor(1);line(x1,y1,x2,y2);}break; } } case 5:for(a=0.0;a<2*3.14;a+=2*3.14/720) } { e=100*(1+sin(4*a));x1=320+e*cos(a);x2=320+e*cos(a+3.14/5);y1=240+e*sin(a);y2=240+e*sin(a+3.14/5);setcolor(9);line(x1,y1,x2,y2);}break;/*畫樹*/ void tree(){ setcolor(2);line(83,330,55,400); setcolor(8);line(80,400,80,440);line(80,440,75,447);line(75,447,91,447);line(91,447,86,440);line(86,440,86,400);line(86,400,80,400);setfillstyle(6,8);floodfill(83,410,8); } line(55,400,111,400);line(111,400,83,330);setfillstyle(1,2);floodfill(60,390,2);line(83,290,55,360);line(55,360,111,360);line(111,360,83,290);setfillstyle(1,2);floodfill(80,310,2);delay(1000);/*畫月亮*/ void moon(){ } /*倒數(shù)第二結(jié)尾,過(guò)渡*/ void end(){ int gdriver;int gmode;gdriver=DETECT; setcolor(14);circle(570,70,40);setfillstyle(1,14);floodfill(570,70,14); } initgraph(&gdriver,&gmode,“C://TC20//BGI”);setbkcolor(3);setcolor(4);settextstyle(0,0,6);outtextxy(90,200,“ THE END!”);setusercharsize(10,1,4,1);settextstyle(3, 0, 2);outtextxy(220, 380, “Please input any key!”);getch();/*正式結(jié)尾*/ /*用橫線拼出“再”*/ void zai(){ int a,b,c,d,e,f,g,h,gdriver;int gmode;gdriver=DETECT;initgraph(&gdriver,&gmode,“C://TC20//BGI”);for(a=70;a<300;){ } for(b=120;b<350;){ setcolor(14);line(90,b,105,b); setcolor(14);line(a,55,a,70);a=a+1; } b=b+1;for(c=90;c<280;){ } for(d=120;d<350;){ } for(e=105;e<265;){ } for(f=45;f<325;){ } for(g=70;g<=255;){ setcolor(14); setcolor(14);line(c,120,c,135);c=c+1;setcolor(14);line(265,d,280,d);d=d+1;setcolor(14);line(e,180,e,195);e+=1;setcolor(14);line(f,240,f,255);f+=1; } } line(177.5,g,192.5,g);g+=1;for(h=243;h<=280;){ } jian();getch();setcolor(14);line(h,335,h,350);h+=1;/*用橫線拼出“見”,并署名*/ void jian(){ int a,b,c,d,e,f,g;for(a=380;a<555;){ } for(b=55;b<250;){ } setcolor(14);line(a,55,a,70);a+=1;setcolor(14);line(380,b,395,b);b+=1; for(c=55;c<250;){ } for(d=220;d<=350;){ } for(e=486;e<612;){ } for(f=280;f<=350;){ } for(g=160;g<=175;){ setcolor(14);arc(g,90,-90,0,300);g+=1; setcolor(14);line(540,c,555,c);c+=1;setcolor(14);line(486,d,501,d);d+=1;setcolor(14);line(e,335,e,350);e+=1;setcolor(14);line(597,f,612,f);f+=1; } } settextstyle(1,0,1);outtextxy(335,420,“TCH was written in 2015-12-12 ”);5 運(yùn)行結(jié)果 開頭 開頭過(guò)渡 一些顏色形狀漸變橢圓 顏色漸變同心圓 顏色按順序變化花瓣+樹+月亮 結(jié)尾過(guò)渡 結(jié)尾 創(chuàng)新說(shuō)明 使用for循環(huán)語(yǔ)句畫出一些形狀顏色漸變的橢圓和同心圓;在橢圓里面畫圓,并填充顏色,來(lái)實(shí)現(xiàn)眼睛的效果;使用switch,if判斷,和for循環(huán)來(lái)實(shí)現(xiàn)顏色如風(fēng)車般變化的動(dòng)畫;使用switch判斷,for循環(huán)和line、數(shù)學(xué)函數(shù)來(lái)實(shí)現(xiàn)顏色變化的花瓣圖案;使用for循環(huán),line函數(shù),計(jì)算坐標(biāo)的方式來(lái)畫出中文“再見”二字; 參考文獻(xiàn) [1] 全球最大中文IT社區(qū).Turbo C圖形函數(shù) [EB/OL],http://www.csdn.net,2005.3 [2] 《C語(yǔ)言圖形程序設(shè)計(jì)指導(dǎo)書》 C語(yǔ)言程序設(shè)計(jì)報(bào)告 (二)第一章:使用數(shù)組和指針統(tǒng)計(jì)成績(jī) 1.設(shè)計(jì)題目:假設(shè)給定班級(jí)各科考試平均成績(jī)的原始資料如下 數(shù)學(xué):75 物理:80 外語(yǔ):83 政治:85 體育:86 人數(shù):30 要求統(tǒng)計(jì)出全班學(xué)期總平均成績(jī)以及得分最低的科目和該科目的成績(jī)。要求的輸出結(jié)果如下: 全班各科平均成績(jī)?nèi)缦拢?數(shù)學(xué):75 物理:80 外語(yǔ):83 政治:85 體育:86 人數(shù):30 統(tǒng)計(jì)結(jié)果如下: 人數(shù):30 平均成績(jī):81 最低分?jǐn)?shù)科目的成績(jī):75 最低分?jǐn)?shù)的科目:數(shù)學(xué) 2.設(shè)計(jì)要求 對(duì)存放原始數(shù)據(jù)的要求如下: (1)、使用整形數(shù)組a數(shù)學(xué)、物理、外語(yǔ)、政治、體育、人數(shù)、平均成績(jī)、最低科目成績(jī) ; (2)、使用字符串?dāng)?shù)name存放數(shù)學(xué)、物理、外語(yǔ)、政治、體育、最低分?jǐn)?shù)的科目 (3)、使用字符串?dāng)?shù)組MeanLow存放人數(shù)、平均成績(jī)、最低分?jǐn)?shù)科目的成績(jī)、最低分?jǐn)?shù)的科目。 實(shí)現(xiàn)本設(shè)計(jì)功能的方法很多,這里給出4種難易成度不同的要求,以便加深對(duì)數(shù)組和指針知識(shí)的理解。 1.使用數(shù)組實(shí)現(xiàn) 使用數(shù)組和指針數(shù)組實(shí)現(xiàn)。2..使用分配的內(nèi)存實(shí)現(xiàn) 要求將數(shù)組a的內(nèi)容存入到分配的內(nèi)存中,使用指針實(shí)現(xiàn)對(duì)內(nèi)存的存取和計(jì)算。 3.將數(shù)組內(nèi)容全部存入內(nèi)存 為字符分配內(nèi)存,并將字符數(shù)組的內(nèi)容存入所分配的內(nèi)存中,使用指針來(lái)實(shí)現(xiàn)。 源程序: int pingjun(int *x);int zuidi(int *x); int kemu(int *y,int n);#include int kemu(int *y,int n){int i, t=y[0],m=0;for(i=1;i {if(t>y[i]){t=y[i];m++;} } return m;} int pingjun(int *x){int sum=0 ,i,aver;for(i=0;i<5;i++)sum=sum+x[i];aver=sum/5;return aver;} void main() {int a[9]={75,80,83,85,86,30},i,x; char *name[5]={“數(shù)學(xué)”,“物理”,“外語(yǔ)”,“政治”,“體育”}; char *meanlow[4]={“人數(shù)”,“平均成績(jī)”,“最低分?jǐn)?shù)科目成績(jī)”,“最低分科目”}; printf(“原始信息如下:n”);for(i=0;i<5;i++) printf(“%s:%dn”,name[i],a[i]);for(i=0;i<4;i++) printf(“%s:%dn”,meanlow[i],a[i+5]);printf(“全班各科平均成績(jī)?nèi)缦拢簄”);for(i=0;i<5;i++) printf(“%s:%dn”,name[i],a[i]);printf(“統(tǒng)計(jì)結(jié)果如下:n”); printf(“%s:%dn”,meanlow[0],a[5]); printf(“%s:%dn”,meanlow[1],pingjun(a));printf(“%s:%dn”,meanlow[2],zuidi(a));x=kemu(a,5); printf(“%s:%sn”,meanlow[3],name[x]);} #include course_name(int i)/*把科目變成數(shù)字函數(shù)*/ { switch(i) { case 1:printf(“英語(yǔ) ”); break; case 2:printf(“數(shù)學(xué)”); break; case 3:printf(“C語(yǔ)言”); break; case 4:printf(“Java”); break; case 5:printf(“法律”); break; case 6:printf(“音樂(lè)”); break; case 7:printf(“語(yǔ)文”); break; case 8:printf(“體育”); break; case 9:printf(“英語(yǔ)”); break; case 10:printf(“美術(shù)”); break; } } print2(int m)/*輸出學(xué)生考試科目函數(shù)*/ { int i,j; printf(“學(xué)生考試科目:nnn”); for(i=1;i<=m;i++) {printf(“ 【%d】”,i); course_name(i); } printf(“nn”);} stu_zhongfen(int(*p2)[100],int n,int m)/*計(jì)算學(xué)生總分函數(shù)*/ { int sum,i,j; for(i=0;i { sum=0; for(j=0;j sum=sum+*(*(p2+i)+j); *(*(p2+i)+m)=sum; } } input(long *p1,int(*p2)[100],int n,int m)/*輸入學(xué)號(hào)、以及各科成績(jī)函數(shù)*/ { int i,j; for(i=0;i { printf(“n請(qǐng)輸入第%d個(gè)學(xué)生的學(xué)號(hào):”,i+1); scanf(“%ld”,p1+i); for(j=0;j { printf(“n請(qǐng)輸入第%d門課程的成績(jī):”,j+1); scanf(“%d”,*(p2+i)+j); } } printf(“......輸入完畢!n”); } chaxun(long *p1,int(*p2)[100],int n,int m)/*查詢學(xué)生各科成績(jī)、總分、班排名(按總分)函數(shù)*/ { long xuehao; int counter=1,j=0,i,k; while(1) { printf(“n請(qǐng)輸入要查詢的學(xué)生的學(xué)號(hào):”); scanf(“%ld”,&xuehao); for(i=0;i { if(*(p1+i)==xuehao) break; } if(i>=n)printf(“該學(xué)號(hào)不存在!請(qǐng)從新輸入!n”); else break; } stu_zhongfen(p2,n,m); while(j { if(j!=i) { if(*(*(p2+j)+m)>*(*(p2+i)+m)) counter++; j++; } else j++; } printf(“<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>n”); printf(“n 您要查詢的學(xué)生信息如下:n”); printf(“n”); printf(“ 課程名 分?jǐn)?shù)n”); for(j=0;j { printf(“ ”); course_name(j+1); printf(“ %4dn”,*(*(p2+i)+j)); } printf(“n 總分為:%3dn”,*(*(p2+i)+m)); printf(“ 班級(jí)排名為:%3dn”,counter); printf(“<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>n”); } stu_average(long *p1,int(*p2)[100],int n,int m)/*計(jì)算每個(gè)學(xué)生的平均分*/ { int i,j,k; float average[100]; stu_zhongfen(p2,n,m); for(i=0;i average[i]=*(*(p2+i)+m)/(float)m; printf(“n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>”); printf(“n每個(gè)學(xué)生的平均分如下n”); printf(“ 學(xué)號(hào) 平均分n”); for(i=0;i printf(“ %4ld %fn”,*(p1+i),average[i]); printf(“n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>n”); } score_jiangxu(int(*p2)[100],int n,int m)/*把每個(gè)學(xué)生按平均分高到低排名函數(shù)*/ { int i,j,k,temp,a[100],z; float average[100]; stu_zhongfen(p2,n,m); printf(“n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>n”);第二篇:C語(yǔ)言程序設(shè)計(jì)實(shí)習(xí)報(bào)告
第三篇:C語(yǔ)言圖形程序設(shè)計(jì)報(bào)告
第四篇:C語(yǔ)言程序設(shè)計(jì)報(bào)告(精選)
第五篇:c語(yǔ)言實(shí)習(xí)程序