图书管理小系统

Posted starry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图书管理小系统相关的知识,希望对你有一定的参考价值。

昨天一朋友要我帮她写个“图书管理小系统”,一时嘴贱就答应了。

要求如下:

看着还可以,昨晚把基本框架写了下,今天写了一下午,接近600行,总算写完了。由于她明天就要交,我就赶了点,很多地方还没写好。

但总体来说也让我对文件输出输入有了更进一步的了解了,不过没有用结构体指针,用了的话应该可以 节约很多内存。看以后有没有时间

去完善它吧。

发几个界面看看:

 

 

先把代码贴下:

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <stddef.h>
  4 #include <stdlib.h>
  5 #include <string.h>
  6 #include <windows.h>
  7 #define MAX 20
  8 struct Borrow{
  9     char name[MAX];     //用户名
 10     int num; //     借书数量
 11     int number[MAX];     //书的编号
 12     char book[MAX][MAX];   //书名
 13 }bor[5000];
 14 
 15 struct Student{
 16     char name[MAX]; //用户名
 17     char password[MAX]; //密码
 18     //Borrow book;  //借书信息
 19     char sex[MAX];  //性别
 20     //struct student *next;   //结构体指针
 21 }stu[5000];
 22 
 23 struct Book{
 24     int number;     //编号
 25     char bookName[MAX];  //书名
 26     int num;        //书的数量
 27 }book[10000];
 28 //stu *head;  //指针头
 29 int i, j, l, n, flag, cnt, k, MAX_BOR, MAX_BOOK;
 30 void regist(){  //注册功能
 31     system("cls");
 32     FILE *fin,*fout;
 33     fin = fopen("user.txt","r+");
 34     char s[20],ss[20],sss[10];
 35     if(fin!=NULL){
 36         while(fscanf(fin,"%s %s %s",stu[i].name,stu[i].password,stu[i].sex)!=EOF){
 37             i++;
 38         }
 39     }
 40     fclose(fin);
 41     fout = fopen("user.txt","a+");
 42     system("cls");
 43     do{
 44         printf("请输入用户名:");
 45         scanf("%s",s);
 46         for(j = 0; j < i; j ++){
 47             if(!strcmp(s,stu[j].name)){
 48                 system("cls");
 49                 printf("该用户名已经注册了!");
 50                 goto tt;
 51             }
 52         }
 53         printf("\\n请输入密码:");
 54         scanf("%s",ss);
 55         printf("\\n请输入性别(男或女):");
 56         scanf("%s",sss);
 57         fprintf(fout,"%s\\t%s\\t%s\\n",s,ss,sss);
 58         break;
 59         tt:;
 60     }while(1);
 61     fclose(fout);
 62 }
 63 
 64 void login(){           //登入功能
 65     n = 3;
 66     char s[20],ss[20];
 67     FILE *fin;
 68     fin = fopen("user.txt","r+");
 69     i = 0;
 70     while(fscanf(fin,"%s %s %s",stu[i].name,stu[i].password,stu[i].sex)!=EOF){
 71         i++;
 72     }
 73     fclose(fin);
 74     flag = 0;
 75     system("cls");
 76     do{
 77         printf("\\n\\n\\n\\t\\t请输入用户名:");
 78         scanf("%s",s);
 79         printf("\\n\\t\\t请输入密码  :");
 80         scanf("%s",ss);
 81         for(j = 0; j < i; j ++){
 82             if(!strcmp(s,stu[j].name)&&!strcmp(ss,stu[j].password)){
 83                 cnt = j;    //标记登入的用户下标
 84                 flag = 1;
 85                 break;
 86             }
 87         }
 88         if(flag)break;
 89         system("cls");
 90         printf("用户名或密码错误!\\n");
 91     }while(n--);
 92 
 93 }
 94 
 95 void print(){           //显示用户借书信息
 96     void loadBor();
 97     loadBor();
 98     for(j = 0; j < MAX_BOR; j ++){
 99         if(!strcmp(stu[cnt].name,bor[j].name)){
100             break;
101         }
102     }
103     if(j == MAX_BOR){
104         printf("|\\t\\t\\t\\t\\t借书为0。|\\n");
105     }else{
106         printf("|\\t\\t已经借的书为:\\t\\t\\t|\\n");
107         if(bor[j].num == 0){
108             printf("|\\t\\t\\t借书为0.\\t\\t|\\n");
109         }else{
110             for(l = 0; l < bor[j].num; l ++){
111                 printf("|\\t\\t%d\\t%s\\t\\t|\\n",bor[j].number[l],bor[j].book[l]);
112             }
113         }
114         printf("|\\t\\t\\t\\t\\t\\t|\\n");
115 
116     }
117     printf("|_______________________________________________|\\n\\n");
118 }
119 
120 void loadBor(){         //加载借书信息
121     FILE *fin;
122     fin = fopen("borrow.txt","r+");
123     k = 0;
124     while(fscanf(fin,"%s %d",bor[k].name,&bor[k].num)!=EOF){
125         for(j = 0; j < bor[k].num; j++){
126             fscanf(fin,"%d %s",&bor[k].number[j],bor[k].book[j]);
127            // printf("%s\\t",bor[k].book[j]);
128         }
129         k++;
130     }
131     MAX_BOR = k;
132     fclose(fin);
133 }
134 
135 void loadBook(){        //加载图书信息
136      FILE *fin;
137     fin = fopen("book.txt","r+");
138     k = 0;
139     while(fscanf(fin,"%d %s %d",&book[k].number,book[k].bookName,&book[k].num)!=EOF){
140         k++;
141     }
142     MAX_BOOK = k;
143     fclose(fin);
144 }
145 
146 void writeBor(){        //将借书信息写入文件
147     FILE *fp;
148     fp = fopen("borrow.txt","w");
149     for(j = 0; j < MAX_BOR; j ++){
150         fprintf(fp,"%s\\t%d\\t",bor[j].name,bor[j].num);
151         for(k = 0; k < bor[j].num; k ++){
152             fprintf(fp,"%d\\t%s\\t",bor[j].number[k],bor[j].book[k]);
153         }
154         fprintf(fp,"\\n");
155     }
156     fclose(fp);
157 }
158 
159 void writeBook(){       //将图书信息写入文件
160     FILE *fp;
161     fp = fopen("book.txt","w");
162     for(j = 0; j < MAX_BOOK; j ++){
163         fprintf(fp,"%d\\t%s\\t%d\\n",book[j].number,book[j].bookName,book[j].num);
164     }
165     fclose(fp);
166 }
167 
168 void printFun(){        //显示界面
169     system("cls");
170     printf(" _______________________________________________ \\n");
171     printf("|\\t\\t欢迎进入图书管理系统!\\t\\t|\\n");
172     printf("|\\t<1>还书\\t\\t");
173     printf("<2>借书\\t\\t\\t|\\n");
174     printf("|\\t\\t\\t\\t\\t\\t|\\n");
175     printf("|\\t<3>查询图书\\t");
176     printf("<4>删除图书\\t\\t|\\n");
177     printf("|\\t\\t\\t\\t\\t\\t|\\n");
178     printf("|\\t<5>添加图书\\t");
179     printf("<6>修改图书\\t\\t|\\n");
180     printf("|\\t\\t\\t\\t\\t\\t|\\n");
181     printf("|\\t<7>显示图书\\t");
182     printf("<8>刷新\\t\\t\\t|\\n");
183     printf("|\\t\\t\\t\\t\\t\\t|\\n");
184     printf("|\\t<9>退出\\t\\t\\t\\t\\t|\\n"); //退出
185     printf("|_______________________________________________|\\n\\n");
186 }
187 
188 void move(){            //还书功能
189     system("cls");
190     print();
191     int m;
192     loadBor();
193     for(m = 0; m < MAX_BOR; m ++){
194         if(!strcmp(stu[cnt].name,bor[m].name)){
195             break;
196         }
197     }
198     if(m== MAX_BOR || bor[m].num == 0){
199         printf("你当前的借书量为0,不需要还书\\n按任意键继续...");
200         getchar();
201         getchar();
202         return;
203     }
204     printf("请输入还书的书号:");
205     int num;
206     char s[MAX];
207     scanf("%d",&num);
208     for(j = 0; j < bor[m].num; j ++){
209         if(num == bor[m].number[j]){
210             strcpy(s,bor[m].book[j]);
211             break;
212         }
213     }
214     if(j != bor[m].num){
215         for(; j < bor[m].num-1; j ++){
216             bor[m].number[j] = bor[m].number[j+1];
217             strcpy(bor[m].book[j],bor[m].book[j+1]);
218         }
219         bor[m].num--;
220         writeBor();
221         loadBook();
222         for(k = 0; k < MAX_BOOK; k ++){
223             if(num == book[k].number){
224                 book[k].num++;
225                 break;
226             }
227         }
228         if(k == MAX_BOOK){
229             book[k].number = num;
230             strcpy(book[k].bookName,s);
231             book[k].num = 1;
232             MAX_BOOK++;
233         }
234         writeBook();
235     }else{
236         printf("请输入正确的书号!\\n");
237         getchar();
238         getchar();
239         move();
240         return;
241     }
242 
243 }
244 
245 void take(){    //借书功能
246     loadBook();
247     system("cls");
248     printf("请输入要借的书的书号:");
249     int num;
250     scanf("%d",&num);
251     int m;
252     for(m = 0; m < MAX_BOOK; m ++){
253         if(num == book[m].number){
254             break;
255         }
256     }
257     if(m == MAX_BOOK){
258         printf("你输入的书号有误。。。。\\n");
259         getchar();
260         return;
261     }
262     if(book[m].num != 0){
263         printf("书号:%d\\t书名:“%s”借书成功!!!\\n",book[m].number,book[m].bookName);
264         book[m].num--;
265         writeBook();
266         for(j = 0; j < MAX_BOR; j ++){
267             if(!strcmp(stu[cnt].name,bor[j].name))break;
268         }
269         if(j == MAX_BOR){
270             strcpy(bor[j].name,stu[cnt].name);
271             bor[j].num = 0;
272             MAX_BOR++;
273         }
274         bor[j].number[bor[j].num] = num;
275         strcpy(bor[j].book[bor[j].num],book[m].bookName);
276         bor[j].num++;
277         writeBor();
278     }else{
279         printf("你想借的“%s”已经被借完了!!!",book[m].bookName);
280     }
281     getchar();
282 }
283 
284 void check(){   //查询图书
285     loadBook();
286     system("cls");
287     int choice;
288     printf(" ___________________________________________ \\n");
289     printf("|\\t\\t查询图书\\t\\t    |\\n");
290     printf("|\\t\\t\\t\\t\\t    |\\n");
291     printf("|\\t\\t\\t\\t\\t    |\\n");
292     printf("|\\t书号【1】\\t书名【2】\\t    |\\n");
293     printf("|\\t\\t\\t\\t\\t    |\\n");
294     printf("|\\t\\t\\t\\t\\t    |\\n");
295     printf("|___________________________________________|\\n");
296     printf("\\n请输入(0退出):");
297     scanf("%d",&choice);
298     if(choice == 1){
299         int num;
300         printf("请输入书号:");
301         scanf("%d",&num);
302         for(j = 0; j < MAX_BOOK; j ++){
303             if(num == book[j].number)break;
304         }
305         if(j == MAX_BOOK){
306             printf("书号为%d的图书不存在!!!",num);
307         }else{
308             printf("\\n书号为%d的信息如下:\\n",num);
309             printf("\\n\\t图书名字为:%s\\n\\n\\t储存数量为:%d\\n\\n",book[j].bookName,book[j].num);
310         }
311     }else if(choice == 2){
312         char s[MAX];
313         printf("请输入书名:");
314         scanf("%s",s);
315         for(j = 0; j < MAX_BOOK; j ++){
316             if(!strcmp(s,book[j].bookName))break;
317         }
318         if(j == MAX_BOOK){
319             printf("书名为“%s”的图书不存在!!!",s);
320         }else{
321             printf("书名为“%s”的信息如下\\n",book[j].bookName);
322             printf("\\t书号为:%d\\n\\t储存数量为:%d\\n",book[j].number,book[j].num);
323         }
324     }
325     getchar();
326 }
327 
328 void dele(){    //删除图书
329     system("cls");
330     printf(" ___________________________________________ \\n");
331     printf("|\\t\\t删除图书\\t\\t    |\\n");
332     printf("Java开发 | 图书管理系统 | 小程序 | 小练习

Java小项目迷你图书管理系统

微信小程序实现图书管理系统

基于微信小程序的图书馆管理系统.rar(论文+源码)

计算机毕业设计ssm+vue基本微信小程序的智能图书管理系统

开源微信小程序--借书系统