CS225[02] CA1 知识库

CS225 CA1 知识库

1, Intro

本次大作业内容极其宽泛,要求我们设计一个基于C++的医院疫苗登记信息管理系统。涉及到:

  • C++ style 的文件读写
  • 生成csv的Python程序 or 在线网站,用于构造测试样例
  • Linked List 形式的 病人信息记录模块,包含有ID, 姓名,RISK, 职业,年龄等要素
  • 斐波那契堆,优先队列用来排序,登记,储存病人信息
  • 根据RISK, 职业,年龄等要素排序的功能
  • WITHDRAW 系统
  • 生成周报,月报的能力

2,相关的资源:

2.1 文件读写:

我们选择使用以下三个库进行文件的读写功能
 #include <fstream>
 #include <string>
 #include <sstream>

主要参考了以下文章:
C++文件读写操作(三)如何统计文本的行数及如何读取文件某一行内容

C++如何逐块读取CSV
推荐下面这个视频,可以开始时看
B站视频:chapt9-2-文本文件读写
fstream库用法详解

关于open 参数相关

2.2 生成report

这就涉及到输出流的操作
其实还是fstream库,不过核心在于如何高效简单的拆分函数块输出文件
管理子函数很麻烦

2.3 稀奇古怪的debug时间

那些写#include "xxx.cpp"的牲口,应该祭天~
—知乎文章:https://zhuanlan.zhihu.com/p/81681440

2.3.1 一大票 undefined 问题
我愿称为地狱绘卷
我愿称之为地狱绘卷。

比较全面的知乎回答

在这里插入图片描述
似乎我们遇到了两个问题:
1、 某处函数接口定义不同,重载的内存地址定向出错
2、错误的include

cytin 重写了整个函数,试图让他能跑起来,在visual studio 里成功了,但还是不能在vs code 和 mac Clion 里跑
2.3.2 发现了一个叫.hpp的文件格式

.hpp文件的作用以及与传统.h文件的区别

1、hpp,其实质是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减project中的cpp文件数与编译次数,也不再发布烦人的lib与dll,因此非常适合用来编写公用的开源库。是Header
plus plus得缩写

2、与*.h类似,hpp是C++程序的头文件,是VCL专用的头文件,已预编译,是一般模板类的头文件,一般来说,.h里面只有声明,没有实现,而.hpp里面声明实现都有,后者可以减小cpp的数量。

3、注意hpp文件不可包含全局对象和全局函数由于hpp本质上是作为.h被调用者include,所以当hpp文件中存在全局对象或者全局函数,而该hpp被多个调用者include时,将在链接时导致符号重定义错误。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值