南航 图书馆管理系统课设.docx

上传人:b****1 文档编号:23117824 上传时间:2023-04-30 格式:DOCX 页数:25 大小:28.86KB
下载 相关 举报
南航 图书馆管理系统课设.docx_第1页
第1页 / 共25页
南航 图书馆管理系统课设.docx_第2页
第2页 / 共25页
南航 图书馆管理系统课设.docx_第3页
第3页 / 共25页
南航 图书馆管理系统课设.docx_第4页
第4页 / 共25页
南航 图书馆管理系统课设.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

南航 图书馆管理系统课设.docx

《南航 图书馆管理系统课设.docx》由会员分享,可在线阅读,更多相关《南航 图书馆管理系统课设.docx(25页珍藏版)》请在冰豆网上搜索。

南航 图书馆管理系统课设.docx

南航图书馆管理系统课设

 

南京航空航天大学

《C++程序设计》课程设计报告

图书馆管理系统

 

姓名:

学号:

院系:

信息科学与技术学院

日期:

2009.4.8

一、需求分析

在信息技术日益普及的今天,很多事物都在信息技术的帮助下成倍的提高了效率,同样,如果一个图书馆能有一套有效的人事管理系统,这对于图书馆的日常管理是大有益处的。

二、系统主要功能

本系统提供了一个图书馆管理的平台可,所提供的功能如下:

1.借书

2还书

3显示书库

4添加书籍

5删除书籍

6编辑书籍

7用户登陆

8用户注册

9显示用户信息

三、系统总框图

四、定义的函数及说明

classbook:

存储了一本书的信息

classstudent:

存储了一个学生的信息

classlib_sys:

图书管理的功能部分

intinput_data();

从文件读入数据

intoutput_data();

向文件输出数据

intuser_login();

用户登陆

intcheck_user_right();

检查用户权限

intcheck_admin_right();

检查管理员权限

bookedit_book_inner(bookk);

编辑一本书(程序内部使用)

bookadd_book_inner();

添加一本书(程序内部使用)

intshow_book_inner(bookk);

显示一本书(程序内部使用)

intfind_book_inner(char*isbn);

查找一本书(程序内部使用)

intfind_student_inner(char*username);

查找一个学生(程序内部使用)

intadd_book();

添加书籍

intedit_book(char*isbn);

编辑书籍

intdel_book(char*isbn,intmuch);

删除书籍

intshow_book();

显示书籍

intborrow_book();

借书

intreturn_book();

还书

intregister_user();

用户注册

char*get_username();

返回当前用户的用户名

intshow_user_detail();

显示用户信息

classManager:

界面实现部分

intwork();

显示和实现界面

五、特色算法

本程序把借书和用户关联在一起,而且出现的权限的概念,普通游客只能观看书籍列表,普通用户只能借书和还书,只有管理员才有权限对书籍信息和数量进行修改。

注:

当前默认管理员的帐户和密码都是admin

六、源程序

(见后页)

Main.cpp

#include"Manager.h"

main(){

Managerk;

k.work();

return0;

}

 

Book.h

#ifndefBOOK_H

#defineBOOK_H

classbook{

private:

charisbn[50];

charbookTitle[50];

charauthor[50];

charpublisher[50];

chardatepublished[50];

intleft;

friendclasslib_sys;

};

#endif

 

Student.h

#ifndefSTUDENT_H

#defineSTUDENT_H

classstudent{

private:

charusername[50];

charpassword[50];

intnum;

charisbn[50][50];

friendclasslib_sys;

};

#endif

 

Lib_sys.h

#ifndefLIB_SYS_H

#defineLIB_SYS_H

#include"book.h"

#include"student.h"

classlib_sys{

private:

intbook_tot;

intstudent_tot;

booklbook[100];

studentlstudent[100];

charusername[50];

charpassword[50];

intuser_state;//0isnouser,1islogin

public:

lib_sys(){

username[0]='\0';

password[0]='\0';

user_state=0;

book_tot=0;

student_tot=0;

}

intinput_data();

intoutput_data();

intuser_login();

intcheck_user_right();

intcheck_admin_right();

bookedit_book_inner(bookk);

bookadd_book_inner();

intshow_book_inner(bookk);

intfind_book_inner(char*isbn);

intfind_student_inner(char*username);

intadd_book();

intedit_book(char*isbn);

intdel_book(char*isbn,intmuch);

intshow_book();

intborrow_book();

intreturn_book();

intregister_user();

char*get_username(){

returnusername;

}

intshow_user_detail();

};

#endif

 

Lib_sys.cpp

#include"lib_sys.h"

#include

#include

#include

#include

#include

intlib_sys:

:

input_data(){

inti,j;

fstreamfbook,fstudent;

fbook.open("book.dat",ios:

:

in);

fstudent.open("student.dat",ios:

:

in);

if(!

fbook)return0;

if(!

fstudent)return0;

fbook>>book_tot;

fbook.ignore();

for(i=1;i<=book_tot;i++){

fbook.getline(lbook[i].isbn,50);

fbook.getline(lbook[i].bookTitle,50);

fbook.getline(lbook[i].author,50);

fbook.getline(lbook[i].publisher,50);

fbook.getline(lbook[i].datepublished,50);

fbook>>lbook[i].left;

fbook.ignore();

}

fbook.close();

fstudent>>student_tot;

fstudent.ignore();

for(i=1;i<=student_tot;i++){

fstudent.getline(lstudent[i].username,50);

fstudent.getline(lstudent[i].password,50);

fstudent>>lstudent[i].num;

fstudent.ignore();

for(j=1;j<=lstudent[i].num;j++)

fstudent.getline(lstudent[i].isbn[j],50);

}

fstudent.close();

return1;

}

intlib_sys:

:

output_data(){

inti,j;

fstreamfbook,fstudent;

fbook.open("book.dat",ios:

:

out);

fstudent.open("student.dat",ios:

:

out);

if(!

fbook)return0;

if(!

fstudent)return0;

fbook<

for(i=1;i<=book_tot;i++){

fbook<

fbook<

fbook<

fbook<

fbook<

fbook<

}

fbook.close();

fstudent<

for(i=1;i<=student_tot;i++){

fstudent<

fstudent<

fstudent<

for(j=1;j<=lstudent[i].num;j++)

fstudent<

}

fstudent.close();

return1;

}

intlib_sys:

:

user_login(){

charua[50],pw[50];

inti;

cout<<"username:

";

cin.getline(ua,50);

cout<<"password:

";

cin.getline(pw,50);

for(i=1;i<=student_tot;i++){

//cout<

if(strcmp(lstudent[i].username,ua)==0&&strcmp(lstudent[i].password,pw)==0){

user_state=1;

strcpy(username,ua);

strcpy(password,pw);

//cout<

//cout<

break;

}

}

if(user_state)cout<<"Loginsuccessfully.\n";

elsecout<<"Usernotexistorwrongpassword.\n";

returnuser_state;

}

intlib_sys:

:

check_user_right(){

returnuser_state;

}

intlib_sys:

:

check_admin_right(){

if(!

user_state)return0;

if(strcmp(username,"admin")==0&&strcmp(password,"admin")==0)return1;

return0;

}

booklib_sys:

:

edit_book_inner(bookk){

charch;

charst[50];

if(!

check_admin_right())returnk;

ch='0';

while(!

(ch=='6')){

system("cls");

cout<<"请输入要修改的项目,在新数据输入状态下直接回车表示取消修改\n";

cout<<"1.isbn\n";

cout<<"2.书名\n";

cout<<"3.作者\n";

cout<<"4.出版社\n";

cout<<"5.出版时间\n";

cout<<"6.确定\n";

cout.flush();

ch=getch();

switch(ch){

case'1':

cout<<"当前的isbn是:

"<

cout<<"请输入新数据:

";

cin.getline(st,50);

if(!

strlen(st)==0)strcpy(k.isbn,st);

break;

case'2':

cout<<"当前的书名是:

"<

cout<<"请输入新数据:

";

cin.getline(st,50);

if(!

strlen(st)==0)strcpy(k.bookTitle,st);

break;

case'3':

cout<<"当前的作者是:

"<

cout<<"请输入新数据:

";

cin.getline(st,50);

if(!

strlen(st)==0)strcpy(k.author,st);

break;

case'4':

cout<<"当前的出版社是:

"<

cout<<"请输入新数据:

";

cin.getline(st,50);

if(!

strlen(st)==0)strcpy(k.publisher,st);

break;

case'5':

cout<<"当前的出版时间是:

"<

cout<<"请输入新数据:

";

cin.getline(st,50);

if(!

strlen(st)==0)strcpy(k.datepublished,st);

break;

case'6':

returnk;

break;

default:

cout<<"输入错误\n";

}

cout.flush();

}

returnk;

}

booklib_sys:

:

add_book_inner(){

bookk;

charst[50];

intw;

if(!

check_admin_right())returnk;

cout<<"请输入书籍信息,isbn为必填项\n";

cout<<"请输入isbn:

";

cin.getline(st,50);

strcpy(k.isbn,st);

cout<<"请输入书名:

";

cin.getline(st,50);

strcpy(k.bookTitle,st);

cout<<"请输入作者:

";

cin.getline(st,50);

strcpy(k.author,st);

cout<<"请输入出版社:

";

cin.getline(st,50);

strcpy(k.publisher,st);

cout<<"请输入出版时间:

";

cin.getline(st,50);

strcpy(k.datepublished,st);

cout<<"请输入数的数量:

";

cin>>w;

k.left=w;

returnk;

}

intlib_sys:

:

show_book_inner(bookk){

cout<

cout<<"isbn:

"<

cout<<"书名:

"<

cout<<"作者:

"<

cout<<"出版社:

"<

cout<<"出版时间:

"<

cout<<"数量:

"<

return1;

}

intlib_sys:

:

find_book_inner(char*isbn){

inti;

for(i=1;i<=book_tot;i++)

if(strcmp(lbook[i].isbn,isbn)==0)break;

if(i<=book_tot&&strcmp(lbook[i].isbn,isbn)==0)returni;

elsereturn0;

}

intlib_sys:

:

find_student_inner(char*username){

inti;

for(i=1;i<=student_tot;i++)

if(strcmp(lstudent[i].username,username)==0)break;

if(i<=student_tot&&strcmp(lstudent[i].username,username)==0)returni;

elsereturn0;

}

intlib_sys:

:

add_book(){

inti;

bookk;

if(!

check_admin_right())return0;

k=add_book_inner();

for(i=1;i<=book_tot;i++)

if(strcmp(lbook[i].isbn,k.isbn)==0)break;

if(i<=book_tot&&strcmp(lbook[i].isbn,k.isbn)==0)

lbook[i].left+=k.left;

elseif(strlen(k.isbn)==0)return0;

else{

book_tot++;

lbook[book_tot]=k;

}

return1;

}

intlib_sys:

:

edit_book(char*isbn){

inti;

bookk;

if(!

check_admin_right())return0;

for(i=1;i<=book_tot;i++)

if(strcmp(lbook[i].isbn,isbn)==0)break;

if(i<=book_tot&&strcmp(lbook[i].isbn,isbn)==0){

k=lbook[i];

k=edit_book_inner(k);

lbook[i]=k;

return1;

}

return0;

}

intlib_sys:

:

del_book(char*isbn,intmuch){

inti,j;

if(!

check_admin_right())return0;

for(i=1;i<=book_tot;i++)

if(strcmp(lbook[i].isbn,isbn)==0)break;

if(i<=book_tot&&strcmp(lbook[i].isbn,isbn)==0){

if(lbook[i].left>much)lbook[i].left-=much;

else{

for(j=i;j<=book_tot-1;j++)

lbook[j]=lbook[j+1];

}

return1;

}

return0;

}

intlib_sys:

:

show_book(){

inti;

cout<<"总数:

"<

for(i=1;i<=book_tot;i++)

show_book_inner(lbook[i]);

return1;

}

intlib_sys:

:

borrow_book(){

charisbn[50];

intp,s,much,i;

if(!

check_user_right())return0;

cout<<"请输入数的isbn:

";

cin.getline(isbn,50);

if(!

(p=find_book_inner(isbn)))return0;

if(!

(s=find_student_inner(username)))return0;

cout<<"请输入借书的数量:

";

cin>>much;

if(lbook[p].left

cout<<"剩余量不足\n";

return0;

}elseif(10-lstudent[s].num

cout<<"您目前不能借这么多书\n";

return0;

}else{

lbook[p].left-=much;

for(i=1;i<=much;i++)

strcpy(lstudent[s].isbn[i+lstudent[s].num],isbn);

lstudent[s].num+=much;

return1;

}

}

intlib_sys:

:

return_book(){

charisbn[50];

intp,s,much,r,w,i,j;

if(!

check_user_right())return0;

cout<<"请输入数的isbn:

";

cin.getline(isbn,50);

if(!

(p=find_book_inner(isbn)))return0;

if(!

(s=find_student_inner(userna

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

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1