c语言上机实习报告
![c语言上机实习报告](https://img.360docs.net/imge1/1qe6vlhsu9yxif9yd77435fwunbnpo3x-11.webp)
![c语言上机实习报告](https://img.360docs.net/imge1/1qe6vlhsu9yxif9yd77435fwunbnpo3x-f2.webp)
<<计算机上机实习>>
实习报告
班级
学号/序号
姓名
指导教师
完成日期
第一部分:分析设计与说明
第二部分:程序框图
第三部分:源程序清单
第四部分:原始数据
第五部分:运行结果
第六部分:实习心得
第一部分:分析设计与说明
第一步:建立一个机械10704班的学生成绩信息文件和学分文件,采用文本文档格式。第二步:程序设计思定义一个结构体用于存放chengji文件中的数据。
1 .编写菜单,,在主函数中编写菜单,采用二级菜单形式,相应的选项对应相应的函数。
2 .编写第一个函数,用于读取文件chengji中的数据。
3 .编写第一个函数,用于读取文件xuefen中的数据。
4 .编写第二个函数,用于计算平均分和排名次,并将结果保存。
5 .编写第三个函数,计算各分数段的人数,并将结果保存。
6 .编写第四个函数,统计不及格的情况,并将结果保存。
7. 编写第六个函数,作各科成绩的饼状图。
8. 编写第八个函数,矩形表示。
9. 编写第九个函数,用于解线性方程组。
10.编写第九个函数,编写五角星动画函数。
说明:
十个函数中,前七个函数属于学生信息管理函数,在第一个二级菜单下,后三个保存在第二个二级菜单下。主函数起调配其他函数的功能。
第二部分:程序框架
主函数
函数1:学生管理函数2:解线性方程组动画制作
菜单1 菜单2 菜单3
1.解线性方程组1.线性图
1.计算平均分和名次
2.作动画
2.计算分数段人数
3.统计不及格情况
4.输入优秀学生
5.作分布图
6.查找
7.删除
.
第三部分:源程序清单
# include "stdio.h"
# include"conio.h"
#include"math.h"
#include "stdlib.h"
#include "dos.h"
# include"graphics.h"
#define PI 3.14159
#define H PI/180
#define N 4
struct stu
{int num,mingci;
char name[20];
int score[5];
float aver;
}stu1[40];
struct xuefen
{
int num;
char kcname[20];
int xf,a,b,c,d,e;
float courseaver ;
}course[5];
struct chengji
{
float kcave;
float bzcha;
int exc;
int good;
int mid;
int pass;
int nopass;
}chengji[5];
main () /*主菜单*/
{ char ch1;
do{ clrscr();
printf("\n\n\n\n\n\n\n\n\n");
printf(" **********c语言程序设计上机实习**********\n");
printf(" ---------------------\n\n");
printf(" 1 学生成绩管理\n\n") ;
printf(" 2 解线性方程组\n\n") ;
printf(" 3 动画\n\n");
printf(" 4 退出\n\n");
printf(" 输出选择序号\n");
while ((ch1=getchar(),ch1!='1'&&ch1!='2'&&ch1!='3'&&ch1!='4'));
switch(ch1)
{case'1': section1(); break;
case'2': section2(); break;
case'3': section3(); break;
case'4': exit(0);}
}while(1);
}
section1() /*第1个2级菜单*/
{char ch21;
do{ clrscr();printf("\n\n\n\n\n\n\n\n\n\n");
printf(" **********学生成绩管理系统***********\n");
printf(" ---------------------\n\n");
printf(" 1. 输入原始数据并显示2. 计算平均分及名次\n\n") ;
printf(" 3. 计算分数段人数 4. 输出课程平均分\n\n") ;
printf(" 5. 统计不及格情况 6. 输出优秀学生\n\n"); printf(" 7. 作分布图8. 返回上级菜单\n\n"); printf(" 输入选择序号\n");
while ((ch21=getchar(),ch21!='1'&&ch21!='2'&&ch21!='3'&&ch21!='4'&&ch21!='5'&&ch21!='6' &&ch21!='7'&&ch21!='8'));
switch(ch21)
{case'1': function1_1(); break;
case'2': function1_2(); break;
case'3': function1_3(); break;
case'4': function1_4(); break;
case'5': function1_5(); break;
case'6': function1_6(); break;
case'7': function1_7(); break;
case'8': return(0);}
}while(1);
}
section2() /*第2个2级菜单*/
{char ch22;
do{ clrscr();printf("\n\n\n\n\n\n\n\n\n\n");
printf(" **********解线性方程组***********\n");
printf(" ---------------------\n\n");
printf(" 1.解方程组\n\n");
printf(" 2.返回上级菜单\n\n");
printf(" 输入选择序号\n");
while ((ch22=getchar(),ch22!='1'&&ch22!='2'));
switch(ch22)
{case'1': function2_1(); break;
case'2': return(0);}
}while(1);
}
section3() /*第3个2级菜单*/
{char ch23;
do{ clrscr();printf("\n\n\n\n\n\n\n\n\n\n");
printf(" **********作动画***********\n"); printf(" ---------------------\n\n");
printf(" 1.作动画\n\n");
printf(" 2.返回上级菜单\n\n");
printf(" 输入选择序号\n");
while ((ch23=getchar(),ch23!='1'&&ch23!='2'));
switch(ch23)
{case'1': function3_1(); break;
case'2': return(0);}
}while(1);
}
function1_1()
{FILE *fp,*fp1,*fp2,*fp3;
char strr1[200], strr2[200];
int i,j;
printf("加入读入原始数据并显示的程序内容\n");
if((fp=fopen("C:\\chengji.txt","r"))==NULL)
{printf("cannot open the file\n");
exit(0);}
if((fp1=fopen("C:\\chengji1.txt","w"))==NULL)
{printf("cannot open the file\n");
exit(0);}
if((fp2=fopen("C:\\xuefen.txt","r"))==NULL)
{printf("cannot open the file\n");
exit(0);}
if((fp3=fopen("C:\\xuefen1.txt","w"))==NULL)
{printf("cannot open the file\n");
exit(0);}
/*fgets(strr,50,fp);*/
fgets(strr1,200,fp);
for(i=0;i<40;i++)
{ fscanf(fp,"%d%s",&stu1[i].num,stu1[i].name);
for(j=0;j<5;j++)
fscanf(fp,"%d",&stu1[i].score[j]);
}
/*fputs(strr,50,fp1;*/
fprintf(fp1,"学号姓名毛邓三近代史听力英语高数\n ");
for(i=0;i<40;i++)
{ fprintf(fp1,"%-5d%-10s",stu1[i].num,stu1[i].name);
for(j=0;j<5;j++)
fprintf(fp1,"%-8d",stu1[i].score[j]);
fprintf(fp1,"\n");
}
for(i=0;i<40;i++)
{ printf("%-5d%-10s",stu1[i].num,stu1[i].name);
for(j=0;j<5;j++)
printf("%-5d",stu1[i].score[j]);
}
fgets(strr2,200,fp2);
for(i=0;i<5;i++)
{ fscanf(fp2,"%d%s%d",&course[i].num,course[i].kcname,&course[i].xf);
}
fprintf(fp3,"编号课程名称课程学分\n ");
for(i=0;i<5;i++)
{ fprintf(fp3,"%-5d%-10s%-5d",course[i].num,course[i].kcname,course[i].xf);
fprintf(fp3,"\n");
}
for(i=0;i<5;i++)
{ printf("%-5d%-10s%-5d",course[i].num,course[i].kcname,course[i].xf);
printf("\n"); }
printf("*********按Enter键继续************\n");
getchar();getchar();
fclose(fp);
fclose(fp1);
fclose(fp2);
fclose(fp3);
}
function1_2()
{ int i,j,s;
float sum;
FILE *fp4;
printf("加入计算平均分及名次的程序内容\n");
sum=0;
s=0;
for(i=0;i<5;i++)
s=s+course[i].xf;
for(i=0;i<40;i++)
{sum=0;
for(j=0;j<5;j++)
sum+=stu1[i].score[j]*course[j].xf;
stu1[i].aver=sum/s;
}
for(j=0;j<39;j++)
for(i=0;i<39-j;i++)
if(stu1[i].aver {stu1[40]=stu1[i]; stu1[i]=stu1[i+1]; stu1[i+1]=stu1[40]; } for(i=0;i<40;i++) stu1[i].mingci=i+1; for(i=0;i<40;i++) { printf("%-5d%-10s",stu1[i].num,stu1[i].name); for(j=0;j<5;j++) printf("%-10d",stu1[i].score[j]); printf("%-6.1f%-5d",stu1[i].aver ,stu1[i].mingci); printf("\n");} if((fp4=fopen("C:\\mingci.txt","w"))==NULL) {printf("cannot open fille\n"); return; } fprintf(fp4, "学号姓名毛邓三近代史听力英语高数平均分名次\n"); for(i=0;i<40;i++) {fprintf(fp4,"%-5d%-10s",stu1[i].num,stu1[i].name); for(j=0;j<5;j++) fprintf(fp4,"%-6d",stu1[i].score[j]); fprintf(fp4,"%-6.1f%4d",stu1[i].aver ,stu1[i].mingci); fprintf(fp4,"\n"); } printf("**************按Enter键继续****************\n"); getchar(); getchar();fclose(fp4); } function1_3() {FILE *fp5; int i,j; printf("加入计算分数段人数程序\n"); if((fp5=fopen("C:\\dumain.txt","w"))==NULL) { printf("can not open this file\n"); exit(0);} fprintf(fp5,"范围>90 80~90 70~80 60~70 <60\n"); printf("范围>90 80~90 70~80 60~70 <60\n"); for(j=0;j<5;j++) { course[j].a=0; course[j].b=0; course[j].c=0; course[j].d=0 ; course[j].e=0; for(i=0;i<40;i++) {if(stu1[i].score[j]>=90&&stu1[i].score[j]<=100) course[j].a++; else if(stu1[i].score[j]>=80) course[j].b++; else if(stu1[i].score[j]>=70) course[j].c++; else if(stu1[i].score[j]>=60) course[j].d++; else if(stu1[i].score[j]>0) course[j].e++; } fprintf(fp5,"%-8s%-8d%-8d%-8d%-8d%-8d\n",course[j].kcname,course[j].a,course[j].b,course[j].c,co urse[j].d,course[j].e); printf("%-8s%-8d%-8d%-8d%-8d%-8d\n",course[j].kcname,course[j].a,course[j].b,course[j].c,course[j ].d,course[j].e); } printf("**********按Enter键继续***********\n"); getchar();getchar();fclose(fp5);} function1_4() { FILE *fp6; int i,j; int sum1; for (j=0;j<5;j++) { sum1=0; for(i=0;i<40;i++) sum1=sum1+stu1[i].score[j]; course[j].courseaver=sum1/40.0; } for(j=0;j<5;j++) printf("%-8s%-6.2f\n",course[j].kcname,course[j].courseaver); if((fp6=fopen("C:\\coursepj.txt","w"))==NULL) { printf("cannot open file\n");exit(0);} fprintf(fp6,"课程名平均分\n"); for(j=0;j<5;j++) fprintf(fp6,"%-8s%-6.2f\n",course[j].kcname,course[j].courseaver); printf("加入输出课程平均分程序内容\n"); printf("**********按Enter键继续***********\n"); getchar();getchar(); fclose(fp6);} function1_5() {int i,j; FILE *fp7; printf("加入统计不及格情况程序内容\n"); if((fp7=fopen("C:\\bujige.txt","w"))==NULL) { printf("can not open this file\n"); exit(0);} fprintf( fp7,"学号姓名课程学分成绩\n"); printf("学号姓名课程学分成绩\n"); for(i=0;i<40;i++) for(j=0;j<5;j++) {if(stu1[i].score[j]<60) {fprintf(fp7,"%-5d%-14s%-10s%-8d%-5d\n", stu1[i].num,stu1[i].name,course[j].kcname, course[j].xf,stu1[i].score[j]); printf("%-5d%-14s%-10s%-8d%-5d\n", stu1[i].num,stu1[i].name,course[j].kcname, course[j].xf,stu1[i].score[j]); } } printf("**********按Enter键继续***********\n"); getchar();getchar();fclose(fp7);} function1_6() { int i,j; FILE *fp8; printf("加入输出优秀学生程序内容\n"); if((fp8=fopen("C:\\youxiu.txt","w"))==NULL) { printf("can not open this file\n"); exit(0);} fprintf(fp8,"学号姓名毛邓三近代史听力英语数学平均成绩名次\n"); printf("学号姓名毛邓三近代史听力英语高数平均成绩名次\n"); for(i=0;i<40;i++) { if(stu1[i].aver>=90||stu1[i].mingci<=3||(stu1[i].aver>=85&&(stu1[i].score[0]>=99||stu1[i].scor e[1]>=99||stu1[i].score[2]>=99||stu1[i].score[3]>=99||stu1[i].score[4]>=99||stu1[i].score[5]>=99 ))) { printf("%-5d %-10s ",stu1[i].num,stu1[i].name); for(j=0;j<5;j++) printf("%-8d",stu1[i].score[j]); printf("%5.2f %5d\n",stu1[i].aver,stu1[i].mingci); fprintf(fp8,"%-5d%-10s",stu1[i].num,stu1[i].name); for(j=0;j<5;j++) fprintf(fp8,"%-8d",stu1[i].score[j]); fprintf(fp8,"%5.2f%5d\n",stu1[i].aver,stu1[i].mingci); } } printf("***********按Enter键继续**********\n"); getchar();getchar();fclose(fp8);} function1_7() { int e1=0,e2=0,e3=0,e4=0,e5=0,f1=0,f2=0,f3=0,f4=0,f5=0,c1=0,c2=0,c3=0,c4=0,c5=0,b1=0,b2=0,b3= 0,b4=0,b5=0,d1=0,d2=0,d3=0,d4=0,d5=0; char *a1="maodeng",*a2="jindaishi",*a3="tingli",*a4="yingyu",*a5="gaoshu",*k1=">=90",*k2=">=80" ,*k3=">=70",*k4=">=60",*k5="<60"; int gdriver=DETECT,gmode=0; float r=50.0,x,y,q; char ch1,str1[80]; int i=0,m;float n; printf("加入作分布图程序内容\n"); for(i=0;i<40;i++) {if(stu1[i].score[0]>=90) e1++; else if(stu1[i].score[0]>=80) e2++; else if(stu1[i].score[0]>=70) e3++; else if(stu1[i].score[0]>=60) e4++; else e5++; if(stu1[i].score[1]>90) f1++; else if(stu1[i].score[1]>80) f2++; else if(stu1[i].score[1]>70) f3++; else if(stu1[i].score[1]>60) f4++; else f5++; if(stu1[i].score[2]>90) c1++; else if(stu1[i].score[2]>80) c2++; else if(stu1[i].score[2]>70) c3++; else if(stu1[i].score[2]>60) c4++; else c5++; if(stu1[i].score[3]>90) b1++; else if(stu1[i].score[3]>80) b2++; 篇一:《C语言上机实验心得》 C语言上机实验心得 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。 说到这,上机实验当然就是一个必不可少的环节了,C语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。 通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。 我主要存在以下的这些缺点 1、学习耐心与细心不足,如scanf(“%d”,&n);中的“&”有时候会忘了。而在最后 输出时又错写成printf(“%d”,&n);从而错误得输出了地址而不是我原来想要的答案。 2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解 题了。 3、 4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够 深刻。 5、 6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在 一点问题。 为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。 实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更 多。由此可看出上机实践的重要性。 通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。编程的时候有因为顺利编出程序而开心过、有因为做得比人家慢而郁闷过、有因为不知从何入手而无奈过、有因为不知错出在哪而彷徨过但随着练习的增多,我对C语言比以前熟了很多,不再只是纸上谈兵,我都有能力独立做出一些程序,可能对于一些“高手来说这不算什么,或者他们早就会了,但我依然觉得很开心,因为我跟我自己比是进步了。 2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a 赋给c。(提示:用条件运算符) 答案: #include c语言实验心得体会 篇一:C语言上机实验心得 C语言上机实验心得 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。 说到这,上机实验当然就是一个必不可少的环节了,C 语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。 通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。 我主要存在以下的这些缺点: 1、学习耐心与细心不足,如scanf(“%d”,n);中的“”有时候会忘了。而在最后 输出时又错写成printf(“%d”,n);从而错误得输出了地址而不是我原来想要的答案。 2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解 题了。 3、 4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够 深刻。 5、 6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在 一点问题。 为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。 实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更 c语言实验报告分析总结 在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,以下是小编为大家整理分享的c语言实验报告分析总结。欢迎阅读。 c语言实验报告分析总结1 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。 在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。 由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。 上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握 它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。 学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的理解 课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。 学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为 实验四循环结构程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、熟练掌握while语句、do-while语句和for语句。 2、练习并掌握循环结构的嵌套形式。 3、掌握循环结构的程序设计方法。 三、实验内容:说明:前四题为必做题目,后两题为选做题目。 1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结 束输入。(实验指导书P41) 2、求所有的水仙花数。水仙花数是一个3位数的自然数,该数各位数的立方和等于该数 本身。(实验指导书P42) 3、判断输入的某个数是否为素数。若是,输出YES,否则输出NO。(实验指导书P167) 4、计算π的近似值。公式如下:π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小 于10-6为止。(实验指导书P169) 5、计算1!+2!+……+n! 的值,n值由键盘输入。(实验指导书P176) 6、输入10个整数,统计并输出其中正数、负数和零的个数。 四、实验答案:(代码+运行结果截屏) 实验五综合实验1:结构化程序设计(2学时) 一、实验方式:一人一机 二、实验目的: 1、进一步掌握选择结构、循环结构的编程特点。 2、掌握C语言的结构化程序设计思想。 3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。 三、实验内容:说明:前两题为必做题目,后两题为选做题目。 1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。设: 90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。(实验指导书P162) 2、百马百担问题。(实验指导书P45) 3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 4、输出如下图案: * *** ***** ******* ***** *** * 四、实验答案:(代码+运行结果截屏) 通知 各位老师: 本学期非计算机专业《计算机程序设计基础(C语言)》课实验报告要求: 1.统一用《武汉科技大学实验报告》本写。本学期交三次实验报告。 ①循环结构程序设计。 ②数组。 ③函数。 要求学生在完成以下实验报告,参考《C语言程序设计课程实验与题解》中的要求认真完成。 实验1 循环结构程序设计 一、实验目的 1.熟悉用while语句,do-while语句和for语句实现循环的方法。 2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。 3.熟悉break语句和continue语句用法的不同之处。 二、实验内容 【例】以下程序,输出下三角形状的乘法九九表。 #include C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include C语言实验报告合集文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688] 《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验一熟悉VC++环境 二、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h" int main() {int a,b,sum; a=2; b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum); return 0; } 运行结果为: 2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结) 《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验二顺序结构程序设计 二、实验目的 (1)掌握C语言数据类型以及变量的声明。 (2)掌握C语言的赋值运算符、赋值表达式、赋值语句。 (3)掌握C语言的整型和字符型的混合运算。 (4)掌握C语言的输入、输出函数的使用格式。 三、实验内容 嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇 目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................ 实验一上机操作初步 (2 学时 ) 一、实验方式:一人一机 二、实验目的: 1、熟悉 VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个 C 程序。 3、初步了解 C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息: ( 实验指导书 P79) ************************* Very Good ************************* 2、计算两个整数的和与积。( 实验指导书 P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。 ( 书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include <> void main( ) {printf( printf( printf( “ ********************\n “Very Good\n” ); “ ********************\n ” ); ” ); } 2、#include <> void main( ) {int a,b,c,d; printf( “ Please enter a,b: ”); scanf( “%d,%d” ,&a,&b); c=a+b; d=a*b; printf( “ %d+%d=%d\n” ,a,b,c); printf( “ %d*%d=%d\n” ,a,b,d); } 3、#include <> #include <> void main( ) { double x,s; printf( “ Please input value of x: ”); scanf( “%lf ” ,&x); s=cos(x); printf( “ cos(%lf)=%lf\n ”,x,s); } 4、#include <> void main( ) { printf( “ ==================================\n”); printf( “ 1 输入数据 2 修改数据 \n ”); printf( “ 3 查询数据 4 打印数据 \n ”); printf( “ ===================================\n”); } 5、#include <> void main( ) { int x,y,t; printf( “ Please enter x and y: ”); scanf( “%d%d”,&x,&y); t=x; x=y; y=t; printf( “ After swap:x=%d,y=%d\n ” ,x,y); } 实验二简单的 C程序设计 (4 学时 ) 一、实验方式:一人一机 二、实验目的: 1、掌握 C语言的数据类型。 2、学会使用 C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。 课程实验报告课程名称:C语言程序设计 专业班级:信息安全1302 学号: 姓名: 指导教师: 报告日期:2014年6月16日 计算机科学与技术学院 目录 1 实验概述 (1) 2 第一次实验 (2) 2.1 实验目的 (2) 2.2 实验内容 (2) 2.3 实验小结 (19) 3 第二次实验 (20) 3.1 实验目的 (20) 3.2 实验内容 (20) 3.3 实验小结 (35) 4 第三次实验 (36) 4.1 实验目的 (36) 4.2 实验内容 (36) 4.3 实验小结 (49) 5 第四次实验 (50) 5.1 实验目的 (50) 5.2 实验内容 (50) 5.3 实验小结 (62) 6 第五次实验 (63) 6.1 实验目的 (63) 6.2 实验内容 (63) 6.3 实验小结 (69) 7 第六次实验 (70) 7.1 实验目的 (70) 7.2 实验内容 (70) 7.3 实验小结 (83) 8 第七次实验 (84) 8.1 实验目的 (836) 8.2 实验内容 (84) 8.3 实验小结 (105) 9 实验总结 (106) 参考文献 (107) 1实验概述 本实验采用C语言常用的上机开发环境Visual C++6.0集成开发环境。其关键是掌握程序的编辑、修改、编译、链接和执行的方法,以及如何调试程序,跟踪程序,通过断点控制程序,观察变量、表达式在程序运行过程中的取值,如何综合运用这些方法定位程序中的的错误和排除错误。 在实验中除了传统的编程设计题外,增加了源程序改错题,源程序完善、修改、替换题,程序的调试跟踪题等,培养学生跟踪程序、设置断点、调试程序的能力,排除程序中语法、逻辑方面错误与故障的能力,并养成细致、周密、严谨的编程作风。 实验中的源程序改错题,先给出一些含有经典、常见错误的源程序,让学生通过编译或运行发现错误,并加以改正,从而纠正初学者易犯的常见错误,实验中的源程序修改替换题,也是先给出源程序,然后要求学生按要求编写修改替换原来程序中的部分代码。实验中的跟踪调试结果填空题,给出源程序,要求学生填写程序运行过程中的某些中间结果。强迫学生用断点设置、单步跟踪等调试程序,观察并填写相应的中间结果。实验中的编程设计题,只给出题目,要求学生完成从源程序的编程、编辑、修改,编译产生目标代码,链接产生可执行文件,运行程序得到正确结果的全部环节。 学习C语言与学习和使用任何一门其他程序设计语言一样。首先要理解程序设计语言的语法和语义,然后通过上机熟悉该语言集成开发环境,掌握编辑、修改、编译、链接、跟踪、调试程序等方面的技巧。最后,还要熟悉语言编译系统提供的库函数或类库,以便快速实现程序的设计与开发。上机实验就是学习与掌握上面三个环节的重要途径。 上机实验之前一定要预先编好有关程序,把上机的重点放到程序的编辑、修改、编译、链接、跟踪、调试程序等方面,放到观察程序运行过程中的中间结果和运行完毕后的运行结果方面来。最终使自己的大脑变成一台“计算机”,能够在脑袋中运行自己的程序,判断各种情况下程序的走向等等,从而提高上机的效率和程序设计的准确性。 总之,上机实验是进一步深刻了解C语言的语法、语义,掌握用C语言进行初步程序设计所需要的方法和技能的一个重要环节。 郑州轻工业学院 实践报告 实现内容: OJ1123最佳校友(数组)、OJ1158又是升序(指针)、OJ1180成绩统计(结构)、OJ1203做幻方(文件) 学号:541507020140 学生姓名:王红旭 专业班级:电子信息科学与技术15-01 所在院系:计算机与通信工程学院 指导教师:王秉政 成绩: 实践名称:上机实验课 来源课程:[0404230]C程序设计进阶 实践时间:2016.03-05 实践地点:科学校区实验楼301 报告撰写时间:2016.05.10 1123最佳校友(数组) 1实践目的 为了方便数组的管理和使用,提高程序设计的效率。 2 实践要求 熟练使用数组解决问题。 3 使用的技术、知识点、工具等 C语言程序设计书本教材,数组等。 4 需求分析和功能描述 要求;北京校友会每年举办两次,所有校友都有校友编号,每次到会的校友都在签到簿上写下自己的编号和姓名,在校友会成立5周年的聚会上将颁发“最佳校友奖”,该奖项颁发给到会次数最多的校友。现在请你编写程序,找出这个奖项的得主。若有多个校友并列第一,则均可获奖。 5 系统总体设计 #include C语言程序设计实验报告优秀范文 实验名称计算出1000以内10个最大素数之和 实验目的 1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。 2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。 3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。 实验内容 计算并输出1000以内最大的10个素数以及它们的和。 要求: 在程序内部加必要的注释。 由于偶数不是素数,可以不考虑对偶数的处理。 虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。 输出形式为:素数1+素数2+素数3+…+素数10=总和值。 算法描述流程图 main函数: 判断素数: 源程序 #include #include int sushu(int n)/* 判断素数的函数*/ { int t,i; t=sqrt(n); for(i=2;i if(n%i==0)/* 如果不是素数,返回0 */ return 0; return n;/* 如果是素数,返回该数*/ } void main { int i,j=0,n,m=0,a[1000],x; /*clrscr;*/ printf("please input a number form 1 to 1000:"); scanf("%d",&x); if(x==2)/* x=2时的处理*/ printf("%dn",x); else if(x printf("error!n"); c语言实验报告心得总结 c语言实验报告心得总结一在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。在为期一周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,感触良多。 在这次实训中,我对对C语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。这次的实训,使我对C语言的学习产生浓厚的兴趣。 还是这次实训,最令人激动的就是合作做项目,虽然那只是一个很小很小的项目。每天大家来得很早,大家在一起学习,取长补短,我们很好的在实训中长知识,提高我们的学习热情。实训中深切体会到了老师认真负责的伟大的精神和热情为同学指导的促学方式,虽然对有些时候老师没给我们指出解决问题的方法有些小抱怨,但是到了结束时才知道,这种教学让我们自己学会了自学,学会了去看懂别人的代码。更多是老师给的感动,每天在我们来之前就到了教室,在讲 课中海给我们分享他在公司上班的一些心得和体会,还有那些我们应该注意的事项,这些是平时上课时无法学到的,是更深层次的巨大收获。 通过这次实训,也使我们发现了许多问题。 在实训中,我们认识到自己还有很多的知识没学好,基础知识没理清,而且许多东西还要去翻书,去上网搜索。而且遇到一些小错误运行不出来,就会烦躁不安,觉得有些自暴自弃或者抱怨项目的变态,以后要克服,尽量保持一颗良好的心态,学好C语言,也学好用C语言编写一个按要求的系统。 还有就是对于未来,近程就是下学期,我觉得我还有许多方面需要提高。 首先我要继续学习好C语言的基础知识,然后能在电脑上熟练的运用。然后每天都能写一些程序,上网时候多看一些优秀的教程和优秀的代码。遇到问题时多和同学讨论,并且多弄出几套方案,多锻炼自己结局问题的能力和与同学合作的能力。 总之,这一切都成为我记忆里面的一个篇章,更是在C 语言编程上的一个里程碑。 c语言实验报告心得总结二在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机, 1、编制程序,输入n 个整数(n 从键盘输入,n>0),输出它们的偶数和。 2、 编程,输入n 后:输入n 个数,根据下式计算并输出y 值。 3、输入一行字符,统计并输出其中英文字母、数字字符和其他字符的个数。 4、编写程序,输入一个正整数n ,计算并输出下列算式的值。要求定义和调用函数total(n)计算1+1/2+1/3+……+1/n ,函数返回值的类型是double 。 5、输入一个正整数n ,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n 的阶乘,函数返回值的类型是单精度浮点型。 答案: 程序1、 #include 实验一进制转换一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。 五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制 的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。 七、实验步骤 #include } else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c; c语言实验报告(同名3848) C语言程序设计实验报告 1实验目的 ⑴掌握指针的概念,会定义和使用指针变量; ⑵能正确使用变量的指针和指向变量的指针变量; ⑶能正确使用数组的指针和指向数组的指针变量; ⑷能正确使用字符串的指针和指向字符串的指针变量。 2实验内容 编写函数upCopy(char *new,char *old),将old指针所指向字符串中的大写字母复制到new指针指向的字符串中,并在主函数中调用该函数。 要求: ①画出算法的流程图。 ②在主函数中以直接初始化的方式输入一个字符串。 ③在主函数中调用upCopy()函数,输出old指针和new指针指向的字符串。 3算法描述流程图 4源程序 #include printf("复制之前的字符串为:"); puts(a); printf("复制之后的字符串为:"); puts(b); } void upCopy(char *new,char *old) { int i,j; j=0; for(i=0;i<20;i++) { if(*(old+i)>=65&&*(old+i)<=90) { *(new+j)=*(old+i); j++; } } *(new+j)='\0'; } 5测试数据 无测试数据。 6运行结果 7出现问题及解决方法 出现的问题是: ①在运用scanf()函数时,由于跟printf()混淆,变量地址的位置忘记输取地 址符“&”,解决办法就是加上取地址符“&”。 ②在找到该插入的位置后,进行后面的数据向后一个数据为调换的时候,没 有注意到“++”运算和“--”运算全部都作用在q上面,都在改变存储的q 的值。解决方法就是用加1的运算来代替自增运算,这样就只有自减运算 在改变q的值,程序即可正常运行。 8实验心得 通过这个实验,掌握了如何定义数组的指针和指向数组的指针变量。同时在程序编写过程中学习到了如何用for循环来寻找数组中某个元素对应的下标。另外,在自己的错误中我还学到了要牢记C语言中各种函数的语法格式,这样才能避免一些不该犯的错误。同时在逻辑上要慎重的同时使用自增和自减运算符,这种逆运算会直接影响变量的存储值。 C语言程序设计实验报告 1实验目的 ⑴掌握指针的概念,会定义和使用指针变量; ⑵能正确使用变量的指针和指向变量的指针变量; ⑶能正确使用数组的指针和指向数组的指针变量; ⑷能正确使用字符串的指针和指向字符串的指针变量。 实验一上机操作初步(2学时) 一、实验方式:一人一机 二、实验目的: 1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include C语言程序设计实验报告姓名: 班级: 学号: 实验内容: 编写一个程序,从键盘输入任意一个五位数,把这个数值分解为单个数字,然后打印出每一个数字(每个数字之间用三个空格分开)。例如用户输入了42339,屏幕输出结果为: 4 2 3 3 9 【提示】巧妙使用/ 和% 两种运算符。 源代码: #include 运行结果: 实验内容: 已知三角形三边a,b,c,计算三角形的面积。 注:三角形面积公式为area=[s(s-a)(s-b)(s-c)]的1/2次幂 S=1/2*(a+b+c) 源代码: #include scanf("%lf%lf%lf",&a,&b,&c); s=(a+b+c)/2; if(a>0 && b>0 && c>0) { area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%lf\n",area); } else printf("输入错误,三角形边长不能为负数或0\n"); } 运行结果: 实验内容: 输入圆的半径,计算出圆的周长和面积源代码: #includec语言实验报告总结
C语言上机报告答案
c语言实验心得体会
c语言实验报告分析总结
C语言上机实验[1]
2016年C语言实验报告
c语言实验报告
C语言实验报告合集图文稿
游戏C语言实验报告
C语言上机实验标准答案.doc
C语言程序设计实验上机报告
C语言实验报告
C语言程序设计实验报告优秀范文
c语言实验报告心得总结
C语言上机综合实验一及答案
C语言实验报告
c语言实验报告(同名3848)
大一C语言上机实验试题和答案
大一C语言上机实验报告