图书信息管理系统课程设计报告Word文件下载.docx
《图书信息管理系统课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统课程设计报告Word文件下载.docx(53页珍藏版)》请在冰豆网上搜索。
这个系统前台所用的开发工具是VisualC++6.0,它是Microsoft公司开发的基于C/C++的集成开发工具,是VisualStudio中功能最为强大,代码效率最高的开发工具.
VisualC++6.0跟以前的版本相比,它的编译器,调试器,连接器,编辑器,资源编辑器都有所加强,在编辑器中还提供了自动语句生成功能,编辑器会像VisualBasic那样自动提示函数的参数,对象成员.另外,VisualC++6.0还提供了许多的向导.在MFC中新增了一些类,提供了更加强大的数据访问功能.
程序员可以利用VisualC++6.0以基于WindowsAPI的C编程方式或基于MFC的C++编程方式,也可混合编程,使工作效率相对提高,开发工作量减少,源代码效率高.从面使VisualC++6.0成为目前开发Windows应用程序最好、最高效的开发工具之一。
同时在数据库系统开发方面也有很大的优势.
3.2数据结构
本系统定义了两个结构体变量,分别用来储存管理员信息与图书信息。
各模块的数据结构如下:
3.2.1菜单选择模块:
(
给出信息提示;
绘制菜单(包含输入、显示、查询、修改、删除、退出、排序);
提示菜单选择并读入到变量;
根据读入变量的值调用不同的模块函数;
)
3.2.2
信息输入模块:
打开职工信息文件;
发出输入提示信息;
输入职工信息;
提示是否继续输入;
读入到变量;
根据读入变量的值进入菜单或输入函数模块;
3.2.3
信息输出模块:
输出所有图书的所有信息。
3.2.4
信息查询模块:
调用switch函数;
给出信息提示;
根据读入变量的值进入不同的case;
Case1给出信息提示;
Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息;
否则,提示出错。
Case2给出信息提示;
3.2.5信息修改模块:
Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息,并提示输入新的图书信息;
3.2.6信息删除模块:
Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息,并删除该图书的图书信息;
3.2.7文件保存模块(
看文件能不能读;
否则提示出错。
看文件的长度符不符合要求;
保存文件)
3.3系统结构图
如图3-3
图3-3
4、详细设计
4.1头文件,变量定义,函数
#include<
stdio.h>
string.h>
stdlib.h>
#defineN10
charadministrator[20];
/********管理员名字**********/
structmanage
{charmanage_name[20];
charpassword[20];
};
structlibrary
{
intnum;
/********登录号**********/
charbook_name[30];
/********书名************/
charwriter[30];
/********作者************/
charsort_num[6];
/********分类号**********/
charpub_company[30];
/********出版单位********/
charpub_time[30];
/********出版时间********/
floatprice;
/********价格************/
typedefstructlibraryLIB;
LIBlib[N];
FILE*fp;
intall=0;
voidmenu();
/*菜单函数*/
voidenter();
/*输入模块*/
voidbrowse();
/*浏览函数*/
voidsearch();
/*查询函数*/
voiddel(inty);
/*删除函数*/
voidmodify(intx);
/*修改函数*/
voidprintf_back();
/*一个任务结束时选择浏览还是返回函数***/
voidwr_search();
/********按图书作者查询函数************/
voidbn_search();
/********按图书名查询函数**************/
voidid_search();
/********按图书登录号查询函数**********/
voidindex();
/********显示登录界面函数**************/
voidlogin();
/********管理员进入函数****************/
voidbyebye();
/********离开界面函数******************/
voidadm_view();
/********输入登录帐号密码界面函数******/
voidnew_adm_view();
/********新用户注册界面函数************/
4.2管理员登录,新用户注册模块的算法设计
4.2.1用户来到图书信息管理系统页面
/*************************登录离开模块*******************************/
voidindex()
{
charinput;
printf("
\n\n\t\t\t*****************************\n"
);
\t\t\t图书信息管理系统\n"
\t\t\t*****************************\n\n\n"
--------------------------------------------------------------------------\n"
\t<
按任意键进入>
\n\t"
input=getchar();
}
voidlogin()
intinput;
charinput_1;
do
{printf("
\t1.管理员进入\n"
\t2.新用户注册\n"
\t3.退出本系统\n\n\n"
\t请选择服务类别:
"
scanf("
%d"
&
input);
switch(input)
{
case1:
adm_view();
break;
/********管理员进入界面函数************/
}
case2:
new_adm_view();
/********新用户注册界面函数************/
case3:
byebye();
break;
/********离开界面函数************/
}
default:
{
printf("
\n\t输入出错!
请重新选择~\n"
\n\t按任意键返回选择页面~\n\t"
input_1=getchar();
}
while(input!
=1&
&
input!
=2&
=3);
voidbyebye()
\n\n\n\t\t*感谢您的使用*\n\n\t\t"
按任意键退出本系统\n\t\t"
getchar();
exit(0);
4.2.2管理员进入
图4-2-2
4.2.3新用户注册
图4-2-3
4.3菜单模块的算法设计
开始
图4-3
首先,运行程序,进入菜单,然后选择操作(运用swith语句),调用各子函数。
在返回操作中运用while语句进行控制返回菜单。
4.4输入模块算法设计
图4-4
4.5浏览模块算法设计
图4-5
voidbrowse()首先,输出所有图书的信息,并输出图书记录数,然后调用辅助函数进行菜单选择,操作完成后返回主菜单。
4.6查询模块算法设计
图4-6
voidsearch()选择查询方式,1按图书登录号查询,2按作者查询,3按图书名查询然后定位,再调用输出函数;
4.7删除模块算法设计
/*******************删除模块**************************/
voiddel(inty)
charinput,ad1[20],ad2[20],ad3[20],ad4[20];
FILE*fp;
intinp,i=0,j;
LIBbook_taxis[20];
strcpy(ad1,administrator);
strcpy(ad2,administrator);
strcpy(ad3,administrator);
strcpy(ad4,administrator);
if(y==N+1)
search();
else
do{
\n\n\n\t注意:
您确定要删除该记录吗?
\n"
\n\t1).是\t2).否\n"
\n\t请输入:
scanf("
inp);
if(inp!
inp!
=2)
\n\t对不起,没有该项服务~"
\t按任意键重新选择\n\t"
input=getchar();
while(inp!
=2);
if(inp==2)
if(inp==1)
if((fp=fopen(strcat(ad1,"
.c"
),"
r"
))!
=NULL)
do
{
fread(&
book_taxis[i],sizeof(structlibrary),1,fp);
i=i+1;
}
while(!
feof(fp));
fclose(fp);
if(i>
2)
fp=fopen(strcat(ad2,"
w"
for(j=0;
j<
y;
j++)
fwrite(&
book_taxis[j],sizeof(structlibrary),1,fp);
fp=fopen(strcat(ad3,"
a"
for(j=y+1;
i-1;
}
else
{
remove(strcat(ad3,"
));
printf("
\n\n\t记录已删除!
\n\n\t按任意键返回\n\t"
input=getchar();
printf_back();
4.8修改模块算法设计
/**************************修改模块**********************/
voidmodify(intx)
FILE*fp,*fp1;
charinput,ad1[20],ad2[20];
LIBbooks,book_taxis[20];
if(x==N+1)
do
您确定要修改该记录吗?
\n\t1.是\t2.否\n"
if(inp!
\n\t对不起~没有这项服务~\n"
while(inp!
if(i==2)
\n\n\n\t---请输入图书信息---\n\n"
\t登录号:
books.num);
\n\t书名:
%s"
books.book_name);
\n\t作者名:
books.writer);
\n\t分类号:
books.sort_num);
\n\t出版单位:
books.pub_company);
\n\t出版时间:
books.pub_time);
\n\t价格:
%f"
books.price);
if((fp1=fopen(strcat(ad1,"
=NULL)
{
do
fread(&
book_taxis[i],sizeof(structlibrary),1,fp1);
i=i+1;
while(!
feof(fp1));
fclose(fp1);
for(j=0;
x;
if(books.num==book_taxis[j].num)
\n\n\n\t对不起,这个编号已经使用过了~\n"
\t按任意键返回管理菜单~"
0"
printf_back();
for(j=x+1;
i-2;
j++)
if(books.num==book_taxis[j].num)
1"
book_taxis[x]=books;
fp=fopen(strcat(ad2,"
for(j=0;
fwrite(&
fclose(fp);
\n\n\t信息修改完成!
按任意键返回"
五、测试、结果进行分析
5.1.数据分析
5.1.1实现程序:
首先进入如下界面:
1.图书信息录入
2.浏览全部
3.查询
4.删除数据
5.修改数据
6.退出
5.1.2输入“1”,后按“num登陆号”,book_name书名,writer作者名,sort_num分类号,出版社pub_conpany,出版时间pub_time,价钱price顺序输入两组数据:
“1,we,er,1,as,1234,34”
“2,ew,re,2,sa,4321,43”
5.1.3.输入“2”输出数据:
5.1.4.输入“3”查找,“请选择按书名或作者名或登录号查询:
1:
登录号
2.作者名
3.书名
输入“1“或“2”或“3”分别查询。
输入“3“和“we“,输出“1,we,er,1,as,1234,34”;
输入2和“re“,输出“2,ew,re,2,sa,4321,43”,输入“1”和“1”,输出“1,we,er,1,as,1234,34”;
符合要求
5.1.5输入”4”或“5“进行修改或删除。
输入修改的书名“we”显示“1,we,er,1,as,1234,34”及“pleaseinputxiugai'
stheinformations”,后输入新信息。
5.1.6输入6退出。
5.2.测试截图
登录界面
图5-1
菜单界面
图5-2
输入信息界面
图5-3
浏览界面
图5-4
查询界面
图5-5
查询结果界面
图5-6
删除界面
图5-7
删除成功界面
图5-8
修改界面
图5-9
退出界面
图5-10
6、总结
这次课程设计让我掌握了许多的有用知识。
首先通过不断地学习和锻炼更加熟练地掌握应用软件MicrosoftVisualC++6.0了。
设计正确及合适的程序对于我们初学者来说是很大的难题,出现一丁点儿错误就得非很大的努力去修改,正式者一步步一点点的努力让我对C语言游乐更深的认识。
同时我掌握了解决问题的方法,这无论是对以后的学习、生活都有无比重要的价值。
在设计中,每个同学都会遇到一些困难,或多或少,这些困难常常让我心情烦躁,比如不能清晰的