哪位好心人给个管理信息系统呗,老师的作业

如题所述

第1个回答  2017-06-03
//对语言有要求么?
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

struct BOOK
{
int id,total,store;
char name[30],author[20],usr[10],days[10];
}
books[100];
/*结构体,存放书籍及借书信息。*/

void page_title(char *menu_item)
{
printf("\t >>> 欢 迎 进 入 图 书 管 理 系 统--请 按 要 求 操 作 <<<\n\n- %s -\n\n",menu_item);
}
/*页头函数,可以通过参数menu_item,显示当前状态。*/

void return_confirm(void)
{
printf("\n任意键返回……\n");
getch();
}
/*返回前请求确认函数,方便返回前观察结果*/

int search_book(void)
{
int n,i;
printf("请输入图书序号:");
getch();
scanf("%d",&i);
for(n=0;n<100;n++)
{
if(books[n].id==i)
{
printf("书名:%s\n",books[n].name);
printf("作者:%s\n",books[n].author);
printf("存数:%d\n",books[n].store);
printf("总数:%d\n",books[n].total);
return n;
}
}
printf("\n输入有错或图书序号不存在.\n");
return -1;
}

/*上面是在数组中找到图书号匹配的记录,显示其信息并返
回数组下标,如果找不到相应记录则提示错误并返回-1。*/

void book_out(void)
{
int n,s,l,d,x;
system("cls");
page_title("借书");
if((n=search_book())!=-1&&books[n].store>0)
{
printf("请输入借书证序号:");
scanf("%d",&s);
printf("请输入可借天数:");
scanf("%d",&d);

printf("请输入要借数量:");
scanf("%d",&x);
while(x>books[n].store)
{
printf("输入错误");
printf("请输入要借数量:");
scanf("%d",&x);
}

for(l=0;l<10;l++)
{
if(books[n].usr[l]==0)
{
books[n].usr[l]=s;
books[n].days[l]=d;
break;
}
}
books[n].store=books[n].store-x;
}
if(n!=-1&&books[n].store==0) printf("此书已经全部借出.\n");
return_confirm();
}
/*借书的函数,首先调用找书函数*/

int book_reader(void)
{
int n,i;
system("cls");
printf("请输入图书序号:");
scanf("%d",&i);
for(n=0;n<100;n++)
{
if(books[n].id==i)
{
printf("书名:%s\n",books[n].name);
printf("作者:%s\n",books[n].author);
printf("存数:%d\n",books[n].store);
printf("总数:%d\n",books[n].total);
return n;
}
}
printf("\n输入有错或图书序号不存在!\n");
return -1;
}

int book_writer(void)
{
int n;
char writer[20];
char c;
system("cls");
printf("请输入作者姓名:");
scanf("%s",writer);
c=getchar();
for(n=0;n<100;n++)
{
if(strcmp(writer,books[n].author)==0)
{
printf("书名:%s",books[n].name);
printf("作者:%s",books[n].author);
printf("存数:%d",books[n].store);
printf("总数:%d\n",books[n].total);

}
}
return n;
getch();
printf("\n输入有错或作者不存在.\n");
return -1;
}

void book_in(void)
{
int n,s,l,x;
system("cls");
page_title("还书");
if((n=search_book())!=-1&&books[n].store<books[n].total)
{
printf("借阅者图书证列表:\n");
for(l=0;l<10;l++)
if (books[n].usr[l]!=0)
printf("[%d] - %d天\n",books[n].usr[l],books[n].days[l]);
printf("请输入借书证序号:");
scanf("%d",&s);
printf("请输入要还数量:");
scanf("%d",&x);
while(x>(books[n].total-books[n].store))
{
printf("输入错误");
printf("请输入要还数量:");
scanf("%d",&x);
}

for(l=0;l<10;l++)
{
if(books[n].usr[l]==s)
{
books[n].usr[l]=0;
books[n].days[l]=0;
break;
}
}
books[n].store=books[n].store+x;
}
if(n!=-1&&books[n].store==books[n].total)
printf("全部入藏.\n");
return_confirm();
}

int book_add(void)
{ char c;
int n;
system("cls");
page_title("新书入库");

for(n=0;n<100;n++)
if(books[n].id==0) break;
printf("序号:");
scanf("%d",&books[n].id);
printf("书名:");
scanf("%s",&books[n].name);
printf("作者:");
scanf("%s",&books[n].author);
printf("数量:");
scanf("%d",&books[n].total);
books[n].store=books[n].total;
return_confirm(); c=getchar();
return n;
}

void paixu(void) /*排序*/
{
char t2[10];
char t3[10];
int t4;
int t5;
int t, i,j;
system("cls");
for(i=0;i<100;i++)
{
for(j=i+1;j<100;j++)
if(books[i].id>books[j].id)
{ t=books[i].id;
strcpy(t2,books[i].name);
strcpy(t3,books[i].author);
t4=books[i].total;
t5=books[i].store;

books[i].id=books[j].id;
strcpy(books[i].name,books[j].name);
strcpy(books[i].author,books[j].author);
books[i].total=books[j].total;
books[i].store=books[j].store;

books[j].id=t;
strcpy(books[j].name,t2);
strcpy(books[j].author,t3);
books[j].total=t4;
books[j].store=t5;

}

}
printf("恭喜你排序成功!\n");
for(i=0;i<100;i++)
if (books[i].id!=0)
{ printf("书号:%d",books[i].id);
printf("书名:%s",books[i].name);
printf("作者:%s",books[i].author);
printf("存数:%d",books[i].store);
printf("总数:%d\n",books[i].total);
}
return_confirm();
}

void book_del(void)
{
int n;
page_title("注销书");
if((n=search_book())!=-1) books[n].id=0;
printf("该书已注销.\n");
return_confirm();
}

void main(void)
{

while (1)
{

menu: page_title("操作选择单子");
printf("请按以上要求选择操作\n\n");
printf("\n\t\t*>>>-------------^1 借书^-------------<<<*\n");
printf("\n\t\t*>>>-------------^2 还书^-------------<<<*\n");
printf("\n\t\t*>>>-------------^3 新书入库^---------<<<*\n");
printf("\n\t\t*>>>-------------^4 注销书^-----------<<<*\n");
printf("\n\t\t*>>>-------------^5 查询图书信息^-----<<<*\n");
printf("\n\t\t*>>>-------------^6 查询作者信息^-----<<<*\n");
printf("\n\t\t*>>>-------------^7 排序^-------------<<<*\n");
printf("\n\t\t*>>>-------------^0 退出^-------------<<<*\n");

switch(getch())
{
case '1' : book_out();break;
case '2' : book_in();break;
case '3' : book_add();break;
case '4' : book_del();break;
case '5' : book_reader();break;
case '6' : book_writer();break;
case '7' : paixu();break;
case '0' : exit(0);
}
}
goto menu;
}