|
|
#include<stdio.h>
|
|
|
#include<string.h>
|
|
|
#include<windows.h>
|
|
|
#include<math.h>
|
|
|
#include<stdlib.h>
|
|
|
#include<time.h>
|
|
|
#include<dos.h>
|
|
|
#include<conio.h>
|
|
|
#define N 100
|
|
|
|
|
|
void menu();
|
|
|
void ss();
|
|
|
void tushuluru();
|
|
|
void tushuchaxun();
|
|
|
void zuozhemingchaxun();
|
|
|
void tushuliulan();
|
|
|
void shumingchaxun();
|
|
|
void xinxixiugai();
|
|
|
void tushuxinxixiugai();
|
|
|
void tushuxinxishanchu();
|
|
|
void huanyingxitong();
|
|
|
|
|
|
struct xinxi
|
|
|
{
|
|
|
char name[100];
|
|
|
char author[100];
|
|
|
char publisher[100];
|
|
|
int year,yue,ri;
|
|
|
int price,amount;
|
|
|
int kuchun;
|
|
|
} tushuxinxu[N] ;
|
|
|
|
|
|
char mima[1000];
|
|
|
|
|
|
void goto_xy(int x, int y) //定位光标位置到指定坐标
|
|
|
{
|
|
|
HANDLE hOut;
|
|
|
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
|
COORD pos = { x,y };
|
|
|
SetConsoleCursorPosition(hOut, pos);
|
|
|
}
|
|
|
|
|
|
void color(short x) //自定义函根据参数改变颜色
|
|
|
{
|
|
|
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); //只有一个参数,改变字体颜色
|
|
|
}
|
|
|
|
|
|
void tushuluru()
|
|
|
{
|
|
|
int uu,j;
|
|
|
void ss();
|
|
|
j=0;
|
|
|
printf("请输入你要插入的图书信息\n");
|
|
|
printf("在录入图书年月日信息时:请这样输入日 月 年\n");
|
|
|
printf("名称\t作者\t日-月-年\t价格\t数量\t库存\t出版社\n");
|
|
|
FILE*fp;
|
|
|
out:
|
|
|
fp=fopen("a.txt","a+");
|
|
|
scanf("%s%s%d%d%d%d%d%d%s",tushuxinxu[j].name,tushuxinxu[j].author,&tushuxinxu[j].year,&tushuxinxu[j].yue,&tushuxinxu[j].ri,&tushuxinxu[j].price,&tushuxinxu[j].amount,&tushuxinxu[j].kuchun,tushuxinxu[j].publisher);
|
|
|
fprintf(fp,"%s\t%s\t%d-%d-%d\t%d\t%d\t%d\t%s\n",tushuxinxu[j].name,tushuxinxu[j].author,tushuxinxu[j].year,tushuxinxu[j].yue,tushuxinxu[j].ri,tushuxinxu[j].price,tushuxinxu[j].amount,tushuxinxu[j].kuchun,tushuxinxu[j].publisher);
|
|
|
rewind(fp);
|
|
|
Sleep(1200);
|
|
|
printf("录入成功\n");
|
|
|
fclose(fp);
|
|
|
printf("你是否还要录入信息\n");
|
|
|
printf("如果是,请输入1,否则,输入2\n");
|
|
|
scanf("%d",&uu);
|
|
|
if(uu==1)
|
|
|
{
|
|
|
goto out;
|
|
|
j++;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
system("cls");
|
|
|
ss();
|
|
|
}
|
|
|
}
|
|
|
void huanyingxitong()
|
|
|
{
|
|
|
system("cls");
|
|
|
printf("谢谢你使用本系统,thanks\n");
|
|
|
Sleep(1200);
|
|
|
system("cls");
|
|
|
menu();
|
|
|
}
|
|
|
|
|
|
void ss()//图书管理系统界面
|
|
|
{
|
|
|
int x,y;
|
|
|
system("cls");
|
|
|
printf("\t\t\t图\t 书\t 信\t 息\t 管\t 理\t 系\t 统\n");
|
|
|
printf("\n \t\t\t\t请按键 1-5选择实现功能\n\n");
|
|
|
printf(" \t\t\t1.图书信息录入\n\n");
|
|
|
printf(" \t\t\t2.图书信息浏览\n\n");
|
|
|
printf(" \t\t\t3.按书名查询图书查询\n\n");
|
|
|
printf(" \t\t\t4.图书单价的修改与图书信息删除\n\n");
|
|
|
printf(" \t\t\t5.退出系统AND欢迎词\n\n");
|
|
|
printf("请输入你要选择的菜单\n");
|
|
|
printf("\n");
|
|
|
printf("你选择的是:");
|
|
|
while(1)
|
|
|
{
|
|
|
scanf("%d",&x);
|
|
|
fflush(stdin);
|
|
|
if(x>5||x<1)
|
|
|
{
|
|
|
printf("输入错误,请重新输入:");
|
|
|
continue;
|
|
|
}
|
|
|
break;
|
|
|
} //进入图书管理系统进行操作
|
|
|
if(x==1)
|
|
|
{
|
|
|
system("cls");
|
|
|
tushuluru();
|
|
|
}
|
|
|
if(x==2)
|
|
|
{
|
|
|
printf("请稍等......\n");
|
|
|
Sleep(500);
|
|
|
printf("恭喜你查询成功\n");
|
|
|
Sleep(1200);
|
|
|
system("cls");
|
|
|
tushuliulan();
|
|
|
}
|
|
|
if(x==3)
|
|
|
{
|
|
|
printf("请稍等......\n");
|
|
|
Sleep(500);
|
|
|
printf("恭喜你进入成功\n");
|
|
|
Sleep(1200);
|
|
|
system("cls");
|
|
|
tushuchaxun();
|
|
|
}
|
|
|
if(x==4)
|
|
|
{
|
|
|
printf("请稍等......\n");
|
|
|
Sleep(500);
|
|
|
printf("恭喜你进入成功\n");
|
|
|
Sleep(1200);
|
|
|
system("cls");
|
|
|
xinxixiugai();
|
|
|
}if(x==5)
|
|
|
{
|
|
|
huanyingxitong();
|
|
|
}
|
|
|
}
|
|
|
void xinxixiugai()
|
|
|
{
|
|
|
int i;
|
|
|
printf("1:图书单价的修改\n");
|
|
|
printf("2:图书信息的删除\n");
|
|
|
printf("你想输入的数字是:");
|
|
|
ww:scanf("%d",&i);
|
|
|
fflush(stdin);
|
|
|
if(i==1)
|
|
|
{
|
|
|
tushuxinxixiugai();
|
|
|
system("cls");
|
|
|
}
|
|
|
else if(i==2)
|
|
|
{
|
|
|
tushuxinxishanchu();
|
|
|
system("cls");
|
|
|
}if(i!=1||i!=2)
|
|
|
{
|
|
|
printf("你输入错误,请重新输入\n");
|
|
|
goto ww;
|
|
|
}
|
|
|
}
|
|
|
void tushuxinxixiugai()
|
|
|
{
|
|
|
int j,h,q,w,e,z,i;
|
|
|
xx:FILE*fp;
|
|
|
FILE*CC;
|
|
|
e=0;
|
|
|
z=0;
|
|
|
j=0;
|
|
|
fp=fopen("a.txt","r+");
|
|
|
while(!feof(fp))
|
|
|
{
|
|
|
fscanf(fp,"%s%s%d%d%d%d%d%d%s",tushuxinxu[j].name,tushuxinxu[j].author,&tushuxinxu[j].year,&tushuxinxu[j].yue,&tushuxinxu[j].ri,&tushuxinxu[j].price,&tushuxinxu[j].amount,&tushuxinxu[j].kuchun,tushuxinxu[j].publisher);
|
|
|
j++;
|
|
|
}
|
|
|
rewind(fp);
|
|
|
fclose(fp);
|
|
|
CC=fopen("a.txt","w+");
|
|
|
printf("请问你想改正的单价是:");
|
|
|
scanf("%d",&q);
|
|
|
for(h=0;h<j;h++)
|
|
|
{
|
|
|
if(tushuxinxu[h].price==q)
|
|
|
{
|
|
|
printf("你想修改的信息是:");
|
|
|
scanf("%d",&w);
|
|
|
fflush(stdin);
|
|
|
tushuxinxu[h].price=w;
|
|
|
e=2;
|
|
|
}
|
|
|
e++;
|
|
|
}
|
|
|
if(e==j)
|
|
|
{
|
|
|
printf("没有找到你想修改的单价\n");
|
|
|
}
|
|
|
while(tushuxinxu[z].price!=0)
|
|
|
{
|
|
|
fprintf(CC,"%s\t%s\t%d%d%d\t%d\t%d\t%d\t%s\n",tushuxinxu[z].name,tushuxinxu[z].author,tushuxinxu[z].year,tushuxinxu[z].yue,tushuxinxu[z].ri,tushuxinxu[z].price,tushuxinxu[z].amount,tushuxinxu[z].kuchun,tushuxinxu[z].publisher);
|
|
|
z++;
|
|
|
}
|
|
|
rewind(CC);
|
|
|
fclose(CC);
|
|
|
printf("你是否想继续修改\n");
|
|
|
printf("如果是请输入1;返回菜单请输入:2\n");
|
|
|
scanf("%d",&i);
|
|
|
if(i==1)
|
|
|
{
|
|
|
goto xx;
|
|
|
}
|
|
|
if(i==2)
|
|
|
{
|
|
|
system("cls");
|
|
|
ss();
|
|
|
}
|
|
|
}
|
|
|
void tushuxinxishanchu()
|
|
|
{
|
|
|
int j,h,d,e,z,s,q;
|
|
|
char a[100];
|
|
|
e=-1;
|
|
|
j=0;
|
|
|
h=0;
|
|
|
z=0;
|
|
|
FILE*fp;
|
|
|
FILE*CC;
|
|
|
fp=fopen("a.txt","r+");
|
|
|
while(!feof(fp))
|
|
|
{
|
|
|
fscanf(fp,"%s%s%d%d%d%d%d%d%s",tushuxinxu[j].name,tushuxinxu[j].author,&tushuxinxu[j].year,&tushuxinxu[j].yue,&tushuxinxu[j].ri,&tushuxinxu[j].price,&tushuxinxu[j].amount,&tushuxinxu[j].kuchun,tushuxinxu[j].publisher);
|
|
|
j++;
|
|
|
}
|
|
|
rewind(fp);
|
|
|
fclose(fp);
|
|
|
printf("请问你想删除的书名是:");
|
|
|
scanf("%s",a);
|
|
|
for(h=0;h<j;h++)
|
|
|
{
|
|
|
if(strcmp(tushuxinxu[h].name,a)==0)
|
|
|
{
|
|
|
d=h;
|
|
|
e=2;
|
|
|
}
|
|
|
}
|
|
|
if(e==-1)
|
|
|
{
|
|
|
printf("不好意思,你想删除的书名没找到\n");
|
|
|
return;
|
|
|
}
|
|
|
CC=fopen("a.txt","w+");
|
|
|
fflush(CC);
|
|
|
for(s=d;s<j-1;s++)
|
|
|
{
|
|
|
tushuxinxu[s]=tushuxinxu[s+1];
|
|
|
}
|
|
|
tushuxinxu[s].price = 0;
|
|
|
while(tushuxinxu[z].price!=0)
|
|
|
{
|
|
|
fprintf(CC,"%s\t%s\t%d%d%d\t%d\t%d\t%d\t%s\n",tushuxinxu[z].name,tushuxinxu[z].author,tushuxinxu[z].year,tushuxinxu[z].yue,tushuxinxu[z].ri,tushuxinxu[z].price,tushuxinxu[z].amount,tushuxinxu[z].kuchun,tushuxinxu[z].publisher);
|
|
|
z++;
|
|
|
}
|
|
|
fclose(CC);
|
|
|
Sleep(1200);
|
|
|
if(e!=j){
|
|
|
printf("删除成功\n");
|
|
|
}
|
|
|
printf("你是否需要返回上一级:如果是请输入:1\n");
|
|
|
printf("你想输入的数字是:");
|
|
|
scanf("%d",&q);
|
|
|
if(q==1)
|
|
|
{
|
|
|
system("cls");
|
|
|
ss();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
void tushuchaxun()
|
|
|
{
|
|
|
int i,j;
|
|
|
char an[100];
|
|
|
printf("1:按书名查询\n");
|
|
|
printf("2:按作者名查询\n");
|
|
|
printf("请输入你想选择的序号:");
|
|
|
out :
|
|
|
scanf("%d",&i);
|
|
|
fflush(stdin);
|
|
|
if(i==1)
|
|
|
{
|
|
|
printf("请稍等.....");
|
|
|
Sleep(1200);
|
|
|
system("cls");
|
|
|
shumingchaxun();
|
|
|
}
|
|
|
else if(i==2)
|
|
|
{
|
|
|
|
|
|
printf("请稍等.....");
|
|
|
Sleep(1200);
|
|
|
system("cls");
|
|
|
zuozhemingchaxun();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("输入错误,请重新输入\n");
|
|
|
goto out;
|
|
|
}
|
|
|
}
|
|
|
void menu()
|
|
|
{
|
|
|
int x,i,d;
|
|
|
d=1;
|
|
|
system("color 2");
|
|
|
printf("**************图书管理系统登录界面***************\n");
|
|
|
printf(" 请输入六位数密码:");//登录系统密码
|
|
|
while(1)
|
|
|
{
|
|
|
for(i=0; i<=5; i++)
|
|
|
{
|
|
|
mima[i]=getch();
|
|
|
if(mima[i]=='\r')
|
|
|
{
|
|
|
break;
|
|
|
}
|
|
|
printf("*");
|
|
|
}
|
|
|
mima[i]='\0';
|
|
|
if(strcmp(mima,"111222")==0)
|
|
|
{
|
|
|
printf("\n");
|
|
|
printf(" 登录成功\n");
|
|
|
printf(" 请稍后.........");
|
|
|
Sleep(2500);
|
|
|
break;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\n");
|
|
|
printf(" 密码错误,请重新输入\n");
|
|
|
goto_xy(5,d+=2);
|
|
|
}
|
|
|
}
|
|
|
printf("***************************************************");
|
|
|
system("cls");
|
|
|
ss();
|
|
|
}
|
|
|
|
|
|
void tushuliulan()
|
|
|
{
|
|
|
int i;
|
|
|
char ch;
|
|
|
printf("当前你将看到你录入的所有图书信息\n");
|
|
|
printf("名称\t作者\t日-月-年\t价格\t数量\t库存\t出版社\n");
|
|
|
FILE*fp=fopen("a.txt","r");
|
|
|
while(!feof(fp))
|
|
|
{
|
|
|
ch=fgetc(fp);
|
|
|
printf("%c",ch);
|
|
|
}
|
|
|
printf("\n");
|
|
|
printf("\n");
|
|
|
printf("\n");
|
|
|
printf("************************************\n");
|
|
|
printf("你是否想返回上一级\n");
|
|
|
printf("1:如果想请输入:1\n");
|
|
|
printf("2:如果你不想请不要输入\n");
|
|
|
printf("你想输入的数字是:");
|
|
|
ii:
|
|
|
scanf("%d",&i);
|
|
|
fflush(stdin);
|
|
|
if(i==1)
|
|
|
{
|
|
|
system("cls");
|
|
|
ss();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("输入错误,请重新输入\n");
|
|
|
goto ii;
|
|
|
}
|
|
|
}
|
|
|
void shumingchaxun()
|
|
|
{
|
|
|
int h,j,z,count;
|
|
|
j=0;
|
|
|
h=0;
|
|
|
|
|
|
char an[100];
|
|
|
FILE*fp;
|
|
|
fp=fopen("a.txt","r");
|
|
|
while(fscanf(fp,"%s%s%d%d%d%d%d%d%s",tushuxinxu[j].name,tushuxinxu[j].author,&tushuxinxu[j].year,&tushuxinxu[j].yue,&tushuxinxu[j].ri,&tushuxinxu[j].price,&tushuxinxu[j].amount,&tushuxinxu[j].kuchun,tushuxinxu[j].publisher)!=EOF)
|
|
|
{
|
|
|
j++;
|
|
|
}
|
|
|
printf("请输入你想输入的书名:\n");
|
|
|
xx:
|
|
|
count=0;
|
|
|
scanf("%s",an);
|
|
|
system("cls");
|
|
|
printf("名称\t作者\t日-月-年\t价格\t数量\t库存\t出版社\n");
|
|
|
for(h=0; h<j; h++)
|
|
|
{
|
|
|
|
|
|
if(strcmp(an,tushuxinxu[h].name)==0)
|
|
|
{
|
|
|
count++;
|
|
|
printf("%s\t%s\t%d%d%d\t%d\t%d\t%d\t%s\n",tushuxinxu[h].name,tushuxinxu[h].author,tushuxinxu[h].year,tushuxinxu[h].yue,tushuxinxu[h].ri,tushuxinxu[h].price,tushuxinxu[h].amount,tushuxinxu[h].kuchun,tushuxinxu[h].publisher);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
if(count==0)
|
|
|
{
|
|
|
printf("该图书没有库存.....");
|
|
|
}
|
|
|
printf("\n");
|
|
|
printf("你是否要重新查询\n");
|
|
|
printf("如果是请输入:1,否则输入:2返回上一级\n");
|
|
|
printf("你想输入的数字是:");
|
|
|
cc: scanf("%d",&z);
|
|
|
fflush(stdin);
|
|
|
if(z==1)
|
|
|
{
|
|
|
goto xx;
|
|
|
}
|
|
|
else if(z==2)
|
|
|
{
|
|
|
system("cls");
|
|
|
ss();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\n");
|
|
|
printf("输入错误,请重新输入\n");
|
|
|
goto cc;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void zuozhemingchaxun()
|
|
|
{
|
|
|
int h,j,z,count;
|
|
|
j=0;
|
|
|
h=0;
|
|
|
char an[100];
|
|
|
FILE*fp;
|
|
|
fp=fopen("a.txt","r");
|
|
|
while(fscanf(fp,"%s%s%d%d%d%d%d%d%s",tushuxinxu[j].name,tushuxinxu[j].author,&tushuxinxu[j].year,&tushuxinxu[j].yue,&tushuxinxu[j].ri,&tushuxinxu[j].price,&tushuxinxu[j].amount,&tushuxinxu[j].kuchun,tushuxinxu[j].publisher)!=EOF)
|
|
|
{
|
|
|
j++;
|
|
|
}
|
|
|
printf("请输入你想输入的作者名:\n");
|
|
|
xx:
|
|
|
count=0;
|
|
|
scanf("%s",an);
|
|
|
system("cls");
|
|
|
printf("名称\t作者\t日-月-年\t价格\t数量\t库存\t出版社\n");
|
|
|
for(h=0; h<j; h++)
|
|
|
{
|
|
|
if(strcmp(an,tushuxinxu[h].author)==0)
|
|
|
{
|
|
|
count++;
|
|
|
printf("%s\t%s\t%d%d%d\t%d\t%d\t%d\t%s\n",tushuxinxu[h].name,tushuxinxu[h].author,tushuxinxu[h].year,tushuxinxu[h].yue,tushuxinxu[h].ri,tushuxinxu[h].price,tushuxinxu[h].amount,tushuxinxu[h].kuchun,tushuxinxu[h].publisher);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
if(count==0)
|
|
|
{
|
|
|
printf("该图书没有库存\n");
|
|
|
}
|
|
|
printf("\n");
|
|
|
printf("你是否要重新查询\n");
|
|
|
printf("如果是请输入:1,否则输入:2返回上一级\n");
|
|
|
printf("你想输入的数字是:");
|
|
|
cc:scanf("%d",&z);
|
|
|
fflush(stdin);
|
|
|
if(z==1)
|
|
|
{
|
|
|
goto xx;
|
|
|
}
|
|
|
else if(z==2)
|
|
|
{
|
|
|
system("cls");
|
|
|
ss();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\n");
|
|
|
printf("输入错误,请重新输入\n");
|
|
|
goto cc;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void welcome()
|
|
|
{
|
|
|
Sleep(200);
|
|
|
system("color A");
|
|
|
printf("\n\n\n\n\n \t\t 欢");
|
|
|
Sleep(200);
|
|
|
system("color B");
|
|
|
printf("\t 迎") ;
|
|
|
Sleep(200);
|
|
|
system("color C");
|
|
|
printf("\t 来") ;
|
|
|
Sleep(200);
|
|
|
system("color D");
|
|
|
printf("\t 到") ;
|
|
|
Sleep(200);
|
|
|
system("color E");
|
|
|
printf("\t 图") ;
|
|
|
Sleep(200);
|
|
|
system("color A");
|
|
|
printf("\t 书") ;
|
|
|
Sleep(200);
|
|
|
system("color B");
|
|
|
printf("\t 信");
|
|
|
Sleep(200);
|
|
|
system("color A");
|
|
|
printf("\t 息");
|
|
|
Sleep(200);
|
|
|
system("color 08");
|
|
|
printf("\t 管") ;
|
|
|
Sleep(200);
|
|
|
system("color 09");
|
|
|
printf("\t 理") ;
|
|
|
Sleep(200);
|
|
|
system("color B");
|
|
|
printf("\t 系") ;
|
|
|
Sleep(200);
|
|
|
system("color F");
|
|
|
printf("\t 统\n") ;
|
|
|
}
|
|
|
|
|
|
int main()
|
|
|
{
|
|
|
welcome();
|
|
|
system("cls");
|
|
|
menu();
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|