图书信息管理系统设计纯c语言课程设计Word下载.docx
- 文档编号:7628562
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:40
- 大小:218.24KB
图书信息管理系统设计纯c语言课程设计Word下载.docx
《图书信息管理系统设计纯c语言课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统设计纯c语言课程设计Word下载.docx(40页珍藏版)》请在冰点文库上搜索。
2、进入主菜单
登录后进入主菜单输入编号(1~6)通过switch函数进行操作
3、图书录入
选择1后用voidputin()函数录入信息
4、图书查询
选择2后用voidsearch()查询图书。
5、图书浏览
选择3后用voidlookup()浏览图书
6、图书删除
选择4后用voiddel()函数删除图书信息
7、图书修改
选择5后用voidupdate()函数相修改图书信息
8、图书排序
选择6后用voidrank()函数进行图书排序
9、图书信息地保存
在每次操作后都用voidsave()函数进行保存操作后地图书信息
2.2部分模块流程图
3程序代码设计
1、文件打开:
利用文件函数进行打开
1)函数原型FILE*fp。
if((fp=fopen("
library.doc"
"
r"
))==NULL)
{
printf("
\n不能打开图书管理系统\n"
)。
fp=fopen("
w+"
\n进入图书管理系统\n"
fclose(fp)。
}
fread(books,sizeof(books[0]),1,fp)。
2)功能:
打开信息文件
2、登录模块,菜单模块:
利用if判断语句,比较函数strcmp,当输入号码与已存号码复符合是执行下一步操作,进入图书管理系统,然后输入相应数字,利用switch函数判断执行相应地函数进行操作
1)函数原型:
voidmain()
intkey=0。
for(key=0。
key<
100。
key++)
books[key].id=0。
key=0。
system("
colorA"
FILE*fp。
if((fp=fopen("
{
printf("
fp=fopen("
fclose(fp)。
}
fread(books,sizeof(books[0]),1,fp)。
fclose(fp)。
while
(1)
if(key==0)
{
system("
cls"
printf("
\n\t\t\t请输入管理员登录号(初始登录号123456):
\n\n\t\t\tpassword:
"
}
else
\n\t\t\t密码错误请重新输入:
(初始登录号123456):
scanf("
%s"
password)。
if(strcmp(password,"
123456"
)==0)
inta。
do
{
system("
printf("
\n\n\n\n\t\t\t\t图书信息管理系统\t\t\t\t\n"
\t\t_________________________________________________\n"
\t\t\t1图书信息录入\n"
\t\t\t2图书信息浏览\n"
\t\t\t3图书信息查询\n"
\t\t_________________________________________________\n"
\t\t\t4图书信息删除\n"
\t\t\t5图书信息修改\n"
\t\t\t6图书信息排序\n"
\t\t\t0退出图书信息系统\n"
\t\t________________________________________________\n"
\t\t请进行操作:
"
fflush(stdin)。
scanf("
%d"
&
a)。
switch(a)
{
case1:
book_add()。
break。
case2:
book_lookup()。
case3:
book_search()。
case4:
book_del()。
case5:
book_update()。
case6:
rank()。
case0:
printf("
\n\n退出\n\n"
default:
\n序号不对\n"
}
}while(a!
=0)。
save()。
key=1。
}
}2)实现功能:
登录管理系统,进入主菜单进行菜单选择.
3)运行结果:
3、菜单执行模块
(1)图书录入模块:
利用while循环进行图书各项信息地录入,一本书信息全部录入完后,再利用switch函数进行继续录入,和返回主菜单操作,利用save函数保存图书信息
voidbook_add(void)
{intx=1。
system("
fflush(stdin)。
page_title("
录入"
while(x)
{
printf("
\t\t\t分类号:
scanf("
books[n].id)。
\t\t\t书名:
books[n].name)。
\t\t\t作者:
books[n].author)。
\t\t\t出版单位:
books[n].publish)。
\t\t\t出版时间:
books[n].time)。
\t\t\t价格:
%f"
books[n].price)。
n++。
save()。
\n\t\t\t1.继续。
0,退出录入"
fflush(stdin)。
x)。
if(x!
=1)
x=0。
break。
2)实现功能:
进行图书信息录入,并保存录入地图书信息.
3)运行结果
(2)图书信息浏览:
利用for循环对图书进行全部信息输出,使之显示在屏幕上
voidbook_lookup(void)/*浏览函数*/
if(books[0].id==0)
\t\t\t无书籍信息!
else
for(i=0。
books[i].id!
=0。
i++)
分类号:
%d\t"
books[i].id)。
书名:
%s\t"
books[i].name)。
作者:
books[i].author)。
出版单位:
books[i].publish)。
出版时间:
books[i].time)。
价格:
%4.2f\n"
books[i].price)。
fflush(stdin)。
getchar()。
}2)实现功能:
使所有图书信息全部显示在屏幕上,便于管理人员管理.
(3)图书信息查询:
利用switch函数进行选择查询方式,按书名查询和按作者查询,然后设计两种方式地函数代码,嵌套在查询主函数内
1)函数原型:
voidsearch_by_name(void)/*按书名查询*/
chars2[20]。
intflag=1。
\n\t\t\t请输入要查询地书名:
s2)。
for(i=0。
i++)
if(strcmp(s2,books[i].name)==0)
{
flag=0。
}
if(flag)
查无此书!
voidsearch_by_author(void)/*按作者名查询*/
chars3[20]。
\t\t\t请输入要查询地书地作者:
s3)。
i<
n。
if(strcmp(s3,books[i].author)==0)
无此信息!
voidbook_search(void)/*查询函数*/
inta。
/*进行清屏*/
\t\t******************************\n"
\t\t\t开始查询\n"
\t\t\t1---------------按书名查询\n"
\t\t\t2---------------按作者查询\n"
\t\t\t0---------------退出\n"
)。
\t\t\t请选择你想要地查询方式:
switch(a)
case1:
search_by_name()。
case2:
search_by_author()。
case0:
return。
可通过按书名查询和按作者进行查询.
(4)图书信息删除:
利用for循环对所要删除地图书下一本图书是之各项序列改为其前一项地序号,主次更改,然后用save循环进行保存
voidbook_del(void)
longintm。
page_title("
删除"
\t\t\t输入删除书地分类号"
m)。
m。
if(m==books[i].id)
for(j=i。
books[j+1].id!
j++)
strcpy(books[j].name,books[j+1].name)。
books[j].id=books[j+1].id。
strcpy(books[j].publish,books[j+1].publish)。
strcpy(books[j].author,books[j+1].author)。
strcpy(books[j].time,books[j+1].time)。
books[j].price=books[j+1].price。
}
books[j].id=0。
\t\t\t该书已删除.\n"
n--。
voidrank(void)/*按书名进行排序*/
/*清屏*/
k=i。
for(j=i+1。
books[j].id!
if(strcmp(books[k].name,books[j].name)>
0)k=j。
if(k!
=i)
{strcpy(temp,books[i].name)。
strcpy(books[i].name,books[k].name)。
strcpy(books[k].name,temp)。
\t\t\t新序列为:
\n"
getchar()。
}2)实现功能:
可以删除没用地图书地所有信息.
(5)修改模块:
先输入所要修改地书地分类号,然后利用if函数找到次书信息,在利用for循环对图书地各个信息进行修改
1)函数原型
voidbook_update(void)/*修改图书信息*/
{
\n\t\t\t请输入你想修改图书地分类号:
id)。
intflag=0。
if(id==books[i].id)
\n\t\t\t请输入修改后此图书地信息\n"
\t\t\t请输入分类号:
scanf("
\t\t\t请输入图书名:
name)。
\t\t\t请输入作者名:
author)。
\t\t\t请输入出版单位:
publish)。
\t\t\t请输入出版时间:
time)。
\t\t\t请输入该书地价格:
fflush(stdin)。
price)。
strcpy(books[i].name,name)。
books[i].id=id。
strcpy(books[i].publish,publish)。
strcpy(books[i].author,author)。
strcpy(books[i].time,time)。
books[i].price=price。
flag=1。
if(flag==0)
\t\t\t不存在分类号为%d地书籍!
id)。
利用此函数可以修改图书地分类号、书名、作者、出版单位、出版时间、价格地信息
(6)、排序模块:
根据图书名进行排序,利用for循环实现操作,在排序完成后利用save函数保存信息.
book
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 信息管理 系统 设计 语言 课程设计