当前位置:首页 > 代码 > 正文

c图书馆管理系统源代码(图书馆管理系统源代码pathon)

admin 发布:2022-12-19 16:56 133


本篇文章给大家谈谈c图书馆管理系统源代码,以及图书馆管理系统源代码pathon对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用C语言编写的"图书馆管理系统"的源代码,删减版

#include iostream

#include iomanip

#include string

//输入/输出文件流类

#include fstream

using namespace std;

//最多的读者

const int Maxr=100;

//最多的图书

const int Maxb=100;

//每位读者最多借五本书

const int Maxbor=5;

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

class Reader

{

private:

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

int tag;

//读者编号

int no;

//读者姓名

char name[10];

//所借图书

int borbook[Maxbor];

public:

Reader()

{

;

}

//获取姓名

char *getname()

{

return name;

}

//获取删除标记

int gettag()

{

return tag;

}

//获取读者编号

int getno()

{

return no;

}

//设置姓名

void setname(char na[])

{

strcpy(name,na);

}

//设置删除标记 1:已删 0:未删

void delbook()

{

tag=1;

}

//增加读者

void addreader(int n,char *na)

{

tag=0;

no=n;

strcpy(name,na);

for(int i=0;iMaxbor;i++)

borbook[i]=0;

}

//借书操作

void borrowbook(int bookid)

{

for(int i=0;iMaxbor;i++)

{

if (borbook[i]==0)

{

borbook[i]=bookid;

return;

}

}

}

//还书操作

int retbook(int bookid)

{

for(int i=0;iMaxbor;i++)

{

if(borbook[i]==bookid)

{

borbook[i]=0;

return 1;

}

}

return 0;

}

//读出读者信息

void disp()

{

cout setw(5) no setw(10) name"借书编号:[";

for(int i=0;iMaxbor;i++)

if(borbook[i]!=0)

cout borbook[i] "|";

cout "]"endl;

}

};

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

class RDatabase

{

private:

//读者记录指针

int top;

//读者记录

Reader read[Maxr];

public:

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

RDatabase()

{

Reader s;

top=-1;

//打开一个输入文件

fstream file("reader.txt",ios::in);

while (1)

{

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

if (!file)break;

top++;

read[top]=s;

}

//关闭 reader.txt

file.close();

}

//删除所有读者信息

void clear()

{

top=-1;

}

//添加读者时先查找是否存在

int addreader(int n,char *na)

{

Reader *p=query(n);

if (p==NULL)

{

top++;

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

return 1;

}

return 0;

}

//按编号查找

Reader *query(int readerid)

{

for (int i=0;i=top;i++)

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

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

{

return read[i];

}

return NULL;

}

//输出所有读者信息

void disp()

{

for (int i=0;i=top;i++)

read[i].disp();

}

//读者库维护

void readerdata();

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

~RDatabase()

{

fstream file("reader.txt",ios::out);

for (int i=0;i=top;i++)

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

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

file.close();

}

};

void RDatabase::readerdata()

{

char choice;

char rname[20];

int readerid;

Reader *r;

while (choice!='0')

{

cout "\n\n\t\t\t读 者 维 护\n\n\n\t\t 1 新 增\n\n\t\t 2 更 改\n\n\t\t 3 删 除\n\n\t\t 4 查 找\n\n\t\t 5 显 示\n\n\t\t 6 全 删\n\n\t\t 0 退 出"endl;

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 " 该读者不存在 "endl;

break;

}

cout "输入新的姓名:";

cin rname;

r-setname(rname);

break;

case '3':

cout " 输入读者编号:";

cin readerid;

r=query(readerid);

if (r==NULL)

{

cout " 该读者不存在" endl;

break;

}

r-delbook();

break;

case '4':

cout "读入读者编号:";

cin readerid;

r=query(readerid);

if (r==NULL)

{

cout "该读者不存在" endl;

break;

}

r-disp();

break;

case '5':

disp();

break;

case '6':

clear();

break;

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

}

}

}

//图书类,实现对图书的描述,图书的编号,书名,借

private:

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

int tag;

//图书编号

int no;

//书名

char name[20];

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

int onshelf;

public:

Book(){}

//获取姓名

char *getname() { return name; }

//获取图书编号

int getno(){ return no; }

//获取删除标记

int gettag(){ return tag; }

//设置书名

void setname(char na[])

{

strcpy(name,na);

}

//删除图书

void delbook(){ tag=1;}

//增加图书

void addbook(int n,char *na)

{

tag=0;

no=n;

strcpy(name,na);

onshelf=1;

}

//借书操作

int borrowbook()

{

if (onshelf==1)

{

onshelf=0;

return 1;

}

return 0;

}

//还书操作

void retbook()

{

onshelf=1;

}

//输出图书

void disp()

{

cout setw(6) no setw(18) name setw(10)

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

}

};

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

class BDatabase

{

private:

//图书记录指针

int top;

//图书记录

Book book[Maxb];

public:

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

BDatabase()

{

Book b;

top=-1;

fstream file("book.txt",ios::in);

while (1)

{

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

if (!file) break;

top++;

book[top]=b;

}

file.close();

}

//全删

void clear()

{

top=-1;

}

//增加图书

int addbook(int n,char *na)

{

Book *p=query(n);

if (NULL==p)

{

top++;

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

return 1;

}

return 0;

}

//查找图书

Book *query(int bookid)

{

for (int i=0;i=top;i++)

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

{

return book[i];

}

return NULL;

}

//图书库维护

void bookdata();

void disp()

{

for (int i=0;i=top;i++)

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

book[i].disp();

}

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

~BDatabase()

{

fstream file("book.txt",ios::out);

for (int i=0;i=top;i++)

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

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

file.close();

}

};

void BDatabase::bookdata()

{

char choice;

char bname[40];

int bookid;

Book *b;

while (choice!='0')

{

cout "\n\n\n\t\t\t图 书 维 护 "endlendl;

cout"\t\t1 新 增\n \t\t2 更 改\n\t\t3 删 除\n\t\t4 查 找\n\t\t5 显 示\n\t\t6 全 删\n\t\t0 退 出"endl;

cin choice; {

case '1':

cout "输入图书编号:"endl;

cin bookid;

cout "输入图书书名:"endl;

cin bname;

addbook(bookid,bname);

break;

case '2':

cout "输入图书编号:"endl;

cin bookid;

b=query(bookid);

if (b==NULL)

{

cout " 该图书不存在 "endl;

break;

}

cout "输入新的书名:"endl;

cin bname;

b-setname(bname);

break;

case '3':

cout " 读入图书编号:"endl;

cin bookid;

b=query(bookid);

if (b==NULL)

{

cout " 该图书不存在" endl;

break;

}

b-delbook();

break;

case '4':

cout " 读入图书编号:"endl;

cin bookid;

b=query(bookid);

if (b==NULL)

{

cout " 该图书不存在" endl;

break;

}

b-disp();

break;

case '5':

disp();

break;

case '6':

clear();

break;

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

}

}

}

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

void main()

{

char choice;

int bookid,readerid;

RDatabase ReaderDB;

Reader *r;

BDatabase BookDB;

Book *b;

while(choice!='0')

{

cout endlendl"\t\t\t 图 书 管 理 系 统\n\n\n";

cout "\t\t\t1 借 书\n\n\t\t\t2 还 书 \n\n\t\t\t3 图 书 维 护\n\n\t\t\t4 读 者 维 护\n\n\t\t\t0 离 开"endl;

cin choice;

switch (choice)

{

case '1':

cout " 借书 读者编号:";

cin readerid;

cout " 图书编号: ";

cin bookid;

//按编号查找

r=ReaderDB.query(readerid);

if (NULL==r)

{

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

break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout " 不存在该图书,不能借书" endl;

break;

}

if (b-borrowbook()==0)

{

cout " 该图书已借出,不能借书" endl;

break;

}

r-borrowbook(b-getno());

break;

case '2':

cout"还书\n 读者编号:";

cin readerid;

cout " 图书编号:";

cin bookid;

r=ReaderDB.query(readerid);

if (r==NULL)

{

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

break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout " 不存在该图书,不能还书" endl;

break;

}

b-retbook();

r-retbook(b-getno());

break;

case '3':

BookDB.bookdata();

break;

case '4':

ReaderDB.readerdata();

break;

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

}

}

}

c语言 图书管理系统 源代码

#include

#include

#include

#include

#include

struct book{

char number[100];

char tittle[100];

char writer[100];

char publisher[100];

char date[100];

char price[100];

char status[100];

char reader[100];

};

void search_book();

void borrow_book();

void return_book();

void add_book();

void delete_book();

void modify_book();

void scan_book();

int main()

{

int c1=0,c2,c3;

int l,x,z;

while(1)

{

system("color 2C");

printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");

printf("\t\t\t| * - * - * -图书管理系统 * - * - * |\n");

printf("\t\t\t* [1] 用户登录 *\n");

printf("\t\t\t* [2] 管理员登录 *\n");

printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");

printf("\n");

printf("请选择操作 :");

scanf("%d",c1);

system("cls");

break;

}

if(c1==1)

{

while(1){

system("color 2C");

printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");

printf("\t\t\t| * - * - * -图书管理系统 * - * - * |\n");

printf("\t\t\t* [1] 查询图书 *\n");

printf("\t\t\t| [2] 借阅图书 |\n");

printf("\t\t\t* [3] 借图书 *\n");

printf("\t\t\t* [4] 浏览图书信息 *\n");

printf("\t\t\t| [5] 退图书管理系统 |\n");

printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");

printf("\n");

printf("请选择操作 :");

scanf("%d",c2);

getchar();

switch(c2)

{

case 1:search_book(); break;

case 2:borrow_book(); break;

case 3:return_book(); break;

case 4:scan_book(); break;

case 5:system("cls"); return 0;

}

}

}

if(c1==2)

{

while(1){

system("color 2C");

printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");

printf("\t\t\t| * - * - * -图书管理系统 * - * - * |\n");

printf("\t\t\t| [1] 添加图书 |\n");

printf("\t\t\t* [2] 删减图书 *\n");

printf("\t\t\t| [3] 修改图书信息 |\n");

printf("\t\t\t* [4] 浏览图书信息 *\n");

printf("\t\t\t| [5] 退图书管理系统 |\n");

printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");

printf("\n");

printf("请选择操作 :");

scanf("%d",c3);

getchar();

switch(c3)

{

case 1:add_book(); break;

case 2:delete_book(); break;

case 3:modify_book(); break;

case 4:scan_book(); break;

case 5:system("cls"); return 0;

}

}

}

}

/*查询图书*/

void search_book()

{

FILE*fp;

struct book n;

struct book nn;

int l,r;

char x,z;

fp=fopen("F:\\课程设计\\图书管理系统.txt","rb");

while(1)

{

l=0;

system("cls");

printf("请输入图书名称:");

scanf("%s",n.tittle);

fflush(stdin);

rewind(fp);

while(1)

{

fread(nn,sizeof(nn),1,fp);

if(feof(fp))

break;

r=strcmp(n.tittle,nn.tittle );

if(r==0)

{

l=1;

break;

}

}

if(l==0)

{

printf("没要查询图书\n\n ");

}

else

{

printf("查询图书:");

printf("\n");

printf("****************************************\n");

printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");

printf("\n");

printf("%s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);

printf("\n\n\n");

}

printf("否继续查询图书 ? [(y)/否(n)] ? \n\n");

do

{

x=getche();

}while(x!='n'x!='y');

if(x=='n')

break;

}

fclose(fp);

system("cls");

}

//添加

void add_book()

{

FILE *fp;

struct book n;

struct book nn;

char x,z;

int l,r;

fp=fopen("F:\\课程设计\\图书管理系统.txt","ab+");

do

{

system("cls");

do

{

l=0;

printf("\n");

printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");

fflush(stdin);

scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);

system("cls");

rewind(fp);

while(!feof(fp))

{

fread(nn,sizeof(nn),1,fp);

r=strcmp(n.tittle,nn.tittle);

if(r==0)

{

l=1;

printf(" 该图书已存请输入新图书信息: \n\n");

break;

}

}

}while(l);

fwrite(n,sizeof(n),1,fp);

printf("\n");

printf("否继续输入新图书信息[y/n] \n\n");

do

{

x=getche();

}while(x!='n'x!='y');

}while(x=='y');

fclose(fp);

system("cls");

}

//删除图书

void delete_book()

{

FILE *fp,*fp1;

char x,z;

struct book n;

struct book nn;

int l,r;

fp=fopen("F:\\课程设计\\图书管理系统.txt","ab+");

while(1)

{

l=0;

system("cls");

printf("\n");

printf("请输入需要删除图书名: \n\n");

fflush(stdin);

scanf("%s",n.tittle);

rewind(fp);

while(1)

{

fread(nn,sizeof(nn),1,fp);

if(feof(fp))

break;

r=strcmp(n.tittle,nn.tittle);

if(r==0)

{

l=1;

break;

}

}

if(l==0)

{

printf("\n");

printf("起未找该图书 \n");

}

else

{

printf("\n");

printf("****************************************\n");

printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");

printf("\n");

printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);

printf("\n");

printf("确认删除图书信息 [(y)/否(n)]\n\n");

do

{

z=getche();

}while(z!='n'z!='y');

if(z=='n')

break;

else

{

fp1=fopen("F:\\课程设计\\图书管理系统new.txt","wb");

rewind(fp);

while(1)

{

fread(nn,sizeof(nn),1,fp);

if(feof(fp))

break;

r=strcmp(n.tittle,nn.tittle);

if(r!=0)

fwrite(nn,sizeof(nn),1,fp1);

}

fclose(fp);

fclose(fp1);

fp=fopen("F:\\课程设计\\图书管理系统.txt","wb");

fp1=fopen("F:\\课程设计\\图书管理系统new.txt","rb");

while(1)

{

fread(nn,sizeof(nn),1,fp1);

if(feof(fp1))

break;

fwrite(nn,sizeof(nn),1,fp);

}

fclose(fp);

fclose(fp1);

}

}

printf("\n");

printf("否继续删除图书信息 [(y)/否(n)] \n");

do

{

x=getche();

}while(x!='n'x!='y');

if(x=='n')

break;

}

fclose(fp);

system("cls");

}

//修改图书信息

void modify_book()

{

FILE *fp;

struct book n;

struct book nn;

int l,r;

char x,z;

fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");

while(1)

{

l=0;

printf("\n");

system("cls");

printf("请输入需要修改图书名: \n\n");

fflush(stdin);

scanf("%s",n.tittle);

system("cls");

rewind(fp);

while(1)

{

fread(nn,sizeof(nn),1,fp);

if(feof(fp))

break;

r=strcmp(n.tittle,nn.tittle);

if(r==0)

{

l=1;

break;

}

}

if(l==0)

{

printf("\n");

printf("起未找该图书信息 \n\n");

}

else

{

printf("\n");

printf("****************************************\n");

printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");

printf("\n");

printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);

printf("请依修改图书信息\n\n\n");

fflush(stdin);

scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);

fseek(fp,sizeof(nn),1);

fwrite(n,sizeof(nn),1,fp);

}

printf("\n");

printf(" 否继续修改用户信息[y/n]? \n\n");

do

{

x=getch();

}while(x!='n'x!='y');

if(x=='n')

break;

}

fclose(fp);

system("cls");

}

//借书

void borrow_book()

{

FILE*fp;

struct book n;

struct book nn;

char x,z;

int l,r;

fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");

while(1)

{

l=0;

system("cls");

printf("\n");

printf("请输入需要借阅图书名: \n");

fflush(stdin);

scanf("%s",n.tittle);

rewind(fp);

while(1)

{

fread(nn,sizeof(nn),1,fp);

if(feof(fp))

break;

r=strcmp(n.tittle,nn.tittle);

if(r==0)

{

l=1;

break;

}

}

if(l==0)

{

printf("\n");

printf("起未找该图书 \n");

}

else

{ printf("\n");

printf("****************************************\n");

printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");

printf("\n");

printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);

printf("\n");

fflush(stdin);

printf("请输入图书信息并修改库状态及借阅者信息");

printf("****************************************\n");

printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");

printf("\n");

scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);

fseek(fp,sizeof(nn),1);

fwrite(n,sizeof(nn),1,fp);

}

printf("\n");

printf(" 否继续借书 [(y)/否(n)] \n\n");

do

{

x=getch();

}while(x!='n'x!='y');

if(x=='n')

break;

}

fclose(fp);

system("cls");

}

//书

void return_book()

{

FILE*fp;

struct book n;

struct book nn;

char x,z;

int l,r;

fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");

while(1)

{

l=0;

system("cls");

printf("\n");

printf("请输入需要借图书名: \n");

fflush(stdin);

scanf("%s",n.tittle);

rewind(fp);

while(1)

{

fread(nn,sizeof(nn),1,fp);

if(feof(fp))

break;

r=strcmp(n.tittle,nn.tittle);

if(r==0)

{

l=1;

break;

}

}

if(l==0)

{

printf("\n");

printf("起未找该图书 \n");

}

else

{

printf("\n");

printf("****************************************\n");

printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");

printf("\n");

printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);

printf("\n");

fflush(stdin);

printf("请输入图书信息并修改库状态 \n\n");

printf("****************************************\n");

printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");

printf("\n");

scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);

fseek(fp,-(int)sizeof(nn),1);

fwrite(n,sizeof(nn),1,fp);

}

printf("\n");

printf("否继续书 [(y)/否(n)] \n");

do

{

x=getche();

}while(x!='n'x!='y');

if(x=='n')

break;

}

fclose(fp);

system("cls");

}

//浏览

void scan_book()

{

FILE*fp;

char x,z;

struct book n;

fp=fopen("F:\\课程设计\\图书管理系统.txt","rb");

rewind(fp);

system("cls");

while(1)

{

fread(n,sizeof(n),1,fp);

if(feof(fp))

break;

else

{

printf("********************************************\n");

printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");

printf("\n");

printf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);

printf("\n");

}

}

printf("\n");

printf("主菜单请按车");

do

{

x=getche();

}while(x!='\r');

if(x=='\r')

{

fclose(fp);

system("cls");

}

}

c语言程序设计图书馆源代码

#include stdio.h

#include stdlib.h

#include time.h

#include string.h

typedef int BOOL;

typedef struct bookinfo

{

char number[15];/*产品编号*/

char name[30];/*产品名称*/

float price;/*单价*/

char auther[20];/*作者*/

BOOL isExit;/*存在状态*/

char lendername[20];/*借书人姓名*/

char lendersex[2];/*借书人性别*/

char lendernum[15];/*借书人学号*/

}BOOKINFO;

void menu()

{

printf("\n\n\n\n\n\n\n");

printf("\t\t\t图书管理系统\n");

printf("\t\t\t1:新进图书基本信息的输入\n");

printf("\t\t\t2:显示全部记录\n");

printf("\t\t\t3:根据图书名称查询图书基本信息\n");

printf("\t\t\t4:根据图书名称对撤销的图书信息进行删除\n");

printf("\t\t\t5:按照图书名称从小大到排序\n");

printf("\t\t\t6:统计某价格以上的图书数量\n");

printf("\t\t\t7:列出所有未借出去的图书信息\n");

printf("\t\t\t8:退出\n");

}

void choice_1_input_new()/*输入新进的图书信息*/

{

char choice;

FILE *p;

BOOKINFO newbook;

system("cls");

while(1)

{

printf("输入图书编号:");

gets(newbook.number);

printf("输入图书名称:");

gets(newbook.name);

printf("输入图书单价:");

scanf("%f",newbook.price);

while(getchar()!='\n');

printf("输入图书的作者:");

gets(newbook.auther);

printf("输入借书人姓名:");

gets(newbook.lendername);

printf("输入借书人性别:");

gets(newbook.lendersex);

printf("输入借书人学号:");

gets(newbook.lendernum);

printf("是否保存该条书目?(Y/N)\n");

if(choice=='Y'||choice=='y')

{

newbook.isExit=1;/*将图书状态设置成1,表示没有借出*/

p=fopen("c:\\bookinfo.data","ab");

fwrite(newbook,sizeof(BOOKINFO),1,p);

fclose(p);

printf("\n该条书目已添加到c:\\bookinfo.data文件中!\n");

}

else

{

printf("\n本条书目未保存!\n");

}

printf("\n是否继续添加书目?(Y/N)\n");

while(choice!='Y'choice!='y'choice!='N'choice!='n')

if(choice=='Y'||choice=='y')

continue;

else

break;

}

}

void choice_2_display_all()/*显示全部图书信息*/

{

FILE *p;

int n;

BOOKINFO bookinfo[100];

int booknumber=0;

system("cls");

p=fopen("c:\\bookinfo.data","rb");

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

/*booknumber--;使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

booknumber--;

if(booknumber==0)

{

printf("没有任何图书信息!\n\n");

}

else

{

n=0;

printf(" 图书信息如下\n");

printf(" 图书信息 | 借书人信息 \n");

printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n");

while(nbooknumber)

{

printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n",

bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

n++;

}

}

printf("\n\n按任意键回到主菜单!\n");

}

void choice_3_search_according_name()/*根据图书名称显示图书的信息*/

{

char search[20]="";/*search用来存放要查询的书名*/

int n;

FILE *p;

char choice;

BOOKINFO bookinfo[100];

int booknumber=0;

system("cls");

p=fopen("c:\\bookinfo.data","rb");

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

while(1)

{

printf("输入要查询的书本名称:");

gets(search);

if(booknumber==0)

{

printf("书库中没有任何信息!\n\n");

printf("按任意键回到主菜单!\n\n");

getch();

break;

}/*if结束*/

else

{

for(n=0;nbooknumber;n++)

if(strcmp(bookinfo[n].name,search)==0)

{

printf("该书的详细信息如下:\n");

printf(" 图书信息 | 借书人信息 \n");

printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n");

printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n",

bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

break;

}

if(n=booknumber)

printf("没有查找该书的任何信息!\n");

printf("\n\n是否继续查询?(Y/N)\n");

choice=getch();

while(choice!='Y'choice!='y'choice!='N'choice!='n')

choice=getch();

if(choice=='Y'||choice=='y')

continue;

else

break;

}/*else结束*/

}/*while(1)结束*/

}

void choice_4_delete_according_name()/*根据图书名称对图书信息进行删除*/

{

char search[20]="";/*search用来存放要删除的书名*/

int n,i;

FILE *p;

char choice;

BOOKINFO bookinfo[100];

int booknumber;

system("cls");

while(1)

{

printf("输入要删除的书本名称:");

gets(search);

p=fopen("c:\\bookinfo.data","rb");

booknumber=0;

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

if(booknumber==0)

{

printf("书库中没有任何信息!\n\n");

printf("按任意键回到主菜单!\n\n");

getch();

break;

}/*if结束*/

else

{

for(n=0;nbooknumber;n++)

if(strcmp(bookinfo[n].name,search)==0)

{

break;

}

if(n=booknumber)

printf("没有查找该书的任何信息!\n");

else

{

printf("是否确认需要删除该条书目?(Y/N)");

choice=getch();

while(choice!='Y'choice!='y'choice!='N'choice!='n')

choice=getch();

if(choice=='Y'||choice=='y')

{

for(i=n;ibooknumber-1;i++)

bookinfo[i]=bookinfo[i+1];

booknumber--;

p=fopen("c:\\bookinfo.data","wb");

for(n=0;nbooknumber;n++)

fwrite(bookinfo[n],sizeof(BOOKINFO),1,p);

fclose(p);

printf("删除成功!\n");

}

else

printf("\n\n该条书目没有被删除!");

}

printf("\n\n是否继续进行删除操作?(Y/N)\n");

choice=getch();

while(choice!='Y'choice!='y'choice!='N'choice!='n')

choice=getch();

if(choice=='Y'||choice=='y')

continue;

else

break;

}/*else结束*/

}/*while(1)结束*/

}

void choice_5_sort_according_name()/*根据图书名称排序*/

{

FILE *p;

int m,n;

BOOKINFO temp;

BOOKINFO bookinfo[100];

int booknumber;

p=fopen("c:\\bookinfo.data","rb");

booknumber=0;

system("cls");

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

if(booknumber==0)

{

printf("没有任何图书信息!\n\n");

}

else

{

for(m=0;mbooknumber-1;m++)

for(n=m+1;nbooknumber;n++)

if(strcmp(bookinfo[m].name,bookinfo[n].name)0)

{

temp=bookinfo[m];

bookinfo[m]=bookinfo[n];

bookinfo[n]=temp;

}

p=fopen("c:\\bookinfo.data","wb");

for(m=0;mbooknumber;m++)

fwrite(bookinfo[m],sizeof(BOOKINFO),1,p);

fclose(p);

printf("\n\n完成排序!\n\n");

}

printf("按任意键回到主菜单!\n");

getch();

}

void choice_6_display_high_price()/*根据价格列出图书信息*/

{

float price;

FILE *p;

int n;

int count=0;

BOOKINFO bookinfo[100];

int booknumber;

system("cls");

printf("请输入价格:");

scanf("%f",price);

p=fopen("c:\\bookinfo.data","rb");

booknumber=0;

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/

fclose(p);

if(booknumber==0)

{

printf("没有任何图书信息!\n\n");

}

else

{

for(n=0;nbooknumber;n++)

{

if(bookinfo[n].price=price)

count++;

}

if(count==0)

printf("书库中没有比%.1f$价格高的图书!",price);

else

{

printf(" 价格高于%.1f$的图书信息如下\n",price);

printf(" 图书信息 | 借书人信息 \n");

printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n");

for(n=0;nbooknumber;n++)

{

if(bookinfo[n].price=price)

printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n",

bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

}

}

}

printf("\n\n按任意键回到主菜单!\n");

getch();

}

void choice_7_display_according_exitflag()/*根据存在状态列出图书信息*/

{

FILE *p;

int n;

int count=0;

BOOKINFO bookinfo[100];

int booknumber;

system("cls");

booknumber=0;

p=fopen("c:\\bookinfo.data","rb");

while(!feof(p))

{

fread(bookinfo[booknumber],sizeof(BOOKINFO),1,p);

booknumber++;

}

booknumber--;

fclose(p);

if(booknumber==0)

{

printf("书库中没有任何书目存在!\n");

}

else

{

for(n=0;nbooknumber;n++)

if(bookinfo[n].isExit==1)

count++;

if(count==0)

printf("书库中的书籍全部借出!\n");

else

{

printf("书库中未被借出的图书信息如下:\n\n");

printf(" 图书信息 | 借书人信息 \n");

printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号\n");

for(n=0;nbooknumber;n++)

if(bookinfo[n].isExit==1)

{

printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8s\n",

bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,

bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername,

bookinfo[n].lendersex,bookinfo[n].lendernum);

}

}

}

printf("\n按任意键返回主菜单!\n");

getch();

}

void main()

{

char choice;

clock_t tm;

FILE *p;

if((p=fopen("c:\\bookinfo.data","rb"))==NULL)

{

p=fopen("c:\\bookinfo.data","wb");

fclose(p);

}

while(1)

{

system("cls");

menu();

choice=getch();

switch(choice)

{

case '1':choice_1_input_new();break;/*输入新进的图书信息*/

case '2':choice_2_display_all();break;/*显示全部图书信息*/

case '3':choice_3_search_according_name();break;/*根据图书名称显示图书的信息*/

case '4':choice_4_delete_according_name();break;/*根据图书名称对图书信息进行删除*/

case '5':choice_5_sort_according_name();break;/*根据图书名称排序*/

case '6':choice_6_display_high_price();break;/*根据价格列出图书信息*/

case '7':choice_7_display_according_exitflag();break;/*根据存在状态列出图书信息*/

case '8':printf("\n\n\t\t\t谢谢使用,再见!\n\t\t\t按任意键退出!\n");getch();return;

default:

printf("\n\n\t\t\t请输入菜单中的数字!(1~8)");

tm=clock();

while(clock()tm+1800);

break;

}

}

}

关于c图书馆管理系统源代码和图书馆管理系统源代码pathon的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/14352.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载