C programmer working
report作业 | project代写 | assignment | lab | c代写 | c语言代写 | c++代写 – 该题目是一个常规的C代写的练习题目代写, 是比较有代表性的group等代写方向, 该题目是值得借鉴的group代写的题目
In this research-inspired project, students will work together in teams to develop a professional grade program that manipulates real-world data. You will develop team working skills, project management skills and communication skills.
Put yourself in the position of a C programmer working in a company as a team. Your task is to find a customer with a real-world data manipulation need that involves data compression and/or encryption. Your customer could be someone from industry, your parents/siblings, a friend, or even yourself. The customer requirement you find MUST have at least a component of compression or encryption. If you are trying to pass pick either a compression or encryption problem, but if you are trying to get a high mark try to do both. If you are trying to get even higher marks, implement additional algorithms such as sorting and searching as specified in the "Marking Criteria" section.
Once you find a customer and an appropriate problem you will work together as a team to develop a C program that solves the problem you found. The best way to develop as a group is to breakdown the task into small functions and assign functions to each team member. So that all team members can develop at home, and use the laboratory time to integrate the code.
If you are only trying to pass, it is sufficient to integrate the code from all team members into one program that can be compiled the way that we have been doing whole semester. But if you are aiming to achieve high marks, you will need to develop your own library (as a header file), have different runtime modes of the program (using command line parsing), and develop makefiles. You may also provide a debugging mode in your code using preprocessor directives for high marks.
Only if you are trying to get high marks you also have to demonstrate that you can use advanced data structures such as linked lists, queues, etc, as specified in the Marking Criteria section – students only trying to pass can stick to simple data structures such as struct and arrays. Read the Marking Criteria section to fully understand the expectations depending on the levels that you want to achieve.
One important requirement is that you are free to use any of the following standard C libraries ONLY – stdio, stdlib, string and math. This will help you pick a reasonable scope for the project. If you develop your own libraries of course you can use them. However, you must NOT use any other libraries that come with GCC or developed by other programmers. You may get 0 marks for your source code if you fail to follow this requirement.
You will go through the software development cycle as follows:
Students must meet potential clients and find out a real-world data manipulation need that involves data compression and/or encryption.
Identify the inputs, outputs and required resources. Break down the data manipulation task to small functions. Think about features you want to add to the program. Start writing parts of the project report - read the submission requirements to understand what should be included in the report.
Develop simple algorithms to achieve the objectives of each function. Develop the program design - single file, or custom C library? Consider a (fairly) user friendly interface.
Implement and test
Do research and learn a simple encryption and/or compression algorithms. Implement one function at a time, and test every single function as you develop. Complete writing the project report.
NOTE : This assessment task is OPEN ENDED. What that means is you will need to find an appropriate problem yourself (I will not tell you what to do I can only specify the rules that you will need to follow). How far you want to push the project and how good you want the end program to be, are completely up to you. Do the best you can, within the allocated time. This style is fundamentally different from the Assessment Task 2: assignment where I specified every single bit of detail on what you have to do, even gave an executable that you can follow. You will need to adjust to the OPEN ENDED assessment style in this project this is mostly how how the real-world works.
NOTE : Being able to develop is not good enough. You need to be able to communicate what you did and how you did it this is where the lab report come in. This is typically what you would be doing when you go to industry.
NOTE : The focus of the assignment is to allow you showcase the knowledge gathered through this subject by applying the knowledge to a real-world data encryption and/or compression problem. Depending on the mark that you are aiming, you will need to research and learn simple encryption/compression algorithms, data structures (except linked lists – which was covered in Forums), etc, to meet the criteria outlined in the "Marking Criteria" section.
Example project – compact secure disk
Develop a C program that works as a compact secure disk allowing users to store compressed and password protected files in one specific directory. The user may pass a document to the program, which encrypts the documents using a master password. The encrypted document is then compressed and stored in a directory. When required the user can decompress and decrypt the files through the program. The program may be able to batch process the tasks using command line arguments and/or work interactively. It may also come with an advanced search feature that looks for a specific keyword within an encrypted and compressed file.
This is only one example, and students are encouraged to find their own data compression and/or encryption problems for this project.
- Compression techniques to consider – Run Length Encoding (Links to an external site.) (relatively easy, but sufficient to meet the compression requirement of the assignment), Huffman coding (Links to an external site.) (not easy to implement – only suitable for experienced programmers) and etc.
- Encryption techniques to consider – Substitution ciper (Links to an external site.), XOR ciper (Links to an external site.) and etc.
You could even create your own compression and/or encryption algorithm. Or you could implement multiple algorithms and allow user to pick one.
NOTE : Unlike the assignment, the group project is open ended. You are free to add your own features to the program as you see fit. You will not get a template source file.
Example project – image encryption program
Develop a C program that maintains a repository of images encrypted using a password. The program is capable of decrypting the images correctly if the user enters the correct password. The program takes any BMP image and produce an encrypted version of the image as follows:
The program has a list of recently encrypted image file names for user convenience, implemented using Queue data structure. Also the program is capable of searching through all files in the image repository. The user may enter a part of the file name and request the program to search for
any files matching the search. The program also has the feature to run in a quiet mode. In the quiet mode, the user can encrypt several images by typing the file names directly into the command line separated by spaces. In this quiet (batch) mode the program does not prompt the user to enter any inputs while the program is running, however displays messages indicating the progress.
This is only another example. You are encouraged to find their own customer requirements, but you are free to be inspired by the given examples. The encryption in this example could use the same techniques discussed in the previous example.