校园一卡通管理系统.docx
《校园一卡通管理系统.docx》由会员分享,可在线阅读,更多相关《校园一卡通管理系统.docx(52页珍藏版)》请在冰豆网上搜索。
校园一卡通管理系统
校园一卡通管理系统
一、需求分析...................................................................................................................................1
1.1开发背景............................................................................................................................1
1.2项目目标.............................................................................................................................2
1.3运行环境.............................................................................................................................2
二、程序分析...................................................................................................................................2
2.1技术要点............................................................................................................................2
2.2项目任务书........................................................................................................................3三、技术路线...................................................................................................................................3
3.1总体方案.............................................................................................................................4
3.1.1采用的软件及开发平台..........................................................................................4
3.1.2项目的总体方案......................................................................................................4
3.2详细设计............................................................................................................................5四、工程进度:
...............................................................................................................................6
五、测试分析:
...............................................................................................................................6
5.1阶段性测试.........................................................................................................................6
5.2总体测试...........................................................................................................................11六、个人小结.................................................................................................................................15
附录一:
程序代码.........................................................................................................................16
一、需求分析
1.1开发背景
随着学校管理现代化方向意识的不断增强,基于卡片应用的计算机管理系统已日益普及,学生持有传统的多种卡片和不同证件已司空见惯。
然而,随着各种卡证的管理功能不断发展,由于传统卡功能的局限,常常需要给学生签发多张卡证才能满足管理上的需要,如学生证、图书证、医疗病历卡、出入胸卡、就餐消费卡、上机卡等,不仅增加管理成本,也给每个学生管理自己的卡片增加了难度,有时甚至是“卡多为患”。
这种传统的校园管理方式具有诸多弊端:
没有实现真正的现代化校园管理;
给学校管理带来负担;
增加了学校的管理成本;
学生没能方便、轻松的在校园通行。
现代化的校园管理应该具有:
高速的信息传递、管理更精细周到而工作更轻松方便、能促进学校教育、教学质量推向一个新阶段。
信息时代的校园,当然离不开信息化的管理。
校园一卡通将智能IC卡的强大功能与计算机网络的数字化理念融入校园,将学校各个系统连为一体,动态掌握每一持卡人情况,极大提高学校的管理水平。
并为IC卡技术应用于社会创立了典范。
真正的“一卡通”并不是简单的消费卡,而是能实现校园管理中各方面的用途。
只有具有以下功能才能称的上“校园一卡通”。
校园一卡通是以IC卡为信息载体,适用于校园消费和管理的网络系统。
IC卡取代了学校管理和生活中所使用的各种个人证件和现金支付手段,在一张小小的IC卡上实现生活消费、学籍管理、身份认证、网上交费等多种功能。
校园IC卡与银行联网,可以在校内外银行网点和指定商户圈存、圈提、取现、消费,真正做到一卡通用。
校园IC卡的推广使用将极大方便学生、教工的生活,减轻携带各种证件的烦恼,并与学校其他信息基础设施相配合,促进校园信息化管理水平的提高
校园一卡通管理系统:
1.2项目目标
该项目的主要目标是:
开发一个面向在校师生的一卡通管理系统。
该系统将实现用户登录管理和管理员管理等功能。
其中:
用户登录管理,负责对新用户的注册和老用户登入查询。
注册成功后才能登入用户界面,登陆成功后可以进行一卡通的信息查询、充值、挂失、销毁、消费查询。
管理员管理:
登入需要密码,初始密码为111111。
管理员可以进行一卡通的修改、删除、个人全部信息查询和解除一卡通的挂失等功能。
1.3运行环境
软件:
VC++6.0;
硬件:
具有网络连接设备的PC机或笔记本电脑;最低配置:
要求内存大于128M,硬盘大于1G。
二、程序分析
2.1技术要点
在项目的实现过程中我们首先考虑到把Card作为一个基类,其中包括了姓名,性别,密码,卡号,金额(卡里的余额),卡的类型,挂失状态(是否挂失),消费金额。
然后派生了老师卡和学生卡两个类,以这三个类为基础,把这个系统分成了两个大的模块:
管理员通道、用户通道。
在管理员通道中,登入需要管理员密码,登入后可以进行一卡通的管理和消费管理。
在一卡通的管理界面可以进行修改一卡通记录、删除一卡通记录、信息一览、解除挂失。
在用户通道中,可以进行注册和登录操作。
新用户必须注册才能登入用户管理界面,注册分为老师注册和学生注册,注册的主要内容为姓名、性别、卡号、卡密码、专业。
注册成功后就可以进入一卡通管理平台,可以进行一卡通的信息查询、一卡通的充值、一卡通的挂失、一卡通的销毁和一卡通的消费查询。
主要流程图为:
开始
管理员通道用户通道
注册登入消费管理一卡通管理
一一一一一营消修删信解老学卡卡卡卡卡业费改除息除师生通通通通通额明记记一挂卡卡信充销挂消统细录录览失注注息值毁失费计册册
该项目用到的技术:
首先我们整个程序基于C++6.0编程软件实现的。
主要思想是用类,然后运用了类的的继承、派生等等机制实现了一卡通最基本的功能。
对于个别问题,我们还用了一些系统自带的函数和机制,如:
在消费信息记录时,信息记录会自动获取记录信息时的系统时间。
2.2项目任务书
该项目是建立一个面向在校学生的一卡通信息管理系统,该项目由三个人负责合作完成。
主要分工为先一起构造整个程序的框架,写出基类,写出所有可能需要用到的函数,然后再分别分派给每个人,根据每个人的实际情况,来定量分配。
黄星鹏和徐海官主要负责编写函数,大部分交给他们来完成,胡磊负责写一些函数和写大作业的报告书,这样能同时的写程序和写报告书,加快整个项目的完成时间。
整个项目需要三个人的努力合作,相互配合,才能在最短的时间完成。
三、技术路线
3.1总体方案
3.1.1采用的软件及开发平台
在WindowsXP和Windows7的环境下,采用的是Microsoft公司的VisualC6.0++作为开发平台。
利用面向对象的思想实现一个一卡通信息管理系统,具体使用了:
运用了OOP的编程思想,把卡做为我们操作的对象,也就通过抽象的想把卡定义出了个类,这也是C++中的解决问题的基本思路。
然后在通过c++提供的一些机制,实现了类的继承、派生,在其他方面体现了封装和多态。
OPP的5种核心思想以及C++关键技术构造了基于在校学生的生活、学习状况建立的个人一卡通信息管理系统,使每个人能更加方便,快捷,清晰的了解个人信息。
3.1.2项目的总体方案
1.设置一个基类Card(卡号),再由这个积累派生出两个派生类,分别为Studentcard、Teachercard(学生卡,老师卡)。
2.我们可以在此基础之上设立一个一卡通管理操作系统界面。
3.我们建立了用户组和管理员组的管理操作系统。
4.我们通过主函数对两个类的成员函数实现管理。
用户组实现存储学生和老师的姓名,性别,一卡通号,一卡通密码,班级;并且实现一卡通登入操作,可以进行一卡通的信息查询、充值、挂失、销毁、消费查询。
管理员组实现一卡通的一卡通的修改、删除、个人全部信息查询和解除一卡通的挂失。
详细的概括是:
首先,作为基类我们在Card中把用户的信息:
姓名,性别,卡号,金额,费用,卡的类型,挂失状态等信息作为它的私有成员;
以上基类和两个派生类之间的关系如下图所示:
基类和派生类之间的关系:
基类:
Card
包含信息:
name、sex、code、id、money、tag、enable、
expens。
派生类:
studentcard派生类:
teachercard
增加信息:
major增加信息:
academy
3.2详细设计
然后也定义了许多公有函数,如下:
voiddisp()用来显示信息;
voidsetinfo()用来设置对象的信息;
char*getname()、char*getsex()、char*getid()、char*getcode()、char*getmoney()、char*getexpence()分别用来获取对象的姓名,性别,一卡通号,一卡通密码,班级等信息。
通过定义Card类对象来调用函数实现我们需要的功能。
派生类Studentcard(学生卡类),我们设定major作为私有成员,同时设定voiddisp()函数来显示个人的信息,voidsetinfo()函数来设置对象的信息,char*getmajor()、char*gettype()来获得对象的私有成员的信息。
派生类Teachercard(老师卡类),我们设定academy作为私有成员,同时设定voiddisp()函数来显示个人的信息,voidsetinfo()函数来设置对象的信息,char*getacademy()、char*gettype()来获得对象的老师学院和卡的类型私有成员的信息。
还有一些函数定义在类外:
Remove_lost()用于挂失和解挂,voidDisPlay()用于信息显示,voidDisp_T()用于显示学生信息,voidDelete()用于删除信息,voidexpense()用于消费,card_control()用于卡的管理,manageway()用于管理员通道,即管理员登入,userway()是学生登入,还有一些界面的显示等。
四、工程进度:
工程进度表:
时间计划完成的工作实际完成情况2012-12-27完成构建结构图已完成2013-1-5完成用户通道模块已完成2013-1-12完成管理通道模块已完成2013-1-13进行完整的测试已测试
五、测试分析:
5.1阶段性测试
阶段一:
在初期我们建立了初始的登录界面。
能够实现新用户的注册和登入。
并对其实施了测试:
该阶段的测试目标是能够实现注册和登入老师和学生的个人信息和设置一卡通的号码和密码:
注册界面:
学生卡注册:
老师卡注册:
登入查询:
测试查询一卡通信息:
测试一卡通充值:
测试挂失:
这一阶段只测试了这些功能,在我们的测试中发现了一卡通的充值的时候有些小错误。
但是结果基本上实现了预期的功能。
阶段二:
这一阶段将要实现管理员对一卡通的管理。
主要实现管理员对一卡通的修改、删除、个人全部信息查询和解除一卡通的挂失。
登录界面:
查询界面:
信息一览:
5.2总体测试
六、个人小结
的个人小结:
大作业终于在我们小组的努力下完成了。
想来这段时间一直在编写程序从中学到了许多东西,以前在学习的过程中没有认真的巩固所学到的知识,而经过这些天的努力。
我学会怎样的思考问题。
在面对问题的时候,首先对问题分析之后,找到问题的所在,把难题都迎刃而解,使我尝到了第一次胜利的喜悦。
接着我就是对程序的运行,对新出现的问题都加以重视并解决。
和小组人员的共同探讨中,我们不断尝试,修改,运行,调试,循坏反复,最终才得到今天的运行成果,实为不易,真是有酸有苦也有甜啊。
其中的滋味我想只有我们每一个参与的人才有体会;另外,在大作业的过程中,深刻的感受到了团队的力量,大家相互鼓舞,相互探讨,共同努力,最终获得成功。
个人小结:
首先,这次大作业带给我的有烦恼、纠结也有许多快乐和成就感。
学习了一个学期的C++,以前编的程序都是几十行的,感觉还行,速度还快,思路很清晰。
但这次,让我刚刚开始时很有挫败感。
首先是那些文件的函数的运用,然后还有调试程序时一些细节错误,有的通过了几天的查找才弄出来。
这个过程,是很艰辛,是很烦恼的。
但我们在不断的努力之下,在我们共同的合作、交流、讨论之下,许多问题,许多困难都被我们解决了。
我们在这个时段,要期末考试。
终于在这样的环境下,我们感觉到时
间不够用了,感觉到时间还是很需要珍惜的。
就编程而言,我有了交大提高,在合作和交流上,也有了一定的经验。
编程的经验更是积累了许多,但是,由于时间的冲突,时间的有限,我们的程序有点小问题,有的功能不够完全,还请老师谅解。
谢谢~
个人小结:
通过这次c++大作业,我收获良多。
对于c++从无知畏惧到慢慢产生兴趣,我觉得通过实验来学习了解c++编程思想是非常不错的。
在实验中我们对各类函数的运用,重载,声明等有了更为细致的理解。
在编写大作业的过程中我对于一些大型系统的编写有了一定的基础,为以后编写大型软件打下基础。
同时,我也了解到一个大型程序的编写除了必要的编程知识之外,我们还必须非常细心,因为也许一个非常小的错误会让你整个程序不能顺利运行从而影响整个实验结果。
所以,实验过程中我们必须小心再小心。
通过这次大作业,我也深深的意识到自己的不足,学到的东西远远不够,所以我们还要继续努力,争取更完美的做好每一次实验。
附录一:
程序代码
#include
#include
#include
#include
#include
#include
#include
/*******************************************************卡类******************************************************/
classCard{
private:
charname[15];
charsex[3];
charcode[10];
charid[10];
charmoney[15];
chartag[3];//----------------一个有用的变量
charenable[3];//-----------------int
charexpense[15];//----------余额还是。
。
。
public:
voiddisp(){
cout<<"姓名:
"<cout<<"性别:
"<cout<<"卡号:
"<cout<<"金额:
"<}
voidsetinfo(){
charcode1[10];
inti=0;
cout<<"输入姓名:
";
cin>>name;
cout<<"输入性别:
";
cin>>sex;
cout<<"输入卡号:
";
cin>>id;
strcpy(enable,"1");//------------------可以改下
strcpy(money,"0");
strcpy(expense,"0");
while
(1){
if(i)
cout<<"请重新输入密码:
:
";
else
cout<<"请输入密码:
:
";
cin>>code;
cout<<"请再输一次:
";
cin>>code1;
if(!
strcmp(code1,code))
break;
elsecout<<"对不起,两次输入的密码不一样!
"<}
}
char*getname(){
returnname;
}
char*getsex(){
returnsex;
}
char*getid(){
returnid;
}
char*getcode(){
returncode;
}
char*getmoney(){
returnmoney;
}
char*getexpence(){
returnexpense;
}
};
classStudentcard:
publicCard{
private:
charmajor[25];public:
voiddisp(){
Card:
:
disp();
cout<<"学生卡信息:
"<cout<<"专业:
"<}
voidsetinfo(){
Card:
:
setinfo();
cout<<"请输入专业:
";
cin>>major;
}
char*getmajor(){
returnmajor;
}
char*gettype(){
return"S";
}
};
classTeachercard:
publicCard{private:
characademy[25];
public:
voiddisp(){
cout<<"教师卡信息:
"<Card:
:
disp();
cout<<"学院:
"<}
voidsetinfo(){
Card:
:
setinfo();
cout<<"输入专业:
";
cin>>academy;
}
char*getacademy(){
returnacademy;
}
char*gettype(){
return"T";
}
};
structcardst{
charname[15];
charsex[3];
charcode[10];
charid[10];
charmoney[15];
charc[3];
charenable[3];//--------------------------改为int型的即可。
。
。
chartype[25];
charexpense[15];
};
/*********************************************user
function***********************************************/
voidSzhuce(Studentcard&stu){
cardstcard;
ofstreamofile("card.txt",ios:
:
app);
chartag='n',c='',ch1[2];
inti;
system("cls");
cout<<"***********************************************************
\n"<cout<<"-------------------------学生卡注册------------------------\n\n";
while(tag=='n'||tag=='N'){
stu.setinfo();
ifstreamifile("card.txt",ios:
:
in);
while(!
ifile.eof()){
ifile.getline(card.name,15,'');
ifi