第一篇:C語言實訓
#include
struct student { char classname[40];int num;
char major[40];
char name[30];char class1[40];int score1;char class2[40];int score2;char class3[40];int score3;}stu[N];
void menu();void add();void search();void change();void deleted();void sort();void show();void back();void input();void output();
int main(void){ menu();void add();
void search();
void change();
void deleted();
void sort();
void show();
void back();
void input();void output();return 0;}//需要調用的函數
void menu(){ int n;printf(“nnnnnn”);do{
printf(“
printf(”
*n“);
printf(”
*n“);
printf(”
printf(“
*n”);
************歡迎使用學生信息管理系統************n“);
*
*
功能菜單************************************************n”);
*
printf(“
*
1.添加成績表信息
*n”);
printf(“
*
2.查詢成績信息
*n”);
printf(“
*
3.修改成績信息
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
printf(”
*
4.刪除信息記錄
*
5.排序成績表信息
*
6.顯示成績表所有信息
*
7.從指定的文件中讀入成績表的信息
*
8.將成績表的信息寫入指定的文件中
*
9.退出學生信息管理系統
*
************************************************nn“);
請輸入數字<1-9>: ”);
scanf(“%d”,&n);switch(n){
case 1:
add();
break;
case 2:
search();
break;
case 3:
change();
break;
case 4:
deleted();
break;
case 5:
sort();
break;
case 6:
show();
break;
case 7:
}
input();
break;
case 8:
output();
break;
case 9:
back();
break;
default: }
printf(“nn抱歉!您的輸入有誤,請在1到9之間選擇!”);}while(n<=0&&n>9);int n=2;//全局變量在這里!
void add(){
system(“cls”);int i;char a;for(i=0;i printf(“nnn請輸入學生信息:nnn”); printf(“請輸入班級:”);scanf(“n%s”,stu[i].classname);printf(“請輸入姓名:”);scanf(“%s”,stu[i].name);printf(“請輸入學號:”);scanf(“n%d”,&stu[i].num);printf(“請輸入專業:”);scanf(“n%s”,stu[i].major);printf(“請輸入課程1名稱:”);scanf(“n%s”,stu[i].class1);printf(“請輸入課程1成績:”);scanf(“n%d”,&stu[i].score1);printf(“請輸入課程2名稱:”); scanf(“n%s”,stu[i].class2); printf(“請輸入課程2成績:”); scanf(“n%d”,&stu[i].score2);printf(“請輸入課程3名稱:”);scanf(“n%s”,stu[i].class3);printf(“請輸入課程3成績:”);scanf(“nnn%d”,&stu[i].score3);} printf(“nn信息添加成功!!nn”);printf(“nn學生的信息如下:nn”);printf(“ntt班級 姓名 學號 專業 課程1 課程1成績 課程2 課程2成績 課程3 課程3成績”); for(i=0;i printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3); } printf(“nn按任意鍵返回主菜單!n”);getchar();scanf(“%c”,&a);} menu();void search(){ { case 1: //按姓名查找 printf(“nn請輸入您想要查找的姓名: ”);system(“cls”);int i=0;int choice,s,score;int flag=0;char sname[20];char a;printf(“1.按姓名查找n2.按學號查找n3.查找總成績相等的學生nn”);printf(“請輸入您想要的查找方式(序號):”);scanf(“%d”,&choice);switch(choice) scanf(“%s”,sname);for(i=0;i printf(“%s %d %s %d %s %d”,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3); case 2: //按學號查找 printf(“nn請輸入您想要查找的學號: ”);} if(flag==0)//找不到該姓名 printf(“nn您搜索的該生信息不存在,請確認后再重新輸入!n”);break;scanf(“%d”,&s);for(i=0;i if(stu[i].num==s){ flag=1;printf(“nn該學生成績信息如下:n”); printf(“%s %s %d %s %d %s %d”,stu[i].name,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3); case 3: //查找總成績相等的學生 printf(“nn請輸入您想要查找的學生成績: ”);scanf(“%d”,&score);for(i=0;i { flag=1;printf(“nn總成績相等的學生成績信息如下:n”);if((stu[i].score1+stu[i].score2+stu[i].score3)==score)} if(flag==0)//找不到該學號 printf(“nn您搜素的該生信息不存在,請確認后再重新輸入!n”);break;printf(“%s %s %d %s %s %d %s %d %s %d”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);} } if(flag==0)printf(“nn沒有學生位于該分數,請重新輸入!n”);break;default://輸入不是1,2,3 printf(“nn您的輸入有誤!請在1到3之間進行選擇!n”);}//這個才是switch的啦~(≧▽≦)/~ printf(“nn按任意鍵返回主菜單!”);getchar();scanf(“%c”,&a);menu();void change(){ system(“cls”);int i=0,item,n,sco1,sco2,sco3; char name[30];char smajor[40];char sclassname[40];char a;printf(“請輸入需要修改信息的學生學號:”);scanf(“%d”,&n); for(i=0;i if(n==stu[i].num) { printf(“*--------------------*n”); printf(“1.修改課程1成績;n”); printf(“2.修改課程2成績;n”); printf(“3.修改課程3成績;n”);printf(“4.修改學生的姓名;n”);printf(“5.修改學生的專業;n”);printf(“6.修改學生的班級;n”); printf(“*--------------------*n”);printf(“nn請輸入需要修改的信息(序號):”);scanf(“%d”,&item); switch(item){ case 1: printf(“nn請重新輸入課程1成績: ”);scanf(“%d”,&sco1);stu[i].score1=sco1;printf(“n”);break;case 2: printf(“nn請重新輸入課程2成績:”);scanf(“%d”,&sco2);stu[i].score2=sco2;printf(“n”);break;case 3: printf(“nn請重新輸入課程3成績: ”);scanf(“%d”,&sco3);stu[i].score3=sco3;printf(“n”);break;case 4: printf(“nn請重新輸入學生姓名: ”);scanf(“%s”,name);strcpy(stu[i].name,name);//將姓名代替 printf(“n”);break;case 5: printf(“nn請重新輸入學生專業: ”);scanf(“%s”,smajor);strcpy(stu[i].major,smajor);printf(“n”);break;case 6: printf(“nn請重新輸入學生班級: ”);scanf(“%s”,sclassname);strcpy(stu[i].classname,sclassname);printf(“n”);break;default: printf(“您的輸入有誤!請在1到6之間進行選擇!”);}//這是switch的 printf(“修改后該學生信息如下:n”); printf(“ntt班級 姓名 學號 專業 課程1 課程1成績 課程2 課程2成績 課程3 課程3成績”); printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);break; printf(“nnn”); printf(“nn按任意鍵返回主菜單!”);getchar();scanf(“%c”,&a);menu(); }//這是if的 if(i==n)printf(“nn無法找到該生信息,請確認后重新輸入!”);//找不到學生學號 }//這是void的void deleted(){ for(i=0;i if(strcmp(stu[i].name,name)==0)//找得到學生姓名 { flag=1;printf(“請輸入需要刪除信息的學生姓名:”);scanf(“%s”,name);system(“cls”);int flag=0;int i;char b;char a;char name[30]; printf(“ntt班級 姓名 學號 專業 課程1 課程1成績 課程2 課程2成績 課程3 課程3成績”); printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3); if(flag==0)//找不到學生姓名 if(a=='n')printf(“nn已退出!n”); if(a=='y'){ for(i=0;i printf(“nn是否要刪除該生所有信息?(y or n):”);getchar(); scanf(“%c”,&a);}//這是第二個if的 }//這是第一個if的 }//這是for的 } printf(“nn該生信息不存在!請確認后重新輸入!nn”);printf(“nn請按任意鍵返回主菜單!n”);getchar();scanf(“%c”,&b);menu();void sort(){ system(“cls”);int i,j;int choice;struct student temp;char a;printf(“nn*--------------------*nn”);printf(“1.按總成績升序排序nn2.按學號升序排序nn”);printf(“n*--------------------*n”);printf(“nn請輸入您想要的排序方式: ”); scanf(“%d”,&choice);switch(choice){ case 1: for(i=0;i for(j=i+1;j if((stu[i].score1+stu[i].score2+stu[i].score3) { temp=stu[i];stu[i]= stu[j];stu[j]=temp;}//這是for(j)的 printf(“nn按總成績升序排序后的信息為:n”);for(i=0;i printf(“nntt班級t姓名t學號t專業t課程1tt課程1成績t課程2tt課程2成績t課程3tt課程3成績”); printf(“nntt%st%st%dt%st%st%dt%st%dtt%stttt%dnnn”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);}//這是for排序的 }//這是for(i)的 case 2: for(i=0;i break; for(j=i+1;j if((stu[i].score1+stu[i].score2+stu[i].score3) { temp=stu[i];stu[i]= stu[j];stu[j]=temp;}//這是for(j)的 printf(“nn按總成績升序排序后的信息為:n”);for(i=0;i printf(“nntt班級t姓名t學號t專業t課程1tt課程1成績t課程2tt課程2成績t課程3tt課程3成績”); printf(“nntt%st%st%dt%st%st%dt%st%dtt%stttt%dnnn”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3);}//這是for排序的 }//這是for(i)的 }//這是switch的 printf(“nn按任意鍵返回主菜單!n”);getchar();scanf(“%c”,&a);menu(); default: printf(“nn抱歉!您輸入的數據有誤,請在1和2之間進行選擇!n”); break;}//這是void的 void show()//這是顯示顯示顯示顯示顯示 { system(“cls”);int i;char a;printf(“nn所有學生的信息如下:n”); printf(“ntt班級 姓名 學號 專業 課程1 課程1成績 課程2 課程2成績 課程3 課程3成績”); for(i=0;i printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].name,stu[i].num,stu[i].major,stu[i].class1,stu[i].score1,stu[i].class2,stu[i].score2,stu[i].class3,stu[i].score3); } } printf(“nn按任意鍵返回主菜單!n”);getchar();scanf(“%c”,&a);menu(); void input(){ system(“cls”);int i;char a;FILE*fp=fopen(“file1”,“w+”);if(fp==NULL){ } printf(“ntt班級 姓名 學號 專業 課程1 課程1成績 課程2 課程2成績 課printf(”文件打開失敗!n“);exit(1);程3 課程3成績”); fscanf(fp,“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].nfor(i=0;i } } fclose(fp);printf(“nn按任意鍵返回主菜單!”);getchar();scanf(“%c”,&a);menu();void output(){ system(“cls”);int i;char a;FILE*fp=fopen(“file1”,“r”);if(fp==NULL){ } printf(“文件打開失敗!n”);exit(1);printf(“ntt班級 姓名 學號 專業 課程1 課程1成績 課程2 課程2成績 課程3 課程3成績”); fprintf(fp,“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].classname,stu[i].nfor(i=0;i } void back(){ system(“cls”);} printf(“nn按任意鍵返回主菜單!”);getchar();scanf(“%c”,&a);menu();fclose(fp); int t;int a;printf(“確定退出學生成績管理系統請按1,否則按0: ”);scanf(“%d”,&t);if(t==0){ printf(“nnn請輸入任意數字返回首頁: scanf(”%d“,&a);system(”cls“);menu();} if(t==1){ exit(1);} } ”); 湖北輕工職業技術學院 《C語言程序設計》實驗報告 實驗十一:函數 班 級: ___________10計管_________________ 姓 名: ___________胡高______________ 學 號: ___________1003011138________________ 日 期: ____________2011-5-29________________ 一、實驗目的和要求 1、理解數組引入的意義及作用; 2、掌握一維數組的基本思想和基本用法; 3、掌握使用一維數組的基本算法:排序與查找。 二、實驗主要儀器和設備 計算機一臺,Turbo C環境。 三、實驗內容 請將該實驗報告重新命名為“實驗11-學號[姓名]”,如“實驗11-66[張三]” 1、P145 填空題2(2) 2、P145 上機操作題 3(5) 四、實驗原始紀錄 實驗1 程序的設計界面。(Alt+PrintScreeninclude SysRq拷貝當前窗口) 程序代碼。(此處寫代碼,不是圖片。 #include void swap(); extern int a,b; a=3;b=10; swap(); printf(“a=%d,b=%dn”,a,b); } int a,b; void swap() { int temp; temp=a;a=b;b=temp; } 實驗2 程序的設計界面。 程序代碼。 五、實驗結果及分析 實驗1運行結果圖。 實驗2運行結果圖。 六、實驗總結與思考(主要寫一些在實驗過程中,遇到的問題、所犯的錯誤,以及是如何發現糾正的。大約100至200字左右。) 本次試驗的內容是考察數組的引用、基本算法等,但是總體感覺有點問題。有的地方不知道如何下手 目 錄 特別注意,打開視圖菜單-文檔結構圖觀察文檔結構。目錄由WORD菜單中插入-引用-目錄自動生成并更新,不需要手工生成菜單。 本模板僅說明格式,內容由指導老師決定,不用按這份目錄內容編寫實訓報告。 具體目錄見文檔要求。以下部分僅供參考。 目 錄........................................................................................................................1 一、實訓的目的與要求................................................................................................1 二、題目說明................................................................................................................2 三、總體設計................................................................................................................2 3.1.軟件模塊結構圖...........................................................................................2 3.2.程序流程圖...................................................................................................3 四、詳細設計和實施....................................................................................................3 4.1 XXXX模塊.....................................................................................................4.2 4.3 五、遇到的問題和解決方法........................................................................................4 六、實訓總結................................................................................................................4 七、參考文獻................................................................................................................4 附錄(源程序代碼)....................................................................................................5 一、實訓的目的與要求 (正文為宋體,五號字 行間距為21)中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國 二、題目說明 (正文為宋體,五號字 行間距為21)題目參照任務書中有關描述 三、總體設計 3.1.軟件模塊結構圖(以下圖僅供樣式參考) 圖1-1 軟件模塊結構圖 3.2.程序流程圖(以下圖僅供樣式參考): 四、詳細設計和實施 (正文為宋體,五號字 行間距為21)4.1 模塊1 ………(可以寫一些關鍵程序代碼,另外截一些界面圖并說明實現了什么功能,以證明功能實現了)每一個界面,必須有(1)功能簡介(2)界面截圖一張(3)界面關鍵代碼和描述 每一個界面說明作為獨立的一小節。(在文檔說明中有樣例) 五、遇到的問題和解決方法 (正文為宋體,五號字 行間距為21)1. 2. 3. ………… 六、實訓總結 (正文為宋體,五號字 行間距為21) 七、參考文獻 [1] 權明富,齊佳音,舒華英.客戶價值評價指標體系設計[J].南開管理評論,2004,7(3):17-18.[2] 劉小洪,鄒鵬.商業銀行客戶關系價值管理模型研究[J].管理科學,2005,18(3):57-60.附錄(源程序代碼) 第一天的題目: 求兩個整數之和。 #include 求1×3×5×7×9×11 #include sum = sum*i; i = i+2;} printf(“%d”,sum);return 0;} 有50個學生,要求將成績在80分以上的學生的學號和成績輸出。 #include int i; int a[50]; for(i=0;i<50;i++) { scanf(“%d”,&a[i]); if(a[i]>80) printf(“%d”,a[i]); } } 判定2000—2500年中的每一年是否閏年,并將結果輸出。 #include int y; y=2000; while(y<=2500) { if(((y%4 == 0)&&(y%100!= 0))||(y%400 == 0)) printf(“%d 年是閏年n”,y); else printf(“%d 年不是閏年n”,y); y=y++;} } 求1?11111?????? 23499100#include sign=-sign; term=sign/deno; sum=sum+term; deno=deno+1;} printf(“%fn”,sum);} 給出一個大于或等于3的正整數,判斷它是不是一個素數。 #include int i,n,mark=0; scanf(“%d”,&n); for(i=2;i < n/2+1;i++) { if(n%i==0) { printf(“%d不是素數”,n); mark=1; break; } } if(mark==0) printf(“%d是素數”,n);} 求5!#include #include #include float a,b,t;scanf(“%f %f”,&a,&b);if(a>b){ t=a;a=b;b=t;} printf(“%5.2f,%5.2fn”,a,b); } 輸入3個數a,b,c,要求按由小到大的順序輸出。 #include #include char zhong,guo; scanf(“%c”,&zhong); if(65<=zhong&&zhong<=90) { guo=zhong+32; printf(“%c”,guo); } else printf(“%c”,zhong);} ??1(x?0)?1編一程序,輸入一個x值,要求輸出相應的y值。y??0(x?0) ?1(x?0)?#include int x,y; printf(“請輸入x:”); scanf(“%d”,&x); if(x<0) y=-1; else if(x=0) y=0; else y=1; printf(“y=%d”,y);} 要求按照考試成績的等級輸出百分制分數段,A等為85分以上,B等為70~84分,C等為60~69分,D等為 60分以下。成績的等級由鍵盤輸入。#include 5寫一程序,判斷某一年是否閏年。#include int a; scanf(“%d”,&a); if(a%4==0&&a%100!=0||a%400==0) printf(“是閏年”); else printf(“不是閏年”);} 運輸公司對用戶計算運輸費用。路程(s km)越遠,每噸·千米運費越低。標準如下: s < 250 沒有折扣 250≤s < 500 2%折扣 500≤s < 1000 5%折扣 1000≤s < 2000 8%折扣 2000≤s < 3000 10%折扣 3000≤s 15%折扣 #include int c, s; float p, w, d, f; scanf(“%f %f %d”, &p, &w, &s); if(s >= 3000)c =12; else c = s / 250; switch(c) { case 0 : d = 0;break; case 1 : d = 2;break; case 2 : case 3 : d = 5;break; case 4 : case 5 : case 6 : case 7 : d = 8;break; case 8 : case 9 : case 10: case 11: d = 10;break; case 12: d = 15;break; } f = p * w * s *(1-d / 100); printf(“freight =%15.4fn”,f);} 全班有50個學生,用循環語句統計各學生三門課的平均成績。#include return 0;} 要求輸出100~200之間的不能被3整除的數。#include main(){ int n; for(n=100;n <=200;n++) { if(n%3!=0) printf(“%d ”,n);} printf(“n ”);} 第二天的題目: ?1 輸出以下4*5的矩陣。 10 15 20 #include printf(“%sn”,p[i]);} } 用 ?4?1?13?15?17?? 公式求 ? 的近似值,直到發現某一項的絕對值小于10-6 為止(該項不累計加)。 #include s=-s; t=s/n; pi=pi+t;} pi=pi*4;printf(“%.6fn”,pi);return 0;} ? 求費波那西(Fibonacci)數列的前40個數。這個數列有如下特點:第1、2兩個數為1、1。從第3個數開始,該數是其前面兩個數之和。即: ?F1?1??F2?1?F?F?Fn?1n?2?n(n?1)(n?2) (n?3)#include f3=f1+f2; printf(“%12dn”,f3); f1=f2; f2=f3;} return 0;} 輸入一個大于3的整數n,判定它是否素數(prime,又稱質數)。#include if(a%b==0) { printf(“此數不是素數n”); return 0; } printf(“此數是素數n”); return 0;} 求100~200間的全部素數。#include int i,k,sk,flag,m=0; for(k=100;k<=200;k++) { sk=(int)sqrt(k); flag = 1; for(i=2;i<=sk;i++) { if(k%i==0) { flag=0; break; } } if(flag==1) { m++; printf(“%5d”,k); } } if(m%12==0) printf(“n”); printf(“total:%5dn”,m);} 對10個數組元素依次賦值為0,1,2,3,4,5,6,7,8,9,要求按逆序輸出。#include #include int i; int f[40]={1,1}; for(i=0;i<40;i++) { f[i]=f[i-2]+f[i-1]; } for(i=0;i<40;i++) { if(i%5==0) printf(“/n”); printf(“%12d”,f[i]); } return 0;} 有10個地區的面積,要求對它們按由小到大的順序排列(采用起泡法)。#include scanf(“%d”,&a[i]);for(i=0;i<10;i++) for(j=i+1;j<10;j++) if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } for(i=0;i<10;i++) printf(“%dt”,a[i]);} 將一個二維數組行和列的元素互換,存到另一個二維數組中。 ?14??123??b??25a??456? ??????36??#include for(j=0;j<3;j++) { printf(“%5d,a[i][j]”); b[j][i]=a[i][j]; } printf(“n”);} printf(“array b:n”);for(i=0;i<3;i++){ for(j=0;j<2;j++); printf(“%5d”,b[i][j]); printf(“n”);} } 有一個3×4的矩陣,要求編程序求出其中值最大的那個元素的值,以及其所在的行號和列號。 #include int a[3][4],max,i,j; int x=0,y=0; printf(“請輸入矩陣的數值!n”); for(i=0;i<3;i++) for(j=0;j<4;j++) scanf(“%d”,&a[i][j]); max=a[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(max { max=a[i][j]; x=i; y=j; } printf(“矩陣中最大的元素為:%dn”,max); printf(“行號為:%d,列號為:%d”,x,y);} 輸出一個已知的字符串。#include第二篇:C語言實訓
第三篇:c語言實訓
第四篇:C語言實訓