博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象程序设计2018上机题(4)
阅读量:4159 次
发布时间:2019-05-26

本文共 2039 字,大约阅读时间需要 6 分钟。

/*定义一个类,用于对10个字符串进行管理。要求:(1)在定义对象时,能够为字符串清空;(2)定义变换构造函数,能够为字符串赋以给定的字符串;(3)定义复制构造函数;(4)定义成员函数,能够为字符串输入数据;(5)定义成员函数,能够将字符串显示出来;(6)定义成员函数,用于找出每个字符串中的最小值(ASCII码最小的字符)及其个数,最小值由函数值返回,个数由参数带回;(7)定义成员函数,用于为字符串按从小到大顺序排序。(8)定义main函数,合理地调用上述每个函数。*/#include 
#include
#include
#define NUM 10using namespace std;class cString{private: string str[NUM];public: cString(); cString(string s[NUM]); cString(const cString &s); //~cString(); char* min_char(int num[]); void sort(); void input(); void disp();};char ch[NUM];cString::cString(){ for (int i = 0; i < NUM; i++) { str[i] = ""; }}cString::cString(string s[NUM]){ for (int i = 0; i < NUM; i++) { str[i] = s[i]; }}cString::cString(const cString& s){ for (int i = 0; i < 10; i++) { str[i] = s.str[i]; }}char* cString::min_char(int num[]){ for (int i = 0; i < NUM; i++) { ch[i] = str[i][0]; num[i] = 0; for (int j = 0; str[i][j] != '\0'; j++){ if (str[i][j] < ch[i]){ ch[i] = str[i][j]; num[i] = 0; } if (str[i][j] == ch[i]) num[i]++; } } return ch;}void cString::sort(){ cout << "字符串排序" << endl; int i = 9; //初始时,最后位置保持不变 while (i> 0) { int pos = 0; //每趟开始时,无记录交换 for (int j = 0; j < i; j++) { if (str[j]>str[j + 1]){ pos = j; //记录交换的位置 string tmp = str[j]; str[j] = str[j + 1]; str[j + 1] = tmp; } } i = pos; //为下一趟排序作准备 } disp();}void cString::input(){ cout << "请输入" << NUM << "个字符串:"<< endl; for (int i = 0; i < NUM; i++) { cin >> str[i]; }}void cString::disp(){ cout << "字符串组如下:" << endl; for (int i = 0; i < NUM; i++) { cout << str[i] << endl; }}int main(){ string s[NUM] = { "a11","s22","d33","f44","g55","h66","j77","k88","l99","a00" }; cString str1;//缺省构造并清零 str1.input(); cout << "str1 "; str1.disp(); int num[NUM] = { 0 }; char* min_ch = str1.min_char(num); cout << "最小值及对应个数依次为: " << endl; for (int i = 0; i < NUM; i++) { cout << min_ch[i] << '\t' << num[i] << endl; } cString str2(s); cout << "str2 "; str2.disp(); cString str3 = str2;//变换构造函数 cout << "str3 "; str3.disp(); str3.sort(); system("pause"); return 0;}

 

转载地址:http://mqdxi.baihongyu.com/

你可能感兴趣的文章
操作系统介绍
查看>>
Desktop Linux: The Dream Is Dead
查看>>
我的9年IT路
查看>>
任正非:让用户像用电一样享受云计算
查看>>
学习技术的几个境界
查看>>
计算机世界:免费的代价
查看>>
方兴东:中国网站十年
查看>>
2010年微软和谷歌十大战场:从桌面到浏览器
查看>>
服务器虚拟化的未来之路
查看>>
写给我们这些浮躁的系统工程师
查看>>
和平分手?你根本不知道吴恩达在百度经历了什么
查看>>
业余研究:关于腾讯与他的QQ帝国
查看>>
马云校长湖畔大学第三期讲义完整版
查看>>
iPhone为什么比Android好
查看>>
小程序的今天就是微信指数的明天
查看>>
从互联网到人工智能,BAT这七年来到底做了什么
查看>>
2012年十大科技趋势:Siri将震惊世界
查看>>
2017(第十届)中国绿公司年会马云演讲
查看>>
李彦宏:睡不着觉不是因对手
查看>>
从手Q与微信之争,看腾讯内在的真实矛盾与战略
查看>>