第一篇: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++;} } 求111111 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(x0)1编一程序,输入一个x值,要求输出相应的y值。y0(x0) 1(x0)#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]);} } 用 41131517 公式求 的近似值,直到发现某一项的绝对值小于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个数开始,该数是其前面两个数之和。即: F11F21FFFn1n2n(n1)(n2) (n3)#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]);} 将一个二维数组行和列的元素互换,存到另一个二维数组中。 14123b25a456 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++)第二篇:C语言实训
第三篇:c语言实训
第四篇:C语言实训