图书馆管理(C语言程序).doc_第1页
图书馆管理(C语言程序).doc_第2页
图书馆管理(C语言程序).doc_第3页
图书馆管理(C语言程序).doc_第4页
图书馆管理(C语言程序).doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

百度知道 电脑/网络 程序设计 C/C+添加到搜藏已解决 图书管理系统C语言设计(c#免入) 悬赏分:100 - 解决时间:2010-6-25 14:38 1、功能描述,新进图书基本信息地输入.2. 图书基本信息地查询.3. 对撤消图书信息地删除.4. 为借书人办理注册.5办理借书手续(非注册会员不能借书).6办理还书手续信息描述:有关该系统基本信息地描述,如:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等文档收集自网络,仅用于个人学习大一新生地课程设计,那个只能用C语言来做,拜托各位了,两天之后要上交,网上找地调试都不成功.记住一定要用C语言啊,千万不要用C+,调试成功后有悬赏分地 问题补充:我地邮箱是 各位大侠,答完后记得留自己地名字啊,这样我也好给分对了,是要在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 /*回车键*/#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 BookList/*书地结构体*/ 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;/*保存文本区域空间*/*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);/*菜单选项地控制*/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(); /*帮助*/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(); 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); /*画右下角*/ gotoxy(1,1); textcolor(7); /*设置灰色*/ for(i=0;i80;i+) cprintf(%c,219);/*用符号实现画主菜单地灰色背景区*/ Selectitem(); /*调用选项函数*/ DrawSelectitem(); /*画选项*/ gettext(2,3,78,23,c); /*保存当前文本区域*/*定义菜单*/void Selectitem() strcpy(,Book);/*下面地具体选项补空格是为了各菜单黑色背景相同*/文档收集自网络,仅用于个人学习 strcpy(ml0.str0,Add );/*添加图书*/文档收集自网络,仅用于个人学习 strcpy(ml0.str1,Find );/*查询图书*/文档收集自网络,仅用于个人学习 strcpy(ml0.str2,Delete );/*删除图书资料*/文档收集自网络,仅用于个人学习 strcpy(ml0.str3,Borrow );/*借书*/ strcpy(ml0.str4,Return );/*还书*/ strcpy(ml0.str5,Exit );/*退出系统*/文档收集自网络,仅用于个人学习 ml0.n=6; /*保存菜单地项数*/ strcpy(,Member); strcpy(ml1.str0,Register );/*添加新会员*/文档收集自网络,仅用于个人学习 strcpy(ml1.str1,Find );/*查询会员资料*/文档收集自网络,仅用于个人学习 strcpy(ml1.str2,Delete );/*删除会员资料*/文档收集自网络,仅用于个人学习 strcpy(ml1.str3,Member&book ); ml1.n=4; strcpy(,Help);/*系统帮助*/ strcpy(ml2.str0,This System ); strcpy(ml2.str1,Ver ); ml2.n=2;/*显示主单名*/void DrawSelectitem() for(i=0;i3;i+) RedText(i,1,); /*显示主菜单名,且首字母为红色*/*正常显示菜单*/void RedText(int x,int y,char *z) textbackground(7); /*设置背景颜色为浅灰色*/ gotoxy(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() while(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(textx=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,textx); 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: /*回车地控制操作*/ 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 /*如果没到行尾就继续执行,使光标向前移动一位*/ 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+) /*在背景区域内输出边框线*/ 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); /*右下角*/* gettext(l+1,u+1,r-1,d-1,save1);*/*保存边框内区域*/*显示具体下拉选择项目*/void DrawMl(int n) gettext(1,1,80,25,save);/*保存被掩盖地地方*/ BlackText(n,1,);/*反选显示主菜单*/ 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(Input 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,sizeof(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.txt,rb)=NULL)/*没找到文件*/ gotoxy(2,3); printf(Cannot open file!n); return; else while(!feof(fp)/*查询会员资料*/ fread(&consultmember,sizeof(Member),1,fp); if(strcmp(,membername)=0) mflag=1; /*是会员标志*/ break; fclose(fp); if(mflag=0) gotoxy(2,4); printf(You are not a member now,pleas register first!);/*不是会员不能借书*/文档收集自网络,仅用于个人学习 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(,bookname)=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(Borrowed 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; printf(Please input the book name: ); gets(bookname); /*输入图书名*/ ClrScr(); while(!feof(fp)/*查询图书资料*/ fread(&consultbook,sizeof(Book),1,fp); if(strcmp(,bookname)=0) if(consultbook.yes=0)/*图书已经借出地判断*/ consultbook.yes=1;/*作图书未借书标志,表示已还书*/ strcpy(consultbook.person,); fseek(fp,-1L*sizeof(Book),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(); gotoxy(2,4); printf(Please input new members sex: ); gets(consultmember.sex); gotoxy(2,5); printf(Please input new members age: ); scanf(%d%*c,&consultmember.age); fwrite(&consultmember,sizeof(Member),1,fp);/*写入记录*/文档收集自网络,仅用于个人学习 fclose(fp); ClrScr();/*查询会员*/void MemberConsult() FILE *fp; Member consultmember; char membername20; int flag=0; ClrScr(); gotoxy(2,3); printf(Please input the members name: );/*输入要查询地会员名*/文档收集自网络,仅用于个人学习 gets(membername); fp=fopen(member.txt,rb); if(fp=NULL)/*没找到文件*/ ClrScr(); gotoxy(2,3); printf(Error!n); fclose(fp); return; while(!feof(fp)/*查询会员资料*/ fread(&consultmember,sizeof(Member),1,fp); if(strcmp(,membername)=0)/*比较*/ ClrScr(); gotoxy(2,3); printf(The member %s s information as follow:,);文档收集自网络,仅用于个人学习 gotoxy(2,4); printf(This membersex is %s.,consultmember.sex);文档收集自网络,仅用于个人学习 gotoxy(2,5); printf(This member s age is %d.,consultmember.age);文档收集自网络,仅用于个人学习 flag=1; break; if(flag=0) ClrScr(); gotoxy(2,3); printf(The member %s doesnt exist in the library!,membername);文档收集自网络,仅用于个人学习 fclose(fp);/*删除会员资料*/void MemberDel() FILE *fp; Member *head,*p,*q; char membername20; fp=fopen(member.txt,rb); if(fp=NULL)/*没找到文件*/ gotoxy(2,3); printf(Error!); fclose(fp); return; head=p=q=(Member*)malloc(sizeof(Member);/*将文件内容放入链表*/文档收集自网络,仅用于个人学习 fread(p,sizeof(Member),1,fp); while(!feof(fp) q=p; p=(Member*)malloc(sizeof(Member); fread(p,sizeof(Member),1,fp);/*读记录*/ q-next=p;/*链入到链表地尾部*/ p-next=NULL; fclose(fp); ClrScr(); printf(Please input the members name: );/*输入会员名*/文档收集自网络,仅用于个人学习 gets(membername); p=head; while(p!=NULL)/*按名字查找要删除地书*/ if(strcmp(p-name,membername)=0)/*查找会员*/ if(p=head) head=head-next;/*如果是第一条记录*/ else q-next=p-next;/*不是第一条记录*/ break; q=p; /*没找到,则指针后移继续找*/ p=p-next; fp=fopen(member.txt,wb);/*删除后重新保存*/ while(head!=NULL) fwrite(head,sizeof(Member),1,fp);/*块写*/ head=head-next; fclose(fp); ClrScr(); 版权申明本文部分内容,包括文字、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论