题目:简单进销存

功能要求:

  1. 实现如下的菜单(按数字选择菜单功能): 1. 显示存货列表 2. 入库 3. 出库 4. 退出程序
  2. 实现菜单对应功能(需记录货物的型号、数量等信息);
  3. 程序启动时从文件中读取当前库存数据,退出时保存库存数据;
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<windows.h> typedef struct GOOD{
char *name;
int num;
}GOOD; typedef struct Node{
GOOD good;
struct Node *pre,*next;
}Node; Node *head,*tail; void NewNode(); int main(){
char name_of_good[101];
int num_of_good;
printf("///////////////\n");
printf("ÇëÊäÈëÏàÓ¦Êý×Ö£¬²¢°´Ï»سµ¼üÀ´»ñÈ¡ÄúÏëÒªµÄ¹¦ÄÜ£¡\n");
printf("1.ÏÔʾ´æ»õÁбí\n");
printf("2.Èë¿â\n");
printf("3.³ö¿â\n");
printf("4.Í˳ö³ÌÐò\n");
printf("//////////////\n");
int op;
FILE *fp=fopen("WAREHOUSE.txt","r");
while(fscanf(fp,"%s%d",name_of_good,&num_of_good)!=EOF){
NewNode();
int len=strlen(name_of_good);
(*tail).good.name=(char*)malloc(sizeof(char)*(len+1));
strcpy((*tail).good.name,name_of_good);
(*tail).good.num=num_of_good;
}
fclose(fp);
while(1){
scanf("%d",&op);
if(op==1){
for(Node* p=head;p!=NULL;p=(*p).next){
printf("%s %d\n",(*p).good.name,(*p).good.num);
}
}
else if(op==2){
printf("Èë¿â,ÇëÊäÈë:»õÎïÃû³Æ »õÎïÊýÁ¿\n");
scanf("%s%d",name_of_good,&num_of_good);
int isFind=0;
for(Node* p=head;p!=NULL;p=(*p).next){
if(strcmp((*p).good.name,name_of_good)==0){
(*p).good.num+=num_of_good;
isFind=1;
break;
}
}
if(!isFind){
NewNode();
int len=strlen(name_of_good);
(*tail).good.name=(char*)malloc(sizeof(char)*(len+1));
strcpy((*tail).good.name,name_of_good);
(*tail).good.num=num_of_good;
}
}
else if(op==3){
printf("³ö¿â,ÇëÊäÈë:»õÎïÃû³Æ »õÎïÊýÁ¿\n");
scanf("%s%d",name_of_good,&num_of_good);
for(Node* p=head;p!=NULL;p=(*p).next){
if(strcmp((*p).good.name,name_of_good)==0){
(*p).good.num-=num_of_good;
if(!(*p).good.num){
if((*p).pre!=NULL){
(*((*p).pre)).next=(*p).next;
}
if((*p).next!=NULL){
(*((*p).next)).pre=(*p).pre;
}
if(p==head){
head=(*p).next;
}
if(p==tail){
tail=(*p).pre;
}
free(p);
}
break;
}
}
}
else{
break;
}
}
fp=fopen("WAREHOUSE.txt","w");
for(Node* p=head;p!=NULL;p=(*p).next){
fprintf(fp,"%s %d\n",(*p).good.name,(*p).good.num);
}
fclose(fp);
return 0;
} void NewNode(){
Node* Pretail=tail;
if(tail==NULL){
head=tail=(Node*)malloc(sizeof(Node));
}
else{
(*tail).next=(Node*)malloc(sizeof(Node));
tail=(*tail).next;
}
if(Pretail!=NULL){
(*Pretail).next=tail;
}
(*tail).pre=Pretail;
(*tail).next=NULL;
}

【CCpp程序设计2017】简单进销存的更多相关文章

  1. 浩瀚技术团队... 安卓智能POS移动PDA开单器 开单器 进销存系统 进销存系统

    浩瀚技术团队... 智能POS移动PDA开单器 开单器 进销存系统 进销存系统 点餐 会员管理 会员管理 深度解读 手机APP移动办公到底是什么? 快速打单POS·不仅仅是快那么简单!  

  2. PDA手持机 移动开单进销存系统 现场出打印凭据和扫码 新的亮点

    传统车销模式弊端:1.手写开单,效率低,动作慢2.现场手写开单明细不能打印,产品明细不规范3.电脑办公人员及车销人员对车上的库存情况掌握不清楚,销售人员对每种产品销售价格不清楚4.老板对员工工作的管控 ...

  3. 【.NET实战教程】北风网基于ASP.NET多层架构下的企业级进销存软件全程培训

    .Net进销存系统详细课程大纲(开发工具采用VS2008+sqlsever2005) [小编提醒:现在学习的话,可以使用vs2012+sql 2008 学习的是思路,教学环境不一定要一模一样]1.项目 ...

  4. 一秒钟看懂SaaS、CRM、OA、ERP、HR、进销存

    自2014年以来,SaaS.CRM.OA.ERP.HR.APM.进销存.财务系统等,这些名词大量出现在微信朋友圈.电视楼宇广告和千百万融资资讯中.它们到底是什么意思?相互之间又有什么区别?在这个飞速发 ...

  5. 改变传统的开单模式------手持POS终端移动销售开单 移动进销存的利器

    手持POS终端高清彩屏,清晰.美观.大方,适用于仓库.超市.服装.食品.批发零售.手机电脑等企业管理.可与管理软件灵活对接.1:员工记不住价格,产品名称,只要有PDA扫描,价格,库存,直接开销售单,打 ...

  6. SAP进销存难点分析及对策

    1.基本需求: 业务部门提出如上表格式进销存需求,并且金额要和总账中存货科目保持一致,如果要实现上表格式进校存,可以通过SAP标准程序(MC.9.MB51.MB5B)加工繁琐而成.现分析一下SAP标准 ...

  7. Odoo进销存(采购、销售、仓库)入门教程 - 上

    转载地址:http://blog.csdn.net/wangnan537/article/details/46434373 运行环境: Ubuntu14.04+Odoo8.0 作者:苏州-微尘 0. ...

  8. 文献综述十八:基于SSH框架的进销存管理系统设计与实现

    一.基本信息 标题:基于SSH框架的进销存管理系统设计与实现 时间:2017 出版源:内蒙古科技与经济 文件分类:对框架的研究 二.研究背景 进销存管理系统在各企业中广泛应用,使用SSH框架,很大程度 ...

  9. 寒冬之下,浩瀚智能开单收银打印扫描POS为何能在批发零售门店商场 车销行业 风靡!:进销存+打印扫描POS机

    是一款适用于商超.餐饮.服装鞋帽.家电专营等等具有零售行业特点的企业,供企业管理人员用于管理.监控本品牌的市场占有率.门店覆盖区域.网点分布合理性等经济地理信息的工具平台. 1,功能一:业务抄单文章来 ...

随机推荐

  1. jq_从右向右的滑入滑出效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. pandas中DataFrame使用

    切片选择 #显示第一行数据print(df.head(1)) #显示倒数三行数据 print(df.tail(3)) loc  df.loc[row_index,col_index]  注意loc是根 ...

  3. 部署HBase系统(分布式部署)

    1.简介 HBase系统主要依赖于zookeeper和hdfs系统,所以部署HBase需要先去部署zookeeper和hadoop 2.部署开始 IP或者HOSTNAME需要根据自身主机信息设定. 部 ...

  4. Python的数值和字符串

    Python数据类型 1.数值 --类型:  1/整型 2/长整型   3/浮点型 -- 0.0, 12.0, -18.8, 3e+7等 4/复数型 -- complex  In []: 0x34al ...

  5. [路由] -- Yii2 url地址美化与重写

    转载:http://blog.csdn.net/lmjy102/article/details/53857520

  6. 安装lszrz,用于上传文件

    wget http://down1.chinaunix.net/distfiles/lrzsz-0.12.20.tar.gztar zxvf lrzsz-0.12.20.tar.gzcd lrzsz- ...

  7. MapReduce程序的几种提交运行模式

    本地模型运行 1/在windows的eclipse里面直接运行main方法,就会将job提交给本地执行器localjobrunner执行      ----输入输出数据可以放在本地路径下(c:/wc/ ...

  8. Python中的PIL

    转自:http://blog.csdn.net/yockie/article/details/8498301 介绍 把Python的基础知识学习后,尝试一下如何安装.加载.使用非标准库,选择了图像处理 ...

  9. WP集成七牛云存储(原创)

    借助:七牛镜像存储 WordPress 插件 https://wordpress.org/plugins/wpjam-qiniu/ 安装本插件1.4.5及以上版本,请先安装并激活WPJAM BASIC ...

  10. AIOps-一位研发工程师的学习笔记

    https://blog.csdn.net/wxm6614/article/details/80457568