8.某高校图书馆管理信息系统的分析、设计与实施
某高校图书馆藏书200余万册,拥有包括在校学生、教职员工在内的读者2万余名,每天的借阅量近万册。在手工操作方式下,图书的编目和借阅等工作量大、准确性低且不易修改维护,读者借书只能到图书馆手工方式查找书目,不能满足借阅需求。因此,需要建立图书管理信息系统,以实现对读者借阅、图书采购和保管等工作的信息化管理,并实现文献的电子化检索和阅读。
图书馆由馆长负责全面工作,下设办公室、技术部、信息咨询部、文献建设部、流通部、阅览部。各部门的主要功能是:
(1) 办公室:负责本馆的行政和总务工作。
(2) 技术部:负责图书馆计算机系统的开发、维护和多功能电子阅览室、多媒体制作室、视听室的管理。
(3) 信息咨询部:负责国际联机检索、光盘检索、手工检索查新和资源共享等工作。
(4) 文献建设部:负责图书、期刊、电子文献的采购、编目和典藏工作。
(5) 流通部:负责图书借阅流通工作。
(6) 阅览部:负责各个阅览室的管理工作。
图书馆管理系统所要实现主要功能和业务流程如下:
(1) 读者信息管理。读者分为学生读者和教职工读者两类,读者访问系统时将检验读者账号和密码,只有具有合法身份的读者才允许进入系统。读者的信息包括读者类型信息、读者借阅信息、读者预约信息、读者罚款信息等。
(2) 书目查询。读者进入图书管理系统后,可以根据需要检索书名或期刊。检索条件可以是书名、图书编号、作者姓名或关键字等条件,如果查询信息不确切还可以进行模糊查询。
(3) 图书采编。由文献建设部相关人员根据读者需求情况、书籍出版情况等定期进行书籍采购。图书采购入库经过编目等处理后,将其目录存入数据库,提供给读者检所使用。目录信息包括图书编号、图书类别、书名、作者、出版社、定价、出版日期、数量等。
(4) 图书借阅。可办理读者借阅、还书、续借等手续。读者查找到所需图书后,到图书馆办理借阅手续,借阅期限为60天,借阅期满后可续借一次,续借期为30天。办理借阅手续之前要先查询读者所借图书是否超额,如果超额,则不能办理。学生读者最多可借10册,教工读者最多可借15册。读者还书时要先查询是否超期,如果超期则进入罚款程序。
(5) 图书预约。读者检索到需要的图书后,如果该图书均已被借出,则可进行图书预约,当该图书归还后通知预约读者前来办理借阅手续,该图书可为预约读者保留三天,如果读者在三天内未办理借阅手续,则取消预约资格。
(6) 电子读物管理。电子读物管理处理电子读物的阅览、检索、下载等事务。
(7) 系统维护。为图书管理人员提供图书统计信息和读者统计信息,以便于管理人员从宏观上掌握图书馆运行的总体状况。
跪求一个C语言图书信息管理系统的课程设计
通过测试!
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define MAX 100
struct 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<MAX;i++) if(strcmp(ans,stu[i].name)==0)
{
t=i;
fp=fopen("student","rb");
for(i=0;fread(&stu[i],sizeof(struct Student),1,fp)==1;i++)
printf("%d %s %s %s %s %s %f\n",stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t].day,stu[t].money);
}
}
if(t==-1) printf("不存在该信息\n");
}
else if(choose==2)
{
printf("输入所查作者名:\n");
scanf("%s",ans);
t=-1;
if(choose==2)
{
for(i=0;i<MAX;i++)
if(strcmp(ans,stu[i].author)==0)
{ t=i;
fp=fopen("student","rb");
for(i=0;fread(&stu[i],sizeof(struct Student),1,fp)==1;i++)
printf("%d %s %s %s %s %s %f\n",stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t].day,stu[t].money);
}
}
if(t==-1) printf("不存在该信息\n");
}
else return;
}while(1);
}
void Display()/*输出*/
{
FILE *fp;
int i;
fp=fopen("student","rb");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf(" 图书列表\n");
printf("-----------------------------------------------------------\n");
printf("登录号 书名 作者名 分类号 出版单位 出版时间 价格\n");
printf("-----------------------------------------------------------\n");
for(i=0;fread(&stu[i],sizeof(struct Student),1,fp)==1;i++)
{
printf("%6d %8s %8s %8s %8s %8s %8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money);
}
fclose(fp);
}
void Input()/*输入*/
{
FILE *fp;
int n;
fp=fopen("student","wb");
for(n=0;n<MAX;n++)
{
printf("n=%d 输入序号n(当输入n=-1时,返回),n=",n++);
scanf("%d",&n);
if(n==-1)
{
fclose(fp);
return;
}
else
{
printf("请输入登录号 书名 作者名 分类号 出版单位 出版时间 价格\n");
scanf("%d%s%s%s%s%s%f",&stu[n].num,stu[n].name,stu[n].author,stu[n].fn,stu[n].place,stu[n].day,&stu[n].money);
fwrite(&stu[n],sizeof(struct Student),1,fp);
}
}
fclose(fp);
}
void Modify()/*删除*/
{
FILE *fp;
int i,flag,n,s,j;
fp=fopen("student","rb+");
rewind(fp);
printf(" 图书列表\n");
printf("-----------------------------------------------------------\n");
printf("登录号 书名 作者名 分类号 出版单位 出版时间 价格\n");
printf("-----------------------------------------------------------\n");
for(i=0;fread(&stu[i],sizeof(struct Student),1,fp)==1;i++)
{
printf("%6d %8s %8s %8s %8s %8s %8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money);
printf("\n");
}
n=i;
printf("输入待删除图书号:\n");
scanf("%d",&s);
for(i=0,flag=1;flag&&i<n;i++)
{
if(s==stu[i].num)
{
for(j=i;j<n-1;j++)
{
stu[j].num=stu[j+1].num;
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j].author,stu[j+1].author);
strcpy(stu[j].fn,stu[j+1].fn);
strcpy(stu[j].place,stu[j+1].place);
strcpy(stu[j].day,stu[j+1].day);
stu[j].money=stu[j+1].money;
}
flag=0;
}
}
if(!flag)
n=n-1;
else
printf("没有此号\n");
fp=fopen("student","wb");
for(i=0;i<n;i++)
fwrite(&stu[i],sizeof(struct Student),1,fp);
fclose(fp);
fp=fopen("student","r");
printf(" 图书列表\n");
printf("-----------------------------------------------------------\n");
printf("登录号 书名 作者名 分类号 出版单位 出版时间 价格\n");
printf("-----------------------------------------------------------\n");
for(i=0;i<n;i++)
{
fread(&stu[i],sizeof(struct Student),1,fp);
printf("%6d %8s %8s %8s %8s %8s %8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money);
printf("\n");
}
fclose(fp);
}
void Change()/*修改*/
{
FILE *fp;
int i,num,n;
int flag=0;
printf("请输入要修改的图书号:");
scanf("%d",&num);
for(i=0;i<=MAX;i++)
if(stu[i].num==num)
{
printf(" 图书列表\n");
printf("-----------------------------------------------------------\n");
printf("登录号 书名 作者名 分类号 出版单位 出版时间 价格\n");
printf("-----------------------------------------------------------\n");
printf("%6d %8s %8s %8s %8s %8s %8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money);
printf("-----------------------------------------------------------\n\n");
n=i;
flag=1;
break;
}
if(flag==0)
{
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf(" 输入错误!\n");
printf(" 请返回!\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
return;
}
printf("\n\n\n");
fp=fopen("student","rb+");
fseek(fp,n*sizeof(struct Student),0);
printf("登录号 书名 作者名 分类号 出版单位 出版时间 价格\n");
scanf("%d%s%s%s%s%s%f",&stu[n].num,stu[n].name,stu[n].author,stu[n].fn,stu[n].place,stu[n].day,&stu[n].money);
fwrite(&stu[i],sizeof(struct Student),1,fp);
fclose(fp);
fp=fopen("student","rb");
printf(" 图书列表\n");
printf("-----------------------------------------------------------\n");
printf("登录号 书名 作者名 分类号 出版单位 出版时间 价格\n");
printf("-----------------------------------------------------------\n");
for(i=0;fread(&stu[i],sizeof(struct Student),1,fp)==1;i++)
{
printf("%6d %8s %8s %8s %8s %8s %8.2f\n",stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money);;
}
printf("-----------------------------------------------------------\n\n");
fclose(fp);
}
如何编写图书馆管理系统(主要用面向程序设计)
编写图书馆管理系统还面向过程????好吧!
首先起始页面想好要编写哪几个模块。作为一个图书馆管理系统,像
1借书
2还书
3.书籍录入及管理
4.学员信息管理
5.管理员信息管理
上面5个模块是不可少的。当然,也可适当修改。
然后分别在各个模块分别对学员信息,书籍信息这些变量(全局变量)进行控制。
具体程序还得楼主自己编写。
谢谢。
怎样写图书馆的管理信息系统设计!!!急急急急急急急急
我们也快写论文了!老师说去万芳论文网上搜就可以搜到!你试试!不知道有没有帮助
急求图书馆管理信息系统设计!怎么把图书管理、电子数据库、读者、管理员子系统细化啊?谢谢啦~加高分哈~
我是图书馆软件公司技术开发部的:
A 文献采购:
基本参数:采购单位、采购类型、供应商类型,供应商信息
功能模块:采购订单,补订单,文献验收,验收查询,验收查询
报表统计:采购打印(供应日期,供应商,其他条件),账目统计(多条件检索,明细统计,金额统计)
B 文献编目:
参数设置:文献类型、文献尺寸、批次代码、装订方式、出版库字典、远程编目参数(Z39.50、Webget)
功能模块:文献编目,批次设置、条形码差缺、编目浏览,种次号只用情况、馆藏分类统计、工作量统计
报表打印:书标打印、书标补缺打印、新书通报表、馆藏流水账目表、条形码打印、资金统计、清单打印
C 文献流通:
参数设置:读者单位、读者类型、假期设定、流通参数(按类型区分)、超期处理参数(停借或罚款)
功能模块:图书流通(借书,还书,续借,预借,无证借书,超期罚款,丢失,污损),批量换班,读者管理(新增,挂失,解挂,多条件检索,打印报表,批量数据导入,借阅证设计)、注销登记、预约信息处理、借阅信息查询(图书去向,【单日借阅情况,读者类型,读者单位,读者证】借阅情况)
报表打印:个人催还单,集体催还单,流通统计(借出,还回,罚款),图书借阅排行榜,读者借阅排行榜,借阅历史统计,罚款统计,月流通工作量,月图书借出分类统计,月读者借阅统计,年流通量统计,年读者借阅统计,
D 期刊管理:
E 文献检索:
F Marc工具:
G Z39.50协议:
H 网上自助图书馆(OPAC):
打字打累了,,不打了。做完哪些功能也差不多了。。还想继续了解,www.tuodi.cn
或者加我的Q290445270
怎样设计图书馆信息管理系统
#include<iostream>
#include<fstream>
#include<conio.h>
using namespace std;
class Librarian //图书管理员类
{
public:
Librarian();
Librarian(int n,int j,char na[20],int w );
int getnumber();
int getjobage();
char *getname();
int getwages();
void resetjobage(int j);
void resetwages(int w);
void resetname(char na[20]);
private:
int number;
int jobage;
char name[20];
int wages;
};
Librarian::Librarian() //其函数的实现
{
number=0;
char b[20]="no one";
jobage=0;
strcpy(name,b);
}
Librarian::Librarian(int n,int j,char na[20],int w)
{
number=n;
jobage=j;
strcpy(name,na);
wages=w;
}
int Librarian::getjobage()
{return jobage;}
char *Librarian::getname()
{return name;}
int Librarian::getnumber()
{return number;}
int Librarian::getwages()
{return wages;}
void Librarian::resetjobage(int j)
{
jobage=j;
}
void Librarian::resetname(char na[20])
{
strcpy(name,na);
}
void Librarian::resetwages(int w)
{
wages=w;
}
class reader //读者类
{
private:
int number;
int age;
char name[20];
char borrowbook[20];
public:
reader();
reader(int c,int a,char b[20],char e[20]);
int getnumber();
int getage();
char *getname();
char * getborrowbook();
void reworkborrowbook(char a[20]);
};
reader::reader() //其函数的实现
{
char a[20]="没有人";
char c[20]="没有借书";
number=0;
age=0;
}
reader::reader(int a,int c,char d[20],char e[20])
{
number=a;
age=c;
strcpy(name,d);
strcpy(borrowbook,e);
}
int reader::getnumber(){return number;}
int reader::getage(){return age;}
char *reader::getname(){return name;}
char * reader::getborrowbook(){return borrowbook;}
void reader::reworkborrowbook(char a[20]){strcpy(borrowbook,a);}
struct book //图书的结构体
{
int num;
char name[20];
char writer[20];
};
void outbookinf() //输出所有图书信息
{
int i;
ifstream infile("allbook.txt",ios::in);
char line[50];
cout<<"书名"<<'\t'<<"书号"<<'\t'<<"作者"<<endl;
for(i=1;i<=10;i++)
{
infile.getline(line,50,'\n');
cout<<line<<endl;
}
infile.close();
}
void serchLaninf() //图书管理员信息函数
{
int n,i;
ifstream file("serchLaninf.txt");
if(file) { file>>n; file.close();}
else {cout<<"没有图书管信息理员"; exit(0);}
ifstream is("controlloer.txt",ios_base::binary);
if(is)
{
Librarian *A=new Librarian[n];
for(i=0;i<n;i++)
{
is.read((char *)&A[i],sizeof(A[i]));
}
for(i=0;i<n;i++)
{
cout<<"编号"<<'\t'<<"工龄"<<'\t'<<"名字"<<'\t'<<"工资"<<endl;
cout<<A[i].getnumber()<<"\t"<<A[i].getjobage()<<"\t"<<A[i].getname()<<"\t"<<A[i].getwages()<<endl;
}
}
else
{
cout<<"txt文件打开出错'"<<endl;
}
is.close();
}
void libary() //图书馆的总信息
{
system("cls");
system("color 2e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<"本校图书馆由本部图书馆及彭州校区图书馆组成,图书馆总面积达了****平方米";
cout<<" (本馆现在有***类书籍***万册,****类书籍****万册,****类书籍****万册****类书籍****万册),";
cout<<"图书馆现有工作人员***名";
cout<<"图书馆现有的现代化设备价值超过****万元………………"<<endl;
}
void storelibrarian() //存入新的管理员的信息
{
int age,n,num,wage;
char name[20];
ifstream file("serchLaninf.txt");
if(file) { file>>n; file.close();}
else { n=0;}
cout<<"已有的图书管理员个数:";
cout<<n<<endl;
cout<<"请输入新图书管理员的编号和工龄,名字和工资:";
cin>>num>>age>>name>>wage;
Librarian A(num,age,name,wage);
cout<<"编号 工龄 名字 工资 "<<endl;
cout<<A.getnumber()<<" "<<A.getjobage()<<" "<<A.getname()<<" "<<A.getwages()<<endl;
ofstream outfile("controlloer.txt",ios_base::app );
outfile.write((char *)&A,sizeof(A));
outfile.close();
n++;
ofstream tfile("serchLaninf.txt");
tfile<<n;
tfile.close();
cout<<"保存成功!";
}
void reLaninf() //修改图书管理员
{
int i,n,h,jobage,wage,j;
char name[20];
ifstream file("serchLaninf.txt");
if(file) { file>>n; file.close();}
else {cout<<"没有图书管信息理员";
exit(0);}
cout<<"已有的图书管理员个数:";
cout<<n<<endl;
Librarian *A=new Librarian[n];
ifstream is("controlloer.txt",ios_base::binary);
if(is)
{
for(i=0;i<n;i++)
{
is.read((char *)&A[i],sizeof(A[i]));
}
for(i=0;i<n;i++)
{
cout<<"编号 工龄 名字 工资"<<endl;
cout<<A[i].getnumber()<<" "<<A[i].getjobage()<<" "<<A[i].getname()<<" "<<A[i].getwages()<<endl;
}
}
else
{
cout<<"打开文件出错"<<endl;
}
is.close();
cout<<"请选择你要修改的管理员编号:";
cin>>h;
cout<<"输入新的工龄,名字,工资:";
cin>>jobage>>name>>wage;
A[h-1].resetjobage(jobage);
A[h-1].resetname(name);
A[h-1].resetwages(wage);
cout<<"该管理员修改后的名字是:"<<A[h-1].getname()<<" 工龄是:"<<A[h-1].getjobage()<<" 工资是:"<<A[h-1].getwages()<<endl;
ofstream tfile("controlloer.txt",ios_base::binary);
for(j=0;j<n;j++)
{
tfile.write((char *)&A[j],sizeof(A[j]));
}
tfile.close();
}
void aadbook() //新增图书
{
int num;char name[12];char writer[10];int n;
a:
ofstream fout("allbook.txt",ios::app);
cout<<"请录入图书信息:"<<endl;
cout<<"书名"<<'\t'<<"书号"<<'\t'<<"作者"<<endl;
cin>>name;fout<<name<<'\t';
cin>>num;fout<<num<<'\t';
cin>>writer;fout<<writer<<'\n';
fout.close();
cout<<"是否继续录入?1.是2.否"<<endl;
cin>>n;
if(n==1)
goto a;
else
{void studentland();
studentland();}
}
void delate() //删除函数
{ int m;
cout<<"选择操作选项:"<<endl;
cout<<" 1.删除全部信息"<<endl;
cout<<" 2.单个删除"<<endl;
cin>>m;
if(m==1)
{ofstream file("allbook.txt",ios::trunc);
cout<<"全部删除完毕,按任意键返回!"<<endl;
file.close();
getch();
system("cls");
void studentland();
studentland();
}
char str[10][80],buf[20];
a:
int i=0,flag=100,c=0;
ifstream fin("allbook.txt");
if(!fin){
cout<<"文件打开失败!"<<endl;
getch();
system("cls");
void studentland();
studentland();
}
cout<<"请输入你要删除的书名:"<<endl;
cin>>buf;
strcat(buf,"\t");
while(fin.getline(str[i],80))
{
if(strncmp(str[i],buf,strlen(buf))==0)
{
flag=i;
}
i++;
}
fin.close();
if(flag==100)
{
cout<<"没有你所要删除的书籍!重新按1,否则0....."<<endl;
int b;
cin>>b;
if(b==1)goto a;
else c=1;
}
if(c==0){
ofstream fout("allbook.txt");
for(int j=0;j<i;j++){
if(j==flag)continue;
fout<<str[j]<<endl;
}
fout.close();
cout<<"你要删除的书籍的信息已删除,继续按1,否则按0....."<<endl;
int b;
cin>>b;
if(b==1)goto a;
}
cout<<"操作已经结束,按任意键返回......"<<endl;
getch();
system("cls");
void studentland();
studentland();
}
void searchbook() // 查找书籍
{
a:
ifstream fin;
int flag=0,b,length;
char str[20];
char f[200];char g[200];
fin.open("allbook.txt");
if(!fin)
{
cout<<"Open f1.dat error....."<<endl;
exit(1);
}
while(1)
{
cout<<"请输入书名:";
cin>>str;
strcat(str,"\t");
length=strlen(str);
cout<<"------------------------------------"<<endl;
while(fin.getline(f,199))
{
strcpy(g,f);
if(strncmp(str,f,length)==0)
{
flag=1;
break;
}
}
if(flag==1)
{
cout<<"所查询的书已经找到:"<<'\n';
cout<<"--------------------------------"<<endl;
cout<<"书名"<<'\t'<<"书号"<<'\t'<<"作者"<<'\t'<<endl;
cout<<g<<endl;
cout<<"--------------------------------"<<endl;
flag=0;
cout<<"要继续查询按1,否则按0:"<<endl;
cin>>b;
if(b==0)break;
}
else
{
fin.close();
cout<<"没有此书,继续按1,否则按0..."<<endl;
cin>>b;
if(b==0)break;
goto a;
}
}
fin.close();
cout<<"查询完毕,按任意键返回......"<<endl;
getch();
system("cls");
void studentland();
studentland();
}
void seachreader() // 查询读者信息
{
a:
ifstream fin;
int flag=0,b,length;
char str[20];
char f[200];char g[200];
fin.open("readernum.txt");
if(!fin)
{
cout<<"没有此信息文件!"<<endl;
exit(1);
}
while(1)
{
cout<<"请输入你要查找读者的名字:";
cin>>str;
strcat(str,"\t");
length=strlen(str);
cout<<"------------------------------------"<<endl;
while(fin.getline(f,199))
{
strcpy(g,f);
if(strncmp(str,f,length)==0)
{
flag=1;
break;
}
}
if(flag==1)
{
cout<<"所查询的读者已经找到:"<<'\n';
cout<<"--------------------------------"<<endl;
cout<<"名字"<<'\t'<<"编号"<<'\t'<<"年龄"<<'\t'<<"借书次数"<<endl;
cout<<g<<endl;
cout<<"--------------------------------"<<endl;
flag=0;
cout<<"要继续查询按1,否则按0:"<<endl;
cin>>b;
if(b==0)break;
goto a;
}
else
{
fin.close();
cout<<"没有此人,继续按1,否则按0..."<<endl;
cin>>b;
if(b==0)break;
goto a;
}
}
fin.close();
cout<<"查询完毕,按任意键返回......"<<endl;
getch();
system("cls");
void studentland();
studentland();
}
/*void seachreader() //查询读者的信息
{
int i,b,h=0;
char a[20];
ifstream file("readernum.txt");
if(file) { file>>b; file.close();}
else { cout<<"没有文件";}
cout<<"已有的读者个数:";
cout<<b<<endl;
reader *A=new reader[b];
ifstream is("reader.txt",ios_base::binary);
if(is)
{
for(i=0;i<b;i++)
{
is.read((char *)&A[i],sizeof(A[i]));
}
}
else
{
cout<<"txt文件打开出错"<<endl;
}
is.close();
cout<<"请输入你要查找读者的名字:";
cin>>a;
for(i=0;i<b;i++)
{
if(strcmp(A[i].getname(),a)==0)
{
cout<<"编号 年龄 名字 借书情况 "<<endl;
cout<<A[i].getnumber()<<" "<<A[i].getage()<<" "<<A[i].getname()<<" "<<A[i].getborrowbook()<<endl;
h++;
}
}
if(h==0)cout<<"没有这个读者!";
}
*/
void Librarianland() //管理员登陆函数
{
int q,l=1,i,h;
system("cls");
system("color 2e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"现在进行身份确认,请输入口令:";
cin>>i;
while(l)
{
if(i==00000)
{
system("cls");
system("color 3e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"|*******" <<"0,返回上一级菜单."<<" ******|"<<endl;
cout<<" "<<"|*******" <<"1,查询图书馆管理员的信息"<<" ******|"<<endl;
cout<<" "<<"|*******" <<"2,存入新的管理员信息. "<<" ******|"<<endl;
cout<<" "<<"|*******" <<"3,修改图书管理员的信息"<<" ******|"<<endl;
cout<<" "<<"|*******" <<"4,新增图书"<<" ******|"<<endl;
cout<<" "<<"|*******" <<"5,删除图书"<<" ******|"<<endl;
cout<<"请选择执行的操作:";
cin>>q;
if(q>=0&&q<6)
{
switch(q)
{
case 0:
l=0;
break;
case 1:serchLaninf();
system("pause");
break;
case 2:storelibrarian();
system("pause");
case 3:reLaninf();
system("pause");
break;
case 4:
void aadbook();
aadbook();
break;
case 5:
void delate();
delate();
break;
default:
break;
}
}
else
{
system("cls");
system("color 4e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"操作无效!"<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
system("pause");
}
}
else
{
system("cls");
system("color 2e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<" 身份确认失败"<<endl;
cout<<" "<<" 是否重新确认!"<<endl;
cout<<" "<<"重新确认请按请按1,放弃请按0"<<endl;
cout<<" ";
cin>>h;
if(h==0) l=0;
if(h==1)
{
system("cls");
system("color 2e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"请再次输入口令:";
cin>>i;
}
}
}
}
void studentland() //学生登陆函数
{
int h;
char l='y';
while(l=='y')
{
system("cls");
system("color 3e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"****** "<<"|输出藏书信息,请按1 | "<<"******"<<endl;
cout<<" "<<"****** "<<"|查询图书馆的总信息,请按2| "<<"******"<<endl;
cout<<" "<<"****** "<<"|按书名查找图书,请按3 | "<<"******"<<endl;
cout<<" "<<"****** "<<"|查询读者的信息,请按4 | "<<"******"<<endl;
cout<<" "<<" ****** "<<"|返回上一级菜单,请按0 | "<<"******"<<endl;
cout<<"请选择您将执行的操作:";
cin>>h;
if(h>=0&&h<5)
switch(h)
{
case 0:
l='n';
break;
case 1:outbookinf();
system("pause");
break;
case 2:libary();
system("pause");
break;
case 3:searchbook();
system("pause");
break;
case 4:seachreader();
system("pause");
break;
}
else
{
system("cls");
system("color 4e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"您的操作是无效的!!!!"<<endl;
system("pause");
}
}
}
void main() // 主函数
{
int h,l=1;
while(l)
{
system("cls");
system("color 7c");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"图书管理系统"<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" ------------------"<<endl;
cout<<" "<<"||管理员登陆 请按1||"<<endl;
cout<<" "<<"||学生登陆 请按2 ||"<<endl;
cout<<" "<<"||退出系统 请按0 ||"<<endl;
cout<<" -------------------"<<endl;
cout<<""<<endl;
cout<<" 请您选择登陆方式:";
cin>>h;
if(h>=0&&h<3)
{
switch(h)
{
case 0:
cout<<"谢谢光临本图书馆!"<<endl;
exit(0);
case 1:
Librarianland();
system("pause");
break;
case 2:
studentland();
system("pause");
break;
}
}
else
{
system("cls");
system("color 4e");
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<"您的操作是无效的!!!!"<<endl;
system("pause");
}
}
}
图书馆的管理系统。
怎样做一个管理系统 需要用什么软件,例如图书馆管理系统。。。
SqlServer2000和C# 来做。到图书馆找图书,或到网站中找源代码来弄,快捷方便。参考人家的,然后成为自己的。更多
不会C# 可以用C++或者C语言来代替吗?
新手一枚。。。
用 C++或者C语言 多费劲啊。 如果你有 C++或者C语言 编写能力。不差C#了。简单易学。方便界面绘制,哪怕是做BS 的。不建议用C++或者C语言,反而复杂了。
好吧
那我去学学C#
XXL
不客气。参考下代码。 在百度搜 【 图书馆管理系统 C#】 ,本来给你发链接了。百度屏蔽了。百度文库很多的。
图书馆 管理信息系统
图书馆管理信息系统 1.引言1.1 编写目的编写本文档的目的是根据数据库系统分析分析与设计人员和客户(图书读者)沟通的结果,对用户需求进行了全面细致的分析,深入描述《图书管理系统》的功能和性能与界面,确定该系统设计的限制和定义时的其他有效性需求。该数据库综合设计作业规格说明书的读者对象是45042LWM数据库系统设计和实现小组各个成员,主要包括系统的设计与文档编辑人员,数据库实现人员和系统测试人员,版权归45042LWM数据库系统设计与开发小组所有,严禁外传。1.2 项目背景随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理系统与软件,为此45042LWM数据库系统设计与开发小组通过组员之间的沟通与协调,结合所学数据库知识和相关教材,实现了《图书管理系统》的功能和性能。图书管理系统LMSV1.0是一套功能比较完善的数据管理软件,具有数据操作方便高效迅速等优点。该系统软件采用功能强大的数据库软件开发工具进行开发,具有很好的可移植性,可在应用范围较广的DOS、WINDOWS系列等操作系统上使用。除此以外,LMSV1.0可通过访问权限控制以及数据备份功能,确保数据的安全性。1.3 定义文档中采用的专门术语的定义及缩略词简要如下:LMS:Library Management System,图书管理系统;该系统:亦指Library Management System,图书管理系统;45042LWM:是图书管理数据库系统设计与开发小组组名。1.4 参考资料[1]郑人杰,殷人昆,陶永雷。《实用软件工程》(第二版)。北京:清华大学出版社,1997。[2]王珊,萨师瑄。《数据库系统概论》。高等教育出版社,2006年。[3]张立洪,郑利强等。《轻松掌握SQL》。电子工业出版社,2000年。[4]黄明,梁旭。《Visual Basic信息系统设计与开发实例》。机械工业出版社,2005年3月。[5]刘涛等。《Visual Basic数据库开发系统实例导航》。人民邮电出版社,2005年1月。2.任务概述2.1 目标《图书管理系统》针对的用户是单个中小型图书室或者个人,藏书的种类和数量较少,读者的数量和来源受到一定的限制。相应的需求有: 1.能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括: 1) 图书信息的录入、删除及修改。 2) 图书信息的多关键字检索查询。 3) 图书的出借、返还和资料统计。 2.能够对一定数量的读者进行相应的信息存储与管理,这其中包括: 1) 读者信息的登记、删除及修改。 2) 读者资料的统计与查询。3.能够对需要的统计结果提供列表显示输出。4.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。2.2 运行环境 Intel系列或者AMD 2500 以上系列等PC台式机或者便携式电脑等; 运行时占用内存:≤5MB; 所需硬盘空间:≤20MB;操作系统平台:中文Windows2000/XP或更高版本;数据库开发与实现工具:SQLServer2000个人版。2.3 条件与限制我们认为,一个更为完善的图书管理系统,应提供更为便捷与强大的信息查询功能,如相应的网络操作及服务,由于开发时间和所掌握的知识技能有限,该系统并未提供这一功能。对信息的保护手段仅限于设置用户级别,以及提供数据文件的备份,比较简单,不能防止恶意的破坏,安全性能有待进一步完善。安全性这也是今后开发数据库系统一个不容忽视的问题。3.数据描述3.1 静态数据图书管理系统的静态数据包括: 图书书籍信息: 书籍编号;书籍名称;书籍作者;出版社名称;出版日期;书籍页码;图书分类;图书状态; 读者: 读者编号;读者姓名;读者性别;种类编号;读者工作单位;读者电话号码;读者电子邮件地址;登记日期;读者密码; 借阅信息: 借阅编号;读者编号;读者姓名;书籍编号;书籍名称;出借日期;还书日期; 用户: 用户名;用户密码; 用户类型(权限级别); 读者种类信息: 种类编号; 种类名称; 借书期限; 有效期限; 书籍类别信息: 类别编号;类别名称;关键词;3.2 动态数据输入数据: 查询方式、查询关键字; 新建图书项、读者项; 图书项、读者项相应纪录更改; 备份数据恢复所需的数据备份文件; 借阅、返还的图书序号、读者借阅证号; 受限操作所需的密码;输出数据: 查询关键字确定的数据库记录的子集; 统计结果; 信息录入、删改结果(成功或失败); 图书借阅、返还操作结果并且可以显示出是否归还; 数据备份输出的数据备份文件;内部数据: 查询操作建立的索引;3.3 数据库描述数据库采用MicrosoftSQLServer2000数据库。数据库系统名称为45042LWM图书管理数据库系统。4.用户需求分析需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。4.1 抽取用户语义本系统着重从用户角度入手,主要涉及图书信息、系统用户信息、读者信息、图书借阅等多种数据管理。不同的用户享有不同的服务,而且是不同的角色。从系统管理的角度可将图书分为三类:图书信息管理、系统用户管理、读者数据管理。图书信息管理包括图书借还、查询等操作,系统用户管理包括系统用户类别和用户数据管理,读者数据管理包括读者类别管理和个人数据的录入、修改和删除。作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。我们主要从不同用户需求分析入手,分析设计结合参考资料而得出图书管理系统主要应具有以下功能:图书借阅者的需求是查询图书室所存的图书;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看、维护等。图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。一般情况下,图书借阅者只应该查询和维护本人的借书情况和个人信息。图书馆工作人员有修改图书借阅者借书和还书记录的权限。图书馆管理人员,数据安全性和保密性要求最高。45042LWM数据库系统设计与开发小组设计的图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,赋予其最高权限,管理员在删除某条图书借阅者基本信息记录时,应实现对该图书借阅者借阅记录的级联删除。同时对不同的读者来说,不但可以浏览图书,而且他们有各自不同的借书期限,这就是所谓的资深读者和普通读者的区别吧。 4.2 数据流图和数据字典图书管理系统的总体功能如下:(1) 图书的出借;(2) 图书的返回;(3) 图书信息查询;(4) 图书的增加与删除;(5) 图书管理员(系统管理员)查询统计图书和读者信息;(6) 图书管理系统数据备份;(7) 图书管理系统数据恢复;(8) 图书管理员口令修改等功能; 4.2.1 读者借书过程:(1)数据流图:A.图书信息;B.读者信息;C.图书访问记录;D.日期;(2)数据词典:A.数据源点描述:a. 名称:读者简要描述:借书、还书、查询及登记注册有关数据流:所借书本数目:b. 名称:日期简要描述:当日日期有关数据流:年月日数目: B. 数据流名词条描述:a.数据流名:读者ID说明:用以携带读者的唯一识别标识数据流来源:读者数据流去向:借书检验每个数据量流通量: b.数据流名:图书说明:记录图书的主要相关信息数据流来源:读者数据流去向:借书检验c.数据流名:借书信息说明:用于传递读者号和图书号数据流来源:借书检验数据流去向:借书登记d.数据流名:日期说明:提供当前日期信息数据流来源:日历数据流去向:借书检验,借书登记e.数据流名:读者信息说明:用于记录登记入库的读者信息数据流来源:读者库数据流去向:借书检验f.数据流名:图书信息说明:用于记录登记入库的图书信息数据流来源:图书库数据流去向:借书检验C.数据文件词条描述:a.数据文件名:读者信息表简述:存放读者信息输入数据:输出数据:读者信息数据文件组成:读者信息表由“读者信息”组成存储方式:关键码b.数据文件名:图书信息表简述:存放图书信息输入数据:输出数据:图书信息数据文件组成:图书信息表由“图书信息”组成存储方式:关键码 4.2.2 读者还书过程: 和上述3.4.1 读者借书过程相类似,有所不同的就是一个是读者借书,而这个是还书过程,数据词典不再赘述,数据流图如下: 图书读者 还书检验 还书登记检验错误还书信息图书访问记录 日历还书返回信息
4.2.3 读者查询书籍过程:(1)数据流图: D读者 查询许可检验数据查询图书访问记录读者库图书库检验错误 用户信息)查询信息日历A查询结果CB
A.图书信息;B.读者信息;C.图书访问记录;D.日期;
转载请注明出处51数据库 » 图书馆管理系统软件设计 图书馆管理系统设计