ELEC362 C++ Department of Electrical Engineering and Electronics

The concept:
The long term aim of the project is to develop a fully functional software, known as DataViz, for plotting and processing datasets, which will be eventually deployed and released for all students in the department to use in their reports, data processing, and as a show case of an authenticexperience of software development for the students of ELEC362. The development is planned over 5 years, which started in 2022. Each year the cohort of ELEC362 will be asked to make a major upgrade to the software (will be referred to as the control version in this report).
Each header file of every class in the control version (source files) of the project contains a comment explaining what the purpose of the class is. The features currently available in the app can be found under “Help” menu.
Upgrades required for this year:
For this year you are asked to implement the following upgrades to DataViz 0.0 (the control version) to end up with DataViz 0.2:
- Introduce a way in the app allowing the user to change the width of the curve, its colour, and its style* .
- Update the design of the help window so that it becomes organised into sections which are
easy to add to and expand in the future.
- Introduce a way in the app where the names of loaded Datasets can be made available to theuser, so that they can add a comment to describe what each dataset represents.
- Define another mean in the app to enable the user to draw a dataset.
- Introduce a way in the app where it allows multiple datasets to be plotted into a single graph window * .
- Create an entry “Function” under the menu “Analysis”, which should allow the user to input a mathematical expression containing the names of datasets. For example, “D1*exp(-D2)”.
For this purpose, use the classes defined in the header atmsp.h (An example test projectshowing how to use this header file has been uploaded to CANVAS)* .
- Adding a feature for a histogram plot (you can generate the histogram in GSL and plot it in QCustomPlot via QCPBars class).
You may assume that all the datasets in the app will have the same x-coordinates. To refer to what asterisks mean please refer to the last question in FAQ section.
After you are done with the upgrade; make sure that:
- All the features you add are working well.
- You updated the help window in the app to include instructions on how to use the app after the features you added.
- You handled a range of potential errors that may be experienced in the updated app.
It is an expectation from everyone to consult Qt documentation to find any functions or classes that might be useful for the implementation of the project. Finally, you should make the programme as 
professional as possible. Imagine this project as a real-life project given to you, and that in the next years, it will be developed further by other students.
Note for Mac OS users: You can develop the application based on Mac version of the app. The application will be tested and marked on a Windows machine. You should verify that your app works as it should on one of the computers in the lab before submission, to avoid any potential crossplatform issue, if you have any problems, please let me know.
Suggested approach to be followed:
Start by implementing the simplest tasks. For more advanced tasks, a good idea is to learn how to implement these features in an empty app. Once that works, you can adapt the code from the empty project into the control version. Note that is merely a suggestion and it has no impact on your mark whether you followed it or not.
If you are unsure contact the module coordinator for any assistance.

相关推荐

  1. ELEC362Application Development with

    2024-02-23 17:24:04       30 阅读
  2. ELEC362 Department of Electrical Engineering and Electronics

    2024-02-23 17:24:04       59 阅读
  3. ELEC362 C++ Department of Electrical Engineering and Electronics

    2024-02-23 17:24:04       54 阅读
  4. ELEC362 C++ Department of Electrical Engineering and Electronics

    2024-02-23 17:24:04       44 阅读
  5. <span style='color:red;'>exec</span>族

    exec

    2024-02-23 17:24:04      40 阅读
  6. android:elevation=“10dp“

    2024-02-23 17:24:04       41 阅读
  7. Linux exec 命令和Python exec 函数 区别

    2024-02-23 17:24:04       26 阅读
  8. Docker:docker exec命令简介

    2024-02-23 17:24:04       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-23 17:24:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-23 17:24:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-23 17:24:04       87 阅读
  4. Python语言-面向对象

    2024-02-23 17:24:04       96 阅读

热门阅读

  1. jquery简介与解析

    2024-02-23 17:24:04       45 阅读
  2. 回调函数(Language C)

    2024-02-23 17:24:04       50 阅读
  3. Less基本语法

    2024-02-23 17:24:04       48 阅读
  4. python 几种常见的音频数据读取、保存方式

    2024-02-23 17:24:04       51 阅读
  5. 解释 Git 的基本概念和使用方式

    2024-02-23 17:24:04       46 阅读
  6. 【Qt】实现 Ctrl + 鼠标滚轮 缩放文本功能

    2024-02-23 17:24:04       55 阅读