C语言课程设计:图书管理系统_分享下载

需要文件的请加企鹅号,  二四一五7072, Ado,由于时间原因,不是经常登录此账号。

        这个是一个课程设计后的成果,在大二时候学习C语言后做的第一个大程序,总计900行代码,有注释,提供下载,c语言课程设计图书管理系统,找不到的来这下载吧。
 
C代码
  1. /*************************  
  2. * 运行环境:vc6.0  
  3. *************************/  
  4.   
  5. #include <stdio.h> /*头文件名*/   
  6. #include <string.h>   
  7. #include <stdlib.h>   
  8. #define Max 3 /*定义最大借书权限(可更改)*/   
  9.   
  10. typedef struct book /*图书类型*/  
  11. {   
  12. char book_num[10];    
  13. char book_name[20];   
  14. int book_kc;   
  15. int book_xc;   
  16. struct book *next;   
  17. }BK;   
  18.   
  19. typedef struct borrow /*借书数目类型*/  
  20. {   
  21. char borrow_book_num[10];   
  22. }BO;   
  23.   
  24. typedef struct reader /*读者类型*/  
  25. {   
  26. char reader_num[10];   
  27. char reader_name[10];   
  28. int right;   
  29. BO borrow[Max]; /*嵌套借书数目类型*/  
  30. struct reader * next;   
  31. }RD;   
  32.   
  33. BK *h_book; /*图书指针*/  
  34. RD *h_reader; /*读者指针*/  
  35.   
  36. int Menu(); /*主菜单*/  
  37. void Menu_select(); /*主菜单选择函数*/  
  38. void Init(); /*初始化函数*/  
  39. void Init_reader(); /*初始化读者*/  
  40. void Init_book(); /*初始化图书*/  
  41. void Insert_New_Book(); /*增加新书*/  
  42. void Insert_New_Reader(); /*增加新读者*/  
  43. void del_old_book(); /*删除旧图书*/  
  44. void del_old_reader(); /*删除旧读者(就是已经不存在或毕业的同学)*/  
  45. void book_not_enough(); /*库存不足信息函数*/  
  46. int Find(); /*查找函数*/  
  47. void Find_Select(); /*查找选择菜单*/  
  48. void Find_Reader(); /*查找读者*/  
  49. void Find_Book(); /*查找图书*/    
  50. void Borrow_Book(); /*借书函数*/  
  51. void Return_Book(); /*还书函数*/  
  52. void about(); /*"关于系统的说明"函数*/  
  53. int Print(); /*打印函数*/  
  54. void Print_Select(); /*打印选择函数*/  
  55. void Print_book(); /*打印图书信息*/  
  56. void Print_reader(); /*打印读者信息*/  
  57. void Save(); /*保存信息函数*/  
  58. void Save_Reader(); /*保存读者信息*/  
  59. void Save_Book(); /*保存图书信息*/    
  60. void Load(); /*加载信息函数*/  
  61. void Load_Reader(); /*加载读者信息*/  
  62. void Load_Book(); /*加载图书信息*/  
  63.   
  64. int Menu()    
  65. { int sn;   
  66. printf("\n\t\t图书管理系统主菜单\n");   
  67. printf("=================================================\n");   
  68. printf("*\t0----退出系统 6----关于系统 \t*\n");   
  69. printf("*\t1----新书入库 7----旧书出库 \t*\n");   
  70. printf("*\t2----增新读者 8----删旧读者 \t*\n");   
  71. printf("*\t3----图书查询 9----输出全部信息\t*\n");   
  72. printf("*\t4----借书登记 10----库存不足图书\t*\n");   
  73. printf("*\t5----还书管理 11----保存当前信息\t*\n");   
  74. printf("=================================================\n");   
  75. printf("请选择相应代码:"); /*代码选择模式(下同)*/  
  76. for(;;)    
  77. { scanf("%d",&sn);    
  78. fflush(stdin);    
  79. if(sn<0||sn>11)   
  80. printf("\n错误!请重新输入:");   
  81. else break;   
  82. }   
  83. return sn;    
  84. }   
  85.   
  86. void Menu_select()   
  87. {   
  88. for(;;) /*循环调用模式,保证能进行重复操作(下同)*/  
  89. {   
  90. switch(Menu())   
  91. { case 0:   
  92. system("cls");   
  93. Save();   
  94. printf("\n\n\t文件保存成功!\n");    
  95. printf("\n\n\tGoodBye!\n");    
  96. getch();    
  97. exit(0);   
  98. case 1:Insert_New_Book();break; /*功能调用*/  
  99. case 2:Insert_New_Reader();break;   
  100. case 3:Find_Select();break;   
  101. case 4:Borrow_Book();break;   
  102. case 5:Return_Book();break;   
  103. case 6:about();break;   
  104. case 7:del_old_book();break;   
  105. case 8:del_old_reader();break;   
  106. case 9:Print_Select();break;   
  107. case 10:book_not_enough();break;   
  108. case 11:Save(); Load();   
  109. printf("\n文件保存成功!按任意键进行下步操作....");   
  110. getch(); system("cls");break;   
  111. default:printf("\n错误!");exit(0);   
  112. }   
  113. }   
  114. }   
  115.   
  116.   
  117. void Init() /*初始化*/  
  118. {    
  119. Init_reader();   
  120. Init_book();   
  121. }   
  122.   
  123. void Init_reader() /*初始化读者信息(从键盘输入一组数据)*/  
  124. {   
  125. RD *p0;   
  126. int i;   
  127. printf("\n读者初始化开始,请输入读者信息..\n包括编号.姓名..\n");   
  128. p0=(RD *)malloc(sizeof(RD));   
  129. h_reader=p0;   
  130. printf("\n请输入读者的信息:\n");   
  131. printf("ReaderNo.:"); /*输入读者编号(唯一)*/  
  132. scanf("%s",p0->reader_num);   
  133. printf("ReaderName:"); /*输入读者姓名(不唯一)*/  
  134. scanf("%s",p0->reader_name);   
  135. p0->right=0;   
  136. for(i=0;i<Max;i++)   
  137. strcpy(p0->borrow[i].borrow_book_num,"0");    
  138. /*所借图书直接置为0(即没有借书)*/  
  139. p0->next=NULL;   
  140. printf("\n读者信息初始化完毕!按任意键继续下一步操作..\n");    
  141. /*头接点建立完毕*/  
  142. getch();   
  143. system("cls");   
  144. }   
  145.   
  146. void Init_book() /*初始化图书信息(从键盘输入一组数据)*/  
  147. {   
  148. BK *p0;   
  149. printf("\n图书初始化开始,请输入图书信息..\n包括编号.书名.数量..\n");   
  150. p0=(BK *)malloc(sizeof(BK));   
  151. h_book=p0;   
  152. printf("\n请输入图书信息:\n");   
  153. printf("BookNo.:"); /*输入图书编号(唯一)*/  
  154. scanf("%s",p0->book_num);   
  155. printf("BookName:"); /*输入图书名称(不唯一)*/  
  156. scanf("%s",p0->book_name);   
  157. printf("Number:"); /*输入图书数量*/  
  158. scanf("%d",&p0->book_kc);   
  159. p0->book_xc=p0->book_kc; /*开始时图书现存量和库存量相等*/  
  160. p0->next=NULL;   
  161. printf("\n图书信息初始化完毕!按任意键继续下一步操作..\n");   
  162. getch();   
  163. system("cls");   
  164. }   
  165.   
  166. ................   
  167.   
  168. void main()    
  169. {   
  170. FILE *fp_book,*fp_reader;   
  171. if((fp_book=fopen("Book.dat","rb"))==NULL||(fp_reader=fopen("Reader.dat","rb"))==NULL)   
  172. {   
  173. about(); /*第一次启动系统,则进行初始化,否则进行加载*/  
  174. Init();   
  175. }   
  176. else  
  177. Load();   
  178.   
  179. Menu_select(); /*调用主菜单*/  
  180. }  

本程序绝对可以运行,此程序在代码总计900行,一程序设计大赛中得奖。如有需要原程序学习的朋友,可以留下你的邮箱,我会在第一时间将程序发到你邮箱(包括可执行文件)

转载于:https://my.oschina.net/dukai168/blog/6907

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值