c语言编程购物管理系统,C语言一个简单的商店管理系统

/*数据结构:*/

struct shangpin

{

char name[100];

char bianhao;

float jinjia;

float shoujia;

int kuchun;

struct shangpin *next;

}

/*主模块:*/

#include

#include

#include

#include

#define LEN sizeof(struct shangpin)

main()

{

struct shangpin * ins(struct shangpin *);

struct shangpin * del(struct shangpin *);

void quer(struct shangpin *);

void disp(struct shangpin *);

void savef(struct shangpin *);

void quit(struct shangpin *);

void menu(void);

struct shangpin* init(struct shangpin*);

struct shangpin *head=NULL;

int cho;head=init(head);

while(1)

{

menu();

do

{

printf("please input selection:");

scanf("%d",&cho);

}while(cho<1||cho>6);

switch(cho)

{

case 1:head=ins(head);break;

case 2:head=del(head);break;

case 3:quer(head);break;

case 4:disp(head);break;

case 5:savef(head);break;

case 6:quit(head);

}

}

}

/*初始化模块*/

struct shangpin* init(struct shangpin* head)

{

FILE *fp;    /*文件指针*/

struct shangpin *prev,*cur;

if((fp=fopen("aaa.txt","r"))==NULL)  /*打开失败*/

{

printf("can't open file aaa.txt\n");

getch();

return 0;

}

if(feof(fp))

return(NULL);

cur=(struct shangpin *)malloc(LEN);

fscanf(fp,"%s%c%f%f%d",cur->name,&cur->bianhao,&cur->jinjia,&cur->shoujia,&cur->kuchun);

head=cur;

prev=cur;

while(!feof(fp))

{

cur=(struct shangpin *)malloc(LEN);

fscanf(fp,"%s%c%f%f%d",cur->name,&cur->bianhao,&cur->jinjia,&cur->shoujia,&cur->kuchun);

prev->next=cur;

prev=cur;

}

prev->next=NULL;

return(head);

}

/*菜单模块*/

void menu(void)

{

void pristr(void);

clrscr(); /*清屏*/

pristr();

pristr();

printf("  shangpin C manage system \n\n\n");

printf(" 1: insert a shangpin\n");

printf(" 2: delete a shangpin\n");

printf(" 3: find a shangpin\n");

printf(" 4: display all shangpin\n");

printf(" 5: save record\n");

printf(" 6: exit system\n");

pristr();

pristr();

printf("\n\n\n");

}

void pristr(void)

{

printf("-*-*-*-*-*-*=*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n");

}

/*录入模块*/

struct shangpin * ins(struct shangpin *head)

{

struct shangpin *newn,*t1;

newn=(struct shangpin *)malloc(LEN);

printf("please input the shangpin's information \n");

scanf("%s%c%f%f%d",newn->name,&newn->bianhao,&newn->jinjia,&newn->shoujia,&newn->kuchun);

if(head==NULL)

{

head=newn;

newn->next=NULL;

}

else

{

t1=head;

while(t1->next!=NULL)

t1=t1->next;

t1->next=newn;

newn->next=NULL;

}

return(head);

}

/*删除模块*/

struct shangpin * del(struct shangpin *head)

{

struct shangpin *prev,*cur;

char name[100];

int flag=0;

printf("\nplease input the name:");

scanf("%s",name);

if(head==NULL)

printf("empry chat\n");

else if(strcmp(head->name,name)==0)

{

cur=head;

head=head->next;

free(cur);

flag=1;

}

else

{

cur=head->next;

prev=head;

while(cur!=NULL)

if(strcmp(cur->name,name)==0)

{

prev->next=cur->next;

free(cur);

flag=1;

break;

}

else

{

prev=cur;

cur=cur->next;

}

}

if(flag==1)

printf("\nthe node is deleted\n");

else

printf("\n the node is not existed\n");

getch();

return(head);

}

/*查询模块*/

void quer(struct shangpin *head)

{

struct shangpin *t=head;

char name[100];

int flag=0;

printf("\nplease input the name:");

scanf("%s",name);

while(t!=NULL)

if(strcmp(t->name,name)==0)

{

flag=1;

break;

}

else

t=t->next;

if(flag==1)

{

printf("the node is found\n");

printf("name:%s,bianhao:%c,jinjia:%f,shoujia:%f,kuchun:%d\n",t->name,t->bianhao,t->jinjia,t->shoujia,t->kuchun);

}

else

printf("  the node is no found\n");

getch();

}

/*显示模块*/

void disp(struct shangpin *head)

{

struct shangpin *t1;

if(head==NULL)

{

printf("empty chart\n");

getch();

return;

}

else

{

for(t1=head;t1!=NULL;t1=t1->next)

printf("%s,%c,%f,%f,%d",t1->name,t1->bianhao,t1->jinjia,t1->shoujia,t1->kuchun);

getch();

}

}

/*存盘模块*/

void savef(struct shangpin *head)

{

char s[100];

FILE *fp;

struct shangpin *node=head;

printf("please input file name:\n");

scanf("%s",s);

if((fp=fopen(s,"w"))==NULL)

{

printf("can't open file\n");

getch();

return;

}

while(node!=NULL)

{

fprintf(fp,"%s,%c,%f,%f,%d",node->name,node->bianhao,node->jinjia,node->shoujia,node->kuchun);

node=node->next;

}

fclose(fp);

}

/*退出模块*/

void quit(struct shangpin *head)

{

char c;

printf("save the result,y or n?\n");

scanf(" %c",&c);

if(c=='y')

savef(head);

printf("now exit the manage system\n");

getch();

exit(0);

}

注:这个程序还有一个错误,可是我不知道怎么弄了,很久没有写C语言程序了,有一年多了,很多都不记得了,还请高手指导一两……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值