这是一个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语言的基础知识