图书借阅管理系统.docx

上传人:b****5 文档编号:3535516 上传时间:2022-11-23 格式:DOCX 页数:14 大小:46KB
下载 相关 举报
图书借阅管理系统.docx_第1页
第1页 / 共14页
图书借阅管理系统.docx_第2页
第2页 / 共14页
图书借阅管理系统.docx_第3页
第3页 / 共14页
图书借阅管理系统.docx_第4页
第4页 / 共14页
图书借阅管理系统.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

图书借阅管理系统.docx

《图书借阅管理系统.docx》由会员分享,可在线阅读,更多相关《图书借阅管理系统.docx(14页珍藏版)》请在冰豆网上搜索。

图书借阅管理系统.docx

图书借阅管理系统

 

《高级语言程序设计》

课程设计报告

 

题目:

图书借阅管理系统

专业:

班级:

姓名:

指导教师:

成绩:

计算机与信息工程系

2014年6月20日

目录

1目的要求1

2设计思路2

2.1系统需求分析2

2.2功能介绍2

2.3模块划分3

2.4数据流图3

3设计代码4

4总结15

1目的要求

设计一图书信息管理系统,使之能提供以下功能:

1)系统以菜单方式工作;

2)图书信息录入功能(图书信息用文件保存)——输入;

3)图书信息浏览功能——输出;

4)查询和排序功能:

(至少一种查询方式)——算法;

5)按书名查询;

6)按作者名查询;

7)图书信息的删除与修改(可选项)。

2设计思路

根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:

在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:

另外还需提供选择菜单实现功能,在运行时达到所要求的目的。

2.1系统需求分析

经过以上对本系统的调研及可行性分析后,下面将对系统在功能上以及性能上进行进一步的需求分析。

2.2功能介绍

输入图书信息,出现一个"图书信息管理系统的主界面",其中有6个数字代表的选项,可以按相关的数字进行操作。

每一条记录包括一本书的书名、图书号、作者、出版时间、出版社名、价格。

0)退出:

如果在图书管理系统的主界面,则退出的是系统,如果是在子菜单下则返回到主界面。

1)录入新图书:

可以完成一条信息的输入,也可以完成多条信息的输入。

2)浏览图书信息:

学生可以浏览图书的相关信息,包括一本书的书名、图书号、作者、出版时间、出版社名、价格。

3)自主查询图书信息:

可以按书名或按作者查找图书的相关信息并显示。

4)删除图书信息:

只能通过图书号删除一本书的相关信息。

5)修改图书信息:

只能通过图书号进行修改该图书的相关信息。

 

2.3模块划分

图1系统功能模块图

2.4数据流图

 

图2系统数据流程图

3设计代码

#include

#include

#include

typedefstruct{

charnumber[10];//书号

charname[20];//书名

charauthor[20];//作者

charpublish[50];//出版社

chartime[20];//出版时间

floatprice;

}mbook;

typedefstruct{

intcount;//书的本数

mbookbook[100];//最大可有100本书

}mlibrary;

mlibrarylibrary;

voidsave()//保存图书信息。

{

FILE*fp;

if((fp=fopen("library.doc","w"))==NULL)

{

printf("\n不能保存图书信息\n");

return;

}

fwrite(&library.count,sizeof(int),1,fp);

fwrite(library.book,sizeof(library.book[0]),library.count,fp);

}

voidputin()/*定义录入函数*/

{

inty=1;

system("cls");

while(y)

{

printf("\t请输入您的书籍的书号:

");

scanf("%s",library.book[library.count].number);

printf("\t请输入书名:

");

scanf("%s",library.book[library.count].name);

printf("\t请输入作者名:

");

scanf("%s",library.book[library.count].author);

printf("\t请输入出版社:

");

scanf("%s",library.book[library.count].publish);

printf("\t请输入出版时间:

");

scanf("%s",library.book[library.count].time);

printf("\t请输入该书的价格:

");

fflush(stdin);

scanf("%f",&library.book[library.count].price);

library.count++;

printf("录入成功,恭喜您!

");

printf("\n是否继续录入(1.继续;0,退出录入):

");

fflush(stdin);

scanf("%d",&y);

if(y!

=1)

{

y=0;

break;

}

}

save();

}

 

voidlookup()

{

system("cls");

printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n");

for(inti=0;i

{

printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);

}

printf("\n查询结果如上按0键返回主菜单:

");

fflush(stdin);

getchar();

}

voidsearch_by_name()/*定义按书名查询*/

{

chars2[20];

intflag=1;

printf("\n请输入要查询的书名:

");

fflush(stdin);

scanf("%s",s2);

printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n");

for(inti=0;i

if(strcmp(s2,library.book[i].name)==0)

{

flag=0;

printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);

}

if(flag)

{

printf("查询错误!

按0键返回主菜单:

");

}

fflush(stdin);

getchar();

}

 

voidsearch_by_author()/*定义按作者名查询*/

{

chars3[20];

intflag=1;

printf("请输入要查询的书的作者:

");

fflush(stdin);

scanf("%s",s3);

printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n");

for(inti=0;i

if(strcmp(s3,library.book[i].author)==0)

{

flag=0;

printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);

}

if(flag)

{

printf("查询出错!

按0键返回主菜单:

");

}

fflush(stdin);

getchar();

}

 

voidsearch()/*定义查询函数*/

{

inta;

system("cls");/*进行清屏*/

printf("\t\t******************************\n");

printf("开始查询\n");

printf("\t\t\t1---------------按书名查询\n");

printf("\t\t\t2---------------按作者名查询\n");

printf("\t\t\t0---------------退出\n");

printf("\t\t******************************\n");

printf("\t\t请选择你想要的查询方式:

");

fflush(stdin);

scanf("%d",&a);

switch(a)

{

case1:

search_by_name();

break;

case2:

search_by_author();

break;

case0:

return;

}

}

 

voiddel()/*定义删除函数*/

{

charnumber[10];

system("cls");/*清屏*/

printf("\n请输入想要删除的书名:

");

fflush(stdin);

scanf("%s",number);

inti;

for(i=0;i

{

if(strcmp(number,library.book[i].number)==0)break;

}

if(i!

=library.count)

{

for(;i

{

strcpy(library.book[i].name,library.book[i+1].name);

strcpy(library.book[i].number,library.book[i+1].number);

strcpy(library.book[i].publish,library.book[i+1].publish);

strcpy(library.book[i].author,library.book[i+1].author);

strcpy(library.book[i].time,library.book[i+1].time);

library.book[i].price=library.book[i+1].price;

}

library.count--;

}

else

printf("\ncannotfound!

\n");

printf("删除成功按0键返回主菜单");

save();

fflush(stdin);

getchar();

}

voidupdate()//修改图书信息

{

charnumber[10];

system("cls");/*清屏*/

printf("\n请输入你要更改的图书名:

");

fflush(stdin);

scanf("%s",number);

inti;

for(i=0;i

{

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

{

printf("图书号\t图书名\t作者名\t出版社\t出版日期\t图书价格\n");

printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);

break;

}

}

if(i!

=library.count)

{

mbookbook;

printf("\n\t\t请输入修改后此图书的信息\n");

printf("\t请输入图书号:

");

scanf("%s",book.number);

printf("\t请输入图书名:

");

scanf("%s",book.name);

printf("\t请输入作者名:

");

scanf("%s",book.author);

printf("\t请输入出版社:

");

scanf("%s",book.publish);

printf("\t请输入出版时间:

");

scanf("%s",book.time);

printf("\t请输入该书的价格:

");

fflush(stdin);

scanf("%f",&book.price);

strcpy(library.book[i].name,book.name);

strcpy(library.book[i].number,book.number);

strcpy(library.book[i].publish,book.publish);

strcpy(library.book[i].author,book.author);

strcpy(library.book[i].time,book.time);

library.book[i].price=book.price;

save();

printf("\n修改成功请按0键返回主菜单:

");

}

else

printf("\n修改出错!

请按0键返回主菜单:

\n");

fflush(stdin);

getchar();

}

voidmain()

{

FILE*fp;

if((fp=fopen("library.doc","r"))==NULL)

{

printf("\n不能打开图书信息库\n");

fp=fopen("library.doc","w+");

printf("\n初始化图书信息库,初始化之后要重启程序\n");

library.count=0;

fwrite(&library.count,sizeof(int),1,fp);

fclose(fp);

}

fread(&library.count,sizeof(int),1,fp);

fread(library.book,sizeof(library.book[0]),library.count,fp);

fclose(fp);

inta;

do

{

system("cls");

printf("\n\n\n\n\n\t\t\t\t图书信息管理系统\t\t\t\t\n");

printf("\t\t*********************************************\n");

printf("\t\t\t1------------------图书信息录入\n");

printf("\t\t\t2------------------图书信息浏览\n");

printf("\t\t\t3------------------图书信息查询\n");

printf("\t\t\t4------------------图书信息删除\n");

printf("\t\t\t5------------------图书信息修改\n");

printf("\t\t\t0-----------------退出图书信息系统\n");

printf("\t\t*********************************************\n");

printf("\t\t请输入操作类型:

");

fflush(stdin);

scanf("%d",&a);

switch(a)

{

case1:

putin();

break;

case2:

lookup();

break;

case3:

search();

break;

case4:

del();

break;

case5:

update();

break;

case0:

printf("\n\n退出\n\n");

break;

default:

printf("\n序号不对\n");

}

}while(a!

=0);

save();

}

4总结

通过课程设计,对《C语言》这门课程有了更深一步的了解。

它是计算机程序设计的重要理论技术基础,在我们软件工程专业的学习中占据着十分重要的地位。

这个程序的结构大体是从网络上借鉴的,但是结果无法运行,只能自己修改,最后终于调试通过,同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。

因为我们学习知识就是为了实践。

而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1