700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言 图书销售管理系统

C语言 图书销售管理系统

时间:2024-02-26 04:06:12

相关推荐

C语言 图书销售管理系统

图书销售管理系统

C语言程序设计的大作业,现在发出来啦

目录

图书销售管理系统软件功能1.登陆系统与主菜单2.会员管理功能(1)显示会员功能(2)添加会员信息功能(3)修改会员信息功能3. 书籍管理功能(1)查看书目功能(2)添加书籍功能(3)删除书籍功能4. 购物结算功能5.注销源代码有1、、想说

软件功能

1.登陆系统与主菜单

运行系统时,首先出现登陆界面,输入用户名admin和密码123456,进入系统。

如果用户名或密码错误,出现提示信息“您输入的用户名或密码错误。”只有两者完全正确才能进入系统主界面;否则根据提示再次输入用户名和密码。如果连续输入三次都不正确,则出现提示信息“您已经输入了三次错误密码。您已经退出系统。”,然后退出系统,结束程序运行。

界面如下。

2.会员管理功能

从主菜单选择会员管理后,出现会员管理的子菜单。

进入“会员管理”二级菜单,通过用户输入的操作数字1-3,进行相应的功能操作;如输入数字4,则返回“图书销售管理系统”主界面。

界面如下。

(1)显示会员功能

在“会员管理”界面中,如果用户输入的是数字1,则显示如下的会员信息:

(2)添加会员信息功能

返回上一级菜单后,在“会员管理”界面中,如果用户输入的是数字2,则根据用户输入的信息,进行会员添加操作(添加到现有记录的最后)。成功添加会员信息后,出现提示信息“添加成功!”。

界面如下。

按1↙返回到“会员管理”界面,此时用户可输入数字1,再次显示会员信息,查看新增加的会员信息。

界面如下。

可以看到小明已经成功被添加到会员列表中。

(3)修改会员信息功能

在“会员管理”界面中,如果用户输入的是数字3,则根据用户输入的会员号,进行合法性检验。

如果输入信息合法则进行会员修改操作。如果输入的会员号不存在,则显示提示信息“没找到该会员,请重新输入会员号。”然后让用户重新输入,直到输入合法为止。

修改会员信息成功后,会出现提示信息“修改成功!”

界面如下。(此处只展示合法输入的情况)

按1↙返回到“会员管理”界面,此时用户可输入数字1,再次显示会员信息,以查看修改的会员信息。

界面如下。

可以看到会员号为4的会员信息已被成功修改。

3. 书籍管理功能

在“图书销售管理系统”主界面中,如果此时用户输入的是数字2,则进入“书籍管理”二级菜单,用户通过输入操作数字1-3,可以进行相应的功能操作;如输入数字4,则返回“图书销售管理系统”主界面。

界面如下。

(1)查看书目功能

在“书籍管理”界面中,如果用户输入的是数字1,则显示所有的图书信息。

界面如下。

(2)添加书籍功能

在“书籍管理”界面中,如果用户输入数字2,则可进行添加书籍操作(添加到现有记录的最后)。成功添加会员信息后,出现提示信息“添加成功!”。

界面如下。

按1返回“书籍管理”的二级菜单,此时用户可输入数字1,再次显示图书信息,查看新增加的书籍信息。

界面如下。

可以看到书籍信息已经添加到列表末尾。

(3)删除书籍功能

在“书籍管理”界面中,如果用户输入的是数字3,则进行删除书籍操作。通过用户输入的图书名,进行合法性检验,查找该图书信息。

如果该图书存在,则输出提示信息及该图书对应的图书号“找到该图书,位置为: ”然后进行图书删除操作,成功删除后显示提示信息“删除成功!”。如果输入的图书名不存在,则显示提示信息“没找到该图书,请重新输入图书名。”然后让用户重新输入,直到输入合法为止。

界面如下。(此处只展示合法输入的情况)

返回到“书籍管理”界面,此时用户可输入数字1,再次显示图书信息,可查看删除书籍的功能效果。

界面如下。

可以看到C#2.0宝典已被成功删除。

4. 购物结算功能

在“图书销售管理系统”主界面中,如果此时用户输入的是数字3,则进入“购物结算”功能。

首先显示书籍的所有信息,便于用户查看购书。接着根据用户输入的会员号、书籍编号和购买量信息,并进行合法性检验。

检查用户输入会员号是否存在。如用户输入的会员号不存在,则显示提示信息“没有找到该会员,请重新输入会员号。”,并让用户重新输入,直到合法为止。

同理,检查用户输入书籍号是否存在。如用户输入的书籍号不存在,则显示提示信息“没有找到该会员,请重新输入图书号。”,并让用户重新输入,直到合法为止。

然后,检查该用户积分是否可以支付此次购书操作。如余额充足,则显示信息“您购买的图书为 ,数量为 ,总额为 。”并询问用户是否确认购买,若确认则显示“购买成功!”,否则显示“取消购买。”。

如余额不足,则提示信息“您的余额不足,购买失败。”

操作完成后,继续询问用户是否接着购书,只要用户输入的不是字符‘n’或‘N’,此购书操作可以反复进行;当输入字符‘n’或‘N’,则返回“图书销售管理系统”主界面。

界面如下。(此处只展示合法输入且购买成功的情况。)

此时系统返回到“图书销售管理系统”主界面,输入数字1进入“会员管理”界面,可查看刚才购书的会员信息是否发生相应的改变。

界面如下。

可以看到会员号为4的小红,积分从550变为500。

5.注销

在主页面按4↙,释放内存,注销成功,结束程序。

界面如下。

源代码

#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 30/*定义会员结构体*/struct member{int num;char name[N];int points;struct member *next;};/*定义书籍结构体*/struct book{int num;char name[N];int price;struct book *next;};/*登录及主菜单相关函数*/void Login(char *user,char *password); /*登录页面*/int ComparePassword (char *user,char *password); /*验证用户输入的用户名及密码是否正确*/void PrintMenu(void); /*打印主菜单*//*会员管理相关函数*/void MemberManagement (struct member *head,int *sum); /*会员管理*/void PrintMenu2(void); /*打印会员管理子菜单*/struct member* ExistingMember(struct member *head,int *sum); /*录入已有会员信息*/void PrintMember (struct member *head); /*打印会员信息*/struct member* NewMember(struct member *head,int *sum); /*新建会员信息*/struct member* ChangeMember(struct member *head); /*修改会员信息*//*书籍管理相关函数*/struct book* ExistingBook(struct book *head,int *sum); /*录入已有书籍信息*/struct book* BookManagement (struct book *head2,int *sum); /*书籍管理*/void PrintMenu3(void); /*打印书籍管理子菜单*/void PrintBook (struct book *head); /*打印书籍信息*/struct book* NewBook(struct book *head,int *sum); /*新建书籍信息*/struct book* DeleteBook(struct book *head); /*删除书籍*//*购物结算相关函数*/void CheckOut(struct member *head1,struct book *head2); /*购物结账*//*释放内存*/void DeleteMemory1(struct member *head);void DeleteMemory2(struct book *head);int main(){char user[N],password[N]; /*用户输入的用户名和密码*/int choice; /*菜单跳转的选项*/int sum1=0;/*会员总数*/int sum2=0;/*书籍总数*/struct member *head1=NULL;struct book *head2=NULL;int i;for (i=0; i<8; i++){head1=ExistingMember(head1,&sum1); /*录入已有会员信息*/}for (i=0; i<8; i++){head2=ExistingBook(head2,&sum2); /*录入已有书籍信息*/}system("cls");Login(user,password);for(;;){PrintMenu();scanf("%d",&choice);switch (choice){case 1:MemberManagement(head1,&sum1);break;case 2:head2=BookManagement(head2,&sum2);break;case 3:CheckOut(head1,head2);break;case 4:printf("注销成功!\n");break;}if (choice==4) break;}DeleteMemory1(head1);DeleteMemory2(head2);return 0;}/*登录页面*/void Login (char user[N],char password[N]){int i=0,flag=0;printf("\t*********************\n");do{printf("\t请输入用户名:");gets(user);printf("\t请输入密码:");gets(password);flag=ComparePassword(user,password);if (flag==1){printf("\t*********************\n");printf("\n\t欢迎进入图书销售管理系统!\n");int choice;printf("\n按1进入主菜单\n");scanf("%d",&choice);break;}else{printf("您输入的用户名或密码错误。\n");i++;}}while(i<3);if (flag==0){system("cls");printf("您已经输入了三次错误密码。\n");printf("您已经退出系统。\n");exit(0);}printf("*****************************\n");}/*验证用户输入的用户名及密码是否正确*/int ComparePassword (char *user,char *password){char username[N]="admin";char pass[N]="123456"; /*正确的用户名和密码*/if (strcmp(user,username)==0&&strcmp(password,pass)==0) return 1;else return 0;}/*打印菜单*/void PrintMenu(void){system("cls");printf("******************************\n");printf("*图书销售管理系统*\n");printf("* 1.会员管理 *\n");printf("* 2.书籍管理 *\n");printf("* 3.购物结算 *\n");printf("* 4.注销 *\n");printf("******************************\n");printf("请选择,输入数字(1-4):");}/*会员管理相关函数*//*录入已有会员信息*/struct member* ExistingMember(struct member *head,int *sum){struct member *p=NULL,*pr=head;p=(struct member*)malloc(sizeof(struct member));if (p==NULL){printf("内存不足。\n");exit(0);}if (head==NULL){head=p;}else{while (pr->next!=NULL){pr=pr->next;}pr->next=p;}(*sum)++;p->num=*sum;switch ((*sum)){case 1:strcpy(p->name,"张三");p->points=100;break;case 2:strcpy(p->name,"李四");p->points=600;break;case 3:strcpy(p->name,"王五");p->points=500;break;case 4:strcpy(p->name,"陆六");p->points=1000;break;case 5:strcpy(p->name,"钱七");p->points=900;break;case 6:strcpy(p->name,"大强");p->points=100;break;case 7:strcpy(p->name,"小丽");p->points=100;break;case 8:strcpy(p->name,"敏敏");p->points=100;break;default:printf("录入会员信息错误。\n");}p->next=NULL;return head;}/*会员管理*/void MemberManagement (struct member *head1,int *sum){int choice;system("cls");while(1){PrintMenu2();scanf("%d",&choice);switch (choice){case 1:PrintMember(head1);break;case 2:head1=NewMember(head1,sum);break;case 3:head1=ChangeMember(head1);break;default:break;}if (choice==4) break;}}/*打印会员管理子菜单*/void PrintMenu2(void){system("cls");printf("图书销售管理系统>会员管理\n");printf("**************************\n");printf("* 1.显示所有会员 *\n");printf("* 2.添加会员信息 *\n");printf("* 3.修改会员信息 *\n");printf("* 4.返回主菜单*\n");printf("**************************\n");printf("请选择,输入数字(1-4):");}/*新建会员信息*/struct member* NewMember(struct member *head,int *sum){struct member *p=NULL,*pr=head;char name[N];int points;system("cls");printf("图书销售管理系统 > 会员信息管理 > 新增会员信息\n");p=(struct member*)malloc(sizeof(struct member));if (p==NULL){printf("内存不足。\n");exit(0);}if (head==NULL){head=p;}else{while (pr->next!=NULL){pr=pr->next;}pr->next=p;}(*sum)++;p->num=*sum;printf("请输入新会员姓名:\n");scanf("%s",name);printf("请输入新会员积分:\n");scanf("%d",&points);strcpy(p->name,name);p->points=points;p->next=NULL;printf("添加成功!\n");int choice;printf("按1返回上一级菜单\n");scanf("%d",&choice);return head;}/*打印现有会员信息*/void PrintMember (struct member *head){struct member *p=head;int choice;system("cls");printf("图书销售管理系统 > 会员信息管理 > 显示会员信息\n");printf(" 会员号 \t姓名\t\t积分\n");do{printf("\t%d\t%s\t\t%d\n",p->num,p->name,p->points);p=p->next;}while(p!=NULL);printf("按1返回上一级菜单\n");scanf("%d",&choice);}/*修改会员信息*/struct member* ChangeMember(struct member *head){system("cls");printf("图书销售管理系统 > 会员信息管理 >修改会员信息\n");int number,points; /*用户输入需要修改的会员信息*/char name[N];struct member *p=head;int flag=0;do{printf("请输入要修改的会员号:");scanf("%d",&number);p=head;while(p!=NULL){if (p->num==number){flag=1;break;}p=p->next;}if (flag==0){printf("没找到该会员,请重新输入会员号。\n");}else if (flag==1){printf("请输入要修改的会员姓名:");scanf("%s",name);printf("请输入要修改的会员积分:");scanf("%d",&points);}}while(flag!=1);strcpy(p->name,name);p->points=points;printf("修改成功!\n");int choice;printf("按1返回上一级菜单\n");scanf("%d",&choice);return head;}/*书籍管理相关函数*//*录入已有书籍信息*/struct book* ExistingBook(struct book *head,int *sum){struct book *p=NULL,*pr=head;p=(struct book*)malloc(sizeof(struct book));if (p==NULL){printf("内存不足。\n");exit(0);}if (head==NULL){head=p;}else{while (pr->next!=NULL){pr=pr->next;}pr->next=p;}(*sum)++;p->num=*sum;switch ((*sum)){case 1:strcpy(p->name,"C#2.0宝典");p->price=88;break;case 2:strcpy(p->name,"Java编程基础");p->price=55;break;case 3:strcpy(p->name,"J2SE桌面应用程序开发");p->price=60;break;case 4:strcpy(p->name,"数据库设计和应用");p->price=45;break;case 5:strcpy(p->name,"水浒传");p->price=55;break;case 6:strcpy(p->name,"红楼梦");p->price=68;break;case 7:strcpy(p->name,"三国演义");p->price=78;break;case 8:strcpy(p->name,"地心游记");p->price=29;break;default:printf("录入书籍信息错误。\n");}p->next=NULL;return head;}/*书籍管理*/struct book* BookManagement (struct book *head2,int *sum){int choice;system("cls");while(1){PrintMenu3();scanf("%d",&choice);switch (choice){case 1:system("cls");PrintBook(head2);int choice;printf("按1返回上一级菜单\n");scanf("%d",&choice);break;case 2:head2=NewBook(head2,sum);break;case 3:head2=DeleteBook(head2);break;default:break;}if (choice==4) break;}return head2;}/*打印书籍管理子菜单*/void PrintMenu3(void){system("cls");printf("图书销售管理系统 >书籍管理\n");printf("**************************\n");printf("*1.查看书目 *\n");printf("*2.添加书籍 *\n");printf("*3.删除书籍 *\n");printf("*4.返回主菜单*\n");printf("**************************\n");printf("请选择,输入数字(1-4):");}/*新建书籍信息*/struct book* NewBook(struct book *head,int *sum){struct book *p=NULL,*pr=head;char name[N];int price;system("cls");printf("图书销售管理系统 > 会员信息管理 > 新增会员信息\n");p=(struct book*)malloc(sizeof(struct book));if (p==NULL){printf("内存不足。\n");exit(0);}if (head==NULL){head=p;}else{while (pr->next!=NULL){pr=pr->next;}pr->next=p;}(*sum)++;p->num=*sum;printf("请输入图书名:");scanf("%s",name);printf("请输入图书价钱:");scanf("%d",&price);strcpy(p->name,name);p->price=price;p->next=NULL;printf("添加成功!\n");int choice;printf("按1返回上一级菜单\n");scanf("%d",&choice);return head;}/*打印现有书籍信息*/void PrintBook (struct book *head){struct book *p=head;printf("图书销售管理系统>书籍管理>书籍列表\n");printf("图书号图书名 图书价钱\n");do{printf("\t%d\t%-25s%10d\n",p->num,p->name,p->price);p=p->next;}while(p!=NULL);}/*删除书籍*/struct book* DeleteBook(struct book *head){system("cls");printf("图书销售管理系统 >书籍管理>书籍下架\n");struct book *p=head,*pr=head;char bookname[N]; /*用户输入的图书名*/int flag=0;do{printf("请输入要删除的图书书名:");scanf("%s",bookname);p=head;while (p!=NULL){if (strcmp(p->name,bookname)==0){flag=1;printf("找到该图书,位置为:%d\n",p->num);break;}p=p->next;}if (flag==0){printf("没找到该图书,请重新输入图书名。\n");}}while(flag!=1);if (p==head){head=p->next;free(p);}else{while (pr->next!=p){pr=pr->next;}pr->next=p->next;free(p);}printf("删除成功!\n");int choice;printf("按1返回上一级菜单\n");scanf("%d",&choice);return head;}/*购物结账相关的函数*//*购物结账*/void CheckOut(struct member *head1,struct book *head2){system("cls");printf("图书销售管理系统 >购物结算\n");PrintBook(head2);int MemberNum; /*用户会员号*/int BookNum; /*用户购买书本的信息*/int amount;int total;struct member *pm=head1;struct book *pb=head2;while(1){int flag1=0,flag2=0;do{pm=head1;printf("请输入会员号:");scanf("%d",&MemberNum);while(pm!=NULL){if (pm->num==MemberNum){flag1=1;break;}pm=pm->next;}if (flag1==0){printf("没有找到该会员,请重新输入会员号。\n");}}while(flag1!=1);do{pb=head2;printf("请输入要购买的书籍编号:");scanf("%d",&BookNum);while(pb!=NULL){if (pb->num==BookNum){flag2=1;break;}pb=pb->next;}if (flag2==0){printf("没有找到该图书,请重新输入图书号。\n");}}while(flag2!=1);printf("请输入您要购买的数量:");scanf("%d",&amount);total=amount*(pb->price);if (pm->points>=total){printf("您购买的图书为%s,数量为%d,总额为%d。\n",pb->name,amount,total);printf("是否购买?(y/n 或 Y/N):");char ch;scanf(" %c",&ch);if (ch=='n'||ch=='N'){printf("取消购买。\n");}else if (ch=='y'||ch=='Y'){printf("购买成功!\n");pm->points=pm->points-total;}else{printf("没有输入y/n 或 Y/N,购买失败。");}}else{printf("您的余额不足,购买失败。\n");}printf("是否继续购买?(y/n 或 Y/N):");char ch;scanf(" %c",&ch);if (ch=='n'||ch=='N'){break;}}}/*释放内存*/void DeleteMemory1(struct member *head){struct member *p=head,*pr=NULL;while (p!=NULL){pr=p;p=p->next;free(pr);}}void DeleteMemory2(struct book *head){struct book *p=head,*pr=NULL;while (p!=NULL){pr=p;p=p->next;free(pr);}}

有1、、想说

大一上学期结束了,可太快了……

做这个大作业的时候是期末了,猛赶ddl,代码是在一个上午(8点到11点多)加一个晚上(7点多到10点+11点多到1点)码出来的(当天中午考军事理论,当天下午出校门给室友庆生啦),然后第二天上午debug和测试,顺便把说明文档整理出来……

对于我来说,那一天真的是爆肝……

(这就是拖拉的代价)

立个flag

下学期希望能有计划地完成任务

接下来的寒假又要爆肝了T^T

时间:/1/24 16:51:55

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。