论文投稿百科

c语言图书管理系统论文

发布时间:2024-07-02 22:50:59

c语言图书管理系统论文

#include<>#include<>struct sale/*商品名的定义*/{int number;
char name[20];
float price;
long count;
long time;
long date;}; /*各个函数*/ void input(struct sale s[7]);/*输入函数*/ void output(struct sale s[7]);/*输出函数*/ void seek(struct sale s[7]);/*查找函数*/ void row(struct sale s[7]);/*排序函数*/ void change(struct sale s[7]);/*删除、修改、或插入*/void main()/*主函数执行区域*/{struct sale s[7]={{2,"pen",},{1,"milk",},{5,"coke",},{6,"chewing",},{4,"eraser",},{3,"pencil",}};/*定义初始值*/; /*input(s);【已付初始值暂不运行!!】*/output(s);seek(s);row(s);change(s); } /*void input(struct sale s[7])【注释:已付初始值,暂不运行!!】 {int i;
printf("请分别输入产品编号、名称、单价、库存数量、入库时间、有效日期:\n");
for(i=0;i<7;i++)
scanf("%d%s%f%ld%ld%ld",&);}*/void output(struct sale s[7])/*定义输出*/{int i;
printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n");
for(i=0;i<7;i++)
printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",);} void seek(struct sale s[7])/*定义查找*/ {int i;
int m;
int k;
k=1;
printf("请输入要查找的编号\n");
printf("m== ");
scanf("%d",&m);
for(i=0;i<7;i++)
{
if(m==)
{printf("你想查找的物品是:\n");
printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n");
printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",);
k=m;} } if(k==1) printf("没有此类商品!!!\n"); }void row(struct sale s[7])/*排序*/ { struct sale t; int i,j; int m,a; printf("\n"); printf("输出已排好序的商品\n"); for(j=0;j<6;j++) for(i=0;i<6-j;i++) if(>) { t=s; s=s; s=t; } printf("重新排序后是; \n"); printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n"); for(a=0;a<7;a++) printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",s[a].number,s[a].name,s[a].price,s[a].count,s[a].time,s[a].date); }void change(struct sale s[7])/*删除、修改、或插入*/ { struct sale c; int i,m,q,n,k; k=0; printf("请输入您要删除、修改或要插入的物品编号\n");/*前奏*/ scanf("%d",&m); for(i=0;i<7;i++) if(m==) {{printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n");
printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",);} printf("你确实要删除它么???还是要修改??\n"); printf("如果想删除请输入1,如果要修改请输入2。\n"); printf("您要输入的是: "); scanf("%d",&q); if(q==1)/*执行删除命令*/ {printf("您删除后的结果是:\n");
for(i=0;i<7;i++)
if(m!=)
{printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n");
printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",);}} if(q==2)/*执行修改命令*/ {printf("输入你想修改的库存数量: ");
scanf("%d",&n);
s[m].count=n;
printf("修改后的商品信息为:\n");
printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n");
for(i=0;i<7;i++)
printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",);} k=i; } if(k==0)/*执行插入命令*/ {printf("\n\n");
printf("由于插入语句没有要求,所以插入语句尚未完成,有些功能尚未完善,所以会有错误,请老师见谅。\n\n\n");
printf("此类商品不存在,请插入\n");
printf("请分别输入要插入产品的编号、名称、单价、库存数量、入库时间、有效日期:\n");
i=m-1;
scanf("%d%s%f%ld%ld%ld",&);
printf("编号\t名称\t单价\t库存数量\t入库时间\t\t有效日期\n");
printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",);
for(i=0;i<7;i++)
printf("%d\t%s\t%.2f\t%ld\t\t%ld\t\t%ld\n",);


row(s);


}}这是我大一时候做的大作业,虽然不是图书管理系统,你只要改改就行了,原理都一样,呵呵

那位大哥回答的绝。。。一点错误没有。。厉害

#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 name[10];/*主菜单名*/ char str[10][20];/*选项*/ int n;/*选项数*/}ml[3];/*使用了3个,可根据需要增删*/typedef struct BookList/*书的结构体*/{ char num[20];/*图书编号*/ char name[20];/*书名*/ int price;/*书的价格*/ char person[20];/*借阅人*/ int yes;/*判断书是否存在或者已经借出,1存在,0借出*/ struct BookList *next;}Book;typedef struct MemberList/*会员的结构体*/{ char name[20];/*会员的姓名*/ char sex[2];/*会员的性别*/ int age;/*会员的年龄*/ struct MemberList *next;}Member;char save[4096];/*保存文本区域空间*//*char sav1[4096];*/char c[4096];/*清屏专用空间*/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;i<78;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;i<78;i++) printf("%c",196); printf("%c",217); /*画右下角*/ gotoxy(1,1); textcolor(7); /*设置灰色*/ for(i=0;i<80;i++) cprintf("%c",219);/*用符号实现画主菜单的灰色背景区*/ Selectitem(); /*调用选项函数*/ DrawSelectitem(); /*画选项*/ gettext(2,3,78,23,c); /*保存当前文本区域*/}/*定义菜单*/void Selectitem(){ 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],"Find ");/*查询会员资料*/ strcpy(ml[1].str[2],"Delete ");/*删除会员资料*/ strcpy(ml[1].str[3],"Member&book "); ml[1].n=4; strcpy(ml[2].name,"Help");/*系统帮助*/ strcpy(ml[2].str[0],"This System "); strcpy(ml[2].str[1],"Ver "); ml[2].n=2;}/*显示主单名*/void DrawSelectitem(){ for(i=0;i<3;i++) RedText(i,1,ml[i].name); /*显示主菜单名,且首字母为红色*/}/*正常显示菜单*/void RedText(int x,int y,char *z){ textbackground(7); /*设置背景颜色为浅灰色*/ gotoxy(3+x*20,y); for(j=0;z[j];j++) { if(j==0) textcolor(RED);/*第一个字母显示红色*/ else textcolor(BLACK); /*设置黑色*/ cprintf("%c",z[j]); /*输出菜单名*/ }}/*显示选中菜单*/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;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("","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 bookname[20],membername[20]; int flag=0,mflag=0; ClrScr(); gotoxy(2,3); printf("Please input the mermber name: "); gets(membername); /*输入会员名*/ if((fp=fopen("","rb"))==NULL)/*没找到文件*/ { gotoxy(2,3); printf("Cannot open file!\n"); return; } else while(!feof(fp))/*查询会员资料*/ { fread(&consultmember,sizeof(Member),1,fp); if(strcmp()==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("","rb+"))==NULL)/*没找到文件*/ { gotoxy(2,3); printf("Cannot open file!\n"); return; } while(!feof(fp))/*查询图书资料*/ { fread(&consultbook,sizeof(Book),1,fp); if(strcmp()==0) { if()/*图书已经借出的判断*/ { gotoxy(2,3); printf("This book has borrowed!\n"); break; } else { ; /*作借出标志*/ strcpy();/*登记借书会员*/ 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 bookname[20]; int flag=0; ClrScr(); if((fp=fopen("","rb+"))==NULL)/*没找到文件*/ { gotoxy(2,3); printf("Can't open file!\n"); return; } printf("Please input the book name: "); gets(bookname); /*输入图书名*/ ClrScr(); while(!feof(fp))/*查询图书资料*/ { fread(&consultbook,sizeof(Book),1,fp); if(strcmp()==0) { if()/*图书已经借出的判断*/ { ;/*作图书未借书标志,表示已还书*/ strcpy(,""); 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("","rb"); if(fp==NULL)/*如果没会员就新建*/ fp=fopen("","wb"); else/*如果有会员就添加*/ { fclose(fp); fp=fopen("","ab");/*追加方式打开*/ } ClrScr(); gotoxy(2,3); printf("Please intput new member's name: ");/*逐个输入会员的资料*/ gets(); gotoxy(2,4); printf("Please input new member's sex: "); gets(); gotoxy(2,5); printf("Please input new member's age: "); scanf("%d%*c",&); fwrite(&consultmember,sizeof(Member),1,fp);/*写入记录*/ fclose(fp); ClrScr();}/*查询会员*/void MemberConsult(){ FILE *fp; Member consultmember; char membername[20]; int flag=0; ClrScr(); gotoxy(2,3); printf("Please input the member's name: ");/*输入要查询的会员名*/ gets(membername); fp=fopen("","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()==0)/*比较*/ { ClrScr(); gotoxy(2,3); printf("The member %s 's information as follow:",); gotoxy(2,4); printf("This member'sex is %s.",); gotoxy(2,5); printf("This member 's age is %d.",); flag=1; break; } } if(flag==0) { ClrScr(); gotoxy(2,3); printf("The member %s doesn't exist in the library!",membername); } fclose(fp);}/*删除会员资料*/void MemberDel(){ FILE *fp; Member *head,*p,*q; char membername[20]; fp=fopen("","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 member's 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("","wb");/*删除后重新保存*/ while(head!=NULL) { fwrite(head,sizeof(Member),1,fp);/*块写*/ head=head->next; } fclose(fp); ClrScr();} 字数超了。。。。留个邮箱吧

基于c语言的图书管理系统论文

我们也开始做课程设计了呢~~~ 这是我同学做的:#include #include #include struct BOOK { int id,usr[10],total,store,days[10]; char name[31],author[21]; }books[100]; /*上面是结构体的定义,用于存放书籍及借书的信息。*/ void page_title(char *menu_item) { clrscr(); printf(">>> 图 书 管 理 系 统 <<<\n\n- %s -\n\n",menu_item); } /*上面是打印页眉的函数,同时通过参数menu_item,可以显示当前的状态。*/ void return_confirm(void) { printf("\n按任意键返回……\n"); getch(); } /*上面是返回前请求确认的函数,以便在返回前观察结果*/ int search_book(void) { int n,i; printf("请输入图书序号:"); scanf("%d",&i); for(n=0;n<100;n++) { if(books[n].id==i) { printf("书名:%s\n",books[n].name); printf("作者:%s\n",books[n].author); printf("存数:%d of ",books[n].store); printf("%d\n",books[n].total); return n; } } printf("\n输入错误或无效图书序号.\n"); return -1; } /*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返 回数组下标,如果找不到相应记录则提示错误并返回-1。*/ void book_out(void) { int n,s,l,d; page_title("借阅图书"); if((n=search_book())!=-1&&books[n].store>0) { printf("请输入借书证序号:"); scanf("%d",&s); printf("请输入可借天数:"); scanf("%d",&d); for(l=0;l<10;l++) { if(books[n].usr[l]==0) { books[n].usr[l]=s; books[n].days[l]=d; break; } } books[n].store--; } if(n!=-1&&books[n].store==0) printf("此书已经全部借出.\n"); return_confirm(); } /*上面是借书的函数,首先调用找书函数*/ void book_in(void) { int n,s,l; page_title("归还图书"); if((n=search_book())!=-1&&books[n].store

通过测试!#include<>#include<>#include<>#include<>#define MAX 100struct Student{ int num;/*登录号*/ char name[100];/*书名*/ char author[100];/*作者名*/ char fn[100];/*分类号*/ char place[100];/*出版单位*/ char day[100];/*出版时间*/ float money;/*价格*/}stu[MAX];main()/*主函数*/{ void Input();/*输入*/ void Display();/*输出*/ void Find();/*查找*/ void Modify();/*删除*/ void Change();/*修改*/ int n; for(;;) { printf("\n"); printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("※ ※\n"); printf("※ 欢迎来到图书信息管理系统 ※\n"); printf("※ ※\n"); printf("※ ※\n"); printf("※ 主菜单 ※\n"); printf("※ ※\n"); printf("※ ▲1.图书信息录入 ▲ ※\n"); printf("※ ※\n"); printf("※ ▲2.图书信息浏览 ▲ ※\n"); printf("※ ※\n"); printf("※ ▲3.图书信息查询 ▲ ※\n"); printf("※ ※\n"); printf("※ ▲4.图书信息删除 ▲ ※\n"); printf("※ ※\n"); printf("※ ▲5.图书信息修改 ▲ ※\n"); printf("※ ※\n"); printf("※ ▲6.退出系统 ▲ ※\n"); printf("※ ※\n"); printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n"); printf("请输入选择项(1-6):"); scanf("%d",&n); printf("\n\n\n\n"); if(n>0&&n<7) { switch(n) { case 1:Input();break; case 2:Display();break; case 3:Find();break; case 4:Modify();break; case 5:Change();break; case 6:printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("※ ※\n"); printf("※ 谢谢使用! ※\n"); printf("※ 再见! ※\n"); printf("※ ※\n"); printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); exit(0); } } else { printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("※ ※\n"); printf("※ 输入错误! ※\n"); printf("※ 请退出! ※\n"); printf("※ ※\n"); printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); break; } }}void Find()/*查找*/{ FILE *fp; int i; int choose,t; char ans[100]; do { printf("1.按书名查找\n"); printf("2.按作者名查找\n"); printf("返回主菜单(其他数字)\n"); scanf("%d",&choose); if(choose==1) { printf("输入所查书名:\n"); scanf("%s",ans); t=-1; if(choose==1) { for(i=0;i

在图书馆管理中,图书管理系统是图书室的核心管理系统,是一个由人、计算机等组成的能进行管理信息收集、传递、加工、保存、维护和使用的系统。下面是我为大家整理的图书管理系统 毕业 论文,供大家参考。

浅谈图书馆管理系统

引言:校园图书馆自动化建设是国家 教育 信息化建设的一个重要组成部分。随着图书馆硬件设施的完善,对图书馆的管理水平和标准也越来越高。图书馆管理系统功能非常强大,系统操作简单灵活,易学易用,易于维护。适用于各高等院校的图书馆。

校园图书馆自动化建设是国家教育信息化建设的一个重要组成部分。随着图书馆硬件设施的完善,对图书馆的管理水平和标准也越来越高。传统手工管理对图书馆管理员而言,工作繁琐而艰巨,同时对读者借阅在时间和空间上也带来诸多不便,逐渐出现信息资源流通效率低、服务不够细致严密等问题。 如何才能更有效的发挥校园图书馆这个信息交换中心的应用效率。图书馆管理系统打破了传 统的图书管理模式,以系统性、实用性为原则,最大限度提高图书馆管理各个环节的自动化服务为目标 ,建立起了一套系统高效的数字自动化管理服务流程,极大的减轻了图书管理的工作量,有效的提高了 图书馆服务质量和效率。分层组件技术的应用,使每个功能和业务模块实现网络集成化的分配管理,顺应信息时代的发展,能够满足较大型用户的需要。

一、高校图书馆管理系统设计思路:

图书馆管理系统主要针对图书馆传统手工管理工作流程中图书编目、图书检索、图书流通和读者管理这四个主 要组成环节进行全面分析,从图书采验到馆后,图书馆管理员将图书详细信息(包括:ISBN号、正题名、 作者、出版社、价格等),编目录入到计算机,为减轻管理员传统繁复的手工分配工作,系统自动建立 书籍管理的财产号、唯一标识每本图书的识别条码和图书检索目录。对于图书检索,读者可以通过与图 书馆联网的 其它 任何一台计算机登陆访问馆藏目录,选择多种方式进行图书检索。

针对热门图书流通率 高以及一般中小学校学生课余支配时间有限的实际情况,提供网上馆际图书预借功能,管理员按预借表 目顺序提前为读者的借阅资料作合理调拨和准备,从而为学生提供更广的借阅时间和空间。为更加有效 的配合图书的流通管理工作,读者也可以通过这个查询终端对个人借阅时间、预借情况、图书催还、罚 款记录等借阅情况进行查看了解。同时建立一个详细的读者信息管理库,按读者不同类别设置不同服务 标准进行区分管理。系统综合每个环节提供关联统计,帮助管理员全面准确的了解这个庞大的信息资源 库的流通情况以及馆藏动态。科学准确的条码识别技术贯穿服务于整个图书信息录入、流通和读者借阅工作,减少了手工误差,提高了图书馆的服务质量和效率。

二、图书馆管理系统特点:

1.丰富的报表

图书馆管理系统提供丰富的报表(供有几十种报表),不仅可以打印出来,还可以导出到各种格式文件的文件,可以直接发布到校园网络上或提供给其他部门使用。可以说目前图书馆所需要的各种报表,系统都能提供。特别是根据学校用户要求开发的一些功能很受学校图书馆用户的欢迎,例如毕业班催还清单报表、图书借阅或读者排行榜、按工具书与教参等介质类型进行分类统计的报表、按藏书地点进行分类统计等一些非常实用的个性化报表。并且可以将报表导出到指定格式的文件中,以便进行数据交换或直接连接到校园网上。

2.图书远程编目

图书馆管理系统提供的客户端,并与编目系统完整的结合,不仅实现本地书目总库的查重,本地共享编目库的套录,也实现与INTERNET上其他编目中心数据库的连接,达到免费套录异地数据库中的编目数据,大大提高了图书编目速度,又节约了成本。

3.系统方便实用

图书馆管理系统是专为高等院校图书馆特殊群体量身设计的,系统界面友好,操作非常方便,只要培训半天,用户即能流畅自如地操作。实践证明,不管学校图书馆是否有专业的管理人员,都能够管理出一个专业的图书馆。

图书编目建库是图书馆中一个最重要,也是最花时间的工作,系统应该在考虑到编目数据的共享、远程数据套录的同时,在编目的操作中也考虑的非常细致,比如在编目时,在需要输入汉字的地方,系统将自动出现本用户习惯使用的汉字输入法,而减少编目人员的操作步骤,提高建库速度。

4.打印图书标签方便

图书标签的打印和粘贴是一件非常麻烦和费事的工作,图书馆管理系统的标签打印非常方便,不仅提供标签的批量打印、标签补打,并且提供按各种条件、顺序来选择打印,根据自身的标签规格来自定义打印方式。方便的打印标签方式为贴图书标签提供了便捷。

5.图书入库方便快捷

图书馆管理系统的图书入库非常方便快捷,在录入图书条形码时不指定其地点,加快图书编目的录入速度,在真正入库处才指定图书的入库地点,这也避免图书入库错误,导致图书所在库并不是先前指定的库,引起图书书库的混乱。系统提供了批量入库和单本图书的入库,可以快速的将每本图书入到指定的书库中。而清楚的图书入库清单报表,也提供管理员一个清楚的依据。

6.图书借还非常方便

图书馆管理系统的图书借还非常方便,借书、还书、续借、罚款等都在一个界面中,图书的借还根本不用考虑什么,只要使用条形码阅读器扫描图书条形码或借书证条形码即可,系统将自动进行“借”与“还”,不需要用户选择。对逾期还书的处理一般图书软件只提供罚款的处理方式。

7.借书证信息管理灵活方便

读者借书证的管理中,图书馆管理系统的对读者管理非常灵活,按入学年度分成不同的读者类型,这在读者批量注销(如毕业)时将操作非常方便快速。读者信息中也可以加入读者的相片,在借还图书时可以方便的检查借书的读者是否是其本人,防止借书证丢失后的损失。

8.数据完整、一致性好

图书馆管理系统软件均采用MsSql数据库,并在数据库表级对数据的完整性和一致性进行约束,保证数据库中数据的正确性和安全性。方便的数据库备份,防止运行环境的突然崩溃(如硬盘损坏、系统遭病毒破坏)而不至于影响数据库中的数据。

随着计算机技术的飞速发展,利用计算机来获得和处理信息是当今信息管理的一大特点。图书馆管理系统功能非常强大,系统操作简单灵活,易学易用,易于维护,适用于各高等院校的图书馆。它的系统化,规范化和自动化,能最大程度提高操作人员的办公效率。

试谈中小型图书馆的图书管理系统

摘要:随着计算机技术的不断发展,计算机已经深入到社会生活的各个角落。为了方便管理人员对图书馆书籍、读者资料、借还书等进行高效的管理,在工作人员具备一定的计算机操作能力的前提下,采用图书馆管理系统软件可以提高其管理效率。

关键词:图书馆管理;系统软件;管理效率

随着近年来信息技术及计算机 网络技术 的不断发展, 图书馆也先从传统的图书馆发展到自动化图书馆,再发展到今天的数字图书馆,这些变化使得图书馆的形象越来越现代化,人们查找资料也更加方便。对于一些小图书馆和一些图书室来说,由于工作人员比较少,长期以来,作为图书馆的主要工作―图书借阅一直未能很好地开展。在平常的图书借阅工作中, 由于大部分读者不熟悉图书馆藏书,且对图书排架分类的不了解,往往花费很长时间才能找到其所需的书。为提高管理效率,更好地为读者服务,利用已有的办公局域网络条件,将馆藏书籍做成基于WEB的查询系统,实现图书在一个单位的网络内甚至Internet上查询,可使图书查询和借阅变得更加方便快捷,从而使图书室的工作效率得到明显提高。

一、问题定义及系统背景

本系统是为了方便用户对图书的管理开发的。要求系统界面友好,使用简单,提供对图书信息、读者信息和图书流通情况的编辑、查询、统计报表等全面的数据管理功能,同时使用户能方便的进行图书的出借、返还等操作,并提供预约、续借,馆际互借等功能。此外系统还具有一定的安全性和可维护性。

三、系统功能分析

系统协助图书馆管理员实现各种日常事务的管理。系统维护数据库,保存图书和读者的资料以及图书流通情况的资料,便于管理员管理图书和读者的有关数据,还可根据需要随时进行数据的查询和统计并按所需格式和方式输出。利用这些数据,系统可协助管理员进行读者的图书出借、返还、预约和续借等操作,读者身份认证和借书权限认证等都可由系统承担,大大减轻了管理员的工作量。此外,对于系统本身的维护,系统具备一定的安全机制和信息备份机制,对用户分级管理,设置用户权限,保证 系统安全 性;提供数据库文件的备份功能,按用户要求备份,防止意外数据丢失影响系统工作。通过需求分析,系统应具备以下功能,具体描述如下:

(1)图书信息维护:主要完成图书馆新进图书的编号、登记、入馆等操作。

(2)读者信息维护:主要是完成读者信息的添加、修改和删除等操作,只有是系统中的合法读者才有资格进行图书的借阅活动。

(3)借书/还书处理:主要完成读者的借书和还书活动,记录读者借还书情况并及时反映图书的在库情况。

(4)读者借阅记录:让每位读者能及时了解自己的借书情况,包括曾经借阅记录以及未还书记录。

(5)图书书目检索:读者能够根据不同的信息(如书名、作者、关键词等)对图书馆的存书情况进行查找,以便快速的找到自己希望的图书。

(6)图书超期通知:为图书管理员提供一个统计信息,能够统计出到目前为止逾期未归还的图书及相应的读者信息。

三、可行性研究

在图书管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡,账户中存储借阅者的个人信息、借阅信息以及预定信息。持有借阅卡的介于这可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预订,但这些操作都是通过图书管理员进行的,也即借阅者不直接与系统交互,而是图书管理员充当借阅者的代理与系统交互。

1.系统设计目标

(1)对图书资源进行分类,发布到网上,以供读者阅读或查询。

(2)为读者提供图书检索功能,读者能方便地阅览电子图书,建立书签。

(3)图书馆管理员能对读者的用户名、密码及权限进行管理。

(4)图书馆管理员能够通过自己的用户名密码进行登录、查询、修改图书馆藏书信息并能对阅览者的信息进行浏览、添加、删除、修改操作。

(5)该系统还应能对借阅者的借书信息数据进行记录并计算自动计算借阅时间;根据软件设置,系统自动选择对于超时归还者的惩罚办法。

2.分析系统建设在各方面的可行性

系统的可行性研究可从技术、经济、操作、组织、社会5个方面进行。

(1)技术可行性由于网络的普遍应用,使的期刊管理业务非常的方便,无需再进行网络的建设。对数据库的支持好、开发难易度容易、使用简单的Windows平台、对组件的支持,采用编译之后执行的方式。SQLServer数据库和技术的有机结合,可以开发出实用、简便、高效的基于网络的期刊管理系统。因此技术上是可行的。

(2)经济可行性一方面,系统的开发不需要额外增加设备购置费、软件开发费、管理和维护费用。另一方面,系统的开发可以较好地解决图书馆因日常事务繁杂而造成的处理效率低,出错率偏高的局面,并可以及时了解各项日常事务的进展情况,为及时调整库存资料提供可靠的数据支持,从而明确工作目标,同时还可以减少人工劳动、提高工作效率、增加书本流通量。

(3)操作可行性计算机以强大的信息处理能力作为人类脑力劳动的有利助手登上历史舞台后,已渗透到社会生活的各个领域,使现代社会组织、特别是企业,学校的信息处理能力适应现代化管理的要求,且系统逐步从单项事务信息处理系统迅速向综合服务(决策支持系统)的管理信息系统发展。本系统使用界面良好,易于操作。图书馆拥有一批较高素质的员工,只需了解相关知识,就可熟练操作本系统了。

(4)组织可行性制定合理的项目实施进度计划、设计合理的组织机构、选择 经验 丰富的管理人员、建立良好的协作关系、制定合适的培训计划等,保证项目顺利执行。此系统的开发只需要编程技术纯熟的学生,配合熟悉的系统开发过程及熟悉图书管理流程的人即可完成,在学校符合这样要求的人挺多,可组成系统开发团队,所以在组织上市可行的。

(5)社会可行性此系统主要针对图书馆,而且是给图书管理员减负,促进图书馆图书有序、安全、高效管理的系统,对社会没有什么不良的影响。综上可得,图书管理系统的开发在技术、经济、操作、社会上都是可行的。

结语:

综上所述,开发中小型图书馆的图书管理软件已经很有必要,并且实现研究服务于实践的原则。从而在图书馆对新旧书的反应;对书籍借阅的管理能力;对读者和图书馆工作人员的管理能力;对图书馆管理人员软件操作的适应时间和操作感觉这些方面都将大大的提高的同时,获得显著的社会效益。

试谈图书管理系统安全稳定性

SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。Mysql可以说是目前最为流行的开源数据库管理系统软件,是一个真正的多用户、多线程SQL数据库服务器。Mysql开放源码,快捷灵活、稳定和容易使用等优点决定了其在中小型管理系统应用的优势。本文以基于Mysql网络数据库的图书管理系统为例,从安全稳定性要求和采取的安全策略等方面进行分析研究。

1Mysql在信息管理系统的应用与优势

的基本特性与应用

Mysql与其他大型数据库Oracle、DB2、SQLServer等相比,有自身的不足之处,但是没有影响到Mysql在信息管理系统的应用。在个人或者是中小型的企业,Mysql发挥了自身的优势与作用。Mysql开放源码,具有快捷灵活、稳定和容易使用等优点,并有效的提供了PHP、C,C++,JAVA和HTML等主流前端开发软件的API接口。支持多种 操作系统 包括Windows、Linux、Solaris、MasOS等。目前,搭建动态网站或者服务器的开源软件组合有典型的网络架构LAMP,极大地方便了开发者。Mysql应用非常广泛,Google、facebook、等使用Mysql作为网络数据库。

应用于图书管理系统的优势

Mysql应用于图书管理系统的优势主要分为三个方面,一是免费开源优势,如果再使用linux操作系统,可以减少购买操作系统和数据库的开销。二是多种平台支持的优势,Mysql可以与多个平台进行有效的连接,实现信息资源的共享。三是中小型数据库灵活稳定的优势,在设计Mysql程序的时候,加入了SQL中没有的一些补充条件,更加的适用于在中小型数据库中使用。图书管理系统通常要保存用户信息、图书信息和借阅信息,以及建立相关的书籍查询等,数据仓库并不是很庞大,因此,使用Mysql来管理数据非常合适。

2基于Mysql的图书管理系统安全稳定性分析

高校图书管理系统是基于互联网的网络数据库,通常采用B/S的体系结构,因此,在浏览器层、Web服务器层、数据库服务器层都会存在安全性要求,以及在操作系统、网络技术等方面的安全问题。只有控制好图书管理系统的安全问题,才能保证信息资源的有效共享。基于网络数据库的图书管理系统的安全稳定性具有以下几个特点:(1)较高的稳定性,包括操作系统的稳定性和数据库系统的稳定性,要保持Mysql数据库的正常运行轨迹。(2)数据的保密性能,对客户信息、访问浏览量、客户端等进行有效的保密。(3)运行的速度很快,包括浏览器端、数据库服务器端的访问速度,以保证数据信息在查找、修改等方面的快速反应。(4)数据的备份与数据的恢复功能。数据库服务器中,包括图书信息、借阅图书记录、客户账号等在内的相关数据的安全问题,是保证图书管理系统正常运转的重要因素。要采取严格的防范 措施 ,同时,当发生数据故障的时候,要在最短的时间内恢复数据与系统。

3基于Mysql的图书管理系统安全稳定性策略

图书管理系统通常采用三层B/S结构模式,即用户层、Wed服务器层和数据库层。图书管理系统要注意提高数据库安全、操作系统安全和网络安全技术等方面的安全策略。

优化数据库设计

比如,在遵循关系模式规范化的基础上,优化表设计适当增加中间表或增加冗余字段以减少连接查询所花的时间,优化JOIN操作和子查询尽量使用全连接避免产生中间表,尽量避免LIKE关键字和通配符进行查询。另外,还可以修改文件,对相关参数如sort_buffer_size、read_buffer_size、query_cache_size、max_connections等,设置合适的缓冲区大小和MySQL允许的最大连接进程数,以优化服务器提高系统性能,提高保证图书信息资源查询效率。

数据容灾与备份机制

要定期地进行数据备份,保护图书书目数据、流通数据、客户信息等。定期的进行数据库的重组工作,增强数据库的使用性能。用好MYSQL的容灾与备份机制,比如:建立主从数据库集群,采用MySQL复制;制定数据库备份/恢复计划;启动数据库服务器的二进制变更日志;定期检查数据表;定期对备份文件进行备份;把MySQL的数据目录和备份文件分别放到两个不同的驱动器中,等等。

帐户安全策略

可以从账户安全检查、系统内部安全措施、哈希加密等方面着手进行。比如,检查用户表是否有匿名空账号(user=‘’),如有应将其删除。使用哈希加密帐户密码。加强客户的登录认证,尤其是服务器主机的登录认证。在主数据库创建从数据库操作所用的用户,并指定使用SLL认证等等。

网络安全和操作系统安全策略

在网络安全策略方面,利用NAT技术,有效的防止发生来自网络外部的攻击现象,将局域网络内部的计算机系统进行隐蔽。正确设置计算机操作系统,确保客户使用真实身份,登录具有合法性。此外,还可以设置系统的实时监控,优化网络防火墙、文件加密以及杀毒软件技术的升级,等等。

4结语

综上所述,要确保基于Mysql在图书馆管理系统的安全稳定性能,要考虑很多种因素的影响,在数据库设计、数据库服务器、数据容灾与备份、帐户安全,以及计算机网络、操作系统等方面进行优化配置。图书管理系统的安全与稳定性能保证了信息数据的安全、稳定性与高效,保证了客户在不同的时间、地点、平台中有效的使用图书馆的资源信息共享。

参考文献:

[1]晋征.论基于网络数据库的图书馆管理系统安全性研究与实现[J].网络安全技术与应用,2015(3):27-29.

[2]阳学军.基于网络和人工智能的图书馆信息管理系统研究[J].岳阳职业技术学院学报,2005(3):59-61.

[3]林爱鲜.基于神经网络的图书馆管理系统的构建研究[J].电脑与电信,2012(4):48-50.

[4]田华.图书馆分布式数据库安全技术研究[J].现代情报,2007(4):161-163

图书管理c语言毕业论文

计算机专业图书馆图书管理系统毕业论文的建议:1.计算机毕业设计可不能马虎,最好还是自己动动脑筋,好好的写一写。 2.网上那种免费的毕业设计千万不能采用,要么是论文不完整,要么是程序运行不了,最重要的是到处都是,老师随时都可以知道你是在网上随便下载的一套3.如果没有时间写,可以在网上找找付费的,我们毕业的时候也是为这个头疼了很长时间,最后在网上找了很久,终于购买了一套毕业设计,还算不错,开题报告+论文+程序+答辩演示都有,主要的都是他们技术做好的成品,保证论文的完整和程序的独立运行,可以先看了作品满意以后再付款,而且同一学校不重复,不存在欺的性质,那个网站的名字我记的不是太清楚了,你可以在百度或者GOOGLE上搜索------七七计算机毕业设计,希望您可以找到

前言近年来,随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对这庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。图书管理工作面对大量的可模块化处理的信息,是当今信息革命的一个重要阵地。我们小组开发图书管理信息系统就是采用现代化的信息管理方式代替手工管理方式,提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。本系统——图书管理系统,利用Visual Basic作为前端的应用开发工具,Access作为后台的数据库,采用客户端/服务器的模型构建,结构健壮灵活,在数据处理、人机界面、数据通信、系统维护管理等方面具有功能全面、实用;界面丰富生动,美观友好,实用维护简单;权限管理完善,安全性高等特点。实现了管理员、图书、读者的信息维护,图书采购、借书、还书的管理,图书库存信息、读者信息的查询和各种书籍借阅浏览等功能。1 概述 开发目的图书管理系统是图书馆管理工作中不可缺少的部分,它的内容对于图书馆的管理者和使用者来说都至关重要,所以图书管理系统应该能够为管理者或读者提供充足的信息和快捷的数据处理手段。但一直以来人们使用传统人工的方式进行图书管理和借阅管理,这种管理方式存在着许多缺点,如:效率低、易忘记、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情。也是势在必行的。它有以下几个好处:(1)可使图书管理工作安全高效;(2)克服了人工管理中的许多困难,提高了速度,节省了大量时间;(3)可快速查询有关图书的各种所需信息;(4)只需一到两名管理人员即可操作系统,节省了大量的人力;(5)软件系统可根据不同的需要随时进行升级,从而延长了软件的使用寿命;(6)数据库具有存储量大,保密性好、运行成本低等特点。 设计定义本系统是一套既实用、操作简单、功能齐全、便于管理的图书管理软件。采用了c/s模型架构,分成数据访问层、业务规则表示层这二层。其中前端表示层包括基础数据管理、业务信息管理、查询管理等功能。为了能结构化的管理和实施系统的开发,采用软件工程的方法来设计软件,其基本思想是:用系统的思想和系统工程的方法,结构化,模块化地自上而下的对生命周期进行分析和设计。我们可以将整个系统开始过程分为以下4个一次连接的阶段:(1) 系统规划阶段(2) 系统开发阶段(3) 系统运行维护阶段(4) 系统更新阶段这四个阶段共同构成了系统开发的生命周期。系统规划是图书管理系统的起始阶段。这一阶段的主要任务是:明确用户对管理系统的需求,以制定图书管理的设计总计划。包括对图书管理系统的规划、需求分析和资源分配三个主要阶段。系统开发是图书管理系统建设的一个最重要的阶段。系统开发的生命周期一般分为以下三个阶段:系统分析、系统设计和系统实施。系统运行与维护阶段又是整个生命周期中历时最久的阶段,也是图书管理系统实现其功能,获得效益的阶段。而系统更新阶段是新旧系统并存的时期。 开发工具简介

#include<> #include<> #include<> #include<> #include<> #define STACK_INIT_SIZE 10 #define OK 1 #define TRUE 1 #define FALSE 0 #define ERROR 0struct student /*定义学生类型,用于存放借出的书籍*/ { int carnum; char lendbook[10]; }student[1000];struct employ /*定义职工类型*/ { int employnum; char employname[15]; int employage; char employsex[2]; char employleve[10]; long int employtage; }employ[50];struct book /*定义书的类型*/ { int booknum; char bookname[10]; char bookcreat[10]; int turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/ }book[1000];struct car /*借书卡的数据类型*/ { int carnum; char studentname[10]; int studentclass; }car[100];huanbook() /*还书函数*/ { FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/ int i,n; int carnum; char lendbook[10]; printf("请你输入你的卡号\n"); scanf("%d",&carnum); fp=fopen("","r"); /*读取卡号记录*/ for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) /*for循环判断卡号是否存在*/ { if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/ { n=i; fclose(fp); printf("请输入你要还的书的名字\n"); scanf("%s",lendbook); fp=fopen("","r"); for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*判断是否借阅了输入的书*/ { if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/ { fclose(fp); fp=fopen("","r"); fp2=fopen("","w"); for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) { if(strcmp(student[i].lendbook,lendbook)==0) { continue; /*删除还掉的书的借书记录*/ } fwrite(&student[i],sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/ } fclose(fp); fclose(fp2); fp=fopen("","w"); fp2=fopen("","r"); for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++) { fwrite(&student[i],sizeof(struct student),1,fp); /*将借书记录信息写回*/ } fclose(fp); fclose(fp2); fopen("","w"); /*清临时文件的记录*/ fclose(fp2); fp=fopen("","r"); fp2=fopen("","w"); for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/ { if(i==n) { book[i].turefalse=1; fwrite(&book[i],sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/ continue; } fwrite(&book[i],sizeof(struct book),1,fp2); } fclose(fp); fclose(fp2); fp=fopen("","w"); fp2=fopen("","r"); for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++) { fwrite(&book[i],sizeof(struct book),1,fp); /*将临时文件写回*/ } fclose(fp); fclose(fp2); fopen("","w"); /*清临时文件*/ fclose(fp2); printf("还书完毕,按任意键返回\n"); getch(); return 1; } } printf("你没有借这样的书,任意键返回\n"); /*出错提示*/ fclose(fp); getch(); return 0; } } printf("系统没这样的卡,和管理员联系,按任意键返回\n"); /*出错提示*/ fclose(fp); getch(); }findbook(){ FILE *fp; char bookname[10]; int ture,i; fp=fopen("","r"); printf("请输入你要查找的书名\n"); scanf("%s",bookname); for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) { if(strcmp(bookname,book[i].bookname)==0) { if(book[i].turefalse==1) { printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat); } else {printf("这本书已经有人借出\n");fclose(fp);return 0;} fclose(fp); return FALSE; } } printf("没有你要查询的书籍\n"); fclose(fp); return FALSE; }findbook1(){ FILE *fp; char bookcreat[10]; int ture,i; fp=fopen("","r"); printf("请输入你要查找的作者名\n"); scanf("%s",bookcreat); for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) { if(strcmp(bookcreat,book[i].bookcreat)==0) { if(book[i].turefalse==1) { printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat); } else {printf("这本书已经有人借出\n");fclose(fp);return 0;} fclose(fp); return FALSE; } } printf("没有你要查询的书籍\n"); fclose(fp); return FALSE; }lendcount() { FILE *fp; int i,n=0; fp=fopen("","r"); for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) { printf("卡号:%d 借出的书籍:%s \n",student[i].carnum,student[i].lendbook); n=n+1; } fclose(fp); printf("目前共有%d本书借出\n",n); printf("按任意键\n"); getch();return n; }chabook() { char ch5; do { printf("---------------欢迎进入图书查询系统!--------------\n"); printf(" 1:<按书名查找>\n"); printf(" 2:<按作者查找>\n"); printf(" 0:<返回>\n"); printf("请输入0--2,其他输入非法!\n"); scanf("%s",&ch5); switch(ch5) { case '1':findbook();getch();break; case '2':findbook1();getch();break; case '0':break; default:printf("无此操作\n");getch();break; } }while(ch5!='0');return FALSE; }lendbook() { FILE *fp,*fp2; int i,n; int carnum; printf("请你输入你的卡号\n"); scanf("%d",&carnum); fp=fopen("","r"); for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) { if(car[i].carnum==carnum) { n=i; fclose(fp); printf("请输入你要借阅的书的名字\n"); scanf("%s",student[n].lendbook); fp=fopen("","r"); for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) { if(strcmp(book[i].bookname,student[n].lendbook)==0) { if(book[i].turefalse==0) {printf("对不起,此书有人借出,请借其他书\n");fclose(fp);getch();return;} else fclose(fp); fp=fopen("","a+"); student[n].carnum=carnum; fwrite(&student[n],sizeof(struct student),1,fp); fclose(fp); fp=fopen("","r"); fp2=fopen("","w"); for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) { if(strcmp(book[i].bookname,student[n].lendbook)==0) { book[i].turefalse=0; fwrite(&book[i],sizeof(struct book),1,fp2); continue; } fwrite(&book[i],sizeof(struct book),1,fp2); } fclose(fp); fclose(fp2); fp=fopen("","w"); fp2=fopen("","r"); for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++) { fwrite(&book[i],sizeof(struct book),1,fp); } fclose(fp); fclose(fp2); fopen("","w"); fclose(fp2); printf("借书完毕,按任意键返回\n"); getch(); return; } } printf("不存在这样的书,任意键返回\n"); fclose(fp); getch(); return; } } printf("你的卡号不存在,请申请新卡,按任意键返回\n"); fclose(fp); getch(); }carcount() { FILE *fp; int i,n=0; fp=fopen("","r"); for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) { printf("第%d张卡<卡号:%d 姓名:%s 班级:%d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass); n=n+1; } fclose(fp); printf("目前共有%d本书\n",n); printf("按任意键\n"); getch(); }delcar() { FILE *fp,*fp2; int i; int carnum; char choice; fp=fopen("","r"); fp2=fopen("","w"); printf("请输入你要删除的卡号\n"); printf("如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动\n"); scanf("%d",&carnum); for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) { if(car[i].carnum!=carnum) { fwrite(&car[i],sizeof(struct car),1,fp2); } } fclose(fp); fclose(fp2); printf("是否真的要删除该卡?删除后该书籍的所有信息将无法恢复《Y/N》\n"); scanf("%s",&choice); if(choice=='y'||choice=='Y') { fp=fopen("","w"); fp2=fopen("","r"); for(i=0;fread(&car[i],sizeof(struct car),1,fp2)!=0;i++) { fwrite(&car[i],sizeof(struct car),1,fp); } fclose(fp); fclose(fp2); fp2=fopen("","w"); fclose(fp2); printf("按任意键返回\n"); getch(); return; } else { printf("按任意键返回\n"); getch(); return; } }addcar() { FILE *fp; int i=0; fp=fopen("","a+"); printf("请你输入卡号\n"); scanf("%d",&car[i].carnum); printf("请你输入学生姓名\n"); scanf("%s",car[i].studentname); printf("请你输入班级\n"); scanf("%d",&car[i].studentclass); fwrite(&car[i],sizeof(struct car),1,fp); fclose(fp); printf("输入完毕,任意键返回\n"); getch();

毕业论文c语言学籍管理系统

#include "" #include "" #include "" int shoudsave=0; /* */ struct student { char num[10];/* 学号 */ char name[20]; char sex[4]; char yuan; int ban; char neartime[10];/* 最近更新时间 */ }; typedef struct node { struct student data; struct node *next; }Node,*Link; void menu() { printf("********************************************************************************"); printf("\t1登记学生资料\t\t\t\t\t2删除学生资料\n"); printf("\t3查询学生资料\t\t\t\t\t4修改学生资料\n"); printf("\t5保存学生资料\t\t\t\t\t0退出系统\n"); printf("********************************************************************************\n"); } void printstart() { printf("-----------------------------------------------------------------------\n"); } void Wrong() { printf("\n=====>提示:输入错误!\n"); } void Nofind() { printf("\n=====>提示:没有找到该学生!\n"); } void printc() /* 本函数用于输出中文 */ { printf("学号\t 姓名 性别 学院 班级\n"); } void printe(Node *p)/* 本函数用于输出英文 */ { printf("%-12s%s\t%s\t%c\t%d\n",p->>>>>); } Node* Locate(Link l,char findmess[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */ { Node *r; if(strcmp(nameornum,"num")==0) /* 按学号查询 */ { r=l->next; while(r!=NULL) { if(strcmp(r->)==0) return r; r=r->next; } } else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */ { r=l->next; while(r!=NULL) { if(strcmp(r->)==0) return r; r=r->next; } } return 0; } void Add(Link l) /* 增加学生 */ { Node *p,*r,*s; char num[10]; r=l; s=l->next; while(r->next!=NULL) r=r->next; /* 将指针置于最末尾 */ while(1) { printf("请你输入学号(以'0'返回上一级菜单:)"); scanf("%s",num); if(strcmp(num,"0")==0) break; while(s) { if(strcmp(s->)==0) { printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num); printstart(); printc(); printe(s); printstart(); printf("\n"); return; } s=s->next; } p=(Node *)malloc(sizeof(Node)); strcpy(p->); printf("请你输入姓名:"); scanf("%s",p->); getchar(); printf("请你输入性别:"); scanf("%s",p->); getchar(); printf("请你输入学院:"); scanf("%c",&p->); getchar(); printf("请你输入班级:"); scanf("%d",&p->); getchar(); /* 信息输入已经完成 */ p->next=NULL; r->next=p; r=p; shoudsave=1; } } void Qur(Link l) /* 查询学生 */ { int sel; char findmess[20]; Node *p; if(!l->next) { printf("\n=====>提示:没有资料可以查询!\n"); return; } printf("\n=====>1按学号查找\n=====>2按姓名查找\n"); scanf("%d",&sel); if(sel==1)/* 学号 */ { printf("请你输入要查找的学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { printf("\t\t\t\t查找结果\n"); printstart(); printc(); printe(p); printstart(); } else Nofind(); } else if(sel==2) /* 姓名 */ { printf("请你输入要查找的姓名:"); scanf("%s",findmess); p=Locate(l,findmess,"name"); if(p) { printf("\t\t\t\t查找结果\n"); printstart(); printc(); printe(p); printstart(); } else Nofind(); } else Wrong(); } void Del(Link l) /* 删除 */ { int sel; Node *p,*r; char findmess[20]; if(!l->next) { printf("\n=====>提示:没有资料可以删除!\n"); return; } printf("\n=====>1按学号删除\n=====>2按姓名删除\n"); scanf("%d",&sel); if(sel==1) { printf("请你输入要删除的学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); printf("\n=====>提示:该学生已经成功删除!\n"); shoudsave=1; } else Nofind(); } else if(sel==2) { printf("请你输入要删除的姓名:"); scanf("%s",findmess); p=Locate(l,findmess,"name"); if(p) { r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); printf("\n=====>提示:该学生已经成功删除!\n"); shoudsave=1; } else Nofind(); } else Wrong(); } void Modify(Link l) { Node *p; char findmess[20]; if(!l->next) { printf("\n=====>提示:没有资料可以修改!\n"); return; } printf("请你输入要修改的学生学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { printf("请你输入新学号(原来是%s):",p->); scanf("%s",p->); printf("请你输入新姓名(原来是%s):",p->); scanf("%s",p->); getchar(); printf("请你输入新性别(原来是%s):",p->); scanf("%s",p->); printf("请你输入新的学院:",p->); scanf("%c",&p->); getchar(); printf("请你输入新的班级(原来是%d):",p->); scanf("%d",&p->); getchar(); printf("\n=====>提示:资料修改成功!\n"); shoudsave=1; } else Nofind(); } void Save(Link l) { FILE* fp; Node *p; int flag=1,count=0; fp=fopen("c:\\student","wb"); if(fp==NULL) { printf("\n=====>提示:重新打开文件时发生错误!\n"); exit(1); } p=l->next; while(p) { if(fwrite(p,sizeof(Node),1,fp)==1) { p=p->next; count++; } else { flag=0; break; } } if(flag) { printf("\n=====>提示:文件保存成功.(有%d条记录已经保存.)\n",count); shoudsave=0; } fclose(fp); } void main() { Link l;/* 连表 */ FILE *fp; /* 文件指针 */ int sel; char ch; char jian; int count=0; Node *p,*r; printf("\t\t\t\t学生成绩管理系统\n\t\t\t\t-------建筑电气及智能化0801\n"); l=(Node*)malloc(sizeof(Node)); l->next=NULL; r=l; fp=fopen("C:\\student","rb"); if(fp==NULL) { printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n"); scanf("%c",&jian); if(jian=='y'||jian=='Y') fp=fopen("C:\\student","wb"); else exit(0); } printf("\n=====>提示:文件已经打开,正在导入记录......\n"); while(!feof(fp)) { p=(Node*)malloc(sizeof(Node)); if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中 */ { p->next=NULL; r->next=p; r=p; /* 将该接点挂入连中 */ count++; } } fclose(fp); /* 关闭文件 */ printf("\n=====>提示:记录导入完毕,共导入%d条记录.\n",count); while(1) { menu(); printf("请你选择操作:"); scanf("%d",&sel); if(sel==0) { if(shoudsave==1) { getchar(); printf("\n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?\n"); scanf("%c",&ch); if(ch=='y'||ch=='Y') Save(l); } printf("\n=====>提示:你已经退出系统,再见!\n"); break; } switch(sel) { case 1:Add(l);break; /* 增加学生 */ case 2:Del(l);break;/* 删除学生 */ case 3:Qur(l);break;/* 查询学生 */ case 4:Modify(l);break;/* 修改学生 */ case 5:Save(l);break;/* 保存学生 */ case 9:printf("\t\t\t==========帮助信息==========\n");break; default: Wrong();getchar();break; } } }

除非有现成的,没人会为了20分给你写半天

这个基本满足你要求吧,你自己看看

楼主,这基本相当于一个相当专业的软件设计,其中可能花费的时间不少于1周,请问谁会花这么多的时间就为了20,这是不可取的,另外你的程序你应该说,存储方式使用数据库。

ssm图书管理系统论文

在图书馆管理中,图书管理系统是图书室的核心管理系统,是一个由人、计算机等组成的能进行管理信息收集、传递、加工、保存、维护和使用的系统。下面是我为大家整理的图书管理系统 毕业 论文,供大家参考。

浅谈图书馆管理系统

引言:校园图书馆自动化建设是国家 教育 信息化建设的一个重要组成部分。随着图书馆硬件设施的完善,对图书馆的管理水平和标准也越来越高。图书馆管理系统功能非常强大,系统操作简单灵活,易学易用,易于维护。适用于各高等院校的图书馆。

校园图书馆自动化建设是国家教育信息化建设的一个重要组成部分。随着图书馆硬件设施的完善,对图书馆的管理水平和标准也越来越高。传统手工管理对图书馆管理员而言,工作繁琐而艰巨,同时对读者借阅在时间和空间上也带来诸多不便,逐渐出现信息资源流通效率低、服务不够细致严密等问题。 如何才能更有效的发挥校园图书馆这个信息交换中心的应用效率。图书馆管理系统打破了传 统的图书管理模式,以系统性、实用性为原则,最大限度提高图书馆管理各个环节的自动化服务为目标 ,建立起了一套系统高效的数字自动化管理服务流程,极大的减轻了图书管理的工作量,有效的提高了 图书馆服务质量和效率。分层组件技术的应用,使每个功能和业务模块实现网络集成化的分配管理,顺应信息时代的发展,能够满足较大型用户的需要。

一、高校图书馆管理系统设计思路:

图书馆管理系统主要针对图书馆传统手工管理工作流程中图书编目、图书检索、图书流通和读者管理这四个主 要组成环节进行全面分析,从图书采验到馆后,图书馆管理员将图书详细信息(包括:ISBN号、正题名、 作者、出版社、价格等),编目录入到计算机,为减轻管理员传统繁复的手工分配工作,系统自动建立 书籍管理的财产号、唯一标识每本图书的识别条码和图书检索目录。对于图书检索,读者可以通过与图 书馆联网的 其它 任何一台计算机登陆访问馆藏目录,选择多种方式进行图书检索。

针对热门图书流通率 高以及一般中小学校学生课余支配时间有限的实际情况,提供网上馆际图书预借功能,管理员按预借表 目顺序提前为读者的借阅资料作合理调拨和准备,从而为学生提供更广的借阅时间和空间。为更加有效 的配合图书的流通管理工作,读者也可以通过这个查询终端对个人借阅时间、预借情况、图书催还、罚 款记录等借阅情况进行查看了解。同时建立一个详细的读者信息管理库,按读者不同类别设置不同服务 标准进行区分管理。系统综合每个环节提供关联统计,帮助管理员全面准确的了解这个庞大的信息资源 库的流通情况以及馆藏动态。科学准确的条码识别技术贯穿服务于整个图书信息录入、流通和读者借阅工作,减少了手工误差,提高了图书馆的服务质量和效率。

二、图书馆管理系统特点:

1.丰富的报表

图书馆管理系统提供丰富的报表(供有几十种报表),不仅可以打印出来,还可以导出到各种格式文件的文件,可以直接发布到校园网络上或提供给其他部门使用。可以说目前图书馆所需要的各种报表,系统都能提供。特别是根据学校用户要求开发的一些功能很受学校图书馆用户的欢迎,例如毕业班催还清单报表、图书借阅或读者排行榜、按工具书与教参等介质类型进行分类统计的报表、按藏书地点进行分类统计等一些非常实用的个性化报表。并且可以将报表导出到指定格式的文件中,以便进行数据交换或直接连接到校园网上。

2.图书远程编目

图书馆管理系统提供的客户端,并与编目系统完整的结合,不仅实现本地书目总库的查重,本地共享编目库的套录,也实现与INTERNET上其他编目中心数据库的连接,达到免费套录异地数据库中的编目数据,大大提高了图书编目速度,又节约了成本。

3.系统方便实用

图书馆管理系统是专为高等院校图书馆特殊群体量身设计的,系统界面友好,操作非常方便,只要培训半天,用户即能流畅自如地操作。实践证明,不管学校图书馆是否有专业的管理人员,都能够管理出一个专业的图书馆。

图书编目建库是图书馆中一个最重要,也是最花时间的工作,系统应该在考虑到编目数据的共享、远程数据套录的同时,在编目的操作中也考虑的非常细致,比如在编目时,在需要输入汉字的地方,系统将自动出现本用户习惯使用的汉字输入法,而减少编目人员的操作步骤,提高建库速度。

4.打印图书标签方便

图书标签的打印和粘贴是一件非常麻烦和费事的工作,图书馆管理系统的标签打印非常方便,不仅提供标签的批量打印、标签补打,并且提供按各种条件、顺序来选择打印,根据自身的标签规格来自定义打印方式。方便的打印标签方式为贴图书标签提供了便捷。

5.图书入库方便快捷

图书馆管理系统的图书入库非常方便快捷,在录入图书条形码时不指定其地点,加快图书编目的录入速度,在真正入库处才指定图书的入库地点,这也避免图书入库错误,导致图书所在库并不是先前指定的库,引起图书书库的混乱。系统提供了批量入库和单本图书的入库,可以快速的将每本图书入到指定的书库中。而清楚的图书入库清单报表,也提供管理员一个清楚的依据。

6.图书借还非常方便

图书馆管理系统的图书借还非常方便,借书、还书、续借、罚款等都在一个界面中,图书的借还根本不用考虑什么,只要使用条形码阅读器扫描图书条形码或借书证条形码即可,系统将自动进行“借”与“还”,不需要用户选择。对逾期还书的处理一般图书软件只提供罚款的处理方式。

7.借书证信息管理灵活方便

读者借书证的管理中,图书馆管理系统的对读者管理非常灵活,按入学年度分成不同的读者类型,这在读者批量注销(如毕业)时将操作非常方便快速。读者信息中也可以加入读者的相片,在借还图书时可以方便的检查借书的读者是否是其本人,防止借书证丢失后的损失。

8.数据完整、一致性好

图书馆管理系统软件均采用MsSql数据库,并在数据库表级对数据的完整性和一致性进行约束,保证数据库中数据的正确性和安全性。方便的数据库备份,防止运行环境的突然崩溃(如硬盘损坏、系统遭病毒破坏)而不至于影响数据库中的数据。

随着计算机技术的飞速发展,利用计算机来获得和处理信息是当今信息管理的一大特点。图书馆管理系统功能非常强大,系统操作简单灵活,易学易用,易于维护,适用于各高等院校的图书馆。它的系统化,规范化和自动化,能最大程度提高操作人员的办公效率。

试谈中小型图书馆的图书管理系统

摘要:随着计算机技术的不断发展,计算机已经深入到社会生活的各个角落。为了方便管理人员对图书馆书籍、读者资料、借还书等进行高效的管理,在工作人员具备一定的计算机操作能力的前提下,采用图书馆管理系统软件可以提高其管理效率。

关键词:图书馆管理;系统软件;管理效率

随着近年来信息技术及计算机 网络技术 的不断发展, 图书馆也先从传统的图书馆发展到自动化图书馆,再发展到今天的数字图书馆,这些变化使得图书馆的形象越来越现代化,人们查找资料也更加方便。对于一些小图书馆和一些图书室来说,由于工作人员比较少,长期以来,作为图书馆的主要工作―图书借阅一直未能很好地开展。在平常的图书借阅工作中, 由于大部分读者不熟悉图书馆藏书,且对图书排架分类的不了解,往往花费很长时间才能找到其所需的书。为提高管理效率,更好地为读者服务,利用已有的办公局域网络条件,将馆藏书籍做成基于WEB的查询系统,实现图书在一个单位的网络内甚至Internet上查询,可使图书查询和借阅变得更加方便快捷,从而使图书室的工作效率得到明显提高。

一、问题定义及系统背景

本系统是为了方便用户对图书的管理开发的。要求系统界面友好,使用简单,提供对图书信息、读者信息和图书流通情况的编辑、查询、统计报表等全面的数据管理功能,同时使用户能方便的进行图书的出借、返还等操作,并提供预约、续借,馆际互借等功能。此外系统还具有一定的安全性和可维护性。

三、系统功能分析

系统协助图书馆管理员实现各种日常事务的管理。系统维护数据库,保存图书和读者的资料以及图书流通情况的资料,便于管理员管理图书和读者的有关数据,还可根据需要随时进行数据的查询和统计并按所需格式和方式输出。利用这些数据,系统可协助管理员进行读者的图书出借、返还、预约和续借等操作,读者身份认证和借书权限认证等都可由系统承担,大大减轻了管理员的工作量。此外,对于系统本身的维护,系统具备一定的安全机制和信息备份机制,对用户分级管理,设置用户权限,保证 系统安全 性;提供数据库文件的备份功能,按用户要求备份,防止意外数据丢失影响系统工作。通过需求分析,系统应具备以下功能,具体描述如下:

(1)图书信息维护:主要完成图书馆新进图书的编号、登记、入馆等操作。

(2)读者信息维护:主要是完成读者信息的添加、修改和删除等操作,只有是系统中的合法读者才有资格进行图书的借阅活动。

(3)借书/还书处理:主要完成读者的借书和还书活动,记录读者借还书情况并及时反映图书的在库情况。

(4)读者借阅记录:让每位读者能及时了解自己的借书情况,包括曾经借阅记录以及未还书记录。

(5)图书书目检索:读者能够根据不同的信息(如书名、作者、关键词等)对图书馆的存书情况进行查找,以便快速的找到自己希望的图书。

(6)图书超期通知:为图书管理员提供一个统计信息,能够统计出到目前为止逾期未归还的图书及相应的读者信息。

三、可行性研究

在图书管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡,账户中存储借阅者的个人信息、借阅信息以及预定信息。持有借阅卡的介于这可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预订,但这些操作都是通过图书管理员进行的,也即借阅者不直接与系统交互,而是图书管理员充当借阅者的代理与系统交互。

1.系统设计目标

(1)对图书资源进行分类,发布到网上,以供读者阅读或查询。

(2)为读者提供图书检索功能,读者能方便地阅览电子图书,建立书签。

(3)图书馆管理员能对读者的用户名、密码及权限进行管理。

(4)图书馆管理员能够通过自己的用户名密码进行登录、查询、修改图书馆藏书信息并能对阅览者的信息进行浏览、添加、删除、修改操作。

(5)该系统还应能对借阅者的借书信息数据进行记录并计算自动计算借阅时间;根据软件设置,系统自动选择对于超时归还者的惩罚办法。

2.分析系统建设在各方面的可行性

系统的可行性研究可从技术、经济、操作、组织、社会5个方面进行。

(1)技术可行性由于网络的普遍应用,使的期刊管理业务非常的方便,无需再进行网络的建设。对数据库的支持好、开发难易度容易、使用简单的Windows平台、对组件的支持,采用编译之后执行的方式。SQLServer数据库和技术的有机结合,可以开发出实用、简便、高效的基于网络的期刊管理系统。因此技术上是可行的。

(2)经济可行性一方面,系统的开发不需要额外增加设备购置费、软件开发费、管理和维护费用。另一方面,系统的开发可以较好地解决图书馆因日常事务繁杂而造成的处理效率低,出错率偏高的局面,并可以及时了解各项日常事务的进展情况,为及时调整库存资料提供可靠的数据支持,从而明确工作目标,同时还可以减少人工劳动、提高工作效率、增加书本流通量。

(3)操作可行性计算机以强大的信息处理能力作为人类脑力劳动的有利助手登上历史舞台后,已渗透到社会生活的各个领域,使现代社会组织、特别是企业,学校的信息处理能力适应现代化管理的要求,且系统逐步从单项事务信息处理系统迅速向综合服务(决策支持系统)的管理信息系统发展。本系统使用界面良好,易于操作。图书馆拥有一批较高素质的员工,只需了解相关知识,就可熟练操作本系统了。

(4)组织可行性制定合理的项目实施进度计划、设计合理的组织机构、选择 经验 丰富的管理人员、建立良好的协作关系、制定合适的培训计划等,保证项目顺利执行。此系统的开发只需要编程技术纯熟的学生,配合熟悉的系统开发过程及熟悉图书管理流程的人即可完成,在学校符合这样要求的人挺多,可组成系统开发团队,所以在组织上市可行的。

(5)社会可行性此系统主要针对图书馆,而且是给图书管理员减负,促进图书馆图书有序、安全、高效管理的系统,对社会没有什么不良的影响。综上可得,图书管理系统的开发在技术、经济、操作、社会上都是可行的。

结语:

综上所述,开发中小型图书馆的图书管理软件已经很有必要,并且实现研究服务于实践的原则。从而在图书馆对新旧书的反应;对书籍借阅的管理能力;对读者和图书馆工作人员的管理能力;对图书馆管理人员软件操作的适应时间和操作感觉这些方面都将大大的提高的同时,获得显著的社会效益。

试谈图书管理系统安全稳定性

SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。Mysql可以说是目前最为流行的开源数据库管理系统软件,是一个真正的多用户、多线程SQL数据库服务器。Mysql开放源码,快捷灵活、稳定和容易使用等优点决定了其在中小型管理系统应用的优势。本文以基于Mysql网络数据库的图书管理系统为例,从安全稳定性要求和采取的安全策略等方面进行分析研究。

1Mysql在信息管理系统的应用与优势

的基本特性与应用

Mysql与其他大型数据库Oracle、DB2、SQLServer等相比,有自身的不足之处,但是没有影响到Mysql在信息管理系统的应用。在个人或者是中小型的企业,Mysql发挥了自身的优势与作用。Mysql开放源码,具有快捷灵活、稳定和容易使用等优点,并有效的提供了PHP、C,C++,JAVA和HTML等主流前端开发软件的API接口。支持多种 操作系统 包括Windows、Linux、Solaris、MasOS等。目前,搭建动态网站或者服务器的开源软件组合有典型的网络架构LAMP,极大地方便了开发者。Mysql应用非常广泛,Google、facebook、等使用Mysql作为网络数据库。

应用于图书管理系统的优势

Mysql应用于图书管理系统的优势主要分为三个方面,一是免费开源优势,如果再使用linux操作系统,可以减少购买操作系统和数据库的开销。二是多种平台支持的优势,Mysql可以与多个平台进行有效的连接,实现信息资源的共享。三是中小型数据库灵活稳定的优势,在设计Mysql程序的时候,加入了SQL中没有的一些补充条件,更加的适用于在中小型数据库中使用。图书管理系统通常要保存用户信息、图书信息和借阅信息,以及建立相关的书籍查询等,数据仓库并不是很庞大,因此,使用Mysql来管理数据非常合适。

2基于Mysql的图书管理系统安全稳定性分析

高校图书管理系统是基于互联网的网络数据库,通常采用B/S的体系结构,因此,在浏览器层、Web服务器层、数据库服务器层都会存在安全性要求,以及在操作系统、网络技术等方面的安全问题。只有控制好图书管理系统的安全问题,才能保证信息资源的有效共享。基于网络数据库的图书管理系统的安全稳定性具有以下几个特点:(1)较高的稳定性,包括操作系统的稳定性和数据库系统的稳定性,要保持Mysql数据库的正常运行轨迹。(2)数据的保密性能,对客户信息、访问浏览量、客户端等进行有效的保密。(3)运行的速度很快,包括浏览器端、数据库服务器端的访问速度,以保证数据信息在查找、修改等方面的快速反应。(4)数据的备份与数据的恢复功能。数据库服务器中,包括图书信息、借阅图书记录、客户账号等在内的相关数据的安全问题,是保证图书管理系统正常运转的重要因素。要采取严格的防范 措施 ,同时,当发生数据故障的时候,要在最短的时间内恢复数据与系统。

3基于Mysql的图书管理系统安全稳定性策略

图书管理系统通常采用三层B/S结构模式,即用户层、Wed服务器层和数据库层。图书管理系统要注意提高数据库安全、操作系统安全和网络安全技术等方面的安全策略。

优化数据库设计

比如,在遵循关系模式规范化的基础上,优化表设计适当增加中间表或增加冗余字段以减少连接查询所花的时间,优化JOIN操作和子查询尽量使用全连接避免产生中间表,尽量避免LIKE关键字和通配符进行查询。另外,还可以修改文件,对相关参数如sort_buffer_size、read_buffer_size、query_cache_size、max_connections等,设置合适的缓冲区大小和MySQL允许的最大连接进程数,以优化服务器提高系统性能,提高保证图书信息资源查询效率。

数据容灾与备份机制

要定期地进行数据备份,保护图书书目数据、流通数据、客户信息等。定期的进行数据库的重组工作,增强数据库的使用性能。用好MYSQL的容灾与备份机制,比如:建立主从数据库集群,采用MySQL复制;制定数据库备份/恢复计划;启动数据库服务器的二进制变更日志;定期检查数据表;定期对备份文件进行备份;把MySQL的数据目录和备份文件分别放到两个不同的驱动器中,等等。

帐户安全策略

可以从账户安全检查、系统内部安全措施、哈希加密等方面着手进行。比如,检查用户表是否有匿名空账号(user=‘’),如有应将其删除。使用哈希加密帐户密码。加强客户的登录认证,尤其是服务器主机的登录认证。在主数据库创建从数据库操作所用的用户,并指定使用SLL认证等等。

网络安全和操作系统安全策略

在网络安全策略方面,利用NAT技术,有效的防止发生来自网络外部的攻击现象,将局域网络内部的计算机系统进行隐蔽。正确设置计算机操作系统,确保客户使用真实身份,登录具有合法性。此外,还可以设置系统的实时监控,优化网络防火墙、文件加密以及杀毒软件技术的升级,等等。

4结语

综上所述,要确保基于Mysql在图书馆管理系统的安全稳定性能,要考虑很多种因素的影响,在数据库设计、数据库服务器、数据容灾与备份、帐户安全,以及计算机网络、操作系统等方面进行优化配置。图书管理系统的安全与稳定性能保证了信息数据的安全、稳定性与高效,保证了客户在不同的时间、地点、平台中有效的使用图书馆的资源信息共享。

参考文献:

[1]晋征.论基于网络数据库的图书馆管理系统安全性研究与实现[J].网络安全技术与应用,2015(3):27-29.

[2]阳学军.基于网络和人工智能的图书馆信息管理系统研究[J].岳阳职业技术学院学报,2005(3):59-61.

[3]林爱鲜.基于神经网络的图书馆管理系统的构建研究[J].电脑与电信,2012(4):48-50.

[4]田华.图书馆分布式数据库安全技术研究[J].现代情报,2007(4):161-163

21世纪,人类社会正面临知识经济和信息社会的急剧变革,世界各个角落的人们都强烈地感受到新时代的冲击与震撼。下面是我为大家整理的图书馆管理系统设计论文,供大家参考。

图书管理系统设计

图书馆管理系统设计论文摘要

【摘要】本文介绍了利用ASP+Access编写图书管理系统的实现主要步骤与部分技术代码。

图书馆管理系统设计论文内容

【关键字】ASP;Access

随着计算机 网络技术 的普及和发展,现已逐渐进入信息化社会。人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发基于网络平台的图书管理信息系统已经成为图书管理部门的必要因此,我按照图书管理部门的需要,采用ASP+Acces实现了此图书管理系统。

一、ASP+Access

ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和 其它 程序进行交互,是一种简单、方便的编程工具。

Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。

由于Access存储方式简单,易于维护管理、移植性好,所以本系统采用ASP做为编程工具、Access做数据库来开发

二、系统模块

此系统共分为八大模块,包括图书简介、 规章制度 、图书录入、归还图书、图书查询、新购图书、未归图书、系统维护。名模块的功能如下:

一图书简介:把图书进行分类和定义索书号,以方便查询。

二规章制度:主要介绍图书管理的订购、借阅、归还等制度。

三图书录入:对新购图书按书名、作者、分类、编号等图书信息进行录入。

四图书归还:此模块是图书管理员对归还的图书,按照图书编号进行入库管理。

五图书查询:按图书信息一些主要字段对数据库进行查询并显示。

六新购图书:查询某一时间段以后所购买的图书并显示。

七未归图书:显示未归的图书,并分页显示。

八系统维护:对数据库进行备份和恢复。

三、设计数据库

此图书管理系统数据库里主要有以下几个表:

User:用来存储图书管理员的用户名和密码。字段为user、pwd。

Menu:存储程序主页面的菜单名称和链接地址。字段为ID、父菜单ID、位置、URl、字体颜色、菜单项。

Bookinfo:用来存储图书的各种信息。字段为书名、作者、图书分类、图书编号、索书号、出版社、版期版次、购入日期、价格、排架号、是否借阅、借阅日期、应归还日期、借阅科室、借阅人、备注。

Dept:用来存储科室名称。字段为dept。

四、程序设计

一登录模块及Session的使用

由于此系统有些功能是不允许普通用户使用的,如图书录入、图书归

还等模块,所以本系统采用以管理员登录的方式,来判断是何种用户使用本系统,如果是普通用户,点击“以普通用户登录”,就可以使用本系统,但图书录入、归还图书和系统维护等模块不能使用。

由于有些功能模块不允许普通用户使用,故在登录模块程序语句定义一个Session:Session("UserAcc") = Trim(rs("User"))。 Session在计算机中,尤其是在网络应用中,称为“会话”,用于保持状态的基于 Web 服务器的 方法 。Session 允许通过将对象存储在 Web 服务器的内存中在整个用户会话过程中保持任何对象。因此,在限制普通用户使用并用If判断Session("UserAcc")是否为空即可。

二表单验证

在图书录入模块中,需要填写图书的各种信息,在提交表单时如果某

些信息为空,IE就会显示出错,因此,在提交表单之前对表单进行验证,JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证,只需编写一个函数就可以实现。函数如下

function checkinput() {

if ('') {

alert('请输入书名');

();

return false;

}

}

在提交按钮代码中加入OnSubmit="Return checkinput()"就可以完成对表单的验证了。

三数据库连接

对于Access数据库,一个文件就是一个数据库,所以可以利用数据驱动程序直接访问数据,这种方法需要利用动态连接字符串建立一个连接,具体连接字符如下:

Dim conn, connstr,db

db="./data/"

connstr="Provider=;DataSource="&(db)

Set conn=Createobject("")

connstr

这样就可连接数据了,再用SQL语句就可以读取表中数据了:

Set rs=CreateObject("")

sql="Select * From bookinfo"

sql,conn,1,3

四对数据库的操作

连接好数据库后,我们就可以对表bookinfo的记录进增加、删除、修改等操作了。具体代码及释义如下:

(1):增加:

bianhao=Trim(Request("bianhao"))

sql="Select * From bookinfo Where 图书编号='"& bianhao &"'"

sql,conn,1,3

If <>0 Then

"此图书编号已存在,请重新输入"

"

"

""

"返 回"

Else

注:在增加信息时,必须检索图书编号是否唯一,如不唯一会出给出提示:“此图书编号已存在,请重新输入”

rs("书名")=trim(request("bookname"))

rs(“作者")=trim(request("author"))

……

end if

""

end if

set rs=nothing

(2)删除

本系统“删除”图书记录功能在查询模块中执行,但必须以管理员身份登录,才能显示对记录进行操作的功能:

删除记录采用SQL中的delete语句,代码如下:

bh=Request("bianhao")

If bh<>"" Then

"Delete From bookinfo Where 图书编号='"& bh &"'"

End If

(3)修改

修改只需命令即可完成,这里不再赘述。

(4)查询

本系统有精确查询、模糊查询、分类查询、编号查询、索书号查询、借阅人查询共六种方法。用SQL中select…where…就可以完成查询功能。如按分类查询:

tiaojian=Trim(request("tiaojian"))

Set rs=CreateObject("")

sql="select * from bookinfo where 图书分类= '"& tiaojian &"' order by 图书编号 desc"

sql,conn,1,1

五、小结

此图书管理基本上可以实现图书管理的大部份工作,实现图书的计算机管理,方便借阅人员查询和借阅图书,更好的利用图书资源,把图书管理员从手工记录管理图书中解脱出来,提高了工作效率。

图书馆管理系统设计论文文献

[1]伍云辉. 程序天下 电子工业出版,2008

[2]武延军,赵彬.精通ASP网络编程. 人民邮电出版社,2000

[3][美]Michael Moncur JavaScript 入门经典 人民邮电出版,2007

图书管理信息系统设计

图书馆管理系统设计论文摘要

提要作为信息资源的集散地,图书馆在高校中的作用是尤为重要的,而图书馆传统人工管理方式已经无法快速、高效地应付日益增长的信息数据。随着计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。因此,图书管理信息系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底解脱出来,从而使人们有更多的时间来获取信息、了解信息、掌握信息,更好地发挥图书馆强大的资源优势。

图书馆管理系统设计论文内容

关键词:图书管理信息系统;数据库应用;Visual Foxpro语言;windows HC

中图分类号:G251文献标识码:A

图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库;而对于后者则要求应用程序功能完备,易使用等特点。本是从我校图书馆的馆藏规模和实际操作流程程出发,针对图书馆管理的现状,经过详细的系统调查,结合效用和成本多方要素。利用Visual 作为开发工具,为图书馆开发出的一个实用的单机版图书馆管理信息系统。全文共分为五部分,其分别为绪论、系统分析阶段、系统设计阶段、系统实施阶段、系统测试。

一、绪论

(一)系统开发背景。目前,在一些高校图书管理中,师生查找图书都是采用传统的查询方法,让读者在图书分类架上一本本地去查找,这样不仅很难找到自己所需要的图书,而且费时费力。而图书管理员在办理借书登记、查询读者借书记录时,管理人员必须在借书记录上一个个去查找,而要找到借书记录并删除该记录是件很麻烦的事情。每当新书入库时,图书管理员既要填写新书入库卡片,又要填写新书入库账目,不仅工作量大,而且在新书入库后要经历较长的时间方能借出。另外,因图书数量有限,必须对图书实行限量借阅,因此要实施弹性借书方法是件很困难的事。

为提高图书查询效率,减少系部图书管理员的工作负担,有必要开发一个小型图书管理软件来对图书实施有效管理。该系统应具备以下功能:(1)能对各类图书实行分类管理;(2)提供必要的读者信息;(3)能进行各种高级查询;(4)具有图书检索功能等。这样,不仅能较好地帮助读者在最短的时间内找到自己所需要的图书书目、编号,而且能让图书管理员以最高的效率办理借阅手续。

(二)数据库概述。从20世纪五十年代中期开始,计算机的应用由科学研究部门逐步扩展至企业、行政部门。至六十年代,数据处理成为计算机的主要应用。数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于六十年代末。现已形成相当规模的理论体系和实用技术。

数据库(Database)DB是统一管理的相关数据的集合。

数据库管理系统(Database Managerment System)DBMS是位于用户和 操作系统 之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。

数据库系统(Database System)DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。

数据库技术是一门研究数据库的结构、存储、管理和使用的软件学科。

二、系统分析阶段

(一)系统可行性分析。系统可行性分析包括:技术的可行性、经济可行性、法律因素可行性。

技术可行性:结合本校图书馆规模和平时业务量的具体情况,本系统采用Visual 作为开发平台,可以很容易实现图书馆相关信息的记录、维护、检索,并且可以在不添加任何设备的情况下,以较少的人力较快地完成系统的设计,实现系统的功能。

经济可行性:不需要额外开支,用现有的人力物力就可实现,软件成本很低。

法律可行性研究:研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。

(二)系统需求分析

1、图书管理信息系统的总体功能要求。简单的图书管理系统主要包括下面的功能:①借书处理:完成读者借书这一业务流程,核心为快速检索到学生需要的书籍。②还书处理:完成读者还书这一业务流程。③新书上架:完成新书资料的录入工作。④旧书下架:完成图书资料的删除工作。⑤读者查询:根据读者号,查询读者借阅情况,能够对读者的基本信息资料进行管理。⑥相关帮助:便于新的系统使用者能够快速掌握该系统的使用操作。

2、图书管理信息系统的性能需求。①要求有较强的 系统安全 性,对一定范围和程度内用户的错误操作有相应的系统自我保护功能。②系统的维护时间不能超过系统总运行时间的千分之五,系统每次的维护时间不能超过系统总运行时间的千分之一,系统的故障恢复时间不得超过系统故障时间的百分之五。③其他性能要求以其相关或类似的系统为参考。

三、系统设计阶段

(一)系统功能模块设计。鉴于以上各项功能要求,将该系统划分为以下六个模块:

1、图书信息模块。对图书的基本信息进行录入、删除、修改以前信息和进行简单查询功能。

2、查询检索模块。可对书目的基本信息进行检索,其查询条件可以是按分类检索;也可以是按照作者名、图书名称或出版社进行检索。同时,也可对读者的基本信息进行检索,查阅其借阅信息。

3、读者管理模块。对读者的基本信息进行录入管理,可自动生成会员代号,可自动记录会员的借阅信息。

4、数据维护模块。可对数据库中的各项基本数据信息进行数据备份和数据恢复,并可实现数据备份文件存贮路径的自由选择。

5、报表输出模块。对图书的基本信息、会员的基本信息、会员的借阅信息等数据可按照查询条件的不同按要求打印输出。

6、帮助模块。可以提供关于图书管理信息系统各项操作的详细帮助信息,并可实现对不同操作的定点帮助提示。

(二)数据库设计

1、数据描述

(1)静态数据描述。①图书一级分类表:包括一个数据表。其中的主要信息有:分类编号和一级分类名称。一级分类中将图书共分五大类,具体分类方法、编号和分类名称参照国家统一分类方法的规定。②图书二级分类表:包括五个数据表。其中的主要信息有:二级分类的编号和分类名称。二级分类中将图书共分为二十二个小类,并分别隶属于一级分类的五个大类中,其具体分类方法、编号和分类名称参照国家统一分类方法的有关规定。③图书明细分类表:包括二十二个数据表。其中的主要信息有:明细分类的编号和分类名称。明细分类又将二十二个小类明细的分为若干细小类别,其具体的分类方法、编号和分类名称参照国家统一分类方法的有关规定。

以上数据均按国家统一规定设置录入,不能做太大改变,分类名称可以有一定的缩略但不能影响其原有的意义。系统设计完成后不可以通过录入、删除的方式进行修改。

(2)动态数据

①图书的基本数据。包括一个数据表。其中的主要数据有图书编号:是对录入图书的统一编号,以便唯一区别图书;图书名称:图书出版时的封面印刷名称;作者:图书的编写者或编写单位或组织;出版社:出版发行该册图书的发行单位;录入日期:该册图书入库的时间;借阅次数:该图书总的被借阅次数;类别编号:给图书所属的明细分类的类别号,它应与明细分类表中的图书的类别编号一致;简介:对该册图书的内容总体概括介绍。

②读者基本数据:包括一个数据表。其中的主要数据有:读者代号:读者的统一编号,由系统自动生成,唯一的标示一个会员的身份;姓名:读者的真实姓名;电话:读者的有效联系电话,可选择填写;地址:读者的有效联系地址,可选择填写;身份证号:读者的身份证号码,可选择填写;注册日期:读者本人正式注册成功时的日期(为系统自动填写)。备注:读者的个人其他资料。

以上两部分数据的录入具有一定的界面,并提供修改的方式。还提供随时的查询,对查询结果有相应的显示和打印输出,对全体的数据可进行备份与恢复。

③借阅记录。包括一个数据表。其中的主要数据有:读者代号、图书编号、借阅日期。这些数据信息都是由系统自动填写。此表中的所有数据不提供修改方式,只供查阅、显示和打印输出。可以对全体数据进行备份和恢复。

④登录密码。包括一个数据表。其主要数据有:管理员代号、密码、权限。

2、数据库描述。该系统建立一个数据库,其中包括三十二个数据表。全部用Visual Foxpro实现。其中,部分数据表的结构和联系如图1所示。(图1)其他分类数据表的连接通过“下级分类表名”实现连接调用。

3、数据采集。对于图书分类数据表的信息参照国家图书分类方法;对于图书基本信息数据可通过对现存图书进行分类录入;对于读者方面的信息数据可以在系统运行使用中获得。

(三)用户界面设计。本系统设计原则:1、界面美观、操作方便并能高效率地完成工作;2、界面根据用户需求设计;3、界面能引导用户操作的功能,并能提供一些帮助功能。

主要的用户界面有:1、登录界面;2、主表单界面;3、各类信息查询;4、读者信息管理列表;5、图书信息管理列表等。

四、系统实施阶段

(一)计算机系统的性能和软硬件环境。在软件方面本系统运行平台为Windows2000专业版,开发工具采用易学易用的软件开发工具Visual 。因Visual 在应用程序的开发上具有灵活、效率高等特点和使用简便的数据库管理功能。硬件要求:Inter PentiumⅢ、128M内存、40G硬盘等。

(二)编写程序。依据各阶段的开发文档,使用Visual 进行程序编写。此系统的编码设计(表单设计、代码设计、变量定义、控件的定义)严格按照大众化的标准和风格。

对于系统的帮助功能的实现,则使用windows help compiler来单独编译,最后通过Visual Foxpro提供的接口命令(set help to)和系统相连。帮助文件的数据字典、源代码见附件。

五、系统测试

测试的步骤主要有以下三个方面:1、单元测试:采用的是白盒测试法,检查模块控制结构的某些特殊路径;2、综合测试:采用的是自顶向下集成法;3、确认测试包括:功能测试、性能测试。

有关图书馆管理系统设计论文推荐:

1. 图书管理系统毕业论文

2. 浅谈图书馆管理论文

3. 关于图书馆设计论文

4. 图书馆管理毕业论文范文

5. 有关图书馆结构设计论文

6. 图书馆管理论文

相关百科
热门百科
首页
发表服务