书店管理系统---不完善

来源:互联网 发布:mysql 分组 每组数量 编辑:程序博客网 时间:2024/04/30 09:37

这是一个C语言写的书店管理系统

主要缺点:0,不能保存数据,每次重新运行,数据会刷新;

    1,收银时会发生问题



#include "stdio.h"
#include "stdlib.h"
#include "string.h"


struct book{
char isdn[10];
char name[10];
char author[10];
char press[20];
int price;
int num;
}bookRecord[100];




//选择操作
int operate;




//书类的总量
int count = 0;


//采购管理
void add(){

   /*
   int i;


   for( i = 0;i<=1;i++){
        printf("\t\t\t输入条码:");
scanf("%s",bookRecord[i].isdn);


printf("\t\t\t输入名称:");
scanf("%s",bookRecord[i].name);


printf("\t\t\t输入作者:");
scanf("%s",bookRecord[i].author);


printf("\t\t\t输入出版社:");
scanf("%s",bookRecord[i].press);


printf("\t\t\t输入价格:");
scanf("%d",&bookRecord[i].price);


printf("\t\t\t输入数量:");
scanf("%d",&bookRecord[i].num);
}
*/


for (;;) 
{

char exit;
int i = count;


int j = 0;


//书存在时的退出标志
int flage = 0;


printf("\t\t\t输入条码:");
scanf("%s",bookRecord[i].isdn);


//查找该书是否存在
/*
** 先必须有一本书,所以j = 1;此时count=0;因此不进行判断,之后count自增,开始判断
*/
for ( j = 1; j < count+1; j++ ) {

int add = 0;


//判断时从bookRecord[0]开始
//当isbn相同时,表示同一类书籍
if ( strcmp( bookRecord[j-1].isdn , bookRecord[i].isdn) == 0 )
{
flage = 1;
printf("\t\t\t作者:%s\n",bookRecord[j-1].author );
printf("\t\t\t出版社:%s\n",bookRecord[j-1].press );
/*
if ( strcmp( bookRecord[j-1].press , bookRecord[i].press) == 0 )
{
flage = 1;
printf("\t\t\t条码:%s\n",bookRecord[j-1].isdn );
printf("\t\t\t作者:%s\n",bookRecord[j-1].author );
printf("\t\t\t价格:%d\n",bookRecord[j-1].price );


//输入数量
printf("\t\t\t输入出版社:");

//修改出版社
scanf("%d",&bookRecord[j-1].press);


break;
}
*/


printf("\t\t\t价格:%d\n",bookRecord[j-1].price );


//输入数量
printf("\t\t\t输入数量:");
//scanf("%d",&bookRecord[j-1].num);
scanf("%d",&add);
//求和
bookRecord[j-1].num += add;
break;
}
}


if (flage==1) {
break;
}



//如果有这本书直接显示名称,作者,出版社,并提示输入


printf("\t\t\t输入名称:");
scanf("%s",bookRecord[i].name);


printf("\t\t\t输入作者:");
scanf("%s",bookRecord[i].author);


printf("\t\t\t输入出版社:");
scanf("%s",bookRecord[i].press);


printf("\t\t\t输入价格:");
scanf("%d",&bookRecord[i].price);






printf("\t\t\t输入数量:");
scanf("%d",&bookRecord[i].num);


count++;


printf("\t\t\t输入n结束输入:");





//清空输入缓冲区
fflush(stdin);
exit = getchar();


if (exit == 'n' || exit == 'N' ) {
break;
}
}


}


//显示
void show(){
int i;
printf("\t\t条码\t名称\t作者\t出版社\t价格\t库存\n");
printf("\t\t----------------------------------------\n");
    for(i = 0;i<count;i++){
       printf("\t\t%s\t%s\t%s\t%s\t%d\t%d\n",bookRecord[i].isdn,bookRecord[i].name,
bookRecord[i].author,bookRecord[i].press,bookRecord[i].price,bookRecord[i].num);
}
}




//查询书籍
//查询界面菜单
void findmenue() {
printf("\t\t*************************************\n");
printf("\t\t\t欢迎进入查询系统\n");
printf("\t\t\t请输入下列选项中的一种:\n");
printf("\t\t\t1.条码\n");
printf("\t\t\t2.名称\n");
printf("\t\t\t3.作者\n");
printf("\t\t\t4.出版社\n");
//printf("\t\t\t5.价格");
printf("\t\t*************************************\n");
}


void find() {


char input[10];
int j;
int flage;
//清屏
//while (1) {
system("cls");
findmenue();


printf("\t\t\t您的输入:");
scanf("%s",input);
//printf("%s",input);
printf("\t\t条码\t名称\t作者\t出版社\t价格\t库存\n");
for ( j = 1; j < count+1; j++ ) {


//判断时从bookRecord[0]开始
/************不完善的解决方法*************************


if ( ( strcmp( bookRecord[j-1].isdn , input ) == 0 ) || ( strcmp( bookRecord[j-1].name , input ) == 0 ) || 
( strcmp( bookRecord[j-1].author , input ) == 0 )|| ( strcmp( bookRecord[j-1].press , input ) == 0 )) {
printf("\t\t条码\t\t名称\t\t作者\t\t出版社\t\t价格\t\t库存\n");
printf("\t\t----------------------------------------\n");
printf("\t\t%s\t%s\t%s\t%s\t%d\t%d\n",bookRecord[j-1].isdn,bookRecord[j-1].name,bookRecord[j-1].author,
bookRecord[j-1].press,bookRecord[j-1].price,bookRecord[j-1].num);
}


************/


if ( ( strstr( bookRecord[j-1].isdn , input ) != NULL ) || ( strstr( bookRecord[j-1].name , input ) != NULL ) || 
( strstr( bookRecord[j-1].author , input ) != NULL )|| ( strstr( bookRecord[j-1].press , input ) != NULL )) {
printf("\t\t------------------------------------------\n");
printf("\t\t%s\t%s\t%s\t%s\t%d\t%d\n",bookRecord[j-1].isdn,bookRecord[j-1].name,bookRecord[j-1].author,
bookRecord[j-1].press,bookRecord[j-1].price,bookRecord[j-1].num);
}


}
// }


}
//编辑


//编辑界面菜单
void modifymenue() {
system("cls");
printf("\t\t*************************************\n");
printf("\t\t\t欢迎进入编辑系统\n");
// printf("\t\t*************************************\n");
// printf("\t\t\t输入图书的信息:\n");
printf("\t\t*************************************\n");


}


void modify(){
char modifyIsbn[10];
int j;
int modifyFlage = 0;
modifymenue();


printf("\t\t\t输入书籍条码:");
fflush(stdin);
scanf( "%s", modifyIsbn);


for ( j = 1; j < count+1; j++ ) {
if ( strcmp( bookRecord[j-1].isdn, modifyIsbn) == 0 ) {


printf("\t\t条码\t名称\t作者\t出版社\t价格\t库存\n");
printf("\t\t%s\t%s\t%s\t%s\t%d\t%d\n",bookRecord[j-1].isdn,bookRecord[j-1].name,bookRecord[j-1].author,
bookRecord[j-1].press,bookRecord[j-1].price,bookRecord[j-1].num);


printf("\t\t\t输入书籍的名称:");
fflush(stdin);
scanf( "\t\t\t%s", bookRecord[j-1].name );


printf("\t\t\t输入书籍的作者:");
fflush(stdin);
scanf( "%s", bookRecord[j-1].author );


printf("\t\t\t输入书籍的出版社:");
fflush(stdin);
scanf( "%s", bookRecord[j-1].press );


printf("\t\t\t输入书籍的价格:");
fflush(stdin);
scanf( "%d", &bookRecord[j-1].price );


printf("\t\t\t输入书籍的库存:");
fflush(stdin);
scanf( "%d", &bookRecord[j-1].num );

modifyFlage = 1;
}


if (modifyFlage == 1) {
break;
}
}




}


//收银
//收银界面菜单*
void saleMenue() 
{
printf("\t\t*************************************\n");
printf("\t\t\t欢迎进入收银系统\n");
printf("\t\t*************************************\n");

}


void sale(){
int saleFlage=0;
char saleInput[10];
int i,j;
//商品的下标
int goodsIndex[10];


int index = 0;
//每种商品的数量
int goodsNumber[10];


char exitSale;
//合计
int sum = 0;


//实收现金
int cash = 0;
saleMenue();


while ( 1 ) {


printf("\t\t\t请输入条码:");
fflush(stdin);
scanf("%s",saleInput);


for ( j = 0; j < count; j++ ) {


if (strcmp (bookRecord[j].isdn, saleInput) == 0 ) {

saleFlage = 1;
goodsIndex[index] = j;
printf("%d", goodsIndex[index] );
printf("\t\t\t请输入数量:");
scanf("%d", &goodsNumber[index] );

//判断库存量
if ( goodsNumber[index] > bookRecord[j].num ) {
goodsNumber[index] = bookRecord[j].num;
printf("\t\t\t请查询存量!%d");
modify();


}




printf("%d", goodsNumber[index] );
//num++;
index++;
}
}


printf("\t\t\t输入n结束输入:");
//清空输入缓冲区
fflush(stdin);
exitSale = getchar();


if (exitSale == 'n' || exitSale == 'N' ) {
break;
}


}





//找到,开始计算
if (saleFlage == 1) {
//计算总价额
printf("\t\t条码\t名称\t价格\t数量\t金额\n");
printf("\t\t----------------------------------------\n");
for ( i = 0; i < index; i++ ) {
sum += ( bookRecord[goodsIndex[i]].price * goodsNumber[i] );
   printf("\t\t%s\t%s\t%d\t%d\t%d\n",bookRecord[i].isdn,bookRecord[i].name,bookRecord[i].price, goodsNumber[i], ( bookRecord[goodsIndex[i]].price * goodsNumber[i] ));
//printf("\t\t\t应付金额:%d * %d\n", bookRecord[i].price, goodsNumber[i], ( bookRecord[goodsIndex[i]].price * goodsNumber[i] ) );
}


printf("\t\t\t合计:%d\n", sum );


printf("\t\t\t实收现金:");
scanf("%d", &cash);
fflush(stdin);
printf("\t\t\t找零:%d\n", (cash-sum) );




//收钱后更新仓库
for ( i = 0; i < index; i++ ) {
bookRecord[goodsIndex[i]].num -= goodsNumber[i];
}

}




}




void menu(){
printf("\t\t*************************************\n");
printf("\t\t*                                   *\n");
printf("\t\t*         书店业务管理系统          *\n");
printf("\t\t*                                   *\n");
printf("\t\t*************************************\n");
printf("\t\t\t1.采购管理\n");
printf("\t\t\t2.显示书籍\n");
printf("\t\t\t3.查询书籍\n");
printf("\t\t\t4.修改书籍\n");
printf("\t\t\t5.收银\n");
printf("\t\t\t6.退出系统\n");
printf("\t\t*************************************\n");
printf("\t\t\t请选择操作:");
scanf("%d",&operate);
}




void main(){
while(1){
//清屏
system("cls");
        menu();
if(operate == 6){
break;
}
switch(operate){
case 1:add();break;
case 2:show();break;
case 3:find();break;
case 4:modify();break;
case 5:sale();break;


}
printf("\t\t\t按回车键返回主菜单:");
//清空输入缓冲区
fflush(stdin);
/*
           接收键盘的输入,返回从键盘接收的字符
  scanf("%c",)
        */
getchar();
}


这是一个C语言小项目,主要是练习C语言的基础知识

0 0
原创粉丝点击