c语言图书销售系统(源代码).doc
《c语言图书销售系统(源代码).doc》由会员分享,可在线阅读,更多相关《c语言图书销售系统(源代码).doc(33页珍藏版)》请在咨信网上搜索。
精品文档 #include <stdio.h> #include <string.h> #include <malloc.h> #include <stdlib.h> #include <time.h> #include <conio.h> #define LEN sizeof(struct book) #define VLEN sizeof(struct vip) #define SLEN sizeof(struct sales) struct vip *vhead=NULL; struct vip *v1,*v2; struct sales *shead=NULL; struct sales *s1,*s2; int V,S; /*结构体定义*/ struct book { char bnum [12]; /*书号*/ char bname [41]; /*书名*/ char author [20]; /*作者*/ float price; /*书价*/ int acount; /*书存在本数*/ struct book *next; }; struct sales { float count; struct sales *snext; }; struct vip { char vnum[12]; char vname[41]; int level; float persum; float discount; struct vip *vnext; }; /*函数声明*/ void loadbook(); /*自动读入书库信息*/ void welcome(); /*欢迎界面显示*/ void inputbook(); /*增加书本信息*/ void loadvip(); void loadsales(); /*自动录入销售信息*/ void daysales(); /*日销售额*/ void monthsales(); /*月销售额*/ void yearsales(); /*年销售额*/ void search(); /*查询书数量*/ void search_by_bnum(); /*通过书号查询*/ void search_by_bname(); /*通过书名查询*/ void search_by_author(); /*通过作者查询*/ void buy(); /*购买书籍*/ void list(); /*列出书库信息*/ void listvip(); void listsales(); /*列出销售信息*/ void delet(); /*删除书目*/ void delet_by_bnum(); /*通过书号删除*/ void delet_by_bname(); /*通过书名删除*/ void delet_by_author(); /*通过作者删除*/ void save(); /*保存记录*/ void redef(); /*修改密码*/ void bover(); /*显示已售完的书*/ void buy_by_huiyuan(); /*会员买书*/ void buy_by_feihuiyuan(); /*非会员买书*/ void exit0(); /*退出*/ int menu(); /*主菜单*/ void print2(); /*显示查询菜单*/ void printdelete(); /*显示删除菜单*/ struct book *head=NULL,*head2=NULL; /*head和head2分别用于书库的头指针和已购书的头指针*/ struct book *p1,*p2,*p3,*p4,*p5,*p6; /*p1、p2、p3用于操作书库图书,p4、p5、p6用于操作已购书*/ int save_flag=0; /*图书信息变动标志*/ int buy_flag=0; /*买书时,是否调用过查询功能标志*/ int shan_flag=0; /*删书时,是否调用过显示已售完书功能标志*/ int T=0; /*记录导入的书本数*/ char mima[11]="123456"; /*初始密码*/ void bookmanage(); void salesmanage(); /*销售统计*/ int main() /*主函数*/ { welcome(); /*欢迎界面显示*/ loadbook(); loadsales(); loadvip(); /*自动导入书库信息*/ while(1) { switch(menu()) { case 1:system("cls");bookmanage();break; case 2:system("cls");buy();break; case 3:system("cls");listvip();break; case 4:system("cls");;salesmanage();break; case 5:system("cls");;break; case 0:system("cls");exit0();break; default:{ printf("\n选择错误,请按主菜单提示输入您的正确选择(0~8)\n"); printf("按任意键返回继续:"); rewind(stdin);/*清空缓冲区*/ getch(); } } } return 0; } /*菜单*/ int menu() { int choice; system("cls"); /*系统清屏*/ printf("\n *************************主菜单*************************\n\n"); printf(" 1.图书管理\n\n"); printf(" 2.销售管理\n\n"); printf(" 3.会员管理\n\n"); printf(" 4.销售额统计\n\n"); printf(" 5.说明\n\n"); printf(" 0.退出\n\n\n"); printf("请输入您的选择(0~8):"); rewind(stdin); /*清空缓冲区*/ scanf("%d",&choice); return choice; /*返回用户的选择*/ } void bookmanage() { system("cls"); int choice1; do { printf(" "); /*显示菜单*/ printf(" *************图书管理************* "); printf(" "); printf(" "); printf(" 功能选项: \n"); printf(" 1 : 图书信息录入 \n"); printf(" 2 : 图书信息浏览 \n"); printf(" 3 : 图书信息查询 \n"); printf(" 4 : 图书信息删除 \n"); printf(" 5 : 图书信息保存 \n"); printf(" 0 : 返回主界面 \n"); printf(" "); printf("\t请选择操作:"); scanf("%d", &choice1); switch (choice1) /*菜单选择*/ { case 1 : system("cls");inputbook(); break; case 2 : system("cls");list(); break ; case 3 : system("cls");search(); break ; case 4 : system("cls");delet(); break ; case 5 : system("cls");save(); break ; case 0 : system("cls"); break; } }while (choice1!=0); printf("\n"); } void welcome() /*欢迎界面显示*/ { system("cls"); printf("\n\n\t\t*************欢迎使用图书销售管理系统*************\n\n"); } void loadbook() /*开始导入书库信息*/ { FILE *fp; struct book *p7; if((fp=fopen("0.txt","r"))==NULL) /*打开文件*/ { printf("\n\n 文件打开失败或文件不存在\n"); printf("\n\n 按回车键继续:"); getchar(); return; } head=p3=p1=(struct book*)malloc(LEN); /*开辟一个新单元*/ p1->next=NULL; p7=(struct book*)malloc(LEN); /*作为一个临时存储空间,避免读取文件最后的回车符*/ fscanf(fp,"%s %s %s %f %d",&p7->bnum,&p7->bname,&p7->author,&p7->price,&p7->acount); while(!feof(fp)) { T++; *p1=*p7; /*文件没结束就将p7中的信息给p1*/ p2=(struct book*)malloc(LEN); /*继续开辟一个新单元,直到文件读完*/ p1->next=p2; p3=p1; p1=p2; p1->next=NULL; fscanf(fp,"%s%s%s%f%d",&p7->bnum,&p7->bname,&p7->author,&p7->price,&p7->acount); } free(p2); /*释放多申请的一个单元*/ p3->next=NULL; printf("\n\n\t\t\t%d项图书信息已经由系统自动载入.\n\n\t\t\t",T); rewind(stdin);/*清空缓冲区*/ if(fclose(fp)) { printf("文件关闭失败!\n"); exit(0); } } void salesmanage() { system("cls"); int choice4; do { printf(" "); /*显示菜单*/ printf(" *************销售统计************* "); printf(" "); printf(" "); printf(" 功能选项: \n"); printf(" 1 : 日销售额 \n"); printf(" 2 : 月销售额 \n"); printf(" 3 : 年销售额 \n"); printf(" 0 : 返回主界面 \n"); printf(" "); printf("\t请选择操作:"); scanf("%d", &choice4); switch (choice4) /*菜单选择*/ { case 1 : system("cls");daysales(); break; case 2 : system("cls");monthsales(); break ; case 3 : system("cls");yearsales(); break ; case 0 : system("cls"); break; } }while (choice4!=0); printf("\n"); } void loadsales() /*开始导入销售信息*/ { FILE *vfp; if((vfp=fopen("sales.txt","r"))==NULL) /*打开文件*/ { printf("\n\n\t\t\t销售数据文件打开失败或文件不存在\n\n"); return; } shead=s2=s1=(struct sales*)malloc(VLEN); while(!feof(vfp)) { S++; fscanf(vfp,"%f ",&s2->count); s1=(struct sales*)malloc(VLEN); s2->snext=s1; s2=s1; } s1=NULL; s2->snext=NULL; free(s2); printf("\n\n\t\t\t项销售信息已经由系统自动载入.\n\n\n\n\t\t\t",S); rewind(stdin); /*清空缓冲区*/ if(fclose(vfp)) { printf("文件关闭失败!\n"); exit(0); } } void daysales() { } void monthsales() { } void yearsales() { } void listsales() { s2=shead; { printf("\n\n\t\t *************当前销售信息*************\n"); printf("\n\n 销售额 \n\n"); while(s2->count!=NULL) { printf("%f",s2->count); s2=s2->snext; } (s2->snext)=s2=NULL; printf("\n"); } printf("销售信息列出完毕,按回车键返回子菜单:"); rewind(stdin);/*清空缓冲区*/ getchar(); system("cls"); } void loadvip() /*开始导入会员信息*/ { FILE *vfp; if((vfp=fopen("1.txt","r"))==NULL) /*打开文件*/ { printf("\n\n vip数据文件打开失败或文件不存在\n"); printf("\n\n 按回车键继续:"); getchar(); return; } vhead=v2=v1=(struct vip*)malloc(VLEN); while(!feof(vfp)) { V++; fscanf(vfp,"%s %s %d %f %f",&v2->vnum,&v2->vname,&v2->level,&v2->persum,&v2->discount); v1=(struct vip*)malloc(VLEN); v2->vnext=v1; v2=v1; } v1=NULL; v2->vnext=NULL; free(v2); printf("\n\n\t\t\t%d项会员信息已经由系统自动载入.\n\n\n\n\t\t\t按任意键显示主菜单:",V); rewind(stdin); /*清空缓冲区*/ getchar(); if(fclose(vfp)) { printf("文件关闭失败!\n"); exit(0); } } void listvip() { v2=vhead; if(v2==NULL||V==0)/*文件不存在或书库中没书*/ { printf("\n\n\n\n\t\t\t\t当前书库没书!!!"); printf("\n\n\t\t 按回车键返回:"); rewind(stdin);/*清空缓冲区*/ getchar(); return; } else { printf("\n\n\t\t *************当前书库信息*************\n"); printf("\n\n会员号 姓名 等级 会员总消费 会员折扣\n\n"); while(v2->discount!=NULL) { printf("%-18s%-10s%-5d %-6.2f %-5f\n",v2->vnum,v2->vname,v2->level,v2->persum,v2->discount); v2=v2->vnext; } printf("\n"); } printf("会员信息列出完毕,按回车键返回子菜单:"); rewind(stdin);/*清空缓冲区*/ getchar(); system("cls"); } void buy() { system("cls"); /*系统清屏*/ int choice1; do { printf(" "); /*显示菜单*/ printf(" *************销售管理************* "); printf(" "); printf(" "); printf(" 功能选项: \n"); printf(" 1 : 会员购买 \n"); printf(" 2 : 非会员购买 \n"); printf(" 0 : 返回主界面 \n"); printf(" "); printf("\t请选择操作:"); scanf("%d", &choice1); switch (choice1) /*菜单选择*/ { case 1 : system("cls");buy_by_huiyuan(); break; case 2 : system("cls");buy_by_feihuiyuan(); break ; case 0 : system("cls"); break; } }while (choice1!=0); printf("\n"); } void buy_by_huiyuan() /*会员买书*/ { time_t timep; char vipnum[6]; struct tm *p; time(&timep); p = gmtime(&timep); char bnum[11]; char ch; int i=0; float sum=0; /*保存所购买书的总费*/ v1=vhead; printf("\n\n\n\n\n\n\n\n\n\n\n\t\t\t请输入会员号码:"); scanf("%s",vipnum); while(v1!=NULL) { if(strcmp(vipnum,v1->vnum)==0) break; else v1=v1->vnext; } if(v1==NULL) printf("对不起,你所输入的会员号不存在"); if(p1==NULL||T==0) /*文件不存在或书库中没书*/ { printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t当前书库没书!!!"); printf("\n\n\t\t\t\t 按任意键返回:"); rewind(stdin); /*清空缓冲区*/ getch(); return; } p5=p4=head2=(struct book*)malloc(LEN); p4->next=NULL; system("cls"); printf("\n\n\t\t收费标准:一级会员打9折 二级会员打8折\n\n\t\t\t三级会员打7折 四级会员打6折 "); do{ printf("\n\n 请输入所需购买的书的书号(图书编号):");/*书号唯一*/ rewind(stdin);/*清空缓冲区*/ gets(bnum); p1=head; while(p1!=NULL) { if(strcmp(p1->bnum,bnum)==0) break; else p1=p1->next; } if(p1==NULL) { system("cls"); printf("\n\n\n\n\n\n\n\n\n\n\t 没有找到该书信息,可能书号输入有误,是否再次输入书号?\n\n"); printf("\n\n\t\t\t Y.是 N.否"); rewind(stdin);/*清空缓冲区*/ ch=getchar(); if(ch=='y'||ch=='Y') { system("cls"); buy_flag=1;/*防止在此函数中调用时,search()函数执行了清屏*/ search();/*调用查询,通过其他途径确定书号*/ } while(1) { printf("\n\n\t\t\t提示:若没有您要找的书,可按0结束!!!"); printf("\n\n\t\t\t\t请重新输入书号:"); rewind(stdin);/*清空缓冲区*/ gets(bnum); if(strcmp(bnum,"0")==0) break;/*没有需要的书,结束输入书号*/ p1=head; while(p1!=NULL) { if(strcmp(p1->bnum,bnum)==0) break; else p1=p1->next; } if(p1!=NULL) break; system("cls"); } } if(p1!=NULL) if(p1->acount==0) printf("\n\n\t\t\t\t该书已售完!!!"); while(p1!=NULL) { if(strcmp(p1->bnum,bnum)==0)/*有相同书号,循环提前结束*/ break; else p1=p1->next; } if(p1!=NULL&&p1->acount!=0) { *p4=*p1; sum=sum+p4->price; p5=(struct book*)malloc(LEN); p4->next=p5; p6=p4; p4=p5; p4->next=NULL; i++;/*记录买的本数i,*/ p1->acount=p1->acount-1;/*减去售过的书(本数)*/ p4=head2;system("cls"); printf("\n\n\t ***********当前已选购书状态***********"); printf("\n\n书号 书名 作者 售价 数量 总费\n\n"); while(p4->next!=NULL)/*显示已买过的书*/ { printf("%-15s%-25s%-15s %.2f %d %.2f\n",p4->bnum,p4->bname,p4->author,p4->price,p4->acount,sum); p4=p4->next; } } printf("\n\n\t\t 提示:可按N结束购书,按任意键继续购书:"); rewind(stdin);/*清空缓冲区*/ ch=getchar(); system("cls"); }while(ch!='n'&&ch!='N');/*结束购书*/ free(p4); p5->next=NULL; if(head2->next==NULL) printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t您当前没有购书!!!\n\n"); else { printf("\n\n\n\n\n\n\n\n\n\n\t\t\t 确认购买这%d本书吗???\n",i); printf("\n\n\t\t\t 按任意键确认,按N撤销购书:");/*不想购买时,亦可撤销*/ rewind(stdin);/*清空缓冲区*/ ch=getchar(); if(ch=='n'||ch=='N') { for(p4=head2;p4!=NULL;p4=p4->next) for(p1=head;p1!=NULL;p1=p1->next) if(strcmp(p1->bnum,p4->bnum)==0) p1->acount=p1->acount+1; /*书未销售,本数加上*/ printf("\n\n\t\t\t\t 撤销完毕!!!!"); } else { printf("\n\n\t\t\t您所购买的书的总费(打折前)为%.2f\n\n",sum); printf("\n\n\t\t\t你的会员等级为%d级,可以享受%.1f折.\n\n",v1->level,(v1->discount)*10); printf("购买书本的折后价为%.2f.\n\n",(v1->discount)*sum); save_flag=1;/*书库信息变动标志*/ } printf("%d.%d.%d\n", (1900+p->tm_year), (1+p->tm_mon), p->tm_mday); } rewind(stdin);/*清空缓冲区*/ printf("\n\n\t\t\t 按回车键返回主菜单"); getchar(); } void buy_by_feihuiyuan() /*非会员买书*/ { char bnum[11]; char ch; int i=0; float sum=0; /*保存所购买书的总费*/ p1=head; if(p1==NULL||T==0) /*文件不存在或书库中没书*/ { printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t当前书库没书!!!"); printf("\n\n\t\t\t\t 按任意键返回:"); rewind(stdin); /*清空缓冲区*/ getch(); return; } p5=p4=head2=(struct book*)malloc(LEN); p4->next=NULL; do{ printf("\n\n 请输入所需购买的书的书号(图书编号):");/*书号唯一*/ rewind(stdin);/*清空缓冲区*/ gets(bnum); p1=head; while(p1!=NULL) { if(strcmp(p1->bnum,bnum)==0) break; else p1=p1->n- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图书 销售 系统 源代码
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文