拥有所有功能自动售货机C语言

主要功能:欢迎页面、通过文本文件读入货物信息、上货、卖货(包含找零,付款不足等多种情况)、增加新品种、按单价从高到低排序、按序号排序、退出前将所有货物信息回写进文本文档 实际代码非常简单

使用环境

VS2017编译运行正常;
DEV C++删除第一行(#define _CRT_SECURE_NO_WARNINGS)

注意事项

1.第一次使用需要进入系统维护录入所有信息.
2.在使用时会在桌面创建一个文本文件记录数据,下次运行也会有数据.
3.录入数据时一定注意按照系统提示,一定要先输入编号再进行创建新的品种,可以输入中文名称,如农夫山泉.


//初次使用请进行系统维护并录入商品信息
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define SIZE 100000
#include<string.h>
#include<stdlib.h>
#include<conio.h>//货物数据结构
struct huowu
{int n;             //编号 char name[10];     //名称 int Price;         //价格 int Maths;         //剩余数量
}s[SIZE];/*录入数据*/
void finput()
{FILE *fp;int i, t, x = 1;fp = fopen("fs+", "w");    // printf("已进入重新录入数据界面,之前数据将被清除!\n\n请按提示输入编号\n");for (i = 0; i < SIZE; i++){printf(" 第%d个  请输入编号(请与左方编号一致,按回车键进入下一步,当输入i=-1时,完成录入商品信息)\n", x++);//需要逐一手动先输入编号 scanf("%d", &t);i = t;if (i == -1){fclose(fp);return;}else{i = t - 1;printf("请输入 名称 价格 及添加的 库存 ,用空格间隔开,按回车键继续\n");scanf("%s %d %d", &s[i].name, &s[i].Price, &s[i].Maths);s[i].n = i + 1;fwrite(&s[i], sizeof(struct huowu), 1, fp);}}fclose(fp);
}
/*输出数据*/
void flist()
{FILE *fp;int i;fp = fopen("fs+", "r");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                         列表\n");printf("-----------------------------------------------------------\n");printf("序号          名称             价格        库存 \n");printf("-----------------------------------------------------------\n");for (i = 0; fread(&s[i], sizeof(struct huowu), 1, fp) == 1; i++){printf("%d%18s%16d%16d\n", s[i].n, s[i].name, s[i].Price, s[i].Maths);}printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");fclose(fp);}/*修改数据*/
void fchange()
{FILE *fp;int k;fp = fopen("fs+", "r");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                         列表\n");printf("-----------------------------------------------------------\n");printf("序号          名称             价格        库存 \n");printf("-----------------------------------------------------------\n");for (k = 0; fread(&s[k], sizeof(struct huowu), 1, fp) == 1; k++){printf("%d%18s%16d%16d\n", s[k].n, s[k].name, s[k].Price, s[k].Maths);}printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");int i, n;int flag = 0;printf("请输入要修改商品的序号:");scanf("%d", &n);for (i = 0; i <= SIZE; i++)if (s[i].n == n){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                         列表\n");printf("-----------------------------------------------------------\n");printf("序号                        名称                          价格\n");printf("-----------------------------------------------------------\n");printf("%d%32s%25d\n", s[i].n, s[i].name, s[i].Price);printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");n = i;flag = 1;break;}if (flag == 0){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                        输入错误!\n");printf("                        请重新选择!\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");return;}printf("\n\n\n");fp = fopen("fs+", "r+");fseek(fp, n * sizeof(struct huowu), 0);printf("请输入新的 名称  价格:");scanf("%s%d", s[i].name, &s[i].Price);fwrite(&s[i], sizeof(struct huowu), 1, fp);fclose(fp);fp = fopen("fs+", "r");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                      列表\n");printf("-----------------------------------------------------------\n");printf("序号                      名称                          价格\n");printf("-----------------------------------------------------------\n");for (i = 0; fread(&s[i], sizeof(struct huowu), 1, fp) == 1; i++){printf("%d%28s%28d\n", s[i].n, s[i].name, s[i].Price);}printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");fclose(fp);}
/*  排序*/
void ftaxis()
{int i, j, n;FILE *fp;struct huowu t;fp = fopen("f.s+", "r");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                         列表\n");printf("-----------------------------------------------------------\n");printf("序号                       名称                          价格\n");printf("-----------------------------------------------------------\n");for (i = 0; fread(&s[i], sizeof(struct huowu), 1, fp) == 1; i++){printf("%d%28s%28d\n", s[i].n, s[i].name, s[i].Price);}printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");fclose(fp);n = i;for (i = 0; i < n; i++)for (j = i + 1; j < n; j++)if (s[i].Price < s[j].Price){t = s[i];s[i] = s[j];s[j] = t;}fp = fopen("fss+", "w");printf("\n\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                         列表 \n");printf("-----------------------------------------------------------\n");printf("序号                         名称                          价格\n");printf("-----------------------------------------------------------\n");for (i = 0; i < n; i++){fwrite(&s[i], sizeof(struct huowu), 1, fp);printf("%d%28s%28d\n", s[i].n, s[i].name, s[i].Price);}printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");fclose(fp);}//添加库存
int fadd()
{FILE *fp;int i, num, n;int flag = 0;printf("请输入要补货 商品 的序号:");scanf("%d", &n);for (i = 0; i <= SIZE; i++)if (s[i].n == n){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                         列表\n");printf("-----------------------------------------------------------\n");printf("序号                      名称                        库存\n");printf("-----------------------------------------------------------\n");printf("%d%8s%8d\n", s[i].n, s[i].name, s[i].Maths);printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");n = i;flag = 1;break;}if (flag == 0){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                        输入错误!\n");printf("                         请返回!\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");return 0;}printf("\n\n\n");fp = fopen("fs+", "r+");fseek(fp, n * sizeof(struct huowu), 0);printf("请输入添加后此商品总个数");scanf("%d", &s[i].Maths);fwrite(&s[i], sizeof(struct huowu), 1, fp);fclose(fp);fp = fopen("fs+", "r");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                       列表\n");printf("-----------------------------------------------------------\n");printf("序号                      名称                          库存\n");printf("-----------------------------------------------------------\n");for (i = 0; fread(&s[i], sizeof(struct huowu), 1, fp) == 1; i++){printf("%d%8s%8d\n", s[i].n, s[i].name, s[i].Maths);}printf("------------------------补货完成-------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");fclose(fp);}/*内部操作systeam*/
int neibu()
{system("cls");int n;for (;;){printf("\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※                                                          ※\n");printf("※                 欢迎进入自动售货机(内部)                 ※\n");printf("※                                                          ※\n");printf("※                                                          ※\n");printf("※                          主菜单                          ※\n");printf("※                                                          ※\n");printf("※                      ▲1.重新所有录入数据▲              ※\n");printf("※                      ▲2.展示商品信息▲                  ※\n");printf("※                      ▲3.补充库存▲                      ※\n");printf("※                      ▲4.修改数据▲                      ※\n");printf("※                      ▲5.按照价格排序并生成另一个文件▲  ※\n");printf("※                      ▲6.退出系统▲                      ※\n");printf("※                                                          ※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");printf("请输入选择项(1-6):");scanf("%d", &n);printf("\n\n\n\n");if (n > 0 && n < 8){switch (n){case 1:finput(); break;case 2:flist(); break;case 3:fadd(); break;case 4:fchange(); break;case 5:ftaxis(); break;case 6:printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※                                            ※\n");printf("※                  谢谢使用!                 ※\n");printf("※                    再见!                   ※\n");printf("※                                            ※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");system("pause");system("cls"); //清空屏幕  return 0;//           exit(0);}}else{printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※                                            ※\n");printf("※                  输入错误!                 ※\n");printf("※                   请退出!                  ※\n");printf("※                                            ※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");break;}}system("cls"); //清空屏幕
}/*购买*/
void buy()
{FILE *fp;int i;system("cls");fp = fopen("fs+", "r");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                       列表\n");printf("-----------------------------------------------------------\n");printf("序号          名称             价格      库存 \n");printf("-----------------------------------------------------------\n");for (i = 0; fread(&s[i], sizeof(struct huowu), 1, fp) == 1; i++){printf("%d%18s%16d%18d\n", s[i].n, s[i].name, s[i].Price, s[i].Maths);}printf("----------------请输入需要的商品按回车继续-----------------\n");printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");int num, n, B = 1;float money = 0.0, m = 0;int flag = 0;
restar:printf("请输入要购买商品的序号:");scanf("%d", &n);for (i = 0; i <= SIZE; i++)if (s[i].n == n){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("-----------------------------------------------------------\n");printf("序号                         名称                          价格\n");printf("-----------------------------------------------------------\n");printf("%d%30s%26d元\n", s[i].n, s[i].name, s[i].Price);printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");n = i;flag = 1;break;}if (flag == 0){printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                        输入错误!\n");printf("                         请返回!\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");return;}printf("\n\n\n");fp = fopen("fs+", "r+");fseek(fp, n * sizeof(struct huowu), 0);s[i].Maths = s[i].Maths - 1;fwrite(&s[i], sizeof(struct huowu), 1, fp);fclose(fp);fp = fopen("fs+", "r");if (s[i].Maths <= 0){printf("存货不足,请购买其他商品!\n");s[i].Maths = 0;goto restar;}elseprintf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("-----------------------------------------------------------\n");printf("          请   支   付   %d  元(仅限一元以上面额)\n", s[i].Price);printf("-----------------------------------------------------------\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");while (B){scanf("%f", &money);m += money;if (m < s[i].Price){printf("金额不足,请继续支付\n\n");}if (m == s[i].Price){printf("付款成功\n\n");B = 0;break;s[i].Maths = s[i].Maths - 1;}if (m > s[i].Price){money = m - s[i].Price;printf("      付款成功,找零%f请您收好\n\n\n\n                   欢迎下次使用\n\n\n", money);B = 0;break;s[i].Maths = s[i].Maths - 1;}}fclose(fp);system("pause");
}
//主函数
int main()
{char sr;//定义电脑接受的字符  system("color F0");start://起始位置  system("cls");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※         欢迎使用自动售货机(初始试用版)   ※\n");printf("※                                            ※\n");printf("※               请输入选项                   ※\n");printf("※               a.用户购买                   ※\n");printf("※               b.系统维护                   ※\n");printf("※                                            ※\n");printf("※               按回车继续 。。。            ※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");scanf("\n%c", &sr);switch (sr){case 'a': buy(); break;case 'b': neibu(); break;}goto start;//回到起始位置
}

程序截图




最全自动售货机大作业C语言相关推荐

  1. 编译原理大作业-PL0语言编译器

    编译原理大作业-PL0语言编译器 一.实验目的 二.源码说明 1.头文件pl0.h (1 词法分析主要数据结构(通过enum symbol类实现) 1.保留字(13+4个): 2.运算符及界符(16+ ...

  2. 中国全自动售货机用电动机行业市场供需与战略研究报告

    全自动售货机用电动机市场的企业竞争态势 该报告涉及的主要国际市场参与者有CRL.Power Electric.GCM America.Hsiang Heng.Generac Holdings.Hita ...

  3. bupt 大作业C语言 ——冯诺依曼式CPU模拟器

    bupt 大作业C语言 --冯诺依曼式CPU模拟器 /* 作者:bupt 时间:2021.7.10主函数main1>取指令,保存到寄存器2>分析指令,执行指令3>输出代码,数据 代码 ...

  4. c语言自动售货机实验报告,c语言自动售货机实验报告(15页)-原创力文档

    课 程 设 计 课程名称C 语言高级程序设计 学院xxx 小组成员 1XXX 小组成员 2XXX 小组成员 3XXX 任课教师XXX 2016--2017学年第 1学期 所选题目与要求 自动售货机 问 ...

  5. python2048小游戏程序设计大作业_C语言大作业报告——2048小游戏程序

    大作业题目 类型 游戏 班 号 学 号 所在院系 学 期 2020 年春季学期 任课教师 实验类型 综合设计型 实验目的:  掌握程序设计的基本算法和简单数据结构基础,能够综合运用基本控制语句.算法 ...

  6. c语言程序设计创新大作业,C语言程序设计大作业报告.pdf

    C语言程序设计大作业报告 课程设计(大作业)报告 课程名称: C 语言程序设计 设计题目: 实验设备管理系统 院 系: 信息技术学院 班 级: 2015级物联网工程 1班 设 计 者: 何盛 高陶 王 ...

  7. 合肥学院C语言大作业,C语言实践课程综合大作业..doc

    C语言实践课程综合大作业. 昆明理工大学 <程序设计基础>课程 综合设计实践教学课题报告 课程名称: C语言程序设计综合大作业 课题名称:数学计算工具程序设计 组长:学号 20131040 ...

  8. noj大作业c语言扫雷,noj大作业概要.doc

    noj大作业概要 作业名称:算法演示程序学 院:航海学院班 级:学 号:2013300951姓 名:苏和团队组成: 西北工业大学 2015年11月11日 1.问题与背景(描述程序所要解决的问题或应用背 ...

  9. c语言自动售货机实验报告,c语言自动售货机实验报告

    #includefloat M;//M为投入的钱数 int A=1,B=1,t; //A为数量标记,B为金钱标记,1表示有,0表示没有,t用于标记售货机是否能完成退款 int i,n,v=100; / ...

最新文章

  1. Spring基础专题——第五章(Aop代理)
  2. 浅谈机器学习在市场营销中的应用
  3. C++知识点22——使用C++标准库(顺序容器list的初始化、赋值、访问、交换、添加、删除与迭代器失效)
  4. P1514 引水入城
  5. 找出占用磁盘空间最大的前10个文件或文件夹
  6. SpringBoot 快速开启事务(附常见坑点)
  7. mybatis 连接池_应用框架之Mybatis数据源和连接池
  8. Cookie 、Session、Token理解以及常见问题总结
  9. (转)Spring Boot 2(一):【重磅】Spring Boot 2.0权威发布
  10. 表弟励志做程序员了,除了霸王我还能给他什么?
  11. ubuntu新建一个账户并将其加入sudo用户组
  12. .net知识和学习方法系列(四)继承中方法的隐藏和重写
  13. 数据库管理软件SQLPro for SQLite for Mac 2022.30
  14. linux下nginx环境搭建
  15. excel从html文件传输乱码,打开乱码解决步骤7:在Excel中直接打开该文本文件
  16. Web项目测试流程总结
  17. ​Windows下RSA密钥生成工具openssl​
  18. 安装CAD2006出现html,Win7系统安装cad2006出现已终止CAD2006-Simplifieng安装怎么办
  19. stemming与lemmatization
  20. python显示实时时间校对_Python实现系统时间自动校正

热门文章

  1. 《小明升职记》(七)
  2. 关于人工智能的法律思考
  3. 免堆期由谁申请_Alan Logistics摘录:知识贴| 关于免箱期和免堆期
  4. 扫地机器人石头爬坡_请问扫地机器人,石头,小米哪个好?
  5. 违禁词查询 麦谈帮API数据接口
  6. 疯狂python day01
  7. Java虚拟机-双亲委派机制
  8. 软件工程视频——可行性研究
  9. 上位机与西门子 Simotion 通信协议
  10. blender script 批量重命名材质