#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include "jiemian 1.c"
#include "jiemian 2.c"
#include "lianjie.c"
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")
struct user
{
char name[20];
char password[20];
};
typedef struct wpxx
{
char mz[10];//名字
char bh[5];//编号
char jg[5];//价格
char fl[8];//分类
char gqrq[9];//过期日期
struct wpxx *next;
}w;
/*w *wenjianjiegouzhizheng(char *a);
void save(w *h,char *a);
void jiemian1()
{
system("color E9");
printf(" ****************************\n");
printf(" *** ***\n");
printf(" ** 欢迎使用 **\n");
printf(" * 个人物品管理程序 *\n");
printf(" *** ***\n");
printf(" ****************************\n");
printf("------------------------------------------------------------------------------------------------------------------------\n");
printf("------------------------------------------------------------------------------------------------------------------------\n");
printf(" 1.登录\n");
printf("\n");
printf(" 2.注册\n");
printf("\n");
printf(" 3.退出\n");
printf("请选择以上操作(多数字时默认第一个数字操作):");
}
void zhu_ce()
{
FILE *fp;
struct user wo;
int i=0;
if((fp=fopen("passworld.txt","a+"))==NULL)
exit(0);
printf("请输入新账号:");
scanf("%s",wo.name);
printf("请输入十位数以内的密码:");
scanf("%s",wo.password);
fprintf(fp,"%s %s\n",wo.name,wo.password);
printf("\n");
printf("\n");
system("cls");
fclose(fp);
system("color 61");
printf("恭喜你成功创建账号\n");
}
int Login(char *a)
{
system("color ED");
struct user su;
FILE *fp;
int i=0;
char usr[30],usr1[30],p[30];
int check=0;
printf("请输入账号名称 :");
scanf("%s",su.name);
printf("请输入登录密码 :");
scanf("%s",su.password);
strcpy(usr,su.name);
strcat(usr," ");
strcat(usr,su.password);
strcat(usr,"\n");
if((fp=fopen("passworld.txt","r"))==NULL)
{
printf("还未注册");
exit(0);
}
while(!feof(fp))
{
fgets(usr1,30,fp);
if(strcmp(usr,usr1)==0)
{
check=1;break;
}
}
if(fclose(fp))
{
printf("Can not close the file\n");
exit(0);
}
if(check==1)
{
printf("\n 恭喜你,登陆成功 !\n");
strcpy(a,su.name);
return 1;
}
else
{
system("color 47");
printf("\n 用户名或密码错误,请重新登陆 \n");
return 0;
}
}
void jiemian2(char *a)
{
int i;
int flag=0;
while(1)
{
system("cls");
system("color E9");
printf("1.录入物品信息 2.修改物品信息\n");
printf("3.删除物品信息 4.查找物品信息\n");
printf("5.分类物品 6.即将过期物品\n");
printf("7.统计物品 8.退回主页面\n");
printf("请选择操作:");
scanf("%d",&i);
switch(i)
{
case 1:luruxingxi(a);break;
case 2:xiugai(a);break;
case 3:deletew(a);break;
case 4:chazhao(a);break;
case 5:fenlei(a);break;
case 6:guoqi(a);break;
case 7:tongji(a);break;
case 8:
system("cls");jiemian1();flag=1; break;
}
if(flag)
{
flag=0;
break;
}
}
}
void save(w *h,char *a)//保存数据到账户文件
{
FILE *fp;
w *p;
char wp[20];
strcpy(wp,a);
strcat(wp,".txt");
if((fp=fopen(wp,"wb"))==NULL)
{
printf(" Can't open the file!\n");
exit(0);
}
p=h;
while(p!=NULL)
{
fwrite(p,sizeof(w),1,fp);
p=p->next;
}
fclose(fp);
}
w *wenjianjiegouzhizheng(char *a)//返回保存数据的指针位置
{
w *p,*q,*h=NULL;char ch;
FILE *fp;char ming[20];
strcpy(ming,a);
system("cls");
strcat(ming,".txt");
if((fp=fopen(ming,"ab+"))==NULL)
{
printf(" Can't open the file!\n");
exit(1);
}
p=(w *)malloc(sizeof(w));
h=p;
ch=fgetc(fp);
if(ch==EOF)
{
h=NULL;
p->next=NULL;
return h;
}
rewind(fp);
while(!feof(fp))
{
if(fread(p,sizeof(w),1,fp)!=1)
break;
p->next=(w *)malloc(sizeof(w));
if(!p->next)
{
printf(" Memory overflow!\n");
return h;
}
q=p;
p=p->next;
}
q->next=NULL;
fclose(fp);
return h;
}
void luruxingxi(char *a)
{
FILE *fp;
w *p,*q,*s,*head;
int c=1;
system("color 71");
head=wenjianjiegouzhizheng(a);
p=head;
q=p;
s=(w*)malloc(sizeof(w));
printf("输入想录入的物品名字:");
scanf("%s",s->mz);
while(c==1)
{
while(p!=NULL)
{
if(strcmp(s->mz,p->mz)==0)
{
break;
}
p=p->next;
}
if(p!=NULL)
{
printf("该物品信息已存在 T_T ,请重新输入物品:");
scanf("%s",s->mz);
p=head;
}
else
{
c=2;
p=head;
//出错
}
}
printf("继续输入物品编号");
scanf("%s",s->bh);
while(c==2)
{
while(p!=NULL)
{
if(strcmp(s->bh,p->bh)==0)
break;
p=p->next;
}
if(p!=NULL)
{
printf("该物品编号已存在,请重新输入物品编号:");
scanf("%s",s->bh);
p=head;
}
else
{
c=3;
p=head;
//出错
}
}
printf("继续输入物品价格:");
scanf("%s",s->jg);
printf("继续输入物品分类:");
scanf("%s",s->fl);
printf("继续输入物品过期日期:");
scanf("%s",s->gqrq);
s->next=NULL;
if(q==NULL)
{
save(s,a);
}
else
{
while(q->next!=NULL)
q=q->next;
q->next=s;
save(head,a);
}
printf("录入成功 ╰( ̄▽ ̄)╭╰( ̄▽ ̄)╭ ╰( ̄▽ ̄)╭ \n正在返回界面,请稍等...(╯-_-)╯╧╧");
Sleep(3000);
}
void deletew(char *a)
{
int c=1,i=0,j=0;
char s[10];
system("color 72");
w *p,*q,*head=wenjianjiegouzhizheng(a);
while(c==1)
{
p=head;
printf("请输入要删除的物品名:");
scanf("%s",s);
while(p!=NULL)
{
i++;
if(strcmp(p->mz,s)==0)
break;
p=p->next;
}
if(p!=NULL)
{
c=2;
}
else
printf("无此数据\n");
}
if(c==2)
{
if(i==1)
{
head=head->next;
free(p);
}
else
{
p=head;
while(p->next&&j<i-2)
{
p=p->next;
j++;
}
if(!(p->next)||j>i-1)
exit(0);
q=p->next;
p->next=q->next;
free(q);
}
save(head,a);
printf("删除成功 (^O^) (^O^) (^O^) \n正在返回界面,请稍等... (╯-_-)╯╧╧");
Sleep(3000);
}
}
void chazhao(char *a)
{
char q[20];
w *p,*head;
system("color 74");
printf("请输入要找的物品");
scanf("%s",q);
head=wenjianjiegouzhizheng(a);
p=head;
while(p!=NULL)
{