c1-第三周

文章目录

  • 1月份
    • 2.定义一个整形数组arr
    • 2.定义整形栈s
    • 3.输入一个字符串包括大小写和数字,将其中的大写英文字母改为小写,并且输出数字个数
    • 4.根据下面数据,编程实现要求功能:
  • 9月
    • 1.编写程序实现以下功能或问题
    • 3.完成以下功能
    • 4.对运算符“%”重载,实现数组各对应元素求模运算,如:a[3]={ 11,22,37 } ,b[3]={ 3,6,8 } ,则 a%b={ 2,4 ,5 } 。具体要求:

1月份

2.定义一个整形数组arr

(1)把arr中的偶数去掉后保存到一个新数组中
(2)输出arr数组元素,输出新数组元素,并输出新旧数组长度之差

void test_week3_1(){
    int arr1[9]={1,2,3,4,5,6,7,8,9};
    int arr2[9];
    int k = 0;
    for(int i = 0;i<9;i++){
        if(arr1[i]%2 != 0){
            arr2[k] = arr1[i];
            cout << arr2[k] << endl; //打印新数组
            k++;
        }
    }
    cout << 9-k<< endl;
}

在这里插入图片描述

2.定义整形栈s

(1)栈s中添加多个元素
(2)遍历并输出元素

#include <stack> //导栈
void test_week_3(){
    stack<int> s; //定义int类型的栈(容器)

    s.push(1);//放进去  底
    s.push(2);//放进去
    s.push(3);//放进去 顶

    for(int i = 0;i<3;i++){
        cout << s.top()<< endl; //3 2 1
        s.pop();//弹走
    }
}

3.输入一个字符串包括大小写和数字,将其中的大写英文字母改为小写,并且输出数字个数

(1)按要求提示并输入要转换的字符串
(2)循环判断每个字符并转换并判断数字的个数
(3)正确输出转换后的结果和数字的个数

int main(){

    string str1 = "abc111AAA";
    int num = 0;
    for(int i = 0 ;i<str1.length();i++){ //i下标
        if(isdigit(str1[i])){
            num++;
        } else if(isupper(str1[i])){
            str1[i]=tolower(str1[i]);
        }
    }
    cout << num<< endl;
    cout << str1;
 }

4.根据下面数据,编程实现要求功能:

姓名 年龄 性别
name age gender
A 22 女
B 21 女
C 20 男
D 23 男
E 19 男
(1)定义学生结构体或者类Stu,包括姓名(name),年龄(age),性别(gender)等变量
(2)定义结构体MyR,要求结构体中用上()运算符重载
(3)定义函数show,要求对传入的学生数据进行显示
(4)在主程序中,根据题目中数据创建学生数组
(5)调用show方法遍历学生数据并输出
(6)对学生数据根据年龄进行排序并输出排序后结果
(7)判断是否存在名字为E的学生并输出结果
(8)要求主程序中使用STL,用上sort方法
(9)要求主程序中排序时用上MyR与运算符重载()


struct student{
    string name;
    int age;
    string sex;
};

//制定排序规则
struct MyR {
    //重载()运算符
    bool operator()(student s1, student s2){
        return s1.age > s2.age; //用年龄 >降序
    }
};

//用来打印结构体数据
void show(student stu){
    cout << "name:" << stu.name <<"age:" << stu.age <<"sex:" <<stu.sex << endl;
}
//以前的写法
//bool compare(student stu1,student stu2){
//    return stu1.age > stu2.age; //>年龄降序  <升序
//}
int main(){
    student stu1={"谢天宇",20,"男"}; //结构体创建对象
    student stu2={"张文京",19,"男"}; //结构体创建对象
    student stu3={"班长",21,"男"}; //结构体创建对象

    student arr[3] ={stu1,stu2,stu3};
    sort(arr,arr+3, MyR()); //排序
    //打印看看是否排序了
    for(int i = 0;i<3;i++){
        show(arr[i]); //在循环中调用打印函数,打印学生信息
    }
 }

9月

1.编写程序实现以下功能或问题

(1)定义一个成绩类Grade
(2)数据成员:gMath、gChn、gEng。分别储存数学、语文、英语的成绩
①说明:学生A三门成绩为77、80、75
②说明:学生B三门成绩为65、75、70
(3)函数成员:构造函数(有参数)、相应的计算、输出信息等函数。计算、输出的实际方式不限
(4)对2个学生(stuA、stuB)的各项成绩,运用合理方法,计算2名学生各自的总分并输出
(5)输出2个学生各项的成绩总和(即mathSum、chnSum、engSum),并相应输出

class Grade{
public:
    int gMath;
    int gChn; //语文
    int gEng; //英文

    //带参构造 用来给属性赋值
    Grade(int math,int chinese,int english){
        gMath = math;
        this->gChn = chinese;
        this->gEng = english;
    }

    void get_sum(){
        cout << "成绩总和是:" << gMath+gChn+gEng <<endl;
    }
    //第5问
    void operator+(Grade a){ //重载(重写)运算符+ (+ - * / % ++ --)
        cout << "语文成绩和是:" << a.gChn+ gChn;
        cout << "英语成绩和是:" << a.gEng+ gEng;
        cout << "数学成绩和是:" << a.gMath+ gMath;
    }
};

3.完成以下功能

问题描述:老师和学生有共同的属性m_name。各自的衡量标准是老师的论文数量m_paper和学生的考试分数m_score。由键盘输入对应的数值,输出复合条件的对应的姓名。老师要求m_paper > 3。学生要求m_score > 80。
提示:本题要#include
(1)定义基类Base
①公有域成员:构造函数(输入m_name行为放在构造函数内)、功能函数(输出数据)、纯虚函数isGood,用于判断是否满足条件、接口函数输出信息
②保护域成员:string型数据m_name、int型数据m_score、int型数据m_paper
(2)派生student和teacher两个类
①公有域成员:构造函数(学生类由键盘输入m_score、教师类由键盘输入m_paper)
②isGood()函数,学生类m_score>80返回1、教师类m_paper>3返回1。不符合条件返回0
(3)对于符合条件(即上条要求)的,接口函数,输出对应的m_name

using namespace std;
class Base{    //父类
protected:
    string m_name;
    int m_score;
    int m_paper;
public:
    Base(string m_name){
        this->m_name = m_name;
    }
    void print(){
        cout <<"名字:" << m_name << endl;
    }
    virtual int isGood()=0; //纯虚函数
};

class student: public Base{ //子类 : 父类   (继承)
public:
    student(string m_name):Base(m_name){ //调用父类的构造函数,给名字赋值
        cout << "输入学生成绩" << endl;
        cin >> m_score;
    }
    int isGood(){  //重写(覆盖)父类的虚函数
        //补齐
        if(m_score > 80){
            cout << "成绩合格" << endl;
            return 1;
        } else{
            cout << "成绩不合格" << endl;
            return 0;
        }
    }
};

class teacher:public Base{  //子类2
public:
    teacher(string m_name):Base(m_name){ //子调用父的构造函数,为了给name赋值
        cout << "输入论文数量" << endl;
        cin >> m_paper;
    }
    int isGood(){
        if(m_paper > 3){
            cout << "论文数量合格" << endl;
            return 1;
        } else
        {
            cout << "论文数量不合格" << endl;
            return 0;
        }
    }
};
int main(){
    student stu1("张世博");
    stu1.print();
    stu1.isGood();

    teacher tea("小李");
    tea.print();
    tea.isGood();
}

4.对运算符“%”重载,实现数组各对应元素求模运算,如:a[3]={ 11,22,37 } ,b[3]={ 3,6,8 } ,则 a%b={ 2,4 ,5 } 。具体要求:

(1)类的公有函数成员:构造函数,接受参数为数组名
(2)利用运算符%的重载,完成相关运算
(3)在主函数中定义相关对象,并进行测试

class Test{
public:
    int arr[3]; //属性
    Test(int a[3]){ //{1,2,3}
        for(int i = 0;i<3;i++){
            arr[i]=a[i];
        }
    }
    void operator%(Test b){ //b---arr{3,6,8}
        for(int i = 0;i<3;i++){
           cout <<  arr[i]%b.arr[i] << endl;
        }
    }
};
int main(){
 int arr1[3] = {11,22,37};
    Test a(arr1);
    int arr2[3] = {3,6,8};
    Test b(arr2);
    a%b;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/439417.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

义乌慧鼎思是做什么的?

根据天眼查的信息&#xff0c;我们可以对其进行一番探究。义乌慧鼎思(义乌市慧鼎思商务信息咨询有限公司)成立于2021年&#xff0c;注册地位于我国浙江省义乌市。从其名称来看&#xff0c;“慧鼎思”寓意着智慧、重量和思考&#xff0c;这三个词汇也许能为我们揭示企业的经营理…

基于JAVA+ springboot实现的抗疫物质信息管理系统

基于JAVA springboot实现的抗疫物质信息管理系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 …

IR 召回测试数据集(中文测试集)——T2Ranking

文章排名包括两个阶段&#xff1a;文章检索和文章重排序&#xff0c;这对信息检索&#xff08;IR&#xff09;领域的学术界和业界来说都是重要而具有挑战性的课题。然而&#xff0c;常用的文章排名数据集通常集中在英语语言上。对于非英语场景&#xff0c;如中文&#xff0c;现…

简单实现微信机器人-接入ChatGPT3.5

前端基于开源项目&#xff1a;wechaty实现微信网页版功能&#xff0c;感兴趣的小伙伴可以自行研究。 前端代码已开源&#xff1a;https://github.com/labi-xiaoxin/wechat-bot-wechat4u.git 本项目搭建愿景&#xff1a; 1、在无法科学上网的情况下&#xff0c;实现ChatGPT对话…

unicloud 云数据库概念及创建一个云数据库表并添加记录(数据)

云数据库概念 uniCloud提供了一个 JSON 格式的文档型数据库。顾名思义&#xff0c;数据库中的每条记录都是一个 JSON 格式的文档。 它是 nosql 非关系型数据库&#xff0c;如果您之前熟悉 sql 关系型数据库&#xff0c;那么两者概念对应关系如下表&#xff1a; 关系型JSON 文…

基于React的低代码开发:探索应用构建的新模式

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-OywB1Epu30PrvOJQ {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

华为“仓颉”不是中文编程:中文编程早有所属,势如破竹

“何时能见证中国自主研发的编程语言崛起&#xff1f;”这是我们这些对IT生态心怀关切的人常常深思的问题。 语言&#xff0c;作为文化的灵魂&#xff0c;总是与特定的环境和人群紧密相连。无论是中文还是英语&#xff0c;它们都不仅仅是交流的工具&#xff0c;更是各自文化背…

SL3038宽电压降压恒压 72V降12V,110V降压12V 开关型降压芯片

SL3038宽电压降压恒压开关型降压芯片是一款高效、稳定的电源管理芯片&#xff0c;广泛应用于各种电子设备中。它能够将高电压降至所需的低电压&#xff0c;并保持输出电压的稳定&#xff0c;从而确保设备的正常运行。本文将详细介绍SL3038的工作原理、特点、应用以及使用注意事…

5分钟 electron 入门

文章目录 番茄钟应用起步安装初始化启动 electron 项目nodemon 启动项目 主进程 app 和窗口管理 BrowserWindowapp 、BrowserWindowready 事件webContent&#xff1a;主进程控制网页退出应用 装载网页到窗口资源来源安全声明SPA 单页应用 进程的环境Chromium 沙盒Electron 主进…

vs2022方法上面看不到引用条数

vs2022 Win11 开发过程中经常要查看方法的引用情况&#xff0c;这个功能一直好好的&#xff0c;但是有一天突然不行了&#xff0c;看不到引用了&#xff0c;这就让人很难受&#xff0c;从网上查找资料说需要设置CodeLens&#xff0c;这个一直是勾着的&#xff0c;没动过这个设…

JVM-对象创建与内存分配机制深度剖析 3

JVM对象创建过程详解 类加载检查 虚拟机遇到一条new指令时&#xff0c;首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用&#xff0c;并且检查这个 符号引用代表的类是否已被加载、解析和初始化过。如果没有&#xff0c;那必须先执行相应的类加载过程。 new…

好用的便签软件,好用便签排行榜

在生活和工作中&#xff0c;便签软件的使用已经成为我们日常不可或缺的工具。随着技术的发展&#xff0c;便签软件的功能越来越强大&#xff0c;用户也有了更多选择。好用的便签软件有哪些&#xff0c;希望大家能从好用便签排行榜中找到适合自己的工具。 ##1.好用便签 好用便签…

CNC机加工引入复合机器人可以提高生产效率,降低成本

CNC加工企业在过去依赖大量的人工来完成生产线上的各项任务&#xff0c;包括CNC机床的上下料、物料搬运以及部分装配工作。然而&#xff0c;随着产能需求的不断增长和人工成本的持续上升&#xff0c;企业逐渐意识到自动化升级的重要性与迫切性。 面临的挑战与需求&#xff1a; …

Win系统创建虚拟环境利用pyinstaller打包python文件为.exe文件

0. 前提&#xff1a;win系统已经安装Aaconda&#xff0c;检查是否安装成功&#xff0c;命令如下&#xff1a; conda -V输出如下则安装成功&#xff0c;否则需要安装网上教程重新安装一下&#xff08;PS&#xff1a;内存允许的话&#xff0c;建议装固态盘&#xff0c;不然很慢&…

小孩近视用白炽灯好吗?多款热门护眼台灯实测分享

如今对于家长而言&#xff0c;最关心的事情除了孩子的学习成绩以外&#xff0c;最重要的就是孩子的视力健康问题&#xff0c;现在的孩子近视率实在太高了&#xff0c;不少还在小学阶段的学生都开始配戴上了眼镜。所以想要保护孩子的视力健康一盏好的台灯肯定是必不可少的&#…

5G工业网关是什么?

随着科技的飞速发展&#xff0c;5G技术已经逐渐渗透到我们生活的方方面面。而在工业领域&#xff0c;5G工业网关作为连接工业设备与网络的关键组件&#xff0c;正发挥着越来越重要的作用。HiWoo Box其5G工业网关产品以其卓越的性能和稳定性&#xff0c;正助力企业实现数字化转型…

枚举 --java学习笔记

什么是枚举 枚举是一种特殊类 格式&#xff1a; 修饰符 enum 枚举类名{ 名称1&#xff0c;名称2&#xff0c;...&#xff1b; //枚举类的第一行必须罗列的是枚举对象的名字 其他成员... } 枚举类的第一行只能罗列一些名称&#xff0c;这些名称都是常量&#xff0c;…

为什么不用 index 做 key?

“在 Vue 中&#xff0c;我们在使用 v-for 渲染列表的时候&#xff0c;为什么要绑定一个 key&#xff1f;能不能用 index 做 key&#xff1f;” 在聊这个问题之前我们还得需要知道 Vue 是如何操作 DOM 结构的。 虚拟DOM 我们知道&#xff0c;Vue 不可以直接操作 DOM 结构&am…

vscode 使用ssh进行远程开发 (remote-ssh),首次连接及后续使用,详细介绍

在vscode添加remote ssh插件 首次连接 选择左侧栏的扩展&#xff0c;并搜索remote ssh 它大概长这样&#xff0c;点击安装 安装成功后&#xff0c;在左侧栏会出现远程连接的图标&#xff0c;点击后选择ssh旁加号便可以进行连接。 安装成功后vscode左下角会有一个图标 点击图…

LCR 185. 统计结果概率

解题思路&#xff1a; 动态规划 逆向推理会有越界问题&#xff0c; 若希望递推计算 f(2,2)&#xff0c;由于一个骰子的点数和范围为 [1,6] &#xff0c;因此只应求和 f(1,1) &#xff0c;即 f(1,0) , f(1,−1) , ... , f(1,−4) 皆无意义。 故采用正向推理&#xff0c;如下图…