c++实验6

一、问题与代码

/*  
* 文件名称:c++实验6
* 作    者:刘寅
* 完成日期:2016年5月24日  
* 版 本 号:v1.0  
* 对任务及求解方法的描述部分: 对数组进行排序,插入和删除数组元素
* 输入描述:输入任意的十个数
* 问题描述:我的第六个C++程序,熟悉数组的意义和运用
* 程序输出:排序、插入和删除数组中元素 
* 问题分析:对数组排序,插入和删除元素不改变数组顺序
* 算法设计:略  
*/ 
#include<iostream.h>
void main()
{
	
	int a[10],i,j,k,h,temp,x,y;
	cout<<"请任意输入不重复的十个数:";
	for(i=0;i<10;i++)
		cin>>a[i];
	for(i=0;i<9;i++)
	    for(j=0;j<9-i;j++)
		    if(a[j]>a[j+1])
			{
			    temp=a[j];a[j]=a[j+1];a[j+1]=temp;
			}
	cout<<"排序后数组为:";
	    for(i=0;i<10;i++)
	        cout<<a[i]<<" ";
	        cout<<endl;
		

	cout<<"请输入要删除的数x:";
	cin>>x;
	for(i=0;i<10;i++)
		if(a[i]==x)
		{
	    	for(k=i;k<9;k++)
				a[k]=a[k+1];
		}
				
	cout<<"删除数x后的数组为:";
	    for(i=0;i<9;i++)
	        cout<<a[i]<<" ";
	        cout<<endl;


        cout<<"请输入要插入的数y:";
	cin>>y;
	if(a[0]>=y) 
	{
		for(i=9;i>0;i--)
		{	a[i]=a[i-1];}
		a[0]=y;
	}
        else if(a[8]<=y) a[9]=y;
	else
	{
		for(i=8;i>=0;i--)
		{	
			if(a[i]<=y&&a[i+1]>y)
			{
				
				for(h=9;h>i+1;h--)
				{
					a[h]=a[h-1];
				}
				a[i+1]=y;
			}
		}
	}
	cout<<"插入数y后的数组为:";
        for(i=0;i<10;i++)
	        cout<<a[i]<<" ";
	        cout<<endl;
}

二、运行结果


三、心得体会

        这是我写过的最长的一个c++程序,用了很多时间,也不断的在实验和改进,不断的探索,现在终于完成了,虽然有些不完美,但是可以达到题目要求,所以只要不断的去尝试,一定会成功的,加油。

四、知识点总结

        这是关于数组的综合运用,对数组进行排序,插入和删除元素,过程较为复杂,需要了解数组的存在形式,数组的各项意义,以及对数组的操作会出现怎样的结果等等,特别是数组的排序,需要知道冒泡法的趟数等等,,慢慢的体会数组一定可以很好的掌握的。

1. 设计一个评选优秀教师和学生的程序,其类结构如图1所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出 2.编写一个程序实现图书和杂志销售管理。当输入一系列图书和杂志销售记录后,将销售良好(图书每月售500本以上,杂志每月2500本以上)的图书和杂志名称显示出来。 3.扩写程序: 以下程序的功能为计算正方体的表面积和体积。增加两个类Globe和Cylinder,求球体和圆柱体的表面积和体积。在基类中定义的公共数据成员radius,可作为正方体的边长、球体的半径、圆柱体的底面半径。(补充类结构图) 4、声明二维坐标类作为基类派生出圆类, 把圆类作为基类,派生圆柱体类。 其中,基类二维坐标类有成员数据:x、y坐标值;有成员函数:构造函数实现对基类成员数据的初始化、输出的成员函数,要求输出坐标位置。 派生类圆类有新增成员数据:半径(R);有成员函数:构造函数实现对成员数据的初始化、计算圆面积的成员函数、输出半径的成员函数。 派生圆柱体类新增数据有高(H);新增成员函数有:构造函数、计算圆柱体体积的函数和输出所有成员的函数。请完成程序代码的编写、调试。 实验步骤如下: 先定义一个基类point,及其成员函数,先测试一下: 然后以public的继承方式定义子类circle 再定义一个派生类cylinder 最后在main主函数中定义类对象,调用函数实现其功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值