联系方式

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

您当前位置:首页 >> C/C++编程C/C++编程

日期:2023-11-03 08:28

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 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp