联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Matlab编程Matlab编程

日期:2019-12-29 10:13

The project

Task 1: Design and implement a Qt-based GUI digitiser. The digitiser is an application which is used to

convert graphs published in scientific papers, project reports, and statistics into raw data that can be

processed using data processing software such as MS Excel or MATLAB. Your application should be

designed to work on 1D graphs. An example of such a graph is given below:

The digitiser works by allowing the user to calibrate the x-axis and the y-axis (converting pixel

distance to physical distance), then it allows the user to click on many points on the graph. Every

time the user clicks on a point, the application saves its coordinates in pixels, then converts them to

physical coordinates using the calibration distance, eventually generating two columns of data, a

column for x coordinates and a column for y coordinates respectively. This is known as manual

digitising.

The application will be used to digitise one curve at a time, where the plotted line is solid and has a

black colour against a white background.

In addition to the core functionality mentioned above, the application:

- Should give the user the option to choose the type of the graph, whether it is linear-linear,

linear-log, log-linear or log-log graph.

- Should allow for saving a text file that has two columns, the first being the digitised x

coordinates and the second being the digitised y coordinates of the graph, both in linear

coordinates (log coordinates must be converted to linear before saving data).

- Should allow the user to choose the type of the axes (linear/log) using three different methods.

- Should be validated by using a test graph as an input, digitising it, then plot the digitised data on

top of the original graph using MATLAB, MS Excel or any other software.

- Should be able to deal with potential run-time errors, which the developers should identify.

Task 2: Modify the application to have an automatic mode, where it is enough for the user to specify

one or two points on the graph and the application will automatically determine many other points

on the graph. This task is meant to be a challenge so no hints will be provided on how to do it.

Page 3 of 4

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.

Recommended approach

In order to have a good design and implementation of the application, you are recommended to do

the following:

– Start by conducting a background overview of the available digitisers 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.

– 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.

The deliverables

Every submission should consist of the project’s files + brief report. The report must have the

student’s name and ID number. The report does not need an introduction or a conclusion, it must

have the following sections:

x How the programme works (explain the idea of the algorithm)

x User instructions (how should the user use it)

x Testing and verification attempts

x 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 you faced how you

overcome it. If you left this section empty you will not lose any marks.

x Appendix: headers+ source files (must be in machine readable format).

Mapping the project to modules’ material:

Aspect Where it is covered

Creating child windows or child dialogs. Lecture 16, Lecture 18

Saving object in vectors in Qt Week 8 lab

Loading and saving files Lecture 18, week 9 lab

Error handling week 9 lab

Implementing mouse functionality Lecture 16, the tutorial

Distance calibration the tutorial

Handling images and drawings Lecture 17, the tutorial

Implementing a functionality using different methods Lecture 16, week 8 lab

Controlling the style, layout and GUI design Lecture 15

Implementing buttons and other input widgets functionality Lectures 14-15, week 7 lab

Online documentation https://doc.qt.io

Page 4 of 4

*Marking Criteria

Criteria

(weight %) What does it mean?

Indicative characteristics

Adequate / pass

(40%)

Very good / Excellent

Algorithm and

design of the

programme

(task 1) (20%)

Does the application

do what it is designed

to do? Does the

application handle

memory efficiently?

x The programme does

what it designed to do

with clear

shortcoming.

x The use of memory is

completely inefficient

but is working.

x The programme does what it

designed to do without any

flaws an in an efficient way

x The memory management is

very efficient.

Code and GUI

implementation

(task 1) (20%)

Is the code well

organised? Are the

variables named

properly? Is the code

well commented?

Does it use the most

suitable datatypes for

the variables? Does it

have correct use for

header/source files?

x The code shows the

steps but is difficult to

understand what it

does.

x Poorly commented

code.

x The naming of the

variables is arbitrary

and does not give any

idea on what the

variables are used for.

x Header files are barely

used.

x The code is written in very

organised way that is easy to

follow.

x The code is very well

documented.

x The variable naming is

appropriate and follows

professional naming rules.

x The use of header and source

files is professionally

followed.

Verification and

Error-Handling

(task 1) (20%)

Has the application

been validated and

verified? What does

the programme do if

there is a run-time

error?

x The application was

tested for one case

only.

x The application

contains minimal

error handling.

x The application has been

thoroughly tested.

x Error handling has been done

professionally for a number

of potential run-time errors

and user input errors as well.

Task 2 (15%) Does the application

provide a functional

automatic mode?

x An automatic mode is

provided with many

shortcomings.

x The automatic mode is

implemented efficiently in a

fully functional manner

without any flaws.

Report

(25%)

Is the report clear and

descriptive? Is it

concise? Does it have

all sections? Are the

user instructions

given clear?

x The report is

understandable but

contains many errors.

x The length of some

sections is

inappropriate – either

too short or too long.

x The source codes are

given in the appendix

but they are not

machine readable.

x The report is well written,

and all the relevant

information it should contain

are clearly stated.

x The report is concise.

*If you have a feedback query after the marks are released make sure you contact me

within 2 weeks, after that the marks are finalised and sent to the SSO.


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp