国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看

合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務(wù)合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務(wù)合肥法律

COMP2404代做、C++編程設(shè)計(jì)
COMP2404代做、C++編程設(shè)計(jì)

時(shí)間:2024-11-04  來(lái)源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯(cuò)



COMP2404 -“Introduction to Software Engineering”
Assignment 3
1 Submission Instructions
Submit to Brightspace on or before the due date a compressed file (.tar or .zip) that includes
1. Header and source files for all classes instructed below.
2. A working Makefile that compiles and links all code into a single executable. The Makefile should be specific
to this assignment - do not use a generic Makefile.
3. A README file with your name, student number, a list of all files and a brief description of their purpose,
compilation and execution instructions, and any additional details you feel are relevant.
2 Learning Outcomes
In this assignment you will learn to
1. Add functionality to an existing codebase.
2. Change a class implementation while keeping the same interface
3. Make a UML diagram to illustrate the interaction between classes.
4. Implement copy constructors that use deep copy, while properly managing all dynamic memory.
5. Implement proper encapsulation (using the const keyword where appropriate)
VERY IMPORTANT!!! YOU WILL LOSE MARKS IF YOU DO NOT CONST YOUR FUNC TIONS AND PARAMETERS!!!.
3 Overview
This is a continuation of the GetHub project from assignment 2. As a starting point, you may use your own assignment,
or use the code provided.
In addition to changing existing classes, you will implement a Client class that can “download” (i.e., make a
deep copy of) a Repo, and then print the Files it contains.
As before there is a Control class that connects and coordinates the functionality of your classes with a View
class. In addition there is a separate TestControl class that allows you to run tests.
You will be required to make a UML diagram of the completed project.
4 UML Diagram
Make a UML diagram of the completed project. You may omit the Control, TestControl, Tester, and View classes.
A partial UML diagram is provided to help you get started. It includes the “uses” notation, which we did not discuss
in class, but this is the only place in the diagram where this particular notation should appear.
COMP2404 -“Introduction to Software Engineering”
Assignment 3
GetHub
// add, remove, get
+ addRepo(in title: string, in owner: string)
+ deleteRepo(in index: int)
+ getNumRepos(): int
+ download(in index: int, out repo: Repo): bool
+ addFile(in repo: string, in title: string, in content: string, in date: Date)
+ addFile(in repo: int, in title: string, in content: string, in date: Date)
+ deleteFile(in repo: int, in file: int)
// print
+ printRepos()
+ printRepo(in index: int)
+ printFileContents(in repoIndex: int, in fileIndex: int)
Client
+ cloneRepo(in getHub: GetHub, in index: int)
+ printRepo ( )
+ printFileContents(in index: int)
uses
COMP2404 -“Introduction to Software Engineering”
Assignment 3
5 Classes Overview
This application will consist of 11 classes. Ten classes are provided: these are the same classes from Assignment 2.
You will add another class and make changes to some of the existing classes.
1. The Date class (Entity object):
(a) Contains date information.
2. The File class (Entity object):
(a) Contains information about the File (name, content, last date modified)
3. The Repo class (Entity object):
(a) Contains information about the Repo (title, owner)
(b) Manages a collection of Files
4. The FileList class (Collection object):
(a) Data structure for File pointers.
5. The RepoList class (Collection object):
(a) Data structure for Repo pointers.
6. The GetHub class (Control, Collection, View object):
(a) Manages a collection of Repos.
(b) Provides services to add, delete, access, and print Repos and the Files in the Repos.
(c) Prints (error) messages to std::cout
7. The View class (Boundary object):
(a) Presents a menu, takes input from the user
8. The Control class (Control object):
(a) Manages the interaction of the other objects.
9. The TestControl class (Control object):
(a) Manages the interaction of the other objects in order to run tests.
10. The Tester class (???):
(a) Provides testing functionality.
We will be using std::cout as the main output object for error reporting.
COMP2404 -“Introduction to Software Engineering”
Assignment 3
6 Instructions
Download the starting code from Brightspace. It includes some global functions that you are to use for testing as
well as some classes. All member variables are private unless otherwise noted. All member functions are public
unless otherwise noted. Some return values are not explicitly given. You should use your best judgment (they will
often be void, but not always). ALL CLASSES MUST HAVE A PRINT FUNCTION (except for FileList and
RepoList). This print function should display the metadata of the class using appropriate formatting.
Your finished code should compile into two executables called a3 and a3test using the command make all or
simply make. The Makefile is provided for you. Your submission should consist of a single zip file with a suitable
name (e.g., assignment2.zip) that contains a folder containing all your files. This folder should also contain a
README with your name, student number, a list of all files that are included, a directory structure (if applicable),
compiling and running instructions, and any other information that will make the TAs life easier when they mark
your assignment.
Below are the changes you should make to the existing project. Section 6.1 should be applied to all classes.
6.1 Encapsulation
You should apply the const keyword to existing classes wherever possible. That means any function that can be made
const should be, and any parameter that can be made const should be. The only exceptions are (Test)Control,
Tester, and View classes - you do not need to apply const to these classes.
VERY IMPORTANT!!! YOU WILL LOSE MARKS IF YOU DO NOT CONST YOUR FUNC TIONS AND PARAMETERS!!!.
6.2 The File Class
We are going to modify the lessThan function, and add an equals function.
1. Adjust the lessThan() function so that it returns true if this File’s name comes before the parameter’s name
in alphabetical order. If the two names are equal (i.e., it is the same File) then order them as defined by
Date::lessThan using the lastModified parameter.
2. Make an equals() function that returns true if the name and the Date are equal (you do not have to compare
the content).
6.3 The Repo Class
You should add a copy constructor to the Repo class that does a deep copy of all data. Be sure to add any other
functions that you require, here or in other classes, to correctly manage your memory.
6.4 The List Classes
Modify FileList and RepoList so that they are both implemented using DOUBLY LINKED LISTS. You should
keep the same interface (public functions defined in the header), and the functions should do the same jobs as before
(except for isFull, detailed below).
Observe that once you change the implementation, everything should work exactly as before. That means all
the tests will pass whether you change these classes or not. But a TA will check and deduct or award marks as
appropriate. There is an additional change detail below.
1. FileList and RepoList:
(a) Have isFull() always return false.
COMP2404 -“Introduction to Software Engineering”
Assignment 3
(b) As a reminder, FileList should add Files in the order defined by File::lessThan, while RepoList
should add Repos to the back of the list.
6.5 The Client Class
Make a Client class. Refer to the UML diagram for function specifications. As in the GetHub class, when an
operation fails, be sure to send an appropriate error message to cout.
1. Member variables:
(a) A Repo pointer. This is the current Repo that the Client is working with.
2. The constructor should initialize all member variables appropriately (you should set your pointer to nullptr
to start with).
3. The destructor should delete all dynamically allocated memory reachable by this class.
4. cloneRepo: cloneRepo should make a deep copy of the GetHub Repo at the given index, and store the address
in your Repo pointer.
5. printRepo: call Repo::printFiles on the stored Repo, or give an error message if the Repo pointer is null.
6. printFileContents(int index): Call printContents on the File stored at the given index.
6.6 The Control Class
This class controls the interactions between the View, GetHub, and Client classes. Most of it has been done for you.
You should add a Client class, and complete downloadRepo(), printClientRepo() and printClientFileContent().
6.7 The TestControl Class
This class has been done for you. It interacts with your classes and the View to run a series of tests and output your
mark.
The old tests are provided for convenience. They may not work properly until you const your classes. You get
5 marks if the old tests still work after you have made your modifications.
In addition there are 2 new tests for the Client class worth 10 marks each.
6.8 The View Class
This class has been done for you. It interacts with the user and returns values to the control object
6.9 The main.cc and test.cc Files
These have been done for you. main.cc is compiled into an executable a3 using the Control class. test.cc is
compiled into an executable a3test using the TestControl and Tester classes. The a3 executable lets you interact
with your application from a user’s perspective. The a3test executable runs tests and gives you your mark.
7 Grading
The marks are divided into three main categories. The first two categories, Requirements and Constraints are
where marks are earned. The third category, Deductions is where you are penalized marks.
COMP2404 -“Introduction to Software Engineering”
Assignment 3
7.1 Specification Requirements
These are marks for having a working application (even when not implemented according to the specification, within
reason). The test suite will automatically allocate the marks, though they can be adjusted by the marking TA if
some anomaly is found.
General Requirements
• All marking components must be called and execute successfully to earn marks.
• All data handled must be printed to the screen to earn marks (make sure the various print functions print
useful information).
Application Requirements: With the exception of the memory leaks marks (Part 6), these marks are generated
by the a3test executable. Part 5 will be tested by a TA by running the individual tests in the a3test executable
with valgrind.
1. (5 marks):
(a) RepoList test
(b) GetHub Repo test
(c) GetHub File test
2. (10 marks): Client cloneRepo test
3. (10 marks): Client memory test
4. (10 marks, 5 marks each) FileList and RepoList are Doubly Linked Lists.
5. (4 marks): Tests 2 and 3 should pass with no memory leaks or other memory faults (2 marks per test)
6. (6 marks total) Control functions
(a) (2 marks) downloadRepo
(b) (2 marks) printClientRepo
(c) (2 marks) printClientFileContent
7. (5 marks) UML diagram
Requirements Total: 50 marks
7.2 Constraints
The previous section awards marks if your program works correctly. In this section marks are awarded if your
program is written according to the specification and using proper object oriented programming techniques. This
includes but is not limited to:
• Apply “const”-ness to your program.
– Print statements, getters, and any member function that does not change the value of any member variables
should be const.
– Any parameter object (passed by reference) that will not be modified should be const.
• Proper declaration of member variables (correct type, naming conventions, etc).
COMP2404 -“Introduction to Software Engineering”
Assignment 3
• Proper instantiation of member variables (statically or dynamically)
• Proper instantiation of objects (statically or dynamically)
• Proper constructor and function signatures.
• Proper constructor and function implementation.
• Proper use of arrays and data structures.
• Passing objects by reference or by pointer. Do not pass by value.
• Reusing existing functions wherever possible within reason. There are times where duplicating tiny amounts
of code makes for better efficiency.
• Proper error checking - check array bounds, data in the correct range, etc.
7.2.1 Constraints: 10 marks
1. 2 marks: Proper implementation and const-ing of the File class.
2. 2 marks: Proper implementation and const-ing of the List classes.
3. 2 marks: Proper implementation and const-ing of the Repo class.
4. 2 marks: Proper implementation and const-ing of the GetHub class.
5. 2 marks: Proper implementation and const-ing of the Client class.
Constraints Total: 10 marks
Requirements Total: 50 marks
Assignment Total: 60 marks
7.3 Deductions
The requirements listed here represent possible deductions from your assignment total. In addition to the constraints
listed in the specification, these are global level constraints that you must observe. For example, you may only use
approved libraries, and your programming environment must be properly configured to be compatible with the virtual
machine. This is not a comprehensive list. Any requirement specified during class but not listed here must also be
observed.
7.3.1 Documentation and Style
1. Up to 10%: Improper indentation or other neglected programming conventions.
2. Up to 10%: Code that is disorganized and/or difficult to follow (use comments when necessary).
COMP2404 -“Introduction to Software Engineering”
Assignment 3
7.3.2 Packaging and file errors:
1. 5%: Missing README
2. 10%: Missing Makefile (assuming this is a simple fix, otherwise see 4 or 5).
3. up to 10%: Failure to use proper file structure (separate header and source files for example), but your program
still compiles and runs
4. up to 50%: Failure to use proper file structure (such as case-sensitive files and/or Makefile instructions) that
results in program not compiling, but is fixable by a TA using reasonable effort.
5. up to 100%: Failure to use proper file structure or other problems that severely compromise the ability to
compile and run your program.
As an example, submitting Windows C++ code and Makefile that is not compatible with the Linux VM would
fall under 4 or 5 depending on whether a reasonable effort could get it running.
7.3.3 Incorrect object-oriented programming techniques:
• Up to 10%: Substituting C functions where C++ functions exist (e.g. don’t use printf or scanf, do use cout
and cin).
• Up to 25%: Using smart pointers.
• Up to 25%: Using global functions or global variables other than the main function and those functions and
variables expressly permitted or provided for initialization and testing purposes.
7.3.4 Unapproved libraries:
• Up to 100%: The code must compile and execute in the default course VM provided. It must NOT require
any additional libraries, packages, or software besides what is available in the standard VM.
• Up to 100%: Your program must not use any classes, containers, or algorithms from the standard template
library (STL) unless expressly permitted.

請(qǐng)加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp



 

掃一掃在手機(jī)打開(kāi)當(dāng)前頁(yè)
  • 上一篇:ME5701程序代寫(xiě)、代做Matlab設(shè)計(jì)編程
  • 下一篇:CS 7280代做、代寫(xiě)Python編程語(yǔ)言
  • 無(wú)相關(guān)信息
    合肥生活資訊

    合肥圖文信息
    流體仿真外包多少錢(qián)_專業(yè)CFD分析代做_友商科技CAE仿真
    流體仿真外包多少錢(qián)_專業(yè)CFD分析代做_友商科
    CAE仿真分析代做公司 CFD流體仿真服務(wù) 管路流場(chǎng)仿真外包
    CAE仿真分析代做公司 CFD流體仿真服務(wù) 管路
    流體CFD仿真分析_代做咨詢服務(wù)_Fluent 仿真技術(shù)服務(wù)
    流體CFD仿真分析_代做咨詢服務(wù)_Fluent 仿真
    結(jié)構(gòu)仿真分析服務(wù)_CAE代做咨詢外包_剛強(qiáng)度疲勞振動(dòng)
    結(jié)構(gòu)仿真分析服務(wù)_CAE代做咨詢外包_剛強(qiáng)度疲
    流體cfd仿真分析服務(wù) 7類仿真分析代做服務(wù)40個(gè)行業(yè)
    流體cfd仿真分析服務(wù) 7類仿真分析代做服務(wù)4
    超全面的拼多多電商運(yùn)營(yíng)技巧,多多開(kāi)團(tuán)助手,多多出評(píng)軟件徽y1698861
    超全面的拼多多電商運(yùn)營(yíng)技巧,多多開(kāi)團(tuán)助手
    CAE有限元仿真分析團(tuán)隊(duì),2026仿真代做咨詢服務(wù)平臺(tái)
    CAE有限元仿真分析團(tuán)隊(duì),2026仿真代做咨詢服
    釘釘簽到打卡位置修改神器,2026怎么修改定位在范圍內(nèi)
    釘釘簽到打卡位置修改神器,2026怎么修改定
  • 短信驗(yàn)證碼 豆包網(wǎng)頁(yè)版入口 破天一劍 目錄網(wǎng) 排行網(wǎng)

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
    ICP備06013414號(hào)-3 公安備 42010502001045

    国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看
    精品一区二区成人免费视频| 日韩中文字幕在线免费| 国产亚洲欧美一区二区| 亚洲97在线观看| 久久人人爽人人爽爽久久| 91高清免费视频| 国产免费一区二区三区香蕉精 | 欧美精品一区免费| 精品一区2区三区| 国产精品免费在线免费| 久久久久久久久久久免费视频| 91精品国产自产91精品| 成人免费无码av| 国产伦精品一区二区三区免费视频| 欧美久久久久久久| 美国av一区二区三区| 国内精品一区二区| 国内视频一区| 国产欧美精品日韩| 国产精品一二三视频| 97国产精品视频| 成人乱人伦精品视频在线观看| 国产乱码一区| 日本视频一区二区不卡| 欧美在线观看视频| 欧美成ee人免费视频| 国产欧美欧洲| 久久久久久美女| 久久婷婷国产麻豆91天堂| 中文字幕在线中文字幕日亚韩一区| 一区二区三区久久网| 一区二区三区四区视频在线| 国产精品都在这里| 国产亚洲第一区| 91国在线高清视频| 国产精品视频永久免费播放| 久久久精品2019中文字幕神马| 国产精品久在线观看| 精品久久久久av| 日本一区二区三区四区在线观看| 欧美亚洲国产视频| 91高清免费在线观看| 久久伊人91精品综合网站| 亚洲va欧美va在线观看| 国产一区二区三区四区五区在线| 91精品国产综合久久久久久久久| 国产精品二区三区| 秋霞在线观看一区二区三区| 国产精品伊人日日| 欧美精品在线免费播放| 欧美日韩免费观看一区| 99三级在线| 欧美激情乱人伦一区| 欧美一区视频在线| 久久综合毛片| 一本色道久久88亚洲精品综合 | 7777在线视频| 国模私拍视频一区| 久久99国产精品| 亚洲精品免费在线视频| av免费观看久久| 精品中文字幕在线2019| 国产中文欧美精品| 国产精品久久久一区| 欧美做暖暖视频| 日韩中文字幕视频| 欧美综合激情网| 久久九九国产精品怡红院| 欧美成人精品欧美一级乱| 色狠狠av一区二区三区香蕉蜜桃| 亚州成人av在线| 久久国产一区| 欧美亚州一区二区三区| 国产又大又硬又粗| 欧美激情中文网| 久久免费一区| 青青影院一区二区三区四区| 日韩视频―中文字幕| 狠狠色综合一区二区| 国产精品久久久久久av| 国产日韩二区| 欧美一级免费看| 国产精品免费视频久久久 | 国产一区二区在线播放| 久久国产精品久久久久久| 分分操这里只有精品| 欧美一区二区大胆人体摄影专业网站 | 日韩中文字幕在线免费| 国产精品免费视频xxxx| 91蜜桃网站免费观看| 热草久综合在线| 欧美激情乱人伦| 日韩视频免费观看| 99色这里只有精品| 精品免费视频123区| 日韩一级片免费视频| 中文字幕欧美日韩一区二区 | 国产高清不卡av| 国产日韩一区二区| 红桃一区二区三区| 欧美一区二区中文字幕| 久久99久国产精品黄毛片入口| 日本精品久久久久影院| 久久99国产综合精品女同| 久久噜噜噜精品国产亚洲综合| 亚洲日本精品一区| 国产精品久久久久秋霞鲁丝| 高清不卡一区二区三区| 欧美一级爱爱| 午夜精品一区二区三区在线视| 日韩中文字幕亚洲| 91av免费看| 国产欧美综合精品一区二区| 国产精品高潮视频| 日韩中文字幕在线观看| 69av在线播放| 99在线看视频| 黄色大片在线免费看| 久久久亚洲国产精品| 免费在线观看日韩视频| 欧美一区二区大胆人体摄影专业网站| 精品国产乱码久久久久久88av| 国产精品女人久久久久久| 久久久久亚洲精品| 国产va亚洲va在线va| 91av在线播放| 精品一区二区中文字幕| 激情婷婷综合网| 日本国产在线播放| 日本一区高清在线视频| 91精品中文在线| 97精品视频在线播放| 99在线视频首页| 国产脚交av在线一区二区| 91九色综合久久| 97国产在线播放| 久久人人爽人人爽人人片av高清| 91传媒视频免费| 久久久久久免费看| 久久精品国产99国产精品澳门 | 国产视频一区二区三区四区 | 成人在线观看毛片| 91精品在线一区| 国产a级黄色大片| 国产成人亚洲综合91精品| 亚洲国产精品视频一区| 久久艳片www.17c.com| 中文字幕99| 欧美久久久精品| 日本www在线视频| 日本高清久久天堂| 日韩欧美一区二区三区久久婷婷| 色偷偷888欧美精品久久久| 精品国产欧美一区二区三区成人| 日韩在线观看网址| 欧美精品免费看| 婷婷精品国产一区二区三区日韩| 人体内射精一区二区三区| 内射国产内射夫妻免费频道| 97久久国产精品| 久久天堂av综合合色| 丁香色欲久久久久久综合网| 国内精品久久久久伊人av| 91久久精品久久国产性色也91| 久久精品国产69国产精品亚洲| 国产精品日韩专区| 无码人妻丰满熟妇区96| 欧美日韩国产一二| 国产成人综合一区二区三区| 色中色综合影院手机版在线观看| 日韩免费视频播放| 91精品国产高清久久久久久91裸体 | 国产一区二区三区小说| 久久久久久国产精品一区| 亚欧洲精品在线视频免费观看| 国产日韩精品在线| 久久久久久久久久久视频| 午夜精品一区二区三区在线播放 | 国产深夜男女无套内射| 久久久久女教师免费一区| 亚洲美女搞黄| 91免费版看片| 午夜精品美女自拍福到在线 | 日韩成人av电影在线| 久久综合久久八八| 国产偷久久久精品专区| 欧美第一黄网| 九一免费在线观看| 日本欧美一二三区| www.欧美三级电影.com| 中文字幕精品在线播放| 国产美女视频免费| 宅男av一区二区三区| 91看片淫黄大片91| 青青在线免费观看| 国产精品狠色婷| 91精品在线观看视频| 日本一区高清在线视频| 久久精品视频99| 国产精品一区二区久久精品|