C语言图书管理系统程序设计报告Word文件下载.docx
- 文档编号:17478564
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:23
- 大小:259.22KB
C语言图书管理系统程序设计报告Word文件下载.docx
《C语言图书管理系统程序设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言图书管理系统程序设计报告Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
试设计一图书信息管理系统,使之能提供以下功能:
1.系统以菜单方式工作。
2.图书信息录入功能(图书信息用文件保存)--输入。
3.图书信息浏览功能--输出。
4.查询和排序功能:
(至少一种查询方式)--算法。
a.按书名查。
b.按作者名查询。
本人任务:
负责设计和编写图书信息管理系统的修改图书信息部分。
三、程序功能简介
本系统是以visualC++环境下用C语言开发的一个图书管理系统。
本系统具有图书信息录入、浏览、删除、修改、查找(包括按书名、作者查找)功能。
其中图书信息包括登录号、书名、作者名、分类号、出版单位、出版时间、价格,并且对信息以文件形式储存。
另外本系统具备实用性的同时代码逻辑谨慎清晰易懂,且界面美观。
四、主体内容
1.设计分析
本系统共分为一个主页面模块(主函数部分),五个功能模块(功能函数)分别为图书信息录入、图书信息浏览、图书信息查询、图书信息删除、图书信息修改。
设计时应该先写好主函数、定义好全局变量和功能函数,再对五个功能函数进行设计。
在每个功能函数和主函数应中加入控制条件使用户可以随时退出系统,并在用户输入指令错误的时候给予提醒和退出选项。
小组中的五个人分别承担一个功能模块进行设计。
并在每个人设计完成后通过主函数进行链接调试正确后方为完成。
2.程序结构(流程图)
3.各模块的功能及程序说明
A、录入模块:
本模块主要执行信息录入功能。
B、浏览模块:
本模块主要是执行把已有信息输出浏览功能。
C、查询模块:
本模块主要是执行按书名和按作者名查找图书信息的功能。
D、删除模块:
本模块主要执行删除图书信息的功能。
E、修改模块(本人设计模块):
本模块主要执行图书信息修改功能。
在用户选择该功能后。
首先,系统会弹出已存在信息列表并让用户选择所要修改的信息项目。
然后,当用户选定要修改的信息后会弹出信息目录,用户需按顺序依次修改信息内容。
最好当所有信息项目都修改完成之后,按回车键会在窗口上输出修改后的内容。
4.源程序
#include<
>
#defineMAX100
structStudent
{
intnum;
/*登录号*/
charname[100];
/*书名*/
charauthor[100];
/*作者名*/
charfn[100];
/*分类号*/
charplace[100];
/*出版单位*/
charday[100];
/*出版时间*/
floatmoney;
/*价格*/
}stu[MAX];
main()/*主函数*/
voidInput();
/*输入*/
voidDisplay();
/*输出*/
voidFind();
/*查找*/
voidModify();
/*删除*/
voidChange();
/*修改*/
intn;
for(;
;
)
{
printf("
\n"
);
printf("
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"
※※\n"
※欢迎来到图书信息管理系统※\n"
※主菜单※\n"
※▲1.图书信息录入▲※\n"
※▲2.图书信息浏览▲※\n"
※▲3.图书信息查询▲※\n"
※▲4.图书信息删除▲※\n"
※▲5.图书信息修改▲※\n"
※▲6.退出系统▲※\n"
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n"
请输入选择项(1-6):
"
scanf("
%d"
&
n);
\n\n\n\n"
if(n>
0&
&
n<
7)
{
switch(n)
{
case1:
Input();
break;
case2:
Display();
case3:
Find();
case4:
Modify();
case5:
Change();
case6:
printf("
※※※※※※※※※※※※※※※※※※※※※※※※\n"
※谢谢使用!
※\n"
※再见!
exit(0);
}
}
else
printf("
※输入错误!
※请退出!
break;
}
}
voidFind()/*查找*/
{
FILE*fp;
inti;
intchoose,t;
charans[100];
do
1.按书名查找\n"
2.按作者名查找\n"
返回主菜单(其他数字)\n"
scanf("
choose);
if(choose==1)
输入所查书名:
scanf("
%s"
ans);
t=-1;
if(choose==1)
for(i=0;
i<
MAX;
i++)if(strcmp(ans,stu[i].name)==0)
{
t=i;
fp=fopen("
student"
"
rb"
for(i=0;
fread(&
stu[i],sizeof(structStudent),1,fp)==1;
i++)
printf("
%d%s%s%s%s%s%f\n"
stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t].day,stu[t].money);
}
if(t==-1)printf("
不存在该信息\n"
elseif(choose==2)
输入所查作者名:
if(choose==2)
if(strcmp(ans,stu[i].author)==0)
{t=i;
printf("
elsereturn;
}while
(1);
voidDisplay()/*输出*/
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"
图书列表\n"
-----------------------------------------------------------\n"
登录号书名作者名分类号出版单位出版时间价格\n"
for(i=0;
%6d%8s%8s%8s%8s%8s%\n"
stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money);
fclose(fp);
voidInput()/*输入*/
ab+"
for(n=0;
n++)
n=%d输入序号n(当输入n=-1时,返回),n="
n++);
if(n==-1)
fclose(fp);
return;
else
请输入登录号书名作者名分类号出版单位出版时间价格\n"
%d%s%s%s%s%s%f"
stu[n].num,stu[n].name,stu[n].author,stu[n].fn,stu[n].place,stu[n].day,&
stu[n].money);
fwrite(&
stu[n],sizeof(structStudent),1,fp);
voidModify()/*删除*/
inti,flag,n,s,j;
rb+"
rewind(fp);
}
n=i;
输入待删除图书号:
s);
for(i=0,flag=1;
flag&
n;
if(s==stu[i].num)
for(j=i;
j<
n-1;
j++)
stu[j].num=stu[j+1].num;
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j].author,stu[j+1].author);
strcpy(stu[j].fn,stu[j+1].fn);
strcpy(stu[j].place,stu[j+1].place);
strcpy(stu[j].day,stu[j+1].day);
stu[j].money=stu[j+1].money;
flag=0;
if(!
flag)
n=n-1;
else
没有此号\n"
wb"
fwrite(&
stu[i],sizeof(structStudent),1,fp);
r"
fread(&
}
voidChange()/*修改*/
inti,num,n;
intflag=0;
请输入要修改的图书号:
num);
=MAX;
if(stu[i].num==num)
-----------------------------------------------------------\n\n"
flag=1;
if(flag==0)
输入错误!
请返回!
return;
\n\n\n"
fseek(fp,n*sizeof(structStudent),0);
5.操作方法(流程)
第一步:
双击打包好的.exe程序,打开程序。
第二步:
根据窗口提示内容作出选择。
第三步:
根据弹出的二级菜单作出选择。
第四步:
根据所选内容进行相应的操作。
第五步:
操作完毕,根据提示返回主菜单会直接退出该系统。
6.试验结果
A、图书信息录入:
数据输入:
数据输出:
B、图书信息浏览
输入数据:
C、图书信息查询
输出数据:
D、图书信息删除:
E、图书信息修改
F、系统退出
7.设计体会。
在这一周的程序设计实习当中并不是一帆风顺的。
刚开始到电脑面前听完老师讲了一大堆,我根本就不知道要做什么,用什么做。
我并没有被眼前的一点小困难所击倒,我相信困难总是有办法解决的。
于是开始的两天我就在网上找各种相关的文章、视频。
刚开始我就只是看着网上的东西照猫画虎的做一些小程序,慢慢的通过这些模仿我也渐渐的懂了一些东西。
通过两天的原始知识积累后,我开始尝试着按照自己的想法做了一些小系统。
起初会出现很多问题,不是这儿少了就是那错了。
在这样那样的错误中我明白编程是一件很严谨的事,容不得半点错误,一步走错,全盘皆输!
在出现错误时我通常是上网搜索相关的答案,听听大家的想法,往往一个问题的解决方法是多种多样的,各自有其精妙之处。
有的解决方法浅显易懂,但是易出现漏洞;
有的复杂难懂,但是逻辑紧密,无丝毫破绽。
编程是一门逻辑的游戏,一但了解其游戏规则,便发现乐趣无穷。
有时候自己有很多的想法,但由于自己的水平有限不能很好地实现,每到那时候我就有一种强烈的愿望想要把问题解决,做出自己想的东西。
一但解决了问题,那种快乐非亲身经历者不能感受!
说实话,在网上虽然信息很多,但是会让人晕了头脑,做起来也不是那么容易的。
也许我的程序比起别人的来说可能会有些许不足,但是那个个代码都是出自我手,每一寸屏幕都是我自己的想法,都是我自己的。
我觉得不成功没关系,重要的是要有自己努力成功的心,而要成功光是抄袭别人的是不行的,得拿出自己的东西,自己的创新,要敢于尝试!
王杰七、附录
1.流程图
主页面:
信息录入:
信息浏览:
信息查询:
信息删除:
信息修改:
系统退出:
2.主要过程列表
A、程序开头定义:
:
#include是编译预处理指令,就是在编译前将这个文件里的函数都添加到你写的cpp文件中。
在编译前C语言里面关于字符数组的函数定义的头文件,就是在编译前将这个文件里的函数都添加到你写的cpp文件中。
在编译前将这个文件里的函数都添加
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图书 管理 系统 程序设计 报告