


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京航空航天大学C+程序设计课程设计报告图书馆管理系统姓名: 学号: 院系:信息科学与技术学院日期:2009.4.8目 录目 录2一、需求分析2二、系统主要功能2三、系统总框图2四、定义的函数及说明3五、特色算法4六、源程序4一、需求分析 在信息技术日益普及的今天,很多事物都在信息技术的帮助下成倍的提高了效率,同样,如果一个图书馆能有一套有效的人事管理系统,这对于图书馆的日常管理是大有益处的。二、系统主要功能本系统提供了一个图书馆管理的平台可,所提供的功能如下: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();用户登陆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六、源程序 (见后页)Main.cpp#includeManager.hmain()Manager k;k.work();return 0;Book.h#ifndef BOOK_H#define BOOK_Hclass bookprivate:char isbn50;char bookTitle50;char author50;char publisher50;char datepublished50;int left;friend class lib_sys;#endifStudent.h#ifndef STUDENT_H#define STUDENT_Hclass studentprivate:char username50;char password50;int num;char isbn5050;friend class lib_sys;#endifLib_sys.h#ifndef LIB_SYS_H#define LIB_SYS_H#includebook.h#includestudent.hclass lib_sysprivate:int book_tot;int student_tot;book lbook100;student lstudent100;char username50;char password50;int user_state; /0 is no user , 1 is loginpublic:lib_sys()username0=0;password0=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);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();#endifLib_sys.cpp#includelib_sys.h#include#include#include#include#includeint lib_sys:input_data()int i,j;fstream fbook,fstudent;fbook.open(book.dat,ios:in);fstudent.open(student.dat,ios:in);if (!fbook) return 0;if (!fstudent) return 0;fbook book_tot;fbook.ignore();for (i=1;i lbooki.left;fbook.ignore();fbook.close();fstudent student_tot;fstudent.ignore();for (i=1;i lstudenti.num;fstudent.ignore();for (j=1;j=lstudenti.num;j+)fstudent.getline(lstudenti.isbnj,50);fstudent.close();return 1;int lib_sys:output_data()int i,j;fstream fbook,fstudent;fbook.open(book.dat,ios:out);fstudent.open(student.dat,ios:out);if (!fbook) return 0;if (!fstudent) return 0;fbook book_tot endl;for (i=1;i=book_tot;i+)fbook lbooki.isbn endl;fbook lbooki.bookTitle endl;fbook lbooki.author endl;fbook lbooki.publisher endl;fbook lbooki.datepublished endl;fbook lbooki.left endl;fbook.close();fstudent student_tot endl;for (i=1;i=student_tot;i+)fstudent lstudenti.username endl;fstudent lstudenti.password endl;fstudent lstudenti.num endl;for (j=1;j=lstudenti.num;j+)fstudent lstudenti.isbnj endl;fstudent.close();return 1;int lib_sys:user_login()char ua50,pw50;int i;cout username:;cin.getline(ua,50);cout password:;cin.getline(pw,50);for (i=1;i=student_tot;i+)/cout lstudenti.username endl lstudenti.password endl;if (strcmp(lstudenti.username,ua)=0 & strcmp(lstudenti.password,pw)=0)user_state=1;strcpy(username,ua);strcpy(password,pw);/cout username endl;/cout password endl;break;if (user_state) cout Login successfully.n;else cout User not exist or wrong password.n;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,admin)=0 & strcmp(password,admin)=0) return 1;return 0;book lib_sys:edit_book_inner(book k)char ch;char st50;if (!check_admin_right() return k;ch=0;while (!(ch=6)system(cls);cout 请输入要修改的项目,在新数据输入状态下直接回车表示取消修改n;cout 1.isbnn;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是: k.isbn endl;cout 请输入新数据: ;cin.getline(st,50);if (!strlen(st)=0)strcpy(k.isbn,st);break;case 2:cout 当前的书名是: k.bookTitle endl;cout 请输入新数据: ;cin.getline(st,50);if (!strlen(st)=0)strcpy(k.bookTitle,st);break;case 3:cout 当前的作者是: k.author endl;cout 请输入新数据: ;cin.getline(st,50);if (!strlen(st)=0)strcpy(k.author,st);break;case 4:cout 当前的出版社是: k.publisher endl;cout 请输入新数据: ;cin.getline(st,50);if (!strlen(st)=0)strcpy(k.publisher,st);break;case 5:cout 当前的出版时间是: k.datepublished endl;cout 请输入新数据: ;cin.getline(st,50);if (!strlen(st)=0)strcpy(k.datepublished,st);break;case 6:return k; break;default:cout 输入错误n;cout.flush();return k;book lib_sys:add_book_inner()book k;char st50;int w;if (!check_admin_right() return k;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 w;k.left=w;return k;int lib_sys:show_book_inner(book k)cout endl;cout isbn: k.isbn endl;cout 书名: k.bookTitle endl;cout 作者: k.author endl;cout 出版社: k.publisher endl;cout 出版时间: k.datepublished endl;cout 数量: k.left endl;return 1;int lib_sys:find_book_inner(char *isbn)int i;for (i=1;i=book_tot;i+)if (strcmp(lbooki.isbn,isbn)=0) break;if (i=book_tot & strcmp(lbooki.isbn,isbn)=0) return i;else return 0;int lib_sys:find_student_inner(char *username)int i;for (i=1;i=student_tot;i+)if (strcmp(lstudenti.username,username)=0) break;if (i=student_tot & strcmp(lstudenti.username,username)=0) return i;else return 0;int lib_sys:add_book()int i;book k;if (!check_admin_right() return 0;k=add_book_inner();for (i=1;i=book_tot;i+)if (strcmp(lbooki.isbn,k.isbn)=0) break;if (i=book_tot & strcmp(lbooki.isbn,k.isbn)=0)lbooki.left+=k.left;else if (strlen(k.isbn)=0) return 0;elsebook_tot+;lbookbook_tot=k;return 1;int lib_sys:edit_book(char *isbn)int i;book k;if (!check_admin_right() return 0;for (i=1;i=book_tot;i+)if (strcmp(lbooki.isbn,isbn)=0) break;if (i=book_tot & strcmp(lbooki.isbn,isbn)=0)k=lbooki;k=edit_book_inner(k);lbooki=k;return 1;return 0;int lib_sys:del_book(char *isbn,int much)int i,j;if (!check_admin_right() return 0;for (i=1;i=book_tot;i+)if (strcmp(lbooki.isbn,isbn)=0) break;if (imuch) lbooki.left-=much;elsefor (j=i;j=book_tot-1;j+)lbookj=lbookj+1;return 1;return 0;int lib_sys:show_book()int i;cout 总数: book_tot endl;for (i=1;i=book_tot;i+)show_book_inner(lbooki);return 1;int lib_sys:borrow_book()char isbn50;int p,s,much,i;if (!check_user_right() return 0;cout 请输入数的isbn: ;cin.getline(isbn,50);if (!(p=find_book_inner(isbn) return 0;if (!(s=find_student_inner(username) return 0;cout much;if (lbookp.leftmuch)cout 剩余量不足n;return 0;else if (10-lstudents.nummuch)cout 您目前不能借这么多书n;return 0;elselbookp.left-=much;for (i=1;i=much;i+)strcpy(lstudents.isbni+lstudents.num,isbn);lstudents.num+=much;return 1;int lib_sys:return_book()char isbn50;int p,s,much,r,w,i,j;if (!check_user_right() return 0;cout 请输入数的isbn: ;cin.getline(isbn,50);if (!(p=find_book_inner(isbn) return 0;if (!(s=find_student_inner(username) return 0;cout much;for (w=1;w=much;w+)r=0;for (i=1;i=lstudents.num;i+)if (strcmp(lstudents.isbni,isbn)=0)for (j=i;j=lstudents.num-1;j+)strcpy(lstudents.isbnj,lstudents.isbnj+1);lstudents.num-;lbookp.left+;r=1;break;if (!r)cout 您没有借这么多书n;if (w=1) return 0;break;return 1;int lib_sys:register_user()char st50;int i;cout 用户名: ;cin.getline(st,50);for (i=1;i=student_tot;i+)if (strcmp(lstudenti.username,st)=0)cout 用户已存在n;return 0;student_tot+;strcpy(lstudentstudent_tot.username,st);cout 密码: ;cin.getline(st,50);strcpy(lstudentstudent_tot.password,st);lstudentstudent_tot.num=0;return 1;int lib_sys:show_user_detail()int s,i;if (!check_user_right() return 0;if (!(s=find_student_inner(username) return 0;cout 当前用户: username endl;cout 已借书籍总数: lstudents.num 0)cout 所借书籍isbn如下:n;for (i=1;i=lstudents.num;i+)cout lstudents.isbni endl;return 1;Manager.h#ifndef MANAGER_H#define MANAGER_H#includelib_sys.hclass Managerprivate:lib_sys msys;public:Manager()msys.input_data();int work();#endifManager.cpp#includeManager.h#include#include#includeint Manager:work()char ch;char st50;int w;dosystem(cls);cout 图书馆管理系统nn;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;cout 6.编辑书籍n;if (!msys.c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽马鞍山市博望区公办幼儿园招聘派遣制专任教师17人笔试模拟试题及答案解析
- 2025北京市海淀区四王府小学附设幼儿班招聘外聘保健医、出纳员笔试参考题库附答案解析
- 2025福建三明市教育局部分直属学校选聘16人(三)笔试模拟试题及答案解析
- 2025重庆市南岸区花园路街道公益性岗位招聘8人考试备考试题及答案解析
- 2025山东泰开电缆有限公司招聘营销经理岗位笔试备考试题及答案解析
- 2025广西南宁市江南区第一幼儿园宣德分园招聘笔试模拟试题及答案解析
- 2025丽水庆元县城投公司下属城发建设公司公开招聘工作人员11人考试参考题库附答案解析
- 2025重庆渝北区空港佳园第二幼儿园教师招聘1人考试模拟试题及答案解析
- 2025年武宁县暑期教师选调【160人】考试备考试题及答案解析
- 2025四川宜宾市江安县第一批农业技术(经济)助理岗招聘21人考试参考题库附答案解析
- 2024新一代变电站集中监控系统系列规范第2部分:设计规范
- 洁净手术部技术要求
- 2024-2030年中国儿童室内游乐园行业市场发展现状及发展趋势与投资前景研究报告
- DL∕T 1945-2018 高压直流输电系统换流变压器标准化接口规范
- DL∕T 1848-2018 220kV和110kV变压器中性点过电压保护技术规范
- 人教PEP版(三起)五年级英语暑假专练-阅读理解题(含答案)
- QB/T 2660-2024 化妆水(正式版)
- 《光伏发电站无功补偿技术规范》
- 交通工程专业英语裴玉龙省公开课金奖全国赛课一等奖微课获奖
- 物资、百货、五金采购 投标方案(技术方案)
- 隐写分析技术及应用研究
评论
0/150
提交评论