#include <stdio.h> #include <stdlib.h> #include <string.h>
typedef struct phone{ ?? ?int number; ?? ?char name[30]; ?? ?int price; ?? ?int num; ?? ?struct phone *next; } myphone;
myphone *head,*p,*p1,*p2; int n =0;
void myadd(){ ?? ?p1 = (myphone*)malloc(sizeof(myphone)); ?? ?if(n == 0){ ?? ??? ?head = p1; ?? ?}else{ ?? ??? ?p2->next = p1; ?? ?} ?? ?system("cls"); ?? ?printf("请输入手机基本信息:\n手机编号:"); ?? ?scanf("%d",&p1->number); ?? ?printf("手机名:"); ?? ?scanf("%s",&p1->name); ?? ?printf("手机价格:"); ?? ?scanf("%d",&p1->price); ?? ?printf("库存数量:"); ?? ?scanf("%d",&p1->num); ?? ?p2 = p1; ?? ?p2->next = NULL; ?? ?n += 1; ?? ?system("pause"); ?? ?system("cls");?? ? }
void myshow(){ ?? ?if(n!=0){ ?? ??? ?p = head; ?? ??? ?system("cls"); ?? ??? ?printf("编号\t手机名\t价格\t库存数量\n"); ?? ??? ?do{ ?? ??? ??? ?printf("%-8d%-8s%-8d%-8d\n",p->number,p->name,p->price,p->num); ?? ??? ??? ?p = p->next; ?? ??? ?}while(p!=NULL); ?? ?}else{ ?? ??? ?printf("还没添加手机信心!\n"); ?? ?}? ?? ?system("pause"); ?? ?system("cls"); }
void mysave(){ ?? ?FILE *fp; ?? ?myphone *p; ?? ?if((fp=fopen("data.txt","wb"))==NULL) ?? ?{ ?? ??? ?printf("不能打开文件!");? ?? ?} ?? ?p = head; ?? ?if(p==NULL) ?? ?{ ?? ??? ?printf("保存内容不能为空!\n"); ?? ?}else{ ?? ??? ?while(p!= NULL){ ?? ??? ??? ?if(fwrite(p,sizeof(myphone),1,fp)!= 1){ ?? ??? ??? ??? ?printf("写入手机信息出错\n"); ?? ??? ??? ??? ?fclose(fp); ?? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ??? ?p = p->next; ?? ??? ?} ?? ??? ?fclose(fp); ?? ??? ?printf("手机信息存储完成\n");? ?? ?}? ?? ?system("pause"); ?? ?system("cls"); }
void myread(){ ?? ?FILE *fp; ?? ?if((fp=fopen("data.txt","rb+"))==NULL) ?? ?{ ?? ??? ?printf("不能打开文件!");? ?? ??? ?exit(0); ?? ?} ?? ? ?? ?do{ ?? ??? ?p1 = malloc(sizeof(myphone)); ?? ??? ?if(n==0){ ?? ??? ??? ?head = p1; ?? ??? ?}else{ ?? ??? ??? ?p2->next = p1; ?? ??? ?} ?? ??? ?fread(p1,sizeof(myphone),1,fp); ?? ??? ?p2= p1; ?? ??? ?n+=1; ?? ?}while(p2->next!=NULL); ?? ?fclose(fp); ?? ?printf("手机信息读取完成!\n"); ?? ?system("pause") ; ?? ?system("cls"); }
void findprice(){ ?? ?int myprice1,myprice2; ?? ?printf("请输入要买手机的最高价格:"); ?? ?scanf("%d",&myprice1); ?? ?printf("请输入要买手机的最低价格:"); ?? ?scanf("%d",&myprice2); ?? ? ?? ?p = head; ?? ?do{ ?? ??? ?if(p->price>=myprice2 && p->price<=myprice1) ?? ??? ?{ ?? ??? ??? ?printf("编号\t手机名\t价格\t库存数量\n"); ?? ??? ??? ?printf("%-8d%-8s%-8d%-8d\n",p->number,p->name,p->price,p->num); ?? ??? ?} ?? ??? ?p = p->next; ?? ?}while(p!=NULL); ?? ?system("pause"); ?? ?system("cls");?? ? }
void findnumber(){ ?? ?int mynumber; ?? ?printf("请输入要买手机的编号:"); ?? ?scanf("%d",&mynumber); ?? ? ?? ?p = head; ?? ?do{ ?? ??? ?if(p->number == mynumber) ?? ??? ?{ ?? ??? ??? ?printf("编号\t手机名\t价格\t库存数量\n"); ?? ??? ??? ?printf("%-8d%-8s%-8d%-8d\n",p->number,p->name,p->price,p->num); ?? ??? ?} ?? ??? ?p = p->next; ?? ?}while(p!=NULL); ?? ?system("pause"); ?? ?system("cls");?? ? }
void findnum(){ ?? ?int mynum1,mynum2; ?? ?printf("请输入要买手机的最大库存:"); ?? ?scanf("%d",&mynum1); ?? ?printf("请输入要买手机的最小库存:"); ?? ?scanf("%d",&mynum2); ?? ? ?? ?p = head; ?? ?do{ ?? ??? ?if(p->num>=mynum2 && p->num<=mynum1) ?? ??? ?{ ?? ??? ??? ?printf("编号\t手机名\t价格\t库存数量\n"); ?? ??? ??? ?printf("%-8d%-8s%-8d%-8d\n",p->number,p->name,p->price,p->num); ?? ??? ?} ?? ??? ?p = p->next; ?? ?}while(p!=NULL); ?? ?system("pause"); ?? ?system("cls");?? ? }
void findname(){ ?? ?char a[30]; ?? ?printf("请输入要买手机的名称:"); ?? ?scanf("%d",&a); ?? ? ?? ?p = head; ?? ?do{ ?? ??? ?if(strcmp(a,p->name) == 0) ?? ??? ?{ ?? ??? ??? ?printf("编号\t手机名\t价格\t库存数量\n"); ?? ??? ??? ?printf("%-8d%-8s%-8d%-8d\n",p->number,p->name,p->price,p->num); ?? ??? ?} ?? ??? ?p = p->next; ?? ?}while(p!=NULL); ?? ?system("pause"); ?? ?system("cls");?? ? }
void myfind(){ ?? ?if(n!= 0){ ?? ??? ?int a; ?? ??? ?system("cls"); ?? ??? ?printf("1.按价格查找手机信息\n2.按编号查找手机信息\n"); ?? ??? ?printf("3.按库存数量查找手机信息\n4.按手机名查找手机信息\n"); ?? ??? ?printf("请选择操作的项(即输入数字1~4):") ; ?? ??? ?scanf("%d",&a); ?? ??? ?switch(a) ?? ??? ?{ ?? ??? ??? ?case 1: findprice(); ?? ??? ??? ??? ??? ?break; ?? ??? ??? ?case 2: findnumber(); ?? ??? ??? ??? ??? ?break; ?? ??? ??? ?case 3: findnum(); ?? ??? ??? ??? ??? ?break; ?? ??? ??? ?case 4: findname(); ?? ??? ??? ??? ??? ?break; ?? ??? ?} ?? ?}else{ ?? ??? ?printf("还没有手机数据!\n"); ?? ??? ?system("pause") ; ?? ?} }
void mybuy() { ?? ?if(n!=0) ?? ?{ ?? ??? ?int knumber; ?? ??? ?printf("请输入要购买手机的编号:"); ?? ??? ?scanf("%d",&knumber); ?? ??? ?p = head; ?? ??? ?do{ ?? ??? ??? ?if(p->number == knumber){ ?? ??? ??? ??? ?p->num = p->num -1; ?? ??? ??? ??? ?printf("已成功购买编号为%d的手机!\n",knumber); ?? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ??? ?p = p->next; ?? ??? ?}while(p!=NULL); ?? ?}else{ ?? ??? ?printf("还没手机数据信息!\n"); ?? ?} ?? ?system("pause"); ?? ?system("cls"); }
void mydel(){ ?? ?if(n!=0){ ?? ??? ?myphone *f,*l; ?? ??? ?int knumber; ?? ??? ?printf("请输入要删除手机的编号:"); ?? ??? ?scanf("%d",&knumber); ?? ??? ?p = head; ?? ??? ?if(head->number == knumber){ ?? ??? ??? ?f=head; ?? ??? ??? ?head=head->next; ?? ??? ??? ?free(f); ?? ??? ?}else{ ?? ??? ??? ?do{ ?? ??? ??? ??? ?if(p->number == knumber){ ?? ??? ??? ??? ??? ?f = p; ?? ??? ??? ??? ??? ?l->next = p->next; ?? ??? ??? ??? ??? ?free(f); ?? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?l = p; ?? ??? ??? ??? ?p = p->next; ?? ??? ??? ?}while(p!=NULL); ?? ??? ?} ?? ??? ?printf("编号为%d的手机数据信息已被删除!\n",knumber); ?? ?}else{ ?? ??? ?printf("还没有手机数据信息!");? ?? ?} ?? ?system("pause"); ?? ?system("cls"); }
int main(){ ?? ?int myn = 1; ?? ?while(myn != 8){ ?? ??? ?system("cls"); ?? ??? ?printf("===================手机销售管理系统==================\n"); ?? ??? ?printf("===================1.增加手机信息====================\n"); ?? ??? ?printf("===================2.显示全部手机信息================\n"); ?? ??? ?printf("===================3.查找手机信息====================\n"); ?? ??? ?printf("===================4.删除手机信息====================\n"); ?? ??? ?printf("===================5.购买手机功能====================\n"); ?? ??? ?printf("===================6.保存手机信息====================\n"); ?? ??? ?printf("===================7.读取手机信息====================\n"); ?? ??? ?printf("===================8.退出当前系统====================\n"); ?? ??? ?printf("请选择操作的项(即输入数字1~8):\n"); ?? ??? ?scanf("%d",&myn); ?? ??? ?if(myn>0 && myn<9){ ?? ??? ??? ?switch(myn){ ?? ??? ??? ??? ?case 1: myadd(); ?? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?case 2: myshow(); ?? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?case 3: myfind(); ?? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?case 4: mydel(); ?? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?case 5: mybuy(); ?? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?case 6: mysave(); ?? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?case 7: myread(); ?? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ?}else{ ?? ??? ??? ?printf("输入有误,请输入1~8之间都数字,将返回主菜单!\n"); ?? ??? ??? ?system("pause"); ?? ??? ?} ?? ?} }
?
|