超市管理系统
1.包括管理员和顾客
2.管理员有登入,录入商品信息,显示所有商品信息功能
3.顾客有购物车和结算功能
4.购物车具有显示商品列表,显示购物车商品,往购物车添加商品的功能

全部代码下载链接:点击前往下载链接




函数

int menu1();//打印主菜单函数
int menu2();//打印管理员菜单函数
int menu3();//打印顾客函数
void CreateGoods();//录入商品信息函数
void ShowGoods();//显示库存信息函数
void ShopCart();//对购物车进行操作
int ShopCartMenu();//打印购物车菜单
void ShowCart();//显示购物列表
void add();//在购物车里添加商品
void UpdateKu();//更新购物车信息函数
void  calculate();//计算所购商品价格并修改保存

建立库存函数

void CreateGoods()
{//手动建立库存信息FILE *fp;//定义文件指针 int i;printf("请输入需要录入的商品个数:\n");scanf("%d",&n);//输入数量 printf("请依次输入货物信息:\n");printf("--------------------------------------------\n");for(i=0;i<n;i++) {//向文件中写入信息printf("第%d个商品:\n",i+1);printf("货号:"); fflush(stdin);//清空输入流gets(goods[i].ID);//输入货号printf("品名:");fflush(stdin);//清空输入流gets(goods[i].brand);//输入品名 printf("进价: ");fflush(stdin);//清空输入流scanf("%lf",&goods[i].inprice);//输入进价 printf("售价:");fflush(stdin);//清空输入流scanf("%lf",&goods[i].outprice);//输入售价 printf("数量:");fflush(stdin);//清空输入流scanf("%d",&goods[i].storage);//输入数量 printf("保质期:"); fflush(stdin);//清空输入流gets(goods[i].date);//输入货号printf("\n");}if((fp=fopen("kucun.txt","w"))==NULL) {//判断文件是否创建失败printf("创建文件失败。\n");return ;}//fprintf(fp,"货号       品名      单价    库存量   保质期\n");for(i=0;i<n;i++){//把货物信息写进文件fprintf(fp,"%-11s%-15s%-8.3f%-8.3f%-11d%-11s\n",goods[i].ID,goods[i].brand,goods[i].inprice,goods[i].outprice,goods[i].storage,goods[i].date);}//fwrite(goods,sizeof(struct mar),N,cun);二进制文件输出 fclose(fp);//关闭文件 printf("信息导入成功\n");return ;
}

在购物车里添加商品

void add()
{//在购物车里添加商品 FILE *fp,*fp1;//fp表示kucun文件,fp1表示cart文件 struct node *p1,*p,*p2;//定义节点指针 int i,n;//n表示商品数量 char s[20];//表示货号或者品名 char choice1[20],choice2[20];//选择项(y继续,n继续) do{printf("输入所需物品的名称或货号:\n");fflush(stdin);//清空输入流 gets(s);//输入货号或者品名     if((fp=fopen("kucun.txt","r"))==NULL){//打开文件 printf("打开文件失败\n");continue;}for(i=0;i<N;i++){//循环N次 fscanf(fp,"%s%s%*lf%lf%d",goods[i].ID,goods[i].brand,&goods[i].outprice,&goods[i].storage);//从文件中读取货物信息 if((strcmp(goods[i].ID,s)==0||strcmp(goods[i].brand,s)==0)&&goods[i].storage>0)//找输入对应的商品 {printf("已找到所需商品:\n");printf("--------------------------------------------\n");printf("货号       品名           单价    数量\n");printf("%-11s%-15s%-8.3f%-7d\n",goods[i].ID,goods[i].brand,goods[i].outprice,goods[i].storage,goods[i].date);//输出所需物品信息 printf("请输入所需商品数量: ");scanf("%d",&n);//商品数量 if(n>goods[i].storage){//判断是否还可以购买不 printf("该商品库存不足\n");break;}printf("\n是否购买此商品?(Y/N)\n");fflush(stdin);//清空输入流 scanf("%s",choice1);//输入一个选项 if(strcmp(choice1,"Y")==0||strcmp(choice1,"y")==0){//输入y/Y表示购买此商品 p=new node;//生成新节点 if(p==NULL){//分配内存失败 printf("内存申请失败!\n");exit(1);//退出 } p->number=n;//商品数量 p->buy=goods[i];//货物信息 p->next=NULL;p1=cart;//把头结点赋给p1  if(cart==NULL)//头结点为空 cart=p;//把节点赋值给头结点 else{while(p1->next!=NULL)p1=p1->next;//把链表循环到尾部 p->next=p1->next; p1->next=p;//把新节点p挂在链表尾部 }}elseprintf("输入错误\n");break;//找到商品结束循环 }} if(i==N)//循环完毕还没找到对应商品 printf("未找到所需物品\n");fclose(fp);//关闭文件 UpdateKu();//更新库存信息函数 printf("是否继续购物?(Y/N)\n");fflush(stdin);//清空输入流 scanf("%s",choice2);//输入选项if(strcmp(choice2,"y")!=0&&strcmp(choice2,"Y")!=0)printf("放弃购买,返回菜单!\n");}while(strcmp(choice2,"y")==0||strcmp(choice2,"Y")==0);//y/Y继续循环 return ;
}

计算所购商品价格并修改保存

void calculate()
{//计算所购商品价格并修改保存struct node *p;p=cart;//把购物车(cart)链表赋给p double sum=0;//购买商品应付钱数 double pay;//购买商品实付钱数 FILE *fp;//定义文件指针 int i;printf("以下是购物清单:\n");ShowCart();//调用函数显示购物列表信息 if((fp=fopen("kucun.txt","r"))==NULL){//打开文件  printf("打开文件失败\n");return ;}for(i=0;i<N;i++){//从文件中读取信息 fscanf(fp,"%s%s%*lf%lf%d",goods[i].ID,goods[i].brand,&goods[i].outprice,&goods[i].storage);}fclose(fp);//关闭文件 while(p!=NULL){//当链表不为空时 sum=sum+p->buy.outprice*p->number;//计算应付钱数 for(i=0;i<N;i++){//找出对应商品库存量 if(strcmp(goods[i].ID,p->buy.ID)==0){//找到对应商品 goods[i].storage=goods[i].storage-p->number;//库存量变化 break;}} p=p->next;//指向下一个节点 }printf("总计:%-8.3f\n",sum);//输出购买物品共需多少钱 printf("输入实付金额:");scanf("%lf",&pay);printf("实付:  %-8.3f    找零:    %8.3f\n",pay,pay-sum);if((fp=fopen("kucun.txt","w"))==NULL){//打开文件 printf("写入文件失败\n");return ;}for(i=0;i<N;i++){//向文件中写入信息 fprintf(fp,"%-11s%-15s%-8.3f%-8.3f%-7d\n",goods[i].ID,goods[i].brand,goods[i].inprice,goods[i].outprice,goods[i].storage);}fclose(fp);//关闭文件 return ;
}

全部代码下载链接:点击前往下载链接
无积分下载的可私信我有偿给源码

C语言超市管理系统(c语言)相关推荐

  1. c语言超市账务管理源代码,C语言 超市管理系统源程序.doc

    C语言 超市管理系统源程序.doc C语言超市管理系统源程序 超市管理系统源程序代码,要可以执行的.最好是文件,链表中的一种.好了一定重金酬谢~ 最佳答案 有一个小型超市,出售N(N>=10)种 ...

  2. 超市管理c语言程序,超市管理系统C语言程序代码

    超市管理系统C语言程序代码 #include #include struct arraysGoods { int goods_id; //商品编号 char goods_name[50]; //商品名 ...

  3. 超市系统c语言程序,超市管理系统-C语言

    <超市管理系统-C语言>由会员分享,可在线阅读,更多相关<超市管理系统-C语言(35页珍藏版)>请在人人文库网上搜索. 1.西安邮电大学高级语言课程设计报告题 目: 超市管理系 ...

  4. 超市管理c语言程序,《C语言 超市管理系统源程序》.doc

    C语言超市管理系统源程序 超市管理系统源程序代码,要可以执行的.最好是文件,链表中的一种.好了一定重金酬谢~ 最佳答案 有一个小型超市,出售N(N>=10)种商品,设计并实现一个系统,完成下列功 ...

  5. c语言学生综合测评系统_c语言图书管理系统_c语言学生综合测评系统_c语言个人账本管理系统...

    c语言销售管理系统设计 c语言设计管理系统,c图书管理系统设计,学生管理系统c语言,职工管理系统c语言,c语言图书管理系统,c语言成绩管理系统,c语言管理系统,c语言银行管理系统,c语言工资管理系统, ...

  6. 教师查询系统C语言,教师管理系统c语言版

    <教师管理系统c语言版>由会员分享,可在线阅读,更多相关<教师管理系统c语言版(7页珍藏版)>请在人人文库网上搜索. 1.include/头文件#include/字符处理头文件 ...

  7. 学生个人消费系统设计C语言,个人消费管理系统C语言课程设计毕业设计word格式.doc...

    个人消费管理系统C语言课程设计毕业设计word格式 目 录 TOC \o "1-3" \h \z HYPERLINK \l "_Toc256000000" 1 ...

  8. 停车自助缴费模拟系统c语言,停车场管理系统C语言实现,全动画模拟.doc

    停车场管理系统C语言实现,全动画模拟 停车场管理系统C语言实现,全动画模拟#include#include#include#include#include#include#define PASSWOR ...

  9. 课程设计图书管理系统c语言,图书管理系统c语言课程设计c语言课程设计作业获得95分全院第一......

    > 下载中心  >   > 图书管理系统 c语言课程设计 english version 图书管理系统 c语言课程设计 所属分类: 开发工具:c/c++ 文件大小:2720kb 下载 ...

最新文章

  1. Python上下文语法with小述
  2. 内网渗透测试:内网信息收集与上传下载
  3. Challenges(分组、聚合、连接)
  4. vscode更改插件路径_用好这7个 VS Code 插件,效率蹭蹭涨!
  5. POPUP_GET_VALUES_DB_CHECKED’
  6. Java常用分析工具Jps、Jstat、Jinfo、Jstack以及Jconsole的简单介绍和使用
  7. ##(两个井号)和#(一个井号)都是什么意思C and C++ 2008-09-23 21:18:27 阅读1106 评论0 字号:大中小 订阅 .
  8. 生成0到1之间随机数的C代码
  9. eclipse和maven
  10. 职业教育计算机专业宣传,对中等职业教育中计算机专业教育的思考
  11. mdt服务器实现自动加域,Windows自动化部署(三)MDT环境准备
  12. Excel函数所有公式汇总
  13. android手机恢复出厂设置,手机强制恢复出厂设置方法
  14. TP5+阿里云OSS上传文件第三节,实现淘宝上传商品图片
  15. 云计算 ——虚拟化认识
  16. 金融市场一周简报(2017-08-18)
  17. 浅谈集合List,Set以及Map集合的特点及区别
  18. 京东云服务器使用教程
  19. 一遍两遍三四遍,知识含义清晰现
  20. 建筑行业变革,ALC板材从工业建筑“红海”向民用住宅“蓝海”过渡

热门文章

  1. android程序怎么导入图片不显示,android – ImageViewZoom中不显示图像
  2. EMC 3 完美的EMC电路设计攻略之:元器件选型(下)
  3. 服务器win7系统镜像文件,win7云服务器镜像
  4. HTML期末作业-个人简历
  5. qq的http接口探究
  6. 通过请求头User-Agent标记浏览器,操作系统,是否手机
  7. mysql取出的emoji表情是乱码_解决MySQL emoji表情乱码问题
  8. [ArchLinux] 搜狗拼音输入法的安装
  9. [RK3568 Android11] 开发之系统动态隐藏导航栏(三)
  10. 斐波拉契数列,有人买了一对小兔子,已知小兔子一个月后长成大兔子,大兔子每个月生一对小兔子,问:两年(24个月)之后,他一共有几对兔子。