zoukankan      html  css  js  c++  java
  • 【CCpp程序设计2017】简单进销存

    题目:简单进销存

    功能要求:

    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("///////////////
    ");
    	printf("ÇëÊäÈëÏàÓ¦Êý×Ö£¬²¢°´Ï»سµ¼üÀ´»ñÈ¡ÄúÏëÒªµÄ¹¦ÄÜ£¡
    ");
    	printf("1.ÏÔʾ´æ»õÁбí
    ");
    	printf("2.Èë¿â
    ");
    	printf("3.³ö¿â
    ");
    	printf("4.Í˳ö³ÌÐò
    ");
    	printf("//////////////
    ");
    	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
    ",(*p).good.name,(*p).good.num);
    			}
    		}
    		else if(op==2){
    			printf("Èë¿â,ÇëÊäÈë:»õÎïÃû³Æ »õÎïÊýÁ¿
    ");
    			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("³ö¿â,ÇëÊäÈë:»õÎïÃû³Æ »õÎïÊýÁ¿
    ");
    			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
    ",(*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;
    }
  • 相关阅读:
    java基础知识--环境变量配置
    安装oracle11g时遇到INS-13001环境不满足最低要求
    MINA系列学习-IoBuffer
    MINA系列学习-mina整体介绍
    DBCP数据源连接池实现原理分析
    dbcp数据源配置杂谈
    Java 内存区域和GC机制分析
    网站的防盗链与反盗链的那点事
    这一天博客小院我进来了!
    AOP
  • 原文地址:https://www.cnblogs.com/autsky-jadek/p/6683634.html
Copyright © 2011-2022 走看看