满意答案

p68634193

2017.01.12

采纳率:54%    等级:12

已帮助:7180人

你不觉得给的悬赏少了点么

新建一个下面的文件 讲这个文件和下面的代码放在一个目录下 表示你的图书数据库信息

lib.txt

1001 1

1 0

c primier

1003 1

1 0

c primier

1002 2

1 0

c++ primier

代码

#include

#include

#include//定义bool类型

#include

typedef struct book book;

struct book{

int bid;//书的id

int cid;//category id 所属的书的类别id

char bname[30];

int state;//书的state 0 已借出 1代表还未借出

int stdid;//借书人id 如果未借出 则此项为0

};

//booklist

book lib[100];

int len=0;

//书的类别五类

int category[5]={0};

void init_lib()//讲lib.txt存储的图书馆信息读入内存

{

FILE *fin=fopen("lib.txt","r");

if(!fin)

{

printf("openfile error!\n");

exit(1);

}

len=0;

while(!feof(fin))

{

fscanf(fin,"%d %d",&lib[len].bid,&lib[len].cid);

fscanf(fin,"%d %d",&lib[len].state,&lib[len].stdid);

fgetc(fin);

fgets(lib[len].bname,28,fin);

lib[len].bname[strlen(lib[len].bname)-1]='\0';//去除\n

category[lib[len].cid]++;

len++;

}

fclose(fin);

}

void libprint()//输出图书信息

{

int i;

for(i=0;i

{

printf("书名:%s\n编号:%d \n书目前的所属人(0代表图书馆):%d \n同类别图书共有:%d\n",lib[i].bname,lib[i].bid,lib[i].stdid,category[lib[i].cid]);

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

//printf("%d %d\n%d %d\n%s",lib[i].bid,lib[i].cid,lib[i].state,lib[i].stdid,lib[i].bname);

}

}

bool borrowbook(int bookid,int stdid)//借书

{

int i;

for(i=0;i

{

if(bookid==lib[i].bid&&lib[i].state==1)

{

lib[i].state=0;

category[lib[i].cid]--;

lib[i].stdid=stdid;

return 1;

}else

return 0;

}

return 0;

}

bool returnbook(int bookid,int stdid)//还书

{

int i=0;

for(i=0;i

{

if(bookid==lib[i].bid&&lib[i].state==0&&lib[i].stdid==stdid)

{

lib[i].state=1;

lib[i].stdid=0;

category[lib[i].cid]++;

return 1;

}

}

return 0;

}

void savelib()//将内存的数据写入lib.txt存储起来

{

FILE *fout=fopen("lib.txt","w");

if(!fout)

{

printf("写入失败!\n");

exit(0);

}

int i;

for(i=0;i

{

fprintf(fout,"%d %d\n%d %d\n%s\n",lib[i].bid,lib[i].cid,lib[i].state,lib[i].stdid,lib[i].bname);

}

fclose(fout);

printf("成功写入数据库文件!\n");

}

int main(void)

{

int choice,stdid,bookid;

init_lib();//数据读入内存

while(1)

{

choice=0;

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

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

printf("1-将每本书信息输出\n");

printf("2-借书 \n");

printf("3-还书 \n");

printf("4-save \n");

printf("5-exit without save\n");

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

scanf("%d",&choice);

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

if(choice<1||choice>5)

{

printf("检查你的输入!(1,2,3,4,5)\n");

continue;

}

if(choice==1)

libprint();

if(choice==2)

{

printf("输入你要借的书的id和你的studentid(以空格分隔):\n");

scanf("%d %d",&bookid,&stdid);

if(borrowbook(bookid,stdid))

printf("成功借出!\n");

else

printf("借出错误\n");

}

if(choice==3)

{

printf("输入你要还的书的id和你的studentid(以空格分隔):\n");

scanf("%d %d",&bookid,&stdid);

if(returnbook(bookid,stdid))

printf("成功还书\n");

else

printf("还书错误\n");

}

if(choice==4)

{

savelib();

}

if(choice==5)

exit(0);

}

return 0;

}

01分享举报

用c语言写图书馆程序,用c语言写图书馆管理系统相关推荐

  1. 写操作系统用的C语言和写应用程序的C语言不是一个

    我以前看一本书,名叫 30天自制操作系统:大概翻了一下,感觉也不是太难:因为比如,它有一整章在讲,C语言指针.C语言画一个矩形:你要是熟悉C语言的话,指针肯定理解:在没有窗口的情况下,用Turbo C ...

  2. c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...

    c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...

  3. linux 为什么 c语言,为什么C程序里一定要写main函数

    为什么C程序里一定要写main函数 一. 学习过程 编写程序f.c: 对其进行编译,正常通过,再对其进行连接,出现错误: 显示的出错信息为: 翻译成中文是:在c0s模块没有定义符号'_main'. 那 ...

  4. python如何在没有环境的电脑上执行_没安装python的电脑可以运行python写的程序吗 python语言编写的程...

    py2exe 能够把 Python script 转换成可以在windows上独立执行的(即不需安装Python)的exe程序(加上其它必需的运行时函数库). -- 摘自百度知道 py2exe能够把P ...

  5. dll文件是什么语言写的程序_易语言图文教学:写好了程序,如何配置程序名称、图标?内详...

    引导语 通过前两篇图文,相信大家能制作出一个简单的易语言程序啦.今天是教大家怎样配置程序.说的再清楚些,就是给你的程序加个图标,改个进程名字,加上版本号,添加作者信息等等. 具体操作方法 打开一个已经 ...

  6. python能写桌面程序吗_python能写桌面程序吗

    其实Python/Java/PHP都不适合用来做桌面开发,Java还是有几个比较成熟的产品的,比如大名鼎鼎的Java集成开发环境IntelliJ IDEA.Eclipse就是用Java开发的,不过PH ...

  7. python写机器人程序_用Python写的一个多线程机器人聊天程序

    本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...

  8. 电大java语言与面向对象程序设计基础_6406Java语言与面向对象程序设计基础A卷...

    6406Java语言与面向对象程序设计基础A卷 试卷编号:6406 座位号 浙江广播电视大学2006年春季学期开放教育专科期末考试 <Java语言与面向对象程序设计基础>试题 2006年7 ...

  9. 程序设计基础c语言上机考试,程序设计基础C语言上机考试题第一套.DOC

    程序设计基础(C语言)上机考试题 ( 第一套A卷 ) 2006~2007学年冬学期 2007年1月 应试人声明: 我保证遵守<上海大学学生手册>中的<上海大学考场规则>,如有考 ...

  10. 科学出版社c语言实验答案,程序设计基础c语言第三章程序结构教材习题答案科学出版社...

    第 1 页程序设计基础-C 语言(科学出版社教材)第三章-程序结构教材习题答案1.0 编写程序使整形变量:a=3,b=4,c=5,p=0xfffe,q=0xffff;浮点型变量:x=1.2,y=2.4 ...

最新文章

  1. HSmartWindowControl 之 摄像头实时显示( 使用 WPF )
  2. 【10月17日】2020年十月蓝桥杯A组题目【感想与总结】(热乎的)
  3. 高速行车12条技巧,每一条都关乎你的生命
  4. 平台表单默认按钮的使用及效果展示——JEPLUS软件快速开发平台
  5. maven 下载源码
  6. c++字符串数组去重的另类思路
  7. UnityGI3:光照探针
  8. linux移动文件 rf参数_linux下文件的复制、移动与删除
  9. Matlab实现批量修改文件名
  10. 以字型为例,一维表示的二维数组矩阵,旋转90、-90
  11. 网管工具mrtg,cacti,rrdtool,nagios,zabbix比较和安装,+zabbix
  12. VS201编译jpeg
  13. 关于Linux 系统程序(进程)自动升级的方法
  14. Unity中加载倾斜摄影模型、dem叠加卫星影像做真实地形
  15. 拓嘉启远电商:拼多多买家不能退货的几种情况
  16. iMeta高被引论文|陈同/刘永鑫等高颜值绘图网站imageGP被引500次(截止22/12/13)
  17. Ajax + $ajax
  18. 1.4 Illustrator的三种屏幕模式
  19. 侯捷 C++系列课程视频 | 侯捷 C++ STL 视频
  20. GRCh38参考数据分析流程(转)

热门文章

  1. 读取ISO15031协议数据流
  2. 合天网安实验室CTF-基础50-0x01
  3. 蚁群算法(实验分析)
  4. 大学cad课要用计算机么,cad2010大学课程
  5. 修行等级对比 鸿蒙,普及下:修行等级,武道九境(简化了很多)
  6. ArcGIS API for javascript创建二维度地图
  7. 产品体验报告:Keep
  8. 23种设计模式 -----Day01:简单工厂模式
  9. TOMCAT HTPPS
  10. excel如何快速批量翻译单词