谁那有图书管理系统源代码,用C++编的,只要代码!

只要代码,不需要建库题目:用C++实现简化的图书借还系统要求1:图书维护包括购进新书需要把该书的信息输入图书库,办理图书证,日常图书维护。要求2:查询图书。读者或图书馆管... 只要代码,不需要建库
题目:用C++实现简化的图书借还系统
要求1:图书维护包括购进新书需要把该书的信息输入图书库,办理图书证,日常图书维护。
要求2:查询图书。读者或图书馆管理人员可以按作者或出版社查询图书库中的图书。
要求3:读者借书。读者凭借书证借书,系统首先检查该读者的借书证是否有效。若无效,则拒绝借书。否则进一步检查该读者所借图书是否超过限额数。若达到限额数,则拒绝借书,否则读者可以借书。把图书证号,图书号,借书日期,还书日期等登记在借/还 书文种中。
要求4:读者还书根据图书证号,图书号从 借/还 书 文件中读出该图书相关的纪录,并登记还书的日期。
2个限定条件
1:每位教师借书不超过10本,学生不超过5本,外单位不超过2本。
2:出现图书过期的读者,不可以继续借书。
展开
 我来答
uy...6@163.com
2009-11-19 · TA获得超过2074个赞
知道小有建树答主
回答量:664
采纳率:0%
帮助的人:524万
展开全部
c语言的改一下输入输出就变c++了 printf变cout scanf变cin

不过程序不是我编写的不保证正确性

#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#define STACK_INIT_SIZE 10
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0

struct student /*定义学生类型,用于存放借出的书籍*/
{
int studentnum,phonenum;
char lendbook[10];
}student[1000];

struct book /*定义书的类型*/
{
char bookname[11];
char publisher[20];
char page;
char year[6];
char status[4];
char name[11];
char author[51];
char booknum;
char bookcreat[10];
char borrownum;
char turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/
}book[1000];

struct car /*借书卡的数据类型*/
{
int carnum;
char studentname[10];
int studentclass;
int studentphone;
}car[100];

addcar()
{
FILE *fp;
int i=0;
double allnum,stillbook,outbook,allmoney,avemoney;
fp=fopen("car.txt","a+");
printf("请你输入学生姓名\n");
scanf("%s",car[i].studentname);
printf("请你输入班级\n");
scanf("%d",&car[i].studentclass);
fwrite(&car[i],sizeof(struct car),1,fp);
fclose(fp);
printf("注册完毕,任意键返回\n");
fp=fopen("book.txt","r");
avemoney=allmoney/allnum;
fclose(fp);
printf("书籍总数:%ld,已借出的书籍:%ld,在馆的书籍:%ld,书籍贯总金额:%ld,书籍平均价格:%ld",
stillbook,outbook,allmoney,avemoney);
getch();
}

carcount()
{
FILE *fp;
int i,n=0;
fp=fopen("car.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
printf("第%d张卡<卡号:%d 姓名:%s 班级:%d 手机号码:%d>\n",
i+1,car[i].carnum,car[i].studentname,car[i].studentclass,car[i].studentphone);
n=n+1;
}
fclose(fp);
printf("目前共有%d本书\n",n);
printf("按任意键\n");
getch();
}

void findbook()
{
FILE *fp;
char bookname[10];
int ture,i,booknum;
fp=fopen("book.txt","r");
printf("请输入你要查找的booknum");
scanf("%d",&booknum);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(booknum,book[i].booknum)==0)
{
if(book[i].turefalse==1)

printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);

else {printf("这本书已经有人借出\n");fclose(fp);return 0;}

fclose(fp);
return FALSE;
}
else
printf("没有你要查询的书籍\n");
fclose(fp);}
return FALSE;
}

void borrowbook(struct book *m) //借阅图书函数
{
int num;
struct book *b, *b1;

printf("输入要借书的编码:");
scanf("%d",&num);

b = searchbook(num); /*调用查找图书结点函数*/

if(b != NULL)
{
if(m->borrownum < 10)
{
// b->status = '0';

// b1 = &m->book[m->borrownum];

strcpy(b1->name,b->name);
strcpy(b1->author,b->author);
b1->booknum = b->booknum;
strcpy(b1->year,b->year);
b1->page = b->page;
strcpy(b1->publisher,b->publisher);
// b1->price = b->price;
// b1->status = b->status;
m->borrownum++;

printf("%s借书成功!",b->name);
getch();
}
else
{
printf("你已借满10本书.");
getch();
}
}
else
{
printf("没有你要借的书.");
getch();
}

}

huanbook() /*还书函数*/
{
FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/
int i,n;
int carnum,booknum;
char lendbook[10];
printf("请你输入你的卡号\n");
scanf("%d",&carnum);
fp=fopen("car.txt","r"); /*读取卡号记录*/

{
if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/
{
n=i;
fclose(fp);
printf("请输入你要还的书的booknum\n");
scanf("%d",&booknum);
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*判断是否借阅了输入的书*/
{
if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/
{
fclose(fp);
fp=fopen("record.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
{
if(strcmp(student[i].lendbook,lendbook)==0)
{
continue; /*删除还掉的书的借书记录*/
}
fwrite(&student[i],sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/
}
fclose(fp);
fclose(fp2);
fp=fopen("record.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++)
{
fwrite(&student[i],sizeof(struct student),1,fp); /*将借书记录信息写回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w"); /*清临时文件的记录*/
fclose(fp2);
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/
{
if(i==n)
{
book[i].turefalse=1;
fwrite(&book[i],sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/
continue;
}
fwrite(&book[i],sizeof(struct book),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
{
fwrite(&book[i],sizeof(struct book),1,fp); /*将临时文件写回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w"); /*清临时文件*/
fclose(fp2);
printf("还书完毕,按任意键返回\n");
getch();
return 1;
}
else
printf("你没有借这样的书,任意键返回\n");}/*出错提示*/
fclose(fp);
getch();
return 0;
}
else
printf("系统没这样的卡,和管理员联系,按任意键返回\n");}/*出错提示*/
fclose(fp);
getch();
}

void main()
{
struct book *m;
char ch5;
do
{
printf("---------------欢迎进入图书查询系统!--------------\n");
printf(" 1:<注册卡号>\n");
printf(" 2: <卡号信息>\n");
printf(" 3:<按书籍编号查找>\n");
printf(" 4: <借书>\n");
printf(" 5: <还书>\n");
printf(" 0:<返回>\n");
printf("请输入0--5,其他输入非法!\n");
scanf("%s",&ch5);
switch(ch5)
{
case '1':addcar();getch();
case '2':carcount();getch();break;
case '3':findbook();getch();break;
case '4':borrowbook(m );getch();break;
case '5':huanbook();getch();break;
case '0':break;
default:printf("无此操作\n");getch();break;
}
}while(ch5!='0');
//return FALSE;
}
万企明道
2024-08-07 广告
低代码开发系统,作为上海万企明道软件有限公司的重要产品方向,极大地简化了软件开发流程。它允许非专业开发者通过图形化界面与少量代码,快速构建应用程序。这一系统降低了技术门槛,加速了项目上线时间,同时提升了软件的灵活性和可维护性。我们致力于为用... 点击进入详情页
本回答由万企明道提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式