图书销售管理系统
C语言程序设计的大作业,现在发出来啦
目录
软件功能
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"