m0_45130554 2019-07-07 14:17 采纳率: 0%
浏览 2619

用c语言编写图书管理系统

程序运行不下去
#include
#include
#include
#include
typedef struct Book{
int num;
char author[30];
char name[30];
char press[30];
char date[20];
float price;
char kind[20];
int total;
int newtotal;
int borrow;
int day[10];
int usr[10];
}books;

void menu()
{
printf(">>>以下是图书管理系统--请按要求操作<<<\n");
printf("在本系统中与执行某功能请输入相应数字:\n");
printf("请选择操作单子\n");
printf("1.借阅书籍 2.添加书籍 3.归还书籍 4.图书浏览 5.删除图书 6.修改图书信息\n");
printf(" 0.推出\n");
printf("请输入你的选择:");
}
void save(books a[],int n)
{
int i;
FILE *fp;
fp=fopen("book.dat","w");
fprintf(fp,"%d\n",n);
for(i=0;i<n;i++)
{
fprintf(fp,"%f\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",a[n].price,a[n].total,a[n].num,a[n].author,a[n].name,a[n].press,a[n].date,a[n].kind);
}
}
int add(books a[],int n)
{
int i;
printf("请输入要添加的书籍号:\n:");
scanf("%d",&i);
if(a[i].num==0)
{
printf("请输入书名:");
scanf("%s",a[i].name);
a[i].num=i;
printf("请输入作者:");
scanf("%s",a[i].author);
printf("请输入出版社:");
scanf("%s",a[i].press);
printf("请输入出版日期:");
scanf("%s",a[i].date);
printf("请输入价格:");
scanf("%s",a[i].price);
printf("请输入种类:");
scanf("%s",a[i].kind);
printf("请输入数量:");
scanf("%s",a[i].total);
}
else
{
printf("输入重复。\n");
}
n++;
save(a,n);
}

int del(books a[],int n)
{
int i,j,num,ret;
ret=-1;
system("CLS");
printf("请输入需要删除的书的编号:");
scanf("%d",&num);
for(i=0;i<100;i++)
{
if(a[i].num==num)
{
for(j=i;j<100;j++)
{
a[j].num=a[j+1].num;
strcpy(a[j].name,a[j+1].name);
strcpy(a[j].author,a[j+1].author);
strcpy(a[j].press,a[j+1].press);
strcpy(a[j].date,a[j+1].date);
a[j].price=a[j+1].price;
strcpy(a[j].kind,a[j+1].kind);
a[j].total=a[j+1].total;
}
printf("该书已经删除");
ret=i;
}
}
if(ret==-1)
{
printf("没有找到相关记录");
}
fflush(stdin);
return ret;
}

int xiugai(books a[],int n)
{
int i,num_change,b=-1;
system("CLS");
printf("输入要修改的图书编号:");
scanf("%d",&num_change);
for(i=0;i {
if(a[i].num==num_change)
{
getchar();
printf("修改书名: ");
gets(a[i].name);
printf("修改作者: ");
gets(a[i].author);
printf("修改出版社: ");
gets(a[i].press);
printf("修改出版日期: ");
gets(a[i].date);
printf("修改种类: ");
gets(a[i].kind);
printf("修改价格: ");
scanf("%d",a[i].price);
printf("修改总数: ");
scanf("%d",a[i].total);
b=i;
break;
}
}
if(i==100)
{
printf("未找到相关记录");
}
return n;
}
void borrow(books a[],int n)
{
int i,num,fact,d,I,s;
printf("请输入图书序号:");
scanf("%d",&num);
fact=-1;
for(i=0;i {
if(a[i].num==num)
{
printf("书名:%s",a[i].name);
printf("出版日期:%s",a[i].date);
printf("库存:%s",a[i].total);
printf("\n");
fact=i;
break;
}
}
if(fact!=-1&&a[i].total>0)
{
printf("请输入借书证号\n");
scanf("%d",&s);
printf("请输入借书天数:");
scanf("%d",&d);
for(I=0;I<10;I++)
{
if(a[i].usr[I]==0)
{
a[i].usr[I]=s;
a[i].day[I]=d;
a[i].total--;
break;
}
}
system("date/t");
}
if(fact!=-1&&a[i].total==0)
{
printf("抱歉,此书已经全部借出。");
}
save(a,n);
}
void back(books a[],int n)
{
int s,I,num,i,fact;
printf("请输入图书序号:");
scanf("%d",&num);
for(i=0;i<n;i++)
{
if(a[i].num==num)
{
printf("书名:%s",a[i].name);
printf("库存:%s",a[i].total);
printf("\n");
fact=i;
}
else
{
printf("输入有错或图书序号不存在\n");
break;
fact=-1;
}
if(fact!=-1&&a[i].total==0)
{
printf("借阅图书证列表:");
for(I=0;I<10;I++)
{
if(a[i].usr!=0)
{
printf("[%d]-%d天",a[i].usr[I],a[i].day[I]);
}
}
printf("请输入借书证号:");
scanf("%d",&s);
for(I=0;I<10;I++)
{
if(a[i].usr[I]=s)
{
a[i].usr[I]=0;
a[i].day[I]=0;
break;
}
}
a[i].total++;
}
}
save(a,n);
}
void look(books a[],int n)
{
int i;
printf("浏览所有图书信息:\n");
for(i=0;i<n;i++)
{
printf("图书序号:%d 图书名称:%s 作者:%s 出版社:%s 出版日期:%s 金额:%f 类别:%s 数量:%d\n",a[i].num,a[i].name,a[i].author,a[i].press,a[i].date,a[i].price,a[i].kind,a[i].total);
}
}
int main(void)
{
struct Book a[100];
int n;
int i;
char sel;
FILE *fp;
if((fp=fopen("book.dat","r"))!=NULL)
{
fscanf(fp,"%d",&n);
for(i=0;i<n;i++)
{
fscanf(fp,"%f%d%s%s%s%s%s%s",&a[n].price,&a[n].total,&a[n].num,&a[n].author,&a[n].name,&a[n].press,&a[n].date,&a[n].kind);
}
}
else
{
printf("第一次使用该系统,请输入n和n个图书价格,数量,编号,作者,图书名称,出版社,日期,和类别:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%f%d%s%s%s%s%s%s",&a[n].price,&a[n].total,&a[n].num,&a[n].author,&a[n].name,&a[n].press,&a[n].date,&a[n].kind);
}
save(a,n);
}
while(1)
{
menu();
scanf("%c",&sel);
switch(sel)
{
case '1':borrow(a,n);break;
case '2':add(a,n);break;
case '3':back(a,n);break;
case '4':look(a,n);break;
case '5':del(a,n);break;
case '6':xiugai(a,n);break;
case '0':printf(" 欢迎你再次使用图书信息管理系统\n");exit(0);
defaule:printf("输入有误,请重新输入。\n");break;
}
}
}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 15:33
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?