当前位置: 首页 > news >正文

实验4 guochenghua

T1增加数据

#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct{ int id; char name[50]; int yield; }OrangeFarm; int main(){ OrangeFarm farms[100]; int count = 0; int deleteld; char confirm; FILE *fp; fp = fopen("farms.txt","r"); if (fp == NULL){ printf("错误:无法打开farm.txt,请确保文件已存在。\n"); return 1; } while (fscanf(fp,"%d %s %d",&farms[count].id,farms[count].name,&farms[count].yield) == 3){ count++; } fclose(fp); if (count = 0){ printf("数据库为空,无数据可删除。\n"); return 0; } printf("\n---当前廉江红橙产地列表---\n"); for (int i = 0;i < count;i++){ printf("[%d] %-12s",farms[i].id,farms[i].name); if ((i + 1) % 3 ==0){ printf("\n"); } } printf("\n--------------\n"); printf("请输入要删除的产地ID:"); scanf("%d",&deleteld); int targetlndex = -1; for (int i = 0;i < count;i++){ if (farms[i].id == deleteld){ targetlndex = i; break; } } if (targetlndex == -1){ printf("错误:未找到ID为%d的记录。\n",deleteld); return 0; } printf("\n拟删除记录详情:\n"); printf("ID:%d|名称:%s|产量:%d吨\n", farms[targetlndex].id,farms[targetlndex].name, farms[targetlndex].yield); printf("警告:此操作不可撤回!确定删除吗?(y/n):"); getchar(); scanf("%c",&confirm); if (confirm != 'y' && confirm != 'Y'){ printf("操作已安全取消。\n"); return 0; } for (int i = targetlndex;i < count - 1;i++){ farms[i] = farms[i + 1]; } count--; fp = fopen("farms.txt","w"); if (fp == NULL){ printf("系统错误:无法更新文件数据。\n"); return 1; } for (int i = 0;i < count;i++){ fprintf(fp,"%d %s %d",farms[i].id,farms[i].name,farms[i].yield); } fclose(fp); printf("成功:ID为%d的记录已从系统中彻底移除。\n",deleteld); return 0; }

T2删除信息

#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct{ int id; char name[50]; int yield; }OrangeFarm; int main(){ OrangeFarm farms[100]; int count = 0; int deleteld; char confirm; FILE *fp; fp = fopen("farms.txt","r"); if (fp == NULL){ printf("错误:无法打开farm.txt,请确保文件已存在。\n"); return 1; } while (fscanf(fp,"%d %s %d",&farms[count].id,farms[count].name,&farms[count].yield) == 3){ count++; } fclose(fp); if (count = 0){ printf("数据库为空,无数据可删除。\n"); return 0; } printf("\n---当前廉江红橙产地列表---\n"); for (int i = 0;i < count;i++){ printf("[%d] %-12s",farms[i].id,farms[i].name); if ((i + 1) % 3 ==0){ printf("\n"); } } printf("\n--------------\n"); printf("请输入要删除的产地ID:"); scanf("%d",&deleteld); int targetlndex = -1; for (int i = 0;i < count;i++){ if (farms[i].id == deleteld){ targetlndex = i; break; } } if (targetlndex == -1){ printf("错误:未找到ID为%d的记录。\n",deleteld); return 0; } printf("\n拟删除记录详情:\n"); printf("ID:%d|名称:%s|产量:%d吨\n", farms[targetlndex].id,farms[targetlndex].name, farms[targetlndex].yield); printf("警告:此操作不可撤回!确定删除吗?(y/n):"); getchar(); scanf("%c",&confirm); if (confirm != 'y' && confirm != 'Y'){ printf("操作已安全取消。\n"); return 0; } for (int i = targetlndex;i < count - 1;i++){ farms[i] = farms[i + 1]; } count--; fp = fopen("farms.txt","w"); if (fp == NULL){ printf("系统错误:无法更新文件数据。\n"); return 1; } for (int i = 0;i < count;i++){ fprintf(fp,"%d %s %d",farms[i].id,farms[i].name,farms[i].yield); } fclose(fp); printf("成功:ID为%d的记录已从系统中彻底移除。\n",deleteld); return 0; }

T3修改信息

#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct{ int id; char name[50]; int yield; }OrangeFarm; int main(){ OrangeFarm farms[100]; int count = 0; int targetld,choice; FILE *fp; fp = fopen("farms.txt","r"); if (fp == NULL){ printf("错误:无法打开farms.txt,请确保文件已存在。\n"); return 1; } while (fscanf(fp,"%d %s %d",&farms[count].id,farms[count].name,&farms[count].yield) == 3){ count++; } fclose(fp); if (count == 0){ printf("数据库为空,请先添加数据。\n"); return 0; } printf("---当前系统内的产地ID列表---\n"); for (int i = 0;i < count;i++){ printf("[%d] %-12s",farms[i].id,farms[i].name); if ((i + 1) % 3 == 0){ printf("\n"); } } printf("\n-------------------------------\n"); printf("请输入您想要修改的产地ID:"); scanf("%d",&targetld); int index = -1; for (int i = 0;i < count;i++){ if (farms[i].id == targetld){ index = i; break; } } if (index == -1){ printf("未找到ID为%d的记录。\n",targetld); return 0; } printf("\n已锁定产地:%s(产量:%d吨)\n",farms[index].name,farms[index].yield); printf("1.修改产地名称\n"); printf("2.修改预计产量\n"); printf("3.取消修改\n"); printf("请选择操作(1-3)\n"); scanf("%d",&choice); switch (choice){ case 1: printf("请输入新的名称:"); scanf("%s",farms[index].name); break; case 2: printf("请输入新的产量(吨):"); scanf("%d",farms[index].yield); break; case 3: printf("操作已取消。\n"); return 0; default: printf("非法输入,操作中止。\n"); return 0; } fp = fopen("farms.txt","w"); if (fp == NULL){ printf("回写文件失败!\n"); return 1; } for (int i = 0;i <count;i++){ fprintf(fp,"%d %s %d\n",farms[i].id,farms[i].name,farms[i].yield); } fclose(fp); printf("ID为%d的记录已成功更新。\n",targetld); return 0; }

T4查询信息

#include <stdio.h> #include <stdlib.h> typedef struct{ int id; char name[50]; int yield; }OrangeFarm; int main(){ FILE *fp; OrangeFarm temp; int threshold; int foundCount = 0; fp = fopen("farms.txt","r"); if (fp == NULL){ printf("错误:无法打开farms.txt,请确保文件已存在。\n"); return 1; } printf("-----------廉江红橙产量筛选系统-----------\n"); printf("请输入产量阈值(吨):"); if (scanf("%d",&threshold) != 1){ printf("输入无效。\n"); fclose(fp); return 1; } printf("\n正在查询产量大于%d 吨的产地...\n",threshold); printf("-------------------------------------------\n"); printf("%-10s %-20s %-10s\n","ID","产地名称","预计产量(吨)"); printf("-------------------------------------------\n"); while (fscanf(fp,"%d %s %d",&temp.id,temp.name,&temp.yield) == 3){ if (temp.yield > threshold){ printf("%-10d %-20s %-10d\n",temp.id,temp.name,temp.yield); foundCount++; } } if (foundCount == 0){ printf("未找到产量超过%d的记录。\n",threshold); }else { printf("-------------------------------------------\n"); printf("查询完毕,共找到%d条记录。\n",foundCount); } fclose(fp); return 0; }

http://www.jsqmd.com/news/172002/

相关文章:

  • Java毕设项目推荐-基于SpringBoot的云南旅游攻略信息系统的设计与实现基于springboot云南省旅游信息平台设计与实现【附源码+文档,调试定制服务】
  • C#自定义集合性能翻倍秘籍(仅限高级开发者掌握的优化策略)
  • 梯度下降:机器学习世界里,最朴素也最残酷的算法
  • 【.NET性能革命】:为什么顶尖工程师都在用Span进行数据处理?
  • 为什么你的C#项目还没用上运行时拦截?跨平台适配的关键一步
  • YOLOv8与DeepSORT结合实现多目标跟踪系统
  • C#跨平台性能监控工具开发全解析(从零构建高精度监控系统)
  • Java毕设项目推荐-基于SpringBoot智慧自习室管理系统的设计与实现基于SpringBoot的自习室预约管理系统的设计与实现【附源码+文档,调试定制服务】
  • Java毕设选题推荐:基于SpringBoot+Vue的农夫码头蔬菜销售网站管理系统设基于SpringBoot的农夫码头蔬菜销售网站的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Java毕设项目推荐-基于SpringBoot的农夫码头蔬菜销售网站的设计与实现基于Springboot的在线农产品蔬菜销售购物网站【附源码+文档,调试定制服务】
  • 【GitHub项目推荐--AI-Codereview-Gitlab:智能代码审查工具】⭐⭐⭐⭐⭐
  • 揭秘PHP物联网接口设计:如何用5个核心步骤实现智能家居无缝控制
  • YOLOv8与OpenTelemetry集成统一观测性平台
  • YOLOv8在港口集装箱编号识别中的高效应用
  • 为什么顶尖团队都在用C# 12顶级语句做跨平台开发?真相曝光
  • 不安全代码性能提升真相,C#开发者必须掌握的type定义秘技
  • 【GitHub项目推荐--AIMedia:全自动AI媒体内容创作与发布平台】
  • 梯度下降如何把学习变成一件可执行的事
  • YOLOv8在自动驾驶感知模块中的潜在应用价值
  • 如何在GPU服务器上高效运行YOLOv8?完整环境配置教程
  • YOLOv8与Elastic APM集成实现性能追踪
  • YOLOv8与Consul服务发现机制集成动态扩缩容
  • YOLOv8与Vault结合实现敏感配置安全管理
  • 【GitHub项目推荐--Generative AI Use Cases (GenU):企业级生成式AI应用框架】
  • YOLOv8实时视频流检测:读取RTSP摄像头流数据
  • 跨平台调试总失败?教你3步精准定位C#应用崩溃根源
  • YOLOv8训练超参数调优指南:lr0、lrf、momentum设置
  • YOLOv8在轨道交通接触网异物检测中的创新应用
  • Java毕设选题推荐:基于springboot云南省旅游信息平台设计与实现基于springboot+vue的七彩云南文化旅游网站【附源码、mysql、文档、调试+代码讲解+全bao等】
  • YOLOv8与YOLO-NAS对比:谁是当前最强目标检测器?