ELEC362 Project Data Processing application
Task 1: Design and implement a Qt-based GUI application which allows the user to import different datasets, plot them in the application, and allow the user to create a function from a combination of the datasets.
To handle the plot, the library QCustomPlot will be used. Instructions for how to set it up and run it will be made available on a video tutorial.
The application should have the following specifications:
- Should have the ability to load as many datasets as needed.
- Should allow the user to choose which data sets will be plotted.
- Should have a legend for the data plotted.
- Should allow the user to write functions of the input dataset. Specifically; the addition of 2 datasets, their product, or the logarithm of one of them.
- Should allow the user to change the colours of the plotted graphs, using three different means.
- Should be validated, in the report, by using test cases, then comparing the plots to a plot provided by another programme such as Excel or MATLAB (No linking to Excel or MATLAB is required in the application).
- Should be able to deal with a range of potential run-time errors, which the developers should identify.
As a simplification, you may assume that all the data will have the same x axis.
Task 2: Modify the application so that the write function specification can be applied to an arbitrary number of data sets (not only 2 datasets as in task 1). It is an expectation from everyone to consult Qt documentation to find any functions or classes that might be useful for the implementation of this 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: The mark will be based on how your application behaves on a computer in the lab. Check your app on one of the computers in the lab to make sure it works as you expect before submitting your work
Approach to be followed
The following steps will help you to have a good design and implementation of the application: – Start by conducting a background overview of the available programs for data visualisation and processing and how they are used. This will give you a feeling of what a professional design is and a better understanding of the core functionality. Make sure the practical notes given in the lectures ae taken into consideration in your design and implementation. – Follow the incremental model by breaking the implementation of the application into smaller parts, where every part is designed, implemented and tested before other parts are implemented.
– Make sure your application is working perfectly before moving to task 2. Note for Mac OS users: You can develop the application and write the report 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 cross-platform issue, if you have any problems, please let me know.
Every submission should consist of the project’s files in a zip file + brief report. The name of the zip file as well as the report must be your name (MohammadHasan.zip and MohammadHasan.pdf). The report must not be zipped. The report does not need an introduction or a conclusion, it must have a cover page showing the students name and ID number, and includes the following sections: • How the programme works (explain the idea of the algorithm, include a flow chart). • User instructions (how should the user use it) • Testing and verification attempts. • Overall notes (optional): in this section you can highlight any special features in your design or implementation of the application. Or you can mention any major issue you faced how you overcome it. If you left this section empty you will not lose any marks. • Appendix: headers+ source files (must be copied-pasted as text, not as an image).
Data visualisation and processing applications are essential tool in all fields of industry and academia, which apply to all fields of science from physics, chemistry and engineering to social sciences. The tasks given in this project are essential part of famous software including:
Mapping the project to modules’ material: Aspect Where it is covered Creating child windows or child dialogs. Lecture 14, Lecture 16 Saving object in vectors in Qt Week 9 lab Loading and saving files Lecture 16 Error handling week 10 lab Dealing with string sequences Week 8 lab Implementing mouse functionality Lecture 14 Implementing a functionality using different methods Lecture 14 Controlling the style, layout and GUI design Video on CANVAS Implementing buttons and other input widgets functionality Lecture 14, week 8 lab Adding QCustomPlot library to a project Video on CANVAS Online documentation https://doc.qt.io