c语言课程设计图书信息管理系统Word文档下载推荐.docx
- 文档编号:17817540
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:27
- 大小:69.12KB
c语言课程设计图书信息管理系统Word文档下载推荐.docx
《c语言课程设计图书信息管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言课程设计图书信息管理系统Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
信息描述:
图书信息包括:
登录号、书名、图书编号、单价、作者名、分类号、出版单
位、出版时间、价格等。
借阅人信息包括:
借书人姓名、性别、学号
二、问题分析
1、系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计。
2、程序将综合if语句及switch语句的运用方法及嵌套应用方法,循环结构的三种语句while、do-while.、for,以及函数的定义方法和调用方法等来进行编写。
三、系统设计
1、程序总体结构
2.重要数据的数据结构设计
structBOOK:
把所要的数据
charshuming[999],zuozheming[999],fenleihao[999],danwei[999],shijian[999],jiage[999];
全放在一维数组中,以结构体的形式表现出来。
这是文件录入和读取的关键,相当于做成一个文件,需要的时候将里面的数据读取或者修改。
(1).录入模块:
录入图书信息并保存于文件中。
(2).浏览模块:
添加一个或多个图书信息,并将所添加图书信息保存,方便查找。
(3).删除模块:
对图书信息做删除处理。
(4).修改模块:
voidxiugai
根据需要对图书信息进行修改。
(5).查询模块:
对已建立的图书信息进行查询,并且可根据需要选择按书名、作者或按分类号查询。
(6).菜单:
帮助借阅者根据所需进行选择。
3.函数设计
函数名:
菜单函数voidselect()
函数功能:
运行后显示主界面,通过输入来选择下一步操作。
参数说明:
intn用于判断使用者所要进入的界面的序号。
算法描述:
根据使用者输入的数字进行判断,并调用相对应的函数。
登陆函数voiddl()
该函数功能为辨识管理权限,只有正确输入登录号才能进入主界面。
intn,k=0,其中n用于识别登录号正确与否,k用于做一个循环。
用户输入登录号存在n里,判断n值是否等于11056026,是,则调用菜单函数。
否,则让用户重新输入,两次输错以后关闭程序。
录入函数voidinput()
进入该函数,开始根据提示录入图书信息
inti=0;
用于自加,以便更换储存输入的信息的位置。
Chara;
接收用户输入的字符。
printf提示信息,用户输入需要录入的数据,输入Y则调用lr()。
输入N则调用clect(),输入其他则调用shifou()。
浏览函数voidoutput()
进入该函数,按照输入顺序依次显示信息
inti=0;
用于自加,以更换数据的位置信息以输出。
chara,b用于接受用户输入的字符。
输出第一本书籍的信息,i++。
输入Y,则输出第二本书籍的信息。
输入N,则调用slect().
查询函数voidsearch()
进入函数,选择不同方式进行查询
inti;
chaj,m[100],a;
i用于做循环以搜索图书,j用于判断用户需要的查询方式,m[100]用于存放用户输入的搜索数据。
根据用户输入的字符进行判断,调用相应函数。
修改函数voidxiugai()
进入该函数,开始根据提示修改图书信息
inti用于做循环的条件限制,以寻找要修改的图书。
charj用于用于判断用户需要的修改方式并调用相应函数。
charm[100],用于录入用户新存入的数据信息并保存。
chara;
根据用户输入的字符,判断其是否需要继续修改信息,并调用相应函数。
输入j值,判断修改方式:
A按书名,则调用xiugai1,B按作者名调用xiugai2,C返回,调用slect()。
然后用户输入需要修改的书本的信息,用循环寻找相同的数据,printf需要修改的图书信息,并且提示用户输入相应信息。
最后,输入Y,则gotomulu,N则gotoxiugai2。
删除函数voidshanchu()
进入该函数,开始根据提示删除图书信息
inti,p;
用于做循环。
charj,用于用于判断用户需要的删除方式并调用相应函数。
m[100]用于给用户输入需要删除的书籍信息。
a,用于存放用户输入的字符。
dd用于存放用户输入的字符。
输入i值,判断删除方式:
A按书名,则调用shanchu1,B按作者名调用shanchu2,C返回,调用slect()。
然后用户输入需要删除的书本的信息,用循环寻找相同的数据,printf需要删除的图书信息,并且提示用户输入相应信息。
最后,输入Y,则从i的位置开始往后,所有book.的数据往前移动一位,然后输入Y,则xiugai,输入N则调用slect()。
4.程序运行视图
(见下页)
四、难点及关键技术分析:
程序设计的难点及解决方法说明
难点:
算法设计,只有设计出来了算法以后才能步步展开,才能有目的的编写程序。
所以必须要有一个好的算法。
解决办法:
算法设计用流程图会很非常直观,可以清楚的显示各个框之间的逻辑关系。
流程图包括表示相应操作的框,带箭头的流程线,必要的文字说明。
关键技术:
删除书籍时,结构体中的数据往前移动一位。
使用strcpy()来把后面的数据与前一位数据进行调换。
还需要做一个循环。
并且要注意的是,因为数组是100位的,所以如果删除的书籍是最后两位的话,是没有必要使用strcpy()的,因为存有数据的内存的相对位置没有发生变化。
五、测试情况:
系统运行、数据输入及输出结果截图
六、源程序清单:
#include<
stdio.h>
string.h>
stdlib.h>
structBOOK
{
charshuming[999],zuozheming[999],fenleihao[999],danwei[999],
shijian[999],jiage[999];
}books[999];
voidmain()
voidselect();
voiddl();
dl();
printf("
\n"
);
select();
}
voidselect()
system("
cls"
voidjm();
voidinput();
voidoutput();
voidsearch();
voidxiugai();
voidshanchu();
intn;
图书管理功能界面\n"
menu:
jm();
scanf("
%d"
&
n);
getchar();
if(n==1||n==2||n==3||n==4||n==5||n==6)
{
switch(n)
{
case1:
input();
break;
case2:
output();
case3:
search();
case4:
xiugai();
case5:
shanchu();
case6:
exit(0);
}
}
else
printf("
输入错误,请重新输入!
输入你再次的选择:
gotomenu;
}
voiddl()
intk=0;
zl:
********欢迎光临图书管理系统********\n"
请输入你的学号:
"
if(n==11056026)
select();
if(k<
2)
printf("
k++;
gotozl;
else
登录失败\n"
exit(0);
voidjm()
*\n"
***\n"
********\n"
***************\n"
********************\n"
*********************\n"
**1.图书信息录入***\n"
**2.图书信息浏览***\n"
**3.图书查询***\n"
**4.图书信息修改***\n"
**5.图书信息删除***\n"
**6.退出***\n"
请输入序号:
voidinput()
chara;
lr:
%s"
"
图书书名:
scanf("
books[i].shuming);
作者名:
books[i].zuozheming);
分类号:
books[i].fenleihao);
出版单位:
books[i].danwei);
出版时间:
books[i].shijian);
价格:
books[i].jiage);
i++;
是否继续,输入Y/N:
shifou:
scanf("
a);
system("
if(a=='
n'
||a=='
N'
)
select();
elseif(a=='
y'
Y'
)
gotolr;
else
输入错误,请重新输入"
gotoshifou;
voidoutput()
{
inti=0;
chara,b;
shuchu:
%s\n"
是否继续浏览下一本:
Y/N?
\n"
if(books[i+1].shuming!
=0)
gotoshuchu;
else
{
printf("
查询完毕,输入Y返回界面\n"
scanf("
b);
getchar();
system("
if(b=='
||b=='
select();
}
voidsearch()
inti;
charj,m[100],a;
mulu:
请选择查询方式:
A、按书名查询\n"
B、按作者名查询\n"
C、按分类号查询\n"
D、返回\n"
请选择:
j);
getchar();
if('
A'
==j||'
a'
==j)
chaxun1:
请输入图书书名:
m);
for(i=0;
i<
=999;
i++)
if(strcmp(books[i].shuming,m)==0)
书名:
作者:
gotomulu;
gotochaxun1;
elseif('
B'
b'
chaxun2:
请输入作者名:
if(strcmp(books[i].zuozheming,m)==0)
gotochaxun2;
C'
c'
chaxun3:
请输入分类号:
if(strcmp(books[i].fenleihao,m)==0)
gotochaxun3;
D'
d'
gotomulu;
voidxiugai()
请选择修改方式:
A、按书名修改\n"
B、按作者名修改\n"
C、返回\n"
xiugai1:
请输入要修改的图书书名:
请修改:
if(a=='
{
gotomulu;
}
else
gotoxiugai1;
system("
xiugai2:
请输入要修改的作者名:
请修改
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 图书 信息管理 系统