C语言课程设计实习报告

C语言课程设计实习报告班级:学生姓名:序号: 21指导老师:陈老师/刘老师日期: 2012.2目录一、程序分析与设计 (1)二、流程图 (1)三、源程序清单 (3)四、调试过程 (8)五、程序有待改进的地方 (9)六、本次实习的收获和建议 (9)附录 (9)一、程序分析与设计(标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符)1、先用记事本编辑文件cj.txt存储一个班学习成绩。

然后在C环境下,建立一个学生信息的结构体,用r方式打开上述文件,再用fscanf读入、用printf在屏幕上显示文件内容。

2、利用循环使每个学生的三门功课的成绩相加,然后再把和除以三就得到了平均成绩。

接着用冒泡法利用平均分的高低排出名次。

最后用fprintf将每个学生的信息写入到mc.txt文件。

3、利用for语句下的printf语句把每个同学的信息在屏幕上显示出来。

每名同学之间用分割线分开,作为每个学生的成绩条。

4、利用for语句配合if嵌套语句计算出每科每个分数段的学生人数。

在for语句中计算出每科的全班总成绩,再把总分除以三十七算出每科的平均分。

最后用printf语句把结果按格式输出。

5、利用for语句和if、printf语句配合找出不及格的学生的序号及该科成绩。

6、利用for语句和if语句配合再利用逻辑或和逻辑且找出优等生的信息,并用printf语句在屏幕上显示出来。

7、把以上几点分别定义五个函数,再定义一个菜单函数,利用switch语句和goto配合,完成输入进行运行。

二、流程图1计算平均分并排名for i=0 to 37stu[i].total=stu[i]. math +stu[i].engl +stu[i].physstu[i].ave=stu[i].total/3.0打印出各个学生的每门课的成绩,平均分for i=0 to 37for j=0 to 37stu[j].ave>stu[i].ave真假stu[i].mc++打印出各个学生的每门课的成绩,平均分,名次2求个分数段的人数3不及格人数4优秀人数三、源程序清单(此部分采用小五号宋体,行间距-固定值14)#include<stdio.h>#include<stdlib.h>struct student{int id;char name[9];int math;int engl;int phys;int total;float ave;int mc;} stu[37];struct student*p=&stu[0];//-----------------mc--------------------------void mc(){int i;printf("读取文件结果如下:\n");printf("%8s %8s %8s %8s %8s\n","序号","姓名","数学","英语","物理");for(i=0;i<37;i++){printf("%8d %8s %8d %8d %8d\n",p[i].id,p[i].name,p[i].math,p[i].engl,p[i].phys);}for(i=0;i<37;i++){p[i].total= p[i].math+p[i].engl+p[i].phys;p[i].ave=p[i].total/3.0;p[i].mc=1;}for(i=0;i<37;i++){for(int j=0;j<37;j++){if(p[j].ave>p[i].ave){p[i].mc++;}}}printf("----------MC-------------------\n");printf("%8s %8s %8s %8s %8s %8s %8s %6s\n","序号","姓名","数学","英语","物理","总分","平均分","名次"); for(i=0;i<37;i++){printf("%8d %8s %8d %8d %8d %8d %8.3f %6d\n",p[i].id,p[i].name,p[i].math,p[i].engl,p[i].phys,p[i].total,p[i].ave,p[i].mc);}FILE* fp1;fp1=fopen("D:\\mc.txt","w");fprintf(fp1,"%8s %8s %8s %8s %8s %8s %8s %6s\n","序号","姓名","数学","英语","物理" ,"总分","平均分","名次");for(i=0;i<37;i++){fprintf(fp1,"%8d %8s %8d %8d %8d %8d %8.3f %6d\n", p[i].id,p[i].name,p[i].math,p[i].engl,p[i].phys,p[i].total,p[i].ave,p[i].mc);}}//-----------------------------cjt--------------------------- void cjt(){int i;for(i=0;i<37;i++){p[i].total= p[i].math+p[i].engl+p[i].phys;p[i].ave=p[i].total/3.0;p[i].mc=1;}for(i=0;i<37;i++){for(int j=0;j<37;j++){if(p[j].ave>p[i].ave){p[i].mc++;}}}printf("%8s %8s %8s %8s %8s %8s %8s %6s\n","序号","姓名","数学","英语","物理" ,"总分","平均分","名次");for(i=0;i<37;i++){printf("%8d %8s %8d %8d %8d %8d %8.3f %6d\n",stu[i].id,stu[i].name,stu[i].math,stu[i].engl, stu[i].phys,stu[i].total,stu[i].ave,stu[i].mc);printf("-----------------------------------------------------------------------------\n");}FILE* fp5;fp5=fopen("D:\\cjt.txt","w");for(i=0;i<37;i++){fprintf(fp5,"%8d %8s %8d %8d %8d %8d %8.3f %6d\n",stu[i].id,stu[i].name,stu[i].math,stu[i].engl,stu[i].phys,stu[i].total,stu[i].ave,stu[i].mc);fprintf(fp5,"-----------------------------------------------------------------------------\n ");}}//----------------fsd------------------------------------------------------------------ void fsd(){int total_math=0;int math_60=0;int math60_69=0;int math70_79=0;int math80_89=0;int math_90=0;int i;for(i=0;i<37;i++){ total_math+=stu[i].math;if(stu[i].math<60) math_60++;else if(stu[i].math<=69) math60_69++;else if(stu[i].math<=79) math70_79++;else if(stu[i].math<=89) math80_89++;else math_90++;}float ave_math=total_math/37.0;int total_engl=0;int engl_60=0;int engl60_69=0;int engl70_79=0;int engl80_89=0;int engl_90=0;for(i=0;i<37;i++){ total_engl+=stu[i].engl;if(stu[i].engl<60) engl_60++;else if(stu[i].engl<=69) engl60_69++;else if(stu[i].engl<=79) engl70_79++;else if(stu[i].engl<=89) engl80_89++;else engl_90++;}float ave_engl=total_engl/37.0;int total_phys=0;int phys_60=0;int phys60_69=0;int phys70_79=0;int phys80_89=0;int phys_90=0;for(i=0;i<37;i++){ total_phys+=stu[i].phys;if(stu[i].phys<60) phys_60++;else if(stu[i].phys<=69) phys60_69++;else if(stu[i].phys<=79) phys70_79++;else if(stu[i].phys<=89) phys80_89++;else phys_90++;}float ave_phys=total_phys/37.0;printf("----------------分数段统计结果文件-------------------\n");printf("%8s %8s %8s %8s\n","分数段","C语言","英语","数学");printf("%8s %8d %8d %8d\n","<60",math_60,engl_60,phys_60);printf("%8s %8d %8d %8d\n","60_69",math60_69,engl60_69,phys60_69);printf("%8s %8d %8d %8d\n","70_79",math70_79,engl70_79,phys70_79);printf("%8s %8d %8d %8d\n","89_89",math80_89,engl80_89,phys80_89);printf("%8s %8d %8d %8d\n",">90",math_90,engl_90,phys_90);printf("%8s %8.3f %8.3f %8.3f\n","平均成绩",ave_math,ave_engl,ave_phys);FILE* fp2;fp2=fopen("D:\\fsd.txt","w");fprintf(fp2,"%8s %8s %8s %8s\n","分数段","C语言","英语","数学");fprintf(fp2,"%8s %8d %8d %8d\n","<60",math_60,engl_60,phys_60);fprintf(fp2,"%8s %8d %8d %8d\n","60_69",math60_69,engl60_69,phys60_69);fprintf(fp2,"%8s %8d %8d %8d\n","70_79",math70_79,engl70_79,phys70_79);fprintf(fp2,"%8s %8d %8d %8d\n","89_89",math80_89,engl80_89,phys80_89);fprintf(fp2,"%8s %8d %8d %8d\n",">90",math_90,engl_90,phys_90);fprintf(fp2,"%8s %8.3f %8.3f %8.3f\n","平均成绩",ave_math,ave_engl,ave_phys);}//--------------------------bjg--------------------------------------void bjg(){int i;printf("----------打印不及格学生名单-----\n");printf("%8s %8s %8s\n","序号","不及格课程","该课程成绩");for(i=0;i<37;i++){if(stu[i].math<60)printf("%8d %8s %8d\n",stu[i].id, "数学",stu[i].math);if(stu[i].engl<60)printf("%8d %8s %8d\n", stu[i].id, "英语",stu[i].engl);if(stu[i].phys<60)printf("%8d %8s %8d\n", stu[i].id,"物理",stu[i].phys);}FILE* fp3;fp3=fopen("D:\\bjg.txt","w");for(i=0;i<37;i++){if(stu[i].math<60) fprintf(fp3,"%8d %8s %8d\n",stu[i].id, "数学",stu[i].math);if(stu[i].engl<60) fprintf(fp3,"%8d %8s %8d\n", stu[i].id, "英语",stu[i].engl);if(stu[i].phys<60) fprintf(fp3,"%8d %8s %8d\n", stu[i].id,"物理",stu[i].phys);}}//-----------------------------yds---------------------------void yds(){int i;printf("优等生名单\n");printf("%8s %8s %8s %8s %8s %8s %8s %6s\n","序号","姓名","数学","英语","物理" ,"总分","平均分","名次");for(i=0;i<37;i++){if((stu[i].ave>90||stu[i].ave>85&&((stu[i].math==100||stu[i].engl==100||stu[i].phys==100)||( stu[i].math>95&&stu[i].engl>95||stu[i].math>95&&stu[i].phys>95||stu[i].engl>95&&stu[i].phys>95)))&&(stu[i].mc>=1&&stu[i].mc<=3)&&(stu[i].math>60&&stu[i].engl>60&&stu[i].phys>60))printf("%8d %8s %8d %8d %8d %8d %8.3f %6d\n",stu[i].id,stu[i].name,stu[i].math,stu[i].engl,stu[i].phys,stu[i].total,stu[i].ave,stu[i].mc);}FILE* fp4;fp4=fopen("D:\\yds.txt","w");for(i=0;i<37;i++)if((stu[i].ave>90||stu[i].ave>85&&((stu[i].math==100||stu[i].engl==100||stu[i].phys==100)||( stu[i].math>95&&stu[i].engl>95||stu[i].math>95&&stu[i].phys>95||stu[i].engl>95&&stu[i].phys>95)))&&(stu[i].mc>=1&&stu[i].mc<=3)&&(stu[i].math>60&&stu[i].engl>60&&stu[i].phys>60))fprintf(fp4,"%8d %8s %8d %8d %8d %8d %8.3f %6d\n",stu[i].id,stu[i].name,stu[i].math,stu[i].engl,stu[i].phys,stu[i].total,stu[i].ave,stu[i].mc);}//----------------menu---------------------------------------void menu(){int i;void mc();void cjt();void bjg();void yds();lop_1:{printf("****************1:计算平均分并排名****************\n");printf("****************2:统计分数段*********************\n");printf("****************3:打印成绩条*********************\n");printf("****************4:打印不及格学生信息*************\n");printf("****************5:打印优等生名单*****************\n");printf("****************6:退出***************************\n");scanf("%d",&i);switch(i){case 1:mc(); goto lop_1;case 2:fsd();goto lop_1;case 3:cjt();goto lop_1;case 4:bjg();goto lop_1;case 5:yds();goto lop_1;case 6:exit(0);}}}//-------------------main-----------------------------------------void main(){ FILE* fp; fp=fopen("D:\\cj.txt","r");for(int i=0;i<37;i++){fscanf(fp,"%d %s %d %d %d",&stu[i].id,stu[i].name,&stu[i].math,&stu[i].engl,&stu[i].phys);}menu();//--------MC-------------------------}四、调试过程在程序运行的过程中,出现了很多的错误。

合集下载

c课程设计实验报告

c课程设计实验报告

c课程设计实验报告C课程设计实验报告引言C语言是一门广泛应用于计算机科学领域的编程语言,被广泛用于开发各种软件和系统。

本次课程设计实验旨在通过实践来巩固和应用C语言的基础知识,提高学生的编程能力和解决问题的能力。

实验目的本次实验的主要目的是让学生熟悉C语言的基本语法和编程规范,掌握C语言的常用数据类型、运算符和控制结构。

通过实践,学生将能够编写简单的C程序,实现基本的输入输出、逻辑判断和循环控制等功能。

实验内容本次实验的内容包括以下几个方面:1. C语言基础知识在实验开始前,学生需要通过自学或课堂学习掌握C语言的基础知识,包括数据类型、运算符、控制结构等。

这些知识将为后续的实验内容打下基础。

2. 实验环境的搭建学生需要在自己的计算机上安装C语言的编译器和开发环境,如Dev-C++或Code::Blocks等。

这些工具将帮助学生编写、调试和运行C程序。

3. 实验任务的设计根据学生的编程能力和实践目标,实验任务可以分为不同的难度级别。

例如,初级任务可以是编写一个简单的计算器程序,实现两个数的加减乘除运算;中级任务可以是编写一个学生成绩管理系统,实现成绩的录入、查询和统计功能;高级任务可以是编写一个简单的图形界面程序,实现用户的交互和数据展示。

4. 实验报告的撰写学生需要按照规定的格式和要求撰写实验报告。

报告应包括实验目的、实验内容、实验过程和实验结果等部分。

学生还可以在报告中附上自己的思考和总结,分享自己在实验中的收获和体会。

实验过程在实验过程中,学生需要按照实验任务的要求,编写C程序并进行调试和测试。

在编写过程中,学生可以参考教材、课堂讲义和网络资源,积极解决遇到的问题和困惑。

通过不断的尝试和实践,学生将逐渐掌握C语言的编程技巧和调试技巧。

实验结果实验结果是评价学生实验成果的重要指标。

学生需要将编写的C程序进行测试,并记录测试结果。

测试结果应包括输入数据、期望输出和实际输出等信息。

通过对比实际输出和期望输出,学生可以判断程序的正确性和性能。

C语言实训总结报告范文(通用5篇)

C语言实训总结报告范文(通用5篇)

C语言实训总结报告范文(通用5篇)在经济飞速发展的今天,报告的适用范围越来越广泛,报告包含标题、正文、结尾等。

一听到写报告马上头昏脑涨?以下是小编整理的C语言实训总结报告范文,仅供参考,希望能够帮助到大家。

C语言实训总结报告篇1这个星期,我们迎来了C语言实训——一次至为重要的实训。

在这个星期里,同学们都很认真的做着那20多道实训题目,遇到不懂的互相请教,或请问老师。

非常感谢老师对我们的帮助,这次实训使我受益匪浅,收获了很多。

通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。

不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。

这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。

如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。

C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。

比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。

还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。

通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。

C语言课程实习(优秀范文5篇)

C语言课程实习(优秀范文5篇)

C语言课程实习(优秀范文5篇)第一篇:C语言课程实习课程实习一、C程序上机操作方法及运行环境编写一个C程序,输入a, b, c,d四个值,输出其中最小者。

#includemain(){int a,b,c,d,t;printf(“Please input numbers:”);scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);t=min(min(min(a,b),c),d);printf(“min number is:%dn”,t);}int min(int x,int y){int z;if(xz=x;elsez=y;return(z);}运行结果:Please input numbers:4,6,3,9min number is:3课程实习二、C程序上机操作方法及运行环境从键盘输入三个字符,要求输出这三个字符,并输出它们的ASCII 码及其ASCII码的平方根和的平方。

#include#includevoid main(){char ch1,ch2,ch3;float t;scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);t=sqrt(ch1)+sqrt(ch2)+sqrt(ch3);printf(“%c,%dn”,ch1,ch1);printf(“%c,%dn”,ch2,ch2);printf(“%c,%dn”,ch3,ch3);printf(“%fn”,t*t);}运行结果:a,b,ca,97b,98c,99881.984683课程实习三、循环结构程序设计1)输入两个正整数m和n;2)如果m=n输出最大公约数m程序结束;3)若m>n则m=m-n否则n=n-m;4)返回到2)(循环)。

#includevoid main(){int m,n;scanf(“%d%d”,&m,&n);while(m!=n){if(m>n)m=m-n; else n=n-m;}printf(“%dn”,m); }运行结果:34,24课程实习四、循环结构程序设计打印下面的图案# # # # ## # # ## # ## ##includevoid main(){int i,j;for(i=1;i<=4;i++) {for(j=1;jprintf(“ ”);for(j=5;j>=i;j--) printf(“*”); putchar('n');}}课程实习五、数组的应用输入一个0到150之间的十进制整数,要求把此数转化为二进制形式。

C语言程序设计实习报告

C语言程序设计实习报告

C语言程序设计实习报告一、实习目的1. 巩固和加深对C语言程序设计的理解。

2. 掌握C语言编程的基本技巧和方法。

3. 提高分析问题、解决问题的能力。

4. 学会将理论知识应用于实际编程中。

二、实习内容XXX语言基础语法练习变量、数据类型、运算符、表达式等基础语法练习。

控制结构(顺序、分支、循环)的实现。

函数的定义和调用方式练习。

2. 模块化程序设计将一个大的程序分解成多个模块,每个模块完成特定的功能。

通过模块间的调用和传递数据来实现整个程序的功能。

3. 文件操作与文件读写文件的打开、关闭、读写操作练习。

文件格式的转换和数据统计处理。

4. 预处理指令与宏定义使用预处理指令进行条件编译和宏定义替换。

练习使用常见的预处理指令如include、define、ifdef等。

5. 结构体、链表与指针结构体的定义和使用。

链表的创建、插入、删除、遍历等操作。

指针的概念和指针运算。

深入理解指针与数组、结构体等数据结构的关系。

6. 位运算与嵌入式系统编程学习位运算符的使用和位段操作的实现。

嵌入式系统的基本概念和编程方法。

7. 综合项目实践参与或独立完成一个综合性C语言程序设计项目。

项目可以包括基于命令行参数的程序设计、基于文件操作的程序设计、基于网络编程的程序设计等。

三、实习过程1. 理论学习:通过教材、网络资源等途径学习C语言的基础知识和编程技巧。

2. 上机实践:在计算机上编写和调试C语言程序,不断巩固所学知识。

3. 问题解决:遇到问题时,通过查阅资料、请教老师或同学等方式解决问题。

4. 团队合作:在小组项目中与他人协作,共同完成任务。

四、实习收获1. 知识技能方面:深入理解了C语言的基本概念和编程技巧,掌握了模块化程序设计和文件操作等常用算法。

2. 解决问题能力方面:学会了如何分析问题、寻找解决方案并通过实践验证解决方案的正确性。

3. 团队协作能力方面:学会了与他人合作,共同完成任务,提高了团队协作能力。

4. 职业素养方面:培养了耐心、细致的工作态度和勇于尝试、敢于创新的探索精神。

c语言实习报告3篇

c语言实习报告3篇

c语言实习报告3篇c语言实习报告1在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的.学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。

c语言课程设计实习报告

c语言课程设计实习报告

c语言课程设计实习报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生运用C语言解决实际问题的能力。

具体分为以下三个层面:1.知识目标:学生需要掌握C语言的基本语法、关键字、数据类型、运算符、控制结构、函数、数组、指针、结构体等基本概念。

2.技能目标:学生需要能够运用C语言进行程序设计,熟练使用C语言编写和调试程序,掌握常用的调试技巧。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生独立思考、解决问题的能力,培养学生的团队协作精神和创新意识。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程思想。

具体安排如下:1.C语言的基本语法:介绍C语言的基本规则,包括关键字、数据类型、运算符、控制结构等。

2.数据结构:讲解常用的数据结构,如数组、链表、栈、队列、树等。

3.算法:介绍常见的排序算法、查找算法、递归算法等。

4.编程思想:培养学生面向对象编程的思想,讲解面向对象编程的基本概念,如类、对象、封装、继承、多态等。

三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。

具体方法如下:1.讲授法:教师讲解C语言的基本语法、数据结构、算法和编程思想,帮助学生建立知识体系。

2.案例分析法:通过分析实际案例,让学生了解C语言在实际应用中的优势和局限。

3.实验法:安排上机实验,让学生动手编写C语言程序,培养学生的编程能力。

4.讨论法:学生进行小组讨论,分享学习心得,互相促进,提高学习效果。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

具体如下:1.教材:选用权威、实用的C语言教材,如《C程序设计语言》、《CPrimer Plus》等。

2.参考书:提供丰富的参考书籍,如《C语言入门教程》、《C语言编程实践》等。

3.多媒体资料:制作精美的PPT,提供视频教程、在线编程练习等资源,帮助学生更好地理解和掌握C语言。

c 课程设计实验报告

c 课程设计实验报告C 课程设计实验报告一、引言计算机科学与技术领域的学习和实践是现代社会中不可或缺的一部分。

在计算机科学专业的学习过程中,课程设计实验是培养学生实际动手能力和解决问题能力的重要环节。

本文将对我在C 课程设计实验中的学习和实践进行报告和总结。

二、实验目的C 课程设计实验的主要目的是让学生掌握C语言的基本语法和程序设计方法,培养学生独立设计和实现小型程序的能力。

通过实验,学生能够理解并应用C语言的各种数据类型、运算符、控制语句和函数等基础知识,进一步提高编程能力和解决实际问题的能力。

三、实验内容及过程1. 实验一:C语言基本语法的学习和应用在实验一中,我通过学习C语言的基本语法,掌握了变量的声明与定义、数据类型的使用、输入输出函数的运用等基础知识。

通过编写简单的程序,如计算两个数的和、差、积和商等,我逐渐熟悉了C语言的语法和编程风格。

2. 实验二:C语言的控制语句和循环结构实验二主要涉及C语言的控制语句和循环结构的学习和应用。

通过编写程序,如判断一个数的正负性、计算一个数的阶乘、求两个数的最大公约数等,我深入理解了C语言中的条件语句和循环结构,并能够熟练运用它们解决实际问题。

3. 实验三:C语言的函数和数组实验三主要介绍C语言中函数和数组的使用。

我通过编写程序,如计算一个数列的和、找出一个数组中的最大值和最小值等,加深了对函数和数组的理解和应用。

同时,我也学会了如何使用函数和数组提高程序的模块化和代码的重用性。

四、实验结果与分析通过完成以上三个实验,我对C语言的基本语法和程序设计方法有了更深入的了解。

我能够独立设计和实现简单的C程序,并能够解决一些实际问题。

在实验中,我遇到了一些困难和挑战,如程序逻辑的设计、语法错误的排查等,但通过不断的实践和调试,我逐渐克服了这些问题。

实验结果的分析表明,我在C语言的学习和实践中取得了一定的进步。

我能够熟练运用C语言的各种语法和编程技巧,具备了一定的程序设计能力。

C语言课设实习报告

C语言课程设计实习报告班级:学生姓名:学号:指导老师:日期:目录一、程序分析与设计 (1)二、流程图 (1)三、源程序清单 (5)四、调试过程 (10)五、程序有待改进的地方 (11)六、本次实习的收获和建议 (11)附录 (11)C语言课程设计实习报告一、程序分析与设计(标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符)1、先用记事本编辑文件“文件数据.txt”存储一个班学习成绩和“学分.txt”存储科目学分信息。

然后在C环境下,建立一个学生信息的结构体和学分信息的结构体,用r方式打开上述文件,再用fscanf读入。

2、利用循环使每个学生的三门功课的成绩与对应学分相乘再求和,然后再把和除以学分的总和就得到了平均成绩。

接着用冒泡法利用平均分的高低排出名次。

最后用fprintf将每个学生的信息写入到“学生成绩及排名.txt”文件中。

3、利用for循环求出全班学生一门科目的平均分,利用switch或if求出分数段(60以下,60~69,70~79,80~89,90以上)的学生人数;结果写入文件“分数段及科目平均分.txt”中。

4、按照2、中求出的信息,分别用printf在屏幕中打印每一位学生的学号、姓名、成绩、平均分及排名情况,同时注意打印到屏幕上的直观美观问题。

5、在for循环中if语句与60 比较大小,用printf直接在屏幕上打印不及格学生的信息及科目等。

6、创建一个函数打印优等生信息,用for循环if判断符合条件的学生成绩,用printf在屏幕上打印出优等生的全部信息。

7、该课设程序中多次用到for及if语句,其中注意全局变量的应用,stu[i].score.[j]中的i,j 就可作为全局变量,以免多次在函数中定义。

8、用一个函数被主函数调用,该函数制作菜单。

二、流程图地信10902读文件数据和学分文件写文件学生成绩及排名C语言课程设计实习报告写文件分数段及科目平均分计算平均分及排名函数计算科目平均分打印信息函数地信10902不及格函数优秀学生函数分数段函数C语言课程设计实习报告三、源程序清单(此部分采用小五号宋体,行间距-固定值14)#include<stdio.h>#include<stdlib.h>#include<math.h>#define M 15#define N 3struct student{int num;char name[10];int score[N];float average;int rank;}stu[M];struct XueFen{int num;char subject[20];float xuefen;}xf[N];struct FenShuDuan{char name[20];int num[N];}FSD[5]={{"分数>=90",0,0,0},{"分数>=80",0,0,0},{"分数>=70",0,0,0},{"分数>=60",0,0,0},{"分数< 60",0,0,0}};int i,j;FILE *fp;float average[N];void readFromTxtFile();void writeToTxtFile1();void writeToTxtFile2();void CalculateAverageScore();void CalculateAverageScoreOfEveryCourse();void Print();void FenShuDuan();void NoPass();void GoodStudent();void menu();void main(){地信10902readFromTxtFile();CalculateAverageScore();CalculateAverageScoreOfEveryCourse();writeToTxtFile1();FenShuDuan();writeToTxtFile2();menu();}//读文本文件void readFromTxtFile(){if((fp=fopen("E:\\c课设\\文件数据.txt","r"))==NULL){printf("can not open the file!\n");exit(0);}for(i=0;i<M+1;i++){char title[50];fgets(title,50,fp);fscanf(fp,"%d%s%d%d%d",&stu[i].num,stu[i].name ,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2] );}fclose(fp);if((fp=fopen("E:\\c课设\\学分.txt","r"))==NULL){printf("can not open the file!\n");exit(0);}for(j=0;j<N;j++){fscanf(fp,"%d%s%f",&xf[j].num,xf[j].subject,&xf[j].xuefen);}fclose(fp);}//写文件1void writeToTxtFile1(){if((fp=fopen("学生成绩及排名.txt","w"))==NULL){printf("can not open the file!\n");exit(0);}fputs(" 序号\t姓名\t英语\t数学\tC程序设计\t平均分\t排名\n",fp);for(i=0;i<M;i++){fprintf(fp,"%d\t%s\t%d\t%d\t%d\t%13.2f\t%d\n",stu[i].num ,stu[i].name ,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].average,stu[i].rank);C语言课程设计实习报告}fclose(fp);}//写文件2void writeToTxtFile2(){if((fp=fopen("分数段及科目平均分.txt","w"))==NULL){printf("can not open the file!\n");exit(0);}fputs("\t\t英语\t数学\tC程序设计\n",fp);for(i=0;i<5;i++){fprintf(fp,"%4s",FSD[i].name);for(j=0;j<N;j++){fprintf(fp,"%10d",FSD[i].num[j]);}fputs("\n",fp);}fputs("\n科目平均分",fp);for(j=0;j<N;j++){fprintf(fp,"%10.1f",average[j]);}printf("\n");fclose(fp);}//算平均分及排名void CalculateAverageScore(){float sum1,sum2;for(i=0;i<M;i++){sum1=0;sum2=0;for(j=0;j<N;j++){sum1+=stu[i].score[j]*xf[j].xuefen;sum2+=xf[j].xuefen;}stu[i].average=sum1/sum2;}for(i=0;i<M;i++){stu[i].rank=1;for(j=0;j<M;j++)地信10902{if(stu[i].average<stu[j].average)stu[i].rank++;}}}//计算科目平均分void CalculateAverageScoreOfEveryCourse(){int t,sum;for(j=0;j<N;j++){sum=0;for(i=0;i<M;i++){t=stu[i].score[j];sum+=t;average[j]=sum/(M*1.0);}}}//计算分数段void FenShuDuan(){for(i=0;i<M;i++)for(j=0;j<N;j++){if(stu[i].score[j]>=90)FSD[0].num[j]++;else if(stu[i].score[j]>=80)FSD[1].num[j]++;else if(stu[i].score[j]>=70)FSD[2].num[j]++;else if(stu[i].score[j]>=60)FSD[3].num[j]++;else if(stu[i].score[j]<60)FSD[4].num[j]++;}}//打印内容void Print(){//屏幕上打出平均分及排名printf("序号\t姓名\t英语\t数学\tC程序设计\t平均分\t名次\n");printf("---------------------------------------------------------\n");for(i=0;i<M;i++){printf("%-5d%6s",stu[i].num,stu[i].name);for(j=0;j<N;j++){printf("%9d",stu[i].score[j]);}printf("%14.1f%8d\n",stu[i].average,stu[i].rank);}printf("\n|*|---------------------------------------------------|*|\n");printf("\t\t英语\t数学\tc语言\n");printf("\n科目平均分");for(j=0;j<N;j++){printf("%9.1f",average[j]);}printf("\n");}//不及格统计void NoPass(){printf("\n|*|---------------------------------------------------|*|\n");printf("\n不及格学生信息\n");printf("---------------------------------------\n");printf("学号\t姓名\t科目\t学分\t分数\n");for(i=0;i<M;i++){for(j=0;j<N;j++)if(stu[i].score[j]<60){printf("%4d%8s%8s%8.1f%8d\n",stu[i].num,stu[i].name,xf[j].subject,xf[j].xuefen,stu[i].score[j]);}}}//优等生信息void GoodStudent(){printf("\n|*|---------------------------------------------------|*|\n");printf("\n优秀学生信息\n");printf("---------------------------------------------------\n");printf("学号\t姓名\t英语\t数学\tc语言\t平均分\t排名\n");for(i=0;i<M;i++){int m,n;m=0;n=0;for(j=0;j<N;j++){if(stu[i].score[j]==100) m++;if(stu[i].score[j]>=90) n++;}if(stu[i].average>=90||stu[i].rank<=3||(stu[i].average>=85&&(m>=1||n>=2))){printf("\n%2d%8s",stu[i].num,stu[i].name);for(j=0;j<N;j++){printf("%8d",stu[i].score[j]);}printf("%10.1f%5d\n",stu[i].average,stu[i].rank);}}printf("\n|*|---------------------------------------------------|*|\n");}//菜单项void menu(){ char ch1;do{ 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(" 3. 输出优秀学生\n\n");printf(" 输入选择序号\n");while((ch1=getchar(),ch1!='1'&&ch1!='2'&&ch1!='3')) ;switch(ch1){case '1' : CalculateAverageScore(),CalculateAverageScoreOfEveryCourse(),Print(); break;case '2' : NoPass(); break;case '3' : GoodStudent();}}while(1);}四、调试过程在程序运行的过程中,出现了很多的错误。

c语言课程设计实训报告

c语言课程设计实训报告一、教学目标本课程旨在通过C语言的实训,使学生掌握C语言的基本语法、数据结构、算法以及编程技巧,培养学生独立编程和解决问题的能力。

具体的教学目标如下:1.理解C语言的基本语法和编程规范。

2.掌握基本数据类型、运算符和表达式。

3.熟悉控制结构、函数、数组和指针的概念及应用。

4.理解面向对象编程的基本概念。

5.能够使用C语言编写简单的程序,解决实际问题。

6.掌握程序调试和运行的基本方法。

7.学会查阅相关资料,具备一定的自主学习能力。

情感态度价值观目标:1.培养学生的团队合作精神和良好的编程习惯。

2.激发学生对计算机科学和程序设计的兴趣。

3.培养学生的创新思维和问题解决能力。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程技巧。

具体的教学大纲如下:1.C语言概述:介绍C语言的发展历程、特点和基本语法。

2.基本数据类型和运算符:整型、浮点型、字符型数据及其运算符。

3.控制结构:顺序结构、选择结构和循环结构。

4.函数:函数的定义、声明和调用,递归函数。

5.数组和指针:一维、二维数组,指针的概念和应用。

6.面向对象编程:类、对象、封装、继承和多态。

7.编程技巧:代码规范、调试方法、算法分析和优化。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:通过讲解C语言的基本概念和语法,使学生掌握知识要点。

2.讨论法:学生进行小组讨论,培养学生的团队合作精神和问题解决能力。

3.案例分析法:分析实际案例,让学生了解C语言在实际应用中的重要作用。

4.实验法:让学生动手编写程序,培养学生的实际编程能力和创新思维。

四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《C程序设计语言》(K&R著)或《C Primer Plus》(Stephen Prata著)。

2.参考书:《C语言程序设计》(谭浩强著)、《C++ Primer》(Stanley B. Lippman著)。

C语言课设实习报告

C语言课程设计实习报告C语言课程设计实习报告目录一、程序分析与设计 (1)二、流程图 (2)三、源程序清单 (6)四、调试过程 (9)五、程序有待改进的地方 (10)六、本次实习的收获和建议 (10)附录 (11)C语言课程设计实习报告一、程序分析与设计1、先用记事本编辑文件stu1.dat存储一个班学习成绩。

然后在C环境下,建立一个学生信息的结构体,用r方式打开上述文件,再用fscanf读入、用printf在屏幕上显示文件内容。

2、利用循环使每个学生的三门功课的成绩相加,然后再把和除以三就得到了平均成绩。

接着用冒泡法利用平均分的高低排出名次。

最后用fprintf将每个学生的信息写入到stu2.dat文件。

3.计算各科成绩的分数段时,用到for循环if条件,事先定义各分数段人数变量,并赋值为0.如果符合各分数段符合if条件变量++自增。

再用fprintf将分数段的信息写入到stu2.dat文件。

4.在屏幕上打印学生的成绩,用printf函数for循环即可打出每个学生的成绩。

格式对齐用\n换行\t制表符。

5.打印不及格学生的信息,不及格应满足stu[i].score<60。

Printf打出stu[i].num,stu[i].name 即学号,姓名。

第二次调用printf分别打出stu[i].score[0],stu[i].score[1],stu[i].score[2]相应的不及格成绩。

6.在屏幕上打印优等学生。

首先分析优等生需要的条件,有四种并列关系的条件都可。

A均成绩>=90 B均成绩>=85且至少一科为100 C均分>=85且至少有两科>=95 D均分排名前三名。

满足着四个条件中的任一个且每门功课及格以上,即为优秀。

即可表示为:(满足A|| 满足B || 满足C || 满足D )&&( 各科成绩>=60 )A即为stu[i].aver>=90B即为stu[i].aver>=85&&(stu[i].score[0]==100||stu[i].score[1]==100||stu[i].score[2]==100)C即为stu[i].aver>=85&&( a || b || c )a为英语C语言都>=95 即为(stu[i].score[0]>=95&&stu[i].score[1]>=95)b为英语高数都>=95 即为(stu[i].score[0]>=95&&stu[i].score[2]>=95)c为C语言高数都>=95 即为(stu[i].score[1]>=95&&stu[i].score[2]>=95)D即为stu[i].rank<=3各科成绩>=60 即可表示为(stu[i].score[0]>=60&&stu[i].score[1]>=60&&stu[i].score[2]>=60)用逻辑运算符&&及||if else if语句即可实现程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档