《图书借阅管理系统》C语言程序设计报告Word格式.docx

上传人:b****4 文档编号:17737725 上传时间:2022-12-09 格式:DOCX 页数:26 大小:284.01KB
下载 相关 举报
《图书借阅管理系统》C语言程序设计报告Word格式.docx_第1页
第1页 / 共26页
《图书借阅管理系统》C语言程序设计报告Word格式.docx_第2页
第2页 / 共26页
《图书借阅管理系统》C语言程序设计报告Word格式.docx_第3页
第3页 / 共26页
《图书借阅管理系统》C语言程序设计报告Word格式.docx_第4页
第4页 / 共26页
《图书借阅管理系统》C语言程序设计报告Word格式.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

《图书借阅管理系统》C语言程序设计报告Word格式.docx

《《图书借阅管理系统》C语言程序设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《《图书借阅管理系统》C语言程序设计报告Word格式.docx(26页珍藏版)》请在冰豆网上搜索。

《图书借阅管理系统》C语言程序设计报告Word格式.docx

二、进度安排

第十九周星期18时00分—-11时30分

星期214时00分-—18时15分

星期414时00分——18时15分

星期68时00分——12时15分

一、课程设计报告.。

.。

..。

.....。

....。

2

二、功能模块的划分。

...。

......。

6

三、主要功能的实现..。

12

四、程序代码清单...。

.........。

..13

五、程序调试详情。

.19

六、总结.。

24

七、附件。

25

八、评分表.。

.25

三、课程设计报告

1。

程序设计准备

做系统前,首先,自己详细看了《C程序设计》(教科书),基本自学会了文件的相关内容,理解了相关函数的用法和作用;

另,上网查询了很多相关资料,还有找了很多相关的系统,都详细的看了一遍,加深了对C的理解以及对文件的相关内容进一步理解.学习了C语言的内容,图书信息管理系统有助于C语言学习的进一步巩固,在本系统可以增强对指针、文件、函数、结构体变量等基本知识的进一步理解。

另外图书信息管理系统也是学校常用的基本系统之一,它有助于学校对图书馆书籍的基本管理。

2.程序设计说明

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

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

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

3。

程序的主要功能

图书管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理.图书借阅管理系统是对图书信息的基本管理,它包括:

图书信息的录入、图书信息的显示、图书信息的删除、图书信息的修改、图书信息的查询。

通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能.

1、图书基本信息录入:

对新到图书馆的图书的信息(编号、书名、出版社、作者、价格)进行录入。

2、图书基本信息显示:

显示已被录入图书的所有信息.

3、图书基本信息删除:

通过输入书名,判断此图书是否存在,若存在,则删除该图书所有信息,若不存在则提示用户重新输入图书书名。

4、图书基本信息修改:

通过输入书名,判断此图书是否存在,若不存在则提示用户重新输入图书书名,若存在,则可对图书各项信息进行修改.

5、图书基本信息查询:

将所有图书信息包括编号、书名、出版社、作者、价格等显示在屏幕上。

6、退出系统:

即退出图书借阅管理系统。

使用模块化编程的方法每项功能有一个或多个函数组合来完成,其中菜单选项模块对应如下:

图书基本信息录入==〉voidinsert()

图书基本信息显示==〉voidprint()

图书基本信息删除==>

voiddel()

图书基本信息修改==〉voidmodify()

图书基本信息查询==〉voidfind()

这份代码中各个变量的定义如下:

num图书编号

name书名

author作者

pub出版社

where出版日期

count单价

四.功能模块的划分

1.主函数模块

根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。

在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以多次被引用。

图书基本信息录入模块

首先输入图书录入的编号(不为0)判断是否有重复的编号,若有,则提示用户该书已存在,若无则继续录入书名、作者、出版社、单价。

2。

图书基本信息显示模块

当用户选择图书基本信息显示时,程序会将所有图书信息列出。

3.图书基本信息输入模块

在程序开始运行,创建文件库时,调动此模块,提示用户输入新的图书编号(编号为0时结束输入),然后继续输入图书书名,作者,出版社,出版日期,单价等信息。

结束输入时提示用户图书输入完成

4.图书基本信息删除模块

用户输入所要删除的图书书名,先查找该图书是否存在,若存在,则删除该图书所有信息,若不存在则提示无此图书信息。

5.图书基本信息修改模块

用户输入要修改的书名,判断该书是否存在,若不存在,则提示用户无此图书信息;

若存在,则提示用户选择修改项目,然后提示用户图书信息修改完成。

6。

图书基本信息查询模块

用户先选择图书查询方式(按书名查找或按书号查找)输入图书书名或书号后,查找出该图书是否存在,若存在,则显示该图书信息,若不存在则提示用户无此图书信息。

7。

读文件模块

在运行该程序时,程序会自动检测是否存在图书信息,若存在,则会显示图书信息,若不存在,则会提示用户创建文件库,录入图书信息。

8.文件保存模块

当用户对图书信息有录入,修改,删除等操作时,程序会自动保存操作和新的图书信息。

五.主要功能的实现

程序运行流程:

但每个模块运行完即会回到主函数,然后选择其他或退出。

程序代码清单如下:

#include<

stdio。

h〉

stdlib。

h>

#include〈string。

typedefstruct{

charnumber[10];

//书号

charname[20];

//书名

charauthor[20];

//作者

charpublish[50];

//出版社

chartime[20];

//出版时间

floatprice;

}mbook;

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)

\t请输入您的书籍的书号:

”);

scanf("

%s"

library.book[library。

count]。

number);

printf(”\t请输入书名:

”);

scanf(”%s”,library。

book[library.count]。

name);

\t请输入作者名:

"

%s”,library.book[library.count]。

author);

\t请输入出版社:

%s”,library。

book[library.count]。

publish);

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

scanf(”%s”,library。

time);

\t请输入该书的价格:

fflush(stdin);

scanf(”%f"

&

book[library.count].price);

library。

count++;

printf(”\n是否继续录入(1。

继续;

0,退出录入):

scanf(”%d"

,&

y);

if(y!

=1)

{

y=0;

break;

}

}

save();

voidprint()

{

system(”cls”);

printf("

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

for(inti=0;

i〈library。

count;

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);

fflush(stdin);

getchar();

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

chars2[20];

intflag=1;

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

"

fflush(stdin);

scanf("

%s”,s2);

for(inti=0;

i<

library.count;

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)

{

cannotfound!

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

chars3[20];

请输入要查询的书的作者:

scanf(”%s”,s3);

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

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。

time,library。

book[i]。

if(flag)

printf(”cannotfound!

getchar();

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

charnumber[10];

system(”cls"

/*清屏*/

printf(”\nPleasetypeinthenumberofthebookyouwanttodelete:

number);

inti;

for(i=0;

count;

if(strcmp(number,library。

book[i]。

number)==0)break;

if(i!

=library.count)

for(;

count—1;

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

strcpy(library.book[i].number,library。

book[i+1]。

strcpy(library.book[i]。

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

strcpy(library。

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

time,library。

book[i+1].time);

library。

price=library.book[i+1]。

price;

library.count--;

else

\ncannotfound!

\n”);

}

voidmodify()//修改图书信息

charnumber[10];

/*清屏*/

scanf(”%s"

,number);

for(i=0;

i〈library.count;

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]。

author,library。

book[i].publish,library.book[i].time,library.book[i].price);

break;

if(i!

=library。

count)

mbookbook;

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

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

%s"

book.number);

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

book.name);

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

scanf(”%s”,book。

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

scanf(”%s”,book。

\t请输入出版时间:

scanf(”%s"

,book。

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

fflush(stdin);

%f"

book。

strcpy(library.book[i]。

name,book.name);

strcpy(library.book[i].number,book。

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

strcpy(library.book[i]。

author,book。

author);

strcpy(library。

time,book.time);

book[i].price=book.price;

save();

printf(”\ncannotfound!

voidmain()

if((fp=fopen(”library。

doc”,”r"

\n不能打开图书信息库\n"

fp=fopen("

doc”,”w+"

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

library.count=0;

fwrite(&library。

count,sizeof(int),1,fp);

fclose(fp);

fread(&

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"

\t\t*********************************************\n”);

\t\t\t1----—-——-——--——-——图书信息录入\n”);

\t\t\t2——-------—--—--—--图书信息显示\n”);

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

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

printf(”\t\t\t5-—----—--—------——图书信息修改\n"

\t\t\t0——--—————--—---——退出图书信息系统\n"

\t\t*********************************************\n”);

printf(”\t\tPleaseEnterChoose:

%d”,&

a);

switch(a)

case1:

putin();

case2:

lookup();

break;

case3:

search();

case4:

del();

case5:

update();

case0:

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

default:

printf(”\n序号不对\n"

}while(a!

=0);

save();

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

/*进行清屏*/

printf(”\t\t******************************\n"

开始查询\n"

printf(”\t\t\t1---———---———---search_by_name\n”);

\t\t\t2-——-----—————-—search_by_writer\n"

\t\t\t0--——-———--—-—--exit\n”);

\t\t******************************\n"

);

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

%d"

a);

switch(a)

case1:

search_by_name();

break;

case2:

search_by_author();

case0:

return;

六.程序调试

1.第一次运行程序时,库文件不存在图书信息,于是录入图书信息.

图书编号

书名

作者

出版社

出版日期

单价

1

英语

张三

人民教育出版社

2011。

06

30

2.主界面

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

当前位置:首页 > PPT模板 > 卡通动漫

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

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