C語(yǔ)言實(shí)驗(yàn)報(bào)告_第1頁(yè)
C語(yǔ)言實(shí)驗(yàn)報(bào)告_第2頁(yè)
C語(yǔ)言實(shí)驗(yàn)報(bào)告_第3頁(yè)
C語(yǔ)言實(shí)驗(yàn)報(bào)告_第4頁(yè)
C語(yǔ)言實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

32C語(yǔ)言實(shí)驗(yàn)報(bào)告C語(yǔ)言實(shí)驗(yàn)報(bào)告學(xué)院:電信學(xué)院班級(jí):計(jì)算機(jī)44班學(xué)號(hào):2140505082姓名:李俊英一學(xué)習(xí)心得:C語(yǔ)言的學(xué)習(xí):由于以前并沒(méi)有接觸過(guò)C語(yǔ)言,起初在這門(mén)課程的學(xué)習(xí)方面還是有一定的困難。后來(lái)在我們宿舍同學(xué)的幫助下,對(duì)C語(yǔ)言有的更深一步的認(rèn)識(shí),克服了許多C語(yǔ)言學(xué)習(xí)方面的困難,逐漸對(duì)C語(yǔ)言有了一定的興趣。對(duì)于C語(yǔ)言的學(xué)習(xí)也逐步變得輕松。在課堂上,徐老師講課十分的仔細(xì),在課堂上讓我們自由提問(wèn),讓我們積極發(fā)言,花時(shí)間讓我們一起討論,創(chuàng)造自由快樂(lè)的學(xué)習(xí)氛圍,讓我們?cè)谡n堂上盡可能多的掌握要學(xué)的知識(shí)。當(dāng)然C語(yǔ)言的學(xué)習(xí)不可能一蹴而就,在學(xué)習(xí)中也會(huì)有許多問(wèn)題,遇到難題一般是自己先查資料,看能不能獨(dú)立解決,如果不能找出答案,就會(huì)在宿舍提出,讓大家討論,一起解決這個(gè)問(wèn)題。上機(jī):第一次上機(jī)時(shí),由于是初次接觸,基本是一片茫然,不知道應(yīng)該如何人去做,后來(lái)在懂這個(gè)的同學(xué)的下基本弄懂了基本的操作??墒窃趯?shí)際操作是有很多問(wèn)題仍然不知道該怎么去做,仍有許多問(wèn)題,在編程序是經(jīng)常會(huì)出現(xiàn)很多錯(cuò)誤,后來(lái)隨著編程的增加,也愈來(lái)愈熟練,只在一些如何分析問(wèn)題方面任由缺陷。案例分析案例一:輸出3位數(shù)中的所有水仙花數(shù)(水仙花數(shù)指一個(gè)3位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。從小到大輸出所有水仙花數(shù)。每個(gè)數(shù)之間需要加上逗號(hào)。示例:輸出:111,222,333)問(wèn)題分析:因?yàn)橐?jì)算百位,十位,個(gè)位的平方和,所以準(zhǔn)備分離一個(gè)數(shù)百位,十位,各位。然后計(jì)算平方和,然后判斷是否符合要求。解題思路:通過(guò)求余數(shù)的方式來(lái)逐個(gè)計(jì)算出百位,十位,各位。或者通過(guò)3個(gè)循環(huán),通過(guò)3個(gè)變量I,j,k代表百位,十位,各位來(lái)做判斷。此外對(duì)于(111,222,333)這種格式還要通過(guò)一個(gè)變量W,當(dāng)W=1,輸出(數(shù)字),當(dāng)W=0輸出(,+數(shù)字)。源代碼:#include<stdio.h>#include<math.h>intmain(){ inti,j,k,w,m; w=1;//定義整形變量W來(lái)通過(guò)W判斷是否輸出逗號(hào) for(i=1;i<=9;i++)//用i代表百位從1開(kāi)始執(zhí)行循環(huán) { for(j=0;j<=9;j++)//用j代表十位從0開(kāi)始執(zhí)行循環(huán) { for(k=0;k<=9;k++)//用k代表個(gè)位從0開(kāi)始執(zhí)行循環(huán) { m=i*100+j*10+k;//用i,j,k表示出3位數(shù) if((pow(i,3)+pow(j,3)+pow(k,3))==m)//判斷是否符合水仙花數(shù)的要求 {if(w==1)printf("%d",m);//w=1第一個(gè)數(shù)字不輸出逗號(hào) else{ printf(",%d",m);//輸出水仙花數(shù) }w=0;//讓w=0在數(shù)字的前面輸出逗號(hào) }}}} return0;案例二:用指針?lè)椒▽?duì)10個(gè)整數(shù)按由大到小順序排序問(wèn)題分析:因?yàn)橐笥弥羔?,所以必須知道如何?yīng)用指針。通過(guò)在主函數(shù)中定義數(shù)組a存放10個(gè)整數(shù),用選擇排序法對(duì)10個(gè)數(shù)進(jìn)行排序。解題思路:在主函數(shù)中定義數(shù)組a存放10個(gè)整數(shù),定義int*型指針變量p指向a[0]。定義函數(shù)sort使數(shù)組a中的元素按由大到小的順序排列。在主函數(shù)中調(diào)用sort函數(shù),用指針變量p作實(shí)參。Sort函數(shù)的形參用數(shù)組名。用選擇排序法進(jìn)行排序。源代碼:#include<stdio.h>intmain(){voidsort(intx[],intn);//sort函數(shù)聲明inti,*p,a[10];p=a;//指針變量p指向a[0]printf("pleaseenter10integernumber:");for(i=0;i<10;i++)scanf("%d",p++);//輸入10個(gè)整數(shù)p=a;//整形變量p重新指向a[0];sort(p,10);//調(diào)用sort函數(shù)for(p=a,i=0;i<10;i++) {printf("%d",*p);輸出排序后的10個(gè)數(shù)組元素p++;}printf("\n");return0;}voidsort(intx[],intn)//定義sort函數(shù),x是形參數(shù)組名{inti,j,k;for(i=0;i<n-1;i++){k=I;for(j=i+1;j<n;j++) if(x[j]>x[k])k=j; if(k!=j){t=x[i];x[i]=x[k];x[k]=t;}}}2.大作業(yè)報(bào)告實(shí)驗(yàn)要求:要具有一下功能:首先選擇登陸賬號(hào)類(lèi)型,為管理員或者學(xué)生(權(quán)限不同),分別輸入賬號(hào)密碼,驗(yàn)證正確則登陸系統(tǒng)若登陸的是管理員,則顯示對(duì)應(yīng)的功能選項(xiàng)1)提供基本的菜單選項(xiàng),能根據(jù)不同的選項(xiàng)執(zhí)行不同操作;2)對(duì)學(xué)生信息進(jìn)行錄入,刪除、修改、查詢(xún)等操作,;3)對(duì)學(xué)生信息進(jìn)行統(tǒng)計(jì)(如求各門(mén)課程平均分等)、排序等操作。若登陸的是學(xué)生賬戶(hù),則顯示對(duì)應(yīng)的功能選項(xiàng)1)提供基本的菜單選項(xiàng),能根據(jù)不同的選項(xiàng)執(zhí)行不同操作;2)查詢(xún)學(xué)生自己的個(gè)人信,包括自己的學(xué)號(hào),姓名,各門(mén)課程成績(jī)等;3)修改自己的密碼,統(tǒng)計(jì)自己成績(jī)平均分,總分等。二.要求1)管理員的賬號(hào)密碼均在程序中初始化;2)每個(gè)學(xué)生的信息統(tǒng)一用結(jié)構(gòu)體來(lái)存儲(chǔ),結(jié)構(gòu)體中包含學(xué)生的學(xué)號(hào),姓名,密碼,兩個(gè)數(shù)組,一個(gè)用來(lái)存儲(chǔ)課程名稱(chēng),另一個(gè)用來(lái)存儲(chǔ)各門(mén)課程成績(jī);3)修改自己的密碼,統(tǒng)計(jì)自己成績(jī)平均分,總分等。實(shí)驗(yàn)?zāi)康模河盟鶎W(xué)的知識(shí)和前面積累的編程經(jīng)驗(yàn)實(shí)現(xiàn)一個(gè)較為完整的系統(tǒng),盡量全部使用到函數(shù)、數(shù)組、指針和結(jié)構(gòu)體。體現(xiàn)你的成果。題目分析:為了編一個(gè)較為完整的學(xué)生管理系統(tǒng)。首先需要用數(shù)組來(lái)儲(chǔ)存學(xué)生信息。同時(shí)為了完成排序,求平均分,修改,刪除等功能需要調(diào)用很多函數(shù),通過(guò)調(diào)用函數(shù)來(lái)實(shí)現(xiàn)這些功能。涉及的知識(shí)點(diǎn):數(shù)組,函數(shù),冒泡排序法,循環(huán),用分支結(jié)構(gòu)等知識(shí)。實(shí)驗(yàn)結(jié)果:進(jìn)入系統(tǒng)界面輸入1然后輸入賬號(hào),密碼進(jìn)入管理員頁(yè)面,因?yàn)槭枪芾韱T,所以未存儲(chǔ)學(xué)生信息,要先錄入信息,再進(jìn)行其他操作輸入1開(kāi)始錄入學(xué)生信息,錄入如下的兩個(gè)學(xué)生信息返回主界面,輸入4查詢(xún)學(xué)生信息,輸入學(xué)生姓名,可輸出這位學(xué)生的信息返回主界面,輸入5可求出各科的平均分返回主界面輸入6可求出各科排序返回主界面輸入3進(jìn)入修改界面,輸入要修改的學(xué)生姓名,然后輸入修改信息,即可得出要修改的結(jié)果。進(jìn)入主界面輸入2進(jìn)入刪除界面,刪除想要?jiǎng)h除學(xué)生的信息,在顯示的學(xué)生信息列表中,輸入想要?jiǎng)h除學(xué)生所處的行數(shù),即可達(dá)到刪除目的。管理員功能基本已經(jīng)實(shí)現(xiàn),下面是學(xué)生運(yùn)行的結(jié)果:在初始界面按0輸入學(xué)生賬號(hào),密碼即可進(jìn)入學(xué)生操作界面,進(jìn)行查詢(xún)信息,查看總分,平均分,修改密碼等操作。返回主界面,輸入1查看個(gè)人信息返回主界面,輸入2查看個(gè)人總分返回主界面,輸入4查看個(gè)人平均分返回主界面,輸入3進(jìn)入修改密碼界面,輸入想要修改的新密碼,然后重新登錄進(jìn)入學(xué)生端3.實(shí)驗(yàn)總結(jié)起初得到大作業(yè)的題目,感覺(jué)很難,有著迷茫,不知道從何下手,如何去完成這個(gè)作業(yè)。曾一度認(rèn)為這個(gè)大作業(yè)自己根本沒(méi)法完成??墒锹?,看著同學(xué)們都在做大作業(yè)心中亦有著許多的不服氣,認(rèn)為同樣學(xué)習(xí)別人可以做出來(lái),自己為什么不可以。于是我開(kāi)始嘗試著去看教材,進(jìn)一步消化所學(xué)的知識(shí),同時(shí)也在網(wǎng)上查找資料,通過(guò)查閱逐漸有了一定基礎(chǔ),感覺(jué)可以開(kāi)始做??烧嬲_(kāi)始后才發(fā)現(xiàn)還是有很多地方還是不太明白,比如系統(tǒng)主體框架如何去搭建,在函數(shù)的調(diào)用方面如何去做,在調(diào)用的函數(shù)中如何編才可以達(dá)到完成目標(biāo)的目的。后來(lái)慢慢的通過(guò)自己查閱書(shū)籍,尋求同學(xué)的幫助,大作業(yè)終于逐步完成。在這次大作業(yè)的完成過(guò)程中,雖然花了很多時(shí)間去查閱資料,很累。同時(shí)也感到自己很充實(shí),在做的過(guò)程中花時(shí)間查閱資料進(jìn)一步加深了對(duì)教材知識(shí)的鞏固也進(jìn)一步提高了自己分析問(wèn)題的能力,編程的能力。對(duì)自身有很大的幫助。源代碼:#include<stdio.h>#include<string.h>#include<stdlib.h>structstudent{ charid[20]; charname[20]; charsex[20]; intmath; intprogram; intpe;}stu44[50];intnum=0;intmain(){ voidstu_check(void); voidadmin_check(); voidstu(void); system("cls"); printf("管理員登陸請(qǐng)輸入1,學(xué)生登陸請(qǐng)輸入0:"); inta; scanf("%d",&a); if(a==1) admin_check(); elseif(a==0) stu_check(); return0;}voidadmin_check(){ voidadmin(void); printf("\n請(qǐng)輸入管理員賬號(hào):"); characcount[20]; intt; scanf("%s",account); printf("\n請(qǐng)輸入密碼:"); charpassword[20]; scanf("%s",password); if(strcmp(account,"a")==0&&strcmp(password,"b")==0) admin(); else { printf("\n賬號(hào)或密碼錯(cuò)誤,繼續(xù)請(qǐng)按1,返回請(qǐng)按0:"); scanf("%d",&t); if(t==1)admin_check(); elseif(t==0)return; }}voidadmin(void){ voidmenu_admin(void); menu_admin(); voidadd(void); voiddel(void); voidedt(void); voidcha(void); voidpaixu(void); voidave(void); intt; m1:scanf("%d",&t); switch(t) { case1:add();break; case2:del();break; case3:edt();break; case4:cha();break; case5:ave();break; case6:paixu();break; case7:break; default: printf("輸入錯(cuò)誤!請(qǐng)重新輸入:"); gotom1; }}voidmenu_admin(void){ system("cls"); printf("請(qǐng)輸入要使用的功能的序號(hào):\n"); printf("*1.錄入學(xué)生成績(jī)*\n"); printf("*2.刪除學(xué)生成績(jī)*\n"); printf("*3.修改學(xué)生成績(jī)*\n"); printf("*4.查詢(xún)學(xué)生成績(jī)*\n"); printf("*5.求各課程平均分*\n"); printf("*6.各科排序*\n"); printf("*7.退出*\n");}voidadd(void){ voidadmin(void); inti=0; system("cls"); printf("\n請(qǐng)按照以下格式錄入學(xué)生信息:\n"); printf("學(xué)號(hào)姓名性別數(shù)學(xué)程序體育\n"); printf("example:\n2140505082LiM9810095\n\n"); while(1) { scanf("%s",stu44[i].id); if(strcmp(stu44[i].id,"0")==0) break; else scanf("%s%s%d%d%d",stu44[i].name,stu44[i].sex,&stu44[i].math,&stu44[i].program,&stu44[i].pe); printf("id:%s\tname:%s\tsex:%s\tmath:%d\tprogram:%d\tpe:%d\n", stu44[i].id,stu44[i].name,stu44[i].sex,stu44[i].math,stu44[i].program,stu44[i].pe); i++; printf("\n請(qǐng)繼續(xù)輸入,返回請(qǐng)輸入0。\n\n"); num++; } admin();}voiddel(void){ intn,i; printf("\n所有學(xué)生信息:\n"); for(i=0;i<num;i++) printf("id:%s\tname:%s\tsex:%s\tmath:%d\tprogram:%d\tpe:%d\n", stu44[i].id,stu44[i].sex,stu44[i].name,stu44[i].math,stu44[i].program,stu44[i].pe); printf("\n請(qǐng)輸入你要?jiǎng)h除學(xué)生的位置:\n"); scanf("%d",&n); printf("\n刪除后的學(xué)生信息:\n"); for(i=n-1;i<num;i++) { strcpy(stu44[i].id,stu44[i+1].id); strcpy(stu44[i].name,stu44[i+1].name); strcpy(stu44[i].sex,stu44[i+1].sex); stu44[i].math=stu44[i+1].math; stu44[i].program=stu44[i+1].program; stu44[i].pe=stu44[i+1].pe;} for(i=0;i<num-1;i++) printf("id:%s\tname:%s\tsex:%s\tmath:%d\tprogram:%d\tpe:%d\n", stu44[i].id,stu44[i].sex,stu44[i].name,stu44[i].math,stu44[i].program,stu44[i].pe); printf("\n輸入任意數(shù)字繼續(xù)查詢(xún),返回請(qǐng)輸入0。\n\n"); intk; scanf("%d",&k); if(k==0)admin(); }voidedt(void){ inti; charstr2[20]; printf("\n請(qǐng)輸入姓名:\n"); scanf("%s",str2); for(i=0;i<num;i++) { if(strcmp(str2,stu44[i].name)==0) { printf("請(qǐng)輸入修改信息:\n"); scanf("%s%s%s%d%d%d",stu44[i].id,stu44[i].sex,stu44[i].name,&stu44[i].math,&stu44[i].program,&stu44[i].pe); break; } }printf("修改后的信息為:\n"); for(i=0;i<num;i++) printf("id:%s\tname:%s\tsex:%s\tmath:%d\tprogram:%d\tpe:%d\n", stu44[i].id,stu44[i].sex,stu44[i].name,stu44[i].math,stu44[i].program,stu44[i].pe); printf("\n返回請(qǐng)輸入0。\n\n"); intk; scanf("%d",&k); if(k==0)admin();}voidcha(void){ inti; charstr1[20]; printf("\n請(qǐng)輸入姓名:\n"); scanf("%s",str1); for(i=0;i<num;i++) { if(strcmp(str1,stu44[i].name)==0) printf("id:%s\tname:%s\tsex:%s\tmath:%d\tprogram:%d\tpe:%d\n", stu44[i].id,stu44[i].sex,stu44[i].name,stu44[i].math,stu44[i].program,stu44[i].pe); } printf("\n輸入任意數(shù)字繼續(xù)查詢(xún),返回請(qǐng)輸入0。\n\n"); intk; scanf("%d",&k); if(k==0)admin(); elsecha(); }voidave(void){ inta,b,c,d,e,f,i; a=0;b=0;c=0; for(i=0;i<num;i++) a=a+stu44[i].math; for(i=0;i<num;i++) b=b+stu44[i].program; for(i=0;i<num;i++) c=c+stu44[i].pe; d=a/num;e=b/num;f=c/num; printf("數(shù)學(xué)平均分=%d\n",d); printf("程序平均分=%d\n",e); printf("體育平均分=%d\n",f); printf("\n返回請(qǐng)輸入0。\n\n"); intk; scanf("%d",&k); if(k==0)admin(); }voidpaixu(void){ inti,j,t; for(j=0;j<num-i;j++) for(i=0;i<num-1-j;i++) { t=stu44[i].math; stu44[i].math=stu44[i+1].math; stu44[i+1].math=t; } printf("數(shù)學(xué)成績(jī)排序?yàn)椋篭n"); for(i=0;i<num;i++) printf("%d",stu44[i].math); for(j=0;j<num-1;j++) for(i=0;i<num-1-j;i++) { t=stu44[i].pe; stu44[i].pe=stu44[i+1].pe; stu44[i+1].pe=t; } printf("\n體育成績(jī)排序?yàn)椋篭n"); for(i=0;i<num;i++) printf("%d",stu44[i].pe); for(j=0;j<num-1;j++) for(i=0;i<num-1-j;i++) { t=stu44[i].program; stu44[i].program=stu44[i+1].program; stu44[i+1].program=t; } printf("\n程序成績(jī)排序?yàn)椋篭n"); for(i=0;i<num;i++) printf("%d",stu44[i].program); printf("\n返回請(qǐng)輸入0。\n\n"); intk; scanf("%d",&k); if(k==0)admin();}charstr4[20]="abc";voidstu_check(void){ voidstu(void); charstr3[20]="abc"; printf("\n請(qǐng)輸學(xué)生賬號(hào):"); characcount[20]; intt; scanf("%s",account); printf("\n請(qǐng)輸入密碼:"); charpassword[20]; scanf("%s",password); if(strcmp(account,str3)==0&&strcmp(password,str4)==0)stu(); else { printf("\n賬號(hào)或密碼錯(cuò)誤,繼續(xù)請(qǐng)按1,返回請(qǐng)按0:"); scanf("%d",&t); if(t==1)stu_check(); elseif(t==0)return; }}/*structstudentstu44[50]={{"11","li","m",80,80,80},{"12","wang","m",85,85,85},{"13","zhou","w",90,90,90}};*/voidstu(void){ charstr1[20]="2140505082"; charstr2[20]="li"; charstr3[20]="n"; strcpy(stu44[1].id,str1); strcpy(stu44[1].name,str2); strcpy(stu44[1].sex,str3);stu44[1].math=90;stu44[1].program=95;stu44[1].pe=98; voidstumenu_admin(void);voidck(void); voidzf(void); voidxg(void); voidpj(void); intt; stumenu_admin(); m1:scanf("%d",&t); switch(t) { case1:ck();break; case2:zf();break; case3:xg();break; case4:pj();break; case5:break; default: printf("輸入錯(cuò)誤!請(qǐng)重新輸入:"); gotom1; }}voidstumenu_admin(void){ system("cls"); printf("請(qǐng)輸入要使用的功能的序號(hào):\n"); printf("*1.查看學(xué)生信息*\

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論