您现在的位置:首页 >> 维生素c测定实验报告 >> c实验报告总结,c课程设计实验报告,c实验报告模板,C++第四章实验报告

c实验报告总结,c课程设计实验报告,c实验报告模板,C++第四章实验报告

时间:2012-08-01 来源: 泥巴往事网

C程序设计 第四版 实验报告及答案) .第二章课后习题 C++程序设计 第三版 实验报告及答案 (Nell Dale) c++语言程序设计 第四版 实验报告及答案 (郑莉) Visual C++面向对象...

西安交通大学实验报告 一.实验目的 1.熟练掌握一维、二维数组的使用; 2.熟练掌握字符数组、字符串的操作; 3.巩固循环语句的使用。 二.实验内容 (-)实验题目一:输入 N(例如 N 为 20)个整数,统计输出负数的个数、正整 数的个数及 0 的个数;计算输出所有负数之和、所有正整数之和。

1.要点分析 利用一维数组进行循环判断。

2.程序源代码 #include <iostream>

using namespace std;

int main() { int n,negative=0,positive=0,zero=0,sumne=0,sumpo=0;//定义变量 cout<<"请输入需统计整数的个数(少于):";

cin>>n;

int number[300];

if(n>300)//判断是否超过数组总数 cout<<"无法统计多于个的整数"<<endl;

else { for(int i=0;i<n;i++)//循环输入数组元素 { cout<<"请输入整数:";

cin>>number[i];

if(number[i]<0)//判断负数 { negative++;

sumne+=number[i];

} else if(number[i]>0)//判断正数 { positive++;

sumpo+=number[i];

} else//判断0 zero++;

} cout<<"共输入"<<n<<"个整数,其中有"<<negative<<"个负数,"<<positive<<"个正数,"<<zero<<"

个,"<<endl<<"所有负数之和为"<<sumne<<",所有正数之和为"<<sumpo<<endl;

} return 0;

} 3.实验结果 (二)实验题目二:编写程序,将 N(N<10)阶方阵转置。注意,转置要使矩阵 本身作转置运算,而不仅是在屏幕显示转置效果。

1.要点分析 (1) 方阵元素 a[i][j]转置后, 相应位置变为 a[j][i],利用数组循环 依次做转置运算后输出; (2) (3) 不是再声明一个 B 是 A 的转置,也不是按列输出; 转置要以防转置两次后复原,因此以主对角线为界,扫描右上方 的进行转置。 2.程序源代码 #include <iostream>

using namespace std;

int main() { double a[10][10];//定义方针,阶数最大为 int i,j,n;

cout<<"请输入方阵阶数(小于)";

cin>>n;

if(n>9)//判断阶数 cout<<"方阵阶数应小于,请重新输入"<<endl;

else { cout<<"请输入方阵"<<endl;

for(i=0;i<n;i++)//循环输入方阵 { for(j=0;j<n;j++) cin>>a[i][j];

cout <<

endl;

} for(i=0;i<n;i++)//以对角线为轴进行转置 { for(j=i+1;j<n;j++)//只转置一次,因此以对角线为界,转置其右上方 { double tmp=a[i][j];

a[i][j]=a[j][i];

a[j][i]=tmp;

} } cout <<

"方阵的转置阵为:"

<<

endl;

for(i=0;i<n;i++) { for(j=0;j<n;j++) cout<<a[i][j]<<'\t';//输出转置阵 cout <<

endl;

} } return 0;

} 3. 实验结果 (三)实验题目三:设有一个有序的整型数组,数据元素从小到大排列,初始时 数组中没有元素。用户从键盘输入若干整数,将其插入到数组的合适位置,使数 组保持有序,并打印插入后的数组元素。程序要考虑对数组满时的情况的处理。

1.要点分析 数组为空时,输入元素将其放入 a[0]即可。若 n 个元素且有序排列时, 再输入一个 x 插入,方法是先将其与 a[n-1]比较,如果 x<a[n-1],就将 后移一个位置,再继续与前一个比较,循环至 x 不小于前面的元素,就 将 x 放在该元素后面,输出数组,直至数组满时提示。

2.程序源代码 #include <iostream>

using namespace std;

int main() { double a[10],x;//定义数组最多放入10个元素 int n=0,j;

while(1)//一直循环 { cout<<endl<<"请输入数x:";

cin>>x;

if(n==10)//元素满时提示,并跳出循环 { cout<<"数组已满"<<endl;

break;

} for(j=n-1;j>=0;j--)//循环判断x应插入位置 { if(x>a[j])//x大于数组中的数(从大到小)时跳出 break;

a[j+1]=a[j];//x小于时,现有位置的数后移一位 } a[j+1]=x;//在插入位置处赋予x数值 n++;

cout<<"插入值后,有序数组为:"<<endl;//输出有序数组 for(j=0;j<n;j++) cout<<a[j]<<'\t';

} return 0;

} 3. 实验结果 (四)实验题目四:打印杨辉三角形,其中的行数由用户输入。

1.要点分析 除边界外,其元素算法为 a[i][j]=a[i-1][j-1]+a[i-1][j],通过数组 利用循环输出杨辉三角。

2.程序源代码 #include<iostream>

using namespace std;

int main() { int a[50][50],n,i,j;

cout<<"请输入行数(小于):";

cin>>n; if(n>50)//判断行数是否超过界限 cout<<"请输入小于的行数"<<endl;

else if (n<1) cout<<"请输入大于的行数"<<endl;//控制行数大于 else { for(i=0;i<n;i++) { a[i][0]=1;

a[i][i]=1;

for(j=1;j<i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];//计算三角中间元素 } cout<<"杨辉三角形前"<<n<<"行打印如下:"<<endl;

for(i=0;i<n;i++)//打印杨辉三角 { for(j=0;j<=i;j++) cout<<a[i][j]<<"

";

cout<<endl;

} } return 0;

} //定义三角边界上的元素为 3.实验结果 (五)实验题目五:请编程进行凯撒加密:任意输入明文字符串(不大于 1000) , 将明文中字母或数字用其后第 4 个字母或数字代替,输出密文。

1.要点分析 (1) 需要判断字符串范围,不同范围计算公式不同; (2) 使用 cin.get 控制字符串中空格也算入,并计算字符串长度 n, 用 n 控制数组循环进行加密。

2.程序源代码 #include <iostream>

using namespace std;

int main() { char str[1000];

cout<<"请输入明文字符串(不大于1000):";

cin.get(str,1000);//输入识别空格的字符串 int n=0;

for(n;str[n]!='\0';n++);//计算字符串除结束符号的字符数 for(int i=0;i<n;i++)//对字符依次判断并进行加密 { if(str[i]>='0'&&str[i]<'6'||str[i]>='a'&&str[i]<'w'||str[i]>='A'&&str[i]<'W')//不需循环的 str[i]=str[i]+4;

else if(str[i]>'5'&&str[i]<='9')//数字需循环的 str[i]=str[i]-6;

else if(str[i]>'v'&&str[i]<='z'||str[i]>'V'&&str[i]<='Z')//字母需循环的 str[i]=str[i]-22;

} cout<<"密文为:"<<str<<endl;

system("pause");

return 0;

} 3.实验结果 (六)实验题目六:编写凯撒解密程序,即将上题凯撒加密的密文解密成明文。

1. 要点分析 同上题逻辑,仅算法倒推。

2. 程序源代码 #include <iostream>

using namespace std;

int main() { char str[1000];

cout<<"请输入密文字符串(不大于1000):";

cin.get(str,1000);

int n=0;

for(n;str[n]!='\0';n++); for(int i=0;i<n;i++) { if(str[i]>'3'&&str[i]<='9'||str[i]>'d'&&str[i]<='z'||str[i]>='D'&&str[i]<'Z') str[i]=str[i]-4;

else if(str[i]>='0'&&str[i]<'4') str[i]=str[i]+6;

else if(str[i]>='a'&&str[i]<'e'||str[i]>='A'&&str[i]<='E') str[i]=str[i]+22;

} cout<<"明文为"<<str<<endl;

system("pause");

return 0;

} 3. 实验结果 (七)实验题目七:编写程序完成如下功能:

①定义二维数组 8 × 8; ②自动生成数组中每个数据元素值为(i+1)×(j+1),i 和 j 分别为行列坐标,输 出该数组所有元素; ③计算主对角线元素之和,计算次对角线元素之和,并输出; ④将主对角线元素之和加到第一行中每个元素中,然后输出第一行所有元素值。

1. 要点分析 运用数组和循环控制达到题意,每个元素 array[i][j]=(i+1)*(j+1), 主对角线元素之和为 array[i][i]求和, 次对角线元素之和为 array[i][7-i] 求和。

2. 程序源代码 #include <iostream>

using namespace std;

int main() { int array[8][8],i,j; cout<<"该数组所有元素为:"<<endl;

for(i=0;i<8;i++)//循环计算数组中所有元素 { for(j=0;j<8;j++) { array[i][j]=(i+1)*(j+1);

cout<<array[i][j]<<’\t’;

} cout<<endl;

} int sum1=0,sum2=0;

for(i=0;i<8;i++) { sum1+=array[i][i];//计算主对角线元素之和 sum2+=array[i][7-i];//计算次对角线元素之和 } cout<<"主对角线元素之和为"<<sum1<<",次对角线元素之和为"<<sum2<<endl;

cout<<"将主对角线元素之和加到第一行中每个元素中,第一行所有元素值为:"<<endl;

for(j=0;j<8;j++) { array[0][j]+=sum1;//计算第一行改变之后元素数值 cout<<array[0][j]<<"

";

} cout<<endl;

system("pause");

return 0;

} 3. 实验结果 三. 个人小结

C 程序设计 实验报告 第四章 循环结构程序设计 班级: 学号: 姓名: 信科 121 12477218 孙剑峰 第四章 循环结构程序设计 【实验目的】 1、学习绘制简单的框图 2、学习循环结构...

实验报告 (第一章)隐藏>> 《高级语言程序设计》实验报告 高级语言程序设计》班级: 学号: ... 《经典规范C语言程序设计》实验报告 (第四章) 《经典规范C语言程序设计》...

( 第4章实验4 ... C程序设计...*/ 可以用gets函数读取字符串,设置一个最大字符串数组smax,第一次设置smax为... 《经典规范 C 语言 程序设计 》 实验 报告( 第四章 )《经典规范...

 
  • 泥巴往事网(www.nbwtv.com) © 2014 版权所有 All Rights Reserved.