图书馆预约系统

真的好久没编程,作为一个软件工程大二的。到现在还编这种程序,真丢人。
昨晚做到四点,这个程序思路很简单。但昨晚被fscanf和fread绊住,占据了很多时间。
好好编程,做个coder。
本来想用滑块写界面的,但是时间不够了,这能这样了,很难看。
  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 #include<string.h>
  4 #include<time.h>
  5 typedef struct node
  6 {
  7     char book[20];
  8     char card[20];
  9     char tel[20];
 10     struct node *next;
 11 }libre, *lib;
 12 
 13 void space(int o,int p);
 14 void Paint();
 15 lib InitList();
 16 void addlist();
 17 int dellist();
 18 int inqlist();
 19 void showlist();
 20 void paint2();
 21 int main()
 22 {
 23     int i;
 24     lib l;
 25     Paint();
 26     space(1,16);
 27     printf("请输入你要进行的操作");
 28     scanf("%d",&i);
 29     switch(i)
 30     {
 31         case 1:l=InitList(); break;
 32         case 2:addlist(); break;
 33         case 3:dellist(); break;
 34         case 4:inqlist(); break;
 35         case 5:showlist(); break;
 36         case 0: system("cls");
 37                 exit(0);
 38                space(8,16); printf("感谢您使用本程序!\n");break;
 39 
 40         default:printf("请输入正确的命令!\n");
 41     }
 42     return 0;
 43 }
 44 
 45 void space(int o,int p)
 46 {
 47     int q,w;
 48     for(q=0;q
 49         printf("\n");
 50     for(w=0;w
 51 
 52 
 53         printf("  ");
 54 }
 55 void Paint()
 56 {
 57     system("cls");
 58     system("color F0");
 59     space(7,16);
 60     printf("-->WHUT图书馆预约系统<--\n");
 61     space(0,14);printf("******************************\n");
 62     space(0,17);
 63     printf("1:初始化预约簿\n");
 64     space(0,17);
 65     printf("2:新增预约\n");
 66     space(0,17);
 67     printf("3:删除预约记录\n");
 68     space(0,17);
 69     printf("4:查询预约记录\n");
 70     space(0,17);
 71     printf("5:显示\n");
 72     space(0,17);
 73     printf("0:退出\n");
 74 
 75 }
 76 void paint2()
 77 {
 78     int i;
 79     space(0,14);printf("************************\n");
 80     space(0,16);printf("按1返回主菜单\n");
 81     space(0,16);printf("按0退出程序\n");
 82     scanf("%d",&i);
 83     switch(i)
 84     {
 85     case 1: main();break;
 86     case 0: system("cls");
 87             
 88             space(8,16); printf("感谢您使用本程序!\n");
 89             exit(0);break;
 90 
 91     default:printf("请输入正确的命令!\n");
 92 
 93     }
 94 }
 95 
 96 lib InitList()
 97 {
 98     
 99     FILE *fp;
100     lib l;
101     system("cls");
102     space(0,16);printf("WHUT图书馆预约系统(初始化部分)\n");
103     printf("--------------------------------------------------------------------------------\n");
104     l=(lib)malloc(sizeof(libre));
105     l->next=0;
106     fp=fopen("E:\\图书馆预约簿.txt","wb");
107     space(0,16);printf("您已生成一个空的预约簿!\n");
108     fclose(fp);
109     paint2();
110     return l;
111 }
112 void addlist()
113 {
114     FILE *fp;
115     lib   p;
116     system("cls");
117     p=(lib)malloc(sizeof(libre));
118     if((fp=fopen("E:\\图书馆预约簿.txt","at+"))==NULL)
119     {
120         printf("未找到数据文件\n");
121         exit(0);
122     }
123     space(0,16);
124     printf("WHUT图书馆预约系统增添部分\n");
125     printf("--------------------------------------------------------------------------------\n");
126     space(0,16);printf("请输入您要借的书的书号\n");
127     space(0,16);scanf("%s",p->book);
128     space(0,16);printf("请输入您的借书证号码\n");
129     space(0,16);scanf("%s",p->card);
130     space(0,16);printf("请输入您的电话\n");
131     space(0,16);scanf("%s",p->tel);
132     fprintf(fp,"%s %s %s\n",p->book,p->card,p->tel);
133     space(0,16);printf("您的记录已经保存!\n");
134     fclose(fp);
135     paint2();
136     
137 }
138                                         
139 int dellist()
140 {
141     FILE *fp;
142     char s1[20],s2[20];
143     lib p,q,l,t;
144     int temp=0;
145     if((fp=fopen("E:\\图书馆预约簿.txt","rb+"))==NULL)
146     {
147         printf("未找到数据文件\n");
148         exit(0);
149     }
150 
151     l=p=q=(lib)malloc(sizeof(libre));
152     fscanf(fp,"%s %s %s\n",p->book,p->card,p->tel);
153     while(!feof(fp))
154     {
155         q=p;
156         p=(lib)malloc(sizeof(libre));
157         fscanf(fp,"%s %s %s\n",p->book,p->card,p->tel);
158         q->next=p;
159     }
160     p->next=NULL;
161     fclose(fp);
162     system("cls");
163     space(0,16);
164     printf("WHUT图书馆预约系统(删除部分)\n");
165     printf("--------------------------------------------------------------------------------\n");
166     space(0,16);printf("请输入书号\n");
167     space(0,16);scanf("%s",s1);
168     space(0,16);printf("请输入借书证号码\n");
169     space(0,16);scanf("%s",s2);
170     p=l;
171     while(p!=NULL)
172     {
173         
174         if (strcmp(p->book,s1)==0&&strcmp(p->card,s2)==0)
175         {
176             temp=1;
177             if(p==l)
178             {
179                 l=l->next;
180             }
181             else{
182                 q->next=p->next;
183                 free(q);
184                 }
185             break;
186             
187         }
188         q=p;
189         p=p->next;
190     }
191     if(temp)
192     {
193         space(0,16);printf("删除成功!\n");
194     }
195     else
196     {
197         space(0,16);printf("删除失败,找不到你要的数据!\n");
198     }
199     if((fp=fopen("E:\\图书馆预约簿.txt","wt+"))==NULL)
200     {
201         space(0,16);printf("未找到数据文件\n");
202         exit(0);
203     }
204     while(l)
205     {
206         fprintf(fp,"%s %s %s\n",l->book,l->card,l->tel);
207         l=l->next;
208     }
209     fclose(fp);
210     paint2();
211     return 0;
212  
213 }
214 int inqlist()
215 {
216     FILE *fp;
217     char s1[20];
218     lib p,q,l;
219         system("cls");
220     if((fp=fopen("E:\\图书馆预约簿.txt","at+"))==NULL)
221     {
222         printf("未找到数据文件\n");
223         exit(0);
224     }
225 
226     l=p=q=(lib)malloc(sizeof(libre));
227     fscanf(fp,"%s %s %s\n",p->book,p->card,p->tel);
228     while(!feof(fp))
229     {
230         q=p;
231         p=(lib)malloc(sizeof(libre));
232         fscanf(fp,"%s %s %s\n",p->book,p->card,p->tel);
233         q->next=p;
234     }
235     p->next=NULL;
236     fclose(fp);p=l;
237     space(0,16);
238     printf("WHUT图书馆预约系统(查询部分)\n");
239     printf("--------------------------------------------------------------------------------\n");
240     space(0,16);    printf("请输入书号\n");
241     space(0,16);scanf("%s",s1);
242     while(p)
243     {
244         if(strcmp(p->book,s1)==0)
245         {
246             space(0,16);printf("已有读者预约此书\n");
247             return 0;
248         }
249         p=p->next;
250     }
251     space(0,16);printf("没有读者预约此书\n");
252     paint2();
253     return 0;
254 }
255 void showlist()
256 {
257     FILE *fp;
258     lib p,q,l;
259     system("cls");
260     space(0,16);
261     printf("WHUT图书馆预约系统(展示部分)\n");
262     printf("--------------------------------------------------------------------------------\n");
263     if((fp=fopen("E:\\图书馆预约簿.txt","rb"))==NULL)
264     {
265         space(0,16);    printf("未找到数据文件\n");
266         exit(0);
267     }
268 
269     l=p=q=(lib)malloc(sizeof(libre));
270     if(!feof(fp))
271     {
272         space(0,16);printf("目前没有人预约图书!\n");
273         exit(0);
274     }
275 
276     fscanf(fp,"%s %s %s\n",p->book,p->card,p->tel);
277     while(!feof(fp))
278     {
279         q=p;
280         p=(lib)malloc(sizeof(libre));
281         fscanf(fp,"%s %s %s\n",p->book,p->card,p->tel);
282         q->next=p;
283     }
284     p->next=NULL;
285     fclose(fp);p=l;
286     
287     while(p)
288     {
289         space(0,16);
290         printf("%s\n",p->tel);
291         p=p->next;
292     }
293     paint2();
294 }

 

 

转载于:https://www.cnblogs.com/ccode/p/3906032.html

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值