源码如下:
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #define M 1000
- void choice_1_input_new(); /*输入新进的图书信息*/
- void choice_2_display_all(); /*显示全部图书信息*/
- void choice_3_search_according_name(); /*根据图书名称显示图书的信息*/
- void choice_4_delete_according_name(); /*根据图书名称对图书信息进行删除*/
- void choice_9_sort_according_list(); /*根据图书库存排序*/
- void choice_5_sort_according_name(); /*根据图书价格排序*/
- void choice_6_display_high_price(); /*根据价格范围列出图书信息*/
- void choice_7_display_according_exitflag(); /*根据存在状态列出图书信息*/
- void choice_8_change_book(); /*修改图书信息*/
- typedef struct bookinfo
- {
- char number[15]; /*产品编号*/
- char name[30]; /*产品名称*/
- char auther[30]; /*作者*/
- char list[20]; /*类别*/
- float price; /*单价*/
- char boss[15]; /*出版社信息*/
- char time[10]; /*出版时间*/
- int isExit; /*库存存在状态*/
- }BOOKINFO;
- void choice_1_input_new() /*输入新进的图书信息*/
- {
- char choice;
- FILE *p;
- BOOKINFO newbook;
- system("cls") ;
- while(1)
- {
- printf("输入图书编号:");
- scanf("%s",&newbook.number);
- printf("输入图书名称:");
- scanf("%s",&newbook.name);
- printf("输入图书类别:");
- scanf("%s",&newbook.list);
- printf("输入图书单价:");
- scanf("%f",&newbook.price);
- printf("输入其出版社:");
- scanf("%s",&newbook.boss);
- printf("输入图书作者:");
- scanf("%s",&newbook.auther);
- printf("输入出版时间:");
- scanf("%s",&newbook.time);
- printf("输入需要添加的图书数目:");
- scanf("%d",&newbook.isExit);
- printf("是否保存该条数目?(Y/N):");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- {
- p=fopen("e:\\bookinfo.txt","ab");
- fwrite(&newbook,sizeof(BOOKINFO),1,p);
- fclose(p);
- printf("\n该条书目已添加到e:\\bookinfo.txt 文件中!\n");
- }
- else
- {
- printf("\n该条书目未保存!\n");
- }
- printf("\n是否继续添加书目?(Y/N):");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- continue;
- else
- break;
- }
- }
- void choice_2_display_all() /*显示全部图书信息*/
- {
- FILE *p;
- int n;
- BOOKINFO bookinfo[M];
- int booknumber=0;
- system("cls");
- p=fopen("e:\\bookinfo.txt","rb");
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- fclose(p);
- booknumber--;
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- n=0;
- printf("图书信息如下:\n\n\n");
- printf("\t\t\t\t 图书信息\n\n\n");
- printf("编号 名称 单价 作者 图书库存 出版社 出版时间 图书类别\n\n");
- while(n<booknumber)
- {
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,
- bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- n++;
- }
- }
- printf("\n\n\n\t\t\t 按任意键返回主菜单!");
- getch();
- }
- void choice_3_search_according_name() /*根据图书名称显示图书的信息*/
- {
- char search[20];
- int n;
- FILE *p;
- char choice;
- BOOKINFO bookinfo[M];
- int booknumber=0;
- system("cls");
- p=fopen("e:\\bookinfo.txt","rb");
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- while(1)
- {
- printf("输入要查询的书本名称:");
- scanf("%s",&search);
- if(booknumber==0)
- {
- printf("\t\t\t 书库中没有任何信息!\n\n\n");
- printf("\t\t\t 按任意键返回主菜单!");
- getch();
- break;
- }
- else
- {
- for(n=0;n<booknumber;n++)
- if(strcmp(bookinfo[n].name,search)==0)
- {
- printf("\n\n\t\t\t该书的详细信息如下:\n\n\n");
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,
- bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- break;
- }
- if(n>=booknumber)
- printf("\n\n\t\t\t没有查到该书的任何信息!\n");
- printf("\n\n是否继续查询?(Y/N):");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- continue;
- else
- break;
- }
- }
- }
- void choice_4_delete_according_name() /*根据图书名称对图书信息进行删除*/
- {
- char search[20];
- int n,i;
- FILE *p;
- char choice;
- BOOKINFO bookinfo[M];
- int booknumber;
- system("cls");
- while(1)
- {
- printf("输入要删除的书本名称:");
- scanf("%s",&search);
- p=fopen("e:\\bookinfo.txt","rb");
- booknumber=0;
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\t\t\t 书库中没有任何信息!\n\n\n");
- printf("\t\t\t 按任意键返回主菜单!");
- getch();
- break;
- }
- else
- {
- for(n=0;n<booknumber;n++)
- if(strcmp(bookinfo[n].name,search)==0)
- {
- break;
- }
- if(n>=booknumber)
- printf("\t\t\t 没有查到该书的任何信息!\n\n");
- else
- {
- printf("是否确认需要删除该条书目?(Y/N):");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- {
- for(i=n;i<booknumber-1;i++)
- bookinfo[i]=bookinfo[i+1];
- booknumber--;
- p=fopen("e:\\bookinfo.txt","wb");
- for(n=0;n<booknumber;n++)
- fwrite(&bookinfo[n],sizeof(BOOKINFO),1,p);
- fclose(p);
- printf("\n\n\n\t\t\t\t 删除成功!\n");
- }
- else
- printf("\n\n该条书目没有被删除!");
- }
- printf("\n\n是否继续进行删除操作?(Y/N):");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- continue;
- else
- break;
- }
- }
- }
- void choice_9_sort_according_list() /*根据图书库存排序*/
- {
- FILE *p;
- int m,n;
- BOOKINFO temp;
- BOOKINFO bookinfo[M];
- int booknumber;
- p=fopen("e:\\bookinfo.txt","rb");
- booknumber=0;
- system("cls");
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- for(m=0;m<booknumber-1;m++)
- for(n=m+1;n<booknumber;n++)
- if(bookinfo[m].isExit<bookinfo[n].isExit)
- {
- temp=bookinfo[m];
- bookinfo[m]=bookinfo[n];
- bookinfo[n]=temp;
- }
- p=fopen("e:\\bookinfo.txt","wb");
- for(m=0;m<booknumber;m++)
- fwrite(&bookinfo[m],sizeof(BOOKINFO),1,p);
- fclose(p);
- printf("\n\n完成排序!\n\n");
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- n=0;
- printf("图书信息如下:\n\n");
- printf("\t\t\t\t 图书信息\n\n\n");
- printf("编号 名称 单价 作者 图书库存 出版社 出版时间 图书类别\n\n");
- while(n<booknumber)
- {
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,
- bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- n++;
- }
- }
- }
- fclose(p);
- printf("\n\t\t\t 按任意键返回主菜单!");
- getch();
- }
- void choice_5_sort_according_name() /*根据图书价格排序*/
- {
- FILE *p;
- int m,n;
- BOOKINFO temp;
- BOOKINFO bookinfo[M];
- int booknumber;
- p=fopen("e:\\bookinfo.txt","rb");
- booknumber=0;
- system("cls");
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- for(m=0;m<booknumber-1;m++)
- for(n=m+1;n<booknumber;n++)
- if(bookinfo[m].price>bookinfo[n].price)
- {
- temp=bookinfo[m];
- bookinfo[m]=bookinfo[n];
- bookinfo[n]=temp;
- }
- p=fopen("e:\\bookinfo.txt","wb");
- for(m=0;m<booknumber;m++)
- fwrite(&bookinfo[m],sizeof(BOOKINFO),1,p);
- fclose(p);
- printf("\n\n完成排序!\n\n");
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- n=0;
- printf("图书信息如下:\n\n");
- printf("\t\t\t\t 图书信息\n\n\n");
- printf("编号 名称 单价 作者 图书库存 出版社 出版时间 图书类别\n\n");
- while(n<booknumber)
- {
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,
- bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- n++;
- }
- }
- }
- fclose(p);
- printf("\n\t\t\t 按任意键返回主菜单!");
- getch();
- }
- void choice_6_display_high_price() /*根据价格范围列出图书信息*/
- {
- float price;
- FILE *p;
- int n;
- int count=0;
- BOOKINFO bookinfo[M];
- int booknumber;
- system("cls");
- printf("请输入价格:");
- scanf("%f",&price);
- p=fopen("e:\\bookinfo.txt","rb");
- booknumber=0;
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- for(n=0;n<booknumber;n++)
- {
- if(bookinfo[n].price>=price)
- count++;
- }
- if(count==0)
- printf("书库中没有比%.1f$价格高的图书!",price);
- else
- {
- printf("价格高于¥%.1f的图书信息如下:\n\n",price);
- printf("\t\t\t\t图书信息\n\n\n");
- printf("编号 名称 单价 作者 图书库存 出版社 出版时间 图书类别\n\n");
- for(n=0;n<booknumber;n++)
- {
- if(bookinfo[n].price>=price)
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,
- bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- }
- }
- }
- printf("\n\t\t\t 按任意键返回主菜单!");
- getch();
- }
- void choice_7_display_according_exitflag() /*根据存在状态列出图书信息*/
- {
- FILE *p;
- int n;
- int count=0;
- BOOKINFO bookinfo[M];
- int booknumber;
- system("cls");
- booknumber=0;
- p=fopen("e:\\bookinfo.txt","rb");
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\n\n\n\t\t\t 书库中没有任何书目存在!\n\n");
- }
- else
- {
- for(n=0;n<booknumber;n++)
- if(bookinfo[n].isExit!=0)
- count++;
- if(count==0)
- printf("\n\n\n\t\t\t 书库中的书籍全部借出!\n\n");
- else
- {
- printf("书库中的图书信息如下:\n\n");
- printf("\t\t\t\t 图书信息\n\n\n");
- printf("编号 名称 单价 作者 图书库存 出版社 出版时间 图书类别\n\n");
- for(n=0;n<booknumber;n++)
- if(bookinfo[n].isExit!=0)
- {
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,
- bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- }
- }
- }
- printf("\n\t\t\t 按任意键返回主菜单!");
- getch();
- }
- void choice_8_change_book() /*修改图书信息*/
- {
- char search[20];
- int n,i;
- FILE *p;
- char choice;
- BOOKINFO newbook;
- BOOKINFO bookinfo[M];
- int booknumber;
- system("cls");
- while(1)
- {
- printf("注意!请谨慎修改,未完成修改的图书将被视为不合法操作!\a\n\n");
- printf("输入要修改的书本名称:");
- scanf("%s",&search);
- p=fopen("e:\\bookinfo.txt","rb");
- booknumber=0;
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\t\t\t 书库中没有任何信息!\n\n");
- printf("\n\t\t\t 按任意键返回主菜单!");
- getch();
- break;
- }
- else
- {
- for(n=0;n<booknumber;n++)
- if(strcmp(bookinfo[n].name,search)==0)
- {
- break;
- }
- if(n>=booknumber)
- printf("\n\n\n\t\t\t 没有查到该书的任何信息!\n");
- else
- {
- printf("是否确认需要修改该条书目?(Y/N):");
- choice=getch();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getch();
- if(choice == 'Y'||choice == 'y')
- {
- for(i=n;i<booknumber-1;i++)
- bookinfo[i]=bookinfo[i+1];
- booknumber--;
- p=fopen("e:\\bookinfo.txt","wb");
- for(n=0;n<booknumber;n++)
- fwrite(&bookinfo[n],sizeof(BOOKINFO),1,p);
- fclose(p);
- {
- printf("\n");
- printf("输入图书编号:");
- scanf("%s",newbook.number);
- printf("输入图书名称:");
- scanf("%s",newbook.name);
- printf("输入图书类别:");
- scanf("%s",newbook.list);
- printf("输入图书单价:");
- scanf("%f",newbook.price);
- printf("输入其出版社:");
- scanf("%s",newbook.boss);
- printf("输入图书作者:");
- scanf("%s",newbook.auther);
- printf("输入出版时间:");
- scanf("%s",newbook.time);
- printf("\n\n是否保存该条书目信息?(Y/N): ");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- {
- p=fopen("e:\\bookinfo.txt","ab");
- fwrite(&newbook,sizeof(BOOKINFO),1,p);
- fclose(p);
- printf("\n\n该条书目已添加到 e:\\bookinfo.txt 文件中!\n\n");
- }
- else
- {
- printf("\n该条书目未保存!\n");
- }
- printf("\n\n是否继续修改书目?(Y/N): ");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- continue;
- else
- break;
- }
- }
- else
- printf("\n\n该条书目没有被修改!");
- }
- printf("\n\n是否继续进行修改操作?(Y/N): ");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- continue;
- else
- break;
- }
- }
- }
- void choice_() /*排序*/
- {
- int choice;
- system("cls");
- printf("1: 按价格排序 2:按图书库存排序\n");
- printf("请输入您的选择:");
- scanf("%d",&choice);
- if(choice==1)
- {
- choice_5_sort_according_name(); /*根据图书价格排序*/
- }
- else if(choice==2)
- {
- choice_9_sort_according_list(); /*根据图书库存排序*/
- }
- else
- {
- printf("您输入的命令错误!请核对后再输入!\n\a");
- }
- }
- int main()
- {
- system("color 3F");
- system("title 许志强");
- char choice;
- int pass;
- int i=3;
- FILE *p;
- if((p=fopen("e:\\bookinfo.txt","rb"))==NULL)
- {
- p=fopen("e:\\bookinfo.txt","wb");
- fclose(p);
- }
- printf("\n\n\n\n\n");
- printf("\t\t\t欢迎使用呼伦贝尔学院图书信息管理系统\n\n\n\n\n");
- printf("\t\t\t 请输入您的学号(0~9): ");
- while(pass!=123456)
- {
- scanf("%d",&pass);
- if(pass!=123456)
- printf("\t\t\t对不起!你输入的学号有误,您还有%d次机会......\n\a",--i);
- if(i==0)
- {
- printf("\n\n\n");
- printf("\t\t\t您的学号不存在!请联系图书馆管理员!\n\a");
- exit(0);
- }
- }
- if(pass==123456)
- {
- printf("\n\n\n\n");
- printf("\t\t\t 学号输入正确,进入系统中......\n\n\n");
- Sleep(2600);
- }
- getchar();
- system("cls");
- printf("\n\n\n\n\n");
- printf("\t\t\t欢迎进入呼伦贝尔学院图书信息管理系统\n\n\n\n\n");
- printf("\t\t\t\t 按Enter进入系统\n\n");
- time_t tim; //获取电脑时间
- struct tm *at;
- char now[80];
- time(&tim);
- at=localtime(&tim); //转为时间结构。
- strftime(now,79,"\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t 星期%w\n\t\t\t\t\t\t\t\t %H:%M:%S\n\t\t\t\t\t\t\t\t %Y-%m-%d\n",at); //输出格式
- printf(now);
- getchar();
- system("cls");
- while(1)
- {
- system("cls");
- system("color 3f");
- printf("\n\n");
- printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
- printf("\t※ ※\n");
- printf("\t※ 呼伦贝尔学院欢迎您\t\t ※\n");
- printf("\t※ ※\n");
- printf("\t※ 图书信息管理系统\t\t\t ※\n");
- printf("\t※ ※\n");
- printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
- printf("\t\t\t * * * * * * * * * * *\n");
- printf("\t\t\t * 1 输入图书信息 *\n");
- printf("\t\t\t * 2 显示全部信息 *\n");
- printf("\t\t\t * 3 根据名称查询 *\n");
- printf("\t\t\t * 4 根据名称删除 *\n");
- printf("\t\t\t * 5 图书进行排序 *\n");
- printf("\t\t\t * 6 统计图书数量 *\n");
- printf("\t\t\t * 7 图书状态信息 *\n");
- printf("\t\t\t * 8 修改图书信息 *\n");
- printf("\t\t\t * 9 退出图书系统 *\n");
- printf("\t\t\t * * * * * * * * * * *\n\n");
- printf("\t\t\t 请输入您的选择:");
- scanf("%d",&choice);
-
- switch(choice)
- {
- case 1: choice_1_input_new(); break; /*输入新进的图书信息*/
- case 2: choice_2_display_all(); break; /*显示全部图书信息*/
- case 3: choice_3_search_according_name(); break; /*根据图书名称显示图书的信息*/
- case 4: choice_4_delete_according_name(); break; /*根据图书名称对图书信息进行删除*/
- case 5: choice_(); break; /*排序*/
- case 6: choice_6_display_high_price(); break; /*根据价格范围列出图书信息*/
- case 7: choice_7_display_according_exitflag(); break; /*根据存在状态列出图书信息*/
- case 8: choice_8_change_book(); break; /*修改图书信息*/
- case 9: system("cls"); printf("\n\t\t\t * * * * * * * *\n");
- printf("\t\t\t * *\n");
- printf("\t\t\t * 谢谢使用! *\n");
- printf("\t\t\t * *\n");
- printf("\t\t\t * * * * * * * *\n");
- printf("\n\n\t\t\t 按任意键退出!\n");exit(0);
- break; /*退出*/
- default : printf("输入错误\n"); break;
- }
- }
- return 0;
- }
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #define M 1000
- void choice_1_input_new(); /*输入新进的图书信息*/
- void choice_2_display_all(); /*显示全部图书信息*/
- void choice_3_search_according_name(); /*根据图书名称显示图书的信息*/
- void choice_4_delete_according_name(); /*根据图书名称对图书信息进行删除*/
- void choice_9_sort_according_list(); /*根据图书库存排序*/
- void choice_5_sort_according_name(); /*根据图书价格排序*/
- void choice_6_display_high_price(); /*根据价格范围列出图书信息*/
- void choice_7_display_according_exitflag(); /*根据存在状态列出图书信息*/
- void choice_8_change_book(); /*修改图书信息*/
- typedef struct bookinfo
- {
- char number[15]; /*产品编号*/
- char name[30]; /*产品名称*/
- char auther[30]; /*作者*/
- char list[20]; /*类别*/
- float price; /*单价*/
- char boss[15]; /*出版社信息*/
- char time[10]; /*出版时间*/
- int isExit; /*库存存在状态*/
- }BOOKINFO;
- void choice_1_input_new() /*输入新进的图书信息*/
- {
- char choice;
- FILE *p;
- BOOKINFO newbook;
- system("cls") ;
- while(1)
- {
- printf("输入图书编号:");
- scanf("%s",&newbook.number);
- printf("输入图书名称:");
- scanf("%s",&newbook.name);
- printf("输入图书类别:");
- scanf("%s",&newbook.list);
- printf("输入图书单价:");
- scanf("%f",&newbook.price);
- printf("输入其出版社:");
- scanf("%s",&newbook.boss);
- printf("输入图书作者:");
- scanf("%s",&newbook.auther);
- printf("输入出版时间:");
- scanf("%s",&newbook.time);
- printf("输入需要添加的图书数目:");
- scanf("%d",&newbook.isExit);
- printf("是否保存该条数目?(Y/N):");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- {
- p=fopen("e:\\bookinfo.txt","ab");
- fwrite(&newbook,sizeof(BOOKINFO),1,p);
- fclose(p);
- printf("\n该条书目已添加到e:\\bookinfo.txt 文件中!\n");
- }
- else
- {
- printf("\n该条书目未保存!\n");
- }
- printf("\n是否继续添加书目?(Y/N):");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- continue;
- else
- break;
- }
- }
- void choice_2_display_all() /*显示全部图书信息*/
- {
- FILE *p;
- int n;
- BOOKINFO bookinfo[M];
- int booknumber=0;
- system("cls");
- p=fopen("e:\\bookinfo.txt","rb");
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- fclose(p);
- booknumber--;
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- n=0;
- printf("图书信息如下:\n\n\n");
- printf("\t\t\t\t 图书信息\n\n\n");
- printf("编号 名称 单价 作者 图书库存 出版社 出版时间 图书类别\n\n");
- while(n<booknumber)
- {
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,bookinfo[n].price,
- bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- n++;
- }
- }
- printf("\n\n\n\t\t\t 按任意键返回主菜单!");
- getch();
- }
- void choice_3_search_according_name() /*根据图书名称显示图书的信息*/
- {
- char search[20];
- int n;
- FILE *p;
- char choice;
- BOOKINFO bookinfo[M];
- int booknumber=0;
- system("cls");
- p=fopen("e:\\bookinfo.txt","rb");
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- while(1)
- {
- printf("输入要查询的书本名称:");
- scanf("%s",&search);
- if(booknumber==0)
- {
- printf("\t\t\t 书库中没有任何信息!\n\n\n");
- printf("\t\t\t 按任意键返回主菜单!");
- getch();
- break;
- }
- else
- {
- for(n=0;n<booknumber;n++)
- if(strcmp(bookinfo[n].name,search)==0)
- {
- printf("\n\n\t\t\t该书的详细信息如下:\n\n\n");
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,
- bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- break;
- }
- if(n>=booknumber)
- printf("\n\n\t\t\t没有查到该书的任何信息!\n");
- printf("\n\n是否继续查询?(Y/N):");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- continue;
- else
- break;
- }
- }
- }
- void choice_4_delete_according_name() /*根据图书名称对图书信息进行删除*/
- {
- char search[20];
- int n,i;
- FILE *p;
- char choice;
- BOOKINFO bookinfo[M];
- int booknumber;
- system("cls");
- while(1)
- {
- printf("输入要删除的书本名称:");
- scanf("%s",&search);
- p=fopen("e:\\bookinfo.txt","rb");
- booknumber=0;
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\t\t\t 书库中没有任何信息!\n\n\n");
- printf("\t\t\t 按任意键返回主菜单!");
- getch();
- break;
- }
- else
- {
- for(n=0;n<booknumber;n++)
- if(strcmp(bookinfo[n].name,search)==0)
- {
- break;
- }
- if(n>=booknumber)
- printf("\t\t\t 没有查到该书的任何信息!\n\n");
- else
- {
- printf("是否确认需要删除该条书目?(Y/N):");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- {
- for(i=n;i<booknumber-1;i++)
- bookinfo[i]=bookinfo[i+1];
- booknumber--;
- p=fopen("e:\\bookinfo.txt","wb");
- for(n=0;n<booknumber;n++)
- fwrite(&bookinfo[n],sizeof(BOOKINFO),1,p);
- fclose(p);
- printf("\n\n\n\t\t\t\t 删除成功!\n");
- }
- else
- printf("\n\n该条书目没有被删除!");
- }
- printf("\n\n是否继续进行删除操作?(Y/N):");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- continue;
- else
- break;
- }
- }
- }
- void choice_9_sort_according_list() /*根据图书库存排序*/
- {
- FILE *p;
- int m,n;
- BOOKINFO temp;
- BOOKINFO bookinfo[M];
- int booknumber;
- p=fopen("e:\\bookinfo.txt","rb");
- booknumber=0;
- system("cls");
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- for(m=0;m<booknumber-1;m++)
- for(n=m+1;n<booknumber;n++)
- if(bookinfo[m].isExit<bookinfo[n].isExit)
- {
- temp=bookinfo[m];
- bookinfo[m]=bookinfo[n];
- bookinfo[n]=temp;
- }
- p=fopen("e:\\bookinfo.txt","wb");
- for(m=0;m<booknumber;m++)
- fwrite(&bookinfo[m],sizeof(BOOKINFO),1,p);
- fclose(p);
- printf("\n\n完成排序!\n\n");
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- n=0;
- printf("图书信息如下:\n\n");
- printf("\t\t\t\t 图书信息\n\n\n");
- printf("编号 名称 单价 作者 图书库存 出版社 出版时间 图书类别\n\n");
- while(n<booknumber)
- {
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,
- bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- n++;
- }
- }
- }
- fclose(p);
- printf("\n\t\t\t 按任意键返回主菜单!");
- getch();
- }
- void choice_5_sort_according_name() /*根据图书价格排序*/
- {
- FILE *p;
- int m,n;
- BOOKINFO temp;
- BOOKINFO bookinfo[M];
- int booknumber;
- p=fopen("e:\\bookinfo.txt","rb");
- booknumber=0;
- system("cls");
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- for(m=0;m<booknumber-1;m++)
- for(n=m+1;n<booknumber;n++)
- if(bookinfo[m].price>bookinfo[n].price)
- {
- temp=bookinfo[m];
- bookinfo[m]=bookinfo[n];
- bookinfo[n]=temp;
- }
- p=fopen("e:\\bookinfo.txt","wb");
- for(m=0;m<booknumber;m++)
- fwrite(&bookinfo[m],sizeof(BOOKINFO),1,p);
- fclose(p);
- printf("\n\n完成排序!\n\n");
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- n=0;
- printf("图书信息如下:\n\n");
- printf("\t\t\t\t 图书信息\n\n\n");
- printf("编号 名称 单价 作者 图书库存 出版社 出版时间 图书类别\n\n");
- while(n<booknumber)
- {
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,
- bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- n++;
- }
- }
- }
- fclose(p);
- printf("\n\t\t\t 按任意键返回主菜单!");
- getch();
- }
- void choice_6_display_high_price() /*根据价格范围列出图书信息*/
- {
- float price;
- FILE *p;
- int n;
- int count=0;
- BOOKINFO bookinfo[M];
- int booknumber;
- system("cls");
- printf("请输入价格:");
- scanf("%f",&price);
- p=fopen("e:\\bookinfo.txt","rb");
- booknumber=0;
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\n\n\t\t\t 没有任何图书信息!\n\n");
- }
- else
- {
- for(n=0;n<booknumber;n++)
- {
- if(bookinfo[n].price>=price)
- count++;
- }
- if(count==0)
- printf("书库中没有比%.1f$价格高的图书!",price);
- else
- {
- printf("价格高于¥%.1f的图书信息如下:\n\n",price);
- printf("\t\t\t\t图书信息\n\n\n");
- printf("编号 名称 单价 作者 图书库存 出版社 出版时间 图书类别\n\n");
- for(n=0;n<booknumber;n++)
- {
- if(bookinfo[n].price>=price)
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,
- bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- }
- }
- }
- printf("\n\t\t\t 按任意键返回主菜单!");
- getch();
- }
- void choice_7_display_according_exitflag() /*根据存在状态列出图书信息*/
- {
- FILE *p;
- int n;
- int count=0;
- BOOKINFO bookinfo[M];
- int booknumber;
- system("cls");
- booknumber=0;
- p=fopen("e:\\bookinfo.txt","rb");
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\n\n\n\t\t\t 书库中没有任何书目存在!\n\n");
- }
- else
- {
- for(n=0;n<booknumber;n++)
- if(bookinfo[n].isExit!=0)
- count++;
- if(count==0)
- printf("\n\n\n\t\t\t 书库中的书籍全部借出!\n\n");
- else
- {
- printf("书库中的图书信息如下:\n\n");
- printf("\t\t\t\t 图书信息\n\n\n");
- printf("编号 名称 单价 作者 图书库存 出版社 出版时间 图书类别\n\n");
- for(n=0;n<booknumber;n++)
- if(bookinfo[n].isExit!=0)
- {
- printf("%-6s%-12s%-8.1f%s %-2d %s %s %s\n",bookinfo[n].number,bookinfo[n].name,
- bookinfo[n].price,bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].boss,bookinfo[n].time,bookinfo[n].list);
- }
- }
- }
- printf("\n\t\t\t 按任意键返回主菜单!");
- getch();
- }
- void choice_8_change_book() /*修改图书信息*/
- {
- char search[20];
- int n,i;
- FILE *p;
- char choice;
- BOOKINFO newbook;
- BOOKINFO bookinfo[M];
- int booknumber;
- system("cls");
- while(1)
- {
- printf("注意!请谨慎修改,未完成修改的图书将被视为不合法操作!\a\n\n");
- printf("输入要修改的书本名称:");
- scanf("%s",&search);
- p=fopen("e:\\bookinfo.txt","rb");
- booknumber=0;
- while(!feof(p))
- {
- fread(&bookinfo[booknumber],sizeof(BOOKINFO),1,p);
- booknumber++;
- }
- booknumber--;
- fclose(p);
- if(booknumber==0)
- {
- printf("\t\t\t 书库中没有任何信息!\n\n");
- printf("\n\t\t\t 按任意键返回主菜单!");
- getch();
- break;
- }
- else
- {
- for(n=0;n<booknumber;n++)
- if(strcmp(bookinfo[n].name,search)==0)
- {
- break;
- }
- if(n>=booknumber)
- printf("\n\n\n\t\t\t 没有查到该书的任何信息!\n");
- else
- {
- printf("是否确认需要修改该条书目?(Y/N):");
- choice=getch();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getch();
- if(choice == 'Y'||choice == 'y')
- {
- for(i=n;i<booknumber-1;i++)
- bookinfo[i]=bookinfo[i+1];
- booknumber--;
- p=fopen("e:\\bookinfo.txt","wb");
- for(n=0;n<booknumber;n++)
- fwrite(&bookinfo[n],sizeof(BOOKINFO),1,p);
- fclose(p);
- {
- printf("\n");
- printf("输入图书编号:");
- scanf("%s",newbook.number);
- printf("输入图书名称:");
- scanf("%s",newbook.name);
- printf("输入图书类别:");
- scanf("%s",newbook.list);
- printf("输入图书单价:");
- scanf("%f",newbook.price);
- printf("输入其出版社:");
- scanf("%s",newbook.boss);
- printf("输入图书作者:");
- scanf("%s",newbook.auther);
- printf("输入出版时间:");
- scanf("%s",newbook.time);
- printf("\n\n是否保存该条书目信息?(Y/N): ");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- {
- p=fopen("e:\\bookinfo.txt","ab");
- fwrite(&newbook,sizeof(BOOKINFO),1,p);
- fclose(p);
- printf("\n\n该条书目已添加到 e:\\bookinfo.txt 文件中!\n\n");
- }
- else
- {
- printf("\n该条书目未保存!\n");
- }
- printf("\n\n是否继续修改书目?(Y/N): ");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- continue;
- else
- break;
- }
- }
- else
- printf("\n\n该条书目没有被修改!");
- }
- printf("\n\n是否继续进行修改操作?(Y/N): ");
- choice=getchar();
- while(choice != 'Y'&&choice != 'y'&&choice != 'N'&&choice != 'n')
- choice=getchar();
- if(choice == 'Y'||choice == 'y')
- continue;
- else
- break;
- }
- }
- }
- void choice_() /*排序*/
- {
- int choice;
- system("cls");
- printf("1: 按价格排序 2:按图书库存排序\n");
- printf("请输入您的选择:");
- scanf("%d",&choice);
- if(choice==1)
- {
- choice_5_sort_according_name(); /*根据图书价格排序*/
- }
- else if(choice==2)
- {
- choice_9_sort_according_list(); /*根据图书库存排序*/
- }
- else
- {
- printf("您输入的命令错误!请核对后再输入!\n\a");
- }
- }
- int main()
- {
- system("color 3F");
- system("title ***");
- char choice;
- int pass;
- int i=3;
- FILE *p;
- if((p=fopen("e:\\bookinfo.txt","rb"))==NULL)
- {
- p=fopen("e:\\bookinfo.txt","wb");
- fclose(p);
- }
- printf("\n\n\n\n\n");
- printf("\t\t\t欢迎使用呼伦贝尔学院图书信息管理系统\n\n\n\n\n");
- printf("\t\t\t 请输入您的学号(0~9): ");
- while(pass!=123456)
- {
- scanf("%d",&pass);
- if(pass!=123456)
- printf("\t\t\t对不起!你输入的学号有误,您还有%d次机会......\n\a",--i);
- if(i==0)
- {
- printf("\n\n\n");
- printf("\t\t\t您的学号不存在!请联系图书馆管理员!\n\a");
- exit(0);
- }
- }
- if(pass==123456)
- {
- printf("\n\n\n\n");
- printf("\t\t\t 学号输入正确,进入系统中......\n\n\n");
- Sleep(2600);
- }
- getchar();
- system("cls");
- printf("\n\n\n\n\n");
- printf("\t\t\t欢迎进入呼伦贝尔学院图书信息管理系统\n\n\n\n\n");
- printf("\t\t\t\t 按Enter进入系统\n\n");
- time_t tim; //获取电脑时间
- struct tm *at;
- char now[80];
- time(&tim);
- at=localtime(&tim); //转为时间结构。
- strftime(now,79,"\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t 星期%w\n\t\t\t\t\t\t\t\t %H:%M:%S\n\t\t\t\t\t\t\t\t %Y-%m-%d\n",at); //输出格式
- printf(now);
- getchar();
- system("cls");
- while(1)
- {
- system("cls");
- system("color 3f");
- printf("\n\n");
- printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
- printf("\t※ ※\n");
- printf("\t※ 呼伦贝尔学院欢迎您\t\t ※\n");
- printf("\t※ ※\n");
- printf("\t※ 图书信息管理系统\t\t\t ※\n");
- printf("\t※ ※\n");
- printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
- printf("\t\t\t * * * * * * * * * * *\n");
- printf("\t\t\t * 1 输入图书信息 *\n");
- printf("\t\t\t * 2 显示全部信息 *\n");
- printf("\t\t\t * 3 根据名称查询 *\n");
- printf("\t\t\t * 4 根据名称删除 *\n");
- printf("\t\t\t * 5 图书进行排序 *\n");
- printf("\t\t\t * 6 统计图书数量 *\n");
- printf("\t\t\t * 7 图书状态信息 *\n");
- printf("\t\t\t * 8 修改图书信息 *\n");
- printf("\t\t\t * 9 退出图书系统 *\n");
- printf("\t\t\t * * * * * * * * * * *\n\n");
- printf("\t\t\t 请输入您的选择:");
- scanf("%d",&choice);
-
- switch(choice)
- {
- case 1: choice_1_input_new(); break; /*输入新进的图书信息*/
- case 2: choice_2_display_all(); break; /*显示全部图书信息*/
- case 3: choice_3_search_according_name(); break; /*根据图书名称显示图书的信息*/
- case 4: choice_4_delete_according_name(); break; /*根据图书名称对图书信息进行删除*/
- case 5: choice_(); break; /*排序*/
- case 6: choice_6_display_high_price(); break; /*根据价格范围列出图书信息*/
- case 7: choice_7_display_according_exitflag(); break; /*根据存在状态列出图书信息*/
- case 8: choice_8_change_book(); break; /*修改图书信息*/
- case 9: system("cls"); printf("\n\t\t\t * * * * * * * *\n");
- printf("\t\t\t * *\n");
- printf("\t\t\t * 谢谢使用! *\n");
- printf("\t\t\t * *\n");
- printf("\t\t\t * * * * * * * *\n");
- printf("\n\n\t\t\t 按任意键退出!\n");exit(0);
- break; /*退出*/
- default : printf("输入错误\n"); break;
- }
- }
- return 0;
- }
复制代码 |