毛片在线视频观看,一级日韩免费大片,在线网站黄色,澳门在线高清一级毛片

薈聚奇文、博采眾長、見賢思齊
當前位置:公文素材庫 > 公文素材 > 范文素材 > C語言實訓小項目

C語言實訓小項目

網(wǎng)站:公文素材庫 | 時間:2019-05-29 15:26:47 | 移動端:C語言實訓小項目

C語言實訓小項目

《C語言的六個實訓小項目》源碼例程

已有11257次閱讀201*-10-811:51|個人分類:C語言編程

項目實訓一

實訓內(nèi)容:

1、定義一個數(shù)組a[11],用以存放學生的成績。2、從鍵盤輸入10個學生成績

3、采用冒泡法,將學生成績按照從高到低進行排序

4、再輸入一個學生的成績,將此成績按照排序規(guī)律插入原學生成績數(shù)組

5、將排好序的成績單進行反序存放,即原來是從高到低,現(xiàn)在改為從低到高排列。

項目實訓二

實訓內(nèi)容:

1、在函數(shù)中進行10個學生成績從高到低排名sort(inta[10])

2、改進第一步的函數(shù)為sort(inta[],intn),進行n個學生成績從高到低排名,

3、改進第二步的函數(shù)為sort(inta[],intn,charstyle),將n個學生成績從高到低排名,排名方式4、根據(jù)sort()函數(shù)的style參數(shù)進行,如style為‘a(chǎn)’按升序排,style為’d’按降序排。

(a:ascending升,d:descending降)

項目實訓三

實訓內(nèi)容:

1、定義一個數(shù)組stu[10]存放10個學生的成績,從鍵盤輸入數(shù)據(jù),要求用指針實現(xiàn)

2、將數(shù)組stu[10]的內(nèi)容輸出到屏幕上,要求用指針實現(xiàn)3、將成績數(shù)組按照從高到低進行排序,要求用指針實現(xiàn)

4、將第三步內(nèi)容放在函數(shù)中實現(xiàn),在主函數(shù)中調(diào)用實現(xiàn)排序,用指針實現(xiàn),輸出排序后的成績單

5、采用指針方法,輸入字符串“studentscore”,復制該字符串并輸出(復制字符串采用庫函數(shù)或用戶自定義函數(shù))

項目實訓四

實訓內(nèi)容:

1、定義一個結(jié)構(gòu)體數(shù)組,存放10個學生的學號,姓名,三門課的成績2、從鍵盤輸入10個學生的以上內(nèi)容

3、輸出單門課成績最高的學生的學號、姓名、以及該門課程的成績4、輸出三門課程的平均分數(shù)最高的學生的學號、姓名及其平均分

5、將10個學生按照平均分數(shù)從高到低進行排序,輸出結(jié)果,格式如下所示:numbernamemathChineseEnglishaverage103tom909010095101alice90807080

項目實訓五

實訓內(nèi)容:

1、定義一個結(jié)構(gòu)體數(shù)組,存放10個學生的學號,姓名,三門課的成績2、從鍵盤輸入10個學生的以上內(nèi)容,存入文件stud.dat,關(guān)閉文件3、打開stud.dat文件,將數(shù)據(jù)讀出,查看是否正確寫入,關(guān)閉文件。

4、打開文件stud.dat文件,讀出數(shù)據(jù),將10個學生按照平均分數(shù)從高到低進行排序,分別將結(jié)果輸出到屏幕上和另一文件studsort.dat中。5、從studsort.dat文件中讀取第2,4,6,8,10個學生的數(shù)據(jù)。

最終項目

學生成績管理系統(tǒng)完成下列功能:

1、輸入:函數(shù)input把20學生的學號、姓名、性別、年齡、四科成績以及平均成績和總成績放在一個結(jié)構(gòu)體數(shù)組中,學生的學號、姓名、四科成績由鍵盤輸入,然后計算出平均成績和總成績放在結(jié)構(gòu)體對應(yīng)的域中。

2、插入:insert函數(shù)輸入一個學生的記錄,按學號的先后順序插入該學生的全部內(nèi)容。

3、排序:sort函數(shù)對所有學生按要求排序(1.學號2.總成績),并輸出。4、查找:find函數(shù)輸入一個學生的學號或姓名,找到該學生并輸出該學生的全部內(nèi)容。要求能查詢多次。

5、刪除:delete函數(shù)輸入一個學生的學號或姓名,找到該學生并刪除該學生的全部內(nèi)容。

6、輸出:函數(shù)output輸出全部學生的記錄。

7、main調(diào)用所有函數(shù),實現(xiàn)全部函數(shù)功能(注:除了定義結(jié)構(gòu)外,不允許使用全局變量,函數(shù)之間的數(shù)據(jù)全部使用參數(shù)傳遞)。

/**************************************//*項目實訓一*//*源代碼如下:*/

/**************************************/

#include#include#include

main(){

inta[11];intnum_init;

intnum_sort_1,num_sort_2;intnum_temp;intnum_std;intnum_tag;

for(num_init=0;num_inita[num_sort_1-1]){

num_temp=a[num_sort_1];

a[num_sort_1]=a[num_sort_1-1];a[num_sort_1-1]=num_temp;

printf("a[%d]a[%d]\\n",a[num_sort_1],a[num_sort_1-1]);

}}}

for(num_init=0;num_init}}

for(num_init=0;num_init}

printf("inputsortstyle(a=asc,d=desc):");scanf("%c",&s);

n=--i;

sort(a,n,s);

for(j=0;j0;j--){

for(i=0;ia[i+1]){

t=a[i];

a[i]=a[i+1];a[i+1]=t;}}else{

if(style=="d")if(a[i]

/**************************************//*項目實訓三*//*源代碼如下:*/

/**************************************/

#include#include#include

voidsort(intstr[]);

intmain(void){

intstr[10];chari_msg[100];charo_msg[100];inti;int*pi;

char*pm_i,*pm_o;pi=str;pm_i=i_msg;pm_o=o_msg;

printf("fun1)\\n");

printf("input10studentscore:\\n");for(i=0;iif(*(pm_i+i)=="\\n")break;}

*(pm_i+i)="\\0";strcpy(pm_o,pm_i);puts(pm_o);

return0;}

voidsort(int*p){

inti,j,t;

for(j=9;j>1;j--){

for(i=0;i{

intnum;

charname[20];intmath;intchinese;intenglish;intaverage;}s[10];

structstutemp;

intn,l,i,j;

for(n=0;n0;i--){

for(j=0;jstrcpy(s[j].name,s[j+1].name);s[j].math=s[j+1].math;

s[j].chinese=s[j+1].chinese;s[j].english=s[j+1].english;s[j].average=s[j+1].average;

s[j+1].num=temp.num;

strcpy(s[j+1].name,temp.name);s[j+1].math=temp.math;

s[j+1].chinese=temp.chinese;s[j+1].english=temp.english;s[j+1].average=temp.average;}}}

printf("max

student:\\nnum:%d\\tname:%s\\taverage:%d\\n\\n",s[0].num,s[0].name,s[0].average);

printf("number\\tname\\tmath\\tChinese\\tEnglish\\taverage\\n");for(n=0;n#include#include

intmain(intargc,char*argv[]){

structstr{intcode;

charname[20];intmath;intEnglish;intChinese;intaverage;}stu[10];

structstrt;

inti,j,l,f=0,ch,n=0,k=0;chartemp[6][30];FILE*fp;

printf("Module1begin\\n");

printf("*********************************\\n");printf("Input10studentdata\\n");for(i=0;i}

for(i=0;iexit(1);}

for(i=0;i

stu[j+1].code=t.code;

strcpy(stu[j+1].name,t.name);stu[j+1].math=t.math;

stu[j+1].Chinese=t.Chinese;stu[j+1].English=t.English;stu[j+1].average=t.average;}}}

for(i=0;i

printf("Module4begin:\\n");

printf("***********************************\\n");printf("Ouput2,4,6,8,10rowsdata\\n");

if((fp=fopen("/tmp/studsort.dat","rt+"))==NULL){

printf("openfilestudsort.datfailed!\\n");exit(1);}

for(i=0;i

fclose(fp);return0;}

/**************************************//*最終項目實訓*//*源代碼如下:*/

/**************************************/

#include#include#include

structnode{

intcode;

charname[20];chartype;intage;

intchinese;intenglish;intcomputer;intmath;inttotal;intaverage;}stud[100];

structnodetemp;

voidmenu(void){

system("clear");

printf("\\t\\t項目六實例\\n");

printf("\\t\\t**************************\\n");printf("\\t\\t**\\n");printf("\\t\\t*[1]輸入數(shù)據(jù)*\\n");printf("\\t\\t*[2]查找數(shù)據(jù)*\\n");printf("\\t\\t*[3]插入數(shù)據(jù)*\\n");printf("\\t\\t*[4]刪除數(shù)據(jù)*\\n");printf("\\t\\t*[5]打印數(shù)據(jù)*\\n");printf("\\t\\t*[6]排序數(shù)據(jù)*\\n");printf("\\t\\t*[7]退出*\\n");printf("\\t\\t**\\n");printf("\\t\\t**\\n");

printf("\\t\\t**************************\\n");printf("\\t\\t請輸入你的選項(1-7):");}

voidinput(){

inti;

for(i=0;ivoidfind(intc){

intn,m,i,j,l;chark[20];

system("clear");

printf("按學號查找(按1):\\n");printf("按姓名查找(按2):\\n");printf("請選擇:");scanf("%d",&n);if(n==1){

printf("請輸入學號:");scanf("%d",&m);for(i=0;i{

printf("**********************\\n");printf("學號:%d\\n",stud[j].code);printf("姓名:%s\\n",stud[j].name);printf("性別:%c\\n",stud[j].type);printf("年齡:%d\\n",stud[j].age);

printf("英語成績:%d\\n",stud[j].english);printf("國文成績:%d\\n",stud[j].chinese);printf("計算機成績:%d\\n",stud[j].computer);printf("數(shù)學成績:%d\\n",stud[j].math);printf("總分:%d\\n",stud[i].total);

printf("平均分:%d\\n",stud[i].average);printf("**********************\\n");}}}else{

getchar();getchar();}}

voidinsert(intc){

inti,j;

system("clear");

printf("請輸入要插入學生的信息:\\n");printf("請輸入學生學號:");scanf("%d",&temp.code);printf("請輸入學生姓名:");scanf("%s",temp.name);getchar();

printf("請輸入學生性別:");scanf("%c",&temp.type);printf("請輸入學生年齡:");scanf("%d",&temp.age);

printf("請輸入學生英文成績:");scanf("%d",&temp.english);printf("請輸入學生國文成績:");scanf("%d",&temp.chinese);printf("請輸入學生計算機成績:");scanf("%d",&temp.computer);printf("請輸入學生數(shù)學成績:");scanf("%d",&temp.math);

temp.total=temp.english+temp.chinese+temp.computer+temp.math;temp.average=temp.total/4;for(i=0;i=c){

stud[i].code=temp.code;

strcpy(stud[i].name,temp.name);stud[i].type=temp.type;stud[i].age=temp.age;

stud[i].english=temp.english;stud[i].computer=temp.computer;stud[i].math=temp.math;

stud[i].chinese=temp.chinese;stud[i].total=temp.total;stud[i].average=temp.average;}}

voiddelete(intc){

inti,j,l,n,k;charname[20];

printf("按學號刪除(按1):\\n");printf("按姓名刪除(按2):\\n");scanf("%d",&k);if(k==1){

printf("請輸入學號:\\n");scanf("%d",&n);for(i=0;iprintf("請輸入姓名:\\n");fgets(name,20,stdin);l=strlen(name);name[l-1]="\\0";for(i=0;iprintf("國文成績:%d\\n",stud[i].chinese);printf("計算機成績:%d\\n",stud[i].computer);printf("數(shù)學成績:%d\\n",stud[i].math);printf("總分:%d\\n",stud[i].total);printf("平均分:%d\\n",stud[i].average);printf("**********************\\n");}

printf("按回車鍵繼續(xù).....\\n");getchar();getchar();}

voidsort(intc){

inti,j,n;

printf("學號排序(按1)\\n");printf("姓名排序(按2)\\n");printf("請輸入排序的方式:\\n");scanf("%d",&n);if(n==1){

c=c-1;for(i=c;i>0;i--){

for(j=0;jstud[j+1].code){

temp.code=stud[j].code;

strcpy(temp.name,stud[j].name);temp.type=stud[j].type;temp.age=stud[j].age;

temp.english=stud[j].english;temp.chinese=stud[j].chinese;temp.math=stud[j].math;

temp.computer=stud[j].computer;temp.total=stud[j].total;

temp.average=stud[j].average;

stud[j].code=stud[j+1].code;

strcpy(stud[j].name,stud[j+1].name);stud[j].type=stud[j+1].type;stud[j].age=stud[j+1].age;

stud[j].english=stud[j+1].english;stud[j].chinese=stud[j+1].chinese;stud[j].math=stud[j+1].math;

stud[j].computer=stud[j+1].computer;stud[j].total=stud[j+1].total;stud[j].average=stud[j+1].average;

stud[j+1].code=temp.code;

strcpy(stud[j+1].name,temp.name);stud[j+1].type=temp.type;stud[j+1].age=temp.age;

stud[j+1].english=temp.english;stud[j+1].chinese=temp.chinese;stud[j+1].computer=temp.computer;stud[j+1].math=temp.math;stud[j+1].total=temp.total;

stud[j+1].average=temp.average;

}}}}else

if(n==2){

c=c-1;for(i=c;i>0;i--){

for(j=0;j0){

temp.code=stud[j].code;

strcpy(temp.name,stud[j].name);temp.type=stud[j].type;temp.age=stud[j].age;

temp.english=stud[j].english;temp.chinese=stud[j].chinese;temp.math=stud[j].math;

temp.computer=stud[j].computer;temp.total=stud[j].total;

temp.average=stud[j].average;

stud[j].code=stud[j+1].code;

strcpy(stud[j].name,stud[j+1].name);stud[j].type=stud[j+1].type;stud[j].age=stud[j+1].age;

stud[j].english=stud[j+1].english;stud[j].chinese=stud[j+1].chinese;stud[j].math=stud[j+1].math;

stud[j].computer=stud[j+1].computer;stud[j].total=stud[j+1].total;stud[j].average=stud[j+1].average;

stud[j+1].code=temp.code;

strcpy(stud[j+1].name,temp.name);stud[j+1].type=temp.type;stud[j+1].age=temp.age;

stud[j+1].english=temp.english;stud[j+1].chinese=temp.chinese;stud[j+1].computer=temp.computer;stud[j+1].math=temp.math;stud[j+1].total=temp.total;

stud[j+1].average=temp.average;}}}}else{

getchar();getchar();}}

voiderror(){

printf("輸入錯誤,請輸入(1-7):\\n");printf("按回車鍵繼續(xù)....\\n");getchar();getchar();getchar();}

intmain(void){

intn,c=0;while(1){

menu();

scanf("%d",&n);switch(n){

case1:input();c=c+3;break;case2:find(c);break;

case3:insert(c);++c;break;case4:delete(c);--c;break;case5:print(c);break;case6:sort(c);break;case7:exit(0);break;default:error();break;}}}

C語言期末上機練習題

1.給定一個整數(shù),判斷其二進制形式的每一位的值,當某一位為1時,輸出其所在的的位數(shù),右端開始為第0位。#include#include#includeintmain(void){

intnum1,num2;intinit;

printf("inputanumber:");scanf("%d",&num1);

for(init=0;init>1;}return0;}

2.從鍵盤輸入若干行字符串,每輸入一行,輸出行號和該行字符串到文件dx.txt中,當一行的第一個字符輸入“0”時結(jié)束。#include#include#includeintmain(void){

FILE*fp;charch;

if((fp=fopen("/tmp/dx.txt","wt+"))==NULL){

printf("Cannotopenfilestrikeanykeyexit!");getchar();exit(1);}

printf("inputastring:\\n");ch=getchar();while(ch!="0"){fputc(ch,fp);ch=getchar();}

fclose(fp);return0;}

3.用指針方式實現(xiàn):從鍵盤輸入10個2位整數(shù)給數(shù)組a10,計算并輸出其中奇數(shù)和偶數(shù)的個數(shù)。#include#include#includeintmain(void)

{

int*p1;inta[10];

inti,n1=0,n2=0;

printf("input10numbers:\\n");for(i=0;i位上的數(shù)字之和等于10的函數(shù),并在主函數(shù)中調(diào)用它。#include#include#includeintmain(void)

{

inti,j;

intfun1(inti);i=0;j=0;

for(i=0;i#include#include#defineN5

typedefstructnode{

intbianhao;

charbookname[30];floatprice;

structnode*next;}book;

book*creat(intn){

book*p,*h,*s;inti;

if((h=(book*)malloc(sizeof(book)))==NULL){

printf("不能分配內(nèi)存空間!");exit(0);}

h->bianhao=0;

h->bookname[0]="\\0";h->price=0;h->next=NULL;p=h;

for(i=0;inext=s;

printf("請輸入第%d個人的班號:",i+1);scanf("%d",&s->bianhao);printf("請輸入書名:");scanf("%s",s->bookname);printf("請輸入價格:");scanf("%f",&s->price);s->next=NULL;p=s;}return(h);}

voidprint(book*h){

book*p;inti=1;p=h->next;

printf("數(shù)據(jù)信息為:\\n");

while(p!=NULL){

printf("第%d個人的班號%d\\n",i,p->bianhao);printf("書名:%s\\n",&*(p->bookname));printf("價格:%f\\n",p->price);p=p->next;i++;}}

intmain(void){

book*head;head=creat(N);print(head);return0;}

6.輸入一行字符,字符個數(shù)最多為30,寫一函數(shù),把輸入的字符按ASCII值的順序有小到大輸出。例:輸入cdfga輸出acdfg。#include#include#includevoidorder(chara[],intm){

chart;intn,i;i=m;

for(n=i;n>1;n--)

for(i=0;ia[i+1]){

t=a[i];

a[i]=a[i+1];a[i+1]=t;}}a[m]="\\0";}

intmain(void){

chara[30];inti;

printf("pleaseinputchar:\\n");for(i=0;i#include#include#includeintmain(void){

chara[255];inti,n,s;intb[255];s=0;

printf("inputoct:");for(i=0;i=0;n++,i--){

s=s+b[i]*pow(8,n);}

printf("result:%d\\n",s);return0;}

8.用指針法處理輸入的3個字符串,按由小到大的順序輸出。#include#include#includeintmain(void){

chara[255]="\\0";charb[255]="\\0";charc[255]="\\0";char*pa,*pb,*pc;inti;

printf("inputastring:");for(i=0;i{

puts(a);

if((*(pb+i)){

chara[30];char*pi;

inti,c,n,s,o;i=c=n=s=o=0;

pi=a;

printf("inputstringa:\\n");for(i=0;i="a"&&(*(pi+i))="A"&&(*(pi+i))="0")&&((*(pi+i)){

charch;FILE*pi;

if((pi=fopen("/tmp/aa.txt","wb++"))==NULL){

printf("openfileerror!\\n");exit(1);}

printf("inputstring:\\n");ch=getchar();while(ch!="$"){

if(ch>="a"&&chfor(i=1;imax)

max=a[i];if(a[i]break;}}

printf("orderbynumber:\\n");for(i=0;iinti,k;inta[10];

printf("input10number:\\n");for(i=0;ibreak;}}}

for(n=3;n>0;n--){

for(k=0;k0){

strcpy(t,a[k]);

strcpy(a[k],a[k+1]);strcpy(a[k+1],t);}}}

for(c=0;cprintf("inputastring:\\n");ch=getchar();while(ch!="\\n"){

if((++k)==81)break;

fputc(ch,fp);ch=getchar();}

rewind(fp);ch=fgetc(fp);while(ch!=EOF){

putchar(ch);ch=fgetc(fp);}

printf("\\n");fclose(fp);

exit(EXIT_SUCCESS);}

16.用數(shù)組和循環(huán)實現(xiàn):統(tǒng)計輸入的一個字符串中的數(shù)字、大寫字母、小寫字母、空格及其它字符的個數(shù)。#include#include#include

intmain(intargc,char*argv[]){

inti,j,n=0,c1=0,c2=0,s=0,o=0;chara[255];

for(i=0;iif(a[j]>="0"&&a[j]="a"&&a[j]="A"&&a[j]intmain(intargc,char*argv[]){

inti,j,f,t=0;

for(i=2;ichart[255];p=a;

inti,j;

for(j=9;j>1;j--){

for(i=0;i0){

strcpy(t,*(a+i));

strcpy(*(a+i),*(a+(i+1)));strcpy(*(a+(i+1)),t);}}}}

intmain(void){

chara[10][255];inti,j;

char(*p)[255];p=a;

for(i=0;ireturn0;}

19.已知學生的記錄由學號和學習成績構(gòu)成,N名學生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請編寫函數(shù)fun,函數(shù)的功能是:找出成績最高的學生記錄,通過形參返回主函數(shù)(規(guī)定只有一個最高分)。已給出函數(shù)的首部,請完成該函數(shù)。注意:部分源程序存在文件PROG1.C文件中。

請勿改動主函數(shù)main函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

#include#include#include#defineN10

typedefstructss

{charnum[10];ints;}STU;fun(STUa[],STU*s){

inti=0;

(*s).s=a[i].s;for(i=1;i(*s).s){

(*s).s=a[i].s;

strcpy((*s).num,a[i].num);}}}

main()

{STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;inti;clrscr();

printf("*****Theoriginaldata*****\\n");

for(i=0;i

printf("Thetop:%s,%d\\n",m.num,m.s);}

20.從鍵盤輸入一個字符串“WelcometoHeilongjiangUniversity!”,將其存入以“well”為名的文件中。并將剛保存的文件的內(nèi)容輸出到屏幕。#include#include#include

intmain(intargc,charargv[]){

FILE*fp;

charstr[256];inti;

if((fp=fopen("/tmp/abc","wt+"))==NULL){

printf("Fileopenfailed!\\n");exit(1);}

fgets(str,50,stdin);fputs(str,fp);fputs(str,stdout);fclose(fp);return0;}

21、編寫程序,它的功能是:計算并輸出下列級數(shù)和:111S=──+──++───1×22×3n(n+1)

例如,當n=10時,函數(shù)值為:0.909091。#include#include#includeintmain(intargc,charargv[]){

floats=0,i;intn;

printf("inputn:");scanf("%d",&n);i=1;

for(i=1;iscanf("%c",&a[i][j]);getchar();}}

for(i=0;iB,Y->C,Z->D,小寫也按照相同規(guī)律變化,其它字符不變。

#include#include#includeintmain(void)

{

chars[255];inti;

fgets(s,255,stdin);while(*(s+i)!="\\0"){

if(*(s+i)>="A"&&*(s+i)="W"&&*(s+i)="a"&&*(s+i)="w"&&*(s+i)

友情提示:本文中關(guān)于《C語言實訓小項目》給出的范例僅供您參考拓展思維使用,C語言實訓小項目:該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡(luò)整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。


C語言實訓小項目》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請保留原作者信息,謝謝!
鏈接地址:http://www.seogis.com/gongwen/713472.html