You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
daima/课程设计(3).cpp

562 lines
12 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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;
}