真的好久没编程,作为一个软件工程大二的。到现在还编这种程序,真丢人。
昨晚做到四点,这个程序思路很简单。但昨晚被fscanf和fread绊住,占据了很多时间。
好好编程,做个coder。
本来想用滑块写界面的,但是时间不够了,这能这样了,很难看。
昨晚做到四点,这个程序思路很简单。但昨晚被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 }