用C语言编写一个“图书信息管理系统

作者&投稿:焦罚 (若有异议请与网页底部的电邮联系)
~

换了一个,你看看:

#include

#include

#include

#include//输入/输出文件流类

usingnamespacestd;

constintMaxr=100;//最多的读者

constintMaxb=100;//最多的图书

constintMaxbor=5;//每位读者最多借五本书

//读者类,实现对读者的信息的描述

classReader

{

private:

inttag;//删除标记1:已删0:未删

intno;//读者编号

charname[10];//读者姓名

intborbook[Maxbor];//所借图书

public:

Reader(){}

char*getname(){returnname;}//获取姓名

intgettag(){returntag;}//获取删除标记

intgetno(){returnno;}//获取读者编号

voidsetname(charna[])//设置姓名

{

strcpy(name,na);

}

voiddelbook(){tag=1;}//设置删除标记1:已删0:未删

voidaddreader(intn,char*na)//增加读者

{

tag=0;

no=n;

strcpy(name,na);

for(inti=0;i

borbook[i]=0;

}

voidborrowbook(intbookid)//借书操作

{

for(inti=0;i

{

if(borbook[i]==0)

{

borbook[i]=bookid;

return;

}

}

}

intretbook(intbookid)//还书操作

{

for(inti=0;i

{

if(borbook[i]==bookid)

{

borbook[i]=0;

return1;

}

}

return0;

}

voiddisp()//读出读者信息

{

cout<

for(inti=0;i

if(borbook[i]!=0)

cout<

cout<<"]"<

}

};

//读者类库,实现建立读者的个人资料

classRDatabase

{

private:

inttop;//读者记录指针

Readerread[Maxr];//读者记录

public:

RDatabase()//构造函数,将reader.txt读到read[]中

{

Readers;

top=-1;

fstreamfile("reader.txt",ios::in);//打开一个输入文件

while(1)

{

file.read((char*)&s,sizeof(s));

if(!file)break;

top;

read[top]=s;

}

file.close();//关闭reader.txt

}

voidclear()//删除所有读者信息

{

top=-1;

}

intaddreader(intn,char*na)//添加读者时先查找是否存在

{

Reader*p=query(n);

if(p==NULL)

{

top;

read[top].addreader(n,na);

return1;

}

return0;

}

Reader*query(intreaderid)//按编号查找

{

for(inti=0;i<=top;i)

if(read[i].getno()==readerid&&

read[i].gettag()==0)

{

return&read[i];

}

returnNULL;

}

voiddisp()//输出所有读者信息

{

for(inti=0;i<=top;i)

read[i].disp();

}

voidreaderdata();//读者库维护

~RDatabase()//析构函数,将read[]写到reader.txt文件中

{

fstreamfile("reader.txt",ios::out);

for(inti=0;i<=top;i)

if(read[i].gettag()==0)

file.write((char*)&read[i],sizeof(read[i]));

file.close();

}

};

voidRDatabase::readerdata()

{

charchoice;

charrname[20];

intreaderid;

Reader*r;

while(choice!='0')

{

cout<<"

读者维护


1新增

2更改

3删除

4查找

5显示

6全删

0退出"<

cin>>choice;

switch(choice)

{

case'1':

cout<<"输入读者编号:";

cin>>readerid;

cout<<"输入读者姓名:";

cin>>rname;

addreader(readerid,rname);

break;

case'2':

cout<<"输入读者编号:";

cin>>readerid;

r=query(readerid);

if(r==NULL)

{

cout<<"该读者不存在"<

break;

}

cout<<"输入新的姓名:";

cin>>rname;

r->setname(rname);

break;

case'3':

cout<<"输入读者编号:";

cin>>readerid;

r=query(readerid);

if(r==NULL)

{

cout<<"该读者不存在"<

break;

}

r->delbook();

break;

case'4':

cout<<"读入读者编号:";

cin>>readerid;

r=query(readerid);

if(r==NULL)

{

cout<<"该读者不存在"<

break;

}

r->disp();

break;

case'5':

disp();

break;

case'6':

clear();

break;

default:cout<<"输入错误,请从新输入:";break;

}

}

}

//图书类,实现对图书的描述,图书的编号,书名,借出,还入等

classBook

{

private:

inttag;//删除标记1:已删0:未删

intno;//图书编号

charname[20];//书名

intonshelf;//是否再架1:再架2:已借

public:

Book(){}

char*getname(){returnname;}//获取姓名

intgetno(){returnno;}//获取图书编号

intgettag(){returntag;}//获取删除标记

voidsetname(charna[])//设置书名

{

strcpy(name,na);

}

voiddelbook(){tag=1;}//删除图书

voidaddbook(intn,char*na)//增加图书

{

tag=0;

no=n;

strcpy(name,na);

onshelf=1;

}

intborrowbook()//借书操作

{

if(onshelf==1)

{

onshelf=0;

return1;

}

return0;

}

voidretbook()//还书操作

{

onshelf=1;

}

voiddisp()//输出图书

{

cout<

<<(onshelf==1?"在架":"已借")<

}

};

//图书库类,实现对图书的维护,查找,删除等

classBDatabase

{

private:

inttop;//图书记录指针

Bookbook[Maxb];//图书记录

public:

BDatabase()//构造函数,将book.txt读到book[]中

{

Bookb;

top=-1;

fstreamfile("book.txt",ios::in);

while(1)

{

file.read((char*)&b,sizeof(b));

if(!file)break;

top;

book[top]=b;

}

file.close();

}

voidclear()//全删

{

top=-1;

}

intaddbook(intn,char*na)//增加图书

{

Book*p=query(n);

if(NULL==p)

{

top;

book[top].addbook(n,na);

return1;

}

return0;

}

Book*query(intbookid)//查找图书

{

for(inti=0;i<=top;i)

if(book[i].getno()==bookid&&book[i].gettag()==0)

{

return&book[i];

}

returnNULL;

}

voidbookdata();//图书库维护

voiddisp()

{

for(inti=0;i<=top;i)

if(book[i].gettag()==0)

book[i].disp();

}

~BDatabase()//析构函数,将book[]写到book.txt文件中

{

fstreamfile("book.txt",ios::out);

for(inti=0;i<=top;i)

if(book[i].gettag()==0)

file.write((char*)&book[i],sizeof(book[i]));

file.close();

}

};

voidBDatabase::bookdata()

{

charchoice;

charbname[40];

intbookid;

Book*b;

while(choice!='0')

{

cout<<"


图书维护"<

cout<<"1新增
2更改
3删除
4查找
5显示
6全删
0退出"<

cin>>choice;

switch(choice)

{

case'1':

cout<<"输入图书编号:"<

cin>>bookid;

cout<<"输入图书书名:"<

cin>>bname;

addbook(bookid,bname);

break;

case'2':

cout<<"输入图书编号:"<

cin>>bookid;

b=query(bookid);

if(b==NULL)

{

cout<<"该图书不存在"<

break;

}

cout<<"输入新的书名:"<

cin>>bname;

b->setname(bname);

break;

case'3':

cout<<"读入图书编号:"<

cin>>bookid;

b=query(bookid);

if(b==NULL)

{

cout<<"该图书不存在"<

break;

}

b->delbook();

break;

case'4':

cout<<"读入图书编号:"<

cin>>bookid;

b=query(bookid);

if(b==NULL)

{

cout<<"该图书不存在"<

break;

}

b->disp();

break;

case'5':

disp();

break;

case'6':

clear();

break;

default:cout<<"输入错误,请从新输入:";

}

}

}

//main()函数的实现,程序的主界面的引导

voidmain()

{

charchoice;

intbookid,readerid;

RDatabaseReaderDB;

Reader*r;

BDatabaseBookDB;

Book*b;

while(choice!='0')

{

cout<

";

cout<<"1借书

2还书

3图书维护

4读者维护

0离开"<

cin>>choice;

switch(choice)

{

case'1':

cout<<"借书读者编号:";

cin>>readerid;

cout<<"图书编号:";

cin>>bookid;

r=ReaderDB.query(readerid);//按编号查找

if(NULL==r)

{

cout<<"不存在该读者,不能借书"<

break;

}

b=BookDB.query(bookid);

if(b==NULL)

{

cout<<"不存在该图书,不能借书"<

break;

}

if(b->borrowbook()==0)

{

cout<<"该图书已借出,不能借书"<

break;

}

r->borrowbook(b->getno());

break;

case'2':

cout<<"还书
读者编号:";

cin>>readerid;

cout<<"图书编号:";

cin>>bookid;

r=ReaderDB.query(readerid);

if(r==NULL)

{

cout<<"不存在该读者,不能还书"<

break;

}

b=BookDB.query(bookid);

if(b==NULL)

{

cout<<"不存在该图书,不能还书"<

break;

}

b->retbook();

r->retbook(b->getno());

break;

case'3':

BookDB.bookdata();

break;

case'4':

ReaderDB.readerdata();

break;

default:cout<<"输入错误,请从新输入:";

}

}

}




如何编写C语言图形程序?
图 1 打开文件 方法2 在Turbo C for Windows 集成实验与学习环境中的“我的程序”下用鼠标双击你要打开的C程序即可(此处列出最近使用的8个文件)图 2 在“我的程序”中打开程序 方法3在Turbo C for Windows 集成实验与学习环境中,依次用鼠标单击“文件\/我的程序”菜单,打开“我的程序”对话框...

编写C语言程序输出以下图案 ### *** ### ** #,要有详细过程,悬赏秒结...
这个程序非常简单。它包括一个main函数,该函数使用printf函数来输出指定的图案。printf函数是C语言中用于输出文本的函数。在上面的程序中,我们调用printf函数并将所需的文本作为参数传递。要输出多个字符串,只需在每个字符串之间添加适当的空格或其他分隔符即可。在本例中,我们将所有字符串组合成一个大字...

如何用C语言编写流程图?
1、传统流程图:2、思路:比大小,10个数,标上标签,依次为1,2,3...10。然后第1个跟第二个比较大小,如果第1个大于第二个,那么交换下1跟2的标签,如果第1个不大于2第二个,不交换标签,接着比较第二个跟第三个,比完最后一个为止。10标签的就是最大的那个数。3、用C语言方法:读入a[...

怎样用C语言编写个爱心图象
创建一个心形图案需要的最长字符串,充分利用printf函数输出字符串的丰富控制功能,按心形图案每行所需长度和位置,对所创建的字符串进行截断并在所需位置上输出,最后在屏幕上形成由字符组成的心形图案。\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include "stdio.h"int main(void)...

怎样用c语言编写一个输出“苹果图案”的程序
输出苹果图案程序如下:include<stdio.h> int t;\/\/定义全局变量,用于循环 char tab[] = {\/\/储存用于输出图形的数组 0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,0,0,1,0,0,1,0,0,};void main(){ for (t ...

用C语言输出一个五角星图案
1、获得五个外顶点的坐标:int m_xw[5]; \/\/5个X外顶点坐标 int m_yw[5]; \/\/5个Y外顶点坐标 void CMyTestView::getCoord(){ int c = 360 \/ 5; \/\/角度 int r = 150;for (int i = 0; i < 5; i++){ m_xw[i] = (int) (cos(i * c * PI \/ 30 - PI \/ 2...

C语言设计一个简单的图形动画,用turboc2运行,怎样编写使图形动起来的...
1、首先,打开vc6.0,建立程序编写页面,建立C语言环境,声明两个整数型变量。2、随后,打出新的前三行,由于规律不明显,就用printf语句手动输入,要仔细观察模版。3、观察可得,中间三行相同,就可以使用for循环,循环三行,每行的个数要仔细计算,模版很重要。4、随后的七列逐渐减少,同样使用for...

怎样用c语言写一个图形界面
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow ){ static TCHAR szAppName[] = TEXT("MyWindow") ;HWND hwnd ;MSG msg ;WNDCLASS wndclass ; \/\/声明一个窗口类对象 \/\/以下为窗口类对象wndclass的属性 wndclass.style = CS_HREDRAW | CS_VR...

C语言编写程序输出一下图形(程序用循环实现)
-每行星号前面没有前导空格,不处理 -每行输出星号个数:5,4,3,2,1,这个用i来算就是:5-i,for ( j=0;j<5-i;j++ )那么程序就是:int i,j;for ( i=0;i<5;i++ ) \/\/每一次循环实现输出一行 { for ( j=0;j<5-i,j++ ) \/\/每执行一次循环输出一个星号,循环次数就是...

用c语言编写一个程序,输出以下图形。
include<stdio.h>main(){ int i,j; for(i=1;i<=9;i++){ for(j=1;j<=i;j++) printf("%d",i); printf("\\n");}}如图所示,望采纳。。。

霍山县13547886908: 求纯c语言编写的 图书信息管理系统 a~ -
墨昏朝阳: #include using namespace std; class controlloer //图书管理员 { private: int number; int age; char name[20]; public: controlloer(); controlloer(int c,int a,char b[20] ); int getnumber(); int getage(); char *getname(); void reworkage(int i); void reworkname(...

霍山县13547886908: 一个简单的图书管理系统,C语言 -
墨昏朝阳: #include#include int function1(); int function2(); int function3(); int function4(); int function5(); int function6(); int function7(); int function8(); int main(void) { int choice; printf("======大学信息管理系统=====\n"); printf("---------------------------\n"); ...

霍山县13547886908: 用C语言编写一个图书管理系统 -
墨昏朝阳: #include<stdio.h> #include<string.h> struct sale/*商品名的定义*/ {int number; char name[20]; float price; long count; long time; long date;}; /*各个函数*/ void input(struct sale s[7]);/*输入函数*/ void output(struct sale s[7]);/*输出函数*/ void seek(...

霍山县13547886908: 求用C语言编写的图书信息管理系统
墨昏朝阳: (2) #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> void ReadBookRecord(BookRecord*, FILE*); void FillRecord(char* line, BookRecord*); FILE* open_file(const char* file_name); void GetNumber(const char* file_name...

霍山县13547886908: 用C语言编一个简单的图书管理系统(包括借阅查询还书三部分)(学生作业用) -
墨昏朝阳: 展开全部#include#include struct sale/*商品名的定义*/ {int number; char name[20]; float price; long count; long time; long date;}; /*各个函数*/ void input(struct sale s[7]);/*输入函数*/ void output(struct sale s[7]);/*输出函数*/ void seek(struct sale s[...

霍山县13547886908: 求C语言编译的图书管理系统
墨昏朝阳: #include<iostream.h> #include<fstream.H> #include<stdlib.h> #include<string.h> struct bookData { int booknumber; char bookname[30]; int store; }; struct Person { char name[20]; char studynumber[10]; int count; bookData Rbook[2]; //bookData ...

霍山县13547886908: 图书信息管理系统设计 c语言 -
墨昏朝阳: 高级语言程序设计(2)课程设计 一程序设计说明书【设计题目】图书馆借阅管理【问题描述】图书馆,适合用C++面向对象的功能来描述.图书馆管理系统分为借书、还书、图书管理和读者服务等四个部分.设计一个读者类Reader,记录每个...

霍山县13547886908: 如何使用C语言编写图书管理系统? -
墨昏朝阳: 图书管理系统是运行于Windows系统下的应用软件,主要用于对图书馆中的图书信息进行增、删、改、查等操作,并且还可对使用该系统的用户进行登录名和密码的管理等.系统给用户提供了一个简单的人机界面,使用户可以根据提示输入操作...

霍山县13547886908: 求一图书管理系统C语言程序 -
墨昏朝阳: #includestruct BOOK { int id,usr[10],total,store,days[10]; char name[31],author[21]; }books[100]; /*上面是结构体的定义,用于存放书籍及借书的信息.*/ void page_title(char *menu_item) { clrscr(); printf(">>> 图 书 管 理 系 统 } /*上面是打印页...

霍山县13547886908: 求图书管理系统C语言源程序
墨昏朝阳: c++实训--图书管理系统程序这个程序适合c++实训使用,在ODBC数据源内添加Microsoft Access数据库 b,并将数据源名设定为Library即可实现数据库和应用程序的正常连接,程序才能正常实现数据库的访问

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网