运行结果如图2:
图2 登陆界面
(2) 主菜单模块:该模块并未单独编写,而是写在了主函数中,主要是定义整
型变量n,采用do{ }while 循环语句,输入n的值(1~6),从而选择相应的功能。
主函数及主菜单如下: void main()
{int a; sign_on(); do {
system(\
printf(\图书管理系统*****************\\n\printf(\printf(\图书信息录入\\n\printf(\图书信息浏览\\n\printf(\图书信息查询\\n\printf(\图书信息删除\\n\printf(\图书信息修改\\n\printf(\图书信息追加\\n\printf(\退出管理系统\\n\
printf(\printf(\设计人:幻想泡沫 \\n\printf(\学号:**********\\n\printf(\请选择:\scanf(\switch(a)
{case 1:input();break; case 2:list();break; case 3:search();break; case 4:del();break; case 5:revise();break;
case 6:append();break; case 0:exit(0);
default:printf(\序号不对\\n\}while(a!=0); }
运行结果如图3:
图3 主菜单界面
(3) 数据录入模块:该模块主要是把图书基本信息写入图书信息文件中。定义
在D盘中建立文件file1.txt,定义结构体变量a,将所要输入的一本图书信息输入到变量a中,再将a中的信息写入到文件中,此处利用for循环语句将图书信息依次写入到文件中,其中,图书存在状态默认为未出借(0为可出借,1为已借出,与其相关的借书人姓名和学号默认为空,性别为女(0为女,1为男)。
录入函数如下 void input() { int i;
BOOK a; FILE *fp; system(\
if((fp=fopen(\{ printf(\抱歉,不能打开文件!\\n\
printf(\图书信息录入***********************\\n\\n\ for(i=0;i {printf(\请输入图书名称:\ scanf(\ printf(\请输入图书编号:\ scanf(\ printf(\请输入图书价格:\ scanf(\ printf(\请输入图书作者:\ scanf(\ a.state=0; strcpy(a.borrowerName,\ a.sex=0; /*初始状态为可出借*/ strcpy(a.stuNo,\附加 fwrite(&a,sizeof(BOOK),1,fp); } fclose(fp); printf(\请按任意键继续!\getch(); } 运行结果如图4: 图4 图书信息录入界面 (4) 数据浏览模块:将文件中的图书基本信息显示到屏幕上。定义结构体变量 a,将文件file1中的一本图书信息读到变量a中,再打印a中的信息,利用while 循环语句将每本书的基本信息打印到屏幕上。 浏览函数如下: void list() {BOOK a; FILE *fp; system(\ printf(\ printf(\图书信息浏览********************\\n\ if((fp=fopen(\{printf(\抱歉,不能打开此文件!\\n\ printf(\ 书名\\t编号\\t价格\\t作者\\t借出状态\\t学生\\t性别\\t学号\\n\\n\ while(fread(&a,sizeof(BOOK),1,fp)!=0) printf(\ %s\\t%s\\t%3.2f\\t%s\\t%d\\t\\t%s\\t%d\\t%s\\n\e, a.author,a.state,a.borrowerName,a.sex,a.stuNo); printf(\printf(\ *****************************************************************\\n\fclose(fp); printf(\请按任意键返回!\getch(); } 运行结果如图6: 图6 图书信息浏览界面 (5) 数据查询模块:通过菜单选择查询方式, 提供按书名查询和按作者名 查询两种查询方式。定义BOOK类型的数组b[10]和字符串数组S2[20],将文件file1中的图书信息读到数组b中,将所要查找的图书名或作者名输入到数组S2中,再利用for循环语句比较数组S2与数组b中对应成员是否一致,若一致就显示该图书基本信息,否则继续比较直到找到相应图书或者循环结束。 查询菜单函数如下: void search() { int a; system(\ /*进行清屏*/ printf(\查询***************\\n\ printf(\ printf(\按书名查询\\n\ printf(\按作者名查询\\n\ printf(\退出\\n\ printf(\ printf(\请选择你想要的查询方式:\ scanf(\ switch(a) {case 1:search_by_name();break; case 2:search_by_writer();break; case 0:return;} } 运行结果如图7: