谁能用c语言帮忙说一下这个图书销售管理系统的做法?最好能给个样板,要定义两个结构体吗?

1.会员管理功能
当系统运行时,首先出现登陆界面,要求用户输入用户名和密码;只有两者完全正确才能进入系统主界面;否则根据提示再次输入用户名和密码。用户信息三次都输入不正确,则退出系统。由于登陆过程与项目二相似,这里就不再进行信息输入错误的演示。
本系统的用户名为“admin”,密码为“123456”;登陆成功进入图书销售管理系统,出现如下的主界面,并提示用户输入操作数字;如果此时用户输入的是数字1,则进入“会员管理”二级菜单,通过用户输入的操作数字1-3,进行相应的功能操作;如输入数字4,则返回“书店管理销售系统”主界面。
(1)显示会员功能
在“会员管理”界面中,如果用户输入的是数字1,则显示如下的会员信息:
书店管理销售系统 > 会员信息管理 > 显示会员信息
会员号 姓名 积分
1 张三 100
2 李四 600
3 王五 500
4 陆六 1000
5 钱七 900
6 大强 100
7 小丽 100
8 敏敏 100
(2)添加会员信息功能
在“会员管理”界面中,如果用户输入的是数字2,则根据用户输入的信息,进行会员添加操作(添加到现有记录的最后)。添加会员信息成功,系统将回到“会员管理”界面,此时用户可输入数字1,再次显示会员信息,查看新增加的会员信息。
书店管理销售系统 > 会员信息管理 > 新增会员信息
请输入新会员姓名:张三疯↙
请输入新会员积分:500
添加成功!
(3)修改会员信息功能
在“会员管理”界面中,如果用户输入的是数字3,则根据用户输入的会员号,进行合法性检验;如输入信息合法则进行会员修改操作。修改会员信息成功,系统将回到“会员管理”界面,此时用户可输入数字1,再次显示会员信息,以查看修改的会员信息。
书店管理销售系统 > 会员信息管理 >修改会员信息
请输入要修改的会员号:8↙
请输入要修改的会员姓名:心里美↙
请输入要修改的会员积分:600↙
修改成功!

2.书籍管理功能
在“书店管理销售系统”主界面中,如果此时用户输入的是数字2,则进入“书籍管理”二级菜单,通过用户输入的操作数字1-3,进行相应的功能操作;如输入数字4,则返回“书店管理销售系统”主界面。
(1)查看书目功能
在“书籍管理”界面中,如果用户输入的是数字1,则显示所有的图书信息。
书店管理销售系统 >书籍管理
****************
* 1.查看书目 *
* 2.添加书籍 *
* 3.删除书籍 *
* 4.返回主菜单 *
****************
(2)添加书籍功能
在“书籍管理”界面中,如果用户输入的是数字2,则进行添加书籍操作(添加到现有记录的最后)。添加图书信息成功,系统将回到“书籍管理”界面,此时用户可输入数字1,再次显示图书信息,查看新增加的书籍信息。
(3)删除书籍功能
在“书籍管理”界面中,如果用户输入的是数字3,则进行删除书籍操作。通过用户输入的图书名,查找该图书信息。如果该图书存在,则进行图书删除操作。完成之后,系统将回到“书籍管理”界面,此时用户可输入数字1,再次显示图书信息,可查看删除书籍的功能效果。
3.购物结算功能
在“书店管理销售系统”主界面中,如果此时用户输入的是数字3,则进入“购物结算”功能。首先显示书籍的所有信息,便于用户查看购书。接着根据用户输入的会员号、书籍编号和购买量信息,先检查该用户积分是否可以支付此次购书操作;如可以则进行购书操作,如余额不足,则提示信息不能进行购书操作。
操作完成后,继续询问用户是否接着购书,只要用户输入的不是字符‘n’或‘N’,此购书操作可以反复进行;当输入字符‘n’或‘N’,则返回“书店管理销售系统”主界面。

第1个回答  2013-12-15
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define N 100 /*定义图书总容量为100*/
int Count=0; /*定义全局变量,用来表示图书的个数*/

struct book /*定义结构体类型*/
{
int num; /*序号为整型*/
char name[40]; /*书名为字符串*/
char author[20]; /*作者为字符串*/
char publish[50]; /*出版社为字符串*/
float price; /*价格为浮点型*/
};
struct book list[N]; /*定义struct book类型的变量 list N个*/

void show_bookinformation(struct book list[]); /*声明图书信息浏览函数*/
void check_bookinformation (struct book list[]); /*声明图书信息查询函数*/
void modify_bookinformation (struct book list[]); /*声明图书信息修改函数*/
void delete_bookinformation (struct book list[]); /*声明图书信息删除函数*/
void reorder_bookinformation(struct book list[]); /*声明图书信息排序函数*/
void buytotal(struct book list[]); /*声明图书购买信息函数*/
void read(); /*声明数据读入函数*/
void input(); /*声明图书信息录入函数*/
void open(); /*声明数据信息打开函数*/

/*主函数*/
void main()
{

int choice1;
printf(" *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n");
printf(" * 欢迎进入图书销售管理系统 *\n");
printf(" *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n");
do
{
printf("################################################################################"); /*显示菜单*/
printf(" 功能选项: \n");
printf(" 1 : 图书信息录入 \n");
printf(" 2 : 图书信息浏览 \n");
printf(" 3 : 图书信息查询 \n");
printf(" 4 : 图书信息修改 \n");
printf(" 5 : 图书信息删除 \n");
printf(" 6 : 图书信息排序 \n");
printf(" 7 : 图书的购买 \n");
printf(" 0 : 退出系统 \n");
printf("################################################################################");
printf("\t请选择操作:");
scanf("%d", &choice1);
switch (choice1) /*菜单选择*/
{
case 1 :
input();
break;
case 2 :
show_bookinformation(list);
break ;
case 3 :
check_bookinformation (list);
break ;
case 4 :
modify_bookinformation (list);
break ;
case 5 :
delete_bookinformation(list);
break ;
case 6 :
reorder_bookinformation(list);
break;
case 7 :
buytotal(list);
break;
case 0 :
break ;
}
}while (choice1!=0);
printf("谢谢! 欢迎下次使用使用!\n");

}

/*打开文件函数*/

void open()
{
int i;
FILE *fp;
if((fp=fopen("book.txt","rb"))==NULL)
{
printf("无法操作,无文件信息!!!\n");
exit(0);
}
for(i=0;i<N;i++)
{
if(fread(&list[i],sizeof(struct book),1,fp)==0)
{
printf("数据输出失败!!!\n");
exit(0);
}
}
fclose(fp);
}

/*录入文件函数*/

void read()
{
int i;
FILE *fp;
if((fp=fopen("book.txt","wr"))==NULL)
{
printf("\n不能打开文件!!!\n");
exit(0);
}
for(i=0;i<N;i++)
if(fwrite(&list[i],sizeof(struct book),1,fp)!=1)
printf("文件写入错误!!!\n");
fclose(fp);
}

/*录入函数*/

void input()
{
int i,k,j,t;
for(j=0;list[j].num!=0;j++)
t=j+1;
for(i=0;i<N;i++)
{
printf("\t请输入您的图书序号:");
scanf("\t%d",&list[i].num);
printf("\t请输入书名:");
scanf("\t%s",list[i].name);
printf("\t请输入作者:");
scanf("\t%s",list[i].author);
printf("\t请输入出版社:");
scanf("\t%s",list[i].publish);
printf("\t请输入价格:");
scanf("\t%f",&list[i].price);
fflush(stdin);
printf("\t\n是否继续录入?(1.是 2.否)");
scanf("%d",&k);
if(k==2) break;
}
Count=i+1;
read();
}

/*删除函数*/

void delete_bookinformation (struct book list[])
{
int j,k,d,i=0;
open();
printf("请输入要删除的图书的序号:\n");
scanf("%d",&d);
for(j=0;list[j].num!=0;j++)
{
if(list[j].num==d)
{
for(k=j;list[k].num!=0;k++)
list[k]=list[k+1];
i++;
}
}
if(i==0)
printf("图书销售系统没有你输入的图书序号,请重新选择输入!!!\n");
else
Count=Count-1;
read();
printf("删除成功\n");
}

/*修改函数*/

void modify_bookinformation (struct book list[])
{
int j,k=0,number;
open();
printf("\t请输入您要修改的图书的序号:");
scanf("%d",&number);
for (j=0;list[j].num!=0;j++)
if (list[j].num==number)
{
printf("\n\t请输入您修改后的图书信息!\n\n");
printf("\t请输入您要修改的图书的序号:");
scanf("%d",&list[j].num);
printf("\t请输入您修改后的书名:");
scanf("%s",list[j].name);
printf("\t请输入您修改后的作者名:");
scanf("%s",list[j].author);
printf("\t请输入您修改后的出版社:");
scanf("%s",list[j].publish);
printf("\t请输入您修改后的书的价格:");
scanf("%f",&list[j].price);
read();
printf("\n修改成功!\n");
k++;
}
if (k==0)
printf("\n\n\t找不到需要修改的图书!!");

}

/*输出函数*/

void show_bookinformation(struct book list[])
{
int i;
open();
printf("\n******************************图书信息显示*******************************\n");
printf("图书序号\t图书名\t\t作者名\t\t出版社\t\t图书价格\n");
for(i=0;list[i].num!=0;i++)
{
printf(" %d\t\t%s\t%s\t\t%s\t%6.2f\n",list[i].num,list[i].name, list[i].author,list[i].publish,list[i].price);
}
}

/*查询函数*/

void check_bookinformation (struct book list[]) /*查询图书信息*/
{
int j,i,t,k=0;
char c[20],d[20];
printf("请输入查询方式:\n 1.按书名查询 2按作者查询:\n");
scanf("%d",&t);
if(t==1)
{
open();
printf("请输入要查询的书名号:\n");
scanf("%s",c);
printf("\n **********************你想要查询的图书信息(按作者名)********************** \n");
printf("图书序号\t图书名\t\t作者名\t\t出版社\t\t图书价格\n");
for(j=0;list[j].num!=0;j++)
if(strcmp(c,list[j].name)==0)
{
printf(" %d\t\t%s\t%s\t\t%s\t%6.2f\n",list[j].num,list[j].name, list[j].author,list[j].publish,list[j].price);
k++;
}

if(k==0)
printf("\n不存在你要查询的图书信息!!!\n");
}
if(t==2)
{
open();
printf("请输入要查询的作者名:\n");
scanf("%s",d);
printf("图书序号\t图书名\t\t作者名\t\t出版社\t\t图书价格\n");
for(i=0;list[i].num!=0;i++)
if(strcmp(d,list[i].author)==0)
{
printf(" %d\t\t%s\t%s\t\t%s\t%6.2f\n",list[i].num,list[i].name, list[i].author,list[i].publish,list[i].price);
k++;
}

if(k==0)
printf("\n不存在你要查询的图书信息!!!\n");
}
}

/*排序函数*/

void reorder_bookinformation(struct book list[])
{
int i,j,a,k;
struct book t;
FILE *fp;
char temp[40];
open();
printf("\n请选择排序方式\n1---书名(按字母顺序)\n2---价格(按从高到低)\n");
scanf("%d",&a);
switch(a)
{
case 1:
for(i=0;i<Count-1;i++)
{k=i;
for(j=i+1;j<Count;j++)
if(strcmp(list[k].name,list[j].name)>0) k=j;
if(k!=i)
{ strcpy(temp,list[i].name);
strcpy(list[i].name,list[k].name);
strcpy(list[k].name,temp);
}
}
if((fp=fopen("book.txt","w"))==NULL)
{
printf("can't open the file!\n");
exit(0);
}
printf("新序列为:\n");
printf("图书序号\t图书名\t\t作者名\t\t出版社\t\t图书价格\n");
for(j=0;j<Count;j++)
{
printf(" %d\t\t%s\t%s\t\t%s\t%6.2f\n",list[j].num,list[j].name, list[j].author,list[j].publish,list[j].price);
}
read();
break;
case 2:
for(k=0;list[k].num!=0;k++)
for(j=0;list[j].num!=0;j++)
if(list[j].price<list[j+1].price)
{t=list[j];list[j]=list[j+1];list[j+1]=t;}
printf("图书序号\t图书名\t\t作者名\t\t出版社\t\t图书价格\n");
for(j=0;list[j].num!=0;j++)
{
printf(" %d\t\t%s\t%s\t\t%s\t%6.2f\n",list[j].num,list[j].name, list[j].author,list[j].publish,list[j].price);
k++;
}
read();
break;
}
}

/*购书清单*/

void buytotal(struct book list[])
{
int k,m,n,q,r,t=0;
float sum=0;
char e[50],f[50],l[50],o[50],p[50];
printf("\n ***************************************************\n");
printf("\n 人民邮电出版社样书清单 \n");
printf("\n ***************************************************\n");
printf(" 请输入所购各图书的序号(输入0 结束):\n");
scanf("%d",&q);
do
{
for(r=0;r<N;r++)
{
if(q==list[r].num)
{
sum=sum+list[r].price;
t++;
}
}

scanf("%d",&q);
} while(q!=0);

printf(" 合计发书:%d\n",t);
printf(" 收书单位:");
scanf("%s",e);
printf(" 发书依据:");
scanf("%s",f);
printf(" 价格:%.2f\n",sum);
printf(" 邮政编码:");
scanf("%d",&k);
printf(" 收货地址:");
scanf("%s",l);
printf(" 联系电话:");
scanf("%d",&m);
printf(" 制单日期:");
scanf("%d",&n);
printf(" 货运公司:");
scanf("%s",o);
printf(" 验书人:");
scanf("%s",p);
}

这个给你参考,不知行不行,行的话,分给我吧
相似回答