C++课程设计图书管理系统档案管理系统.docx

上传人:b****1 文档编号:15051962 上传时间:2023-06-30 格式:DOCX 页数:28 大小:862.90KB
下载 相关 举报
C++课程设计图书管理系统档案管理系统.docx_第1页
第1页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第2页
第2页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第3页
第3页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第4页
第4页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第5页
第5页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第6页
第6页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第7页
第7页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第8页
第8页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第9页
第9页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第10页
第10页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第11页
第11页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第12页
第12页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第13页
第13页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第14页
第14页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第15页
第15页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第16页
第16页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第17页
第17页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第18页
第18页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第19页
第19页 / 共28页
C++课程设计图书管理系统档案管理系统.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++课程设计图书管理系统档案管理系统.docx

《C++课程设计图书管理系统档案管理系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计图书管理系统档案管理系统.docx(28页珍藏版)》请在冰点文库上搜索。

C++课程设计图书管理系统档案管理系统.docx

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#include#include

#include#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<<"尊敬的用户,您好!

该档案不存在!

敬请见谅!

"<delrecord();break;case'4':

cout<<"输入档案编号:

";

cin>>recordid;

b=query(recordid);

if(b==NULL)

{cout<<"尊敬的用户,您好!

很抱歉,您想调阅的档案不存在!

敬请谅解!

"<disp();break;}

//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<<"尊敬的用户,您好!

很抱歉,您不是合法用户,系统无法提供服务。

"<retrecord();

r->retrecord(b->getno());break;

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

当前位置:首页 > 法律文书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2