江苏科技大学 c++实验报告

合集下载

江苏科技大学c++实验报告

江苏科技大学c++实验报告

江科技大学课程实践报告设计题目:计算机程序设计实验(C++)设计时间: 2016年10月3日至2016年10月4日学院:计算机科学与工程学院专业班级:通信工程 1522107041学生:周祯楠学号:****************:***一、第三题(一)题目:3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。

具体要求如下:(1)私有数据成员。

○1float array[20]:一维整型数组。

○2int n:数组中元素的个数。

(2)公有成员函数○1MOVE(float b[],int m):构造函数,初始化成员数据。

○2void average():输出平均值,并将数组中的元素按要求重新放置。

○3void print():输出一维数组。

(3)在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。

(二)源程序:#include<iostream.h>class MOVE{float array[20];int n;public:MOVE(float b[],int m);void average();void print();};MOVE::MOVE(float b[],int m){int i;n=m;for(i=0;i<m;i++)array[i]=b[i];}void MOVE::average(){int i,x;float a = 0;for(i=0;i<n;i++)a+=array[i];a/=n;cout<<"平均值为:"<<a<<endl; //○1float f[20];for(i=0,x=0;i<n;i++)if(array[i]<a){f[x] = array[i];x++;}for(i=0;i<n;i++)if(array[i]>a){f[x] = array[i];x++;} //○2 for(i=0;i<n;i++)array[i] = f[i]; //○3}void MOVE::print(){int i;for(i=0;i<n;i++){cout<<array[i]<<'\t';if((i+1)%5==0) cout<<endl; //○4 }cout<<endl;}void main(){float b[]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3};int m = 9;MOVE ff(b,m);ff.average();ff.print();}(三)运行结果:(四)基本分析:1.就结构而言,定义类以及成员函数按照题目要求写即可,注意类作用域符::不可缺失。

江苏科技大学电信学院C++实践报告

江苏科技大学电信学院C++实践报告

江苏科技大学课程实践报告设计题目: 程序设计(VC++)实践设计时间: 2010-10-10 至2010-11-10学院: 电子信息学院专业班级: 自动化学生姓名: 江中炜学号0940301210 指导老师: 邹晓华2010年09月实践任务一一、程序设计基本题试建立一个类PP,求出下列多项式的前n项的值。

1 n=0P n(x) = x n=1((2n-1)xP n-1(x)-(n-1)P n-2 (x)) n>1 具体要求如下:(1)私有数据成员●int n:前若干项的项数。

●double x:存放x的值。

●double *p:根据n的大小动态申请存放P n(x)前n项的数组空间。

(2)共有成员函数●PP(int num,double x1):构造函数,初始化数据成员n和x,使p指向动态申请的数据空间。

●~PP( ):析构函数,释放p指向的动态内存空间。

●double fun(int n1,double x):递归函数,用于求多项式P n(x)的第n1项。

注意:将递归公式中的n用作函数参数。

本函数供process函数调用。

●void process( ):完成求前n项的工作,并将它们存放发到p指向的动态数组中。

●void show( ):输出n和x,并将前n项以每行4个数的形式输出到屏幕上。

(3)在主函数中完成对该类的测试。

先输入num和x1,并定义一个PP 类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,并输出多项式前num项的值。

二、系统设计1、概要设计通过类PP的成员函数process( )来求多项式Pn(x)的前n项的值,其中用fun( )函数来求第n项的值,根据n的大小来给数据成员p分配动态空间,程序结束前释放为items分配的动态空间。

2、详细设计①类的定义如下:class PP{int n;double x;double *p;public:PP(int num,double x1){}void process( ){}void show( ){}};②类的主要成员函数的设计double fun(int n1,double x) //设计函数来求P n(x){if(n1==0) return 1;else if(n1==1)return x;return ((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1;}三、系统测试先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items 的成员n和x,调用items的成员函数,并输出多项式前num项的值。

江苏科技大学苏州理工学院(镇江校区)VC++程序设计

江苏科技大学苏州理工学院(镇江校区)VC++程序设计

计算机程序VC++课程设计报告班级学号姓名一.课程设计教学和任务《计算机程序设计(VC++)课程设计》是实践性教学环节,是学生必修的一门计算机实践课程。

本课程设计的目的是通过综合性程序设计训练,使学生进一步巩固对计算机程序设计语言(VC++)基本语法、基本算法的理解,加深对面向对象程序设计的理解与应用,并使学生养成模块化、结构化程序设计的良好风格,以及一定的程序组织能力,掌握基本程序设计的方法和技巧,为学习后续课程和实际编程打下良好的基础。

本课程设计的重点要求学生掌握基本程序设计理念和方法,培养学生基本程序设计的应用和开发能力。

二.课程设计要求和内容1 .本课程设计要求(1)学生必须完成本指导书中所有的小综合设计题(2)每个学生必须完成课程设计报告一篇2.课程设计的内容(1)设计一个程序实现如下的选择菜单:用switch语句。

要保证选择的语句只能是0~5的数字,否则重新输入。

#include<iostream.h>void main(){int a;cin>>a;switch(a){case 0:cout<<“退出”<<endl;case 1:cout<<“星期一馒头”<<endl;case 2:cout<<“星期二包子”<<endl;case 3:cout<<“星期三面条”<<en dl;case 4:cout<<“星期四汉堡”<<endl;case 5:cout<<“星期五油条”<<endl;deflaut:cout<<“输入有误重新输入”;}}(2)设计一个循环结构的程序,循环体分别是单个C++语句,循环体是空语句,循环体是复合语句。

单个C++语句:#include<iostream.h>void main(){int i=1,s=1;while(++i<=100)s+=i;cout<<“s=”<<s<<…\n‟;}空语句:#include<iostream.h>void main(){int x,y;for(x=1,y=5;y<++x*x++;y++);cout<<“y=”<<y<<…\n‟;}复合语句:#include<iostreaam.h>void main(){int i,q,n,sum;i=1;q=2;n=sum=0;do{sum=sum+i;++n;i=i*q;}while(sum<100);n--;cout<<n<<endl;}(3)设计一个程序实现练习同名全局变量和局部变量的特点,如能同名覆盖等;局部静态变量(能说明局部静态变量暂时不释放的特点)局部变量:#include<iostream.h>void fn();void main(){fn();fn();fn();}void fn(){static n=10;cout<<n<<endl;n++;}全局变量同名覆盖等:#include<iostream.h>int a=10;void main(){ int a=20,b=30;{ int a=0,b=0;for(int i=1;i<4;i++){a=a+b;b=::a+b;}cout<<a<<''<<b<<endl;}cout<<a<<''<<b<<endl;}(4)设计一个函数,实参与形参结合分别用值传递,引用传递,指针传递(也可以是数组)。

静水压强实验报告江科大

静水压强实验报告江科大

静水压强实验报告江科大
一、实验原理
1根据流体平衡规律,在重力场中静止液体的压强分布可表示为:Cgpz ,即在连通的同种静止液体中各点对于同一基准面的测压管水
头相等。

2测压管的一端接大气,这样就把测管水头揭示出来了。

再利用液体的平衡规律,可知连通的静止液体区域中任何一点的压强,包括测点处的压强。

这就是测压管量测静水压的原理。

3.压强水头gp和位置水头z之间的互相转换,决定了液柱高和压差的对应关系:hgp .在压差相同的情况下,不同的液体对应不同的液柱高。

用这个原理可以测定液体的重度。

二、实验目的和要求
1.通过实验加深对水静力学基本方程物理意义的理解。

加深理解位置水头、压强水头及测管水头的概念。

2.通过实验加深对水静力学基本方程物理意义的理解。

加深理解位置水头、压强水头及测管水头的概念。

江科大c++期末实验报告(精品文档)_共3页

江科大c++期末实验报告(精品文档)_共3页
k=num%10; num/=10; sum+=k; a[i]=k+48; i++; } cout<<c<<"是"<<i<<"位数,其各位数字为"; for(i--;i;i--) cout<<a[i]<<"、"; cout<<a[0]<<","; return sum;
} void main() { int sum,num,n;char a[100]; cin>>num; sum=int_to_string(num,a,n); cout<<"各位数字之和为"<<sum<<endl;
cout<<b<<'\t'; } cout<<endl;
}
程序运行结果为: 3、将杨辉三角的前 N 行保存到二维数组的下半三角中。杨辉三角由正整数构成,每行除 最左侧与最右侧的数为 1 外,其他数等于其左上方与正上方两个数的和,杨辉三角的前 5 行如下: 1 11 121 1331 14641 #include<iostream.h> void main(){
}
运行结果: 2、设计处理二维数组的程序,要求如下。 (1)定义函数 void input(int a[][4],int n),用于对二维数组进行初始化。 (2)定义函数 void output(int (*a)[4],int n),用于输出二维数组中的元素。 (3)定义函数 int search_max(int a[][4],int n,int &cool,int &vol),用于查找二维数组 a 中的最 大值元素,并记录其行下标和列下标,其中最大值元素的值通过函数返回值带回主函数, 对应的下标分别存储到 col 和 vol 中。 (4)在主函数中进行测试。 #include<iostream.h> void input(int a[][4],int n){

江科大c期末实验报告

江科大c期末实验报告

江科大c期末实验报告制作者:徐珩1240202321第一章:1、从键盘输入10个整数,求它们的平均值。

#includevoid main(){cout<<"输入10个整数:"<<endl;< p="">int j=1,k;float s,n;for(s=0;j<=10;j++){cin>>k;s=s+k;}n=s/10;cout<}运行结果:2、计算s=1+2+3+…+I,累加到s大于1000,并输出s和i的值。

#includevoid main(){int s,i=0;for(s=0;s<=1000;i++)s=s+i;cout<<s<<'\t'<<i<<endl;< p="">}运行结果:3、找到2到200间的素数,按5个一行输出。

#includevoid main(){int s,i,k=0;cout<<"2到200间的素数:"<<endl;< p="">for(i=2;i<=200;i++){for (s=2;s<=i/2;s++){if(i%s==0) break;}if(s<=i/2) continue;else{cout<<i<<'\t';< p="">k++;if(k%5==0) cout<<endl;< p="">}}}运行结果:第四章:1、设计一个程序,通过指针变量求键盘输入的一串字符中单词的个数,如输入“I am a boy.”则输出其中包含的单词个数4。

#includevoid main(){char p[100];cin.getline(p,100);int num=0,n=0, flag=0;for(;p[n];n++){if(p[n]!=' ') flag=1;if(flag){if(p[n+1]==' '||p[n+1]=='\0') num++;}}cout<<p<<"包含的单词个数是:"<<num<<endl;< p="">}程序运行结果是:2、找出一维数组中值最大的元素及其下标,注意最大元素可能不止一个。

C程序设计实验报告

C程序设计实验报告

实验报告书写要求实验报告原则上要修业新手写,要求书写工整。

若因课程特色需打印的,标题采纳四号黑体,正文采纳小四号宋体,单倍行距。

纸张一律采纳A4的纸张。

实验报告书写说明实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与解析这四项内容为必要项。

教师可依据学科特色和实验详尽要求增添项目。

填写注意事项(1)认真观察,及时、正确、照实记录。

(2)正确说明,层次清楚。

(3)尽量采纳专用术语来说明事物。

(4)外文、符号、公式要正确,应使用一致规定的名词和符号。

(5)应独立达成实验报告的书写,禁止剽窃、复印,一经发现,以零分论处。

实验报告批阅说明实验报告的批阅要及时、认真、认真,一律用红色笔批阅。

实验报告的批阅成绩采纳五级记分制或百分制,按《金陵科技学院课堂教课实行细则》中作业批阅成绩评定要求履行。

实验报告装订要求实验批阅达成后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序摆列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:C#基础编程实验学时:6同组学生姓名:实验地点:1318实验日期: 10月 5日-10 月 19日实验成绩:批阅教师:批阅时间:实验 1 C# 基础编程一、实验目的1、熟习Visual Studio .NET开发环境。

2、掌握C#应用程序的基本操作过程。

3、掌握C#的数据种类,运算符以及表达式的使用。

4、掌握分支和循环语句的使用方法。

5、掌握一维数组,二维数组及数组型数组的使用。

二、实验要求(1)编写程序要规范、正确,上机调试过程和结果要有记录(2)做完实验后给出本实验的实验报告。

三、实验设备、环境安装有 Visual Studio .NET 软件。

四、实验步骤1、解析题意。

2、依据题目要求,新建项目。

3、编写并输入相关的程序代码。

5、运转与调试项目。

6、保存项目。

五、实验内容1、编写一个简单的控制台应用程序,打印一行文字(如你的姓名)。

using System;using ;using ;namespace{class Program{static void Main(string[] args){}}}2、编写一个简单的Windows 应用程序,在窗体Load 事件中书写代码,标签中显示你的姓名。

江苏科技大学c++实验报告

江苏科技大学c++实验报告

江苏科技大学课程实践报告设计题目:计算机程序设计实验(C++)设计时间: 2016年10月3日至2016年10月4日学院:计算机科学与工程学院专业班级:通信工程 41学生姓名:周祯楠学号:指导老师:於跃成一、第三题(一)题目:3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。

具体要求如下:(1)私有数据成员。

○1float array[20]:一维整型数组。

○2int n:数组中元素的个数。

(2)公有成员函数○1MOVE(float b[],int m):构造函数,初始化成员数据。

○2void average():输出平均值,并将数组中的元素按要求重新放置。

○3void print():输出一维数组。

(3)在主程序中用数据{,,3,,,,,,}对该类进行测试。

(二)源程序:#include<>class MOVE{float array[20];int n;public:MOVE(float b[],int m);void average();void print();};MOVE::MOVE(float b[],int m){int i;n=m;for(i=0;i<m;i++)array[i]=b[i];}void MOVE::average(){int i,x;float a = 0;for(i=0;i<n;i++)a+=array[i];a/=n;cout<<"平均值为:"<<a<<endl;要注意:○1this指针指向本身对象的数据成员,避免因数据名相同而造成的混乱。

按题目要求,这一题只能用this指针加以区分。

2.相关算法:○2求阶乘○3求m^n。

i < n即可,因为i = 1时,m=m*m,依此类推,i=n-1 时,算的就是m^n○4这个公式看起来比较繁琐,对应着公式调用相关函数写,不要弄错四、第18题(一)题目:18.试建立一个类VAR,用于求n(n<=100)个数的均方差。

江苏科技大学c++课程解析实训答案

江苏科技大学c++课程解析实训答案

《解析与实训》习题及实验参考解答目录第一章 (1)第二章 (4)第三章 (9)第四章 (20)第五章 (28)第六章 (32)第七章 (43)第八章 (67)第九章 (68)第十章 (78)第一章一、选择题1. A2.D3.A4.B5.A6.D7.D8.C9.D 10.C11.D 12.C 13.B 14.A 15.C 16.B 17.A 18.C 19.B 20.D21.A 22.D 23.B 24.B 25.B 26.A 27.C 28.B 29.D 30.C 31.A二、填空题1. #include <iostream.h> (或# include "iostream.h")2. 编译连接3. .cpp .obj .exe4. 十5. setw() iomanip.h6. a b c7. a b (注:输出第二项是空格)8. 109. 110. 字符11. 八十六12. 4.013. ; (分号)14. 105 7015. 6016. 817. 718. 1519. int(x) 或(int)x三、编程题1.#include<iostream.h>#define PI 3.1415926void main(){float r,h,area;cout<<"输入圆柱体的半径和高(r,h):"<<endl;cin>>r>>h;area=PI*r*r*h;cout<<" 圆柱体的体积为:"<<area<<endl;}2.#include<iostream.h>void main(){int x,a,b,c ,m,n;cout<<"输入一个三位整数x:"<<endl;cin>>x;a=x/100;b=x/10%10;c=x%10;m=c*100+b*10+a;n=m-x;cout<<" 反序组成的新3位整数为:"<<m<<endl;cout<<" 新3位整数减去原3位整数的值为:"<<n<<endl; }四、实验1.#include<iostream.h>void main(){cout << "中华人民共和国"<<endl ;}2.# include <iostream.h>void main (void){ int a,b,c;cin>>a>>b;c= a+b ;cout<<"c="<<c<<endl;}3.结果:1 0 1 0 1(1)结果为:10 16 16 8 10(2)换成dec结果为:a 10 10 8 a换成oec结果为:12 20 20 10 12 4.# include <iostream.h># include <math.h>void main (void){ int a,b,c,s,area;cout<<" 输入三角形三边长a,b,c:"<<endl; cin>>a>>b>>c;s= (a+b+c)/2 ;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<"三角形面积为:"<<area<<endl;}第二章一、选择题1.B2.A3.A4.C5.B6.C7.B8.B9.B 10.D 11.B 12.D 13.D 14.D 15.A 16.D 17.C 18.C 19.A 20.C 21.B 22.A 23.D 24.A 25.B 26.B 27.D 28.C 29.B 30.D 31.B 32.A 33.C 34.C二、填空题1. 选择结构循环结构2. if3. break continue4. 循环语句switch语句5. 循环语句6. 1 1 结束循环体的语句7. 60,308. d=209. 110. 1011. y=0 y=5 y=30 error12. 11 713. 2 , 314. 2 , 315. #16. s=6,k=517. 5 7 111318. 0246819.* * * * * ** ** ** * * * * *20. (1) Year / 4 !=0(2) Year / 100 !=0(3) Year / 400 !=021. (1)a<b(2) t=a;a=d;d=t;(3) b<d22. (1) c+=5 (2) c=c-2123. (1) ch>='a'&&ch<='z'|| ch>='A'&&ch<='Z'(2) ch-=32(3) ch+=3224. (1) x>2&&x<=10(2)x>-1(3) y=-125. (1)int i=200(2) i<=300(3) i/100+i/10%10+i%10==12&&(i/100)*(i/10%10)*(i%10)==42 26. (1) i<=100(2) t=s/i(3) s=-s27. (1) n (或n!=0)(2) n<0(3) n/=1028. (1) n=k*k(2) b=n/10%10(3) a==b||b==c||c==a29. (1) i<=30(2) a=a*230. (1) m=n(2) m(3) k>s31. (1) x1(2) x1=x232. (1)d<=4(2) a+i*d三、编程题1.#include<iostream.h>void main(){ int x,y,t,m,n;cout<<"输入两个整数(x,y):"<<endl;cin>>x>>y;if(x>y) {t=x;x=y;y=t;}for(int i=x;i>0;i--)if(x%i==0&&y%i==0){m=i;break;}for( i=y;;i++)if(i%x==0&&i%y==0){n=i;break;}cout<<x<<"和"<<y<<"的最大公约数是:"<<m<<endl;cout<<x<<"和"<<y<<"的最小公倍数是:"<<n<<endl;}2.# include <iostream.h>void main(void){ int s;char score;do{cout <<"请输入百分制分数(0 - 100):";cin >> s;}while(s<0||s>100);switch (s/10) {case 10 :case 9 : score='A';break;case 8 : score='B';break;case 7 : score='C';break;case 6 : score='D';break;default : score='E';break;}cout<<"百分制分数为:"<<s<<'\t'<<"五分制分数为:"<<score<<endl; }3.#include<iostream.h>#include<math.h>void main(void){ float a,b,c;cout<<"输入三角形的三边:";cin>>a>>b>>c;if(a+b>c&&b+c>a&&c+a>b){ if(a==b&&b==c)cout<<"三角形是等边三角形。

c语言实验报告完整版

c语言实验报告完整版

c语言实验报告HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】丽水学院计算机实验报告丽水学院计算机实验报告一、实验目的1.熟悉Visual C++和C-Free等集成环境,掌握运行一个C程序的基本步骤,包括编辑、编译、连接和运行。

2.掌握算术表达式和赋值表达式的使用。

3.掌握基本输入、输出函数的使用。

4.能够编程实现简单的数据处理。

二、实验环境硬件:Pentium以上的计算机。

软件:Windows XP操作系统、Visual C++和C-Free等集成环境。

三、实验内容和结果1.编程题1在屏幕上显示一个短句“What is a computer?”思考:(1)如何在屏幕上显示你自己的学号,姓名和班级?(2)如何在屏幕上显示数字、英文字母和汉字等信息?例如:“你在机房吗?”编程题1源程序:#include<>void main(){printf("What is a computer?\n");}程序运行结果:What is a computer?思考题(1):#include<>void main(){printf(",小王,班级\n");}思考题(2):#include<>void main(){printf("英文字母abcdefgABCDEFG\n");printf("汉字:哇哈哈啊哈和\n");}2.编程题2在屏幕上显示下列图形。

* * * ** * ** **思考:如何在屏幕上显示下列图形?AA AA编程题2源程序:#include<>void main(){int i,j;for(j=1;j<5;j++){for(i=5;i>j;i--)printf("*"); printf("\n");}}程序运行结果:* * * ** * ** **思考题:#include<>void main(){printf(" A \n");printf("A A\n");printf(" A \n");}3.编程题3已知小明的数学,英语和计算机课程的成绩分别是87分,80分和95分,求小明3门课程的平均分。

江苏科技大学操作系统实验

江苏科技大学操作系统实验

操作系统实验实验一 进程调度一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。

因而引起进程调度。

本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。

二、 实验要求1. 设计进程调度算法,进程数不定2. 包含几种调度算法,并加以实现3. 输出进程的调度过程——进程的状态、链表等。

三、 参考例1.题目——优先权法、轮转法简化假设1) 进程为计算型的(无I/O )2) 进程状态:ready 、running 、finish3) 进程需要的CPU 时间以时间片为单位确定2.算法描述1) 优先权法——动态优先权当前运行进程用完时间片后,其优先权减去一个常数。

2) 轮转法四、 实验流程图 开始 键盘输入进程数n ,和调度方法的选择 优先权法? 轮转法产生n 个进程,对每个进程产生一个PCB ,并用随机数产生进程的优先权及进程所需的CPU 时间按优先权大小,把n 个进程拉成一个就绪队列撤销进程就绪队列为空?结束 N YY注意:1.产生的各种随机数的取值范围加以限制,如所需的CPU 时间限制在1~20之间。

2.进程数n 不要太大通常取4~8个3.使用动态数据结构4.独立编程5.至少三种调度算法6.若有可能请在图形方式下,将PCB 的调度用图形成动画显示。

五.实验过程:(1)输入:进程流文件(1.txt ),其中存储的是一系列要执行的进程, 每个作业包括四个数据项: 进程名 进程状态(1就绪 2等待 3运行) 所需时间 优先数(0级最高)进程0 1 50 2进程1 2 10 4进程2 1 15 0进程3 3 28 5进程4 2 19 1进程5 3 8 7输出: 进程执行流等待时间,平均等待时间本程序包括:FIFO 算法,优先数调度算法,时间片轮转调度算法产生n需的时间片数,已占用CPU 的时间片数置为0按进程产生的先后次序拉成就绪队列链=0? 撤销该进程就绪队列为空吗? =轮转时间片数?NY YY 结束 N(2)程序代码package进程调度;import java.util.*;class PCB//创建进程块{int Id;//进程编号int UseTime;//服务时间int NeedTime;//需要时间int Perior;//优先级String Status;//状态PCB(){Id++;UseTime=0;NeedTime=(int)Math.round(Math.random()*6)+1;//随机产生需要时间Perior=(int)Math.round(Math.random()*5)+1;//随即产生优先级Status="Ready";//初始状态为就绪}}class Found//定义系统处理方法类{ArrayList <PCB> sequnce;//创建就绪队列PCB pcb[]=new PCB[5];int StartTime=0;int SystemTime=(int)(Math.random()*3)+1;//随即产生系统时间 Found(){sequnce=new ArrayList <PCB>();for(int i=0;i<5;i++){pcb[i]=new PCB();pcb[i].Id=i+1;sequnce.add(pcb[i]);}}void FCFS()//先来先服务算法{PCB Running=null;while(sequnce.size()>0)//就绪队列不为空{Running=sequnce.remove(0);eTime=Running.NeedTime;Running.NeedTime=0;Running.Perior=0;System.out.println("当前系统时间:"+SystemTime);SystemTime+=eTime;ShowMessages(Running);}}void RR()//时间片轮换算法{PCB Running=null;int Time=SystemTime;while(sequnce.size()>0){System.out.println("当前系统时间:"+SystemTime); Running=sequnce.remove(0);if(Running.NeedTime<=Time){eTime=Running.NeedTime;Running.NeedTime=0;Running.Perior=0;Running.Status="Finish";SystemTime+=eTime;else{eTime+=Time;Running.NeedTime-=Time;Running.Perior--;Running.Status="Ready";sequnce.add(Running);SystemTime+=Time;}ShowMessages(Running);}}void ShowMessages(PCB p)//输出信息{System.out.println("当前运行进程:"+p.Id+" "+"服务时间:"+eTime+" "+"需要时间:"+p.NeedTime+" "+"优先级:"+p.Perior+" "+"状态:"+p.Status);if(sequnce.size()>0){System.out.println("当前就绪进程:");for(PCB p1:sequnce)System.out.println("进程编号:"+p1.Id+" "+"服务时间:"+eTime+" "+"需要时间:"+p1.NeedTime+" "+"优先级:"+p1.Perior+" "+"状态:"+p1.Status);System.out.println("--------------------------------------------------------------------------");}}else{System.out.println("当前系统中已经没有就绪进程!"); } System.out.println('\n');}}class Menu//主界面菜单{Scanner sc=new Scanner(System.in); int print() { System.out.println("************************************ ********");System.out.println(" 进调度算法演示");System.out.println("**************************************** ****");System.out.println(" 1.先来先服务(FCFS)算法");System.out.println(" 2.时间片轮换(RR)算法");System.out.println(" 3.退出该程序");System.out.print("请选择所要采用的算法:");int flag=sc.nextInt();return flag;}void select(){int flag=print(); switch (flag){case 1:Found Process1=new Found();Process1.FCFS(); print();case 2:Found Process2=new Found();Process2.RR(); print();case 3:System.exit(0);default:break;}}}package进程调度;public class ProcessControl { public static void main(String args[]){Menu Tencent=new Menu();Tencent.select();}}(3)运行结果:实验二银行家算法一、实验目的死锁会引起计算机工作僵死,因此操作系统中必须防止。

江科大嵌入式实验报告

江科大嵌入式实验报告

一、实验目的1. 熟悉嵌入式系统开发的基本流程和常用工具;2. 掌握C语言编程在嵌入式系统中的应用;3. 理解嵌入式系统硬件资源管理和配置方法;4. 提高实际动手能力和团队协作能力。

二、实验环境1. 操作系统:Windows 102. 开发环境:Keil uVision 53. 嵌入式系统:基于ARM Cortex-M3内核的STM32F103系列单片机4. 电路板:STM32F103最小系统板三、实验内容1. 熟悉Keil uVision 5开发环境2. 创建工程,配置工程参数3. 编写C语言程序,实现LED闪烁功能4. 编译、下载程序到STM32F103单片机5. 验证LED闪烁功能是否正常四、实验步骤1. 熟悉Keil uVision 5开发环境(1)启动Keil uVision 5,新建一个项目,命名为“LED_Blink”。

(2)在项目窗口中,添加STM32F103最小系统板的头文件和库文件。

(3)在项目窗口中,添加主函数文件“main.c”。

2. 创建工程,配置工程参数(1)在主函数文件“main.c”中,编写以下代码:```c#include "stm32f10x.h"void Delay(volatile uint32_t nCount){for (; nCount != 0; nCount--);}int main(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);while (1){GPIO_SetBits(GPIOA, GPIO_Pin_1);Delay(1000000);GPIO_ResetBits(GPIOA, GPIO_Pin_1);Delay(1000000);}}```(2)编译程序,确保没有错误。

C语言实验

C语言实验

C程序设计实验报告目录实验1 C语言的编程环境 (3)实验2 数据类型、运算符和表达式 (6)实验3 控制语句 (8)实验4 函数 (17)实验5 数组 (27)实验6 指针 (40)大学实验报告学生姓名:学号:专业班级:实验1 C语言的编程环境一.实验目的1.初步了解C程序的编译、连接和运行的过程。

2.掌握和理解C程序的结构。

二.实验内容1.使用TC2.运行一个简单的C程序三.实验环境PC微机;DOS操作系统或Windows 操作系统;Turbo C 程序集成环境。

四.实验步骤1.启动Turbo C如果用户计算机系统已经安装了Turbo C编译系统,则在DOS命令状态下键入命令tc。

进入Turbo C集成环境后,首先在屏幕上显示Turbo C主菜单窗口。

在该窗口,有8个菜单条目。

每一个菜单的意义如下:File 处理文件(包括装入、存盘、选择、建立、换名写盘),目录操作(包括列表、改变工作目录),退出系统及调用DOS 。

Edit 建立、编辑源文件。

Run 控制运行程序。

如果程序已经编译连接好,且Debug/Source Debugging以及Option/Compiler/Code generation/OBJ Debug Information开关置为On,则可以用此菜单初始化调试阶段。

Compile 编译并生成目标程序与可执行文件。

Project 允许说明程序中包含哪些文件的管理条目。

Options 可以选择集成环境任选项(如存储模式、编译时的任选项、诊断及连接任选项)及定义宏;也可以记录Include Output及Library文件目录,保存编译任选项和从配置文件加载任选。

Debug 检查、改变变量的值,查找函数,程序运行时查看调用栈。

选择程序编译时是否在执行行代码中插入调试信息。

Break/Watch 增加、删除、编辑监视表达式,及设置、清除、执行至断点。

特别要指出的是,除了Edit项外,每一个菜单又有对应的子菜单。

江苏科技大学编译原理实验报告

江苏科技大学编译原理实验报告

实验一词法分析设计一、实验目的通过本实验的编程实践,使学生了解词法分析的任务,掌握词法分析程序设计的原理和构造方法,使学生对编译的基本概念、原理和方法有完整的和清楚的理解,并能正确地、熟练地运用。

二、实验内容用VC++/VB/JAV A语言实现对C语言子集的源程序进行词法分析。

通过输入源程序从左到右对字符串进行扫描和分解,依次输出各个单词的内部编码及单词符号自身值;若遇到错误则显示“Error”,然后跳过错误部分继续显示;同时进行标识符登记符号表的管理。

以下是实现词法分析设计的主要工作:(1)从源程序文件中读入字符。

(2)统计行数和列数用于错误单词的定位。

(3)删除空格类字符,包括回车、制表符空格。

(4)按拼写单词,并用(内码,属性)二元式表示。

(属性值——token的机内表示)(5)如果发现错误则报告出错(6)根据需要是否填写标识符表供以后各阶段使用。

单词的基本分类:关键字:由程序语言定义的具有固定意义的标识符。

也称为保留字例如if、for、while、printf ;单词种别码为1。

◆标识符:用以表示各种名字,如变量名、数组名、函数名;◆常数:任何数值常数。

如125, 1,0.5,3.1416;◆运算符:+、-、*、/;◆关系运算符:<、<=、= 、>、>=、<>;◆分界符:;、,、(、)、[、];三、词法分析实验设计思想及算法1、主程序设计考虑:◆程序的说明部分为各种表格和变量安排空间。

在具体实现时,将各类单词设计成结构和长度均相同的形式,较短的关键字后面补空。

k数组------关键字表,每个数组元素存放一个关键字(事先构造好关键字表)。

s 数组------存放分界符表(可事先构造好分界符表)。

为了简单起见,分界符、算术运算符和关系运算符都放在s表中(编程时,应建立算术运算符表和关系运算符表,并且各有类号),合并成一类。

id 和ci 数组分别存放标识符和常数。

江苏科技大学C++试验设计报告汇编

江苏科技大学C++试验设计报告汇编

实验报告第一题:从键盘上输入一个整数n的值,按下时求出y的值,并输出n和y的值Y=1!+2!+3!+······+n!源程序清单:#include <iostream.h>void main (){int t=1,n,y=0;cout<<"n=?"<<'\n';cin>>n;cout<<"n="<<n<<'\n';for(int i=1;i<=n;i++){t=t*i;y=y+t;}cout<<"y="<<y<<endl;}运行结果:第二题:设计一个程序,求出100~10000之间的所有素数。

源程序清单:#include<iostream.h>#include<iomanip.h>void main(){int i,n,count=0;for(n=101;n<1000;n++){for(i=2;i<=n-1;i++)if(n%i==0) break;if(i>n-1){cout<<setw(4)<<n;count++;if(count%10==0) cout<<endl;}}cout<<endl;}运行结果:第三题:设计一个程序,输入一个任意整数(1~4位),求出各位数字之和,并统计出位数源程序清单:#include<iostream.h>void main(){int n,k,s=0,t=0;cout<<"n=?"<<endl;cin>>n;while(n){k=n%10;n=n/10;s=s+k;t=t+1;}cout<<s<<'\t'<<t<<endl;}运行结果:第四题:设计一个程序,计算组合数:C(m,r)=m!/(r!*(m-r)!),其中m、r为正整数,且m>r。

利用超声C扫描成像技术对缺陷进行定量

利用超声C扫描成像技术对缺陷进行定量

实验报告利用超声C扫描成像技术对缺陷进行定量报告人:彭加福学号: 0640502112指导老师:魏勤江苏科技大学数理学院应用物理学2009年10月29日~ 2009年11月12日利用超声C扫描成像技术对缺陷进行定量彭加福(江苏科技大学,数理学院,应用物理学)目前超声波检测技术正在向自动化以及超声检测设备的数字化、智能化方向发展,同时和其他学科相结合,这将大大拓宽了超声波检测的应用范围。

随着科学技术的发展,新材料、新技术的广泛应用,各种结构零件向高参量、大容量方向发展,这不仅要求不断提高缺陷检测的准确率和可靠性,而且要把传统的无损检测技术和现代信息技术相结合,实现无损检测的数字化、图像化、实时化和智能化。

本实验所采用的超声C扫描成像技术通过将传统的超声检测技术、微机控制与计算机数据采集、存贮、处理、图像显示等技术集合起来,实现了超声检测过程的自动化、数字化、图像化。

采用超声C扫描成像技术能通过对所采集的信息进行处理,从而得到工件内部缺陷的横截面图,同时根据超声波换能器的声场特性对缺陷的形状和大小进行定量化分析。

1.实验目的1.1了解超声C扫描成像装置的设备组成,掌握通过超声C扫描成像技术实现无损检测的数字化、图像化、实时化和智能化的方法及过程;1.2掌握水浸法超声检测的理论知识及实验操作过程,通过超声C扫描成像技术对材料内部缺陷横断面进行成像;1.3学会通过超声C扫描图像分析材料内部缺陷,对缺陷进行定性、定量及评估。

2.实验器材超声C扫描成像装置、水槽、各类受检金属工件(包括铝块,铸件,复合铝板,焊缝)、台式计算机(含数据采集,储存,处理软件、扫面控制软件及图像处理软件等)、数据传输线、水浸聚焦探头、CTS-23型超声波探伤仪、扫描控制仪。

3.实验原理3.1水浸聚焦探头的声场利用超声波成像系统对工件进行检测时,如果利用具有聚焦特性的聚焦探头,不仅能够提高检测的精度,同时可以根据聚焦探头的声场特性判断缺陷的实际形状尺寸。

苏州科技学院测绘工程周文文数据结构实验报告

苏州科技学院测绘工程周文文数据结构实验报告
11
入当前根结点数据,如果是’#‘,则表示当前树根置为空,否则 申请一个新结点,存入当前根结点的数据,分别用当前根结点的左 子域和右子域进行递归调用,创建左、右子树。 BiTree CreateBiTree() { char ch; BiTreeNode *p; ch=getchar(); if (ch==‘#’) return NULL; else {p=(BiTreeNode *) malloc(sizeof(BiTreeNode)); p->data=ch; p->LChild=CreateBiTree(); p->RChild=CreateBiTree(); return (p); }}
实验四 图 程序设计的基本思想,原理和算法描述: 基本操作:1.构造有向图 G
2.构造有向网 G
14
3.构造无向图 G 4.构造无向网 G 1、建立无向网的邻接矩阵存储并输出,参考程序清单,实现无向 图的邻接矩阵 表示。2、建立图的邻接表存储并在此基础上实现图 的深度优先遍历和广度优先遍历 二、源程序及注释 三、运行输出结果
q->front = (q->front+1)%Maxsize
二、源程序及注释
6
3、运行输出结果
7
8
9
四、调试和运行程序过程中产生的问题及采取的措施 问题: 队列队尾指针已经移到了最后,再有元素入队就会出现溢出, 而事实上此时队中并未 真的“满员”。 解决:队列的数据区 data[0..MAXSIZE-1]看成头尾相接的循环结构,头尾指针的关系不变, 将其称为“循环队”。 五、对算法的程序的讨论、分析,改进设想,其它经验教训: 讨论、分析,改进设想:栈和队列是两种常见的数据结构,它们都 是运算受限的线性表。经验教训:栈的输入和删除都在栈顶进行,它 是后进先出线性表。队列的插入在队尾,而删除在队头,它是先进 先出的线性表。当解决具有先进先出(或后进先出)特性的实际问题 时,可以使用队列(或栈)这种数据结构来解决。

(完整版)江苏科技大学VC++程序实践答案

(完整版)江苏科技大学VC++程序实践答案

(完整版)江苏科技大学VC++程序实践答案江苏科技大学VC++实践报告一、实践任务任务一(第2题):试建立一个类SP,求f(n,k)=1^k+2^k+3^k+…+n^K,另有辅助函数power(m,n),用于求m^n。

具体要求如下:(1)私有成员数据:int n,k:存放公式中n和k得值。

(2)公有成员函数:SP(int n1,int k1):构造函数,初始化成员数据n和k。

int power(int m,int n):求m^n。

int fun( ):求公式的累加和。

void show( ):输出求的结果。

(3)在主程序中定义对象s,对该类进行测试。

任务一分析1、任务分析通过SP的成员函数power( )可求出m^n的值,再通过累加函数fun(),可求出累加和。

类的定义如下:#includeclass SP{int n,k;public:SP()int power()int fun()void show()};2、算法设计求m^n:定义变量P=1,循环n次,每次循环P乘以m求累加和:定义变量S=0,通过for循环,将power()函数计算的结果累加。

3、系统测试在主函数中用整数初始化SP的对象,并调用成员函数show()输出结果。

主函数定义如下:void main(){SP a(2,3);a.power(2,3);a.fun();a.show();}用以测试的数据为:n=2,k=3;预期的输出结果为:当n=2,k=3时,f(n,k)=9任务一程序#includeclass SP{int n,k;public:SP(int n1,int k1){n=n1;k=k1;}int power(int m,int n){int p=1;for (int i=1;i<=n;i++)p*=m;return p;}int fun(){int s=0;for (int i=1;i<=n;i++)s+=power(i,k);return s;}void show(){cout<<"当n="<<n<<",k="<<k<<"时,f(n,k)="<<fun()<<endl;< p="">}};{SP a(2,3);a.power(2,3);a.fun();a.show();}任务二(第24题):建立一个NUM,并统计特定序列中相同的字符的个数。

c++实验报告格式苏大教材2010

c++实验报告格式苏大教材2010

《C++程序设计语言》课程标准实验报告江苏科技大学计算机科学与工程学院基础教学部实验一 简单程序设计一、实验目的(1)熟练地使用VC++的编程环境。

(2)初步了解VC++程序的编译、连接和运行的过程。

(3)掌握和理解VC++程序的结构。

(4)熟悉VC++程序数据的输入、输出。

(5)掌握C++变量的概念及应用。

(6)掌握C++表达式的使用。

二、实验内容1.编程在屏幕上以左对齐的方式分行显示自己的姓名、学号、通讯地址等信息。

2.已知球台的体积计算公式为V=])(3[6122221h r r h ++π,其中h 为球台的高,r1,r2分别为球台的上下底半径。

试编程求某球台的体积。

要求球台的上下底半径及高均为键盘输入的整数,程序应分行输出球台的各项参数及体积。

三、实验过程1.编写源程序prog1.cpp ,内容如下: 编译运行程序,结果如下:2.编写源程序prog2.cpp ,内容如下:编译并运行,结果如下:四、实验小结(主要写一些实验中出现的问题,应注意的事项,以及实验体会)实验二、三 C++的流程控制语句一、实验目的(1)掌握关系表达式和逻辑表达式的使用。

(2)熟悉选择结构和循环结构程序设计。

(3)掌握break 和continue 语句的使用。

(4)练习调试与修改程序。

二、实验内容1.输入一个年份year ,计算这一年2月份的天数days ,然后输出days 。

(1)所有变量定义为整型。

(2)输入前要加提示语句。

(3)输出结果前要有必要的文字说明。

2.编写程序,输入三角形三边a,b,c ,判断a,b,c 能否构成三角形,若不能则输出相应信息,若能,则判断构成的是等腰、等边、直角还是一般三角形。

(1)输入一组数3,4,8,观察程序运行结果。

(2)另外再输入几组数据进行测试:3,4,5 3,3,3 3,3,53.为了方便程序的使用,在数据输入时可用简单的数字代替一定的文字信息,然后在程序中再作相应的转换。

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

江苏科技大学课程实践报告设计题目:计算机程序设计实验(C++)设计时间: 2016年10月3日至2016年10月4日学院:计算机科学与工程学院专业班级:通信工程 1522107041学生姓名:周祯楠学号:****************:***一、第三题(一)题目:3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。

具体要求如下:(1)私有数据成员。

○1float array[20]:一维整型数组。

○2int n:数组中元素的个数。

(2)公有成员函数○1MOVE(float b[],int m):构造函数,初始化成员数据。

○2void average():输出平均值,并将数组中的元素按要求重新放置。

○3void print():输出一维数组。

(3)在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。

(二)源程序:#include<iostream.h>class MOVE{float array[20];int n;public:MOVE(float b[],int m);void average();void print();};MOVE::MOVE(float b[],int m){int i;n=m;for(i=0;i<m;i++)array[i]=b[i];}void MOVE::average(){int i,x;float a = 0;for(i=0;i<n;i++)a+=array[i];a/=n;cout<<"平均值为:"<<a<<endl; //○1float f[20];for(i=0,x=0;i<n;i++)if(array[i]<a){f[x] = array[i];x++;}for(i=0;i<n;i++)if(array[i]>a){f[x] = array[i];x++;} //○2for(i=0;i<n;i++)array[i] = f[i]; //○3}void MOVE::print(){int i;for(i=0;i<n;i++){cout<<array[i]<<'\t';if((i+1)%5==0) cout<<endl; //○4}cout<<endl;}void main(){float b[]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3};int m = 9;MOVE ff(b,m);ff.average();ff.print();}(三)运行结果:(四)基本分析:1.就结构而言,定义类以及成员函数按照题目要求写即可,注意类作用域符::不可缺失。

2.就算法而言:○1求数组中的数的平均值,就是先求和,再除总个数。

○2“小于平均值的放左边,大于平均值的放右边。

”先新建一个数组f[20]用于存放排列后的数组,通过if条件判断语句进行排序,这里大于平均值和小于平均值是有先后顺序的,因为是依次放入f[20]中,所以要等小于平均值的放完,再放大于平均值的。

○3再把f[20]赋值给array[20],这样array[20]就是排序后的符合题目要求的新数组。

○4每行5个输出,i的初始值是0,所以if条件判断中应该是if((i+1)%5 == 0),直接用i,无需定义其他变量。

二、第四题(一)题目:4.建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。

具体要求如下:(1)私有数据成员○1int *array:一维整型数组。

○2int n:数组中元素的个数。

(2)公有成员函数○1MOVE(int b[],int m):构造函数,初始化成员数据。

○2void exchange():输出平均值,并将数组中的元素按要求重新放置。

○3void print():输出一维数组。

○4~MOVE():析构函数。

(3)在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。

(二)源程序#include<iostream.h>class MOVE{int *array;int n;public:MOVE(int b[],int m);void exchange();void print();~MOVE();};MOVE::MOVE(int b[],int m){n = m;array = new int[n]; //○1for(int i=0;i<n;i++)array[i] = b[i];}void MOVE::exchange(){float a = 0;int i,*p1,*p2;for(i=0;i<n;i++)a+=array[i];a/=n;cout<<"The average of the number is:"<<a<<endl;p1 = p2 = array; //○3for(i=0;i<n;i++){if(array[i] < *p1) p1 = &array[i];if(array[i] > *p2) p2 = &array[i];} //○4i = *p1;*p1 = *p2;*p2 = i; //○5}void MOVE::print(){for(int i=0;i<n;i++){cout<<array[i]<<'\t';if((i+1)%5==0) cout<<'\n';}}MOVE::~MOVE(){delete []array; //○2}void main(){int b[] = {21,65,43,87,12,84,44,97,32,55},n = 10;MOVE f(b,n);f.exchange();f.print();}(三)运行结果(四)基本分析1.要注意的函数:○1构造函数中:当要用到指针来操作数组时,要通过new运算符动态申请空间。

格式:指针变量 = new 数据类型[数组大小],指针变量保存该空间的首地址○2析构函数:释放new分配的而动态内存,格式:delete []指针变量2.相关算法:○3定义指针变量p1、p2指向数组的首地址,这句话等价于 p1 = p2 =&array[0]; ○4遍历数组,p1指向最小值,p2指向最大值○5交换*p1、*p2的值三、第17题(一)题目:定义一个类SIN。

求sin(x)=x/1-x^3/3!+x^5/5!-x^7/7!+……+(-1)^(n+1)x^(2n+1)/(2n+1)!具体要求如下:(1)私有成员数据。

①double x:输入公式中x的值,求sin(x)。

②int n:输入公式中n的值。

(2)公有成员函数。

①SIN(int x,int n):构造函数,用于初始化x和n的值。

②double power(int q):求q!的值。

③int mi(int m,int n):求m^n的值。

○4fun( ):用于求sin(x)的值。

○5void show( ):输出求得的结果。

(3)在主程序中定义对象test,对该类进行测试。

(二)源程序:#include<iostream.h>class SIN{double x;int n;public:SIN(double x,int n);double power(int q);double mi(int m,int n);double fun();void show();};SIN::SIN(double x,int n){this->x = x;this->n = n; //○1}double SIN::power(int q){for(int m = 1;m < q;m++)q *= m; //○2return q;}double SIN::mi(int m,int n){for(int i = 1;i < n;i++)m *= m; //○3return m;}double SIN::fun(){double sinx = 0;for(int i = 1;i <= n;i++)sinx += mi(-1,i+1)*mi(x,2*i-1)/power(2*i-1); //○4return sinx;}void SIN::show(){cout<<"请输入x:"<<endl;cout<<"sin("<<x<<")="<<fun()<<endl;}void main(){double x,n;cout<<"请输入x和n的值:"<<endl;cin>>x>>n;SIN test(x,n);test.show();}(三)运行结果:(四)基本分析:1.需要注意:○1this指针指向本身对象的数据成员,避免因数据名相同而造成的混乱。

按题目要求,这一题只能用this指针加以区分。

2.相关算法:○2求阶乘○3求m^n。

i < n即可,因为i = 1时,m=m*m,依此类推,i=n-1 时,算的就是m^n○4这个公式看起来比较繁琐,对应着公式调用相关函数写,不要弄错四、第18题(一)题目:18.试建立一个类VAR,用于求n(n<=100)个数的均方差。

均方差的计算公式为,其中平均值为具体要求如下:(1)私有成员数据。

○1double a[100]:用于存放输入的n个数。

○2int n:实际输入数的个数n。

(2)公有成员函数。

○1VAR(double x[], int n1):构造函数,初始化成员数据a和个数n。

○2double average(double x[], int n):求平均值,数组x具有n个元素。

○3void variance(double x[],int n):求均方差,数组x具有n个元素。

○4void show():输出求得的均方差。

(3)在主程序中定义一个对象test,对该类进行测试。

(二)源程序:#include<iostream.h>class VAR{double a[100];int n;public:VAR(double x[],int n1);double average(double x[],int n);void variance(double x[],int n);void show();};VAR::VAR(double x[],int n1){for(int i = 0;i < n1;i++)a[i] = x[i];n = n1;}double VAR::average(double x[],int n){double a = 0;for(int i = 0;i < n;i++)a += x[i];a /=n;return a;}void VAR::variance(double x[],int n){double d = 0; //○1for(int i = 0;i < n;i++)d = (x[i] - average(x,n))*(x[i] - average(x,n));d /= n;cout<<"方差为:"<<d<<'\n';}void VAR::show(){cout<<"平均值为:"<<average(a,n)<<'\n'<<endl;variance(a,n);}void main(){double x[100] = {16,18,25,23,56,14};int n1 = 6;VAR test(x,n1);test.show();}(三)运行结果:(四)基本分析:1.需要注意:○1方差d最好定义成double型2.此题不难,按照题目要求“堆”程序即可,没有复杂的算法,也没有特殊的结构。

相关文档
最新文档