#include "stdio.h"
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#define N 100;/*图书总量*/
struct book
{
int num;/*图书号*/
char name[20];/*图书名*/
char writer[20];/*图书作者*/
int inprice;/*进书家格*/
int outprice;/*销售价格*/
char date[20]; /*生产日期*/
char press[20];/*出版社*/
}books[100];
struct book*p;
void print_1();/*主界面调用*/
void record(); /*图书信息录入*/
void print();
/*显示图书信息*/
void update();
/*图书信息更新*/
void query();
/*图书信息查询*/
void statistics();
/*图书信息统计*/
void ranking(); /*图书信息排行*/
void exit();
void query1();
void query2();
/*显示,更新调用函数*/
void Changes();
void Add();
void Rmove();
void num();
void writer();
void name();
void inprice();
void outprice();
void date();
void press();
/*结束*/
int n=0;
main()/*主函数*/
{
printf("\n\n");
printf("
**********welcome to Library Management System******\n\n\n\n");
printf("
*******please put any key*******");
getch();
//clrscr();
system("CLS");
print_1();
//clrscr();
system("CLS");
}
void print_1()/*主界面*/
{
char i;
system("cls");
printf("
*******Library Management System*******\n\n");
printf("
*
1.Record Book Information
*\n\n");
printf("
*
2.Print Book Information
*\n\n");
printf("
*
3.Update Book Information
*\n\n");
printf("
*
4.Query Book Information
*\n\n");
printf("
*
5.Statistics Book Information
*\n\n");
printf("
*
6.Book Ranking Information
*\n\n");
printf("
*
0.Exit System
*\n");
printf("
**************************************\n\n ");
printf("
choose(0-6):");
while(1)
{
scanf("%c",&i);
printf("
你选择了:%c\n:",i);
if(i>='0' && i<='6')
{
switch(i)
{
case '1': record();break;
case '2': print(); break;
case '3': update();break;
case '4': query();break;
case '5': statistics();break;
case '6': ranking();break;
case '0': exit(0);
}
getch();
}
else
printf("
error,please enter (0-6)!\n");
}
}
/*我的页面*/
void record()/*图书信息录入*/
{
int j;
system("cls");
printf("\n\t\tadd new book\n");
printf("\n\t\tbook num:");
scanf("%d",&books[n].num);
printf("\n\t\tbook name:");
scanf("%s",&books[n].name);
printf("\n\t\tbook writer:");
scanf("%s",&books[n].writer);
printf("\n\t\tinto the book price:");
scanf("%d",&books[n].inprice);
printf("\n\t\tout price:");
scanf("%d",&books[n].outprice);
printf("\n\t\tdate:");
scanf("%s",&books[n].date);
printf("\n\t\tpress:");
scanf("%s",&books[n].press);
n++;
printf("\n\t\tcontinue?(y/n)");
getchar();
if (getchar()=='y')
record();
else
print_1();
return;
}
void
print() /*显示图书信息*/
{
int i;
system("cls");
if(n>0)
{
printf("\t\t\t
Gong you %d tiao ji lu\n",n);
printf("\n \t\t----------------------------------------------");
for(i=0;i<n;i++)
{
printf("\n\n\t\t\t\tDi %d Tiao Ji Lu",i+1);
printf("\n\n\tnum:%d",books[i].num);
printf("
name:%s",books[i].name);
printf("
writer:%s",books[i].writer);
printf("
inprice:%d",books[i].inprice);
printf("
outprice:%d",books[i].outprice);
printf("
date:%s",books[i].date);
printf("
press:%s",books[i].press);
}
printf("\n \t\t----------------------------------------------\n");
printf("\n \t\tInput anykey to main");
getch();
print_1();
}
else
printf("\t\t\t\tit is nothing!\n\n\t\t\t
Input anykey to main");
getch();
print_1();
}
void update()
/*图书信息更新*/
{
int a;
system("cls");
printf("\n\t\t\t****Update Book Information****\n\n");
printf("\n\t\t\t
1.Add Book Information\n");
printf("\n\t\t\t
2.Rmove Book Information\n");
printf("\n\t\t\t
3.Changes Book Information\n");
printf("\n\t\t\t
0.Back to main menu\n");
printf("\n\t\tInput you choose:");
scanf("%d",&a);
switch(a)
{
case 0:print_1();
case 1:Add();break;
case 2:Rmove();break;
case 3:Changes();break;
}
getch();
}
/*--------------图书更新内容------------------------*/
void Changes() /*更改页面*/
{
int a;
system("cls");
printf("\n\t\t\t****Changes Book Information****\n\n");
printf("\n\t\t\t
1.Changes num\n");
printf("\n\t\t\t
2.Changes name\n");
printf("\n\t\t\t
3.Changes writer\n");
printf("\n\t\t\t
4.Changes inprice\n");
printf("\n\t\t\t
5.Changes outprice\n");
printf("\n\t\t\t
6.Changes date\n");
printf("\n\t\t\t
7.Changes press\n");
printf("\n\t\t\t
0.Back to Changes menu\n");
printf("\n\t\tInput you choose:");
scanf("%d",&a);
switch(a)
{
case 1: num();break;
case 2: name(); break;
case 3: writer();break;
case 4: inprice();break;
case 5: outprice();break;
case 6: date();break;
case 7: press();break;
case 0: update();break;
}
getch();
}
/*-------------更改内容-----------------*/
void num() /*更改图书编号*/
{
int i;
char str[20];
printf("Input You Changes num's name:");
fflush(stdin);
gets(str);
for(i=0;i<n;i++)
{
if(!strcmp(books[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入图书信息\n");
printf("\n\t\t输入编号:");
fflush(stdin);
scanf("%d",&books[i].num);
printf("\n\n");
printf("\n\t\t\t修改完毕");
printf("\n\t\t\t任意键进入主界面");
getch();
print_1();
}
else if(i == n-1)
{
system("cls");
printf("\n\t\t\t\tNo this name");
printf("\n\t\t\t
anykey renturn Changes");
getch();
system("cls");
Changes();
}
}
}
void writer()/*更改图书作者*/
{
int i;
char str[20];
printf("Input You Changes writer's name:");
fflush(stdin);
gets(str);
for(i=0;i<n;i++)
{
if(!strcmp(books[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入图书信息\n");
printf("\n输入作者:");
fflush(stdin);
scanf("%s",&books[i].writer);
printf("\n\n");
printf("\n\t\t\t修改完毕");
printf("\n\t\t\tren yi jian jin ru zhu ye mian");
getch();
print_1();
}
else if(i == n-1)
{
system("cls");
printf("\n\t\t\t\tNo this name");
printf("\n\t\t\t
anykey renturn Changes");
getch();
system("cls");
Changes();
}
}
}
void name()/*更改图书名字*/
{
int i;
char str[20];
printf("Input You Changes name:");
fflush(stdin);
gets(str);
for(i=0;i<n;i++)
{
if(!strcmp(books[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入图书信息\n");
printf("\n输入名字:");
fflush(stdin);
scanf("%s",&books[i].name);
printf("\n\n");
printf("\n\t\t\t修改完毕");
printf("\n\t\t\tren yi jian jin ru zhu ye mian");
getch();
print_1();
}
else if(i == n-1)
{
system("cls");
printf("\n\t\t\t\tNo this name");
printf("\n\t\t\t
anykey renturn Changes");
getch();
system("cls");
Changes();
}
}
}
void inprice() /*更改图书进价*/
{
int i;
char str[20];
printf("Input You Changes inprice's name:");
fflush(stdin);
gets(str);
for(i=0;i<n;i++)
{
if(!strcmp(books[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入图书信息\n");
printf("\n输入入厂价:");
fflush(stdin);
scanf("%d",&books[i].inprice);
printf("\n\n");
printf("\n\t\t\t修改完毕");
printf("\n\t\t\tren yi jian jin ru zhu ye mian");
getch();
print_1();
}
else if(i == n-1)
{
system("cls");
printf("\n\t\t\t\tNo this name");
printf("\n\t\t\t
anykey renturn Changes");
getch();
system("cls");
Changes();
}
}
}
void outprice()/*更改图书卖价*/
{
int i;
char str[20];
printf("Input You Changes outprice's name:");
fflush(stdin);
gets(str);
for(i=0;i<n;i++)
{
if(!strcmp(books[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入图书信息\n");
printf("\n输入卖价:");
fflush(stdin);
scanf("%d",&books[i].outprice);
printf("\n\n");
printf("\n\t\t\t修改完毕");
printf("\n\t\t\tren yi jian jin ru zhu ye mian");
getch();
print_1();
}
else if(i == n-1)
{
system("cls");
printf("\n\t\t\t\tNo this name");
printf("\n\t\t\t
anykey renturn Changes");
getch();
system("cls");
Changes();
}
}
}
void date() /*更改图书日期*/
{
int i;
char str[20];
printf("Input You Changes date's name:");
fflush(stdin);
gets(str);
for(i=0;i<n;i++)
{
if(!strcmp(books[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入图书信息\n");
printf("\n输入日期");
fflush(stdin);
scanf("%s",&books[i].date);
printf("\n\n");
printf("\n\t\t\t修改完毕");
printf("\n\t\t\tren yi jian jin ru zhu ye mian");
getch();
print_1();
}
else if(i == n-1)
{
system("cls");
printf("\n\t\t\t\tNo this name");
printf("\n\t\t\t
anykey renturn Changes");
getch();
system("cls");
Changes();
}
}
}
void press() /*更改图书出版社*/
{
int i;
char str[20];
printf("Input You Changes press's name:");
fflush(stdin);
gets(str);
for(i=0;i<n;i++)
{
if(!strcmp(books[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入图书信息\n");
printf("\n输入出版社");
fflush(stdin);
scanf("%s",&books[i].press);
printf("\n\n");
printf("\n\t\t\t修改完毕");
printf("\n\t\t\tren yi jian jin ru zhu ye mian");
getch();
print_1();
}
else if(i == n-1)
{
system("cls");
printf("\n\t\t\t\tNo this name");
printf("\n\t\t\t
anykey renturn Changes");
getch();
system("cls");
Changes();
}
}
}
/*-------------更改结束----------------*/
void Add() /*添加新纪录*/
{
int j;
printf("\n\t\tadd new book\n");
printf("\n\t\tbook num:");
scanf("%d",&books[n].num);
printf("\n\t\tbook name:");
scanf("%s",&books[n].name);
printf("\n\t\tbook writer:");
scanf("%s",&books[n].writer);
printf("\n\t\tinto the book price:");
scanf("%d",&books[n].inprice);
printf("\n\t\tout price:");
scanf("%d",&books[n].outprice);
printf("\n\t\tdate:");
scanf("%s",&books[n].date);
printf("\n\t\tpress:");
scanf("%s",&books[n].press);
n++;
printf("\n\t\tcontinue?(y/n)");
getchar();
if (getchar()=='y')
Add();
else
update();
}
void Rmove() /*删除信息*/
{
int a=0;
int i,j;
int deletemark=0;
char name[20];
printf("\n\t\t请输入要删除的书名:");
scanf("%s",name);
for (i=a;i<n;i++)
{
if (strcmp(books[i].name,name)==0)
{
printf("\n\t\t这是你要删除的信息?");
printf("\n\n\tnum:%d",books[i].num);
printf("
name:%s",books[i].name);
printf("
writer:%s",books[i].writer);
printf("
inprice:%d",books[i].inprice);
printf("
outprice:%d",books[i].outprice);
printf("
date:%s",books[i].date);
printf("
press:%s",books[i].press);
printf("\n\n\t\t是否删除?(y/n)");
getchar();
if (getchar()=='y')
{
for (j=i;j<n-1;j++) /*纪录移动,从stud数组中删除之*/
books[j]=books[j+1];
n--;
deletemark++;
printf("\n\t\t删除成功\n");
printf("\n\t\t是否继续?(y/n)");
getchar();
if (getchar()=='y')
Rmove();
else
update();
}
else
update();
}
}
if (deletemark==0)
{
system("cls");
printf("\t\t\t\tit is nothing!\n\n\t\t\t
Input anykey to update...\n");
getch();
update();
}
}
/*--------------更新结束-----------------------*/
/*结束*/
void query() /*图书信息查询*/
{
int i;
if(n>0)
{
system("cls");
printf("
**********query book information************\n") ;
printf("\n
1.books by writer query\n");
printf("\n
2.books by book name\n");
printf("\n
0.back to main menu\n");
printf("\n\n
please select (0-2):");
scanf("%d",&i);
switch(i)
{
case 1:query1();break;
case 2:query2();break;
case 0:print_1();break;
}
}
else
{
system("cls");
printf("\n\t\t\t
It Nothing");
printf("\n\n\t\t\tanykey return to main menu...\n");
getch();
print_1();
}
}
void query2() /*按书名查询*/
{
char name[20];
int i;
system("cls");
printf("\n\t\tInput name:");
scanf("%s",name);
for(i=0;i<n;i++)
{
if (strcmp(books[i].name,name)==0)
{
printf("\n\n\tnum:%d",books[i].num);
printf("
name:%s",books[i].name);
printf("
writer:%s",books[i].writer);
printf("
inprice:%d",books[i].inprice);
printf("
outprice:%d",books[i].outprice);
printf("
date:%s",books[i].date);
printf("
press:%s",books[i].press);
printf("\n\n\tquery again(y/n):");
getchar();
if(getchar()=='y')
query2();
else
query();
}
else if(i == n-1)
{
printf("\n\n\t\t\tIt no you query");
printf("\n\n\t\t\t
anykey return query menu...");
getch();
query();
}
}
}
void query1() /*按作者查询*/
{
char writer[10];
int i;
system("cls");
printf("\n\t\tInput writer:");
scanf("%s",writer);
for(i=0;i<n;i++)
{
if (strcmp(books[i].writer,writer)==0)
{
printf("\n\n\tnum:%d",books[i].num);
printf("
name:%s",books[i].name);
printf("
writer:%s",books[i].writer);
printf("
inprice:%d",books[i].inprice);
printf("
outprice:%d",books[i].outprice);
printf("
date:%s",books[i].date);
printf("
press:%s",books[i].press);
printf("\n\n\tquery again(y/n):");
getchar();
if(getchar()=='y')
query1();
else
query();
}
else if(i == n-1)
{
system("cls");
printf("\n\n\t\t\tIt no you query");
printf("\n\n\t\t\t
anykey return query menu...");
getch();
query();
}
}
}
void
statistics()
/*图书信息统计*/
{
char name[10];
int i,t;
if(n>0)
{
system("cls");
printf("\n\t\tInput name:");
scanf("%s",name);
for(i=0;i<n;i++)
{
if (strcmp(books[i].name,name)==0)
{
printf("\n\n\tnum:%d",books[i].num);
printf("
name:%s",books[i].name);
printf("
writer:%s",books[i].writer);
printf("
inprice:%d",books[i].inprice);
printf("
outprice:%d",books[i].outprice);
printf("
date:%s",books[i].date);
printf("
press:%s",books[i].press);
printf("\n\n\t\tanykey return main...");
getch();
print_1();
}
else if(i == n-1)
{
system("cls");
printf("\n\n\t\t\tIt no you query");
printf("\n\n\t\t\t
anykey return query menu...");
getch();
print_1();
}
}
}
else
{
system("cls");
printf("\n\t\t\t
It Nothing");
printf("\n\t\t\tanykey return to main...\n");
getch();
print_1();
}
}
void
ranking() /*图书信息排行*/
{
struct book t;
int i,j;
//clrscr();
system("CLS");
for(i=1;i<n;i++)
{
for(j=1;j<=n-i;j++)
{
if(books[j-1].num<books[j].num)
{
t=books[j];
books[j]=books[j-1];
books[j-1]=t;
}
}
}
printf("\t\t\t
共有 %d 调记录\n",n);
printf("\n \t\t----------------------------------------------");
for(i=0;i<n;i++)
{
printf("\n\n\t\t\t\tdi %d 调记录",i+1);
printf("\n\n\tnum:%d",books[i].num);
printf("
name:%s",books[i].name);
printf("
writer:%s",books[i].writer);
printf("
inprice:%d",books[i].inprice);
printf("
outprice:%d",books[i].outprice);
printf("
date:%s",books[i].date);
printf("
press:%s",books[i].press);
}
printf("\n \t\t----------------------------------------------\n");
printf("\n \t\tInput anykey to main");
getch();
print_1();
}
这个应该好用,我试过了