fclose(fp); }
void lend() {
struct product *head; head=build_list(); //printf(\ write_lend(head); lend_menu(); }
6-2 领货菜单
提供几种查找方式的入口,并可以在结果中查找。逐渐缩小范围,直至要求! [流程图]
选择查找方式或进入领货
N
满足输入要求 Y 进入相应函数 [程序代码] /*领货菜单*/ void lend_menu() {
int n,w=0;
printf(\ printf(\
printf(\ printf(\ printf(\ scanf(\ do {
if(n>6||n<1) { printf(\ scanf(\ }
else w=1; }while(w!=1);
switch(n)
{
case 1:lend_name();break; case 2:lend_date();break; case 3:lend_size();break; case 4:lend_number();break;
case 5:lend_real_size();break; case 6:ok(); } }
6-3 领货时以名称为查找方式 [分析]
按照名称查找所需物资,并写入中转文件,以利于下一次查找! [流程图]
以只写方式打开中转文件 输入欲领取货物的名称 在领货链表中查找 写入中转文件 关闭文件 进入领货菜单
[程序代码]
/*领货时按名字查询*/ void lend_name() {
void lend_menu(); void print_list(); char name[20];
struct product *head,*p,*p2; FILE *fp;
head=lend_list();/*领货链表*/ p=head;p2=head;
print_list(head);/*打印*/
printf(\ scanf(\
if((fp=fopen(\ {
printf(\ }
else printf(\
for(;p!=NULL;) { if(strcmp(p->p_name,name)==0) { printf(\
printf(\day,p->max_s,p->min_s,p->real_s);
fprintf(fp,\te.day,p->max_s,p->min_s,p->real_s);
} p=p2->next; p2=p; }
fclose(fp);
lend_menu(); }
6-4 领货时以日期为查找方式 [分析]
按照日期查找所需物资,并写入中转文件,以利于下一次查找! [流程图]
以只写方式打开中转文件 输入欲领取货物的日期 在领货链表中查找 写入中转文件 关闭文件 进入领货菜单
[程序代码]
/*领货时按日期查询*/ void lend_date() {
void lend_menu(); struct date d;
struct product *head,*p,*p2; FILE *fp;
head=lend_list();/*领货链表*/ p=head;p2=head;
print_list(head);/*打印*/
printf(\ scanf(\
if((fp=fopen(\ { printf(\ }
else printf(\ for(;p!=NULL;) { if(p->in_date.year==d.year&&p->in_date.month==d.month&&p->in_date.day==d.day) { printf(\ate.day,p->max_s,p->min_s,p->real_s);
fprintf(fp,\n_date.day,p->max_s,p->min_s,p->real_s);
} p=p2->next; p2=p; }
fclose(fp); lend_menu(); }
6-5 领货时以规格为查找方式 [分析]
按照规格查找所需物资,并写入中转文件,以利于下一次查找! [流程图]
以只写方式打开中转文件 输入欲领取货物的规格 在领货链表中查找 写入中转文件 关闭文件 进入领货菜单 [程序代码]
/*领货时按规格查询*/ void lend_size() {
void lend_menu(); char size[4];
struct product *head,*p,*p2; FILE *fp;
head=lend_list();/*领货链表*/ p=head;p2=head;
print_list(head);/*打印*/
printf(\ scanf(\
if((fp=fopen(\ { printf(\ }
else printf(\ for(;p!=NULL;) { if(strcmp(p->size,size)==0) { printf(\ate.day,p->max_s,p->min_s,p->real_s);
fprintf(fp,\n_date.day,p->max_s,p->min_s,p->real_s);
} p=p2->next;