用c语言编写代码 需求如下:题目三、果园作物管理系统:完成以下各方面信息的增加、删除、修改、查询、统计、汇总等操作,所列各项仅供参考,应根据自己的思路,对功能、属性等进行一定的拓展和修改。注意各种数据和操作之间的逻辑关系。 (1)地块:地块编号、土壤种类、形状、面积、位置等。 (2)作物:作物种类编号、作物名称、种植月份、收获月份、作物特性(喜光、避光、喜水、干旱等)等。 (3)种植:种植记录编号、地块编号、作物种类编号、数量、实施时间、实施人、检查人等。 (4)经营:经营记录编号、经营种类(施肥、浇水、除草、...)、实施时间、实施人、检查人等。 (5)采摘:采摘记录编号、采摘地块、采摘作物种类、数量、实施时间、实施人、检查人等。 (6)财务:收入;支出等。 (7)用户:管理员(增删改查用户、分配权限等);操作员(其它信息处理);财务人员(财务信息处理)。
时间: 2023-07-03 16:26:42 浏览: 88
好的,这个需求可以通过结构体和链表来实现。首先,需要定义各种数据类型的结构体,例如:
```
typedef struct {
int plot_id; // 地块编号
char soil_type[20]; // 土壤种类
char shape[20]; // 形状
float area; // 面积
char location[50]; // 位置
} Plot;
typedef struct {
int crop_id; // 作物种类编号
char crop_name[20]; // 作物名称
int plant_month; // 种植月份
int harvest_month; // 收获月份
char characteristics[50]; // 作物特性
} Crop;
typedef struct {
int planting_id; // 种植记录编号
int plot_id; // 地块编号
int crop_id; // 作物种类编号
int quantity; // 数量
char implementation_time[20]; // 实施时间
char implementer[20]; // 实施人
char inspector[20]; // 检查人
} Planting;
typedef struct {
int management_id; // 经营记录编号
char management_type[20]; // 经营种类
char implementation_time[20]; // 实施时间
char implementer[20]; // 实施人
char inspector[20]; // 检查人
} Management;
typedef struct {
int harvest_id; // 采摘记录编号
int plot_id; // 采摘地块
int crop_id; // 采摘作物种类
int quantity; // 数量
char implementation_time[20]; // 实施时间
char implementer[20]; // 实施人
char inspector[20]; // 检查人
} Harvest;
typedef struct {
float income; // 收入
float expenditure; // 支出
} Finance;
typedef struct {
int user_id; // 用户编号
char user_type[20]; // 用户类型(管理员、操作员、财务人员)
char username[20]; // 用户名
char password[20]; // 密码
} User;
```
然后,可以使用链表来存储每个数据类型的记录,例如:
```
typedef struct plot_node {
Plot data;
struct plot_node *next;
} PlotNode;
typedef struct crop_node {
Crop data;
struct crop_node *next;
} CropNode;
typedef struct planting_node {
Planting data;
struct planting_node *next;
} PlantingNode;
typedef struct management_node {
Management data;
struct management_node *next;
} ManagementNode;
typedef struct harvest_node {
Harvest data;
struct harvest_node *next;
} HarvestNode;
typedef struct finance_node {
Finance data;
struct finance_node *next;
} FinanceNode;
typedef struct user_node {
User data;
struct user_node *next;
} UserNode;
```
最后,可以编写各种操作函数来实现增加、删除、修改、查询、统计、汇总等操作,例如:
```
void add_plot(PlotNode **head, Plot data); // 添加地块记录
void delete_plot(PlotNode **head, int plot_id); // 删除地块记录
void update_plot(PlotNode **head, int plot_id, Plot data); // 更新地块记录
void query_plot(PlotNode *head, int plot_id); // 查询地块记录
void summary_plot(PlotNode *head); // 汇总地块记录
// 同样地,可以编写其他的操作函数来实现其它功能
```
阅读全文