图书馆管理系统(C语言程序设计).doc

上传人:叶*** 文档编号:35113703 上传时间:2022-08-20 格式:DOC 页数:30 大小:60KB
返回 下载 相关 举报
图书馆管理系统(C语言程序设计).doc_第1页
第1页 / 共30页
图书馆管理系统(C语言程序设计).doc_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《图书馆管理系统(C语言程序设计).doc》由会员分享,可在线阅读,更多相关《图书馆管理系统(C语言程序设计).doc(30页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、百度知道 电脑/网络 程序设计 C/C+添加到搜藏已解决 图书管理系统C语言设计(c#免入) 悬赏分:100 - 解决时间:2010-6-25 14:38 1、功能描述,新进图书基本信息的输入。2. 图书基本信息的查询。3. 对撤消图书信息的删除。4. 为借书人办理注册。5办理借书手续(非注册会员不能借书)。6办理还书手续信息描述:有关该系统基本信息的描述,如:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等大一新生的课程设计,那个只能用C语言来做,拜托各位了,两天之后要上交,网上找的调试都不成功。记住一定要用C语言啊,千万不要用C+,调试成功后有悬赏分的 问题补充: 各位大

2、侠,答完后记得留自己的名字啊,这样我也好给分对了,是要在vc的系统编译提问者: g080166 - 五级最佳答案#include #include #include #include #include #include #include #define LEFT 0x4b00 /*左*/#define RIGHT 0x4d00 /*右*/#define DOWN 0x5000 /*下*/#define UP 0x4800 /*上*/#define SPACE 0x3920 /*空格*/#define ESC 0x011b /* ESC键*/#define ENTER 0x1c0d /*回车键*

3、/#define Backspace 0xe08 /*擦除键*/#define ALT_B 12288 /*组合键ALT_B */#define ALT_M 12800/*组合键ALT_M */#define ALT_H 8960/*组合键ALT_H */int key;/*按键变量*/int textx,texty;/*光标坐标,x行,y列*/struct menustruct/*菜单用的结构体*/ char name10;/*主菜单名*/ char str1020;/*选项*/ int n;/*选项数*/ml3;/*使用了3个,可根据需要增删*/typedef struct BookLis

4、t/*书的结构体*/ char num20;/*图书编号*/ char name20;/*书名*/ int price;/*书的价格*/ char person20;/*借阅人*/ int yes;/*判断书是否存在或者已经借出,1存在,0借出*/ struct BookList *next;Book;typedef struct MemberList/*会员的结构体*/ char name20;/*会员的姓名*/ char sex2;/*会员的性别*/ int age;/*会员的年龄*/ struct MemberList *next;Member;char save4096;/*保存文本区

5、域空间*/*char sav14096;*/char c4096;/*清屏专用空间*/int i,j;/*常用变量*/void Menu();/*初始化界面*/void Selectitem();/*定义菜单*/void DrawSelectitem();/*显示主菜单*/void BlackText(int x,int y,char *z);/*选中菜单*/void RedText(int x,int y,char *z);/*正常菜单*/void Run();/*具体操作过程*/void DrawMl(int n);/*显示下拉菜单*/void MoveMl(int n,int x);/*

6、菜单选项的控制*/void Enter(int m,int n);/*菜单选项的具体功能*/void BookAdd();/*添加图书*/void BookConsult();/*图书查询*/void BookDel();/*删除图书资料*/void BookBorrow();/*借书*/void BookReturn(); /*还书*/void MemberAdd(); /*增加会员*/void MemberConsult();/*查询会员*/void MemberDel(); /*删除会员*/void MemberBook(); /*查询会员借书信息*/void Help(); /*帮助*

7、/void Ver(); /*版本信息*/void ClrScr();/*自定义清屏函数*/void DrawFrame(int left,int up,int right,int down,int textcolor,int backgroundcolor);/*画边框*/*主函数*/void main(void) Menu();/*初始化界面*/ Run();/*具体操作过程*/*初始化界面*/void Menu() system(cls); /*调用系统的清屏命令*/ textbackground(BLUE);/*将背景设置为蓝色*/ window(1,1,25,80); clrscr(

8、); textx=3;/*光标初始化位置*/ texty=2; gotoxy(1,2); printf(%c,218);/*画左上角*/ for(i=0;i78;i+) printf(%c,196); /*画水平直线*/ printf(%c,191);/*画右上角*/ for(i=3;i=23;i+) gotoxy(1,i); printf(%c,179); /*画垂直线*/ gotoxy(80,i); printf(%c,179); printf(%c,192); /*画左下角*/ for(i=0;i78;i+) printf(%c,196); printf(%c,217); /*画右下角*

9、/ gotoxy(1,1); textcolor(7); /*设置灰色*/ for(i=0;i80;i+) cprintf(%c,219);/*用符号实现画主菜单的灰色背景区*/ Selectitem(); /*调用选项函数*/ DrawSelectitem(); /*画选项*/ gettext(2,3,78,23,c); /*保存当前文本区域*/*定义菜单*/void Selectitem() strcpy(ml0.name,Book);/*下面的具体选项补空格是为了各菜单黑色背景相同*/ strcpy(ml0.str0,Add );/*添加图书*/ strcpy(ml0.str1,Find

10、 );/*查询图书*/ strcpy(ml0.str2,Delete );/*删除图书资料*/ strcpy(ml0.str3,Borrow );/*借书*/ strcpy(ml0.str4,Return );/*还书*/ strcpy(ml0.str5,Exit );/*退出系统*/ ml0.n=6; /*保存菜单的项数*/ strcpy(ml1.name,Member); strcpy(ml1.str0,Register );/*添加新会员*/ strcpy(ml1.str1,Find );/*查询会员资料*/ strcpy(ml1.str2,Delete );/*删除会员资料*/ str

11、cpy(ml1.str3,Member&book ); ml1.n=4; strcpy(ml2.name,Help);/*系统帮助*/ strcpy(ml2.str0,This System ); strcpy(ml2.str1,Ver ); ml2.n=2;/*显示主单名*/void DrawSelectitem() for(i=0;i3;i+) RedText(i,1,mli.name); /*显示主菜单名,且首字母为红色*/*正常显示菜单*/void RedText(int x,int y,char *z) textbackground(7); /*设置背景颜色为浅灰色*/ gotoxy

12、(3+x*20,y); for(j=0;zj;j+) if(j=0) textcolor(RED);/*第一个字母显示红色*/ else textcolor(BLACK); /*设置黑色*/ cprintf(%c,zj); /*输出菜单名*/*显示选中菜单*/void BlackText(int x,int y,char *z) textbackground(0); /*设置背景颜色为黑色*/ textcolor(15); /*设置文本颜色为白色*/ gotoxy(3+20*x,y);/*定位坐标*/ cputs(z); /*输出菜单名字符串*/*按键操作过程*/void Run() whil

13、e(1) gotoxy(texty,textx); key=bioskey(0);/*接收按键*/ switch(key) case ALT_B: case ESC: DrawMl(0);break; /*显示下拉菜单1*/ case ALT_M: DrawMl(1);break;/*显示下拉菜单2*/ case ALT_H: DrawMl(2);/*显示下拉菜单3*/ case UP: /*上光标键的操作控制*/ if(textx=3) textx=23; textx-; gotoxy(texty,textx); break; case DOWN: /*下光标键的操作控制*/ if(text

14、x=23) textx=3; textx+; gotoxy(texty,textx); break; case LEFT: /*左光标键的操作控制*/ if(texty=2) texty=79; texty-; gotoxy(texty,textx); break; case Backspace: /*擦除键的设置*/ if(texty=2&textx=3) continue; else if(texty!=2) texty-; /*擦除键的细节问题,先擦去东西,然后光标还要往后退一格*/ else if(texty=2) texty=78; textx-; gotoxy(texty,text

15、x); printf( ); gotoxy(texty,textx); break;/*end case 0xe08*/ case RIGHT: /*右光标键的操作控制*/ if(texty=79) texty=2; texty+; gotoxy(texty,textx); break; case SPACE: /*空格键的操作*/ if(texty=79) continue; else gotoxy(texty,textx); /*空格的细节操作*/ printf( ); texty+; gotoxy(texty,textx); break; case ENTER: /*回车的控制操作*/

16、if(textx=23) continue; textx+; texty=2; gotoxy(texty,textx); break; default : /*非控制键的结果*/ if(texty=79&textx=23)/*到达最后就不再输出*/ continue; else if(texty=79&textx!=23) /*到行的最后*/ textx+; texty=2; gotoxy(texty,textx);/*输出结果*/ printf(%c,key); if(texty=79) /*如果texty=79就不执行*/ continue; else /*如果没到行尾就继续执行,使光标向

17、前移动一位*/ texty+; /*大循环的大括号*/*画边框函数*/void DrawFrame(int l,int u,int r,int d,int tcolor,int bcolor) textbackground(bcolor); /*背景颜色*/ textcolor(bcolor); /*文本颜色*/ for(i=l;i=r;i+) /*输出背景区域*/ for(j=u;j=d;j+) gotoxy(i,j); printf(%c,219); /*输出背景字符*/ textcolor(tcolor);/*边框颜色*/ for(i=u+1;id;i+) /*在背景区域内输出边框线*/

18、 gotoxy(l,i); cprintf(%c,179); /*垂直线*/ gotoxy(r,i); cprintf(%c,179); for(i=l+1;ir;i+) gotoxy(i,u); cprintf(%c,196); /*水平线*/ gotoxy(i,d); cprintf(%c,196); gotoxy(l,u); cprintf(%c,218);/*左上角*/ gotoxy(r,u); cprintf(%c,191);/*右上角*/ gotoxy(l,d); cprintf(%c,192);/*左下角*/ gotoxy(r,d); cprintf(%c,217); /*右下角

19、*/* gettext(l+1,u+1,r-1,d-1,save1);*/*保存边框内区域*/*显示具体下拉选择项目*/void DrawMl(int n) gettext(1,1,80,25,save);/*保存被掩盖的地方*/ BlackText(n,1,mln.name);/*反选显示主菜单*/ DrawFrame(3+20*n-1,2,3+20*n+19,3+mln.n,0,7);/*下拉菜单的边框*/ for(i=3;inext=p;/*新记录插入到链表的尾*/ p-next=NULL;/*最后一个结点的后继为空*/ fclose(fp); ClrScr(); printf(Inpu

20、t the book name: ); gets(bookname); /*输入图书名*/ p=head; while(p!=NULL)/*按名字查找要删除的图书*/ if(strcmp(p-name,bookname)=0)/*找到要删除的图书*/ if(p=head) /*如果是第一个结点*/ head=head-next; else q-next=p-next;/*不是第一个结点*/ break; q=p; /*指针后移*/ p=p-next; fp=fopen(book.txt,wb);/*删除后从链表的头开始重新保存*/ while(head!=NULL) fwrite(head,s

21、izeof(Book),1,fp);/*块写*/ head=head-next; fclose(fp); ClrScr(); /*借书*/void BookBorrow() FILE *fp; Book consultbook; Member consultmember; char bookname20,membername20; int flag=0,mflag=0; ClrScr(); gotoxy(2,3); printf(Please input the mermber name: ); gets(membername); /*输入会员名*/ if(fp=fopen(member.tx

22、t,rb)=NULL)/*没找到文件*/ gotoxy(2,3); printf(Cannot open file!n); return; else while(!feof(fp)/*查询会员资料*/ fread(&consultmember,sizeof(Member),1,fp); if(strcmp(consultmember.name,membername)=0) mflag=1; /*是会员标志*/ break; fclose(fp); if(mflag=0) gotoxy(2,4); printf(You are not a member now,pleas register fi

23、rst!);/*不是会员不能借书*/ return; gotoxy(3,5); printf(Please input the book name: ); gets(bookname); /*输入图书名*/ ClrScr(); if(fp=fopen(book.txt,rb+)=NULL)/*没找到文件*/ gotoxy(2,3); printf(Cannot open file!n); return; while(!feof(fp)/*查询图书资料*/ fread(&consultbook,sizeof(Book),1,fp); if(strcmp(consultbook.name,book

24、name)=0) if(consultbook.yes=0)/*图书已经借出的判断*/ gotoxy(2,3); printf(This book has borrowed!n); break; else consultbook.yes=0; /*作借出标志*/ strcpy(consultbook.person,membername);/*登记借书会员*/ fseek(fp,-1L*sizeof(Book),1);/*从当前位置前移一条记录指针*/ fwrite(&consultbook,sizeof(Book),1,fp);/*写记录*/ gotoxy(2,3); printf(Borro

25、wed success!n); flag=1;/*借出书标志*/ break; if(flag!=1) ClrScr(); gotoxy(2,3); printf(Borrowed fail!n);/*借书失败*/ fclose(fp);/*还书*/void BookReturn() FILE *fp; Book consultbook; char bookname20; int flag=0; ClrScr(); if(fp=fopen(book.txt,rb+)=NULL)/*没找到文件*/ gotoxy(2,3); printf(Cant open file!n); return; pr

26、intf(Please input the book name: ); gets(bookname); /*输入图书名*/ ClrScr(); while(!feof(fp)/*查询图书资料*/ fread(&consultbook,sizeof(Book),1,fp); if(strcmp(consultbook.name,bookname)=0) if(consultbook.yes=0)/*图书已经借出的判断*/ consultbook.yes=1;/*作图书未借书标志,表示已还书*/ strcpy(consultbook.person,); fseek(fp,-1L*sizeof(Bo

27、ok),1); fwrite(&consultbook,sizeof(Book),1,fp); gotoxy(2,3); printf(Return book success!n); flag=1; break; if(flag!=1) printf(Return fail!n); fclose(fp);/*清除屏幕*/void ClrScr() int i,j; puttext(2,3,78,23,c);/*刚开始已经用gettext把蓝色的一块地方保存下来,现在再还原*/ gotoxy(2,3);/*会员注册*/void MemberAdd() FILE *fp; Member consultmember; fp=fopen(member.txt,rb); if(fp=NULL)/*如果没会员就新建*/ fp=fopen(member.txt,wb); else/*如果有会员就添加*/ fclose(fp); fp=fopen(member.txt,ab);/*追加方式打开*/ ClrScr(); gotoxy(2,3); printf(Please intput new members name: );/*逐个输入会员的资料*/ gets(consult

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 施工组织

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com