📄 rukumn.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 + -