西南交大c实验报告

合集下载

西南交大C++ 实验五.doc

西南交大C++ 实验五.doc

实验__5__实验报告教学班级:______ 学生学号:________ 学生姓名:___________实验日期:__2018/4/17_________ 实验地点:_指导教师签名:__________ 实验成绩:___________一、实验目的1.理解“处理某一或某些操作需要被有条件地重复执行”的编程思路和方法;2.掌握循环结构的程序设计,以及while、do-while和for循环语句的使用方法。

二、实验任务1.一只猴子摘了N个桃子第一天吃了一半又多吃了一个,第二天又吃了余下的一半又多吃了一个,到第十天的时候发现还有一个。

2. 编程实现十进制整数和八进制整数之间的转换(即将10进制数转换为8进制数,或将8进制数转换为10进制数)。

3.计算由键盘输入的两个数的最大公约数和最小公倍数。

4.计算正弦的近似值。

sin(x)=x-x^3/3!+x^5/5!-x^7/7!+……5.由键盘输入若干职工的工资收入(以负数结束),输出每个职工的工资收入、计算并输出每个职工的缴税额,统计并输出职工总人数和总缴税额。

三、实验结果(源程序+ 注释)1.#include<iostream>using namespace std;void main(){cout<<"学号:****** 姓名:***"<<endl;int i,s,sum;s=1;i=9;sum=1;while (i>=1){s=(s+1)*2;i=i-1;sum=sum+s;}cout<<"总共有"<<sum<<"个桃子"<<endl;}2.//编程实现十进制整数和八进制整数之间的转换#include<iostream>using namespace std;void main(){cout<<"学号:****** 姓名:***"<<endl;int i,x,n,j;cout<<"请输入一个十进制整数:"<<endl;cin>>i;x=0,n=0;while (i>0){j=i%8;i=i/8;x=x+j*pow(10.0,n);n=n+1;}cout<<"该十进制数对应的八进制数为:"<<x<<endl; cout<<"请输入一个八进制整数:"<<endl;cin>>x;i=0,n=0;while(x>0){j=x%10;x=x/10;i=i+j*pow(8.0,n);n=n+1;}cout<<"该八进制数对应的十进制数为:"<<i<<endl; }3. // 计算由键盘输入的两个数的最大公约数和最小公倍数。

西南交大C++实验二.doc

西南交大C++实验二.doc

实验__2__实验报告教学班级:___ 学生学号:_________ 学生姓名:___________实验日期:_________ 实验地点:指导教师签名:__________ 实验成绩:___________一、实验目的1. 掌握顺序结构的编程思路和方法;2. 掌握格式输入输出和数据类型转换。

二、实验任务1.给朋友打印生日卡,生日卡格式输入:====================================My dear Zhang,Happy birthday to you!yours,Li====================================要求你的名字和你朋友的名字均由键盘输入,在输入名字时请给出提示信息。

2.已知赵六同学学号20110101111,他期末参加了高等数学、普通物理、大学英语三门课程期末考试。

编程实现:键盘输入学生的学号、以及各科的成绩,计算平均成绩。

输入输出格式参见下图。

要求:⑴学号作为一个整数而言,超出了int所定义的变量的存储范围,因此只能double 型变量来存储,但输出时要求看见的是整数形式的学号。

⑵输出对齐,成绩保留2位小数。

3.键盘输入一个小写字母,将其转换成大写字母,并输出它们的ASCII码值及其原字符。

4.计算万有引力。

由普通物理知, 两个质量分别为m1和m2的物体之间的万有引力F与两个物体质量的乘积成正比, 与两个物体质心之间的距离R的平方成反比:式中G为引力常数,如果F的单位为牛顿(N),质量的单位为千克(kg),物体质心的距离单位为米(m),则,已知太阳的质量为千克,地球的质量为kg,太阳与地球的距离为m,请计算太阳与地球之间的万有引力。

5.加法器键盘输入两个数,计算这两个数的和,并输出结果。

三、实验结果(源程序+ 注释)1.//给朋友打印生日卡,要求你的名字和你朋友的名字均由键盘输入,在输入名字时请给出提示信息。

#include<iostream>#include<string>using namespace std;int main(void){ string name1; //定义变量name1 string name2; //定义变量name2cout<<"学号:"<<endl;cout<<"请输入你的名字:"<<endl;cin>>name1; //将输入的名字赋值给name1 cout<<"请输入你朋友的名字:"<<endl;cin>>name2; //将输入的名字赋值给name2cout<<"===================================="<<endl;cout<<" My dear "<<name2<<endl;cout<<" Happy birthday to you!"<<endl;cout<<" yours,"<<endl;cout<<" "<<name1<<endl;cout<<"===================================="<<endl;return 0;}2. //键盘输入学生的学号以及各科的成绩,计算平均成绩。

西南交通大学C实验报告

西南交通大学C实验报告

计算机程序设计基础(C++)实验报告信息学院计算机教育中心二零一二年三月目录实验__1__实验报告 (3)实验__2__实验报告 (5)实验__3__实验报告 (6)实验__4__实验报告 (7)实验__5__实验报告 (11)实验__6__实验报告 (14)实验__7__实验报告 (17)实验__8__实验报告 (19)实验__9__实验报告 (20)实验__10__实验报告 (21)实验__11__实验报告 (22)实验__12__实验报告 (23)实验__13__实验报告 (24)实验__14__实验报告 (25)实验__15__实验报告 (26)实验日期:___________ 实验地点:_________(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务1.新建源程序文件,编辑以下程序,编译,链接,得出运行结果,并保存程序:#include <iostream>using namespace std;void main( ){ cout<<'a'<<endl;cout<<'\141'<<endl;cout<<'\x61'<<endl;}2.新建源程序文件,编辑以下程序,编译,链接,运行,输入36和64,得出运行结果,并保存程序:#include <iostream>using namespace std;int main(){ float num1,num2,sum;cout << "Enter first number: ";cin >> num1;cout << "Enter second number: ";cin >> num2;sum=num1+num2;cout << "The sum is " << sum << endl;return 0;}三、实验结果教学班级:_______ 学生学号:__________ 学生姓名:___________ 实验日期:___________ 实验地点:_________(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.简单输入和输出语句的练习。

西南交大C实验13

西南交大C实验13

实验 13 实验报告教学班级:________ 学生学号:__________ 学生姓名:__________ 实验日期:_______ 实验地点:指导教师签名:__________ 实验成绩:___________一、实验目的1.理解变量作用域,掌握局部变量和全局变量的使用方法;2.掌握函数调用过程中的参数传递方法。

3.理解递推的概念,掌握递归函数的基本使用方法;二、实验任务1.求数组元素和值。

1) 主函数定义整型数组a[10],数组元素值a[j]=2*j+1,输出a数组;2) 编一子函数,将主函数传递来的数组元素值改变为其前面所有数组元素的和值(包括该数组元素自身值),子函数头要求为sum(inta[],int n),n用于传递数组的大小;3) 主函数中输出改变后的a数组。

2.求自然数对。

1)编写一子函数,判断两个自然数x,y是否是自然数对(所谓自然数对是指两个自然数的和与差都是平方数,如:17-8=9,17+8=25);2)调用子函数在0<x<=50,0<y<=50且x!=y范围内找出全部自然数对。

3.斐波那契数列。

1)主函数功能:求出斐波那契数列的前n项存入数组a[20]中,开始两项均为1,将子函数反序存放后的结果输出;2)子函数功能:将主函数求出的斐波那契数列前n项反序存放。

3)函数头要求为void fbnq(int*p,int n),p指向数组a。

4.编程实现:将有序数组有序合并。

1) 有两个从小到大的整型有序数组a和b,编一子函数将这两个数组合并为从小到大的有序数组c,整个合并过程中c保持有序;2) 子函数头要求为void merge(int a[],int b[],int c[],int m,intn),m用来传递a数组元素个数,n传递b数组元素个数。

5.实现功能:已知数列2,6,14,30,…… ,计算该数列的第n项。

其中的递推关系为:编程要求:1)主函数功能:从键盘输入n值,通过调用子函数计算数列的第n项并输出。

西南交大实验报告

西南交大实验报告

西南交大实验报告西南交大实验报告引言:西南交通大学是中国著名的综合性大学之一,以交通运输为特色,涵盖了工、理、管、文、法、经、教育等多个学科领域。

本实验报告将着重介绍西南交大的实验教学体系以及实验室设施,以展示该校在培养学生实践能力和创新精神方面的努力。

一、实验教学体系西南交大以实验教学为核心,注重培养学生的实践能力和创新精神。

学校建立了一套完善的实验教学体系,包括实验教学计划、实验教材、实验教学方法和实验评价体系等。

实验教学计划根据不同专业的要求,为学生安排了一系列的实验课程,涵盖了理论知识的应用和实践技能的培养。

实验教材则精心编写,内容丰富,既有基础实验,也有前沿实验,能够满足学生的学习需求。

实验教学方法灵活多样,结合了讲授、实践、讨论等多种形式,让学生能够全面参与实验过程,提高实践能力。

实验评价体系科学合理,既注重实验结果的准确性,又注重学生的实验操作能力和实验报告的撰写能力。

二、实验室设施西南交大拥有先进的实验室设施,为学生提供了良好的实验环境。

学校的实验室涵盖了多个学科领域,包括物理、化学、生物、电子、计算机等。

这些实验室配备了先进的实验设备和仪器,能够满足学生进行各种实验研究的需求。

实验室的管理规范,设有专门的实验室管理员,负责设备的维护和管理,确保实验设备的正常运行。

此外,学校还注重实验室的安全管理,制定了严格的实验室安全规定,确保学生的人身安全和实验设备的安全。

三、实验教学成果西南交大的实验教学取得了显著的成果。

学校的实验教学成果多次获得国家级奖项,得到了社会的广泛认可。

学生在实验教学中不仅学到了专业知识,还培养了动手能力和创新思维。

通过实验教学,学生能够将理论知识与实际应用相结合,提高问题解决能力和创新能力。

许多学生在实验教学中发表了学术论文,参与了科研项目,取得了优异的成绩。

实验教学的成果不仅体现在学生的学术成就上,还体现在学生的就业竞争力上。

许多企业对西南交大的实验教学给予了高度评价,认为该校的学生具备扎实的专业知识和出色的实践能力。

西南交大C++实验11.doc

西南交大C++实验11.doc

实验 11 实验报告一、实验目的1.掌握string字符串型的使用方法;2.掌握string字符串型的基本操作:大小写转换、字符统计、关键字查找、字符串排序等的常用算法。

二、实验任务1. 输入并存储一个字符串,将该字符串中的所有小写字母转换为大写字母后输出。

要求:使用字符数组(即char数组)存放字符串。

2.输入并存储一个字符串,统计该字符串中'a'字符(不区分大小写)的个数。

要求:使用string变量存放字符串。

3. 输入并存储一个字符串,将该字符串中的每个字母加10后再将字符串输出。

要求:分别采用以下方法实现(1)使用字符数组(即char数组)存放字符串;(2)使用string变量存放字符串。

4. 输入并存储一个由26个英文字母(不分大小写)组成的字符串,再输入一个英文字母,查找该字母在字符串中第一次出现的位置。

三、实验结果(源程序+ 注释+ 运行界面截图)(要求:(1)提供源程序;(2)源程序包含必要的注释,包括:在程序头部给出本程序功能的注释、所定义变量的用途注释、程序块的功能注释、子函数的功能注释等;(3)运行结果的窗口截图,程序运行结果中输出的第一行内容必须为:程序作者的学号和姓名。

)1.#include<iostream>using namespace std;void main(){cout<<"学号:姓名:"<<endl;cout<<"========================================="<<endl;int i;char s[100];gets(s);strlen(s) ;for(i=0;i<strlen(s);i++)if (s[i]>='a'&&s[i]<='z')s[i]=s[i]-32;cout<<s<<endl;}2.#include<iostream>#include<string>using namespace std;void main(){cout<<"学号:姓名:"<<endl;cout<<"========================================="<<endl;string s;int i,number=0;getline(cin,s);for(i=0;i<s.size();i++)if(s[i]=='a'||s[i]=='A')number=number+1;cout<<number<<endl;}3.(1)#include<iostream>using namespace std;void main(){cout<<"学号:姓名:"<<endl;cout<<"========================================="<<endl;char s[100];int i;cout<<"请输入一个字符串:"<<endl;gets(s);for(i=0;i<strlen(s);i++)s[i]=s[i]+10;cout<<"转换后的字符串为:"<<endl;cout<<s<<endl;}(2)include<iostream>#include<string>using namespace std;void main(){cout<<"学号:姓名:"<<endl;cout<<"========================================="<<endl;string s;int i;cout<<"请输入一个字符串:"<<endl;getline(cin,s);for(i=0;i<s.size();i++)s[i]=s[i]+10;cout<<"转换后的字符串为:"<<endl;cout<<s<<endl;}4.#include<iostream>#include<string>using namespace std;void main(){cout<<"学号:姓名:"<<endl;cout<<"========================================="<<endl;string s;char x;int i,num=0;cout<<"请输入一个字符串:"<<endl;getline(cin,s);cout<<"请输入一个英文字母:"<<endl;cin>>x;for(i=0;i<s.length();i++)if(s[i]==x){num=i;break;}if(i<s.length())cout<<"字母"<<x<<"在字符串"<<s<<"第一次出现在第"<<num+1<<"个"<<endl;elsecout<<"在字符串"<<s<<"中没有字母"<<x<<endl;}。

西南交通大学计算机程序设计基础C++实验报告10

西南交通大学计算机程序设计基础C++实验报告10

实验 10 实验报告教学班级:___ ___ 学生学号:_____xxxxxx_____ 学生姓名:______x x x_____实验日期:___6.15___ 实验地点:____x7407________(机房)指导教师签名:_____________ 实验成绩:______________一、实验目的1.掌握二维数值型数组的使用方法;2.掌握求解一些经典问题的常用算法。

二、实验任务1.设有一个元素皆为整数的n*n阶矩阵,键盘输入矩阵的阶n及矩阵的元素,且找出其主对角线上元素的最大值及其所在的行号。

程序输出参考如下:2.已知有const int M=100; int x[M][M],m;要求:将按照如下规律自动生成的数据存放x数组中,并输出如下图所示三角。

3.编写程序,输入数字n(n<10),输出n层正方形图案。

正方形图案最外层是第一层,依次往内,每层用的数字和层数相同。

程序输出参考如下:4.编写程序,要求输入某班N名同学的序号及3门课成绩,计算每位同学的平均成绩以及每门课的平均成绩(学号为3位整数,成绩也为整数,课程名称为:科目1、科目2、科目3)。

程序输出参考如下:三、实验结果(源程序+ 注释+ 运行界面截图)(要求:(1)提供源程序;(2)源程序包含必要的注释,包括:在程序头部给出本程序功能的注释、所定义变量的用途注释、程序块的功能注释、子函数的功能注释等;(3)运行结果的窗口截图,程序运行结果中输出的第一行内容必须为:程序作者的学号和姓名。

)1.#include <iostream>using namespace std;int main(){cout<<"xxxxxxxxx"<<endl;int i,j,b=0,h=0,a[100][100],n;cout<<"请输入矩阵的阶:";cin>>n;cout<<"请输入一个"<<n<<"*"<<n<<"矩阵,每个数之间用空格间隔,每行输入完成后按回车"<<endl;for (i=1;i<=n;i++)//输入储存数据{for(j=1;j<=n;j++)cin>>a[i][j];}for(i=1;i<=n;i++)//对对角线上的数据进行大小判断{for(j=1;j<=n;j++){if(i==j){if(a[i][j]>b){b=a[i][j];//保存比较后较大的数h=i;//记录比较后较大数的行数}}}}cout<<"对角线上最大的数为:"<<b<<",行号为:"<<h<<endl;system ("pause");return 0;}2.#include <iostream>#include <iomanip>using namespace std;int main(){cout<<"xxxxxxxxx"<<endl;const int M=100; int x[M][M]={0},m;cout<<"请输入m值:";cin>>m;int t=m,i,j,p=m;int h=0;for(j=0;j<m;j++){for(i=0;i<=j;i++){cout<<setw(3)<<t<<setw(6)<<" ";x[i][j]=t;t=t+p;p--;if (j==i){cout<<endl;t=m-h-1;h++;}}p=m;}cout<<"========================================"<<endl;cout<<setw(12)<<" "<<setw(3)<<x[0][0]<<endl;cout<<setw(9)<<" "<<setw(3)<<x[0][1]<<setw(3)<<" "<<setw(3)<<x[1][1]<<endl;cout<<setw(6)<<" "<<setw(3)<<x[0][2]<<setw(3)<<" "<<setw(3)<<x[1][2]<<setw(3)<<" "<<setw(3)<<x[2][2]<<endl;cout<<setw(3)<<" "<<setw(3)<<x[0][3]<<setw(3)<<" "<<setw(3)<<x[1][3]<<setw(3)<<" "<<setw(3)<<x[2][3]<<setw(3)<<" "<<setw(3)<<x[3][3]<<endl;cout<<setw(3)<<x[0][4]<<setw(3)<<" "<<setw(3)<<x[1][4]<<setw(3)<<" "<<setw(3)<<x[2][4]<<setw(3)<<" "<<setw(3)<<x[3][4]<<setw(3)<<" "<<setw(3)<<x[4][4]<<endl;system ("pause");return 0;}3. #include <iostream>using namespace std;int main(){cout<<"xxxxxxxxx"<<endl;int a[100][100],b[100][100],i,j,k,h,n,m;cout<<"请输入正方形层数;";cin>>n;m=2*n-1;for(i=0,k=0;i<n,k<n;i++,k++) //输入保留左上四分之一正方形数据{for(j=0,h=0;j<n,h<n;j++,h++){if(i<j)a[i][j]=i+1;elsea[i][j]=j+1;b[k][h]=a[i][j];}}for(i=0,k=0;i<n,k<n;i++,k++) //将坐上四分之一正方形复制到右上角四分之一正方形{for(j=m-1,h=0;j>=n;j--,h++)a[i][j]=b[k][h];}for(i=m-1,k=0;i>=n,k<n;i--,k++)//复制到左下角四分之一正方形{for(j=0,h=0;j<n,h<n;j++,h++)a[i][j]=b[k][h];}for(i=m-1,k=0;i>=n,k<n;i--,k++)//复制到右下角四分之一正方形{for(j=m-1,h=0;j>=n,h<n;j--,h++)a[i][j]=b[k][h];}for(i=0;i<m;i++)//输出矩阵{for(j=0;j<m;j++){cout<<a[i][j]<<" ";}cout<<endl;}system("pause");return 0;}4.#include <iostream>using namespace std;int main(){cout<<"xxxxxxxxx"<<endl;int a[100][100],i,j,N,m,n;cout<<"请按下列顺序输入:"<<endl;cout<<"学号"<<" "<<"科目1"<<" "<<"科目2"<<" "<<"科目3"<<endl;N=3;m=0;n=0;for(i=0;i<N;i++)//输入同学的学号成绩{for(j=0;j<4;j++){cin>>a[i][j];}}for(i=0;i<N;i++)//计算某同学平均分{for(j=1;j<4;j++)m+=a[i][j];n=m/3;m=0;cout<<"学号为"<<a[i][0]<<"的同学的平均分为:"<<n<<endl;}for(j=1;j<4;j++)//计算某科目平均分{for(i=0;i<N;i++)m+=a[i][j];n=m/3;m=0;cout<<"科目"<<j<<"的平均分为:"<<n<<endl;}system("pause");return 0;}。

西南交大C++实验12.doc

西南交大C++实验12.doc

实验__12__实验报告教学班级:_ 学生学号:学生姓名:实验日期:实验地点:____________(机房)指导教师签名:_____________ 实验成绩:______________一、实验目的1. 掌握指针变量的使用;2. 掌握用指针方式访问一维数组。

二、实验任务1.求,其中x和n均为整数,由键盘输入。

编程输出公式中的每一项的值、以及sum的值。

要求:x, n, sum均用指针。

2.统计一维整型数组中能被3整除的元素个数,并输出。

要求:数组元素由键盘输入;用指针方式访问数组。

3.学生成绩统计:随机产生30名学生的成绩(0~100之间的整数),存放于一维数组中;输出学生成绩,每行10个数。

然后统计并输出90-100、80-80、70-79、60-69、小于60这五个分数段的学生人数。

要求:用指针方式访问数组。

程序运行结果类似于下图:4.编程将一维数组中保存的10个整数循环左移m位,m的值由键盘输入。

例如:数组元素为:8,5,13,21,3,2,6 ,7,12,10;m的值为3,则移动后的数组为:21,3,2,6 ,7,12,10,8,5,13。

要求:用指针方式访问数组,程序中只能使用一个数组。

5.有一组整数,其排列形式为:8,5,13,15,3,11,6,7,22,10,且尾部的10和头部的8首尾相连,构成一个环形。

编程求出相邻的任意四个数之和,并输出。

然后找出相加之和最大的四个数,输出求和的结果以及这四个数。

要求:用指针方式访问数组。

程序运行结果类似于下图,实验报告中的运行结果截图,不能与下图中的数据一样。

三、实验结果(源程序+ 注释)1.#include<iostream>using namespace std;void main(){cout<<"学号:姓名:"<<endl;cout<<"========================================="<< endl;int n,i=1;int *pn=&n;double x,sum,j;double *px=&x,*psum=&sum;cout<<"请分别输入x和n的值:"<<endl;cin>>*px>>*pn;j=x;*psum=0;while(i<=*pn){ *psum=*psum+j;i++;j=j*x/i;}cout<<"sum="<<*psum<<endl;}2.#include<iostream>using namespace std;void main(){cout<<"学号:姓名:"<<endl;cout<<"========================================="< <endl;int a[100],n,j=0,*p;cout<<"请输入一维整型数组中的元素个数:"<<endl;cin>>n;cout<<"请输入一维整型数组中的元素:"<<endl;for(p=a;p<a+n;p++)cin>>*p;for(p=a;p<a+n;p++)if(*p%3==0)j=j+1;cout<<"该数组中能被3整除的元素个数为:"<<j<<endl; }3.#include<iostream>#include<iomanip>#include<ctime>using namespace std;void main(){cout<<"学号:姓名:"<<endl;cout<<"========================================="< <endl;int a[30],*q,i=0; //a[30]用于存放30名学生的成绩int c[5]={0}; //分别存放5个分数段的学生人数int *pa=a,*pc=c; //初值分别存放数组a和c的首地址srand(time(NULL));for(q=a;q<a+30;q++)*q=0+rand()%(100-0+1);cout<<"学生成绩为:"<<endl;for(q=a;q<a+30;q++){cout<<setw(6)<<*q;i=i+1;if(i%10==0)cout<<endl;switch(*q/10){case 10:case 9:*(pc+4)=*(pc+4)+1;break;case 8:*(pc+3)=*(pc+3)+1;break;case 7:*(pc+2)=*(pc+2)+1;break;case 6:*(pc+1)=*(pc+1)+1;break;default:*pc=*pc+1;}}cout<<"学生成绩统计如下:"<<endl;cout<<setw(10)<<"分数段"<<setw(10)<<"90~100"<<setw(10)<<"80~89"<<setw(10)<<"70~79" <<setw(10)<<"60~69"<<setw(10)<<"60以下"<<endl;cout<<setw(10)<<"人数"<<setw(10)<<*(pc+4)<<setw(10)<<*(pc+3)<<setw(10)<<*(pc+2)<<s etw(10)<<*(pc+1)<<setw(10)<<*pc<<endl;}4.#include <iostream>using namespace std;void main( ){cout<<"学号:姓名:"<<endl;cout<<"========================================="<< endl;int a[20],*p;int m,i,t;cout<<"请输入m的值:";cin>>m;cout<<"循环左移"<<m<<"位前,数组元素为:"<<endl;for(p=a;p<a+10;p++)cin>>*p;for(i=0;i<m;i++){p=a;t=*p;for(;p<a+9;p++)*p=*(p+1);*p=t;}cout<<"数组循环左移"<<m<<"位后的数组为:"<<endl;for(p=a;p<a+10;p++)cout<<*p<<" ";cout<<endl;}5.#include<iostream>#include<iomanip>using namespace std;void main(){cout<<"学号:姓名:"<<endl;cout<<"========================================="<< endl;const int N=10;int a[N]={8,5,13,15,3,11,6,7,22,10}; //用于存放10个整数;int b[N]={0},i,j,max,pos,sum; //用于存放a[i]及其后3个整数之和;int *pa=a,*pb=b; //初值分别存放数组a 和b的首地址;cout<<"数组中的元素为:"<<endl;for(i=0;i<N;i++)cin>>*(a+i);for(i=0;i<N;i++){sum=0;for(j=i;j<i+4;j++)if(j>N-1)sum+=*(a+j-N);elsesum+=*(a+j);*(b+i)=sum;}cout<<"相邻4个数之和分别是:"<<endl; max=*(b+0);for(i=0;i<N;i++){cout<<setw(6)<<*(b+i);if(*(b+i)>max){max=*(b+i);pos=i;}}cout<<endl;cout<<"最大的和值是:"<<max<<endl;cout<<"参与求和的4个数是:";for(i=pos;i<pos+4;i++)if(i>N-1)cout<<setw(6)<<*(a+i-N);elsecout<<setw(6)<<*(a+i);cout<<endl;}。

西南交通大学计算机程序设计基础C++实验九

西南交通大学计算机程序设计基础C++实验九

实验 9 实验报告教学班级:_制药一班______ 学生学号:xxxxxx 学生姓名:刘祥龙实验日期:__6.1_______ 实验机房:____x7407____ 助教老师:__________一、实验目的掌握对一组数据进行插入、删除、修改、以及查找的常用算法。

二、实验任务1.建立一个一维数组a,完成以下任务,输入输出格式参见下图。

(1)利用rand()函数产生10个10~100之间的整数,存入数组a中并输出;(2)使用冒泡排序法,将数组a中的数据按降序排列,并输出;(3)使用折半查找法在数组a中查找是否有键盘输入的指定数据,并输出查找结论(没找到或在第X个位置找到)。

2.建立一个一维数组a,完成以下任务,输入输出格式参见下图。

(1)自动生成斐波那契数列前10项的值,存入数组a,并输出。

(斐波那契数列前两项的值为1,从第三项开始,每一项的值是前两项值的和);(2)将键盘输入的一个数据插入数组a,使得数组a中的元素仍然保持有序;(3)删除数组a中的重复数据,并输出删除后的结果;(4)求出数组a所有元素的平均值,并输出;(5)删除数组a中所有低于平均值的元素,并输出删除后的结果。

三、实验结果(源程序+ 注释+ 运行界面截图)(要求:(1)提供源程序;(2)源程序包含必要的注释,包括:在程序头部给出本程序功能的注释、所定义变量的用途注释、程序块的功能注释、子函数的功能注释等;(3)运行结果的窗口截图,程序运行结果中输出的第一行内容必须为:程序作者的学号和姓名。

)1.#include<iostream>;using namespace std;int main(){cout<<"xxxxxxxxx"<<endl;int a[10],i,j,t,top=0,mid,bot=9,x;cout<<"10个10到100间的随机整数为:"<<endl;for(i=0;i<10;i++){a[i]=10+rand()%(100-10+1);cout<<a[i]<<" ";}cout<<endl;//使用冒泡法,将数组a按降序排列,并输出for(i=0;i<9;i++){for(j=0;j<9;j++)if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}cout<<"按从大到小排列的结果为:"<<endl;for(i=0;i<10;i++)cout<<a[i]<<" ";cout<<endl;//使用折半查找完成指定数据的查找,并输出是否查找到的信息cout<<"请输入要查找的数:";cin>>x;while(top<=bot){mid=(top+bot)/2;if(a[mid]==x){break;}elseif(a[mid]<x)bot=mid-1;elseif(a[mid]>x)top=mid+1;}if(top<=bot)cout<<x<<"在第"<<mid+1<<"个位置。

西南交通大学C实验报告

西南交通大学C实验报告

计算机程序设计基础(C++)实验报告软件学院二O一O年三月11实验__1__实验报告教学班级: 6 学生学号:学生姓名:指导教师签名:王健金焕实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务.输出下面图形:12.输入一摄氏温度,输出显示所转换的华氏温度。

(提示:摄氏温度=(华氏温度-32)×5/9)三、实验结果(源程序+ 注释)#include<iostream>using namespace std;void main(){cout<<" * "<<endl;cout<<" * * * * "<<endl;cout<<" * * * * "<<endl;cout<<" * "<<endl;}2233#include<iostream>using namespace std;void main(){double a,b;cout<<"请输入一摄氏温度:"<<endl;cin>>a;b=a*9/5+32;cout<<"对应的华氏温度是:"<<b<<endl;}4 455实验__2__实验报告一、实验目的1.掌握对一般数据的输入和输出格式控制方法;2.掌握对实型数据输出形式的设置和小数位数的控制方法;3.了解数据输入的相关注意事项。

二、实验任务1. 输入一台计算机的编号和该计算机的价格,并输出这些信息。

(如编号为10987654321,价格为5 998.00元,注意此处计算机的编号作为一个整数而言超出了int 所定义的变量的存储范围,因此只能用double 型变量来存储,但输出时要求看见的是整数形式的编号)2. 输入三个同学的学号,计算机和英语课程的考试成绩,并输出这些信息。

西南交大c实验报告

西南交大c实验报告

西南交大c实验报告
《西南交大C实验报告》
在西南交通大学C实验室进行了一项关于C语言编程的实验,旨在帮助学生掌握C语言的基本语法和编程技巧,提高他们的编程能力。

实验内容包括基本的C语言程序设计、数据类型、运算符、控制结构、函数、数组、指针等内容。

在实验过程中,学生们通过实际操作,掌握了C语言的基本语法和编程技巧。

他们学会了如何编写简单的C语言程序,如何使用不同的数据类型和运算符进行计算,如何使用控制结构进行流程控制,如何定义和调用函数,如何使用数组和指针等。

通过实验,学生们不仅掌握了C语言的基本知识,还培养了他们的动手能力和解决问题的能力。

他们在实验中遇到了各种问题,通过自己的努力和老师的指导,逐渐解决了这些问题,取得了丰硕的成果。

通过这次实验,学生们对C语言有了更深入的了解,提高了他们的编程能力,为以后的学习和工作打下了坚实的基础。

同时,实验也让学生们感受到了编程的乐趣,激发了他们对计算机编程的兴趣,为他们的未来发展打开了一扇新的大门。

在未来的学习和工作中,学生们将继续努力,不断提高自己的编程能力,为科技创新和社会发展做出更大的贡献。

西南交通大学将继续为学生提供更多的实践机会和发展平台,帮助他们实现自己的梦想,成为优秀的计算机专业人才。

西南交大c++实验五.doc

西南交大c++实验五.doc

实验__5__实验报告教学班级:______ 学生学号:________ 学生姓名:___________实验日期:__2018/4/17_________ 实验地点:_指导教师签名:__________ 实验成绩:___________一、实验目的1.理解“处理某一或某些操作需要被有条件地重复执行”的编程思路和方法;2.掌握循环结构的程序设计,以及while、do-while和for循环语句的使用方法。

二、实验任务1.一只猴子摘了N个桃子第一天吃了一半又多吃了一个,第二天又吃了余下的一半又多吃了一个,到第十天的时候发现还有一个。

2. 编程实现十进制整数和八进制整数之间的转换(即将10进制数转换为8进制数,或将8进制数转换为10进制数)。

3.计算由键盘输入的两个数的最大公约数和最小公倍数。

4.计算正弦的近似值。

sin(x)=x-x^3/3!+x^5/5!-x^7/7!+……5.由键盘输入若干职工的工资收入(以负数结束),输出每个职工的工资收入、计算并输出每个职工的缴税额,统计并输出职工总人数和总缴税额。

三、实验结果(源程序+ 注释)1.#include<iostream>using namespace std;void main(){cout<<"学号:****** 姓名:***"<<endl;int i,s,sum;s=1;i=9;sum=1;while (i>=1){ s=(s+1)*2;i=i-1;sum=sum+s;}cout<<"总共有"<<sum<<"个桃子"<<endl;}2.include<iostream>using namespace std;void main(){cout<<"学号:****** 姓名:***"<<endl;int number;double income,tax,sumtax;number=1,sumtax=0;cout<<"请输入第"<<number<<"个职工的工资收入:"<<endl;cin>>income;do { if(income<=3500)tax=0;else if(income<=5000)tax=(income-3500)*;else if(income<=8000)tax=(income-3500)*;else if(income<=12500)tax=(income-3500)*;sumtax=sumtax+tax;income=income-tax;cout<<"第"<<number<<"个职工的工资收入为"<<income<<"元"<<endl;cout<<"第"<<number<<"个职工的缴税额为"<<tax<<"元"<<endl;number=number+1;cout<<"请输入第"<<number<<"个职工的工资收入:"<<endl;cin>>income;}while(income>=0);number=number-1;cout<<"职工总人数为"<<number<<"人"<<endl;cout<<"总缴税额为"<<sumtax<<"元"<<endl; }。

C程序设计实验报告(完整版)

C程序设计实验报告(完整版)

工程学院实验报告课程名称: C程序设计课程代码: 8234510学院(直属系):年级/专业/班: 2010级汽电1班学生姓名:学号: 31201008030 实验总成绩:任课教师:开课学院: 工程学院实验中心名称: 交通实验中心西华大学实验报告(理工类)开课学院及实验室:汽车学院机房(5D-215)实验时间:年月日1、实验目的2、实验设备、仪器及材料3、实验内容一般实验:3.1实验方案设计与选择(设计性、创新性实验需写该项内容)3.2实验原理及实验步骤(实验工作原理或实验的主要操作过程)3.3实验记录(核心代码及调试过程)注解:理工科实验需记录实验过程中的数据、图表、计算、现象观察等,实验过程中出现的问题;其它如在计算机上进行的编程、仿真性或模拟性实验需记录程序核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果。

上机实验:3.1上机实验的内容及要求3.2算法设计思想与算法实现步骤3.3程序核心代码,程序调试过程中出现的问题及解决方法3.4 程序运行的结果4、实验总结4.1实验结果分析及问题讨论4.2实验总结心得体会注解:实验总结的内容根据不同学科和类型实验要求不一样,一般理工科类的实验需要对实验结果进行分析,并且对实验过程中问题进行讨论;在计算机上进行的编程、仿真性或模拟性实验需要对上机实践结果进行分析,上机的心得体会及改进意见。

其它实验应总结实验过程写出心得体会及改进意见。

1、实验目的(1) 熟悉C语言的集成环境,了解菜单的使用方法。

(2) 掌握C语言程序上机的编辑、编译、连接、运行的基本步骤。

(3) 了解C语言程序的结构。

2、实验设备、仪器及材料(1)硬件环境微型计算机(Intel x86系列CPU)一台(2)软件环境Windows98/2000/XP操作系统 VC6.0集成开发环境3、实验内容3.1上机实验的内容及要求(1) 熟悉VC中常用菜单项及对应快捷键的使用方法。

(2) 熟悉C语言程序上机的编辑、编译、连接、运行的基本步骤。

西南交大c 实验答案范文

西南交大c  实验答案范文

实验__1__实验报告教学班级:20 学生学号:学生姓名:实验日期:2012.3.15实验地点:7308 (机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务1.新建源程序文件,编辑以下程序,编译,链接,得出运行结果,并保存程序:#include <iostream>using namespace std;void main( ){ cout<<'a'<<endl;cout<<'\141'<<endl;cout<<'\x61'<<endl;}2.新建源程序文件,编辑以下程序,编译,链接,运行,输入36和64,得出运行结果,并保存程序:#include <iostream>using namespace std;int main(){ float num1,num2,sum;cout << "Enter first number: ";cin >> num1;cout << "Enter second number: ";cin >> num2;sum=num1+num2;cout << "The sum is " << sum << endl;}三、实验结果1.aaa2.100实验__2__实验报告教学班级:20 学生学号:学生姓名:实验日期:2012.3.22 实验地点:7308 (机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.简单输入和输出语句的练习。

西南交大c++实验报告11

西南交大c++实验报告11

西南交大c++实验报告11实验 11实验报告教学班级:_26_学生学号:_2015_学生姓名:__实验日期:___2016.6.3____实验地点:__7307__(机房)指导教师签名:_____________ 实验成绩:______________一、实验目的1.了解存放常用系统函数的头文件;2.掌握常用系统函数的功能及使用方法;3.掌握自定义有返回值函数的概念、定义及使用。

二、实验任务1、实现功能:1~10加减乘除运算训练系统。

(1)主函数功能:随机产生一个1~10加减乘除算术式(数字在1~10之间随机产生,运算符在加减乘除中随机产生),要求用户输入计算结果,通过调用子函数得到正确答案,判断用户的计算结果是否正确并输出结论。

(2)子函数功能:定义有返回值函数,完成算术式的计算功能。

2、实现功能:求两个整数的最大公约数、最小公倍数。

(1)主函数功能:从键盘输入两个整数,通过调用两个子函数分别得到最大公约数、最小公倍数并输出结果。

(2)子函数1功能:定义有返回值函数,求两个整数的最大公约数。

子函数2功能:定义有返回值函数,求两个整数的最小公倍数。

3.实现功能:根据键盘输入的整数x,计算分段函数sign(x)的值。

(1)主函数功能:从键盘输入整数x,通过调用子函数得到计算结果并输出。

(2)子函数功能:定义有返回值函数,实现该分段函数的功能。

三、实验结果(源程序+ 注释)/*1、实现功能:1~10加减乘除运算训练系统。

(1)主函数功能:随机产生一个1~10加减乘除算术式(数字在1~10之间随机产生,运算符在加减乘除中随机产生),要求用户输入计算结果,通过调用子函数得到正确答案,判断用户的计算结果是否正确并输出结论。

(2)子函数功能:定义有返回值函数,完成算术式的计算功能。

*/#include<iostream>#include<cstdlib>#include<ctime>using namespace std;void main(){cout << "Name:" << endl;cout << "Number:20" << endl;int x;double a, b, y, answer = 0.0;//定义四个整型变量 char n;//定义一个字符型变量srand(time(NULL));//初始化随机数产生器a = 1 + rand() % (10 - 1 + 1);//产生1~10的随机数b = 1 + rand() % (10 - 1 + 1);//产生1~10的随机数x = 1 + rand() % (4 - 1 + 1);//产生1~4的随机数 switch (x)//将x的值分别对应1,2,3,4时赋予n 相应的字符,方便下文输出{case 1:n = '+'; break;case 2:n = '-'; break;case 3:n = '*'; break;case 4:n = '/'; break;cout << "请计算下面的算式:" << endl;//提示语句 cout << a << n << b << "=";//提示语句cin >> y;//从键盘输入用户的计算结果double result(int x, double a, double b); //调用自定义函数之前的说明answer = result(x,a,b);//赋值if (answer == y) {cout << "计算正确" << endl;}//计算正确else {cout << "计算错误,该算式的正确答案是:" << answer << endl;}//计算错误}double result(int x,double y,double z)//自定义函数{double answer;switch (x)//当形参变量x分别为1,2,3,4时,采用不同的运算符进行计算{case 1:answer = y + z; break;case 2:answer = y - z; break;case 3:answer = y * z; break;case 4:answer = y / z; break;return answer;}/*实现功能:求两个整数的最大公约数、最小公倍数。

西南交大c实验报告

西南交大c实验报告

实验_8_实验报告教学班级:_26_学生学号:_201_学生姓名:指导教师签名: __________ 实验成绩: _____________、实验目的1 •掌握对数值型一维数组的使用方法;2 •掌握对数组的插入、删除、修改、排序和查找等常用算法。

、实验任务1.设有一批学生的程序设计课程的考试成绩(学生人数最多为N=100人,数据如下:(提示:可以建立三个一维数组来存放学生的数据,其中:学号为一个 long 类型的数组studentID ,姓名为一个 string 类型的数组name ,成绩为一个int 类型的数组grade )(1)由键盘获取学生人数 n ,要求学生人数n 的取值范围11到N-2 ;(2) 由键盘获取学生的相关数据;(3) 用选择排序法将学生的数据按学号进行升序排列并输出排序后的学生数据; 2.在任务1的基础上,在学生数据中,完成以下任务:(1 )键盘输入一个学生的学号,用折半查找法查找是否有该学生,若有该学生则输出该 学生的所有信息,按如下格式输出:若没有该学生,则输出“查无此人”的信息。

(2 )插入一个新学生的数据,要求插入后学生的数据任按学号升序排列。

3. 在任务1的基础上,在学生数据中,完成以下任务: ⑴用选择排序法将学生数据按学生程序设计课程成绩降序排列。

⑵ 键盘输入一个学生的学号和程序设计课程的新成绩,在学生数据中查找是否有该学 生,若有实验日期: 5.26 实验地点:机房)学号2015112324张思德程序设计成绩72该学生则用键盘输入的新成绩替换该学生的原成绩,否则输出“查无此人”的信息。

三、实验结果(源程序+注释)//输入并升序排列学生的成绩#in clude<iostream>#in clude<stri ng>#in clude<ioma nip>using n amespace std;void mai n(){cout << "Name:" << en dl;cout << "Number:20" << endl;long stude ntlD[100], tran s1;〃定义两个长整型变量,其中一个是数组stri ng name[100], tran s2;// 定义两个字符串类变量,其中一个是数组int grade[100], n, i, j,trans3;cout << "请输入学生人数n (11 w n < 98)" << endl;cin >> n;//从键盘输入学生的人数for (i = 0; i <= n - 1; i++)// 利用循环结构录入各学生的信息{cout << "请依次输入第"<< i + 1 << " 个学生的学号、、成绩"<< endl; cin >> stude ntlD[i] >>n ame[i] >> grade[i];}for (i = 0; i <= n - 1; i++)// 利用嵌套循环和条件语句将信息按学号进行升序排列{for (j = i + 1; j <= n -1; j++){if (stude ntlD[i] > stude ntID[j]){tran s1 = stude ntlD[i]; stude ntlD[i] = stude ntlD[j]; stude ntlD[j]= tran s1;trans2 = n ame[i]; n ame[i] = n ame[j]; n ame[j] = tran s2;trans3 = grade[i]; grade[i] = grade[j]; grade[j] = tran s3;}}}cout << "按学号升序排序后学生的成绩信息为:"<< endl;cout << setw(10) << " 学号"<< setw(10) << "" << setw(10) << " 成绩"<< endl;// 限定输出结果格式for (i = 0; i <= n - 1; i++)// 按特定格式输出排列后的学生信息{cout << setw(10) << studentID[i] << setw(10) << name[i] << setw(10) << grade[i]<< en dl;}/*键盘输入一个学生的学号,用折半查找法查找是否有该学生*/int bot = n - 1, mid, top = 0;long nu mber;cout << "请输入待查学生的学号"<< endl;cin >> nu mber;while (top <= bot)〃折半查找法查找信息库中某个学号的学生{mid = (bot + top) / 2;if (stude ntlD[mid] == nu mber) break;else if (stude ntlD[mid] > nu mber) top = mid + 1;else if (stude ntlD[mid] < nu mber) bot = mid - 1;}if (bot >= top)//当这个学生存在时,以特定格式输出该学生的信息{cout << "该学生的信息为:"<< endl;cout << setw(10) << " 学号"<< setw(10) << "" << setw(10) << " 成绩"<< endl;cout << setw(10) << number << setw(10) << name[mid] << setw(10) << grade[mid] << en dl;}else if(top>=bot) cout << " 查无此人"<< endl;//当该学生不存在时,显示"查无此人”/*插入一个新学生的数据,要求插入后学生的数据按学号升序排列*/cout << "请依次输入要插入的学生学号、、成绩信息:"<< endl;cin >> stude ntlD[ n] >> n ame[ n] >> grade[ n];〃录入要插入的学生的信息for (i = 0; i <= n; i++)〃利用嵌套循环和条件语句,将插入后学生的数据按学号升序排列{for (j = i + 1; j <= n; j++){if (studentID[i] > studentID[j]){tran si = stude ntlD[i]; stude ntlD[i] = stude ntlD[j]; stude ntlD[j]= tran si;trans2 = n ame[i]; n ame[i] = n ame[j]; n ame[j] = tran s2;trans3 = grade[i]; grade[i] = grade[j]; grade[j] = tran s3;}}}cout << "插入并排序后学生的成绩信息为:"<< endl;cout << setw(10) << " 学号"<< setw(10) << "" << setw(10) << " 成绩"<< endl;// 限定提示语句的输出格式for (i = 0; i <= n; i++){cout << setw(10) << studentlD[i] << setw(10) << name[i] << setw(10) << grade[i]<< endl;//输出排序结果}#in clude<iostream> #in clude<stri ng> #in clude<ioma nip> using n amespace std; void mai n() {cout << "Name:" << en dl; cout << "Number:201" << endl;long stude ntlD[100], tran s1;〃 定义两个长整型变量,其中一个是数组 stri ng name[100], tran s2;〃 定义两个字符串类变量,其中一个是数组 int grade[100], n, i, j, trans3;cout << "请输入学生人数 n (11 w n < 98)" << endl; cin >> n;□成缔、姓客、成詡誌/*在任务1的基础上,在学生数据中,完成以下任务:⑴用选择排序法将学生数据按学生程序设计课程成绩降序排列。

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

实验__8__实验报告教学班级:_26_ 学生学号:_201_ 学生姓名:_ _实验日期:__5.26___ 实验地点:_________(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.掌握对数值型一维数组的使用方法;2.掌握对数组的插入、删除、修改、排序和查找等常用算法。

二、实验任务1. 设有一批学生的程序设计课程的考试成绩(学生人数最多为N=100人,数据如下:(提示:可以建立三个一维数组来存放学生的数据,其中:学号为一个long类型的数组studentID,姓名为一个string类型的数组name,成绩为一个int类型的数组grade)(1)由键盘获取学生人数n,要求学生人数n的取值范围11到N-2;(2)由键盘获取学生的相关数据;(3)用选择排序法将学生的数据按学号进行升序排列并输出排序后的学生数据;2. 在任务1的基础上,在学生数据中,完成以下任务:(1)键盘输入一个学生的学号,用折半查找法查找是否有该学生,若有该学生则输出该学生的所有信息,按如下格式输出:学号程序设计成绩2015112324 张思德72若没有该学生,则输出“查无此人”的信息。

(2)插入一个新学生的数据,要求插入后学生的数据任按学号升序排列。

⒊在任务1的基础上,在学生数据中,完成以下任务:⑴用选择排序法将学生数据按学生程序设计课程成绩降序排列。

⑵键盘输入一个学生的学号和程序设计课程的新成绩,在学生数据中查找是否有该学生,若有该学生则用键盘输入的新成绩替换该学生的原成绩,否则输出“查无此人”的信息。

三、实验结果(源程序+ 注释)//输入并升序排列学生的成绩#include<iostream>#include<string>#include<iomanip>using namespace std;void main(){cout << "Name:" << endl;cout << "Number:20" << endl;long studentID[100], trans1;//定义两个长整型变量,其中一个是数组string name[100], trans2;//定义两个字符串类变量,其中一个是数组int grade[100], n, i, j, trans3;cout << "请输入学生人数n (11≤n≤98)" << endl;cin >> n;//从键盘输入学生的人数for (i = 0; i <= n - 1; i++)//利用循环结构录入各学生的信息{cout << "请依次输入第" << i + 1 << "个学生的学号、、成绩" << endl;cin >> studentID[i] >> name[i] >> grade[i];}for (i = 0; i <= n - 1; i++)//利用嵌套循环和条件语句将信息按学号进行升序排列{for (j = i + 1; j <= n - 1; j++){if (studentID[i] > studentID[j]){trans1 = studentID[i]; studentID[i] = studentID[j]; studentID[j] = trans1;trans2 = name[i]; name[i] = name[j]; name[j] = trans2;trans3 = grade[i]; grade[i] = grade[j]; grade[j] = trans3;}}}cout << "按学号升序排序后学生的成绩信息为:" << endl;cout << setw(10) << "学号" << setw(10) << "" << setw(10) << "成绩" << endl;//限定输出结果格式for (i = 0; i <= n - 1; i++)//按特定格式输出排列后的学生信息{cout << setw(10) << studentID[i] << setw(10) << name[i] << setw(10) << grade[i] << endl;}/*键盘输入一个学生的学号,用折半查找法查找是否有该学生*/int bot = n - 1, mid, top = 0;long number;cout << "请输入待查学生的学号" << endl;cin >> number;while (top <= bot)//折半查找法查找信息库中某个学号的学生{mid = (bot + top) / 2;if (studentID[mid] == number) break;else if (studentID[mid] > number) top = mid + 1;else if (studentID[mid] < number) bot = mid - 1;}if (bot >= top)//当这个学生存在时,以特定格式输出该学生的信息{cout << "该学生的信息为:" << endl;cout << setw(10) << "学号" << setw(10) << "" << setw(10) << "成绩" << endl;cout << setw(10) << number << setw(10) << name[mid] << setw(10) << grade[mid] << endl;}else if(top>=bot) cout << "查无此人" << endl;//当该学生不存在时,显示“查无此人”/*插入一个新学生的数据,要求插入后学生的数据按学号升序排列*/cout << "请依次输入要插入的学生学号、、成绩信息:" << endl;cin >> studentID[n] >> name[n] >> grade[n];//录入要插入的学生的信息for (i = 0; i <= n; i++)//利用嵌套循环和条件语句,将插入后学生的数据按学号升序排列{for (j = i + 1; j <= n; j++){if (studentID[i] > studentID[j]){trans1 = studentID[i]; studentID[i] = studentID[j]; studentID[j] = trans1;trans2 = name[i]; name[i] = name[j]; name[j] = trans2;trans3 = grade[i]; grade[i] = grade[j]; grade[j] = trans3;}}}cout << "插入并排序后学生的成绩信息为:" << endl;cout << setw(10) << "学号" << setw(10) << "" << setw(10) << "成绩" << endl;//限定提示语句的输出格式for (i = 0; i <= n; i++){cout << setw(10) << studentID[i] << setw(10) << name[i] << setw(10) << grade[i] << endl;//输出排序结果}}/*在任务1的基础上,在学生数据中,完成以下任务:⑴用选择排序法将学生数据按学生程序设计课程成绩降序排列。

⑵键盘输入一个学生的学号和程序设计课程的新成绩,在学生数据中查找是否有该学生,若有该学生则用键盘输入的新成绩替换该学生的原成绩,否则输出“查无此人”的信息。

*/#include<iostream>#include<string>#include<iomanip>using namespace std;void main(){cout << "Name:" << endl;cout << "Number:201" << endl;long studentID[100], trans1;//定义两个长整型变量,其中一个是数组string name[100], trans2;//定义两个字符串类变量,其中一个是数组int grade[100], n, i, j, trans3;cout << "请输入学生人数n (11≤n≤98)" << endl;cin >> n;for (i = 0; i <= n - 1; i++){cout << "请依次输入第" << i + 1 << "个学生的学号、、成绩" << endl;cin >> studentID[i] >> name[i] >> grade[i];//利用循环结构录入各学生的信息}for (i = 0; i <= n - 1; i++)//利用嵌套循环和条件语句将信息按学号进行升序排列{for (j = i + 1; j <= n - 1; j++){if (studentID[i] > studentID[j]){trans1 = studentID[i]; studentID[i] = studentID[j]; studentID[j] = trans1;trans2 = name[i]; name[i] = name[j]; name[j] = trans2;trans3 = grade[i]; grade[i] = grade[j]; grade[j] = trans3;}}}cout << "按学号升序排序后学生的成绩信息为:" << endl;cout << setw(10) << "学号" << setw(10) << "" << setw(10) << "成绩" << endl;for (i = 0; i <= n - 1; i++)//输出按学号进行升序排列后的学生信息{cout << setw(10) << studentID[i] << setw(10) << name[i] << setw(10) << grade[i] << endl;}for (i = 0; i <= n - 1; i++)//利用嵌套循环和条件语句将信息按成绩进行降序排列{for (j = i + 1; j <= n - 1; j++){if (grade[i] < grade[j]){trans1 = studentID[i]; studentID[i] = studentID[j]; studentID[j] = trans1;trans2 = name[i]; name[i] = name[j]; name[j] = trans2;trans3 = grade[i]; grade[i] = grade[j]; grade[j] = trans3;}}}cout << "按成绩降序排序后学生的成绩信息为:" << endl;cout << setw(10) << "学号" << setw(10) << "" << setw(10) << "成绩" << endl;for (i = 0; i <= n - 1; i++)//输出按成绩进行降序排列后的学生信息{cout << setw(10) << studentID[i] << setw(10) << name[i] << setw(10) << grade[i] << endl;}cout << "请输入一个学生的学号和新成绩" << endl;cin >> studentID[n] >> grade[n];//从键盘输入学生的学号和新成绩int top=0, bot=n-1, mid;while (top <= bot){mid = (bot + top) / 2;if (studentID[mid] == studentID[n]) break;else if (studentID[mid] > studentID[n]) top = mid + 1;else if (studentID[mid] < studentID[n]) bot = mid - 1;}if (bot >= top)//若该学生存在,输出成绩更新后所有学生的信息{grade[mid] = grade[n];cout<<"更新后的学生信息为:" << endl;cout << setw(10) << "学号" << setw(10) << "" << setw(10) << "成绩" << endl;for (i = 0; i <= n - 1; i++){cout << setw(10) << studentID[i] << setw(10) << name[i] << setw(10) << grade[i] << endl;}}else if (top > bot) cout << "查无此人" << endl;//若该学生不存在,显示“查无此人”}。

相关文档
最新文档