From dda2a97a227d4b6d3d6362f374b61b6991157832 Mon Sep 17 00:00:00 2001 From: pkcs2aq9m Date: Wed, 12 Apr 2023 22:14:42 +0800 Subject: [PATCH] ADD file via upload --- title.cpp | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 title.cpp diff --git a/title.cpp b/title.cpp new file mode 100644 index 0000000..6e04899 --- /dev/null +++ b/title.cpp @@ -0,0 +1,117 @@ +///程序启动 + +///1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加 +///6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出 + +///请选择: 0 +///确定要退出吗?(Y/N): no + + + + + + #include + #include + #include "data.h" + + enum { + CMD_QUIT, // 退出 + CMD_READ, // 读取 + CMD_SAVE, // 保存 + CMD_PRINT, // 打印 + CMD_QUERY, // 查询 + CMD_INSERT, // 添加 + CMD_UPDATE, // 修改 + CMD_DELETE, // 删除 + CMD_SORT, // 排序 + CMD_CHART, // 图表 + }; + + + // 函数声明 + void init(void); // 程序启动 + void quit(void); // 程序退出 + void display_menu(void); // 显示命令菜单 + int make_choice(void); // 选择命令 + int confirm(const char* msg); // 确认 + + + // 主函数 + int main(void) + { + init(); // 程序启动 + for(;;) { + display_menu(); // + int c = make_choice(); + switch(c) { + case CMD_READ: + read_data(); + break; + case CMD_SAVE: + save_data(); + break; + case CMD_PRINT: + print_data(); + break; + case CMD_QUERY: + query_data(); + break; + case CMD_INSERT: + add_data(); + break; + case CMD_UPDATE: + update_data(); + break; + case CMD_DELETE: + delete_data(); + break; + case CMD_SORT: + sort_data(); + break; + case CMD_CHART: + make_chart(); + break; + case CMD_QUIT: + if (confirm("确定要退出吗?")) quit(); // 仅在确认后退出 + break; + default: + puts("命令错误,请重新选择"); + break;} + } + quit(); // 程序退出 + return 0; + } + // 函数定义 + void init(void) + { + puts("程序启动"); + } + void quit(void) + { + puts("程序退出"); + exit(EXIT_SUCCESS); + } + void display_menu(void) + { + printf("\n%d 读取 | %d 保存 | %d 打印 | %d 查询 | %d 添加\n%d 修改 | %d 删除 | %d 排序 | %d 图表 | %d 退出\n\n", + CMD_READ,CMD_SAVE,CMD_PRINT,CMD_QUERY,CMD_INSERT,CMD_UPDATE,CMD_DELETE,CMD_SORT,CMD_CHART,CMD_QUIT); + } + int make_choice(void) + { + int c; // 用户输入 + int n = 0; // 正确读入的数据项个数 + while (n == 0) { + printf("请选择:"); + n = scanf("%d", &c); // 尝试读入整数 c + scanf("%*[^\n]"); // 跳过一行中剩余的字符 + } + return c; + } + int confirm(const char* msg) + { + char c = 'n'; // 默认选择是 no + printf("%s(Y/N): ", msg); // 提示输入 yes/no 进行确认 + scanf(" %c%*[^\n]", &c); // 读取第一个字符,忽略剩余字符 + return c == 'y' || c == 'Y'; // 返回确认结果 + } +