za图书馆管理系统C语言程序设计507Word格式文档下载.docx

上传人:b****1 文档编号:1360730 上传时间:2023-04-30 格式:DOCX 页数:20 大小:19.26KB
下载 相关 举报
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第1页
第1页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第2页
第2页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第3页
第3页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第4页
第4页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第5页
第5页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第6页
第6页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第7页
第7页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第8页
第8页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第9页
第9页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第10页
第10页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第11页
第11页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第12页
第12页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第13页
第13页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第14页
第14页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第15页
第15页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第16页
第16页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第17页
第17页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第18页
第18页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第19页
第19页 / 共20页
za图书馆管理系统C语言程序设计507Word格式文档下载.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

za图书馆管理系统C语言程序设计507Word格式文档下载.docx

《za图书馆管理系统C语言程序设计507Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《za图书馆管理系统C语言程序设计507Word格式文档下载.docx(20页珍藏版)》请在冰点文库上搜索。

za图书馆管理系统C语言程序设计507Word格式文档下载.docx

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();

}

voidMenu()

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);

/*保存当前文本区域*/

voidSelectitem()

strcpy(ml[0].name,"

Book"

/*下面的具体选项补空格是为了各菜单黑色背景相同*/.

strcpy(ml[0].str[0],"

Add"

/*添加图书*/.

strcpy(ml[0].str[1],"

Find"

/*查询图书*/.

strcpy(ml[0].str[2],"

Delete"

/*删除图书资料*/.

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],"

Register"

/*添加新会员*/.

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(3x*20,y);

for(j=0;

z[j];

j)

if(j==0)

textcolor(RED);

/*第一个字母显示红色*/

else

textcolor(BLACK);

/*设置黑色*/

z[j]);

/*输出菜单名*/

/*显示选中菜单*/

voidBlackText(intx,inty,char*z)

textbackground(0);

/*设置背景颜色为黑色*/

textcolor(15);

/*设置文本颜色为白色*/

gotoxy(320*x,y);

/*定位坐标*/

cputs(z);

/*输出菜单名字符串*/

/*按键制作过程*/

voidRun()

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/*如果没到行尾就继续执行,使光标向前移动一位*/

}/*大循环的大括号*/

/*画边框函数*/

voidDrawFrame(intl,intu,intr,intd,inttcolor,intbcolor).

textbackground(bcolor);

/*背景颜色*/

textcolor(bcolor);

/*文本颜色*/

for(i=l;

=r;

i)/*输出背景区域*/

for(j=u;

j<

=d;

gotoxy(i,j);

/*输出背景字符*/

textcolor(tcolor);

/*边框颜色*/

for(i=u1;

d;

i)/*在背景区域内输出边框线*/

gotoxy(l,i);

/*垂直线*/

gotoxy(r,i);

for(i=l1;

r;

gotoxy(i,u);

/*水平线*/

gotoxy(i,d);

gotoxy(l,u);

/*左上角*/

gotoxy(r,u);

/*右上角*/

gotoxy(l,d);

/*左下角*/

gotoxy(r,d);

/*右下角*/

/*gettext(l1,u1,r-1,d-1,save1);

*//*保存边框内区域*/

/*显示具体下拉选择项目*/

voidDrawMl(intn)

gettext(1,1,80,25,save);

/*保存被掩盖的地方*/

BlackText(n,1,ml[n].name);

/*反选显示主菜单*/

DrawFrame(320*n-1,2,320*n19,3ml[n].n,0,7);

/*下拉菜单的边框*/.

3ml[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,80,25,save);

/*恢复打开菜单前的样子*/

flag=0;

break;

/*移到左边的选项*/

if(n==0)/*往左移动越界的话移到最后一个选项*/

DrawMl(n-1);

/*移动右边的选项*/

if(n==2)/*往右移动越界的话移到第一个选项*/

DrawMl(n1);

/*具体选项往上移动*/

RedText(n,x,ml[n].str[x-3]);

/*输出红色字体*/

if(x==3)/*移到最上面再按上键,就移到最下面*/

x=3ml[n].n-1;

x--;

/*移动到新的要显示的内容*/

BlackText(n,x,ml[n].str[x-3]);

/*输出黑色字体*/

flag=1;

/*具体选项往下移动*/

if(x==(3ml[n].n-1))/*移动到最底下再按下键就移到最上面*/

x=3;

x;

Enter(n,x-3);

/*菜单选项的具体功能*/

voidEnter(intm,intn)

switch(m)

case0:

switch(n)/*选择了图书菜单选项*/

BookAdd();

case1:

BookConsult();

case2:

BookDel();

/*删除一本图书资料*/

case3:

BookBorrow();

case4:

BookReturn();

case5:

exit(0);

}break;

/*退出系统*/

switch(n)/*选择了会员菜单选项*/

MemberAdd();

/*添加会员*/

MemberConsult();

/*会员查询*/

MemberDel();

/*删除一个会员资料*/

MemberBook();

/*查询某个会员所借图书情况*/

switch(n)/*选择了帮助菜单选项*/

Help();

Ver();

}/*结束外switch*/

}voidBookAdd()

FILE*fp;

Bookconsultbook;

fp=fopen("

book.txt"

"

rb"

/*读方式打开文件*/

if(fp==NULL)

wb"

/*写方式打开文件*/

else/*如果有书就添加*/

fclose(fp);

ab"

/*追加方式打开文件*/

ClrScr();

/*清屏*/

Pleaseintputanewbooknum:

/*逐个输入新图书的资料*/.

gets(consultbook.num);

gotoxy(2,4);

Pleaseinputthenewbookname:

gets(consultbook.name);

gotoxy(2,5);

Pleaseinputthenewbook'

sprice:

scanf("

%d%*c"

&

consultbook.price);

strcpy(consultbook.person,"

"

consultbook.yes=1;

/*表示书存在未借出*/

consultbook.next=NULL;

fwrite(&

consultbook,sizeof(Book),1,fp);

/*块写*/

/*关闭文件*/

voidBookConsult()

charbookname[20];

/*书名*/

intflag=0,i=0;

gotoxy(2,3);

Pleaseinputthebookname:

gets(bookname);

/*输入要查询的图书名*/

if(fp==NULL)/*没找到文件*/

Error!

return;

while(!

feof(fp))/*查询图书资料*/

fread(&

if(strcmp(consultbook.name,bookname)==0)/*如果查找到*/

gotoxy(2,3i*5);

Thisbook%sinformationasfollow:

consultbook.name);

.

gotoxy(2,4i*5);

Thisbooknumis%s."

consultbook.num);

gotoxy(2,5i*5);

Thisbook'

spriceis%d."

consultbook.price);

gotoxy(2,6i*5);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2