用C语言编写大学图书库存管理系统 若答案合适 可再给100分

用c语言编写图书库存管理系统
图书库存管理系统
任务:自学C语言中相关知识,设计出库存管理系统。要求如下所述:
1. 能够完成图书出库和入库记录。必须录入的图书信息:图书名,图书号,借阅人姓名,借阅人学号,借阅人班级等。其它信息可以自行增加。以文件(books.txt)的形式保存当天所有图书的出入库情况。 (请自学文件的教材第13章——文件)
出库功能
对需要借阅的图书进行查询,若查询到库存量大于等于1,则可以出库,且减少图书库存量,并记录借阅人信息,如:姓名,班级,学号等。
入库功能
借阅人还书时,将该图书库存量加1
2. 查询显示功能。
可以通过学生学号,姓名等关键字来查询该生图书借阅记录。
可以通过图书名或者图书书号查询该图书的出入库记录。
3.可以浏览显示借阅同一本图书的所有借阅人信息。
4.可以浏览同一个借阅人借阅的所有图书信息。
5.可自行增加其他附加功能。
急 !!!!

第1个回答  2014-09-05

好了,希望能够帮到您。

如果你真的要纯c的话,只需要改一下输入输出就可。

即:cin,cout改为scanf,printf。

//Memory   Time
// 1347K   0MS
// by : Snarl_jsb
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<string>
#include<climits>
#include<cmath>
#define N 1000010
#define LL long long
using namespace std;
#include<iostream>
#include<iomanip>
#include<string>
#include<fstream>
#include<stdio.h>
using namespace std;
const   int   Maxb=10000;   //最多的图书
class   Book//图书类
{
int   tag;   //删除标记1:已删0:未删
int   number;   //ISBN书号
char   name[20];   //书名
char author[10]; //主编
char number2[10];//版次
char position[20];//出版社
char time[20];//出版年
int price;//定价
int   onshelf;   //是否在架1:在架0:已借
public:
Book()   {}
char  *getname()   {   return   name;   }   //获取姓名
int   getnumber()   {   return   number;   }     //获取ISBN书号
int   gettag()   {   return   tag;   }   //获取删除标记
char *getauthor()    {return author;}       //获取主编
char *getnumber2()       {return number2;}               //获取版次
char *getposition() {return position;}               //获取出版社
char *gettime() {return time;}             //获取出版年
char getprice() {return price;}           //获取图书定价
void   delbook()   {   tag=1;   }   //删除图书
void   addbook(int n,char *na,char *au,char *n2,char *da,char *ti,int pr)   //增加图书
{
tag=0;
number=n;
price=pr;
strcpy(name,na);
strcpy(author,au);
strcpy(number2,n2);
strcpy(position,da);
strcpy(time,ti);
onshelf=1;
}



void   disp()   //输出图书
{
cout   <<   setw(10)   <<   number   <<   setw(10)   <<   name   <<   setw(10)
<<   setw(10)<<author<<setw(10)<<number2<<setw(10)<<position<<setw(10)<<time<<setw(10)<<price<<endl;
}
};

class   BDatabase   //图书库类
{
int   top;   //图书记录指针
Book   book[Maxb];   //图书记录
public:
BDatabase()   //构造函数,将book.txt读到book[]中
{
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,char *au, char *n2, char *da,char *ti,int pr)   //增加图书
{
Book   *p=search1(n);
if   (p==NULL)
{
top++;
book[top].addbook(n,na,au,n2,da,ti,pr);
return   1;
}
return   0;
}


Book   *search1(int   bookid)   //查找图书
{
for   (int   i=0;i<=top;i++)
if   (book[i].getnumber()==bookid   &&
book[i].gettag()==0)
return   &book[i];
return   NULL;
}


Book *search2(int bookid,char *name)          //按书名查找图书
{
   for(int i=0;i<=top;i++)
       if(strcmp(book[i].getname(),name)==0)
    {bookid=book[i].getnumber();
    return &book[i];
    }

   return NULL;
}

Book *search3(int bookid,char *author)          //按主编查找图书
{
   for(int i=0;i<=top;i++)
       if(strcmp(book[i].getauthor(),author)==0)
    {bookid=book[i].getnumber();
    return &book[i];
    }

   return NULL;
}

void   bookdata();   //图书库维护

void   disp()
{
   cout<<setw(10)<<"图书书号"<<setw(10)<<"图书名字"<<setw(10)<<"图书主编"<<setw(10)<<"版次"<<setw(10)<<"出版社"<<setw(10)<<"出版年"<<setw(10)<<"价格"<<endl<<endl<<endl<<endl;
for   (int   i=0;i<=top;i++)
if   (book[i].gettag()==0)
book[i].disp();
}
~BDatabase()   //析构函数,将book[]写入book.txt文件中
{
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()
{
int  choice=1;
int  choice2=1;
int  choice3=1;
int  choice4;
char bname[40];
char editor[40];
char banci[40];
char position[40];
char year[40];
int  value;
int  bookid;
Book   *b;
while   (choice!=0)
{
 cout<<endl<<endl;
cout<<"    **************************** "<<endl;
cout<<"    ****   1添加图书        **** "<<endl;
cout<<"    ****   3 删除图书       **** "<<endl;
cout<<"    ****   4 图书查询       **** "<<endl;
cout<<"    ****   5 显示图书       **** "<<endl;
cout<<"    ****   6 全部删除       **** "<<endl;
cout<<"    ****   7 借书           **** "<<endl;
cout<<"    ****   8 还书           **** "<<endl;
cout<<"    ****   0 退出           **** "<<endl;
cout<<"    ****************************"<<endl<<endl;
cout<<endl<<"请按键选择您需要的操作:";
cin>>choice;
while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=0){
    cout<<endl<<"   ** 您输入的编号在菜单里不存在,请重新输入 **"<<'\a'<<endl<<endl;
    cout<<"   请选择您需要的操作:";
    cin>>choice;
}

switch   (choice)
{
case   1:
cout   <<"输入ISBN书号(一定为数字否则会异常):";
cin   >>   bookid;
   cout   <<"输入书名:";
cin   >>   bname;
   cout <<"输入主编:";
cin   >>editor;
cout <<"输入版次(一定为数字否则会异常):";
cin>>banci;
cout<<"输入出版社:";
cin>>position;
cout<<"输入出版年(一定为数字否则会异常):";
   cin>>year;
cout<<"输入价格(一定为数字否则会异常):";
cin>>value;
addbook(bookid,bname,editor,banci,position,year,value);
cout<<"ISBN书号"<<bookid<<"添加成功,如需返回主菜单请按1,退出系统请按0(一定要输入数字)";
cin>>choice4;
while (choice4!=0&&choice4!=1)
{
 cout<<"输入错误请重新输入"<<endl;
 cin>>choice4;}
switch (choice4)
{
case 1:
choice=1;
break;
case 0:
  choice=0;
  break;}
break;


case   3:
cout   <<   "   输入ISBN书号:";
cin   >>   bookid;
b=search1(bookid);
if   (b==NULL)
{
cout   <<   "   该图书不存在"   <<   endl;
break;
}
b->delbook();
break;
case   4:
   cout<<"查找方式:"<<endl<<"1按ISBN书号查询 2按书名查询 3按主编查询 0退出:";
   cin>>choice3;
switch(choice3)
{
case 1:
   {cout   <<   "   输入ISBN书号:";   //按ISBN书号查询
cin   >>   bookid;
b=search1(bookid);
if   (b==NULL)
{
cout   <<   "   该图书不存在"   <<   endl;
break;
}
b->disp();
}
break;
case 2:
{
   cout<<"请输入书名:";
    cin>>bname;
       b=search2(bookid,bname);
       if(b==NULL)
    {
     cout<<"该图书不存在啊!"<<endl;
     break;
    }
    b->disp();
}

   break;
case 3:
   {
    cout<<"请输入主编:";
   cin>>editor;
      b=search3(bookid,editor);
   if(b==NULL)
   {
    cout<<"该主编不存在!"<<endl;
    break;
   }
   b->disp();
}
   break;
}
break;
case   5:
disp();
break;
case   6:
clear();
break;
}
}
cout<<endl<<"          ****** 慢走 ******"<<endl<<endl<<endl;
};

int main()
{
BDatabase   BookDB;
cout<<endl<<endl<<endl;
cout<<"      Welcome to the library of SCU        "<<endl;
cout<<"    欢 迎 来 到 四 川 大 学 图 书 馆  "<<endl;
cout<<endl<<endl<<"请输入0进入图书馆"<<endl;
int w;
cin>>w;
if(w==0)
BookDB.bookdata();
system("pause");
return 0;
}

追问

不能运行 有错误

追答

你用的是什么编译器,别告诉我你用的是visual c++ 6.0,这种古董早就没人用了,我用的是codeblocks,我的编译过了,完美运行,没任何错误,建议你也换换 编译器吧,俗话书,工欲善其事,必先利其器嘛

...要答辩的,好的还可以继续追加。可以扩展更多功能,那个管理系统...
内容 开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(...

用C语言 编程 图书馆管理程序
(1)每个读者的信息包括姓名,编号,借阅图书1,借阅图书2,借阅图书3,输入3个读者的信息并存入数组reader中. (2)借书登记:输入读者的姓名及所借图书的书号,先判断姓名是否在读者数组中,若有则将书号存入reader数组中,同时修改book数组中此书的现存量.若reader数组中无此姓名,则应提示错误。 (3)还书管理:输入读者的...

C语言课程设计图书馆管理系统加讲解
printf("\\n输入错误或无效图书序号.\\n");return -1;} \/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返 回数组下标,如果找不到相应记录则提示错误并返回-1。*\/ void book_out(void){ int n,s,l,d;page_title("借阅图书");if((n=search_book())!=-1&&books[n].store>0...

C语言仓库管理系统
仓库管理系统C语言C++数据结构链表课程设计 include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h> define MAX 64 typedef struct node{ \/* 定义结构体类型dnode *\/ int number; \/* 货物编号 *\/ char name[MAX]; \/* 货物名称 *\/ int counter; \/* 货物...

求C语言图书管理系统源代码
printf("│ 9. 查看全部超期未还的图书。 │\\n"); printf("│ 0. 退出图书管理系统。 │\\n"); printf("│ │\\n"); printf("┗———请选择你需要的操作———┛\\n");}int main(){ ook Bo; lend Lin; char BNum[20]; char CNum[20]; printf("---欢 迎进入图书管理系统!---\\n\\...

跪求高手用C语言写一个简单的仓库管理系统
1,简单起见,可采用控制台程序实现;2,程序大概可划分为:输入模块、排序模块、输出模块等;3,输入模块:设计一种数据结构,用来存储图书名字;可以是指针数组,可以是链表、。。。4,排序模块:选择一种排序算法,比如冒泡,快速排序等,上网查一下。5,输出模块打印最终的排序结果;如果上述你都能...

急求一个c语言编写的图书管理系统的源代码,谢谢
include<stdlib.h> include<string.h> void main(){void adm1(),adm2(),build(),huan(),borrow(),dele();adm1();} void adm1(){ FILE *fp,*p ;char adp[20],password[20];int i,n=0;textbackground(2);clrscr();gotoxy(25,12);fp=fopen("pass","r");if(fp==NULL) { ...

求一个只用c语言编写的仓库管理系统
*next;\/* 定义两指针,分别指向其前驱和后继 *\/}dlnode; dlnode *create(dlnode *L);dlnode *input(dlnode *L);dlnode *output(dlnode *L);dlnode * outnum(dlnode *L);dlnode * outname(dlnode *L);dlnode *current(dlnode *L);void search(dlnode *L);void print(dlnode *...

用C语言编一个简单的图书管理系统(包括借阅查询还书三部分)(学生作业...
struct sale c;int i,m,q,n,k;k=0;printf("请输入您要删除、修改或要插入的物品编号\\n");\/*前奏*\/ scanf("%d",&m);for(i=0;i<7;i++)if(m==s.number){{printf("编号\\t名称\\t单价\\t库存数量\\t入库时间\\t\\t有效日期\\n"); printf("%d\\t%s\\t%.2f\\t%ld\\t\\t%ld\\t\\t...

...要答辩的,好的还可以继续追加。可以扩展更多功能,那个管理系统...
我做的学生管理系统,是在linux下运行的,是之前做好的,可分为管理员登录和学生登录,管理员权限可修改、删除、查看(成绩排序,全部信息、单科排序等)、查找(按姓名、学号等),保存,学生权限可修改自己的基本信息、密码、保存。你这个做起来太麻烦了,用我的基本修改点就能哦了,你可以加我...

相似回答