” ELEC362编程设计 写作、 辅导C++语言程序Department of Electrical Engineering and ElectronicsELEC362ProjectLinear regression applicationModule ELEC362Coursework name ProjectComponent weight 50%Semester 1HE Level 5Lab location personal computers/laptops, university remote computerWork Individual*Estimated time to finish 40 hours (coding and testing)Assessment method IndividuallySubmission format Online via VITALSubmission deadline 11.59 pm on the 17th January, 2021Late submission Standard university penalty appliesResit Opportunity None except for extenuating circumstanceMarking policy Marked and moderated independentlyAnonymous marking No (the marker needs to link the code to the report)Feedback via VITAL GradeMark / Turnitin Feedback StudioExpected release of marks date 15 business days from the deadlineLearning outcomes LO2: Using C++ to implement GUI-based software.LO3: Using Online documentation for self-learning.*Note: This estimate may vary based on the need to debug your application. Make sureyou start working on the project as soon as possible.Page 2 of 5The projectTask 1: Design and implement a Qt-based GUI linear regression application. The application reads afile of data points, given by two columns one for x coordinates and one for y coordinates, thencalculates the best linear fit of the form: = + Where a and b are parameters to be determined by the application. You are requested to workon the GUI only. The regression part of the application will be done by GSL library. Binaries for linkingQt to the library will be provided for both Windows and Mac OS on VITAL. The documentation of thelinear regression part of the library can be found in this link. You are not asked to study the theorybehind linear regression. All what you are expected to do is to know how to implement the functionfrom the library into your application, and how to display its return or output to the user.The application will be used to do linear regression for one file at a time.In addition to the core functionality mentioned above, the application:- Should plot the data and the fitted curve on a single graph in the application.- Should Allow the user to choose the thickness and the colour of the plotted curve using 3different means.- Should give the user the option to do the fitting with and without a constant term.- Should be validated, in the report, by using a test dataset as an input to the applicationobtaining the fitted line, then comparing the fit to a linear fit by another programme such asMATLAB or MS EXCEL (No linking to EXCEL or MATLAB is required in the application).- Should be able to deal with potential run-time errors, which the developers should identify.Task 2: Modify the application to have a bilinear fit mode, where the fit of the dataset should bedone using a piecewise function of the form: = {1 + 1 02 + 2 0The application should calculate (a1,b1,a2,b2) in additional to automatically identify the point x0which gives the Best possible fit. This part if meant to be as a challenge and as a result no hints willbe given on how to do this part. An example of a bilinear fit is shown in figure 1.It is an expectation from everyone to consult Qt documentation to find any functions or classes thatmight be useful for the implementation of this project. Finally, you should make the programme asprofessional as possible. Imagine this project as a real-life project given to you.Approach to be followedThe 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 that for linearregression and how they are used. This will give you a feeling of what a professional design isPage 3 of 5and a better understanding of the core functionality. Make sure the practical notes given inthe lectures ae taken into consideration in your design and implementation. Follow the incremental model by breaking the implementation of the application into smallerparts, where every part is designed, implemented and tested before other parts areimplemented. 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 versionof the app. The application will be tested and marked on a Windows machine. You are stronglyrecommended to Verify that your app works as it should on a windows machine before submission,to avoid any potential cross-platform issue, if you have any problems, please let me know.Figure 1: Example of a bilinear fit for data.The deliverablesEvery submission Should consist of the projects files + brief report (Do NOT submit GSL librarys filesas I will compile your project with local GSL files on my machine). The report must have the studentsname and ID number. The report does not need an introduction or a conclusion, it must have a coverpage, and includes the following sections: How the programme works (explain the idea of the algorithm, include a block diagram). 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 designor implementation of the application. Or you can mention any major issue you faced howyou overcome it. If you left this section empty you will not lose any marks. Appendix: headers+ source files (must be in machine readable format).X0a2 , b2herea1 , b1herePage 4 of 5Industrial RelevanceDesigning a GUI for a C++ library is a routine task for software developers at MATLAB (where somelinear algebra packages are embedded), National Instruments (MultiSim where libraries for solvingordinary differential equations are embedded), ANSYS (where all their products such as Fluent andCFX include libraries related to meshing and nonlinear solvers), CST studio suite, and the list goes on..Many software development projects are entirely based on building GUI to famous libraries,examples include Elmer FEM software, Gmsh, and ParaView.Mapping the project to Modules material:Aspect Where it is coveredCreating child windows or child dialogs. Lecture 16, Lecture 18Linking External library in Qt Lecture 13, instruction videos, thetutorialSaving object in vectors in Qt Week 8 lab, the tutorialLoading and Saving files Lecture 18, week 9 labError handling Week 9 lab, the tutorialImplementing mouse functionality Lecture 16, the tutorialHandling drawings Lecture 17, the tutorialImplementing a functionality using different methods Lecture 16, week 8 labControlling the Syle, layout and GUI design Lecture 15, the tutorialImplementing buttons and other input widgets functionality Lectures 14-15, week 7 labOnline documentation httpss://doc.qt.ioPage 5 of 5*Marking CriteriaCriteria(weight %) What does it mean?Indicative characteristicsAdequate / pass(40%)Very good / ExcellentAlgorithm anddesign of theprogramme(task 1) (20%)Does the applicationdo what it is designedto do? Does theapplication handlememory efficiently? The programme doeswhat it designed to dowith clearShortcoming. The use of memory iscompletely inefficientbut is working. The programme does what itdesigned to do without anyflaws an in an efficient way The memory management isvery efficient.Code and GUIimplementation(task 1) (20%)Is the code wellorganised? Are thevariables namedproperly? Is the codewell commented?Does it use the mostsuitable datatypes forthe variables? Is theGUI user friendly? The code shows thesteps but is difficult toUnderstand what itdoes. Poorly commentedcode. The naming of thevariables is arbitraryand does not give anyidea on what thevariables are used for. The GUI is difficult tohandle and isunorganised. Layout of the GUI isnot set. The code is written in veryorganised way that is easy tofollow. The code is very welldocumented. The variable naming isappropriate and followsprofessional naming rules. The GUI is very easy to workwith. The Data structure used arethe most appropriate for thepurpose they are used for.Verification andError-Handling(task 1) (20%)Has the applicationbeen validated andverified? What doesthe programme do ifthere is a run-timeerror? The application wastested for one caseonly. The applicationcontains minimalerror handling. The Application has beenthoroughly tested. Error handling has been doneprofessionally for a numberof potential run-time errorsand user input errors as well.Task 2 (15%) Does the applicationprovide bilinear fittingmode? Does itdetermine X0automatically? The bilinear modeworks with manyshortcomings. The bilinear mode worksautomatically in a fullyfunctional manner withoutany flaws.Report(25%)Is the report clear anddescriptive? Does ithave all sections? Arethe user instructionsgiven clear? The report isUnderstandable butcontains many errors. The length of somesections isinappropriate eithertoo short or too long. The Source codes aregiven in the appendixbut they are notmachine readable. The report is well written,and all the relevantinformation it should containare clearly stated. The report is concise.*If you have a feedback query after the marks are released make sure you contact mewithin 2 weeks, after that the marks are finalised and sent to the SSO.如有需要,请加QQ:99515681 或WX:codehelp
“
添加老师微信回复‘’官网 辅导‘’获取专业老师帮助,或点击联系老师1对1在线指导。