首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
COMP1711代写、代做C++,Java程序设计
项目预算:
开发周期:
发布时间:
要求地区:
UNIVERSITY OF LEEDS | SCHOOL OF COMPUTING
Resit Assessment Brief
Module title Procedural Programming
Module code COMP1711
Assignment title Resit – Carbon Capture Data Analysis
Assignment type and
description
This is a programming assignment. You will design and create a number of
programs to solve a problem from your client.
Rationale You are doing this assessment to develop your skills in software design and
development.
Word limit and guidance You should spend around 10-15 hours on this assessment.
Weighting 100%
Submission deadline 9
th
August 2024 @ 23:59 BST
There are no late submissions permitted.
Submission method Via Gradescope.
Feedback provision Automated feedback through Gradescope
Learning outcomes
assessed
LO1: select appropriate data types to represent data.
LO2: apply problem solving techniques to develop a programming solution to
real world problems.
LO3: design, implement, debug and test procedural programs.
Module leader Amy Brereton
Other Staff contact
UNIVERSITY OF LEEDS | SCHOOL OF COMPUTING
1. Assignment guidance
Scenario, Struct & tokeniseRecord()
You have been asked to work on a new sustainability project, exploring the effectiveness of new carboncapture
techniques by analysing data files produced by sensors.
The data is stored in comma separated value (csv) files, and each row in the file is in this format:
2023-09-01,08:15,150
The first column represents the date (in YYYY-MM-DD format).
The second column represents the time (8.15am in our example).
The third column represents the units of carbon saved (measured in grams) since the last timestamp.
These files are valid if:
- They contain between 1 and 1000 records (inclusive)
- All carbon readings are positive
- The times and dates are valid
- There are no missing values.
To store this data, one of the other developers on your team has produced a custom struct which you can
use to store the information for each row in the file:
typedef struct _CARBON_DATA {
char date[11];
char time[6];
int carbon_units;
} carbonData;
And you have also been given the function tokeniseRecord() which is able to split records into their
comma separated values – the README.md in the code folder has a brief explanation of how to use this
function.
Development Process
It is recommended that you use Github Codespaces, which gives you access to a Linux virtual machine which
can run from any internet connected device.
You should develop your code on a private repository to prevent others from accessing it.
You can also access the University’s virtual Linux desktop via:
https://feng-linux.leeds.ac.uk/
You will need to be running the PulseSecure VPN in order to access Feng:
instructions here (you must be logged on to the IT service website to access)
UNIVERSITY OF LEEDS | SCHOOL OF COMPUTING
2. Assessment tasks
Task 1: Reading Data
Task 1 marks: 25
Expected time: 1 - 2 hours
To ensure that data can be correctly read in from the files, you will make a simple C program which is able to:
1. Read in the csv file (for this task, always named ‘CarbonData_2023.csv’)
o You may assume that this file always exists and is always valid for task 1.
2. Store it in a suitably sized and structured array using the provided struct carbonData
3. Write the number of records in the file to the screen in this exact format (234 is just an example):
Number of records in file: 234
4. Write to the screen the first three rows of the file in the following format:
2023-09-01/07:30/300
2023-09-01/07:45/400
2023-09-01/08:00/600
Note that there are NO SPACES in the output string, each value is separated by a single forward slash
‘/’ with a single newline after each row.
How it’s marked:
All submitted code for all tasks is marked by an autograder which checks that your code meets the
requirements from the brief. You will see a selection of tests when you submit your code, but some will not
be visible to you.
Each section is tested separately, and marks are available for each individual test.
SECTION MARKS AVAILABLE
Reading in the original CarbonData_2023.csv file 2.5 marks
Reading in a new set of data from CarbonData_2023.csv 2.5 marks
Printing out the correct number of records 10 marks
Printing out the correct first 3 rows 10 marks
TASK 1 - TOTAL 25 MARKS
UNIVERSITY OF LEEDS | SCHOOL OF COMPUTING
Task 2: Analysing Data
Task 2 marks: 40
Expected time: 4 – 5 hours
Now that you have been able to read the data into an appropriate structure, you have been given the task of
making a tool to analyse the data to give some useful statistics.
Follow good programming practices by structuring your program into two separate files:
CarbonDataStruct.h – A header file containing includes, the struct and any helper functions you'd like to
include – the template includes tokeniseRecord().
CarbonAnalysis.c – A program file containing the code and functions needed to solve the given tasks.
Requirements:
The program should present a simple menu system to the user, offering the following functions:
A: Specify the filename to be imported. Implement error checking to handle incorrect filenames.
B: Display the total number of records in the file.
C: Find the date and time of the timeslot with the fewest carbon units saved.
D: Find the date and time of the timeslot with the most carbon units saved.
E: Calculate the mean carbon units saved across all records in the file.
F: Identify the longest continuous period where the carbon units saved are below 100 grams.
Q: Quit the program
When an option is selected, you code should show the correct data and then return to the menu.
You must not use ‘clear()’, ‘cls()’ or any other method which clears the screen – this causes issues with
grading.
The data should be printed out in the formats below:
Option Example output
B Total records: 229
C Lowest units: 2023-09-01 14:20
D Highest units: 2023-09-01 18:00
E Mean units: 427
Note: This should be rounded to the nearest integer (1.4 -> 1, 1.5 -> 2)
F Longest period start: 2023-09-01 14:20
Longest period end: 2023-09-01 18:00
If the filename provided is invalid (does not exist/cannot open) – you must exit the program and return the
value 1.
You do not need to check that the data inside is valid.
UNIVERSITY OF LEEDS | SCHOOL OF COMPUTING
How it’s marked:
SECTION MARKS AVAILABLE
A - File handling / dealing with invalid filenames 5 marks
B – Correctly counting records in a file 5 marks
C – Finding row with lowest carbon units 5 marks
D – Finding row with highest carbon units 5 marks
E – Finding correct mean average of units 10 marks
F – Finding the correct period of < 100 units. 10 marks
TASK 2 - TOTAL 40 MARKS
In order to make the autograder work correctly, you must follow the format and return codes given above.
You will get a small amount of feedback from the grader, but you should ensure that you have tested your
code and its behaviour on a variety of different files – do not just rely on testing it on one file!
You can make the following assumptions for task 2:
- The data in the .csv file is always valid
- The user will always set a filename first (i.e the grader will always run ‘A’ first)
- The user will always input capital letters to the menu (i.e ‘A’, ‘B’, etc.)
- There will only be one instance of a count which is the lowest/highest
- There won’t be multiple periods < 100 of the same length.
UNIVERSITY OF LEEDS | SCHOOL OF COMPUTING
Task 3: Presenting Data
Task 3 marks: 20 marks
Expected time: 2 – 3 hours
This task requires you to write a utility program to output the data file sorted by descending order of carbon
count in tab separated value (.tsv) format.
A .tsv file differs slightly from a .csv in that the delimiter (character which separates each piece of data) isn’t
a comma (,) but a tab character. This has the special code \t which places an appropriate number of spaces
when printed.
Your program should:
1. Ask for a filename and check the file exists.
2. Read the data file – and validate that the data is in the correct format
3. Write out the sorted data into a new file. The record with the highest carbon count should be at the
top and the record with the smallest carbon count should be at the bottom (descending order). If any
records contain the same carbon count, these should be in chronological order (the one which
occurred first should be at the top).
An example .tsv file is provided in the carbon_files/valid/ folder.
If the filename provided is invalid (does not exist/cannot open) – you must exit the program and return the
value 1.
If the data format is wrong – you must exit the program and return the value 2.
If the input file is:
mydata.csv
The output file should be called:
mydata.csv.tsv
You should submit files:
CarbonDataStruct.h - containing any functions/structs you use in your source code.
CarbonDataSorter.c - containing your source code.
How it’s marked:
SECTION MARKS AVAILABLE
File handling 2 marks
Handling invalid data 6 marks
Correctly sorting and outputting the data 12 marks
TASK 3 - TOTAL 20 MARKS
UNIVERSITY OF LEEDS | SCHOOL OF COMPUTING
Invalid File Specification
An invalid file will contain one or more of the following:
- Invalid carbon count:
o Not an int
o < 0
- Date which is invalid:
o Not in format YYYY-DD-MM
o Day > 31 or < 0
o Month > 12 or < 1
o Year Between 2000 – 2024 (inclusive)
o No requirement to validate number of days in month (i.e. 2023-02-31 is valid)
- Time which is invalid:
o Not in format HH:MM
o Hours > 23 or < 0
o Mins > 59 or < 0
- A record with a missing or empty field
UNIVERSITY OF LEEDS | SCHOOL OF COMPUTING
Task 4: Quiz
Task 4 marks: 15
Expected time: 1 hour
For this task, you will need to complete the 15 question multiple-choice quiz on Gradescope.
There are 3 sections with 5 multi-choice questions each:
- Questions about a provided piece of C code
- Questions about programming in general
- Questions about code quality
Once you begin the quiz, you have 60 minutes to complete it. You only have one attempt to complete it, so
be prepared in a quiet environment where you will be able to focus – you should also ensure you have a
stable internet connection and a device with sufficient power for 60 minutes.
You may complete this part of the assignment at any time before the deadline.
This is an assessment, and therefore must be completed independently. You can use any notes or online
resources you would like, but you must not work with other students.
How it will be marked:
Each of the 15 questions is worth 1 mark – partial marks are not awarded for questions where you can
choose multiple answers.
You will not see your mark or any feedback until after marks are released.
UNIVERSITY OF LEEDS | SCHOOL OF COMPUTING
3. General guidance and study support
Please refer to the module teaching materials in Minerva for any background support.
4. Assessment criteria and marking process
All code is graded solely on functionality – you must ensure that your code follows the brief exactly, and use
the feedback from the grader to check that your code is passing the visible tests.
The passing mark for the assessment is 40% - you may obtain this grade through any combination of
tasks/parts of tasks.
5. Presentation and referencing
If you use an idea in your solution that you have seen on the Web somewhere then add a comment to the
code like this:
// I based this on an idea I found here:
// https://stackoverflow.com/questions/12901021/error-in-c-file-handling
If you use a book or a printed resource then give the author and title:
// I based this on an idea I got from here:
// An Introduction to C and GUI Programming by Simon Long, pages 56-57
This assignment is rated ORANGE for use of generative AI tools – this means that you may use generative AI
tools in an assistive capacity, but must not generate any of your final answer directly from a generative AI
tool.
You may not give any generative AI tool access to this brief or any part of this brief, nor ask it to write code
for you.
You must reference any use of any generative AI by comment in the format below:
// I based this on a discussion with ChatGPT
// Prompt: Explain how to import a CSV file in C
6. Submission requirements
Your code must:
- Be in C
- Compile on Linux with the following command: gcc *.c –o task
- Not be inside a subfolder (not in a zip)
UNIVERSITY OF LEEDS | SCHOOL OF COMPUTING
7. Academic misconduct and plagiarism
Leeds students are part of an academic community that shares ideas and develops new ones.
You need to learn how to work with others, how to interpret and present other people's ideas, and how to
produce your own independent academic work. It is essential that you can distinguish between other
people's work and your own, and correctly acknowledge other people's work.
All students new to the University are expected to complete an online Academic Integrity tutorial and test,
and all Leeds students should ensure that they are aware of the principles of Academic integrity.
When you submit work for assessment it is expected that it will meet the University’s academic integrity
standards.
If you do not understand what these standards are, or how they apply to your work, then please ask the
module teaching staff for further guidance.
By submitting this assignment, you are confirming that the work is a true expression of your own work and
ideas and that you have given credit to others where their work has contributed to yours.
8. Assessment/ marking criteria grid
Task Description Marks available
Task 1 Reading Data 25
Task 2 Analysing Data 40
Task 3 Presenting Data 20
Task 4 Multiple choice quiz 15
Total 100
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代做ceng0013 design of a pro...
2024-11-13
代做mech4880 refrigeration a...
2024-11-13
代做mcd1350: media studies a...
2024-11-13
代写fint b338f (autumn 2024)...
2024-11-13
代做engd3000 design of tunab...
2024-11-13
代做n1611 financial economet...
2024-11-13
代做econ 2331: economic and ...
2024-11-13
代做cs770/870 assignment 8代...
2024-11-13
代写amath 481/581 autumn qua...
2024-11-13
代做ccc8013 the process of s...
2024-11-13
代写csit040 – modern comput...
2024-11-13
代写econ 2070: introduc2on t...
2024-11-13
代写cct260, project 2 person...
2024-11-13
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!