C实训报告

时间:2024.4.20

Shanghai Dianji University

实训报告

            课程名称:   计算机能力强化实训     

姓    名:         老逼样           

班级学号:       BG080410         

指导教师:           张艳           

完成日期:        20##-10-15        

Electric School

20##   10


目录

Shanghai Dianji University. 1

第1章 实训目的及基本要求... 3

1.1实训目的... 3

1.2实训的基本内容和要求... 3

第2章 C语言实训课题演示系统的设计... 4

2.1需求分析... 4

2.2概要设计... 4

2.2.1 演示系统主控模块... 4

2.2.2 演示系统基本算法... 6

2.2.3 各子系统的函数名对照表... 6

第3章 学生成绩系统的设计... 7

3. 1需求分析... 7

3. 2概要设计... 7

3.2.1 学生成绩系统基本算法... 7

3.2.2 学生成绩系统中的函数名对照表... 7

3. 3详细设计... 8

3. 4学生成绩系统流程图分析... 9

3. 5调试分析... 11

第4章 找相同数的系统... 12

4. 1需求分析... 12

4. 2概要设计... 12

4.2.1找相同数系统基本算法... 12

4. 34.2.2 重组四位数系统中的函数名对照表... 12

4.3详细设计... 13

4. 4重组四位数系统流程图分析... 14

4. 5调试分析... 14

第5章求和的系统... 15

5. 1需求分析... 15

5. 2概要设计... 15

5.2.1求和系统的基本算法... 15

5. 3详细设计... 15

5. 4求和系统流程图分析... 16

5. 5调试分析... 16

第6章 实训小结... 17

参考文献... 18

附录... 19

附录一:学生成绩系统的设计... 19

附录二:重组四位数的系统... 20

附录三:求和的系统... 22

第1章 实训目的及基本要求

1.1实训目的

C语言程序设计是本科工科类各专业的重要基础课,主要学习程序设计的基本概念和方法,通过本门课程学习,使学生掌握C语言的基本原理,熟练掌握程序设计的基础知识、基本概念;掌握程序设计的思想和编程技巧。

实训是在学生已经具备了使用C语言编写简单的应用程序的能力,为使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,通过提出算法、指定输入输出来设计一个解决方案。并为参加计算机等级考试作准备。

1.2实训的基本内容和要求

参加实训的学生,应当认真完成实训的全部内容。最终提交实训成果来证明其独立完成各种实际任务的能力。从而反映出理解和运用本课程知识的水平和能力。具体如下:

1.代码编写规范,形成良好的编程习惯;

2.程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。

3.提交实训报告电子稿、装订的打印稿。实训报告内容包括以下几个方面:

l  程序的总体设计和算法分析。

l  程序流程图、函数说明

l  源程序代码清单

l  测试数据和测试过程记录

l  遇到的问题及解决方法分析

l  实训小结


第2章 C语言实训课题演示系统的设计

2.1需求分析

功能:包括选择结构、循环结构、顺序结构程序、数组、函数、指针等,要求可以实现统计学生成绩系统、重组四位数系统、求和系统    

任务:

2.2概要设计

2.2.1 演示系统主控模块

主控模块(图示):

 

2.1   主控模块

子模块:    

 

2.2学生成绩模块

 


2.3重组四位数模块

 

2.4求和模块

主控模块代码:

#include <stdio.h>

#include <math.h>

#include "2.h"

#include "12.h"

#include "23.h"

void main()

{

   int x;

   char ch;

   ch='y';

   while (ch=='y'||ch=='Y')

   {

   printf("= = = = = = = = = = = = = = = = = = = = = = = =\n");

   printf("|                                             |\n");

   printf("| = = = = = = = 选 择 菜 单 = = = = = = = = = |\n");

   printf("|                                             |\n");

   printf("| = = = = = =  1 - 习  题  2  = = = = = = = = |\n");

   printf("| = = = = = =  2 - 习  题  12 = = = = = = = = |\n");

   printf("| = = = = = =  3 - 习  题  23 = = = = = = = = |\n");

   printf("| = = = = = =  0 - 退 出 程 序  = = = = = = = |\n");

   printf("|                                             |\n");

   printf("= = = = = = = = = = = = = = = = = = = = = = = =\n");

   printf(" \n");

   printf(" \n");

   printf("请输入你想运行的程序编号(0 ~ 3):\n");

   scanf("%d",&x);

   getchar();

      switch(x)

      {

          case 1:t2();break;

          case 2:t12();break;

            case 3:t23();break;

          case 0:ch='n';break;

          default:printf("菜单选择错误!请重新输入!");

      }

   }

}

2.2.2 演示系统基本算法

运行主程序,首先编译C语言的库函数,在编译各个子系统所在的头文件。

先后顺序:xscj.h 、zxts.h 、czsws.h。

主程序包含所有子程序中要用到的头文件。

2.2.3 各子系统的函数名对照表

2.1   各子系统函数名对照表

第3章 学生成绩系统的设计

3. 1需求分析

功能:设计一个C语言程序,实现查找、统计学生成绩,求每个学生的平均分;每门课程的平均分;找出最高的分数所对应的学生和课程。

各模块的要求:

(1)主函数:

(2)各个学生成绩的平均分:

(3)每门课程的平均分:

(4)找出最高的分数所对应的学生和课程:

3. 2概要设计                                          

3.2.1 学生成绩系统基本算法

用伪代码表示算法

3.2.2 学生成绩系统中的函数名对照表

3.1学生成绩系统中的函数名对照表

3. 3详细设计

学生成绩系统主菜单:

输入菜单号1,则进入学生成绩系统,并输入各学生的成绩。

3-1

输入菜单号1,则进入学生成绩系统,并输入各学生的成绩。

3-2

输入完毕后,就显示各学生和各课程的平均分及最高成绩的分值和所属的学生和课程。

3-2

3. 4学生成绩系统流程图分析

 

    Top赋值为score[0][0]  *row=0   *col=0

 

 


以上是N—S流程图

3. 5调试分析

调试阶段发现了一些小问题,特别是型参和实参的传递上,花费相当长的时间进行调试分析和修改。

第4章 找相同数的系统

4. 1需求分析

1、功能:编写程序验证以下说法:输入一个4位数,该数个、十、百、千位上的数互不相等,由个、十、百、千位上的数组成一个最大数和一个最小数,最大数-最小数,构成一个新的4位数。反复以上运算,使其最终结果为:6174。

要求如下(下面的函数名为建议函数名):

① 用函数 int IsNumberEqual(int number) 检查输入的整数number各数码是否互不相等,全相等返回值为1否则为0;

② 用函数(void ntos (int number, int c[]) )把四位数整数number各位数码分别存入数组c

③ 用函数( void  sort (int a[ ] )对4个元素的数组a排序(升序或降序都可以);

④ 由输入整数分解排序后的数组得到最大值和最小值:

              int getmaxn(int a[ ])  返回值为最大值

        int getminn(int b[ ])  返回值为最小值

各模块的要求:

(1)主函数:

(2)把四位数整数各位数码分别存入数组:

(3)排序得最大值和最小值求差值:

(4)反复以上直到得到6174:

4. 2概要设计

4.2.1找相同数系统基本算法

函数调用

4. 34.2.2 重组四位数系统中的函数名对照表

4.1重组四位数系统中的函数名对照表

4.3详细设计

重组四位数系统主菜单

4-1

输入菜单号2,则进入重组四位数系统,并输入一个四位数。

4-2

输入完毕后,就显示数次计算过程及结果

4. 4重组四位数系统流程图分析

4. 5调试分析

在自己进行编程还是碰到不少问题,但通过同学帮助,这些问题还是迎刃而解了


第5章求和的系统

5. 1需求分析

功能描述:输入一个4位数,该数个、十、百、千位上的数互不相等,由个、十、百、千位上的数组成一个最大数和一个最小数,最大数-最小数,构成一个新的4位数。反复以上运算,使其最终结果为:6174。

5. 2概要设计

5.2.1求和系统的基本算法

用伪代码表示运算

5. 3详细设计

求和系统主菜单

4-1

输入菜单号3,则进入重求和系统,并输入两个数

4-2

输入完毕后,就显示其结果

5. 4求和系统流程图分析

5. 5调试分析

构想时,花了比较多的功夫


第6章 实训小结

做完这个课程设计,我们的自信一下子提高了;尽管对于有些人这种程序会很简单,可对我们C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊!虽然对着电脑做程序,有点累有点热,可是当看到劳动成果时,真是别有一番滋味在心头啊!世上无难事,只怕有心人,的确如此。做完这个程序最大的收获就是感受到了集体的力量,当然个人的智慧也是很重要的哦!
忙碌了一个多星期,在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。
另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此。类问题,最好就是多向同学,老师请教,不要怕难为情。
C语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,还可以开发创造能力、培养沟通能力。这次实习时间虽然仅有一个星期,但确实使我受益非浅。通过实习我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,

参考文献

谭浩强著  《C程序设计》(第三版) 清华大学出版社

夏耘 吉顺如主编  《大学程序设计(C)实践手册》 复旦大学出版社

附录

附录一:学生成绩系统的设计

#include<stdio.h>

int m=0,n=0;/*定义全局变量m,n*/

float average (float score[][6],int i)/* 求每个学生平均分*/

{ int j;

float ave=0,sum=0;;

for (j=1;j<6;++j)

sum+=score[i][j];

ave=sum/5;

return ave;

}

float perave (float score[][6],int j)/*求每门课程平均分*/

{ int i;

float aveper=0,sums=0;

for (i=1;i<11;++i)

sums+=score[i][j];

aveper=sums/10;

return aveper;

}

maxper (float score[][6])/*求最大分数所在学生和课程*/

{ int i,j;

float max;

max=score[1][1];

for (i=1;i<11;++i)

for (j=1;j<6;++j)

if (score[i][j]>max)

{max=score[i][j];

m=i;n=j;

}

return 0;

}

main()

{ float score[11][6];

int i;

for (i=1;i<11;++i)

{printf ("input score of student %d:",i);

scanf("%f%f%f%f%f",&score[i][1],&score[i][2],&score[i][3],&score[i][4],&score[i][5]);

}

for (i=1;i<11;++i)

{printf ("# %d:",i);

printf("%.2f %.2f %.2f %.2f %.2f",score[i][1],score[i][2],score[i][3],score[i][4],score[i][5]);

}

printf("\n");

for (i=1;i<11;++i)

{printf ("ave  student %d:",i);

printf ("%.2f\n",average(score,i));

}

printf("\n");

for (i=1;i<6;++i)

{printf ("average %d lesson:",i);

printf ("%.2f\n",perave(score,i));

}

printf("\n");

maxper(score);

printf ("Max:No:%d Row:%d\n",m,n);

}

附录二:重组四位数的系统

#include <stdio.h>

int IsNumberEqual(int number)

{

       int h,j,k,l;

       h=number/1000;

       j=number/100%10;

       k=number%100/10;

       l=number%10;

       if(h==j&&j==k&&k==l&&l==h)/*判断i、j、k,n四位相同与否*/

              return 1;

       else

              return 0;

}

void ntos(int number, int c[])

{

       c[0]=number/1000;/*得到千位*/

       c[1]=number/100%10;/*得到百位*/

       c[2]=number%100/10;/*得到十位*/

       c[3]=number%10;/*得到个位*/

}

void sort (int c[])

{

       int m,n,s;

       for(n=0;n<4;n++)

              for(m=0;m<4-n;m++)

              if(c[m]<c[m+1])

              {

                     s=c[m];

                     c[m]=c[m+1];

                     c[m+1]=s;

              }

}

int getmaxn(int c[])

{

       int a,b,d,e;

       a=c[0];

       b=c[1];

       d=c[2];

       e=c[3];

       return (a*1000+b*100+d*10+e);

}

int getminn(int c[])

{

       int a,b,d,e;

       a=c[0];

       b=c[1];

       d=c[2];

       e=c[3];

       return (a+b*10+d*100+e*1000);

}

void main()

{

       int number,i,c[4],max,min,s;

       printf("请输入一个个,十,百,千位数字互不相等的4位数:\n");

       scanf("%d",&number);

p:i=IsNumberEqual(number);/*检查输入的整数number各数码是否互不相等*/

       if(i!=1)

       {

              ntos(number,c);

              sort(c);

              max=getmaxn(c);

              min=getminn(c);

              s=max-min;

              printf("max=%d,min=%d,s=%d\n",max,min,s);

              if(s!=6174)

       {

              number=s;

              goto p;

       }

       else

              printf("%d\n",s);

       }

       else

              printf("该数字个,十,百,千位数字相等\n",min);

      

}

附录三:求和的系统

#include<stdio.h>

#include<math.h>

double fun(int d,int n)

{

 int i;

 double s=0,sum=0;

 for(i=0;i<n;i++)

 {

 s=s+d*pow(10,i);

 sum+=s;

 }

 return sum;

}

void main()

{

 int d,n;

 double s;

 printf("请输入数字和个数?");

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

    s=fun(d,n);

 printf("结果是%.0f\n",s);

}

更多相关推荐:
实训报告范文

实训报告仪模拟对话企业介绍学年学期专业班级姓名学号指导老师1实训项目商务面试进出口公司市场营销商务礼目录1实训一2实训二3实训三4实训四5实训五6实训六模拟面试与简历制作公司结构与企业文化实践建立公司模拟业务流...

实训报告范本

秦皇岛职业技术学院有关艾欣超市的实训报告实训项目:连锁超市商品摆放与周边环境实训时间:20xx年x月x日8:00-12:00.指导教师:王蕾实训人员:张艳林一、实训目的1.这次上实训的主要目的是将《连锁企业商品…

实训报告模板

荆楚理工学院课程实训成绩年级20xx级专业电气工程及其自动化课程低压电气控制技术班级11电工2班姓名志学号20xx401020xx3指导教师评语在为期三周的实训中该生严格遵守各项实训制度未有无故缺勤迟到早退现象...

实训报告

《阿里巴巴国际站操作平台》实训报告姓名舒*班级2011级阿里2班学号11*****01经济管理学院电子商务专业20xx年5月一、实训目的与要求阿里巴巴电子商务国际平台是阿里巴巴集团旗下的B2B贸易平台,主要有两…

实习实训报告

20##届本科毕业实习报告专业班级:学号:学生姓名:指导教师:实习期间:实习地点:二○##年三月二十五日信息工程系校外实习报告要求1.整个毕业实习报告包括封面、毕业实习考核内容及评分标准、正文、毕业实习考勤表、…

实训报告格式

汽车诊断与检测实训一、实训目的(一)掌握电控发动机的结构和工作原理。(二)掌握汽油喷射系统的构造及原理。(三)了解汽车空调系统特点。(四)掌握汽车空调的组成、原理、安装、作用和控制面板的用途及使用。(五)了解车…

实训报告

为期一周的实训已经画上了句号。虽然时间不长,但是这次的实训中我学到了很多,同时也让我意识到我要学的更多。通过整个实训我更加明确了自己将来的工作方向,以及自己以后学习的方向。第一天我们参观的是上海电气,上海电机学…

实训报告

实验题目双色球彩票选号器MySSQ电子0903班覃济灿学号20xx4737一实验目的1熟悉linux环境的使用2熟练linux下嵌入式Qte环境搭建3熟悉嵌入式qtopia桌面应用软件开发的一般步骤4有效结合实...

实训报告

西南财经大学天府学院20xx届企业经营实战实训报告公司名称永安堂医药有限公司指导教师辛亦维实训时间20xx年09月05日12日组长吴非联系电话1820xx61443企业经营实战课程组公司宣言以全球营销网络为依托...

实训报告

实训一互联网是无时空的百科全书一实训目的熟悉互联网无时空性开放性资源性和自助性的特征熟悉常用的搜索引擎和部分企业网站二实训内容1访问若干搜索引擎比如百度搜狗雅虎谷歌一搜等在各个搜索引擎中搜索什么是网络营销什么是...

AE实训报告

目录一实训目的2二实训内容2三制作过程31片头制作311CC风暴312制作影视特效4121合成素材制作4122主题元素合成4123添加文字与装饰413图片切换514粒子运动72影片内容的修改821雪花飘飞效果8...

物流管理专业实训报告

管理科学系实习报告学生姓名:所在专业:管理科学系物流管理专业所在班级:指导老师:职称/职务讲师二○年6月23日物流实习报告前言有一种职业,你没有经历过,就不知道其中的的专业;有一种职业,你没有体验过,你不知道其…

实训报告(43篇)