当前位置:   article > 正文

C语言程序设计:图书管理系统(附代码)_图书馆人员管理系统代码

图书馆人员管理系统代码

 C语言程序设计:图书管理系统

1. 管理员功能

  1. 添加、删除、修改、查找、遍历、导出(图书)
  2. 添加、删除、修改、查找、遍历、导出(用户)
  3. 退出

2. 会员功能

  1. 借阅、归还(图书)
  2. 查看借阅记录
  3. 修改个人信息
  4. 退出

3. 代码实现和效果图

 

欢迎关注公众号:seeCode 回复C语言进行获取代码

部分代码:

结构体定义

  1. // 用户结构体
  2. typedef struct username {
  3. int uid; //用户id
  4. char uname[STRNAMELEN]; //用户名
  5. char upass[STRNAMELEN]; //用户密码
  6. int usign; //用户标记 0代表普通用户 1代表管理员
  7. }user;
  8. //用户结构体数组
  9. typedef struct userArray {
  10. user* uArr; //用户结构体数组
  11. int uSub; //用户结构体数组当前下标
  12. int uMaxLen; //用户结构体数组当前最大容量
  13. }userArr;
  14. //图书结构体
  15. typedef struct books {
  16. int id; //图书编号
  17. char title[BOOKNAME]; //图书名字
  18. char autor[BOOKAUTOR]; //图书作者
  19. char press[BOOKPRESS]; //出版社
  20. int much; //数量
  21. }book;
  22. //图书结构体数组
  23. typedef struct booksArray {
  24. book* bArr; //图书结构体指针
  25. int bSub; //图书结构体数组当前下标
  26. int bMaxLen; //图书结构体数组当前最大容量
  27. }bookArr;
  28. //借阅信息结构体
  29. typedef struct bookRecord {
  30. char reName[STRNAMELEN]; //借阅人姓名
  31. char reBook[BOOKNAME]; //书籍
  32. char re[5]; //是否归还
  33. }record;
  34. typedef struct strRecord {
  35. record* reArr;
  36. int reSub;
  37. int reMaxLen;
  38. }reStr;
  39. //遍历结构体
  40. typedef struct pl {
  41. char ch[STRCHLEN];
  42. char fh[STRFHLEN];
  43. }pl;
  44. typedef struct plArr {
  45. pl o[BLSTRLEN]; //遍历结构体数组
  46. int i; //全局变量-下标
  47. }pArr;

图书操作

  1. //删除图书
  2. void delBook(bookArr* p) {
  3. char b1[30];
  4. int i = 0;
  5. system("cls");
  6. printf("请输入你要删除的书名>");
  7. scanf("%11s", b1);
  8. for (i = 0; i < p->bSub; ++i) {
  9. if (strcmp(b1, p->bArr[i].title) == 0) {
  10. for (; i < p->bSub; ++i) {
  11. p->bArr[i] = p->bArr[i + 1];
  12. }
  13. p->bSub--;
  14. }
  15. }
  16. }
  17. //导出图书
  18. void expBook(bookArr* p) {
  19. int i = 0;
  20. FILE* fp = fopen("D:\\bk.txt", "wt");
  21. if (fp == NULL) {
  22. printf("程序出错!");
  23. }
  24. else {
  25. for (i = 0; i < p->bSub; ++i) {
  26. fprintf(fp, "编号:%d 书名:%s 作者:%s 出版社:%s 数量:%d\n", p->bArr[i].id, p->bArr[i].title, p->bArr[i].autor, p->bArr[i].press, p->bArr[i].much);
  27. }
  28. }
  29. fclose(fp);
  30. fp = NULL;
  31. printf("导出成功\n");
  32. }
  33. //遍历图书
  34. void ergBook(bookArr* p) {
  35. int i = 0;
  36. system("cls");
  37. for (i = 0; i < p->bSub; ++i) {
  38. printf("编号:%d 书名:%s 作者:%s 出版社:%s 数量%d\n", p->bArr[i].id, p->bArr[i].title, p->bArr[i].autor, p->bArr[i].press, p->bArr[i].much);
  39. }
  40. }
  41. //查找图书
  42. void lookupBook(bookArr* p) {
  43. int i = 0;
  44. char bookName[30];
  45. system("cls");
  46. printf("请输入要查找的书籍>");
  47. scanf("%s", bookName);
  48. for (i = 0; i < p->bSub; ++i) {
  49. if (strcmp(bookName, p->bArr[i].title) == 0) {
  50. printf("编号:%d 书名:%s 作者:%s 出版社:%s 数量%d", p->bArr[i].id, p->bArr[i].title, p->bArr[i].autor, p->bArr[i].press, p->bArr[i].much);
  51. break;
  52. }
  53. }
  54. if (i == p->bSub) {
  55. printf("不存在该书\n");
  56. }
  57. }
  58. //修改图书
  59. void modifyBook(bookArr* p) {
  60. int num = 0, i = 0;
  61. char bookName[30];
  62. system("cls");
  63. printf("请输入要修改的书名>");
  64. scanf("%s", bookName);
  65. for (i = 0; i < p->bSub; ++i) {
  66. if (strcmp(bookName, p->bArr[i].title) == 0) {
  67. printf("请输入要修改后的数量\n");
  68. scanf("%d", &num);
  69. p->bArr[i].much = num;
  70. break;
  71. }
  72. }
  73. if (i == p->bSub) {
  74. printf("不存在该书\n");
  75. }
  76. writeBook(p);
  77. }
  78. //添加图书
  79. void regBook(bookArr* p) {
  80. int i = 0;
  81. int num = 0;
  82. char bookName[30];
  83. system("cls");
  84. printf("请输入书名>");
  85. scanf("%s", bookName);
  86. for (i = 0; i < p->bSub; ++i) {
  87. if (strcmp(bookName, p->bArr[i].title) == 0) {
  88. printf("输入要添加的数量\n");
  89. scanf("%d", &num);
  90. p->bArr[i].much += num;
  91. break;
  92. }
  93. }
  94. if (i == p->bSub) {
  95. p->bArr[i].id = p->bArr[i - 1].id + 1;
  96. strcpy(p->bArr[i].title, bookName);
  97. printf("请输入作者>");
  98. scanf("%s", p->bArr[i].autor);
  99. printf("请输入出版社>");
  100. scanf("%s", p->bArr[i].press);
  101. printf("请输入数量>");
  102. scanf("%d", &p->bArr[i].much);
  103. p->bSub++;
  104. }
  105. writeBook(p);
  106. }
  107. //写入图书
  108. void writeBook(bookArr* p) {
  109. int i = 0;
  110. FILE* fp = fopen("D:\\book.txt", "wt");
  111. if (fp == NULL) {
  112. printf("程序出错\n");
  113. exit(0);
  114. }
  115. else {
  116. for (i = 0; i < p->bSub; ++i) {
  117. fprintf(fp, "id:%d title:%s autor:%s press:%s much:%d\n", p->bArr[i].id, p->bArr[i].title, p->bArr[i].autor, p->bArr[i].press, p->bArr[i].much);
  118. }
  119. }
  120. fclose(fp);
  121. fp = NULL;
  122. }

 4. 说明

这是自己第一次写这种项目,所以没有任何经验在方法的取名上面非常的乱而且逻辑也混乱,如果有机会的话我会在更改一下内容的

在运行这个程序的时候需要在D盘下创建三个文件,一个是user.txt文件,一个是book.txt文件,一个是record.txt文件

这个程序中,我设定了不管是何种管理员都禁止修改admin管理员的权限和密码(除了自己),具体功能需要大伙自己发现了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/499851
推荐阅读
相关标签
  

闽ICP备14008679号