小程序 const moment = require('moment')_C++大作业-XXX管理程序

理工科大一往往会学习C/C++,期末会有大作业。这篇文章就是一个简单的C++大作业程序。我也是大一,所以觉着哪里写得不好欢迎在评论区提出。程序总体上讲是个“总分总”结构。

一 实现这个程序要八步。

第一步 程序的功能设计

程序的目标有两个。一是辅助我备考四六级,帮助生活和提高效率。二是提供一些娱乐活动。

针对这两个目标,我设计了六个功能---单词助手、计划待办、密码库、聊天室、3D坦克大战、趣味围棋。

其中单词助手、计划待办、密码库为备考四六级和提高账户管理效率而做的。聊天室、趣味围棋和3D坦克大战是为娱乐而设计的。

以下分别通过图片展示

d4bff42558ead458a1c5df068047e73f.png

想出一个复杂的密码和账户总是非常麻烦,要记住密码就更麻烦了。而简单的密码也不安全。这部分功能就可以解决这个问题。

c4e80f363c048f64b5d1ffacabcf9f4e.png

计划本。因为我经常忘事情所以需要个计划本。(PS:不过我觉着计划还是记了纸上更有效)

3bfd06c8bb272d578c8af187457dd0da.png

单词本,是为了9月的四级考试而准备的。

476e6f71f2ec5d5bff49835befdc282d.png

趣味围棋,我是围棋两段来着。现在还经常看看围棋视频。不过棋力不行了。另外这个程序的提子,数气,判断胜负之类的都没做,应该说是个五子棋比较合适。以后再完善,现在就这样吧。

0f7112df7f98bcc8182a4242c0680a84.png

聊天室,本来想做进行安全加密的聊天室,然后可以在外网联络的那种。但是时间不够。所以只是一个简单的聊天室。

e87e1c5b810c571da51db72b4241c27d.png

这个是我用unity做的游戏。动画、模型、声音来自unity官方教程。我也是照着教程来的。PS:期间我还尝试过UE4开发游戏,不过时间不够没有做出一个比较好的作品。Unity是C#,UE4是C++。不知道C#的可不可以交C++的作业。

功能很杂是因为把一些以前的程序也整合了整合放进去了,所以有点不伦不类。

f55b8932066c387f904637dd2a9b512e.png
这个程序的部分文件

其实上图的文件只能实现前四个功能,后两个功能是直接调用了一些以前写的程序来完成的。分开是因为聊天室功能还要分成客户端和服务端,不方便弄成一个,而3D坦克大战是用Unity做的游戏,放不进去。

第二步 搭好基础设施

对于前三个功能,我们可以看到都属于增删改查类型的,所以考虑先设计一个类模板,提供共同的操作,这样不管是扩展程序,deBug还是写程序都会简单很多。然后本着练习的原则,没有选择STL,而是自己做一个链表模板。

下面是链表模板的介绍(list.h)。

首先是节点Node类,这里为了方便写代码所以用的双向的。单向的实现一些功能会更麻烦。

template

接着是List类了,需要注意的是类模板声明和定义最好都写在一起。

//remove()要求超载==

这样第一个文件"list.h"就OK了。有了类模板作为基础设施,之后的工作就十分简单了。

第三步 设置各个独立的上层建筑

上层建筑是指三个类。Password类,Word类,Plan类

下面是Password类

“password.h”

#pragma warning(disable:4996)

"password.cpp"

#include 

Word类,这个类直接迁移自我以前写的程序,所以一些没用到的数据成员其实是懒得改了。功能上做了很多简化,大家有兴趣可以接着完善之类的。按理说声明和定义最好分开,不过因为分开写麻烦所以就没分了。。。。

"word.h"

#pragma once

“word.cpp”

#include 

最后就是Plan类了

“plan.h”

#pragma once

"plan.cpp"

#include 

其实写Plan类时没有测试,不过我觉着应该没问题,大概,吧。。。。

至此三个上层建筑就已经搭建完了,因为有链表类模板,再进行扩展也是很轻松的事情。

但这三个类只能实现前三个功能,之后三个功能将在另一部分讲。

第四步 对上层建筑做个总结的类(语文不好见谅)

“user.h”

#pragma once

"user.cpp"

#include 

做完了这个类,我们就只需要用一个User类就够了,接下来就是main()函数了

第五步 main.cpp

//命名:驼峰式

补充一下,之前代码中看到的“common.h”

#pragma once

用处就是把很多文件共有的东西提出来放一起,这样只用写一份就够了

用的IDE是Visual Studio 2019,编译完成后没有错误和警告,简单的测试也没问题。不过没有特别细致的测试,说不定会有什么严重的BUG。

第六步 聊天室的开发

我用的方法是B站搜索聊天室,然后会有很多教程,跟着做一做就OK了,看不懂再换一个,网上资源很丰富。其实一开始的目标是用自己的加密算法加密聊天信息,并且实现外网的聊天。但是因为要准备考试,还有N多作业要做,精力不够就没做下去。。。。

此外这里比较令我惊奇的是改一下头文件的先后顺序就会出现很多错误,我对这个事情还做了几次实验,但也没弄明白怎么回事,总之非常玄学。

第七步 3D坦克大战的开发

首先要下一个unity, 了解一下C#,接着B站搜索相关教程。(PS,官网上有这个3D坦克大战的教程,而且提供模型和声音,动画资源)。剩下的就是折腾了。生命在于折腾。如何折腾比较靠谱请参阅官方教程以及B站的N多教程。

第八步 方圆围棋

这块也是直接迁移以前的程序。当时是初学,对GUI有执念,找到了easyX和网上的教程做的。网上资源很丰富,如果GUI不能满足你,我推荐用UE4做个3D效果的围棋程序。在B站上有人发过UE4做的3D效果的围棋,可以搜到,可以在那里学习。

虽然说是围棋,其实只弄了个壳子,并没有实现提子,数气,判断胜负。一些函数也没有写好,围棋这部分也是直接从以前写的程序里搬过来的,参考的B站上的教程,所以B站真是个学习网站,好东西不少。注意,这部分要求在目录里有一张名字为“1.jpg”的背景图片,大家可以按照自己的爱好画一画。此外在选择方圆围棋功能后会导致控制台被关闭,其实也有方法解决这个问题,大家可以百度一下如何解决,这里就不解决了,因为我也累了。另外这里用到了easyX(就是“<graphics.h>”),不知道easyX或者没有的可以百度一下下载一个,过程很简单,我就不细说了。

"go.h"

#pragma once

"go.cpp"

#include 

到这里程序就结束了,还不满足的可以尝试制作二维码程序,实现扫码,和生成二维码。这个在github上有很多教程和范例可以参考,还有学长在github上放出来二维码的项目,为学弟学妹们扫清道路。B站up回形针的视频也有对二维码的简单介绍。教程多数用Qt的。

二 文件结构

估计这么长,大家应该是直接不看了或者直接翻到底吧。

d8576a78379ab95405a2224f471dd946.gif

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言osversioninfoex,xi52qian

头文件 一. 对终端的操作相关头文件#include 1. 输入istream2. 输出ostream3. iostream继承istream和ostream 所以它具有输入输出功能。为了方便这个库定义了下列三个标准流对象&#xff1a;1. cin 代表标准输入istream类对象一般地cin使我们能够从用户终端读入数据。2. cout …

go hive skynet_云风的skynet在国内外来看究竟算什么水平?可以一统国内游戏服务端框架吗?...

它和云风过往放出来的东西一样&#xff0c;是非常具有实践性的&#xff0c;可以解决实际开发问题的。目前我所在的手游项目使用 Erlang 进行服务器端开发的&#xff0c;如果重新开始&#xff0c;我会选择使用 skynet。游戏服务器开发中的难点&#xff0c;上面 无瞳已经提到了两…

数据库 测试数据生成_测试数据生成器和对象母亲:另一种外观

数据库 测试数据生成在测试中构造对象通常是一项艰巨的工作&#xff0c;通常会产生大量可重复且难以阅读的代码。 有两种用于处理复杂测试数据的常见解决方案&#xff1a; Object Mother和Test Data Builder 。 两者都有优点和缺点&#xff0c;但是&#xff08;巧妙地&#xff…

电脑机器人_视频|电话积分换平板电脑和扫地机器人?女子拿回家后……-

报警人小王(左二)讲述事情经过。沙坪坝警方供图 华龙网-新重庆客户端 发华龙网-新重庆客户端11月9日11时讯(记者 张勇)“警察叔叔&#xff0c;这个店好坑人哦&#xff0c;我好气愤&#xff01;”11月6日11时许&#xff0c;重庆市沙坪坝区一名年轻女子拨打110报警电话称&#xf…

位置环PID模糊C语言,PID和位置环

EDA365欢迎您登录&#xff01;您需要 登录 才可以下载或查看&#xff0c;没有帐号&#xff1f;注册x所谓PID 自动控制&#xff0c;是对一个确定系统的- -个过程量的自动调节过程:* q* }3 B" * V P# H1)举例说&#xff0c;直流电机的速度&#xff0c;就是-一个过程量&#…

seata xid是什么_阿里开源的分布式事务框架 Seata

1. Seata 概述Seata 是 Simple Extensible Autonomous Transaction Architecture 的简写&#xff0c;由 feascar 改名而来。Seata 是阿里开源的分布式事务框架&#xff0c;属于二阶段提交模式。目前github上已经有 12267 颗星了&#xff0c;也很活跃&#xff0c;最新的提交时间…

python输入print跳到documentation-习题 48: 更复杂的用户输入

习题 48: 更复杂的用户输入 你的游戏可能一路跑得很爽&#xff0c;不过你处理用户输入的方式肯定让你不胜其烦了。每一个房间都需要一套自己的语句&#xff0c;而且只有用户完全输入正确后才能执行。你需要一个设备&#xff0c;它可以允许用户以各种方式输入语汇。例如下面的机…

有关有效企业测试的视频课程

我已经制作了一些有关有效企业测试的视频。 我仍然在现实世界项目中看到这个主题的巨大重要性。 这是我在测试Enterprise Java项目中的经验以及一些示例。 1.介绍和有效的Maven使用 在此视频中&#xff0c;我将介绍测试过程&#xff0c;并演示如何使用Maven在标准企业项目中构…

android自定义弹出对话框,使用FlyDialog实现自定义Android弹窗对话框

前言学习的时候要用到弹窗&#xff0c;但是又觉得i同自带的弹窗样式有点不太美观&#xff0c;搜索资料后发现了FlycoDialog这个开源库,效果很好&#xff0c;而且实现起来也比较方便。先列举一些比较好看的效果:NormalListDialogActionSheetDialog这篇文章主要来讲一下他的自定义…

nacos 本地测试_Nacos集群配置实例(windows下测试)

1、首先 fork 一份 nacos 的代码到自己的 github 库&#xff0c;然后把代码 clone 到本地。git地址&#xff1a;https://github.com/alibaba/nacos.git2、然后将你的项目导入到ideal编辑器中(找到子项目distribution)3、添加集群节点&#xff1a;找到文件distribution->conf…

Android手机如何修改Mac地址,安卓手机怎么修改mac地址

有些时候我们如果绑定了某个mac&#xff0c;那么其他用mac就无法上网&#xff0c;应该怎么修改呢?学习啦小编从网上搜集整理了3种修改安卓手机mac 地址的方法。修改安卓手机mac 地址的方法修改安卓手机mac 地址的方法第一种&#xff1a;软件法下面介绍一款软件 叫物理地址修改…

应用回归分析何晓群_二战上岸人大20年应用统计高分经验帖

首先介绍一下本人的基本情况。男&#xff0c;本科金融学&#xff0c;同时修过数学双学位。一战人大经济学硕&#xff0c;总分 370&#xff08;专业课没过线&#xff09;。二战决定考人大应统专硕&#xff08;除了专业课换了&#xff0c;公共课都一样&#xff09;。二战总分430&…

基于单片机步进电机ppt答辩_基于单片机的步进电机式汽车仪表的设计(含电路原理图,程序)...

基于单片机的步进电机式汽车仪表的设计(含电路原理图,程序)(课题申报表,任务书,开题报告,中期检查表,外文翻译,论文21000字,程序,答辩PPT)摘 要汽车仪表是驾驶者和汽车的交互界面&#xff0c;为驾驶员提供所需要的运行参数、故障、里程等实时信息&#xff0c;是不可或缺的部分。…

android webview js 交互框架,自定义android混合框架开发实践1:实现基础andorid和webview交互...

1. 本地web资源1.构建assets/web文件夹2.创建index.html你的html代码3.使用本地web资源WebView mv findViewById(...);mv.loadUrl("file:///android_asset/web/index.html")2.实现基础的android和js交互(1). 实现js调用andorid方法在Acitivity内构建一个functionJav…

jxls使用excel公司_使用jXLS将Excel文件解析为JavaBeans

jxls使用excel公司这篇文章展示了如何使用jXLS将Excel文件解析为JavaBeans列表。 这是我编写的通用实用程序方法&#xff1a; /** * Parses an excel file into a list of beans. * * param <T> the type of the bean * param xlsFile the excel data file to parse * …

网站部署后无法访问sqlserver_.NET Core跨平台部署

1. Windows-IIS大家对于在IIS上部署.NET站点已经驾轻就熟了&#xff0c;部署.NET Core也没有什么本质区别&#xff0c;但是这其中仍然有一些细节是不同的&#xff0c;下面记录了一些我在部署时遇到的问题1.1 安装.NET Core Windows Server Hosting要在IIS上运行http://ASP.NET …

ajax如何传超长字符串_解决ajax超长字符串、中文乱码问题

在最近的项目测试中发现通过ajax发送超长参数时遇到这个脚本错误&#xff1a;系统找不到指定资源the system cannot locate the resource specified意思是参数太长&#xff0c;无法发送&#xff0c;测试的浏览器是IE6//IE7//IE8&#xff0c;由于利用了ActiveX所以其他浏览器的情…

Android代码数字证书,有关Android中读取证书

最近在项目中遇到了读取证书中内容与读取keystore中对应公钥的需求&#xff0c;在此做一下笔记读取证书最近项目中遇到后台返回个byte[]数组类型的证书&#xff0c;需要从证书中获取相关内容&#xff0c;先看一下相关代码BufferedInputStream mStream null;try {String s new…

Spring Boot中的高级配置文件管理

我们都知道Spring Boot中的配置文件管理及其为不同环境配置应用程序时提供的灵活性。 此功能的另一个强大方面是&#xff0c;在任何给定时间&#xff0c;我们都可以拥有多个活动配置文件。 这样做的好处是我们可以将部署环境配置文件与业务用例相关的配置文件混合在一起。 让我…

先装vs还是先装sql_【家装话题】装修师先装门还是先装地板?

装修先装门还是先装地板从成品保护角度说&#xff0c;先装门&#xff0c;成品保护相对容易&#xff0c;不管是发泡胶的滴落&#xff0c;玻璃胶的污染&#xff0c;安装门用的电动工具&#xff0c;包装垃圾&#xff0c;锯末&#xff0c;钻孔钉凿的冲击。直接在水泥地面上操作&…