c语言实现的货物管理系统实例代码(增加删除 查找货物信息等功能)
c语言实现的货物管理系统实例代码(增加删除 查找货物信息等功能)
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:#include#include#include#include/*屏幕操作函数库*//*主管权限数据格式化*/#defi...

复制代码 代码如下:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <conio.h> /*屏幕操作函数库*/

/*主管权限数据格式化*/

#define HEADER1_zg "-----------------------------货物管理系统(主管)--------------------------------n"

#define HEADER2_zg "| 编号 | 名称 | 进价 | 售价 | 产地 | 生产日期 |保质期| 库存 | 销量 | 收入 |n"

#define HEADER3_zg "|------|--------|------|------|------|----------|------|------|------|--------|n"

#define FORMAT_zg "|%-6s|%-8s|%.2f |%.2f |%6s|%-4d%3d%3d| %4d | %4d | %4d |%.2f |n"

#define DATA_zg p->data.numbs,p->data.name,p->data.purchase,p->data.sales,p->data.place,p->data.Date.year,p->data.Date.mouth,p->data.Date.day,p->data.days,p->data.stock,p->data.salesnumb,p->data.income

#define END_zg "-------------------------------------------------------------------------------n"

/*普通权限数据格式化*/

#define HEADER1_pt "----------------货物管理系统(普通)--------------------n"

#define HEADER2_pt "| 编号 | 名称 | 售价 | 产地 | 生产日期 |保质期| 销量 |n"

#define HEADER3_pt "|------|--------|------|------|----------|------|------|n"

#define FORMAT_pt "|%-6s|%-8s| %.2f|%6s|%-4d%3d%3d| %4d | %4d |n"

#define DATA_pt p->data.numbs,p->data.name,p->data.sales,p->data.place,p->data.Date.year,p->data.Date.mouth,p->data.Date.day,p->data.days,p->data.salesnumb

#define END_pt "--------------------------------------------------------n"

int yhflag=0; /*是否优惠*/

int incomflag=0; /*是否计算收入*/

int dateflag=0; /*是否输入日期*/

int saveflag=0; /*是否需要保存*/

char zg[]="zg";

char pt[]="pt";

struct date

{

int year;

int mouth;

int day;

};

/*货物基本信息*/

struct goods

{

char numbs[6]; /*编号*/

char name[10]; /*名称*/

float purchase; /*进价*/

float sales; /*售价*/

char place[10]; /*产地*/

struct date Date; /*生产日期*/

int days; /*保质期*/

int datecha; /*保质期截止日期差*/

int stock; /*库存量*/

int salesnumb; /*销量*/

float income; /*收入*/

};

typedef struct node

{

struct goods data;

struct node *next;

}Node,*Link;

/*格式化输出主管表头*/

void printheader_zg()

{

printf(HEADER1_zg);

printf(HEADER2_zg);

printf(HEADER3_zg);

}

/*格式化输出普通表头*/

void printheader_pt()

{

printf(HEADER1_pt);

printf(HEADER2_pt);

printf(HEADER3_pt);

}

/*格式化输出主管表中数据*/

void printdata_zg(Node *pp)

{

Node *p;

p=pp;

printf(FORMAT_zg,DATA_zg);

}

/*格式化输出普通表中数据*/

void printdata_pt(Node *pp)

{

Node *p;

p=pp;

printf(FORMAT_pt,DATA_pt);

}

/*输出案件错误信息*/

void wrong()

{

printf("nnnn*******错误:输入错误,按任意键继续*******n");

getchar();

}

/*输出为查找到货物的信息*/

void Nofind()

{

printf("n*****无此货物信息!*****n");

getchar();

}

/*主管显示菜单*/

void Disp(Link L,char s[])

{

Node *p;

p=L->next;

if (!p) /*空,则*/

{

printf("n没有录入货物信息n");

getchar();

return ;

}

printf("nn");

if (strcmp(zg,s)==0)

{

printheader_zg();

while (p)

{

printdata_zg(p);

p=p->next;

printf(HEADER3_zg);

}

}

else

{

printheader_pt();

while (p)

{

printdata_pt(p);

p=p->next;

printf(HEADER3_pt);

}

}

getchar();

}

/*返回链表中符合要求的节点的指针,s[]保存用户查找内容,NaorNum[]保存按什么查找”name,num“*/

Node *Locate(Link L,char s[],char NaorNum[] )

{

Node *p;

if (strcmp(NaorNum,"num")==0)

{

p=L->next;

while (p)

{

if (strcmp(p->data.numbs,s)==0)

return p;

p=p->next;

}

}

else if (strcmp(NaorNum,"name")==0)

{

p=L->next;

while (p)

{

if (strcmp(p->data.name,s)==0)

return p;

p=p->next;

}

}

return 0; /*未找到,返回空指针*/

}

/*平润年判断*/

int Year_pd(int year)

{

int flag;

if ((year%4==0&&year%100!=0)||year%400==0)

{/*闰年*/

flag=0;

}

else

{/*平年*/

flag=1;

}

return flag;

}

/*月份对应的天数*/

int Day_pd(int mouth,int flag)

{

int day;

switch(mouth)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:day=31;break;

case 4:

case 6:

case 9:

case 11:day=30;break;

case 2:if (flag) day=28;

else day=29;break;

}

return day;

}

/*输入字符串,并进行验证,用户的输入通过*t输出*/

void S_input(char *t,int lens,char *notice)

{

char str[255];

do

{

printf(notice);

scanf("%s",str);

if(strlen(str)>lens)

printf("n超过了要求长度,重新输入n");

} while (strlen(str)>lens);

strcpy(t,str);

}

int Num_input(char *notice)

{

int a;

do

{

printf(notice);

scanf("%d",&a);

if(a<0) printf("n数字必须大于零n");

} while (a<0);

return a;

}

/*输入月份进行验证*/

int Mou_input(char *notice)

{

int mouth=0;

do

{

printf(notice);

scanf("%d",&mouth);

if (mouth>12||mouth<0)

printf("n月份必须在(1~12)之间!n");

} while (mouth>12||mouth<0);

return mouth;

}

/*输入天数进行验证*/

int Day_input(char *notice,int year,int mouth)

{

int day=0;

int nlimit,flag;

flag=Year_pd(year);

do

{

printf(notice);

scanf("%d",&day);

nlimit=Day_pd(mouth,flag);

if (day>nlimit||day<0)

printf("n日期必须在(1~%d)之间!n",nlimit);

} while (day>nlimit||mouth<0);

return day;

}

/*增加货物记录*/

void Add_goods(Link L)

{

Node *p,*r,*s;

char ch,flag=0,num[10];

r=L;

s=L->next;

system("cls");

Disp(L,zg);

while (1)

{

while (1) /*输入编号,保证没有被使用,若输入为0,则推出*/

{

S_input(num,6,"输入货物编号(按‘0'返回菜单界面):");

flag=0;

if (strcmp(num,"0")==0) return;

s=L->next;

while (s) /*查询货物编号是否存在,若存在,要去输入新编号*/

{

if (strcmp(s->data.numbs,num)==0)

{

flag=1;

break;

}

s=s->next;

}

if (flag)

{

getchar();

printf("货物编号:%s已存在,是否要重新输入?(y/n)",num);

scanf("%c",&ch);

if(ch=='y'||ch=='Y')

continue;

else

return;

}

else

break;

}

p=(Node *)malloc(sizeof(Node));

if (!p)

{

printf("n没有申请到");

return; /*返回到主界面*/

}

strcpy(p->data.numbs,num);

S_input(p->data.name,8,"名称:");

p->data.purchase=Num_input("进价:");

p->data.sales=Num_input("售价:");

S_input(p->data.place,6,"产地:");

p->data.Date.year=Num_input("成产日期:年:");

p->data.Date.mouth=Mou_input(" 月:");

p->data.Date.day=Day_input(" 日:",p->data.Date.year,p->data.Date.mouth);

p->data.days=Num_input("保质期(天):");

p->data.stock=Num_input("库存:");

p->data.salesnumb=Num_input("销量:");

p->data.income=00;

p->next=r->next;

r->next=p; /*前插*/

}

return ;

}

int select(int a,int b) /*菜单选择*/

{

int n;

do

{

printf("nn");

printf("%15s"," ");

printf("请输入一个数(%d~%d): [ ]bb",a,b);

scanf("%d",&n);

} while (n<a||n>b);

return n;

}

/*实时计算实际收益*/

void Sum_Income(Link L)

{

Node *p;

p=L->next;

while (p)

{

p->data.income=p->data.salesnumb*(p->data.sales-p->data.purchase);

p=p->next;

}

incomflag=1;

return ;

}

/*查询的通用方法*/

void Sea_by_ways(Link L,Node *p,char s[])

{

if (p)

{

if (strcmp(zg,s)==0)

{

printheader_zg();

printdata_zg(p);

printf(END_zg);

printf("按任意键返回...");

getchar();

}

else

{

printheader_pt();

printdata_pt(p);

printf(END_pt);

printf("按任意键返回...");

getchar();

}

}

else

{

Nofind();

getchar();

}

}

/*按编号或货物名称查询*/

void Sea_by_name(Link L,char s[])

{

Node *p;

char ss[20];

system("cls");

S_input(ss,10,"请输入要查找的货物名称:");

p=Locate(L,ss,"name");

Sea_by_ways(L,p,s);

}

void Sea_by_num(Link L,char s[])

{

Node *p;

char ss[20];

system("cls");

S_input(ss,10,"请输入要查找的货物编号:");

p=Locate(L,ss,"num");

Sea_by_ways(L,p,s);

}

/*日期相对于本年的天数*/

int Sum_day(int year,int mouth,int day)

{

int i,flag,days,sum=0;

flag=Year_pd(year);

for (i=1;i<mouth;i++)

{

days=Day_pd(i,flag);

sum+=days;

}

return sum+day;

}

/*两个日期差值*/

void Datecha(Link L)

{

int year,mouth,day;

Node *p;

p=L->next;

year=Num_input("今天日期:年:");

mouth=Mou_input("月:");

day=Day_input("日:",year,mouth);

dateflag=1;

if (!p)

{

printf("***无货物信息,不用输入日期***n");

getchar();

return ;

}

else

{

while (p)

{

p->data.datecha=Sum_day(year,mouth,day)-Sum_day(p->data.Date.year,p->data.Date.mouth,p->data.Date.day);

p=p->next;

}

}

}

void Dz_by_data( Link L)

{

Node *p,*r;

Link l;

int year,mouth,day,count=0;

p=L->next;

l=(Node *)malloc(sizeof(Node));

l->next=NULL;

system("cls");

if (!dateflag)

{

Datecha(L);

}

printf("| 编号 | 名称 |过期差值|n");

while (p)

{

printf("|%-6s|%-8s| %4d |",p->data.numbs,p->data.name,p->data.datecha);

if (p->data.days>=p->data.datecha)

{

/*优惠的标示优惠*/

if (p->data.days-p->data.datecha<=10)

{

count++;

p->data.sales=p->data.sales/2;

printf("已优惠n");

/* Ltol(l,p,p->next);*/

}

else

{

printf("n");

}

}

else

{

printf("该商品过期,请删除n");

}

p=p->next;

}

if(!count)

{

printf("/n***没有差10天过期的货物***/n");

getchar();

return;

}

else

{

printf("共有%d中商品打折",count);

yhflag=1;

saveflag=1;

Disp(L,zg);

}

}

/*删除*/

void Del_by_ways(Link L,Node *p)

{

Node *q;

char ch;

if (p)

{

q=L;

while(q->next!=p)

q=q->next;

printheader_zg();

printdata_zg(p);

printf(END_zg);

getchar();

printf("请确定是否要删除该货物信息(y/n):");

scanf("%c",&ch);

if (ch=='y'||ch=='Y')

{

q->next=p->next;

free(p);

printf("n成功删除该货物信息n");

saveflag=1;

getchar();

return;

}

else

{

printf("n没有删除该货物信息n");

getchar();

return;

}

}

else

{

Nofind();

getchar();

}

}

/*通过名称删除*/

void Del_by_name(Link L)

{

Node *p;

char s[20];

system("cls");

S_input(s,10,"请输入要查删除的货物名称:");

p=Locate(L,s,"name");

Del_by_ways(L,p);

}

/*通过编号删除*/

void Del_by_num(Link L)

{

Node *p;

char s[20];

system("cls");

S_input(s,10,"请输入要查删除的货物的编号:");

p=Locate(L,s,"num");

Del_by_ways(L,p);

}

/*补货信息*/

void Buhuo(Link L)

{

Node *p,*q;

int i=0;

p=L->next;

system("cls");

if (p)

{

q=L->next;

printf("| 编号 | 名称 |库存|销量|剩余| n");

while (q)

{

/*统计库存,销量,剩余*/

printf("|%-8s|%-8s|%-4d|%4d|%4d|n",q->data.numbs,q->data.name,q->data.stock,q->data.salesnumb,q->data.stock-q->data.salesnumb);

q=q->next;

}

while (p)

{

if ((p->data.stock-p->data.salesnumb)<100)

{

if (i==0)

{

printf("需要补货的货物分别是n");

printf("| 编号 |商品名称|n");

}

printf("|%-8s|%8s|n",p->data.numbs,p->data.name);

i++;

}

p=p->next;

}

if (i)

{

printf("共%d种货物n",i);

getchar();

return;

}

else

{

printf("没有需要补充的货物种类n");

getchar();

return;

}

}

else

{

printf("n***没有货物信息***n");

printf("n按任意键返回...n");

getchar();

return ;

}

}

void Sort_by_ways(Link L,char s[],int n)

{

int flag=0,a;

Node *p,*q,*lq,*fq; /*fq记下节点前驱,lq记下节点的后驱,q每次冒泡遍历,p控制遍历,qq用来交换地址*/

p=L->next;

system("cls");

while (p)

{

fq=L;

q=fq->next;

while (lq=q->next)

{

if (strcmp(zg,s)==0)

{

switch (n)

{

case 1:a=strcmp(q->data.name,lq->data.name);break;

case 2:a=strcmp(q->data.numbs,lq->data.numbs);break;

case 3:a=(q->data.salesnumb>lq->data.salesnumb);break;

case 4:if(!incomflag) Sum_Income(L); a=(q->data.income>lq->data.income);break;

case 5:if (!dateflag) Datecha(L);a=(q->data.datecha>lq->data.datecha);break;

}

}

else

{

switch (n)

{

case 1:a=strcmp(q->data.name,lq->data.name);break;

case 2:a=strcmp(q->data.numbs,lq->data.numbs);break;

case 3:a=(q->data.sales>lq->data.sales);break;

case 4:a=(q->data.salesnumb>lq->data.salesnumb);break;

case 5:if (!dateflag) Datecha(L);a=(q->data.datecha>lq->data.datecha);break;

}

}

/*if ((n==1)?(strcmp(q->data.name,lq->data.name)):(strcmp(q->data.numbs,q->data.numbs)))*/

if(a>0)

{

flag=1;

q->next=lq->next;

lq->next=q;

fq->next=lq;

}

fq=fq->next;

q=fq->next;

}

if(flag==0) break;

p=p->next;

}

if (strcmp(zg,s)==0)

Disp(L,zg);

else

Disp(L,pt);

}

void Wb_Save(Link L)

{

FILE *out;

Node *p;

int count=0;

if ((out=fopen("d:Goods.txt","w"))==NULL)

{

printf("打开文件失败!n");

getchar();

return;

}

p=L->next;

fprintf(out,HEADER1_zg);

fprintf(out,HEADER2_zg);

fprintf(out,HEADER3_zg);

while (p)

{

fprintf(out,FORMAT_zg,DATA_zg);

p=p->next;

fprintf(out,HEADER3_zg);

count++;

}

if (count>0)

{

getchar();

printf("nnn***文本文件保存完成,共%d条货物信息保存***n",count);

getchar();

saveflag=0;

}

else

{

system("cls");

printf("没有货物信息,没有货物信息保存n");

getchar();

}

fclose(out); /*关闭此文件*/

}

void Er_Save(Link L)

{

FILE *out;

Node *p;

int count=0;

if ((out=fopen("d:Goods","wb"))==NULL)

{

printf("打开文件失败!n");

getchar();

return;

}

p=L->next;

while (p)

{

if (fwrite(p,sizeof(Node),1,out))

{

p=p->next;

count++;

}

else

{

break;

}

}

if (count>0)

{

getchar();

printf("nnn***二进制文件保存完成,共%d条货物信息保存***n",count);

getchar();

saveflag=0;

}

else

{

system("cls");

printf("没有货物信息,没有货物信息保存n");

getchar();

}

fclose(out); /*关闭此文件*/

}

void Menu_sort_zg()

{

system("cls");

printf("nnn");

printf("%30s%s"," "," 排序货物信息 nn");

printf("%30s%s"," ","********功能*******nn");

printf("%30s%s"," ","* 1.按名称 *nn");

printf("%30s%s"," ","* 2.按编号 *nn");

printf("%30s%s"," ","* 3.按销量*nn");

printf("%30s%s"," ","* 4.按利润*nn");

printf("%30s%s"," ","* 5.按保期 *nn");

printf("%30s%s"," ","* 6.返回 *nn");

printf("%30s%s"," ","* 7.退出 *nn");

printf("%30s%s"," ","********************n");

}

void Menu_sort_pt()

{

system("cls");

printf("nnn");

printf("%30s%s"," "," 排序货物信息 nn");

printf("%30s%s"," ","********功能*******nn");

printf("%30s%s"," ","* 1.按名称 *nn");

printf("%30s%s"," ","* 2.按编号 *nn");

printf("%30s%s"," ","* 3.按售价 *nn");

printf("%30s%s"," ","* 4.按销量 *nn");

printf("%30s%s"," ","* 5.按保期 *nn");

printf("%30s%s"," ","* 6.返回 *nn");

printf("%30s%s"," ","* 7.退出 *nn");

printf("%30s%s"," ","********************n");

}

void Menu_del()

{

system("cls");

printf("nnn");

printf("%30s%s"," "," 删除货物信息 nn");

printf("%30s%s"," ","********功能*******nn");

printf("%30s%s"," ","* 1.按名称 *nn");

printf("%30s%s"," ","* 2.按编号 *nn");

printf("%30s%s"," ","* 3.返回 *nn");

printf("%30s%s"," ","* 4.退出 *nn");

printf("%30s%s"," ","********************n");

}

void Menu_Sea()

{

system("cls");

printf("nnn");

printf("%30s%s"," "," 查询货物信息 nn");

printf("%30s%s"," ","********功能*******nn");

printf("%30s%s"," ","* 1.按名称 *nn");

printf("%30s%s"," ","* 2.按编号 *nn");

printf("%30s%s"," ","* 3.返回 *nn");

printf("%30s%s"," ","* 4.退出 *nn");

printf("%30s%s"," ","********************n");

}

void Menu_Qx() /*权限菜单*/

{

system("cls");

printf("nnn");

printf("%25s%s"," "," 欢迎进入 n");

printf("%25s%s"," "," 货物管理体统 nnn");

printf("%25s%s"," ","**********功能*********nn");

printf("%25s%s"," ","* 1.主管 *nn");

printf("%25s%s"," ","* 2.普通用户 *nn");

printf("%25s%s"," ","* 3.退出 *nn");

printf("%25s%s"," ","***********************n");

}

void Menu_zg() /*主管菜单*/

{

system("cls");

printf("nnn");

printf("%15s%s"," "," 货物管理体统 nnn");

printf("%15s%s"," ","*****************主管功能******************nn");

printf("%15s%s"," ","* 1.录入货物信息 *n");

printf("%15s%s"," ","* 2.删除货物信息 *n");

printf("%15s%s"," ","* 3.查找货物信息 *n");

printf("%15s%s"," ","* 4.显示货物信息 *n");

printf("%15s%s"," ","* 5.差10天过物信息(促销) *n");

printf("%15s%s"," ","* 6.统计货物数量(补货) *n");

printf("%15s%s"," ","* 7.实时收益 *n");

printf("%15s%s"," ","* 9.排序日期差 *n");

printf("%15s%s"," ","* 10.保存文件 *n");

printf("%15s%s"," ","* 11.返回 *n");

printf("%15s%s"," ","* 12.退出 *n");

printf("%15s%s"," ","*******************************************n");

}

void Menu_pt() /*普通菜单*/

{

printf("%15s%s"," "," 货物管理体统 nnn");

printf("%15s%s"," ","*****************普通用户功能***************nn");

printf("%15s%s"," ","* 1.查找货物信息 *n");

printf("%15s%s"," ","* 2.显示货物信息 *n");

printf("%15s%s"," ","* 3.排序货物销量 *n");

printf("%15s%s"," ","* 4.返回 *n");

printf("%15s%s"," ","* 5.退出 *n");

printf("%15s%s"," ","*************************************************n");

}

void Isaveflag(Link L)

{

char ch;

if (saveflag)

{

printf("您已经修改数据了,是否要保存退出(y/n):");

getchar();

scanf("%c",&ch);

if (ch=='y'||ch=='Y')

{

Wb_Save(L);

Er_Save(L);

exit(0);

}

else

exit(0);

}

else

exit(0);

}

int IsPassword() /*密码是否通过*/

{

char password[7];

char mypassword[]="123456";

static int n=3;

int i;

system("cls");

for (;n>0;n--)

{

switch(n)

{

case 1:

case 2: printf("密码错误,您还有%d次机会,请再输入:",n);break;

case 3: printf("请输入6位进入主管功能的密码:");getchar();break;

}

for ( i=0;i<6;i++)

{

password[i]=getch();

printf("*");

}

getchar();

password[6]='';

if (strcmp(mypassword,password)==0)

{

printf("***密码正确***");

getchar();

return 1;

}

}

printf("恭喜你,三次都输错了,无法再输入密码,按任意键返回...");

getchar();

return 0;

}

void Sort_goods(Link L,char s[])

{

if (!L->next)

{

system("cls");

printf("n没有货物信息,无法使用排序功能n");

getchar();

return;

}

else

{

if (strcmp(zg,s)==0)

{

system("cls");

for (;;)

{

Menu_sort_zg();

switch(select(1,7))

{

case 1:Sort_by_ways(L,zg,1);break; /*名称*/

case 2:Sort_by_ways(L,zg,2);break; /*编号*/

case 3:Sort_by_ways(L,zg,3);break; /*销量*/

case 4:Sort_by_ways(L,zg,4);break; /*利润*/

case 5:Sort_by_ways(L,zg,5);break; /*保期*/

case 6:return;break;

case 7:Isaveflag(L);break;

}

getchar();

}

}

else

{

system("cls");

for (;;)

{

Menu_sort_pt();

switch(select(1,7))

{

case 1:Sort_by_ways(L,pt,1);break; /*名称*/

case 2:Sort_by_ways(L,pt,2);break; /*编号*/

case 3:Sort_by_ways(L,pt,3);break; /*售价*/

case 4:Sort_by_ways(L,pt,4);break; /*销量*/

case 5:Sort_by_ways(L,pt,5);break; /*销量*/

case 6:return;break;

case 7:Isaveflag(L);break;

}

getchar();

}

}

}

}

void Sea_goods(Link L,char s[])

{

if (!L->next)

{

system("cls");

printf("n***没有货物记录,不能进入查询功能***n");

return ;

}

else

{

system("cls");

for (;;)

{

Menu_Sea();

switch(select(1,4))

{

case 1:Sea_by_name(L,s);break;

case 2:Sea_by_num(L,s);break;

case 3:return;break;

case 4:Isaveflag(L);break;

}

getchar();

}

}

}

void Del_goods(Link L)

{

if (!L->next)

{

system("cls");

printf("n***没有货物记录,不能使用删除功能***n");

return ;

}

else

{

system("cls");

for (;;)

{

Menu_del();

switch (select(1,4))

{

case 1:Del_by_name(L);break;

case 2:Del_by_num(L);break;

case 3:return;break;

case 4:Isaveflag(L);break;

}

getchar();

}

}

}

void main_zg(Link L) /*主管功能*/

{

system("cls");

for (;;)

{

Menu_zg();

switch (select(1,12))

{

case 1:Add_goods(L);saveflag=1;break; /*增加货物信息*/

case 2:Del_goods(L);break; /*删除学生信息*/

case 3:Sea_goods(L,zg);break; /*按编号名字查询*/

case 4:system("cls");Disp(L,zg);break;

case 5:Dz_by_data(L);break;

case 6:Buhuo(L);break;

case 7:Disp(L,zg);Sum_Income(L);Disp(L,zg);break;

case 9:Sort_goods(L,zg);break;

case 10:Wb_Save(L);Er_Save(L);break;

case 11:return;break;

case 12:Isaveflag(L);break;

}

getchar();

}

}

void main_pt(Link L) /*普通功能*/

{

system("cls");

for (;;)

{

Menu_pt();

switch (select(1,5))

{

case 1:Sea_goods(L,pt);break; /*按编号名字查询*/

case 2:system("cls");Disp(L,pt);break;

case 3:Sort_goods(L,pt);break;

case 4:return;break;

case 5:Isaveflag(L);break;

}

getchar();

system("cls");

}

}

int main()

{

Link L;

FILE *in;

Node *p,*r;

int count=0;

L=(Node *)malloc(sizeof(Node));

L->next=NULL;

r=L;

if ((in=fopen("d:Goods","ab+"))==NULL) /*以追加方式打开二进制文件*/

{

printf("n***打开文件失败***n");

exit(0);

}

while (!feof(in))

{

p=(Node *)malloc(sizeof(Node));

if (fread(p,sizeof(Node),1,in))

{

p->next=r->next;

r->next=p;

count++;

}

}

fclose(in);

for (;;)

{

Menu_Qx();

switch (select(1,3))

{

case 1:if(IsPassword())

{

main_zg(L);

}

break;

case 2:main_pt(L);break;

case 3:Isaveflag(L);break;

}

getchar();

}

return 0;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C语言学习
热门C语言学习
编程开发子分类