⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rukumn.c

📁 Unix/Linux 物流系统Demo
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "churu.h"#include <time.h>extern char* filename;extern int new_rukubill(){	FILE* fp;	FILE* fp_data;	taizhang tz;	int ruku_id;	char* space=" ";	if((fp=fopen("ruku.id","r+"))!=NULL)	{		fscanf(fp,"%d",&ruku_id);			}	else	{		printf("can't open file ruku.id!\n ");		return 0;	}			if((fp_data=fopen("taizhang.dat","a+"))!=NULL)	{		ruku_id=ruku_id+1;		while(1)		{					printf("------------------入库单录入----------------------\n");				do{					//printf("到货日期:(YYYYMMDD)");					help(filename,"[c_date]");					getchar();					scanf("%s",tz.in_date);				}while(!check_date(tz.in_date));								do{//printf("货主姓名:");				   help(filename,"[c_usrname]");					getchar();scanf("%s",tz.usr_name);}while(!check_length(tz.usr_name,10));				do{//printf("联系人姓名:");					help(filename,"[c_coname]");					getchar();scanf("%s",tz.con_name);}while(!check_length(tz.con_name,10));				do{//printf("联系电话:");					help(filename,"[c_contel]");					getchar();scanf("%s",tz.con_tel);}while(!check_length(tz.con_tel,11));				do{//printf("货物名称:");					help(filename,"[c_pdctname]");					getchar();scanf("%s",tz.product_name);}while(!check_length(tz.product_name,12));				do{//printf("货物计量单位:");					help(filename,"[c_pdctma]");					getchar();scanf("%s",tz.product_meterage);}				while(!check_length(tz.product_meterage,10));								//printf("货物数量:");				help(filename,"[c_pdctcount]");				getchar();scanf("%d",&tz.product_count);								//printf("货物单价:");				help(filename,"[c_pdctprice]");				getchar();scanf("%f",&tz.product_price);				do{//printf("接受保管员:");					help(filename,"[c_kepper]");					getchar();scanf("%s",tz.storekepper_name);}				while(!check_length(tz.storekepper_name,10));				//printf("仓库编号:");				help(filename,"[c_deptid]");				getchar();scanf("%d",&tz.deport_id);				tz.id=ruku_id;				tz.stat=2;								!strcmp(filename,"czw.txt")? display_rukubill(tz,"入库单的内容如下"):display_rukubill(tz,"ruku bill");				//printf("确认(y/n):");				help(filename,"[c_submit]");								fflush(stdin);				getchar();				if(getchar()=='y')				{						rewind(fp);					if(fprintf(fp,"%d",ruku_id))					{						if(fwrite(&tz,sizeof(tz),1,fp_data))							//printf("写入文件\n");							help(filename,"[c_writetofile]");						else							//printf("写入失败\n");							help(filename,"[c_writerr]");					}					else					{						printf("严重错误!\n");					}					break;				}				else					break;					}					}	else	{		printf("can't open the datafile\n");	}	printf("关闭文件\n");	fclose(fp_data);	fclose(fp);		return 0;}extern int modify_rukubill(int zhuangtai){	FILE* fp;	taizhang tz;	int ruku_id;	char out_date[9];	if((fp=fopen("taizhang.dat","r+"))!=NULL)	{		rewind(fp);		while(getchar()!='\n');		//printf("请输入代验收入库单编号:");		help(filename,"[c_rukuid]");		scanf("%d",&ruku_id);		if(zhuangtai==0)		{						//printf("请输入出库日期(YYYYMMDD)");			help(filename,"[c_chukudate]");			scanf("%s",out_date);					}				while(!feof(fp))		{			fread(&tz,sizeof(taizhang),1,fp);			//printf("\n%d\n   ",tz.id);			if(tz.id==ruku_id)			{				strcmp(filename,"czw.txt")? display_rukubill(tz,"rukubill"):display_rukubill(tz,"待验收入库单内容");								//printf("确认(y/n):");				help(filename,"[c_submit]");				getchar();				if(getchar()=='y')				{					tz.stat=zhuangtai;					if(zhuangtai==0)					{						strcpy(tz.out_date,out_date);					}					fseek(fp,(0-sizeof(tz)),1);					fwrite(&tz,sizeof(tz),1,fp);					break;									}				else					break;							}			continue;		}	}	else	{		//printf("错误:打不开数据文件\n");		help(filename,"[c_openerror]");		return 0;	}	fclose(fp);	return 0;	}extern display_rukubill(taizhang tz,char* s){	printf("--------------------------------------------------%s------------------------------------------------\n",s);	//printf("入库单编号|到货日期 |货主姓名|联系人姓名|联系电话   |货物名称|计量单位|货物数量|货物单价 |保管员  |仓库编号|状态\n");		      	help(filename,"[c_disp]");			printf("------------------------------------------------------------------------------------------------------------------\n");	printf("%-10d|",tz.id);printf("%-9s|",tz.in_date);	printf("%-8s|",tz.usr_name);printf("%-10s|",tz.con_name);		printf("%-11s|",tz.con_tel);printf("%-8s|",tz.product_name);		printf("%-8s|",tz.product_meterage);printf("%-8d|",tz.product_count);		printf("%-9.2f|",tz.product_price);printf("%-8s|",tz.storekepper_name);		printf("%-8d|",tz.deport_id);	switch(tz.stat){case 0:				//printf("已出库\n");				help(filename,"[c_chued]");				break;			case 1:				//printf("库存中\n");				help(filename,"[c_storing]");				break;			case 2:				//printf("处理中\n");break;				help(filename,"[c_dealing]");		       }	printf("------------------------------------------------------------------------------------------------------------------\n");}extern int check_date(char* date){	int year;	int month;	int dd;	int ruku_date;	int sys_date;	char str_date[9];	time_t t;	struct tm* mytm;	time(&t);	mytm=gmtime(&t);	int flag=0;	if(strlen(date)!=8)	{		//printf("错误的日期格式ex yyyymmdd\n");		help(filename,"[c_derrfmt]");		return 0;	}	sscanf(date,"%4d%2d%2d",&year,&month,&dd);	        		if((mytm->tm_year+1900)>year)		flag=1;		if((mytm->tm_year+1900)==year)	{	       if((mytm->tm_mon+1)>month)		       flag=1;	       if((mytm->tm_mon+1)==month)	       {		       if(mytm->tm_mday>=dd)			       flag=1;	       }	      			}					if(flag==0)	{		//printf("超出当前系统日期!!!!\n");		help(filename,"[c_dmtcur]");		return 0;		}	if((year<=0)||(month<=0)||(dd<=0)||(year>3000)||(month>12)||(dd>31))	{				//printf("错误的日期值\n");		help(filename,"[c_derrvalue]");		return 0;		}	return 1;		//printf("%d-%d-%d\n",year,month,dd);}extern int check_length(char* str,int length){	if(strlen(str)>length)	{		//printf("超出规定长度\n");		help(filename,"[c_errlen]");		return 0;	}	return 1;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -