首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

机械设计-面向对象实现

后端 6.37MB 19 需要积分: 1
立即下载

资源介绍:

Mechanical_Design的源代码
Mechanical_Design
设计说明书
项目特色
1 采用智能指针控制内存分配,同时避免内存泄露
2 将零件与设计分开,分别实现零件类与设计类
3 利用动态绑定,使得一个容器中能包含多种设计
4 将设计与交互过程分开,使得代码更加简洁,结构紧凑
5 采用继承和模块化实现,实现大量代码复用
6 函数命名统一,注释和代码规范。例如:setXXX()函数设置对应变量,getXXX
()函数获取对应变量
7 采用多层代码封装,精简单一函数中的代码,便于后续拓展与调试
8 利用宏编译,控制输出
9 采用了文件系统以输出完整的设计结果
设计的总体框架:
Mechanical_Design 类为最外层类,用于调度;
Interaction 类负责交互;
Design_Vec 类负责设计操作;
具体的设计是 Design 的子类实现的;
对应的 Design 类中包含对应的零件类 Part 对象;
继承体系的设计:
(类的具体命名会有些差别,只实现了部分类,参看具体实现)
Part 类:
Design 类:
具体的实现:
Mechanical_Design
类:
实现总体调度,实现如下:
class Mechanical_Design {
public:
Mechanical_Design() {
vec = std::make_shared<Design_Vec>();
Ite = std::make_shared<Interaction>();
startDesign(std::cout); //开始设计
};
~Mechanical_Design() {};
private:
shared_ptr<Design_Vec> vec; //设计表对象
shared_ptr<Interaction> Ite; //交互对象
Outputter output;
//每个零件处理自己的最终设计过程,Mechanical_Design 只提供公共接口
void startDesign(std::ostream& os); //开始设计
void startDriveDesign(std::ostream& os); //开始传动设计
void startPartDesign(std::ostream& os); //开始零件设计
void showDesignInfo(std::ostream& os); //显示设计信息
};
showDesignInfo 函数的具体实现为例:
void Mechanical_Design::showDesignInfo(std::ostream& os) {
Ite->InteractionOfInfo(os);
char ch4 = Ite->getShow();
string str = "design";
int tmp;
while (ch4 != 'Q') {
switch (ch4) {
case 'A':
vec->showTotalDesign(true); //详细信息
break;
case 'B':
vec->showTotalDesign(false); //粗略信息
break;
case 'C': //单个设计信息
if (vec->getSize() == 0) {
os << "当前无设计" << std::endl;
}
else {
os << "请输入设计序号 0-" << vec->getSize()-1<< " :" << std::endl;
std::cin >> tmp;
vec->showDesign(tmp);
}
break;
case 'D':
os << "删除所有设计" << std::endl;
vec->deleteTotalDesign();
break;
case 'E':
if (vec->getSize() == 0) {
os << "当前无设计" << std::endl;
}
else {
os << "请输入设计序号 0-" << vec->getSize() -1<< " :" <<
std::endl;
std::cin >> tmp;
vec->deleteDesign(tmp);
}
break;
case 'F':
os << "请输入要保存的文件名:" << std::endl;
std::cin >> str;
output(str + ".txt", *vec); //保存设计信息
break;
default:
break;
}
Ite->InteractionOfInfo(os);
ch4 = Ite->getShow();
}
}
先是 Ite 对象显示互界面,然后获取交后的结果进行循环判断vec 对象
实现显示不同信息的操作。其它几个函数的实现类似。
注意到此处的形参是 std::ostream&os这样做格式规范一点。而且不需改动
代码,即可将结果输出到文件(用 ofstream& 对象)
同时智能指针的使用,方便了内存处理,不用担心内存泄漏的问题。
Interaction 类:
交互类,接受输入。交互与实际操作分开的设计,很方便拓展代码,格式上也很
美观。
class Interaction {
public:
Interaction() {}
~Interaction() {}
void setIni(std::ostream& os); //设置初始化界面
void InteractionOfTotal(std::ostream& os); //总设计界面的交互
void InteractionOfDriveDesign(std::ostream& os);//传动设计界面的交互
void InteractionOfPartDesign(std::ostream& os); //零件设计界面的交互
void InteractionOfGearDrive(std::ostream& os); //齿轮传动设计界面
void InteractionOfKey(std::ostream& os); //键设计界面
void InteractionOfAxle(std::ostream& os); //轴设计界面
void InteractionOfBearing(std::ostream& os); //轴承的强度设计
void InteractionOfChainDrive(std::ostream& os); //链传动
void InteractionOfBeltDrive(std::ostream& os); //带传动
void InteractionOfInfo(std::ostream& os); //显示设计信息
//其他部分的设计界面...
char getGearDrive() const { return chGearDrive; }
char getAxle() const { return chAxle; }
char getTotal() const { return chTotal; }
char getDrive() const { return chDrive; }
char getPart() const { return chPart; }
char getShow()const { return chShow; }
char getBearing()const { return chBearing; }

资源文件列表:

Mechanical_Design.zip 大约有5个文件
  1. Mechanical_Design/Mechanical_Design.zip 6.02MB
  2. Mechanical_Design/框架.jpg 44.55KB
  3. Mechanical_Design/零件.jpg 49.15KB
  4. Mechanical_Design/设计.jpg 69.16KB
  5. Mechanical_Design/设计说明书.pdf 269.53KB
0评论
提交 加载更多评论
其他资源 wxFormBuilder-V3.9 绿色免安装版
wxFormBuilder是由softonic推出的一款界面编辑设计工具,这款软件用于生成跨平台编译代码,能够快速搭建GUI开发环境,而且软件右边的编辑栏还会自动变成对应控件的属性编辑,其你可以修改该控件和窗体的各类属性,非常实用。另外,wxFormBuilder也支持快速生成C++,python,Lua等代码和XRC资源文件,而且还搭建高效的带有GUI界面编辑器的开发环境,其操作非常简便,界面简洁清晰,有需求的用户快来下载体验吧!
FreeRTOS西西菜鸟.zip
FreeRTOS西西菜鸟.zip
Allegro-Skill-Xtool一键gerber及生产资料归档工具
Allegro-Skill_Xtool一键gerber及生产资料归档工具
c语言队列实现(不强制数据类型,包含三种实现)
c语言队列实现(不强制数据类型,包含三种实现)
Xshell-安全终端模拟软件
Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。 Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。除此之外,其还有丰富的外观配色方案以及样式选择。
Xftp-文件传输软件
Xftp是一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。Xftp 能同时适应初级用户和高级用户的需要。它采用了标准的 Windows 风格的向导,它简单的界面能与其他 Windows 应用程序紧密地协同工作,此外它还为高级用户提供了众多强劲的功能特性。
移动端(HTTPS)反抓包手段(主要针对移动端)
现在移动端(HTTPS)反抓包手段常见的也就一种,但是其他几种也需要记一下, 1、判断是否有网络代理【几乎不用】或者强制不走网络代理 2、SSL-Pinning【常见】 3、HTTPS双向认证【少见】 4、混淆或者加密数据 5、强制用户使用安卓7+版本APP 6、不走http或者https协议,直接使用socket通信【很少见】 Hook:中文翻译过来为钩子的意思。当满足钩子对应的条件的时候,我们就可以把其拦截下来进行操作,Hook不需要在编译阶段修改程序的源码,而是在运行时通过反射的方式修改调用,是一种动态的篡改 作用:用于改变代码执行逻辑或提取参数插桩 以静态的方式修改第三方的代码,也就是从编译阶段,对源代码(中间代码)进行编译,而后重新打包,是静态的篡改; 插桩的目的: 在程序中插入自定义的代码,然后编译到可执行文件中, 从而使得该程序的运行过程中就会执行我们自定义的代码,实现我们想要增加的功能需求saddadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
基于spring boot、mybatis电商系统
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
基于spring boot、mybatis电商系统 基于spring boot、mybatis电商系统 基于spring boot、mybatis电商系统