精简版的杂志订阅管理系统

当时的c语言作业,里边的bug可以联系我修改

这里是引用

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
typedef struct a
{
char name[20];
double price;
char type[20];
struct a* next;
}a;
typedef struct b
{
char number1[20];
char number2[20];
int amount;
double price;
struct b* next;
}b;
aadda();
b
addb();
void prna(aheada);
void prnb(b
headb);
void search(ahead);
void del(a
head);
void save(aheada);
a
lode();

void main()
{
printf("\t\t\t\t\t欢迎来到杂志订阅管理系统\n");
while(1)
{
aheadkehu=NULL;
a
heada=NULL;
ap1=NULL;
int y,z;
printf("\t\t\t\t\t请问你是?\n\t\t\t\t\t1:管理员\n\t\t\t\t\t2:客户\n\t\t\t\t\t3:退出\n");
scanf("%d",&y);
if(y==1)
{
printf(“请输入密码:”);
char mima[6];
scanf("%s",mima);
if(!(strcmp(mima,“123456”)0))
{
system(“color 01”);
printf("\t\t\t\t\t输入错误,系统强制退出\n");
exit(0);
}
}
switch(y)
{
case 1:
while(1)
{
printf("\t\t\t\t\t请选择功能:\n\t\t\t\t\t1.添加杂志信息\n\t\t\t\t\t2.删除信息\n\t\t\t\t\t3.查找杂志\n\t\t\t\t\t4.保存信息\n\t\t\t\t\t5.退出系统\n\t\t\t\t\t6:清屏\n");
scanf("%d",&z);
switch(z)
{
case 1:
while(1)
{
if(heada
NULL)
{
p1=adda();
heada=p1;
break;
}
else
{
while(1)
{
if(p1->next!=NULL){
p1=p1->next;
break;}
}
p1->next=adda()->next;
break;
}
}
break;
case 2:
del(heada);
break;
case 3:
search(heada);
break;
case 4:
save(heada);
break;
case 5:
printf(“成功退出系统\n”);
exit(0);
case 6:
system(“cls”);
break;
}
}
break;
case 2:
headkehu=lode();
search(headkehu);
break;
case 3:
exit(0);
}
}
}
a
lode()
{
FILEfile=fopen(“data.txt”,“r”);
a
head=(a*)malloc(sizeof(a));
head->next=NULL;
while(!feof(file))
{
ap=(a)malloc(sizeof(a));
fscanf(file,"%s",p->name);
fscanf(file,"%lf",&(p->price));
fscanf(file,"%s",p->type);
p->next=head->next;
head->next=p;
}
fclose(file);
return head;
}
aadda()
{
a
head=(a*)malloc(sizeof(a));
head->next=NULL;
int n,i=0;
printf(“添加几条杂志信息:”);
scanf("%d",&n);
while(i<n)
{
ap=(a)malloc(sizeof(a));
printf(“请输入第%d本杂志名字:”,i+1);
scanf("%s",p->name);
printf(“请输入第%d本杂志价格:”,i+1);
scanf("%lf",&(p->price));
printf(“请输入第%d本杂志类型:”,i+1);
scanf("%s",p->type);
p->next=head->next;
head->next=p;
i++;
}
return head;
}
void save(aheada)
{
FILE file=fopen(“data.txt”,“w”);
a
p=heada->next;
while(p!=NULL)
{
fprintf(file,"%s\t",p->name);
fprintf(file,"%.2lf\t",p->price);
fprintf(file,"%s\n",p->type);
p=p->next;
}
fclose(file);
printf(“保存成功”);
}
b
addb()
{
bhead=(b)malloc(sizeof(b));
head->next=NULL;
int n,i=0;
printf(“添加几条客户信息”);
scanf("%d",&n);
while(i<n)
{
bp=(b)malloc(sizeof(b));
printf(“请输入客户编号:”);
scanf("%s",p->number1);
printf(“请输入杂志编号:”);
scanf("%s",p->number2);
printf(“请输入杂志数量:”);
scanf("%d",&(p->amount));
printf(“请输入订阅总价:”);
scanf("%lf",&(p->price));
p->next=head->next;
head->next=p;
i++;
}
return head;
}
void del(ahead)
{
a
p1=head->next;
ap2=head->next;
char name[20];
printf(“请输入要删除的杂志名:”);
scanf("%s",name);
while(p1!=NULL)
{
if(strcmp(p1->name,name)0)
break;
else
p1=p1->next;
}
if(p1
NULL)
printf(“此书不存在”);
while(p2!=NULL)
{
if(p2->next==p1)
{
p2->next=p1->next;
break;
}
else
p2=p2->next;
}
}
void search(a
head)
{
int n;
char name[20];
double price;
char type[20];
printf(“请输入查询方式 1:按名字 2:按价格 3:按类型:”);
scanf("%d",&n);
ap=head->next;
switch(n)
{
case 1:
printf(“请输入杂志名字:”);
scanf("%s",name);
while(p!=NULL)
{
if(strcmp(p->name,name)0)
{
printf("%s\t",p->name);
printf("%.2lf\t",p->price);
printf("%s\n",p->type);
break;
}
else
p=p->next;
if(p
NULL)
printf(“很遗憾,没有找到”);
}
break;
case 2:
p=head->next;
printf(“请输入杂志价格:”);
scanf("%lf",&price);
while(p!=NULL)
{
if(p->priceprice)
{
printf("%s\t",p->name);
printf("%.2lf\t",p->price);
printf("%s\n",p->type);
p=p->next;
continue;
}
else
p=p->next;
if(p
NULL)
printf(“很遗憾,没有找到”);
}
break;
case 3:
p=head->next;
printf(“请输入杂志类别:”);
scanf("%s",type);
while(p!=NULL)
{
if(strcmp(p->type,type)0)
{
printf("%s\t",p->name);
printf("%.2lf\t",p->price);
printf("%s\n",p->type);
p=p->next;
continue;
}
else
p=p->next;
if(p
NULL)
printf(“很遗憾,没有找到”);
}
break;
}
}
void prna(a
heada)
{
ap=heada->next;
while(p!=NULL)
{
printf("%s\t",p->name);
printf("%.2lf\t",p->price);
printf("%s\n",p->type);
p=p->next;
}
}
void prnb(b
headb)
{
b*p=headb->next;
while(p!=NULL)
{
printf("%s\t",p->number1);
printf("%s\t",p->number2);
printf("%d\t",p->amount);
printf("%.2lf\n",p->price);
p=p->next;
}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值