当前位置:编程学习 > C/C++ >>

急求c++课件设计

1.集合元素不超过100个。

2.集合用数组表示(数组预先定义大一些)。

功能有:

1.  程序初始运行时任意输入一批初始数放入集合(可少可多,不少于5个,不超过30个)。

2.  对该批数排序存放。

程序完成前两步后,通过循环可以不断选择下面的某项功能执行(用提示语句列出菜单,通过读入某变量值,可用switch判断该变量,如接受到1表示执行第一项,依次类推,某项功能执行完可以返回菜单,也可退出系统):

3.  任意插入一个数到排好序的集合中,保持集合依然有序。

4.  在集合中删除一个元素。

5.  查询某个值是否在集合中(该数由键盘输入)。

6.  输出该数据集合的最大值和最小值。

7.  输出数据集合中所有奇数。

8.  找出数据集合中的所有素数。

答案:程序工作量太大啦,按照你这分完整的程序清单很不值啊,我把主要思想告诉你吧:

1:

int Array[50];
    cout<<"please enter at least 5 numbers, stop enter with entering number: 000"<<endl;
    for(i=0;i<50;i++)
    {
            cout<<"please enter the "<<i+1<<" number"<<endl;
            cin>>Array[i];
            if(i<4)
            {
                   if(Array[i]==000)
                   {
                   break;
                   }
            }
            else
            {
                cout<<"enter at least 5 number"<<endl;
            }
            if(i>30)
            {
                    cout<<"enter too many numbers"<<endl;
                    return 0;
            }   
    }

用这个来实现输入;

2:排序就采用简单的冒泡排序方法,

void order(int &Order[50])//这个用法我不知道对不对,这里用了地址传递,通过改变order[]来改变array[]

   int j,temp;
    for(j=0;j<50;j++)
    {
                     if(Order[j]>Order[j+1])
                     {
                         temp=Order[j+1];
                         Order[j+1]=Order[j];
                         Order[j]=temp;
                     }
    }
)

然后就能在main()函数中用cin和switch函数来获得并处理用户的要求。

3;在该模式下就用上面第一个函数,不过要注意,要始终保持i为全局变量,要不然会改变i的值,然后就再次调用order函数;

4:这个要求不明显,没有指明怎么删除,是不是在键盘输入以后就删除,如果是,就能用一下方法:

获得这个数m,然后用find函数(下面会说道),找到这个数的数组,比如说是array[25],然后就用类似冒泡排序的方法,把array[25]=array[26],这样,逐个逐个把数往前移;当然这是通过for循环语句实现;

5:再次采用类似冒泡排序的方法,获得这个数以后,用循环语句逐个逐个地检查,如果存在就显示在屏幕上,就比如:for(n=0;n<50;n++) if(array[n]=那个数),cout<<……

6:这个就简单啦,由于采用冒泡排序,最大和最小那个就是数组的第一个和最后一个数;

7:这个就是把数组的数逐个逐个除以2.原理就是看这个数除以2有没有余数,大概是:if(array[i]%2==0)就是偶数,反之就是奇数啦,在用for语句输出;

8:素数就是除了一和他本身外没有数能把他除尽(这个小学知识,哥忘了,不知道对不对)要判断一个数n是不是素数,按照笨方法是把2~n-1之中的数分别除n,如果有数能把他除尽,就是没有余数(同上)就是素数。根据哥的观察(装B中……)其实这样的计算量太大,只要判断2~n/2有没有数能把他除尽就行了,不需要白白多一半计算量,大概就是双重嵌套for语句,计算时间会有些长,for(k=2;k<(array[i]/2)+1;k++)然后就用array(i)/k判断其中有没有余数为0的就可以知道有没有数除尽,就可以知道这个array[i]是不是素数,其实如果用指针来运算了话速度会快很多,比如做一个指针p指向数组首地址,通过指针自加(因为数组的地址是连续的)p++来改变指向的不同数据,再用*p(取值运算符)获取数组的值再运算会快很多很多,只不过很容易出错且编写复杂,就不说了,有什么不懂再问吧。

以上纯手打,望采纳

上一个:比较好的c++学习网站
下一个:如何用C++做游戏外挂?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,