School of Computer Science and Electronic Engineering (CSEE)
1
CE243 (NWU) Assignment 1
1. Objectives
This assignment aims to demonstrate your master of advanced C programming skills.
2. The Task
You shall write a C program to implement some text handling task. Your C program shall firstly
ask for the name of the text file being inputted from the keyboard manually. Then, it shall open and
read this text file. Finally, your C program shall analyse the text and output a meaningful answer to
the screen and also to a file for submission with your C program.
Appendix 1 shows an example of the text file, which contains the following features:
The provided file contains typed text in the form of English words, punctuation marks and C
keywords, separated by space.
The punctuation marks in the text file include the following four: comma (,), full stop (.),
question mark (?), and exclamation mark (!).
The number of C keywords in the text file is more than 1 and less than 32.
At first, you shall create a header file (***.h) to include C keywords and 4 punctuation marks given
above, which will be then included in your C program. Your C program shall read and analyse the
text file, and then produce a correct output with the following format:
A line shall be output when your program reads either one of punctuation marks listed above or
one of C keywords from the text file. Note that the punctuation marks shall go with the text
being read already, e.g.
Do these capabilities exist in most other languages?
A keyword shall occupy one line itself, e.g.
goto
when a keyword is followed by a punctuation mark, they shall stay in one line, e.g.
char,
The total number of lines shall be counted and outputted as the last line with the prefix sentence
“Total number of lines is: **”.
3. Deadline and submission requirement
The deadline for the electric submission of your Assignment 1 report and associated C program is
as given on the submission system (i.e., FASER, also note that it is GMT time). Please email your
assignment as ONE attachment to ce243assignment@163.com prior to the above submission
deadline. Please merge everything listed below into one .doc or .pdf file and submit. The filename
shall take the following format: Surname_Firstname_RegistrationNumber_A1, all in English. Your
email subject shall use exactly the same format. No email content is necessary. In the meanwhile
please ALSO upload the same file to FASER.
Your assignment report shall be written clearly, concise and easy to read.
Write your name (both English and Chinese), registration number and the module code (CE243-
NWU) clearly on the cover page, including a ToC (Table of Contents) (1 page).
You shall use a flow chart to describe your software design and explain how it works using text
(1 or 2 pages).
School of Computer Science and Electronic Engineering (CSEE)
2
You shall test and run your code, collect the result and present the results in your written report
(1 or 2 pages).
Print your C program at the end of the report (3 pages).
No extensions of the deadlines will be given. If, for any reason, you do not submit your code, there
will be no record of the submission time and you will automatically get a zero mark. You shall
submit your work through the proper channel (electronic submission) and on time, even if it is
incomplete - something is better than nothing.
This assignment is to be completed individually, i.e. whatever you hand in must be your own
individual work. Any software or any other materials that you use in this assignment, whether
previously published or not, must be referred and properly acknowledged.
4. Assessment
You will be assessed on the source code you submit. You are also expected to demonstrate its
performance on another text file in Lab 5, to explain your code and answer questions about your
code. Marks will be awarded for programming style, the number of features implemented (e.g., the
punctuation marks that can be detected by your program) as well as for your explanation of your
code. Programs will be assessed as follows:
Excellent (70 - 100%)
All features are implemented. The program is well-structured, commented and concise. It
works correctly with all test data. Its output is correct, with meaningful statistics. All
questions are answered correctly during your demonstration.
Good (55 - 69%)
The program implements all of the required features, but has poor structure and comments. Its
output is partially correct. Not all questions are answered correctly during your demonstration.
Poor (40 - 54%)
The program implements at least 50% of the required features. It has poor structure and
comments. The code executes but doesn’t work with all test data. Its output is partially correct.
At least half of the questions are answered correctly during your demonstration.
Awful (10 – 39%)
The program can open and read a file, but has poor structure and comments. It doesn’t work
with all test data. Its output is incorrect. It does not produce any meaningful statistics. Most of
the questions are not answered correctly during your demonstration.
Appendix 1
The following text is for you to type into a text file, namely “assignment1.txt”.
C allows the programmer to write directly to memory unlike most of other programming languages.
Key constructs in C such as pointers and arrays are designed to structure and manipulate memory in
a machine-independent fashion. Thirty two Keywords in C are also called as reserved words such as
char, int, float, goto and void. C gives control over the memory layout of data structures! Dynamic
memory allocation in C is under the control of the programmer unlike languages like Java and Perl
that shield the programmer from memory allocation and pointers. This can be useful since dealing
with memory allocation when building a high-level program is a highly error-prone process. C
School of Computer Science and Electronic Engineering (CSEE)
3
provides a uniform interface when dealing with low-level code such as the part of the OS that
controls a device. Do these capabilities exist in most other languages? Answer is no.