首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
讲解COMP282程序、辅导C/C++语言编程 讲解SPSS|讲解留学生Prolog
项目预算:
开发周期:
发布时间:
要求地区:
University of Liverpool
Department of Computer Science
COMP282 – Advanced Object-Oriented C Languages
Coursework 1 – C++
Deadline: Tuesday 13th April at 17:00
Weighting: 50%
Make sure your student ID is clearly shown in a comment at the top of your source code. Compress your
Visual Studio project into a single zip file and submit it via SAM. Penalties for late work will be applied in
accordance with the Code of Practice on Assessment.
Project Overview
You will create a small interactive program to
input details about people, manipulate them, and
display them. The project consists of several
tasks, which you should tackle in order. Each task
builds on the previous one. Do as much as you
can and then package your project for
submission. Begin by downloading the Visual
Studio project template for this assessment.
Read through this entire document before you
start coding, so you’re aware of all tasks and the
overall structure of the program. Your solution
should demonstrate your knowledge of C++.
Important: Each task requires you to add extra
code. You shouldn’t need to remove any code.
Keep the code from previous tasks in your
program so we can see it and mark it.
Important: Each part requires you to change the
code in the main() function, potentially losing the
previous version. Therefore we have provided
functions called main_part1(), main_part2() and
main_part3(). Place your code for each part
inside the relevant function. You can uncomment
the relevant lines in the real main() function to
run and test each part.
Part 1 (Worth 15%)
Task 1 – Person Class Definition (5%)
Create a Person class that stores a name and age. The name should be stored as a string, and the age as an
integer. Declare and define a constructor that takes appropriate parameters and stores them in the object.
Also declare and define a default constructor that sets the name to an empty string and the age to zero.
Task 2 – Person I/O (5%)
Implement the << and >> operators so you can output and input a Person object with the following string
format.
Jasmine 18
In other words, the name of the person is output followed by the age. When the user types a similar string
as input, the first token (up to the space) should be stored as the name, and the second (after the space) as
the age. For this task you do not need to do any input validation or error handling. Assume the user will
always type the correct format.
Task 3 – Comparison Operators (5%)
Implement comparison operators (<, >, and ==) for the Person class. These should work numerically, based
on the ages of the people involved.
Add relevant test code to the main_part1() function. Make sure it’s sufficient to test all the implemented
aspects of the Person class from all tasks so far.
Part 2 (Worth 45%)
Task 4 – Adding & Listing People (Fixed Storage) (20%)
Implement this and subsequent tasks in the main_part2() function. Create a loop to present menu items
and input user choices. At this stage the menu will only have three options.
1. Add Person
2. List Everyone
Q. Quit
You will need to use a suitable data structure to store Person objects. For the purposes of this task you can
assume we will never want to store more than 9 people. An example run of this program is shown below.
Example Output (Task 4)
1. Add Person
2. List Everyone
Q. Quit
Enter Option: 1
Enter Details: Martin 42
1. Add Person
2. List Everyone
Q. Quit
Enter Option: 1
Enter Details: Jenny 31
1. Add Person
2. List Everyone
Q. Quit
Enter Option: 2
[1] Martin 42
[2] Jenny 31
1. Add Person
2. List Everyone
Q. Quit
Enter Option: Q
You should check that the storage is not full up (ie. already holds 9 people) before allowing a new person
to be added. Display an error message if the user tries to add too many people.
Task 5 – Finding the Oldest Person (10%)
Add another menu option so the user can find the oldest person in the data structure. An example run is
shown on the next page, assuming there is already some data in the system. You’ve already defined
comparison operators for the Person class that should be useful in this task. The algorithm itself is fairly
straightforward.
Task 6 – Removing People (15%)
Add another menu option so the user can remove people from the data structure. An example run is
shown below, assuming there is already some data in the system.
Example Output (Task 5)
1. Add Person
2. List Everyone
3. Remove Person
4. Find Oldest
Q. Quit
Enter Option: 2
[1] Martin 42
[2] Jenny 31
[3] Alice 56
[4] Freddie 18
1. Add Person
2. List Everyone
3. Remove Person
4. Find Oldest
Q. Quit
Enter Option: 4
Oldest: Alice 56
1. Add Person
2. List Everyone
3. Remove Person
4. Find Oldest
Q. Quit
Enter Option: Q
Example Output (Task 6)
1. Add Person
2. List Everyone
3. Remove Person
4. Find Oldest
Q. Quit
Enter Option: 2
[1] Martin 42
[2] Jenny 31
[3] Alice 56
[4] Freddie 18
1. Add Person
2. List Everyone
3. Remove Person
4. Find Oldest
Q. Quit
Enter Option: 3
Enter Index: 2
1. Add Person
2. List Everyone
3. Remove Person
4. Find Oldest
Q. Quit
Enter Option: 2
[1] Martin 42
[2] Alice 56
[3] Freddie 18
1. Add Person
2. List Everyone
3. Remove Person
4. Find Oldest
Q. Quit
Enter Option: Q
You should make sure that you handle a situation where the user enters an index greater than the number
of people in the data structure.
You should shuffle data within the structure so there are no gaps when a user is removed. Remember you
can refer back to lecture examples and similar code used during lab sessions. Note also that the index
numbers in the output will reflect this shuffling of data, so they won’t always refer to the same person.
Part 3 (Worth 40%)
Task 7 – Refactored Program (Dynamic Data) (25%)
Implement this and subsequent tasks in the main_part3() function. You might like to copy the code from
the previous part as a starting point.
Refactor the program so it uses a dynamic data structure. In other words, there is no limit on the number
of people the program could store (assuming unlimited memory). The actual behaviour of the program
won’t change from the user’s perspective, but internally it will be very different.
You should use a dynamic data structure from the Standard Template Library, such as a vector. You should
also use a corresponding STL iterator. Note that the vector class has an erase() function to remove items.
Make full use of functions and algorithms from the STL where appropriate.
Task 8 – Sorting the Data (15%)
Add another menu option to sort the data in ascending order of age. Note that this will only sort the data,
not display it. If the user wants to see the sorted list, they can select that option afterwards.
1. Add Person
2. List Everyone
3. Remove Person
4. Find Oldest
5. Sort Data
Q. Quit
You should use the full range of functions and algorithms provided by the Standard Template Library, and
implement any necessary helper functions, as explained in the relevant lecture material.
How to Submit
Locate your Visual Studio project folder and compress it into a single .zip archive. If you use any other
format we won’t be able to extract and mark your work. Rename your archive so it has the module code
and your student ID in the filename (eg. comp282_cw1_201212345.zip).
If you want to draw our attention to anything, make a comment in the code itself. We will not read or mark
any other documents.
Submit your archive via SAM (https://sam.csc.liv.ac.uk/COMP/CW_Submissions.pl). You can submit
multiple attempts. If you submit more than one, we will only look at and mark the most recent.
Marking Descriptors
We draw your attention to the standard Department Grade Descriptors, which are listed in the Student
Handbook.
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
data程序代写、代做c/c++编程语...
2024-05-17
data程序代写、代做python编程...
2024-05-17
program代做、c/c++,python程...
2024-05-17
代写math 3333 3.0 - winter 2...
2024-05-17
代做seng6110 programming ass...
2024-05-17
代写seng6110 object oriented...
2024-05-17
代写comp828: statistical pro...
2024-05-17
代做culture and society调试数...
2024-05-17
代做comp 4911 winter 2024 as...
2024-05-17
代做lh physical iiib / 03 33...
2024-05-17
代做3032ict big data analyti...
2024-05-17
代写comp4702 report代写留学生...
2024-05-17
代写fin2020 hw6代写c/c++编程
2024-05-17
热点标签
fit2004
fit3152
mec208
econ20120
cpt304
econ2101
econ0051
engi4547
econ1048
eengm2510
fit1008
7033mkt
ec2066
cct380h5f
man00019m
mech265001
fin2020
fit9137
n1542
csc4140
math6119
comp1710
fina864
csys5020
busi4412
math5007
2702ict
dts204tc
comp2003j
cosc2673
ecmt2150
bff3121–
comu7000
stat6118
comp814
acc202
ematm0067
bit233
ecs776p
600543
bpln0025
comp3400
econ7030
159.342 ‐ operating
mang6134
math1005/math6005
geog5404m
comp1710/6780
infs 2042
inf6028
bman30702
math0002
msci242l
mgt11001
com00177m
bman71282
fit2001
cpt210
159.341
econ7310
comp3221
comp10002
cpt206
ecmt1010
finm081
econ2005
cpt202
fit3094
socs0030
data7201
data2x01
mn-3507
mat246h1
ib2d90
ib3j80
acc207
comp90007
compx518-24a
fit1050
info1111
acct2201
buad801
compsci369
cse 332s
info1110
math1033
scie1000
eeee2057
math4063
cmt219
econ5074
eng5009
csse2310/csse7231
ec333
econ0001
cpt204
elec4630
ma117
dts104tc
comp2017
640481
csit128
eco000109m
finc5090
ggr202h5f
nbs8295
4ssmn902
chc6171
dsa1002
ebu6304
comp1021
csci-ua.202
com6511
ma416
mec206
iom209
bism7202
idepg001
cpt106
comp1212
ecom209
math1062
mn-3526
fnce3000
fmhu5002
psyc10003
fina2222
be631-6-sp/1
finc2011
37989
5aaob204
citx1401
econ0028
bsan3204
comp9123
cmt218
itp122
qbus6820
ecmt1020
bus0117
soft3202/comp9202
basc0057
mecm30013
aem4060
acb1120
comp2123
econ2151
ecmt6006
inmr77
com 5140
ocmp5328
comp1039
had7002h
cmt309
asb-3715
elec373
cpt204-2324
be631-6-sp
econ3016
mast10007
buss6002
comp4403
comp30023
finm1416
csc-30002
6qqmn971
fin668
mnfg309
inft2031
cits1402
comp2011
eecs 3221
ebu4201
ct60a9600
com336
8pro102
econ7300
comp3425
comp8410
comp222
finm8007
comp2006
comp26020
comp1721
eeen3007j
cis432
csci251
comp5125m
com398sust
finm7405
econ7021
fin600
infs4205/7205
mktg2510-
32022
mth6158
comp328
finn41615
2024
mec302
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!