C++入门(02)简单了解C++应用程序的开发部署

2024-09-07 10:12

本文主要是介绍C++入门(02)简单了解C++应用程序的开发部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 开发C++应用程序
  • 2. 简单示例计算器程序
  • 3. 需求分析
  • 4. 设计
  • 5. 编码
  • 6. 编译
  • 7. 调试
  • 8. 测试
  • 9. 部署
  • 10. 部署示例
    • 10.1 使用Visual Studio Installer Projects创建安装程序
    • 10.2 安装VisualStudio Installer Projects扩展
    • 10.3 在calculator解决方案中创建安装项目
      • 10.3.1 添加安装项目
      • 10.3.2 配置安装项目
      • 10.3.3 添加快捷方式
      • 10.3.4 设置安装属性
    • 10.4 生成安装程序
    • 10.5 在用户计算机安装我们的计算器程序
    • 10.6 部署示例小结

1. 开发C++应用程序

开发应用程序的过程可以分为细致的步骤:需求分析、设计、编码、编译、调试、测试、部署

2. 简单示例计算器程序

假设开发一个简单的命令行计算器,可以进行加法、减法、乘法和除法操作。

3. 需求分析

程序的需求是什么?对于这个计算器程序,需求可能是这样的:

  • 用户可以输入两个数字
  • 用户可以选择执行的操作(加、减、乘、除)
  • 程序输出计算结果
  • 如果用户输入非法数据或者除以零,程序应当提示错误

4. 设计

考虑如何实现这些功能?

  • 用什么变量来存储用户输入的数字?
  • 如何设计功能模块,比如加法、减法等操作?
  • 如何处理输入错误?

我们可以简单地设计一个基本结构:

  • 主函数 main() 用来控制程序的流程
  • 使用 cin 读取用户的输入,cout 输出结果
  • 使用条件语句 if-else 或 switch 处理用户选择的操作

5. 编码

简单的 C++ 实现,按照这个步骤(C++入门(01)VisualStudio2022社区版HelloWorld),创建项目 - 源码文件:calculator.cpp

#include <iostream>  // 包含标准输入输出库using namespace std;int main() {double num1, num2;  // 声明两个变量用于存储用户输入的数字char operation;     // 声明一个变量用于存储操作符// 提示用户输入两个数字和一个操作符cout << "Enter first number: ";cin >> num1;cout << "Enter an operator (+, -, *, /): ";cin >> operation;cout << "Enter second number: ";cin >> num2;// 根据用户输入的操作符执行相应的计算switch (operation) {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 << "Error: Invalid operator!" << endl;}return 0;  // 程序成功结束
}

6. 编译

编写完代码以后,要进行编译。
编译是将 C++ 代码转换为计算机可以执行的机器语言。
Ctrl + F5
Visual Studio将自动完成代码的编译,并在控制台窗口中运行程序
如果一切顺利,没有语法错误
将会把源代码文件calculator.cpp 编译成可执行文件 calculator.exe
在这里插入图片描述

7. 调试

调试是找到并修复程序中的错误的过程,比如在运行程序时,如果发现除数为零的情况没有正确提示错误,就需要检查代码进行修改。

8. 测试

测试是为了保证程序在各种输入情况下都能够正确运行。
对于这个计算器程序来讲,测试包括:

  • 正常输入两个数字和操作符,检查是否正确输出结果
  • 测试非法操作符输入,比如输入“%”,检查是否正确提示错误
  • 测试除以零的情况,看看是否输出响应的错误信息

9. 部署

当程序经过测试没有问题后,就可以部署给用户使用了。把程序打包发布给其他人使用,让其他人可以在他们的计算机上使用你的程序。

部署不仅仅是生成可执行文件,还包括处理依赖项、设置安装环境等,保障程序在用户的系统上正常运行。

10. 部署示例

10.1 使用Visual Studio Installer Projects创建安装程序

Visual Studio Installer Projects是一个扩展工具,可以帮助创建Windows安装包,例如MSI文件。

10.2 安装VisualStudio Installer Projects扩展

点击菜单栏的“扩展”,选择“管理扩展”。
在这里插入图片描述
在弹出的窗口中,搜索“Microsoft Visual Studio Installer Projects”
找到后点击“下载”,安装此扩展
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完成后,重新打开Visual Studio ,重新打开我们的计算器calculator解决方案
在这里插入图片描述

10.3 在calculator解决方案中创建安装项目

10.3.1 添加安装项目

右键点击解决方案calculator,选择“添加” -> “新建项目”。
在这里插入图片描述

在搜索框中输入“Setup Project”,选择“Setup Project”,点击“下一步”。
在这里插入图片描述

给安装项目起个名字,比如CalculatorInstaller,然后点击“创建”。
在这里插入图片描述

10.3.2 配置安装项目

右键点击“Application Folder”,选择“添加” -> “项目输出”
在这里插入图片描述
在弹出的窗口中,选择CalculatorApp的“主输出”,点击“确定”
在这里插入图片描述
现在CalculatorApp.exe文件就被添加到安装包中了

10.3.3 添加快捷方式

右键点击CalculatorApp.exe,选择“创建快捷方式”
在这里插入图片描述
在这里插入图片描述

将快捷方式拖动到“User’s Desktop”文件夹中,这样未来用户安装以后会在桌面上生成快捷方式
在这里插入图片描述

10.3.4 设置安装属性

在解决方案资源管理器,选中CalculatorInstaller项目,打开属性窗口
在这里插入图片描述
打开属性窗口后,你会看到许多选项可以配置
ProductName(产品名称),例如:Calculator Application。
Manufacturer(制造商),例如:Your Name or Company。
Version(版本),例如:1.0.0。这个版本号用于区分不同的程序版本。
Author(作者),通常和制造商信息相同
InstallAllUsers(安装方式),一般选择True,这样所有系统用户都可以使用程序。
UpgradeCode(升级代码),这是用于识别安装包的唯一代码。如果以后要发布更新,升级代码必须保持一致
在这里插入图片描述

10.4 生成安装程序

在这里插入图片描述

Visual Studio会生成安装包
生成完成后,安装程序文件会在\Debug 或 \Release 文件夹下找到(路径可能是CalculatorInstaller\Debug)。CalculatorInstaller.msi 文件是主要的安装程序文件,包含了应用程序的所有文件、安装脚本和其他相关信息。
setup.exe 文件是一个安装引导程序,通常与 .msi 文件一起工作,会首先安装所有先决条件,然后调用 .msi 文件进行主程序的安装

10.5 在用户计算机安装我们的计算器程序

拷贝安装包到另外一台没有C++环境的计算机,双击setup.exe
这台用户计算机并没有C++环境
在这里插入图片描述
进入安装向导界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
做安装文件的时候,要起好名称啊,安装完毕,运行在这里插入图片描述
对于我们这个简单的小程序而言,其实和直接拷贝.exe到用户计算机是一样的
在这里插入图片描述

10.6 部署示例小结

  • 直接拷贝.exe可执行文件:适合简单的小程序,没有复杂的依赖关系
  • 创建安装程序 Installer,利用工具创建用户友好的安装包

这篇关于C++入门(02)简单了解C++应用程序的开发部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144773

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

C++读写word文档(.docx)DuckX库的使用详解

《C++读写word文档(.docx)DuckX库的使用详解》DuckX是C++库,用于创建/编辑.docx文件,支持读取文档、添加段落/片段、编辑表格,解决中文乱码需更改编码方案,进阶功能含文本替换... 目录一、基本用法1. 读取文档3. 添加段落4. 添加片段3. 编辑表格二、进阶用法1. 文本替换2

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF