[关闭]
@SuHongjun 2020-06-11T02:10:38.000000Z 字数 3108 阅读 253

C语言-Day 24 - 综合作业StartKit(4)

C语言 2020春季学期


.c文件可以参考这里,但是数据文件同学们自己想办法去弄啊 !
按照课堂上讲的方法,各个小组八仙过海、各显神通,加油,我看好你们 :)

  1. #include "stdio.h"
  2. #include "string.h"
  3. #define BOOKS_FILE "E:\\Try\\C\\017\\ZongHeZuoYe\\books.dat"
  4. #define MEMBERS_FILE "E:\\Try\\C\\017\\ZongHeZuoYe\\members.dat"
  5. #define JZ_LIST_FILE "E:\\Try\\C\\017\\ZongHeZuoYe\\jz_list.dat"
  6. #define JY_LIST_FILE "E:\\Try\\C\\017\\ZongHeZuoYe\\jy_list.dat"
  7. struct DATE
  8. {
  9. int year;
  10. int month;
  11. int day;
  12. };
  13. struct BOOK
  14. {
  15. char sh[30];
  16. char bookName[200];
  17. char author[200];
  18. struct DATE publishDate; //结构体嵌套
  19. float price;
  20. char hyh[30];
  21. int status; //0:在馆、1:借出、-1:报废
  22. };
  23. struct MEMBER
  24. {
  25. char hyh[30];
  26. char hyName[200];
  27. char cell[15];
  28. char email[100];
  29. char QQ[30];
  30. char wx[100];
  31. int kjsl;
  32. //捐赠列表(动态查询),???
  33. //当前借阅列表(动态查询) ????
  34. };
  35. struct JUAN_ZEN_INFO
  36. {
  37. char hyh[30];
  38. char sh[30];
  39. struct DATE jzDate;
  40. };
  41. struct JIE_YUE_INFO
  42. {
  43. char hyh[30];
  44. char sh[30];
  45. struct DATE jcDate;
  46. struct DATE yhDate;
  47. struct DATE hsDate;
  48. };
  49. void InputMember();
  50. void SaveAll();
  51. void LoadAll();
  52. void DisplayMembers();
  53. //.........???????
  54. struct BOOK g_books[10000];
  55. struct MEMBER g_members[5000];
  56. int g_members_count;
  57. struct JUAN_ZEN_INFO g_jz_list[30000];
  58. struct JIE_YUE_INFO g_jy_list[1000000];
  59. //.........???????
  60. main()
  61. {
  62. //.........???????
  63. LoadAll();
  64. DisplayMembers();
  65. InputMember();
  66. SaveAll();
  67. }
  68. void DisplayMembers()
  69. {
  70. int i;
  71. char jx = 'Y', buf[10];
  72. printf("会员信息:\n");
  73. printf("会员号\t姓名\t手机\temail\tQQ\t微信\t可借数量\n");
  74. printf("-----------------------------------------------------\n");
  75. for(i=0; i<5000;i++)
  76. {
  77. if(strcmp(g_members[i].hyh, "")!=0)
  78. { printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\n",
  79. g_members[i].hyh,
  80. g_members[i].hyName,
  81. g_members[i].cell,
  82. g_members[i].email,
  83. g_members[i].QQ,
  84. g_members[i].wx,
  85. g_members[i].kjsl
  86. );
  87. g_members_count = i+1;
  88. }
  89. else
  90. break;
  91. }
  92. printf("-----------------------------------------------------\n");
  93. }
  94. void LoadAll()
  95. {
  96. FILE *fp;
  97. fp = fopen(BOOKS_FILE,"rb");
  98. if(fp !=NULL)
  99. {
  100. fread(g_books,sizeof(struct BOOK),10000,fp);
  101. fclose(fp);
  102. }
  103. fp = fopen(MEMBERS_FILE,"rb");
  104. if(fp !=NULL)
  105. {
  106. //fread(&g_members_count,sizeof(g_members_count),1,fp);
  107. fread(g_members,sizeof(struct MEMBER),5000,fp);
  108. fclose(fp);
  109. }
  110. fp = fopen(JZ_LIST_FILE,"rb");
  111. if(fp !=NULL)
  112. {
  113. fread(g_jz_list,sizeof(struct JUAN_ZEN_INFO),30000,fp);
  114. fclose(fp);
  115. }
  116. fp = fopen(JY_LIST_FILE,"rb");
  117. if(fp !=NULL)
  118. {
  119. fread(g_jy_list,sizeof(struct JIE_YUE_INFO),1000000,fp);
  120. fclose(fp);
  121. }
  122. }
  123. void SaveAll()
  124. {
  125. FILE *fp;
  126. fp = fopen(BOOKS_FILE,"wb");
  127. if(fp !=NULL)
  128. {
  129. fwrite(g_books,sizeof(struct BOOK),10000,fp);
  130. fclose(fp);
  131. }
  132. fp = fopen(MEMBERS_FILE,"wb");
  133. if(fp !=NULL)
  134. {
  135. fwrite(&g_members_count,sizeof(g_members_count),1,fp);
  136. fwrite(g_members,sizeof(struct MEMBER),5000,fp);
  137. fclose(fp);
  138. }
  139. fp = fopen(JZ_LIST_FILE,"wb");
  140. if(fp !=NULL)
  141. {
  142. fwrite(g_jz_list,sizeof(struct JUAN_ZEN_INFO),30000,fp);
  143. fclose(fp);
  144. }
  145. fp = fopen(JY_LIST_FILE,"wb");
  146. if(fp !=NULL)
  147. {
  148. fwrite(g_jy_list,sizeof(struct JIE_YUE_INFO),1000000,fp);
  149. fclose(fp);
  150. }
  151. }
  152. void InputMember()
  153. {
  154. int i;
  155. char jx = 'Y', buf[10];
  156. printf("请录入会员信息:\n");
  157. for(i=g_members_count; i<5000;i++)
  158. {
  159. printf("会员号:");
  160. gets(g_members[i].hyh);
  161. printf("姓名:");
  162. gets(g_members[i].hyName);
  163. printf("手机:");
  164. gets(g_members[i].cell);
  165. printf("email:");
  166. gets(g_members[i].email);
  167. printf("QQ:");
  168. gets(g_members[i].QQ);
  169. printf("微信:");
  170. gets(g_members[i].wx);
  171. g_members[i].kjsl = -1;
  172. printf("是否继续录入?(y/n):");
  173. jx = getchar();
  174. if(jx != 'y' && jx != 'Y')
  175. {
  176. g_members_count = i+1; //???????
  177. break;
  178. }
  179. gets(buf);
  180. }
  181. }
  182. //.........???????
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注