#include”stdio.h”#include”stdlib.h”#define MAX_NAME 11#define MAX_DETAIL 21#define MENU_COUNT 9#define DATA_FILE ”fa.dat"typedef wnum_fi_type{income=1,payout=-1}fi_type;typedef struct_fi_info{int year;int month;fi_type type;char name[MAX_NAME];float money;char detail[MAX_DETAIL];}fi_info;typedef struct_fi_data{fi_info info;struct_fi_data *next;}fi_data;void add_income();void search_income();void delete_income();void update_income();void add_payout();void search_payout();void delete_payout();void update_payout();void count_total();void quit();void search_data(fi_type type);void delete_data(fi_type type);void update_data(fi_type type);void initialize();void save_to_file();void clear_data();fi_data *get_last();fi_data *get_previous(fi_data *p);void input_info(fi_info *info);void show_info(fi_data *p[],int count);fi_data *head;char menu[]=”===============================================\n”"| 家庭财务管理系统 |\n””+—----——-———--—----——---—-—-------————--—-—-—-+\n"”| 收入管理 |\n”"| 1 添加收入 |\n"”| 2 查询收入明细 |\n""| 3 删除收入 |\n”"| 4 修改收入 |\n""| 支出管理 |\n””| 5 添加支出 |\n""| 6 查询支出明细 |\n””| 7 删除支出 |\n""| 8 修改支出 |\n”"| 统计 |\n""| 9 统计总收入总支出 |\n""——----——---——-——-——-——--——--—-———----------—--+\n""| 0 退出系统 |\n""==============================================+\n”;void(*menu_fun[])()={quit,add_income,search_income,delete_income,update_income,add_payout,search_payout,delete_payout,update_payout,count_total};int main(){int selected=0;initialize();while(selected>=0 && selected<=MENU_COUNT){system("cls”);printf(menu);printf("〉请选择要进行的操作(%d - %d):",0,MENU_COUNT);if(scanf("%d",&selected)!=1||selected<0||selected〉MENU_COUNT){printf ( "> 输 入 错 误 ! 请 选 择 [ %d — %...