首页 > 其他分享 >第一周实验

第一周实验

时间:2024-03-04 22:44:55浏览次数:23  
标签:cout 第一周 num1 代码 validOperators 实验 include op

这个项目来自于网络下载。
运行环境是devc++,
之前的代码是:#include
using namespace std;

int main() {
char op;
float num1, num2;

cout << "Enter operator (+, -, *, /): ";
cin >> op;

cout << "Enter two numbers: ";
cin >> num1 >> num2;

switch (op) {
    case '+':
        cout << "Result: " << num1 + num2 << endl;
        break;
    case '-':
        cout << "Result: " << num1 - num2 << endl;
        break;
    case '*':
        cout << "Result: " << num1 * num2 << endl;
        break;
    case '/':
        if (num2 != 0) {
            cout << "Result: " << num1 / num2 << endl;
        } else {
            cout << "Error: Division by zero!" << endl;
        }
        break;
    default:
        cout << "Invalid operator!" << endl;
        break;
}

return 0;

}
主要问题及改善如下:代码的可读性和可维护性较差,同时添加、删除或修改有效运算符也比较麻烦,所以我使用 STL 的 algorithm 和 vector,使用了 algorithm 中的 find 函数和 vector 来存储有效的运算符。如果用户输入的除数为零,程序会显示错误消息。我加了对除数为零的错误处理这样可以提高程序的健壮性,避免出现除以零的错误。同时修改后的代码变量和函数名的选择也尽量符合语义,使得代码更加清晰。
新代码为:

include

include

include

using namespace std;

int main() {
char op;
float num1, num2;

cout << "Enter operator (+, -, *, /): ";
cin >> op;

cout << "Enter two numbers: ";
cin >> num1 >> num2;

vector<char> validOperators = {'+', '-', '*', '/'};
if (find(validOperators.begin(), validOperators.end(), op) != validOperators.end()) {
    switch (op) {
        case '+':
            cout << "Result: " << num1 + num2 << endl;
            break;
        case '-':
            cout << "Result: " << num1 - num2 << endl;
            break;
        case '*':
            cout << "Result: " << num1 * num2 << endl;
            break;
        case '/':
            if (num2 != 0) {
                cout << "Result: " << num1 / num2 << endl;
            } else {
                cout << "Error: Division by zero!" << endl;
            }
            break;
    }
} else {
    cout << "Invalid operator!" << endl;
}

return 0;

}

总结:优化项目时,我们通常会关注性能方面的改进,比如减少代码的执行时间、减少内存占用等。我们可以思考哪些部分的性能可以进一步优化,以及采取什么样的方法来实现这些优化。也可能会发现一些代码质量方面的问题,比如重复代码、耦合度过高等。我们可以思考如何改进代码质量,使代码更易于维护和扩展。优化不仅仅是为了提高性能,还要考虑代码的可读性和可维护性。我们可以思考如何使代码更易于理解和修改,以及如何添加适当的注释和文档。

标签:cout,第一周,num1,代码,validOperators,实验,include,op
From: https://www.cnblogs.com/Elont0/p/18052892

相关文章

  • 制取氧气实验
    实验目的:制取氧气。实验原理:双氧水会在二氧化锰的催化下快速反应成氧气。准备工作:准备好自制纸槽、胶头滴管、\(3\%\)浓度双氧水、二氧化锰、火柴。实验步骤:1.利用自制纸槽在试管中加入\(0.5\)g二氧化锰。2.利用胶头滴管加入\(1\sim2\)mL双氧水。3.观察到试管中有大......
  • ssh 端口转发实验
    为什么会使用端口转发端口转发的优点:安全性:通过隐藏实际服务(在这种情况下是监听在22端口的SSH服务)的真实端口号,增加了一层安全性。攻击者可能不知道真正的服务端口号,因此更难进行有针对性的攻击。灵活性:允许用户在不更改实际服务配置的情况下,通过不同的端口访问服务。例如,如果......
  • 软件开发与创新第一周实验——关于“打怪小游戏”的试玩体验与修改
    一.“打怪小游戏”代码来源http://blog.csdn.net/zjx120307/article/details/126221342?spm=1001.2014.3001.5506二.运行环境及运行结果1.运行环境:Windows11操作系统,C++运行环境2.运行截图:(1)功能6演示(2)功能1演示(3)功能2演示(4)功能3演示(5)功能4演示原代码:点击查看代......
  • 全网通实验
    实验一:两个网段连通配置目标:通过在路由器上配置静态路由,实现PC1能ping通PC2(即10.1.0.0/24和10.5.0.0/24网段能通)实验分析:要想实现10.1.0.0/24和10.5.0.0/24网段能通,就是中间涉及到的三层设备R1R2R3R4都有到这两个网段(10.1.0.0/24、10.5.0.0/24)的正确路由。配置步骤:连线配置PC的......
  • DHCP实验
    实验:PC通过DHCP动态获得IP地址配置目标:R1做DHCPserver,PC做DHCPclient,PC的IP地址、子网掩码、默认网关、dns服务器地址都通过DHCP动态分配。配置步骤:连线,配置R1的IP地址配置DHCP服务器R1:dhcpserverip-pool1//创建地址池gateway-list192.168.1.254//网关network192.168.1......
  • 第一周周测
    1、尝试绕过xiusafe.com的cdn,要求尝试所有可能的手段并截图2、针对testfire.net端口进行扫描,子域名爆破,弱口令尝试3、搭建pikachu靶场改一下数据库连接密码访问install.php忘截图了4、尝试通关pikachu、SQL注入的任意一关,要求分别使用手工和sqlmap1'union......
  • java程序设计 - 第二次实验
    【实验目的】继续熟悉Eclipse的使用并尝试编写一个简单的Applet程序【实验过程】编写一个JavaApplet程序,并正在JavaApplet中写两行文字:“这是一个JavaApplet程序”和“我改变了字体”。importjava.applet.*;importjava.awt.*;publicclassJavaAppletextendsApplet......
  • 数据库 - 第六次实验
    a)SELECT*FROMvideoWHEREvid=35结果:b)SELECTuser.*FROMuserJOINpostONuser.uid=post.uidWHEREpost.vid=35结果:c)SELECTcount(*)FROMwatchWHEREvid=35结果:d)SELECTcount(*)FROMlikeWHEREvid=35结果:e)SELECTcount......
  • 数据库 - 第五次实验
    SELECTcommodity.name,onsell.status,onsell.rem_amount,AVG(orders.buyerrate),COUNT(*)FROMonsellJOINordersONonsell.cid=orders.cidANDonsell.sid=orders.sidJOINcommodityONonsell.cid=commodity.cidWHEREonsell.cid=2410AND......
  • 数据库 - 第四次实验
    a)SELECTPeople.pid,People.name,City.nameFROMPeopleJOINCityONPeople.cid=City.cidWHEREPeople.pid=1结果:b)SELECTvaccine.name,count(*)FROMpeopleJOINinoculateONpeople.pid=inoculate.pidJOINvaccineONinoculate.vcid=vacc......