南航 图书馆管理系统课设
更新时间:2024-06-25 08:19:01 阅读量: 综合文库 文档下载
- 南航官网推荐度:
- 相关推荐
南京航空航天大学
《C++程序设计》课程设计报告
图书馆管理系统
姓名: 学号:
院系:信息科学与技术学院 日期:2009.4.8
目 录
目 录 .............................................................................................................................................. 2 一、需求分析 ................................................................................................................................... 3 二、系统主要功能 ........................................................................................................................... 3 三、系统总框图 ............................................................................................................................... 3 四、定义的函数及说明 ................................................................................................................... 3 五、特色算法 ................................................................................................................................... 4 六、源程序....................................................................................................................................... 4
2
一、需求分析
在信息技术日益普及的今天,很多事物都在信息技术的帮助下成倍的提高了效率,同样,如果一个图书馆能有一套有效的人事管理系统,这对于图书馆的日常管理是大有益处的。
二、系统主要功能
本系统提供了一个图书馆管理的平台可,所提供的功能如下: 1.借书 2还书 3显示书库 4添加书籍 5删除书籍 6编辑书籍 7用户登陆 8用户注册 9显示用户信息
三、系统总框图
主控模块 图书管理模块 界面管理模块 功能实现部分 文件存取 四、定义的函数及说明
class book:存储了一本书的信息
class student:存储了一个学生的信息 class lib_sys:图书管理的功能部分 int input_data(); 从文件读入数据 int output_data(); 向文件输出数据 int user_login(); 用户登陆
3
int check_user_right(); 检查用户权限
int check_admin_right(); 检查管理员权限
book edit_book_inner(book k); 编辑一本书(程序内部使用) book add_book_inner(); 添加一本书(程序内部使用) int show_book_inner(book k); 显示一本书(程序内部使用)
int find_book_inner(char *isbn); 查找一本书(程序内部使用)
int find_student_inner(char *username); 查找一个学生(程序内部使用) int add_book(); 添加书籍
int edit_book(char *isbn); 编辑书籍
int del_book(char *isbn,int much); 删除书籍
int show_book(); 显示书籍
int borrow_book(); 借书
int return_book(); 还书
int register_user(); 用户注册
char * get_username(); 返回当前用户的用户名 int show_user_detail(); 显示用户信息
class Manager:界面实现部分 int work(); 显示和实现界面
五、特色算法
本程序把借书和用户关联在一起,而且出现的权限的概念,普通游客只能观看书籍列表,普通用户只能借书和还书,只有管理员才有权限对书籍信息和数量进行修改。
注:当前默认管理员的帐户和密码都是admin
六、源程序
(见后页)
4
Main.cpp
#include\
main(){
Manager k; k.work(); return 0; }
Book.h
#ifndef BOOK_H #define BOOK_H
class book{ private:
char isbn[50];
char bookTitle[50]; char author[50]; char publisher[50]; char datepublished[50]; int left;
friend class lib_sys; };
#endif
Student.h
#ifndef STUDENT_H #define STUDENT_H
class student{ private:
char username[50]; char password[50]; int num;
char isbn[50][50]; friend class lib_sys; };
5
#endif
Lib_sys.h
#ifndef LIB_SYS_H #define LIB_SYS_H
#include\#include\
class lib_sys{ private:
int book_tot; int student_tot;
book lbook[100];
student lstudent[100];
char username[50]; char password[50];
int user_state; //0 is no user , 1 is login
public:
lib_sys(){
username[0]='\\0'; password[0]='\\0'; user_state=0; book_tot=0; student_tot=0; }
int input_data(); int output_data();
int user_login();
int check_user_right(); int check_admin_right();
book edit_book_inner(book k); book add_book_inner();
int show_book_inner(book k); int find_book_inner(char *isbn);
6
int find_student_inner(char *username);
int add_book();
int edit_book(char *isbn);
int del_book(char *isbn,int much); int show_book();
int borrow_book(); int return_book();
int register_user(); char * get_username(){ return username; }
int show_user_detail(); };
#endif
Lib_sys.cpp
#include\
#include
#include
int lib_sys::input_data(){ int i,j;
fstream fbook,fstudent;
fbook.open(\
fstudent.open(\ if (!fbook) return 0; if (!fstudent) return 0;
fbook >> book_tot; fbook.ignore();
for (i=1;i<=book_tot;i++){
fbook.getline(lbook[i].isbn,50);
fbook.getline(lbook[i].bookTitle,50);
7
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();
return 1; }
int lib_sys::output_data(){ int i,j;
fstream fbook,fstudent;
fbook.open(\
fstudent.open(\ if (!fbook) return 0; if (!fstudent) return 0;
fbook << book_tot << endl; for (i=1;i<=book_tot;i++){
fbook << lbook[i].isbn << endl;
fbook << lbook[i].bookTitle << endl; fbook << lbook[i].author << endl; fbook << lbook[i].publisher << endl; fbook << lbook[i].datepublished << endl; fbook << lbook[i].left << endl; }
fbook.close();
fstudent << student_tot << endl; for (i=1;i<=student_tot;i++){
8
fstudent << lstudent[i].username << endl; fstudent << lstudent[i].password << endl; fstudent << lstudent[i].num << endl; for (j=1;j<=lstudent[i].num;j++)
fstudent << lstudent[i].isbn[j] << endl; }
fstudent.close();
return 1; }
int lib_sys::user_login(){ char ua[50],pw[50]; int i;
cout << \ cin.getline(ua,50); cout << \ cin.getline(pw,50);
for (i=1;i<=student_tot;i++){
//cout << lstudent[i].username << endl << lstudent[i].password << endl; if (strcmp(lstudent[i].username,ua)==0 && strcmp(lstudent[i].password,pw)==0){ user_state=1;
strcpy(username,ua); strcpy(password,pw);
//cout << username << endl; //cout << password << endl; break; } }
if (user_state) cout << \ else cout << \ return user_state; }
int lib_sys::check_user_right(){ return user_state; }
int lib_sys::check_admin_right(){ if (!user_state) return 0;
if (strcmp(username,\ return 0;
9
}
book lib_sys::edit_book_inner(book k){ char ch; char st[50];
if (!check_admin_right()) return k; ch='0';
while (!(ch=='6')){ system(\
cout << \请输入要修改的项目,在新数据输入状态下直接回车表示取消修改\\n\ cout << \ cout << \书名\\n\ cout << \作者\\n\ cout << \出版社\\n\ cout << \出版时间\\n\ cout << \确定\\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':
10
#include\
class Manager{ private:
lib_sys msys;
public:
Manager(){
msys.input_data(); }
int work(); };
#endif
Manager.cpp
#include\
#include
int Manager::work(){ char ch; char st[50]; int w; do{
system(\
cout << \图书馆管理系统\\n\\n\ cout << \ 当前用户: \
if (msys.check_user_right()) cout << msys.get_username() << endl; else cout << \游客\\n\ cout << endl;
cout << \1.借书\\n\ cout << \2.还书\\n\ cout << \3.显示书库\\n\ if (msys.check_admin_right()){ cout << \4.添加书籍\\n\ cout << \5.删除书籍\\n\
16
cout << \6.编辑书籍\\n\}
if (!msys.check_user_right()){ cout << \7.用户登陆\\n\ cout << \8.用户注册\\n\}
if (msys.check_user_right()){
cout << \9.显示用户信息\\n\}
cout << \0.退出\\n\\n\cout << \请输入您的选择: \
cout.flush();
ch=getch();
cout << ch << endl; //cin >> ch; switch (ch){ case '1':
if (msys.borrow_book()) cout << \操作成功\\n\ else cout << \操作失败\\n\ break; case '2':
if (msys.return_book()) cout << \操作成功\\n\ else cout << \操作失败\\n\ break; case '3':
msys.show_book(); break; case '4':
if (msys.add_book()) cout << \操作成功\\n\ else cout << \操作失败\\n\ break; case '5':
if (!msys.check_admin_right()){ cout << \操作失败\ break; }
cout << \请输入isbn: \ cin.getline(st,50); cout << \请输入数量: \ cin >> w;
if (msys.del_book(st,w)) cout << \操作成功\\n\
17
}
else cout << \操作失败\\n\ break; case '6':
if (!msys.check_admin_right()){ cout << \操作失败\\n\ break; }
cout << \请输入isbn: \ cin.getline(st,50);
if (msys.edit_book(st)) cout << \操作成功\\n\ else cout << \操作失败\\n\ break; case '7':
if (msys.user_login()) cout << \操作成功\\n\ else cout << \操作失败\\n\ break; case '8':
if (msys.register_user()) cout << \操作成功\\n\ else cout << \操作失败\\n\ break; case '9':
if (!msys.show_user_detail()) cout << \操作失败\\n\ break; case '0':
msys.output_data(); break; default:
cout << \操作失败\\n\ }
cout.flush(); system(\
cin.ignore(100,'\\n'); }while (!(ch=='0')); return 1;
18
正在阅读:
南航 图书馆管理系统课设06-25
黑龙江省注册咨询工程师考试第五科考试技巧每日一讲(6月24日)04-08
2010年春季《地球科学概论A》期末 考试题(B卷)04-24
病句修改做题技巧08-21
2008年G题 智能救援小车 - 图文11-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 南航
- 管理系统
- 图书馆
- 注重家庭家教家风 凝聚向善向上力量
- 2015年中国高校校友捐赠20强各人名单
- 南和县招商引资策略报告
- 长郡学习心得——胡天斌
- 2018-2019-全省优秀档案工作者事迹材料(精选多篇)-范文word版
- 摇号中的平等权
- 二年级数学电子教案文档 - 图文
- 薪酬管理与员工激励 外文文献翻译
- 监理工程师《合同管理》复习题及答案
- 工控机与应用实验指导书(内容)
- 2018新版部编人教版二年级下册语文全册教案
- 2017-2018七年级第二学期第三次月考质量检测试卷及答案
- 毕业论文 浅析物联网技术及应用
- C语言复习题集(2013级)
- 心意记录
- 杨春-论初中语文课堂如何有效开展小组合作学习
- 人教版五年级下册数学全册教案
- 古城中学2011年初中毕业会考及高中招生数学模拟试卷
- 2015中央电大经济学与生活形成性考试答案
- 生产(技术)科科长安全生产责任制度