C++课程设计图书管理系统档案管理系统.docx
- 文档编号:27370691
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:28
- 大小:862.90KB
C++课程设计图书管理系统档案管理系统.docx
《C++课程设计图书管理系统档案管理系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计图书管理系统档案管理系统.docx(28页珍藏版)》请在冰豆网上搜索。
C++课程设计图书管理系统档案管理系统
计算机科学与技术学院
《C高级语言程序设计》课程设计报告
(2014/2015学年第一学期)
学生姓名:
学生专业:
学生班级:
学生学号:
指导教师:
20015年1月9日
计算机科学与技术学院
课程设计任务书
课程设计名称
《C高级语言程序设计》课程设计
课程设计题目
档案管理系统
学生姓名
专业班级
学号
课程设计任务内容
[问题描述]
档案管理系统是企业管理中的一个子系统,功能模块如下:
借阅模块:
此模块在通过用户的身份验证后实现档案的借阅功能。
归还模块:
此模块用于在用户的身份验证后实现档案的借阅功能。
档案维护模块:
此模块用于实现档案的增加,删除,修改,删除和全部删除功能。
用户维护模块:
此模块用于实现用户信息的增加,删除,修改,删除,记录用户所借档案信息等功能。
[基本要求]
(1)系统以菜单方式工作,至少实现对档案的正常管理及各项功能实现。
(2)用c或者c++完成,源程序可读性强。
[测试要求]
(1)能正确运行出结果。
(2)具有友好的界面和提示信息。
指导教师:
时间:
年月日
计算机科学与技术学院
课程设计成绩评审表
课程设计名称
《C高级语言程序设计》课程设计
课程设计题目
档案管理系统
学生姓名
专业班级
同组人
无
学号
指导教师
设计成绩
评价内容
签字:
时间:
年月日
目录
第一章、设计问题描述与分析………………………………………………………………………………1
第二章、算法设计与流程图…………………………………………………………………………………2
2.1、算法设计…………………………………………………………………………………………………2
2.2、流程图……………………………………………………………………………………………………3
第三章、程序设计编码与测试………………………………………………………………………………4
3.1、程序设计代码………………………………………………………………………………………4
3.2、程序测试…………………………………………………………………………………………20
第四章、设计过程总结与分析………………………………………………………………………………21
附录程序流程图………………………………………………………………………………………23
程序代码……………………………………………………………………………………………………24
第一章设计问题描述与分析
档案,对于一个具体单位或个人其作用体现在以下方面:
1、档案是一个单位或个人历史的真实、全面的反映。
2、档案是一个单位或个人维护自身权益的重要工具。
3、档案是一个单位规范管理的基础。
4、档案我们积累和传播知识重要载体。
5、档案是开展单位文化建设的重要素材,特别是对于企业建立企业文化有不可替代的作用。
6、档案是一个单位或个人建立信用,在社会活动、生产经营等方面建立和利用信用体系,获得发展最有力的工具。
最后,档案还是我们国家和民族文化建立历史记忆,传承文明的重要载体,是“今世可以知古,后世可以知今”的重要素材。
档案管理工作是社会各种企事业单位的各项工作的一个重要部分。
面对庞大的信息量,如何有效地提高档案信息管理工作的效率是一个急需解决的问题。
档案管理系统的设计目标是实现对各类信息的科学化、规范化管理,提高管理的效率,为高水平的企业管理提供保证。
档案管理系统,为企事档业单位的案现代化管理,提供完整的解决方案,档案管理系统可以自成系统,为用户提供完整的电子档案管理和查询功能。
档案管理系统作为企业管理中的一个子系统,与其它子系统,如人事管理系统、后勤管理系统等一起构成企业信息管理系统,为企业管理信息化提供一个子功能。
所以,几乎所有的大、中、小企业都需要一套这样的管理系统来提高日常的工作效率。
经分析档案管理系统一般主要有以下几项功能要求:
●档案的录入与修改,包括档案编号,档案名称,可以修改档案的名称等。
●档案的查看,包括档案的状态,档案的编号,档案的名称。
●档案的全部删除功能,实现档案的清空。
●档案的借阅和归还功能,实现档案是否在架可借的记录显示,方便用户对档案的借阅。
●用户信息的录入与修改,包括用户编号,用户密码等。
●用户信息的查找,包括用户的数量,用户的编号,用户的名称,用户所借阅的档案编号。
●用户信息的全部删除,实现用户的清空处理。
●用户信息的删除功能,可以实现用户信息的单个删除。
功能的齐全与操作的方便性,将大大提高档案的管理效率,可以说,档案管理系统是每个企业办公当中必备的一套管理系统,其需求是不言面喻的。
第二章算法设计与流程图
2.1算法设计
本程序计划实现的程序界面:
档案管理系统
1借阅
2归还
3档案维护
4用户维护
0退出
计划通过定义四个类:
用户类;用户库类;档案类;档案库类实现以上功能。
其中,各个模块实现如下。
借阅模块:
此模块在通过用户的身份验证后实现档案的借阅功能。
首先主函数定义一个int型变量choise接收用户输入的操作数,通过switch(),判断用户的需要执行的操作,调用档案库类中的函数判断所需要的档案是否在架,显示输出判断结果。
若在架则通过tag变量标记此书。
归还模块:
此模块用于在用户的身份验证后实现档案的借阅功能。
首先当档案中的retrecord()函数被调用。
该档案的标记是否在架的变量被设置为1,代表该档案已归还,并显示输出提示语。
档案维护模块:
此模块用于实现档案的增加,删除,修改,删除和全部删除功能。
在用户做出选择后,接受该选择的变量通过switch()判断用户所要执行的操作。
此模块的功能是在档案类中实现,通过intretrecord(intrecordid)、voiddisp()、函数实现删除、归还、增加档案操作和借档案操作。
用户维护模块:
此模块用于实现用户信息的增加,删除,修改,删除,记录用户所借档案信息等功能。
在用户做出选择后,接受该选择的变量通过switch()判断用户所要执行的操作。
此模块的功能是在用户类中实现,通过voidborrowrecorder(intrecordid)、intretrecord(intrecordid)等成员函数,首先检测该用户的借阅档案数是否已超上限,若达到上限显示提示字符,否则实现用户借阅档案、归还档案信息的记录操作。
2.2流程图
图2—1
第三章程序设计编码与测试
3.1程序设计代码
#include
#include
usingnamespacestd;
//用户类,实现对用户的信息的描述
classUsers
{private:
inttag;//删除标记,表示是否存在1:
已删0:
未删
intno;//用户编号
charname[10];//用户姓名
intborrecord[Maxbor];//所借档案
public:
Users(){}
char*getname(){returnname;}//获取姓名
intgettag(){returntag;}//获取删除标记
intgetno(){returnno;}//获取用户编号
voidsetname(charna[])//设置姓名
strcpy(name,na);}
voiddeluser(){tag=1;}//设置删除标记1:
已删0:
未删
voidadduser(intn,char*na)//增加用户
{tag=0;
no=n;
strcpy(name,na);
for(inti=0;i borrecord[i]=0;//还未借阅,全部设置为0} voidborrowrecorder(intrecordid)//借书操作 {for(inti=0;i borrecord[i]=recordid;//存储档案的编号表示档案借阅 intretrecord(intrecordid)//还书操作 {for(inti=0;i voiddisp()//读出用户信息 {cout< ["; for(inti=0;i if(borrecord[i]! =0) cout< cout<<"]"< //用户类库,实现建立用户的个人资料 classRDatabase {private: inttop;//用户记录指针 Usersuser[Maxr];//用户记录 public: RDatabase()//构造函数,将reader.txt读到read[]中 {Userss; top=-1; fstreamfile("用户文件.txt",ios: : in);//打开一个输入文件 while (1) {file.read((char*)&s,sizeof(s));//将reader.txt读到read[]中 if(! file)break; top++; user[top]=s;} file.close();//关闭reader.txt} voidclear()//删除所有用户信息{top=-1;} intadduser(intn,char*na)//添加用户时先查找是否存在 {Users*p=query(n); if(p==NULL) {top++; user[top].adduser(n,na); return1;}return0; Users*query(intuserid)//按编号查找 {for(inti=0;i<=top;i++) if(user[i].getno()==userid&& user[i].gettag()==0){return&user[i];} returnNULL;} voiddisp()//输出所有用户信息 {for(inti=0;i<=top;i++) user[i].disp();} voiduserdata();//用户库维护 ~RDatabase()//析构函数,将read[]写到reader.txt文件中 {fstreamfile("用户文件.txt",ios: : out); for(inti=0;i<=top;i++) if(user[i].gettag()==0) file.write((char*)&user[i],sizeof(user[i])); file.close();}}; voidRDatabase: : userdata() {charchoice; charrname[20]; intuserid,i; Users*r; while(choice! ='0') {cout<<"\n\n\t\t\t用户维护\n\n\n\t\t1新增\n\n\t\t2更改\n\n\t\t3删除\n\n\t\t4查找\n\n\t\t5显示\n\n\t\t6全删\n\n\t\t0退出"< cin>>choice; switch(choice) {case'1': cout<<"输入用户编号: "; cin>>userid; cout<<"输入用户密码: "; for(i=0;i<6;i++) {rname[i]=getch(); putchar('*'); }adduser(userid,rname); break; case'2': cout<<"输入用户编号: "; cin>>userid; r=query(userid); if(r==NULL) {cout<<"很抱歉,您不是合法用户,系统无法提供服务! "< break; }cout<<"输入新的密码: "; for(i=0;i<6;i++) {rname[i]=getch(); putchar('*'); }r->setname(rname); break;case'3': cout<<"输入用户编号: "; cin>>userid; r=query(userid); if(r==NULL) {cout<<"很抱歉,此用户不是合法用户,无法删除! "< break;} r->deluser(); cout<<"该用户已删除! "< break; case'4': cout<<"输入用户编号: "; cin>>userid; r=query(userid); if(r==NULL) {cout<<"很抱歉,您要查找的用户不存在! "< break;} r->disp(); break; case'5': disp(); break; case'6': clear(); break; case'0': return; default: cout<<"尊敬的用户,您好! 您的输入有错误,请您重新输入: ";break; //档案类,实现对档案的描述,档案的编号,名称,借出,还入等 classRecord {private: inttag;//删除标记1: 已删0: 未删 intno;//档案编号 charname[20];//档案名 intonshelf;//是否再架1: 在架0: 已借出 public: Record(){} char*getname(){returnname;}//获取姓名 intgetno(){returnno;}//获取档案编号 intgettag(){returntag;}//获取删除标记 voidsetname(charna[])//设置档案名 {strcpy(name,na);}voiddelrecord(){tag=1;}//删除档案 voidaddrecord(intn,char*na)//增加档案 {tag=0;no=n;strcpy(name,na);onshelf=1;} intborrowrecord()//借档案操作 {if(onshelf==1){onshelf=0;return1;return0;}voidretrecord()//归还操作{onshelf=1;} voiddisp()//输出档案 {cout< "在架,可借": "很抱歉,已借出")< //档案库类,实现对档案的维护,查找,删除等 classBDatabase {private: inttop;//档案记录指针 Recordrecord[Maxr];//档案记录 public: BDatabase()//构造函数,将档案.txt读到record[]中 {Recordb;top=-1;fstreamfile("档案.txt",ios: : in); while (1) {file.read((char*)&b,sizeof(b)); if(! file)break; top++; record[top]=b;} file.close();} voidclear()//删除全部档案{top=-1;} intaddrecord(intn,char*na)//增加档案{ Record*p=query(n); if(NULL==p) {top++;record[top].addrecord(n,na);return1;}return0;}Record*query(intrecordid)查找档案{for(inti=0;i<=top;i++) if(record[i].getno()==recordid&&record[i].gettag()==0) {return&record[i];}returnNULL;} voidrecorddata();//档案库维护 voiddisp() {for(inti=0;i<=top;i++) if(record[i].gettag()==0) record[i].disp();} ~BDatabase()//析构函数,将record[]写到档案.txt文件中 {fstreamfile("档案.txt",ios: : out); for(inti=0;i<=top;i++) if(record[i].gettag()==0) file.write((char*)&record[i],sizeof(record[i])); file.close();}}; voidBDatabase: : recorddata() {charchoice; charbname[40]; intrecordid; Record*b; while(choice! ='0') {switch(choice) {case'1': cout<<"输入档案编号: "; cin>>recordid; cout<<"输入档案名称: "; cin>>bname;addrecord(recordid,bname); cout<<"已成功保存档案! "< case'2': cout<<"输入档案编号: "; cin>>recordid; b=query(recordid); if(b==NULL) {cout<<"该档案不存在! "< break;}ut<<"输入新的档案名称: "; cin>>bname; b->setname(bname); cout<<"已成功修改名称。 "< break; case'3': cout<<"输入档案编号: "; cin>>recordid; b=query(recordid); if(b==NULL) cout<<"尊敬的用户,您好! 该档案不存在! 敬请见谅! "< cout<<"输入档案编号: "; cin>>recordid; b=query(recordid); if(b==NULL) {cout<<"尊敬的用户,您好! 很抱歉,您想调阅的档案不存在! 敬请谅解! "< //main()函数的实现,程序的主界面的引导 voidmain() {charchoice;intrecordid,userid;RDatabaseReaderDB;Users*r;BDatabaseBookDB;Record*b; while(choice! ='0') cin>>choice;switch(choice){case'1': cin>>userid;r=ReaderDB.query(userid);//按编号查找if(r==0) {cout<<"尊敬的用户,您好! 您不是合法用户,系统无法提供服务。 "< ;cin>>recordid;b=BookDB.query(recordid);if(b==NULL){cout<<"尊敬的用户,您好! 很抱歉,您要调阅的档案不存在。 "< if(b->borrowrecord()==0) cout<<"尊敬的用户,您好! 很抱歉,该档案已借出,无法借阅。 "< r->borrowrecorder(b->getno());break; case'2': cin>>userid; r=ReaderDB.query(userid); if(r==0){cout<<"尊敬的用户,您好! 很抱歉,您不是合法用户,系统无法提供服务。 "< cout<<"尊敬的用户,您好! 请输入要归还的档案的编号: "; cin>>recordid; b=BookDB.query(recordid); if(b==NULL) {cout<<"尊敬的用户,您好! 很抱歉,您不是合法用户,系统无法提供服务。 "< r->retrecord(b->getno());break;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 图书 管理 系统 档案管理系统
![提示](https://static.bdocx.com/images/bang_tan.gif)