联系方式

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

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

日期:2020-12-30 08:47

CS139 C Programming Project
November 24, 2020
The objective of this project is to practice the implementation of structures and functions in C.
The submission of the project requires the source code and a readme.pdf describing it.
Pokémon Database
Part 1 - Structure (4 points)
Implement a structure named pokemon, which contains the following elements
1. id (int)
2. name (char*)
3. height (float)
4. type (char*)
It is suggested to use an array of the designed structure as the database, for example:
struct pokemon pkdb[100]; or
struct pokemon *pkdb[100];
However, other forms such as linked list are also acceptable.
Part 2 - Basic Functions (4 points)
The following functions should be realized.
1. int insert(int id, char *name, float height, char *type);
Add a new pokemon into the database. Return 0 if successful. Return 1 if the max size of the
database is exceeded.
2. int delete_id(int id);
Delete the pokemon of given id from the database. Return 0 if successful. Return 1 if the
pokemon of given id doesn’t exist in the database.
Then print a sentence to describe the situation according to the return value.
Part 3 - Extended Functions (8 points)
The following functions should be realized.
3. void find_height(int param);
param ∈ {1, 2}. Find the pokemons with maximum height (param=1) or minimum height
1
(param=2). Print the name of the found pokemons.
Make sure to print all the pokemons if they have the same maximum or minimum height.
4. void sort_id(); Sort the database with id-ascending order. Print all pokemon names in order.
5. void sort_id_plus(int param);
param ∈ {1, 2}. Sort the database with id-ascending order (param=1) or id-descending order
(param=2). Print all pokemon names in order.
Use pointer to function (such as the functions below) instead of duplicating the sort process.
int ascending (int a, int b) { return bint descending (int a, int b) { return b>a; }
6. void group(char* type);
Print the name of all the pokemons belonging to the given type.
Part 4 - Free Design (4 points)
Design and implement a feature for the database. Feel free to add any element in the structure and
add any function. Explain this feature in detail in readme file.
For example, it could be a great idea to implement the evolutionary chains of pokemons. For pokemon
Eevee, the function could find its evolution Vaporeon, etc.
Input and Output
The main function firstly reads the information of several pokemons, then reads a set of instructions
and prints corresponding output.
The first line of input is an integer n ≤ 50, indicating the number of pokemons in the following lines.
For each pokemon, there are 4 lines containing its id, name, height and type respectively. Remark
that each pokemon may have at least 1 type and at most 2 types. Types are separated with a single
comma.
Then there’s an integer m ≤ 20, indicating the number of instructions. Each line contains 1 instruction,
which is consisted of a number and a parameter, separated by a blank. The number is the
enumeration of corresponding function: 2 delete_id, 3 find_height, 4 sort_id, 5 sort_id_plus, 6 group.
The parameter is passed into the function as argument.
There’s a sample of input and output in the appendix. Each instruction and its output is aligned. It
could be used to validate the functions.
Remark that the format of the output is not important. Do not bother with order of print (except
for sort_id or sort_id_plus), or number of blanks.
Charmander Charizard Pikachu Nidoran Lapras
Lapras
Pikachu Nidoran
Deleted successfully !
Pokemon of id 29 doesn’t exist in the database.
Charmander Charizard Pikachu Lapras
Lapras Pikachu Charizard Charmander
Charizard Charmander
Lapras
3

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