C语言-图书管理系统教程文件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

按钮。如图2所示

图2新建工程

最后在“新建工程信息”对话框中,单击“确定”按钮,完成项目的建立。

图3创建空工程

图4创建源程序

编程运行后就可以使用了,可以查阅图书,比如书籍的序号、书名、以及作者等。借阅图书模块查询学生的借书信息等。管理系统模块包括员工的管理和书籍的管理。还书模块,学生还书后系统就会清楚借书记录。最后模块是退出功能使用后可以退出系统。按照如图5所示进行相关操作。

图5系统操作界面

3.2图书管理模块设计

3.2.1书籍统计

书籍统计的程序,通过该程序的正确运行可以查阅图书、借阅图书、管理图书以及还书的相关操作。选择3管理图书然后会显示下一界面再选择4就可以进行书籍统计了,结果如图6所示。

图6书籍统计

书籍统计函数

bookcount()

{

FILE *fp;

int i,n=0;

fp=fopen("book.txt","r");

for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)

{

if(book[i].booknum!=0&&strlen(book[i].bookname)!=0&&strlen(book[i].bookcreat)!=0)

{

printf("第%d本书<序号:%d 书名:%s 作者:%s 状态:%d>\n",i+1,book[i].booknum,book[i].bookname,book[i].bookcreat,book[i].turefalse);

n=n+1;

} }

fclose(fp);

printf("目前共有%d本书\n",n);

printf("按任意键\n");

3.2.2删除图书

删除图书的程序,程序运行后可以选择相关选项,选择删除图书来进行图书删除,删除图书之前会显示警告是否真的要删除该图书,以便操作者误删图书。运行结果如图7所示。

图7删除图书

删除图书成功如图8所示

图8删除成功

删除图书函数

delbook()

{

FILE *fp,*fp2;

int i;

char bookname[10],choice;

fp=fopen("book.txt","r");

fp2=fopen("bookl.txt","w");

printf("请输入你要删除的书名\n");

printf("如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动\n"); scanf("%s",bookname);

for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)

{

if(strcmp(bookname,book[i].bookname)!=0)

{

fwrite(&book[i],sizeof(struct book),1,fp2);

}

}

fclose(fp);

fclose(fp2);

printf("是否真的要删除该书籍?删除后该书籍的所有信息将无法恢复《Y/N》\n");

scanf("%s",&choice);

if(choice=='y'||choice=='Y')

{

fp=fopen("book.txt","w");

fp2=fopen("bookl.txt","r");

for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)

{

fwrite(&book[i],sizeof(struct book),1,fp);

}

fclose(fp);

fclose(fp2);

fp2=fopen("bookl.txt","w");

fclose(fp2);

printf("按任意键返回\n");

getch();

return;

}

else

{

printf("按任意键返回\n");

getch();

return;

}

}

3.2.3修改图书资料

修改图书资料程序,运行后可以根据预期结果来进行相关操作,修改图书资料包括修改图书序号、书名、和作者。运行结果如图9所示。

图9 图书资料修改

图书资料修改成功后统计结果如图10所示

图10 图书资料修改成功

修改图书资料函数

changebook()

{

FILE *fp,*fp2;

char bookname[10],choice;

int i;

fp=fopen("book.txt","r");

fp2=fopen("bookl.txt","w");

printf("请你输入要修改的书籍的书字\n");

scanf("%s",bookname);

for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)

{

if(strcmp(book[i].bookname,bookname)==0)

{

printf("你所要修改的书的资料如下,请选择你要修改的内容\n");

printf("序号:〈%d〉书名:〈%s〉作者:〈%s〉\n",book[i].booknum,book[i].bookname,book[i].bookcreat);

printf("1:修改书的序号\n");

printf("2:修改书名\n");

printf("3:修改作者\n");

printf("请输入1-3:");

scanf("%s",&choice);

switch(choice)

{

case '1':

{

printf("请输入新的序号\n");

scanf("%d",&book[i].booknum);

fwrite(&book[i],sizeof(struct book),1,fp2);

相关文档
最新文档