School of Computer Science and Electronic Engineering (CSEE)
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 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).
-
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
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.