C语言课程设计论文图书信息管理系统设计.doc
《C语言课程设计论文图书信息管理系统设计.doc》由会员分享,可在线阅读,更多相关《C语言课程设计论文图书信息管理系统设计.doc(21页珍藏版)》请在冰豆网上搜索。
![C语言课程设计论文图书信息管理系统设计.doc](https://file1.bdocx.com/fileroot1/2022-10/7/2366c0e4-c142-4a9b-bb29-f1308a29769d/2366c0e4-c142-4a9b-bb29-f1308a29769d1.gif)
C语言程序设计报告--图书信息管理系统
中国地质大学
C语言课程设计
综合实习报告
题目:
图书信息管理系统
姓名:
班学号:
院系:
专业:
指导教师:
2008年7月
目录
(1)作者简介……………………………………………………………3
(2)报告摘要……………………………………………………………3
(3)报告主体……………………………………………………………3
3.1 报告要求………………………………………………………3
3.2 需求分析………………………………………………………3
3.3 总体设计………………………………………………………4
3.4 详细设计………………………………………………………4
3.4.1 主函数………………………………………………4
3.4.2 各功能模块设计……………………………………6
3.4.3 公共函数……………………………………………12
3.5 上机操作………………………………………………………15
3.5.1 数据源………………………………………………15
3.5.2 编译、连接和运行…………………………………15
3.5.3 结果…………………………………………………15
(4)实习总结…………………………………………………………20
(1)作者简介:
我叫王栋,是地球科学学院资源环境与城乡规划管理专业的二年级学生,有幸在大二上学期学习C程序设计这门课程.刚开始的时候对这门课没什么理解,觉得很难很复杂,而在后来慢慢深入的学习之后开始对其产生了兴趣。
看到自己亲手编写的程序能够发挥出作用,觉得能够运用自己写出来的东西做出成果很高兴。
同时也知道了做程序并不是想象之中的那么难的,只要我们能好好看懂课本上面的东西,并能在实践中加以练习就一定能够很好的掌握。
(2)报告摘要:
本论文设计了程序:
《C语言课程设计指导书》第12题——图书信息管理系统。
这个管理系统能对图书信息(包括登录号、书名、作者号、分类号、出版单位、出版时间、价格等)进行有效地信息录入、浏览、查询、插入、删除等操作,会给用户带来很大的便利,达到既节省时间又节省精力的目的。
(3)报告主体:
3.1题目要求
图书信息包括登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)图书信息录入功能(图书信息用文件保存)
(3)图书信息浏览功能
(4)图书信息查询功能
(5)图书信息删除与修改功能(可选项)
[提示]
建立图书信息结构体,结构体成员包括登录号、书名、作者名、分类号、出版单位、出版时间、价格。
3.2需求分析
根据题目要求,要求对图书信息进行输入、输出等操作;在程序中需要浏览图书的信息,应提供显示、查找、浏览、插入、修改等操作;另外还应提供键盘式选择菜单实现功能选择。
3.3总体设计
根据需求分析,可以对这个系统的设计分为以下几个模块:
图书信息管理系统
数据输入
数据浏览
数据查找
数据插入
退出
图1.3系统功能模块图
3.4详细设计
3.4.1主函数
主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
[流程图]:
显示一系列功能选项
根据n的值调用各功能模块函数
N
Y
输入n,判断n是否是0-5
图1.4.1主函数流程图
[程序]
/*****************主函数**********************/
main()
{
menu();
}/*****************menu函数********************/
voidmenu()
{
intn,w;
do
{
puts("\t\t**********************MENU************************\n\n");
puts("\t\t\t\t1.enter");
puts("\t\t\t\t2.browse");
puts("\t\t\t\t3.search");
puts("\t\t\t\t4.deleteormodify");
puts("\t\t\t\t5.add");
puts("\t\t\t\t6.exit");
puts("\n\n\t\t**************************************************\n");
printf("Choiceyournumber(1-5):
[]\b\b");
scanf("%d",&n);
if(n<1||n>6)
{
w=1;
getchar();
}
elsew=0;
}
while(w==1);
switch(n)
{
case1:
enter();break;
case2:
browse();break;
case3:
search();break;
case4:
deal();break;
case5:
add();break;
case6:
exit(0);
}
}
注:
menu函数能提供菜单方式选择功能,可以根据用户需要进入到所想要的操作模块中,此外把menu函数独立出来,可以方便随时对它进行调用,容易返回到系统界面。
3.4.2各功能模块设计
(1)输入模块
在这里主要运用结构体的形式来输入保存图书的各种信息,包括图书的登录号、书名、作者名、分类号等等,因为图书的数目众多,因此采用结构体数组的形式。
用结构体来存放图书信息:
/********************结构体*******************/
#defineN100
#include
#include
#include
structbook
{
chardlnum[10];
charname[50];
charwriter[20];
charflnum[10];
charpressname[50];
charpresstime[20];
charprice[10];
}books[N];books[N]中每个数组元素对应一本图书*/
其中可以根据宏定义#defineN随时对N的值进行调整,扩大信息的储存量。
[程序]:
/********************输入模块*******************/
voidenter()
{
inti,n;
voidmenu();
voidinput(intk);
voidsave(intk);
printf("Howmanybooks(0-%d)?
:
",N-1);
scanf("%d",&n);
printf("\nEnterdatanow\n\n");
for(i=0;i{
printf("\nInput%dthbookrecord.\n",i+1);
input(i);
}
if(i!
=0)save(n);
printf("Passanykeytoback\n");
getchar();
menu();
}
(2)浏览模块
[需求分析]该模块的功能是显示所有图书记录信息。
[流程图]
显示图书记录(10个一屏)
:
按任意键显示下一屏
按任意键返回主菜单
图1浏览模块流程图
[程序]:
/****************浏览(全部)模块***************/
voidbrowse()
{
intk;
voidmenu();
intload();
voidprintf_books(intn);
k=load();
printf_books(k);
printf("Passanykeytoback\n");
getchar();
menu();
}
(3)查找模块
/***************按书名查找模块***************/
[流程图]:
按书名查找模块
用户作出选择,输入一整型数值
1,2,还是3
修改
返回主菜单
继续查找
图2按书名查找模块流程图
voidsearch_by_name()
{
structbooks;
intn,i,k=0;
intload();
voidprintf_one(inti);
n=load();
printf("enterabookname:
");
scanf("%s",&s.name);
for(i=0;i if(strcmp(s.name,books[i].name)==0)
{
printf_one(i);
k=1;
}
if(k==0)printf("\nNotfoundthefile!
\n");
}
/***************按作者查找模块***************/
[流程图]
按作者名称查找模块
用户作出选择,输入一整型数值
1,2,还是3
修改
继续查找
返回主菜单
图3按图书名查找模块流程图
[程序]:
voidsearch_by_writer()
{
structbooks;
intn,i,k=0;
intload();
voidprintf_one(inti);
n=load();
printf("enterawriter'sname:
");
scanf("%s",&s.writer);
for(i=0;i if(strcmp(s.writer,books[i].writer)==0)
{
printf_one(i);
k=1;
}
if(k==0)printf("\nNotfoundthefile!
\n");
}
/***************按出版社查找模块***************/
按出版社查找模块