C语言超市管理系统

这篇具有很好参考价值的文章主要介绍了C语言超市管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define NUM 5
 

struct item{
	char brand[20];
	char id[10];
	float in_price;
	float out_price;
	int   storage;
};
struct item_node{
	struct item wanted;
	int    amount;
	struct item_node *next;
};

int menu();
void establish();
void dis_all();
void shop_cart();
int  cart_menu();
void add();
void display();
void calculate();

struct item goods[NUM];
struct item_node *cart;


void main()
{
	printf("***********************************\n");
	printf("     欢迎进入超市管理系统\n");
	printf("***********************************\n");
	while(1)
	{
		switch(menu())
		{
		case 1:
			establish();break;
		case 2:
			dis_all();break;
		case 3:
			shop_cart();break;
		case 4:
			calculate();break;
		case 5:
			printf("感谢使用,再见!\n");
			exit(0);
		}
	}
}

int menu()
{
	char str[5];
	int  select;
	printf("\n\n请选择数字进行操作\n");
	printf("1.建立库存信息\n");
	printf("2.显示所有信息\n");
	printf("3.购物车\n");
	printf("4.结算\n");
	printf("5.退出\n");
	printf("请选择对应数字1--5");
	while(1)
	{
		fflush(stdin);
		gets(str);
		select=atoi(str);
		if(select<1||select>5)
			printf("输入错误,请重新输入:");
		else
			break;
		
	}
	return select;
	
}

void dis_all()
{
	int i;
	FILE  *fp;
	fp=fopen("goods","r");
	for(i=0;(fread(goods+i,sizeof(struct item),1,fp))!=0;i++)
	{
		printf("---------------------------------\n");
		printf("货品 品名  单价       库存量\n");
		printf("%s%7s%7.2f%8d\n",goods[i].id,goods[i].brand,goods[i].out_price,goods[i].storage);
		
	}
	fclose(fp);
}


void shop_cart()
{
	while(1)
	{
		switch(cart_menu())
		{
		case 1:
			display();break;
		case 2:
			add();break;
		case 3:
			return;
		}
	}
}
int  cart_menu()
{
	char  str[5];
	int   select;
	printf("\n请选择操作\n");
	printf("-----------------------\n");
	printf("1.显示当前购物列表\n");
	printf("2.添加商品\n");
	printf("3.退出\n");
	printf("-----------------------\n\n");
	while(1)
	{
		fflush(stdin);
		gets(str);
		select=atoi(str);
		if(select<1||select>3)
			printf("输入错误,请重新输入:");
		else
			break;
	}
	return select;
}

void display()
{
	struct item_node *p=cart;
	if(p==NULL){
		printf("购物车为空\n");
		return ;
	}
	while(p!=NULL){
		printf("----------------------------------\n");
		printf("货号                品名  单价   数量\n");
		printf("%10s%20s%7.2f%8d\n",p->wanted.id,p->wanted.brand,p->wanted.out_price,p->amount);
		p=p->next;
	}
}

void add()
{
	FILE *fp;
	int   i,n;
	char  str[20];
	char  choice1,choice2;
	struct item_node *p,*p1;
	do
	{
		printf("输入所需物品的名称或货号: ");
		fflush(stdin);
		gets(str);
		if((fp=fopen("goods","r"))==NULL){
			printf("打开文件失败\n");
			continue;
		}
		for(i=0;fread(goods+i,sizeof(struct item),1,fp)!=0;i++){
			if((strcmp(goods[i].brand,str)==0||strcmp(goods[i].id,str)==0)&&goods[i].storage!=0){
				printf("已经找到所需物品:  \n");
				printf("---------------------\n");
				printf("货号  品名  单价  库存量\n");
				printf("%s%6s%3.2f%4d\n",goods[i].id,goods[i].brand,goods[i].out_price,goods[i].storage);
				printf("请输入所需数量: ");
				scanf("%d",&n);
				if(n>goods[i].storage){
					printf("库存不足\n");
					break;
				}
				printf("\n是否购买?(Y/N)");
				fflush(stdin);
				choice1=getchar();
				if(choice1=='Y'||choice1=='y'){
					p1=(struct item_node*)malloc(sizeof(struct item_node));
					if(p1==NULL){
						printf("内存申请失败!\n");
						exit(1);
					}
					p1->amount=n;
					p1->wanted=goods[i];
					p1->next=NULL;
					p=cart;
					if(cart==NULL)
						cart=p1;
					else{
						while(p->next!=NULL)
							p=p->next;
						p1->next=p->next;
						p->next=p1;
					}
				}
				break;
			}
		}
		if(i==NUM)
			printf("未找到所需物品\n");
		fclose(fp);
		printf("是否继续购物?(Y/N)");
		fflush(stdin);
		choice2=getchar();
	}while(choice2=='Y'||choice2=='y');
}


void  establish(){
	FILE *fp;
	int   i;
	printf("请依次输入货物信息:\n");
	printf("----------------------------\n");
	for(i=0;i<NUM;i++)
	{
		printf("品名: ");
		fflush(stdin);
		gets(goods[i].brand);
		printf("货号: ");
		fflush(stdin);
		gets(goods[i].id);
		printf("进价: ");
		fflush(stdin);
		scanf("%f",&goods[i].in_price);
		printf("哨价: ");
		fflush(stdin);
		scanf("%f",&goods[i].out_price);
		printf("数量: ");
		fflush(stdin);
		scanf("%d",&goods[i].storage);
		printf("\n");
	}
	if((fp=fopen("goods","w"))==NULL){
		printf("创建文件失败.\n");
		return;
	}
	fwrite(goods,sizeof(struct item),NUM,fp);
	fclose(fp);
}

void calculate()
{
	float total=0,pay;
	struct item_node *p;
	int   i;
	FILE   *fp;
	printf("以下是购物清单:  \n");
	display();
	if((fp=fopen("goods","r"))==NULL){
		printf("打开文件失败:  \n");
		return;
	}
	for(i=0;(fread(goods+i,sizeof(struct item),1,fp))!=0;i++);
	fclose(fp);
	p=cart;
	while(p!=NULL){
		total+=p->wanted.out_price*p->amount;
		for(i=0;strcmp(goods[i].id,p->wanted.id)!=0;i++);
		goods[i].storage-=p->amount;
		p=p->next;
	}
	printf("总计 %7.2f",total);
	printf("\n输入实付金额: ");
	scanf("%f",&pay);
	printf("实付:         %7.2f    找零:          %7.2f",pay,pay-total);
	if((fp=fopen("goods","w"))==NULL){
		printf("打开文件失败.\n");
		return;
	}
	fwrite(goods,sizeof(struct item),NUM,fp);
	fclose(fp);
}


文章来源地址https://www.toymoban.com/news/detail-551496.html

到了这里,关于C语言超市管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 超市会员管理系统

    目录 一、需求分析 二、问题描述 三、总体设计 四、详细设计 1)数据类型 2) 函数名 3)登陆界面 4)主界面 5)界面设计 (1)系统说明 (2) 输入会员信息  (3) 显示会员信息  (4)查询会员信息 (5) 插入会员信息 (6)删除会员信息 (7)修改会员信息 (8)会员消费

    2024年02月09日
    浏览(36)
  • 小型超市管理系统

      摘要 : 近些年,互联网行业的发展带给了很多人在生活上的便利,互联网能够改变人们的生活和工作的模式。很多企业都在将普通的工作模式结合了互联网,利用互联网的优势提高管理员的工作效率。目前不少超市管理系统存在着许多问题,因此根据电商行业的特点,可

    2024年02月02日
    浏览(23)
  • [MySQL]超市购物管理系统

    目录 数据库结构 一.逻辑结构设计 1.会员信息表hyxxb 2.货品名称表hpmcb 3.供应商信息表gysxxb 4.收银记录表 5.收银明细表symxb 6.货品库存表 7.扎帐记录表 8.汉字拼音表  二.索引 1.汉字拼音表索引  三.视图 1.货品库存数量视图 2.收银明细视图 四.创建函数  五.创建触发器  六.创建

    2024年02月08日
    浏览(32)
  • 超市管理系统 C++(课程设计)

    古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼 ---------------🍎------------🍉-------------- 🐼学编程的bird的博客,邀您一起学习🦌 ----------------🥕------------🥭------------- 😊很高兴你打开了这篇博客。 ★如有疑问不解或者说有想问的地方,都可以在下方评论留

    2024年01月16日
    浏览(30)
  • 超市管理系统(java+Mysql)

    目 录 摘 要 I Abstract II 1 正文 1 1.1研究背景分析 1 1.2 超市管理系统的概述 2 1.3所需软、硬件技术准备 2 1.4可行性分析 3 1.4.1 技术可行性 3 1.4.2 经济可行性 3 1.4.3 社会可行性 3 2 需求分析 4 2.1 需求分析的任务及主要内容 4 2.2.1 具体业务的需求 4 2.2 层次图 4 2.3数据流图 5 3 概要设

    2024年02月05日
    浏览(41)
  • JAVA结课作品——超市管理系统

    项目描述: 一个简单的超市管理系统,能够实现用户登入和注册功能,共分为前台和后台两个主要界面,普通用户界面操作权限收到限制,只能对商品和销售记录进行简单查询操作,后台中可以进行商品的删除、修改、查询,可以查看用户信息,可以修改用户信息。具体的代

    2024年02月11日
    浏览(30)
  • Java学习——水果超市商品管理系统

    案例介绍: 水果超市管理系统包括两个界面:系统欢迎界面和超市货物管理界面,在系统欢迎界面中,通过单击“进入系统”按钮,进入超市货物管理界面。在超市货物管理界面中,可以对水果信息实现具体的操作。例如,每当有新水果运送到超市时,就需要系统管理人员在

    2024年02月11日
    浏览(29)
  • C语言编程学生成绩管理系统

    目录 一、介绍 二、功能 1.录入学生 2.删除学生信息 3.修改学生信息 4.查询学生信息 5.所有学生信息 6.成绩排序  7.退出程序 三、代码 1.主函数 2.头文件 3.函数封装库         利用C语言,运用链表、指针、封装函数等基本知识实现一个学生管理系统。通过在终端对学生信息进

    2024年02月10日
    浏览(39)
  • VB+ACCESS超市管理系统设计(源代码+系统)

    超市管理系统是典型的信息管理系统 (MIS), 其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备 , 易使用等特点。 经过分析 , 我们使用  MICROSOFT 公司

    2024年02月09日
    浏览(88)
  • JAVA小项目之超市会员管理系统

    1、会员类Member     (1)姓名        name:String     (2)卡号        cardId:int     (3)密码        password:String     (4)积分        score:int     (5)开卡日期    registDate:String      2、会员管理类     (1)所有会员(卡)--集合:List  ArrayListMember      

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包