C++实验六—项目1:数组操作

一、问题及代码

/*    
* 文件名称:  shchu.cpp  
* 作    者:  习佳星   
* 完成日期: 2017年5月5日   
* 版 本 号:  v1.0    
* 对任务及求解方法的描述部分: 利用数组定义一个不重复的有初值的10个元素的整数数组a,利用冒泡法对数组a排序后完成删除和插入操作
* 输入描述:  略    
* 问题描述:  较复杂,需要熟悉掌握数组的运用和细节处理 
* 程序输出:  “ 1 2 3 4 5 8 9 14 16 76  输入要删除的数x1:3   删除x1后的有序数组为:1 2 4 5 8 9 14 16 76  输入要插入的数x2:15  删除操作后插入x2后的有序数组为:1 2 4 5 8 9 14 15 16 76” 
* 问题分析:  略  
* 算法设计:  略  
*/    
#include <iostream>  
using namespace std;  
int main()  
{  
    int a[10]={2,3,1,5,76,9,16,8,14,4},i,j,t;  
    int x1,x2,k,m;  
	for(i=0;i<9;i++)  
	{
		for(j=0;j<9-i;j++)  
		{  
			if(a[j]>a[j+1])  
			{  
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;  
			}  
		}
	}
		for(i=0;i<10;i++)  
            cout<<a[i]<<" ";
		cout<<endl;  
		cout<<"输入要删除的数x1:";
		cin>>x1;  
		for(i=0;i<10;i++)  
		{
			if(a[i]==x1)  
				k=i;
		}  
		for(i=k;i<9;i++)  
            a[i]=a[i+1];  
		cout<<"删除x1后的有序数组为:";   
		for(i=0;i<9;i++)  
            cout<<a[i]<<" ";
		cout<<endl;  
		cout<<"输入要插入的数x2:";
		cin>>x2;  
		for(i=0;i<9;i++)    
        {    
            if(a[i]>=x2)    
            {    
                m=i;    
                break;    
            }    
        }    
        for(i=9;i>m;i--)    
            a[i]=a[i-1];    
        a[i]=x2;    
        cout<<"删除操作后插入x2后的有序数组为:";    
        for(i=0;i<10;i++)    
            cout<<a[i]<<" ";    
        cout<<endl;   
        return 0;  
}  


二、运行结果


三、心得体会:

         数组的排序,删除,插入是学习数组的基本操作,因此,掌握了这三个操作对于数组的学习就可以说是一大进步,值得高兴。

         在操作过程遇到了不少难题,花了大概一两小时,这说起来可能比较惭愧,但事实就是这样,很多都没有弄得很清楚,所以编译过程有点磕磕碰碰,在翻阅老师是上课讲的笔记后,仔细揣摩才完成了。其实很多操作老师都已经讲过了 ,只要上课认真听,做好相应的笔记,这些编译都不是什么大问题。

四、知识点总结:

        编译进行排序时用的是冒泡法,主要用了循环的嵌套以及一些逻辑思维,正确选择好循环的次数才不会错。排完序后就是删除操作,先要用If语句判断x1的位置在哪,然后进行删除操作,且不能乱序,这就是老师上课讲了的技巧,并且此时循环次数减1;接着是插入,插入同样的要判断x2的位置,这个步骤用到了break。

       在数组中break的使用很关键,便于编程,下一步就是老师将过了很多次的如何再插入一个数后不乱序,最后整个编译完成。总结一点就是熟悉循环,break,if语句等一些重点操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值