完成大作业后的总结(一点关于使用qt的总结)

前言(废话)

byd,CSDN上消失了一个月,现在终于回归了

中间跑去做大作业了(虽然中间水了两周),还有一堆破事,转专业,竞赛啥的

嘛,这是最后的成果:

外排序部分很快就写完了,后面的画图和gui设计搞了我好久(毕竟第一次接触)

大作业的要求:

1.对股票数据进行排序 (必须使用外排序,用于排序的内存大小限制为32MB,此限制的检查,需要通过资源管理器展现。)

嘛,简单,我是参考了这篇文章:

【外排序】外排序算法(磁盘排序、磁带排序) 外存设备结构分析 败者树多路归并 最佳归并树白话讲解-CSDN博客

在知道是归并排序之后就开干了,其中对文件进行归并的时候用上了STL的priority_queue,后面老师又介绍了最小堆,这两个都可以,先不论效率咋样,直接使用现成的priority_queue是更加方便的

2.创建索引,加快数据访问

索引的创建直接使用文件输入输出把索引放在一个文件里面就行了,这个可以在外排序的过程中进行。

为了加快索引的访问,我是创建了一个索引类来读取文件里面的索引来将索引放在内存的

可以看看我的索引类的声明:

struct index{
    char code[codeL];
    int YM;
    index(){}
    index(char * tmp, int YM):YM(YM){memcpy(code, tmp, codeL);}
    bool operator<(const index tmp)const;
    bool operator!=(const index tmp)const;
    bool operator==(const index tmp)const;
};//为索引类使用的结构

class Index{
private:
    bool is_build;
    std::map<index, long> m;
public:
    Index(){is_build = false;}
    void build(void);
    long get_index(const index &tmp){return m[tmp];}
    long get_next_index(const index &tmp);
    bool is_index_existed(const index &tmp);
    QStringList get_all_code(void);//给出所有的股票代码
    QStringList get_all_code(const int YM);//根据年月给出对应的股票代码
    QStringList get_all_month(void);//给出所有的年月
    QStringList get_all_month(const char str[codeL]);//根据股票代码给出对应的年月
};//索引类

其中map是STL的map,即映射

3.对股票价格进行可视化

来了,最难的部分

为什么我说最难?因为这玩意我根本不了解,byd,老师不教你,网络上的描述不清不楚,我当时还以为是要扔到主函数来使用。还有那个qcustomplot,byd对qt版本还有要求(刚开始没看到),给qt换版本都遇到一堆问题,nnd qtcreator6.0以上的版本用using namespace std;还会出bug,看着那一个又一个的error,感觉都要寄了

不过最后是成功克服

先说说qcustomplot的部署吧:

Qt Plotting Widget QCustomPlot - Setting Up

这是官网,最新版本的qcustomplot要求qt版本不高于6.4(现在最新的基本都是6.7,6.8),里面也有教程,简单说就是把qcustomplot.cpp和.h下下来,扔到工程文件夹,让.pro添加这两个现有文件就行了,其中qt6.0以上的还要改.pro文件里面的一行,以及提升widget类(具体看里面教程)

(qcustomplot是用来画图的)

然后是qt版本的改变:

希望被虐的可以网络上找镜像下载5.15以下的离线安装包,然后用qt手动添加(太痛苦了)

当然这边有比较简单的办法:

先Win+R,然后输入cmd后回车

定位到你放qt的文件夹(这是我的文件夹,其中框出来的文件是要改qt版本的文件):

方法:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值