b2c信息网

您现在的位置是:首页 > 最近新闻 > 正文

最近新闻

c图书管理系统(图书管理系统设计)

hacker2022-06-11 12:56:16最近新闻82
本文目录一览:1、c语言图书管理系统急需!!

本文目录一览:

c语言图书管理系统 急需!!

我简单给你说一下吧。

1、首先定义数据结构

图书结构:图书编号、图书名称、单价、作者、存在状态

人员结构:人员编号(学生为学号,教师为工作编号)、姓名、性别等

借书结构:人员编号、图书编号、借书时间、还书时间

2、由于是C系统,通常情况下,数据要存储在文件中,因此,还需要定义文件结构:图书、人员、借书信息。

为了数据处理速度,可将借书信息中已经还书的信息单独放在还书信息中,借书信息中的数据只是已经借出还没有归还的数据。

3、系统功能定义,以及编码。

由于系统太过庞大,你还是自己试着做一下吧,应该可以做好的。

学习本身就是做程序,如果有困难,可以上我们团队提问题,随时恭候!

祝学习进步!

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");

choice=getch();

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

choice=getch();

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");

choice=getch();

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

choice=getch();

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");

getch();

}

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语言图书库存管理系统?

#includealgorithm#includecstdio#includecstring#includecstdlib#includeiostream#includevector#includequeue#includestack#includemap#includestring#includeclimits#includecmath#define N 1000010#define LL long longusing namespace std;#includeiostream#includeiomanip#includestring#includefstream#includestdio.husing namespace std;const int Maxb=10000; //最多的图书class Book//图书类{int tag; //删除标记e799bee5baa6e997aee7ad94e58685e5aeb9313333353336391:已删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)authorsetw(10)number2setw(10)positionsetw(10)timesetw(10)priceendl;}}; 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(){ coutsetw(10)"图书书号"setw(10)"图书名字"setw(10)"图书主编"setw(10)"版次"setw(10)"出版社"setw(10)"出版年"setw(10)"价格"endlendlendlendl;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){ coutendlendl;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" ****************************"endlendl;coutendl"请按键选择您需要的操作:";cinchoice;while(choice!=1choice!=2choice!=3choice!=4choice!=5choice!=6choice!=0){ coutendl" ** 您输入的编号在菜单里不存在,请重新输入 **"'\a'endlendl; cout" 请选择您需要的操作:"; cinchoice;} switch (choice){case 1:cout "输入ISBN书号(一定为数字否则会异常):";cin bookid; cout "输入书名:";cin bname; cout "输入主编:";cin editor;cout "输入版次(一定为数字否则会异常):";cinbanci;cout"输入出版社:";cinposition;cout"输入出版年(一定为数字否则会异常):"; cinyear;cout"输入价格(一定为数字否则会异常):";cinvalue;addbook(bookid,bname,editor,banci,position,year,value);cout"ISBN书号"bookid"添加成功,如需返回主菜单请按1,退出系统请按0(一定要输入数字)";cinchoice4;while (choice4!=0choice4!=1){ cout"输入错误请重新输入"endl; cinchoice4;}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退出:"; cinchoice3;switch(choice3){case 1: {cout " 输入ISBN书号:"; //按ISBN书号查询cin bookid;b=search1(bookid);if (b==NULL){cout " 该图书不存在" endl;break;}b-disp();}break;case 2:{ cout"请输入书名:"; cinbname; b=search2(bookid,bname); if(b==NULL) { cout"该图书不存在啊!"endl; break; } b-disp();} break;case 3: { cout"请输入主编:"; cineditor; b=search3(bookid,editor); if(b==NULL) { cout"该主编不存在!"endl; break; } b-disp();} break;}break;case 5:disp();break;case 6:clear();break;}}coutendl" ****** 慢走 ******"endlendlendl;}; int main(){BDatabase BookDB;coutendlendlendl;cout" Welcome to the library of SCU "endl;cout" 欢 迎 来 到XXXX 大 学 图 书 馆 "endl;coutendlendl"请输入0进入图书馆"endl;int w;cinw;if(w==0)BookDB.bookdata();system("pause");return 0;}

发表评论

评论列表

  • 瑰颈照雨(2022-06-11 20:27:43)回复取消回复

    a(); //图书库维护 void disp(){ coutsetw(10)"图书书号"setw(10)"图书名字"setw(10)"图书主编"setw(10)

  • 余安千夜(2022-06-11 23:08:35)回复取消回复

    ; int count=0; BOOKINFO bookinfo[100]; int booknumber; system("cls"); boo

  • 痛言情授(2022-06-12 00:29:11)回复取消回复

    根据图书名称对图书信息进行删除*/ case '5':choice_5_sort_according_name();break;/*根据图书名称排序*/ ca

  • 冢渊宠臣(2022-06-11 14:43:19)回复取消回复

    有归还的数据。3、系统功能定义,以及编码。由于系统太过庞大,你还是自己试着做一下吧,应该可以做好的。学习本身就是做程序,如果有困难,可以上我们团队提问题,随时恭候!祝学习进步!c语言图书管理系统#include stdio.h#include stdlib.h#