图书馆管理系统设计C语言Word文件下载.docx
- 文档编号:20855494
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:37
- 大小:75.66KB
图书馆管理系统设计C语言Word文件下载.docx
《图书馆管理系统设计C语言Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统设计C语言Word文件下载.docx(37页珍藏版)》请在冰豆网上搜索。
需要图书ID,学生ID。
(2)图书归还:
4查询报表
(1)图书信息查询:
可以按照图书ID,图书名字,图书作者实现查询。
(2)借/还纪录查询
借,还图书信息都可以按照图书ID,学生ID,日期范围灵活的查询。
(3)未还图书查询
查询可以按照图书ID,学生ID,班级,院系进行,从而可以方便的进行分组管理。
2功能设计
2.1算法设计
本系统需要实现的功能要求:
利用switch语句设计如图1所示的主菜单:
请输入选项编号(1~10)
图书菜单
1—添加图书
2-图书查寻
3-删除一本图书资料
4-借书
5-还书
6-退出系统
会员菜单
7-添加会员
8-会员查询
9-删除一个会员资料
10-查询某个会员所借图书情况
图1图书管理系统主菜单
2、选择5后,调用还书函数,进入函数后利用switch语句实现一个如图2所示的菜单,该菜单中每个选项调用一个函数
还书菜单
请输入选项编号(1~4)
1――输入图书名
2――查询图书资料
3――图书已借出的判断
4――作图书未借书标志,表示已还书
图2还书子菜单
部分模块流程图:
3程序代码设计
1初始化界面模块
1)函数原型:
voidMenu()
2)功能:
初始化界面
3)变量及类型:
voidRedText(intx,inty,char*z):
定义整形变量
{
system("
cls"
);
/*调用系统的清屏命令*/
textbackground(BLUE);
/*将背景设置为蓝色*/
window(1,1,25,80);
clrscr();
textx=3;
/*光标初始化位置*/
texty=2;
gotoxy(1,2);
printf("
%c"
218);
/*画左上角*/
for(i=0;
i<
78;
i++)
196);
/*画水平直线*/
191);
/*画右上角*/
for(i=3;
=23;
{
gotoxy(1,i);
179);
/*画垂直线*/
gotoxy(80,i);
}
192);
/*画左下角*/
217);
/*画右下角*/
gotoxy(1,1);
textcolor(7);
/*设置灰色*/
80;
cprintf("
219);
/*用符号实现画主菜单的灰色背景区*/
Selectitem();
/*调用选项函数*/
DrawSelectitem();
/*画选项*/
gettext(2,3,78,23,c);
/*保存当前文本区域*/
}
4)说明:
进入系统后自动驱动初始化界面
2具体操作过程模块
voidRun()
利用while,for等循环语句和if等判断语句,实现具体的图书管理的过程如,借书、还书等过程。
3)变量及类型:
voidDrawFrame(intl,intu,intr,intd,inttcolor,intbcolor)
textbackground(bcolor);
/*背景颜色*/
textcolor(bcolor);
/*文本颜色*/
for(i=l;
=r;
i++)/*输出背景区域*/
for(j=u;
j<
=d;
j++)
gotoxy(i,j);
/*输出背景字符*/
textcolor(tcolor);
/*边框颜色*/
for(i=u+1;
d;
i++)/*在背景区域内输出边框线*/
gotoxy(l,i);
/*垂直线*/
gotoxy(r,i);
for(i=l+1;
r;
gotoxy(i,u);
/*水平线*/
gotoxy(i,d);
gotoxy(l,u);
/*左上角*/
gotoxy(r,u);
/*右上角*/
gotoxy(l,d);
/*左下角*/
gotoxy(r,d);
/*右下角*/
/*gettext(l+1,u+1,r-1,d-1,save1);
*//*保存边框内区域*/
}
4)说明:
以大量的函数,实现图书管理的主要过程,包括对用户的管理、对图书的管理、对借阅的管理。
4.C程序设计总结
1.程序调试基本正常,基本达到图书管理要求,调试之处游少数错误,经过修改基本上已经可以正常使用了。
2.本人在程序设计感到,充分的利用网上的资源和手中的源代码及借鉴他人的经验可以更加的解决困难,使程序达到要求。
参考文献
[1]谭浩强,C程序设计(第二版),北京:
清华大学出版社,2001.1
[2]陈朔鹰,C语言程序设计习题集,北京:
人命邮电出版社,2003.6
附录:
程序清单
#include<
dos.h>
bios.h>
conio.h>
stdio.h>
stdlib.h>
math.h>
string.h>
#defineLEFT0x4b00/*左*/
#defineRIGHT0x4d00/*右*/
#defineDOWN0x5000/*下*/
#defineUP0x4800/*上*/
#defineSPACE0x3920/*空格*/
#defineESC0x011b/*ESC键*/
#defineENTER0x1c0d/*回车键*/
#defineBackspace0xe08/*擦除键*/
#defineALT_B12288/*组合键ALT_B*/
#defineALT_M12800/*组合键ALT_M*/
#defineALT_H8960/*组合键ALT_H*/
intkey;
/*按键变量*/
inttextx,texty;
/*光标坐标,x行,y列*/
structmenustruct/*菜单用的结构体*/
charname[10];
/*主菜单名*/
charstr[10][20];
/*选项*/
intn;
/*选项数*/
}ml[3];
/*使用了3个,可根据需要增删*/
typedefstructBookList/*书的结构体*/
charnum[20];
/*图书编号*/
charname[20];
/*书名*/
intprice;
/*书的价格*/
charperson[20];
/*借阅人*/
intyes;
/*判断书是否存在或者已经借出,1存在,0借出*/
structBookList*next;
}Book;
typedefstructMemberList/*会员的结构体*/
/*会员的姓名*/
charsex[2];
/*会员的性别*/
intage;
/*会员的年龄*/
structMemberList*next;
}Member;
charsave[4096];
/*保存文本区域空间*/
/*charsav1[4096];
*/
charc[4096];
/*清屏专用空间*/
inti,j;
/*常用变量*/
voidMenu();
/*初始化界面*/
voidSelectitem();
/*定义菜单*/
voidDrawSelectitem();
/*显示主菜单*/
voidBlackText(intx,inty,char*z);
/*选中菜单*/
voidRedText(intx,inty,char*z);
/*正常菜单*/
voidRun();
/*具体操作过程*/
voidDrawMl(intn);
/*显示下拉菜单*/
voidMoveMl(intn,intx);
/*菜单选项的控制*/
voidEnter(intm,intn);
/*菜单选项的具体功能*/
voidBookAdd();
/*添加图书*/
voidBookConsult();
/*图书查询*/
voidBookDel();
/*删除图书资料*/
voidBookBorrow();
/*借书*/
voidBookReturn();
/*还书*/
voidMemberAdd();
/*增加会员*/
voidMemberConsult();
/*查询会员*/
voidMemberDel();
/*删除会员*/
voidMemberBook();
/*查询会员借书信息*/
voidHelp();
/*帮助*/
voidVer();
/*版本信息*/
voidClrScr();
/*自定义清屏函数*/
voidDrawFrame(intleft,intup,intright,intdown,inttextcolor,intbackgroundcolor);
/*画边框*/
/***主函数****/
voidmain(void)
Menu();
Run();
voidSelectitem()
strcpy(ml[0].name,"
Book"
/*下面的具体选项补空格是为了各菜单黑色背景相同*/
strcpy(ml[0].str[0],"
Add"
strcpy(ml[0].str[1],"
Consult"
/*查询图书*/
strcpy(ml[0].str[2],"
Del"
strcpy(ml[0].str[3],"
Borrow"
strcpy(ml[0].str[4],"
Return"
/*还书*/
strcpy(ml[0].str[5],"
Exit"
/*退出系统*/
ml[0].n=6;
/*保存菜单的项数*/
strcpy(ml[1].name,"
Member"
strcpy(ml[1].str[0],"
/*添加新会员*/
strcpy(ml[1].str[1],"
/*查询会员资料*/
strcpy(ml[1].str[2],"
/*删除会员资料*/
strcpy(ml[1].str[3],"
Member&
book"
ml[1].n=4;
strcpy(ml[2].name,"
Help"
/*系统帮助*/
strcpy(ml[2].str[0],"
ThisSystem"
strcpy(ml[2].str[1],"
Ver"
ml[2].n=2;
/*显示主单名*/
voidDrawSelectitem()
3;
RedText(i,1,ml[i].name);
/*显示主菜单名,且首字母为红色*/
/*正常显示菜单*/
voidRedText(intx,inty,char*z)
textbackground(7);
/*设置背景颜色为浅灰色*/
gotoxy(3+x*20,y);
for(j=0;
z[j];
if(j==0)
textcolor(RED);
/*第一个字母显示红色*/
else
textcolor(BLACK);
/*设置黑色*/
z[j]);
/*输出菜单名*/
/*显示选中菜单*/
voidBlackText(intx,inty,char*z)
textbackground(0);
/*设置背景颜色为黑色*/
textcolor(15);
/*设置文本颜色为白色*/
gotoxy(3+20*x,y);
/*定位坐标*/
cputs(z);
/*输出菜单名字符串*/
/*按键操作过程*/
while
(1)
gotoxy(texty,textx);
key=bioskey(0);
/*接收按键*/
switch(key)
caseALT_B:
caseESC:
DrawMl(0);
break;
/*显示下拉菜单1*/
caseALT_M:
DrawMl
(1);
/*显示下拉菜单2*/
caseALT_H:
DrawMl
(2);
/*显示下拉菜单3*/
caseUP:
/*上光标键的操作控制*/
if(textx==3)
textx=23;
textx--;
}break;
caseDOWN:
/*下光标键的操作控制*/
if(textx==23)
textx++;
caseLEFT:
/*左光标键的操作控制*/
if(texty==2)
texty=79;
texty--;
caseBackspace:
/*擦除键的设置*/
if(texty==2&
&
textx==3)
continue;
if(texty!
=2)
/*擦除键的细节问题,先擦去东西,然后光标还要往后退一格*/
texty=78;
"
/*endcase0xe08*/
caseRIGHT:
/*右光标键的操作控制*/
if(texty==79)
texty++;
caseSPACE:
/*空格键的操作*/
/*空格的细节操作*/
caseENTER:
/*回车的控制操作*/
default:
/*非控制键的结果*/
if(texty==79&
textx==23)/*到达最后就不再输出*/
textx!
=23)/*到行的最后*/
/*输出结果*/
key);
if(texty==79)/*如果texty==79就不执行*/
else/*如果没到行尾就继续执行,使光标向前移动一位*/
}/*大循环的大括号*/
/*画边框函数*/
/*显示具体下拉选择项目*/
voidDrawMl(intn)
gettext(1,1,80,25,save);
/*保存被掩盖的地方*/
BlackText(n,1,ml[n].name);
/*反选显示主菜单*/
DrawFrame(3+20*n-1,2,3+20*n+19,3+ml[n].n,0,7);
/*下拉菜单的边框*/
3+ml[n].n;
i++)/*输出所选菜单各选项*/
if(i==3)
BlackText(n,i,ml[n].str[i-3]);
/*默认选中第一项*/
RedText(n,i,ml[n].str[i-3]);
/*其余各项首字符红色显示*/
gotoxy(79,1);
MoveMl(n,3);
/*菜单选项的控制,n决定水平项,x决定下拉的选项*/
voidMoveMl(intn,intx)
intflag=1;
while(flag)
/*退出循环*/
puttext(1,1,8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 设计 语言