联系方式

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

您当前位置:首页 >> CS程序CS程序

日期:2023-11-04 08:51

ACS130 Introduction to Systems Engineering and Software
Individual C Programming Assignment 1
Tara Baldacchino (t.baldacchino@sheffield.ac.uk, Room D13, AJB)
Assignment weighting: 10% of module mark
Assignment released: Wednesday 18 October (Semester 1, Week 4)
Assignment due: 11.59pm Monday 6 November (Semester 1, Week 7).
How to submit
The assignment must be submitted to Blackboard, at the link ACS130 > Assessment > C
Programming ACS130-001. You must upload you *.c file. There is a separate drop box for
ACSE and Aero students so please submit to the correct drop box. Please make sure you
submit your .c file and nothing else. If, when I download your program from Blackboard I
cannot run the file because it is not a .c file (or for any other reason), you will NOT be
marked.
You are allowed to submit multiple times before the deadline. Once the deadline has
passed, your latest submission is the one that is marked. You cannot resubmit after the
deadline.
Marking
I will mark your program. The attached mark sheet provides a guide to the areas on which
feedback will be provided. The rubric on Blackboard also provides a guide to the marks for
this assignment. You need to check that your code runs properly in Codeblocks because I will
be using the Codeblocks IDE to run your programs. It is your responsibility to check that your
code runs properly in Codeblocks. This applies to everyone including Mac users; you need to
make sure that your program runs on the Windows Codeblocks (I do not own a Mac).
How you should work
This is an individual assignment, and it must be wholly your own work. You should not
discuss a solution to this assignment with anyone else, and you should not work with anyone
else to produce a solution. I will check for collusion and plagiarism.
You must complete this assignment in your own time. You cannot ask for help on this
assignment from the GTAs in ACS130 C practice sessions.
Learning outcomes
In doing this assignment, you will demonstrate your ability to program in C to manipulate files,
output to the screen, implement the selection and repetition constructs, and manipulate
variables, as well as use functions.
Assignment briefing
Write a C program for the flowchart in Figure 1. The program accepts a line of characters,
which are written to a file. These characters are then processed to extract the number
characters only, from which an average is found. Additionally (not shown in the flowchart), you
need to add the following to your code:
? When reading the file, check if the file exists, and if the file does not exist then the
program needs to abort.
? Cater for the situation when no numbers are entered at the start, and so no average
can be calculated. The logic for this needs to be performed in the function
float mean(int sum, int N). This function does not have any printf
statements.
? Program your code to keep looping until the user decides to quit the code.
? Your program must have meaningful inline comments, as well as a detailed header
comment, and be well laid out and readable (good indentation).
Please note that there are a few restrictions you need to follow. These restrictions are
in place because otherwise you could just copy and paste code off the internet or even
get ChatGPT to do it for you.
? The only header file you may include is stdio.h, therefore you will not be allowed to
use pre-defined functions from any other header file. You will be penalised if you
use more functions defined in other header files (eg atoi() is not allowed since this
is defined in stdlib.h).
? You may not use arrays or strings (which will be covered later in this module). You
will be penalised if you use arrays or strings.
? You may not use pointers (covered in semester 2). You will be penalised if you use
pointers. NOTE: FILE *fIN (file pointer) is allowed.
? You may not use dynamic memory allocation such as malloc and calloc. You will be
penalised if you use dynamic memory allocation.
? You may not use goto/break/continue/jump etc. You will get 0 marks if you
use any of these.
? You may not use global variables. These are variables declared outside main. You
will be penalised if you use global variables. #define is allowed but not needed
for this program.
? When your program is marked, I will type in a range of characters to test your
program. You should test your program thoroughly before you submit it.
? Helpful tip 1: You need to think about how you are going to convert the numerical
characters into numbers in order to be able to find the sum. Use the ASCI table (see
www.ascii-code.com) and refer to details given verbally in the lecture. You are not
allowed to use the function int atoi() because this is in the stdlib.h library.
Figure 1: Flowchart for the code.
Marking Scheme for Software
Marking Criterion Mark
Does the code use:
? any other library other than stdio.h or
? arrays/strings/pointers/dynamic memory allocation
? global variables
? continue/break/goto/jump
50% penalty
Looking at the code
Program layout and readability including: is the code indented, does it have
inline comments and a detailed header comment?
/1
Running the code, using a test input
Does the code do what is asked in this assignment briefing when tested? Read
line, print to file, read from file and print numbers to screen, calculate and print
sum, calculate and print number of occurrences of number characters and prints
mean. Are the calculations correct? (This step assumes numbers have been
entered at the start)
Does the code check for file and abort the program (with a suitable message) if
the file is not found?
Does the code use the function float mean(int sum, int N) to find the
mean, which gets printed from main()?
Does the code cater for no numbers entered at the start?
Does the code keep looping until the user requests to stop?

/2


/2
/2
/1
/1
Output to screen
Is the output on the screen in a clear layout? /1
Total marks possible /10
Penalties for late submission: A late submission will be any assignment not submitted to Blackboard
by the deadline. Late submissions will incur the usual penalties of a 5% reduction in the mark for every
day (or part thereof) that the assignment is late and a mark of zero for submission more than five days
late.
Unfair means: You are permitted to view the resources on ACS130 Blackboard, C textbooks and C
programs published on the internet, for insight into C programming, but you are not permitted to copy
any code that you have not written to submit as your own work. Do not seek or accept help on this
assignment from any internet site or forum, including GenAI such as ChatGPT. Do not to work with any
other person on this assignment, and do not submit any other person’s algorithm or code as your own
work. Any suspicion of the use of unfair means will be investigated and may lead to penalties.
Provide references for any work that is used to inform the ideas for this assignment. See
https://www.sheffield.ac.uk/new-students/unfair-means for more information.
Extenuating Circumstances: If you have medical or serious personal circumstance which affects you
to submit this assignment on time or which may have affected your performance, please inform me,
and complete and submit an extenuating circumstances form along with documentary evidence of the
circumstances. See https://students.sheffield.ac.uk/extenuating-circumstances
Help: This assignment briefing and the lectures and resources on the ACS130 Blackboard course and
the training in C practice sessions provide most of the information that is required to complete this
assignment. Some additional and independent reading is needed for some parts of the assignment. If
you need clarifications on the assignment, then please post a question on the ACS130
Blackboard discussion board. The discussion board allows everyone the chance to view an answer
to a question, as well as the opportunity to contribute to the discussion. I will not reply to assignment
related questions via email.

相关文章

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