影院订票系统实验报告.docx
- 文档编号:29752346
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:71
- 大小:279.33KB
影院订票系统实验报告.docx
《影院订票系统实验报告.docx》由会员分享,可在线阅读,更多相关《影院订票系统实验报告.docx(71页珍藏版)》请在冰豆网上搜索。
影院订票系统实验报告
综合实验报告
课程名称面向对象综合实验
实验名称_____影院订票系统的设计与实现
实验类型综合性
实验地点304机房实验日期2017.6.19~6.25
指导教师徐华
专业__软件工程_____
班级__软件1601____
学号__1611030102___
姓名___寇春雷______
成绩______________
辽宁石油化工大学计算机与通信工程学院
一、综合实验的目的
巩固和加深C++课程的基本知识的理解和掌握,提高综合运用c++知识解决实际问题的能力。
二、综合实验的内容和要求
实现下列功能要求的程序,并写出实验报告,报告内容包括:
题目、目的、内容和要求、原理与技术、程序清单、运行情况(输入、输出)、总结。
.定义用户信息类User_class:
(数据成员:
用户名char*name(初始化为个人,即管理员),用户密码char*posword,联系电话char*tel,联系地址char*addr
成员函数:
用户注册,用户登录(验证登录信息是否与为个人,是,即为管理员,否则为是一般用户)
.定义时间类Time_class:
(数据成员:
intyear,month,day)
(成员函数,自己自己根据需要确定)
.定义影片信息类Film_class:
(数据成员:
片名char*moviename,主要演员char*mactor,上映时间Time_classtime,票价doubleprice,剩余票数intticknum)
成员函数,自己根据需要设置)
.定义影票订单类Torder_class:
(用户名*charusername,影片名*charmoviename,放映时间Time_classptime,
座号char*seat(如“3排4号”),订票时间Time_classdtime票价doubleprice)
.实现用户和系统管理员的注册功能,界面可如下:
输入用户名:
输入密码:
联系电话:
联系地址:
(保存以上信息,到用户信息表)
.实现用户或系统管理员登录功能,界面可如下:
输入用户名:
输入密码:
(验证用户输入信息是否正确,正确,登陆成功)
.若是管理员登录,显示如下菜单,并实现如下功能:
1.输入影片信息2.显示影片信息3.增加影片信息4.查找影片5.删除影片
6.显示用户信息7.显示用户订单8.查找某用户订单9.删除某用户订单
.若是用户登录,显示如下菜单,并实现相应的功能:
1.显示影片信息2.查找影片信息3.订票4.查看订单
三、实验原理
本实验使用vs2012开发环境,使用C++窗口程序设计。
先定义Time_class时间类,User_class用户信息类,Film_class影片信息类,Torder_class订单类,其中影片信息类,订单类,调用时间类,实现放映时间以及订单时间的使用,这4个实体类
都有相应的get(),set()函数。
Manage控制类,执行逻辑
Boundary边界类,与用户实现信息的输入与输出,边界类调用控制类对象,控制类对象调用控制类中的函数,实现相应的功能。
主程序有两个功能,一个是注册,一个是登录。
两个功能进入边界类。
三、实验截图
用户注册页面
用户登录界面
用户功能菜单
查看影片信息
用户订票
管理员功能菜单
查看订单列表
订票信息
修改影片信息
用户信息,影片信息,订单信息储存在当前文件下
users_information.txt
administrators_information.txt
torder_information.txt
films_information.txt
四、实验分析
类Time_class
成员数据定义
成员数据作用描述
intyear;
年份
intmonth;
月份
intday;
日期
成员函数定义
成员函数功能描述
Time_class(void);
无参构造函数
~Time_class(void);
析构函数
Time_class(intyear,intmonth,intday);
含参构造函数
intgetyear();
取年份
intgetmonth();
取月份
intgetday();
取日期
voidsetyear(intyear);
设置年份
voidsetmonth(intmonth);
设置月份
voidsetday(intday);
设置日期
类User_class
成员数据定义
成员数据作用描述
charname[30];
用户或管理员姓名
charposword[20];
用户密码
chartel[20];
用户电话
charaddr[50];
用户住址
成员函数定义
成员函数功能描述
User_class(void);
无参构造函数
~User_class(void);
析构函数
User_class(char*name,char*posword);
含参构造函数
User_class(char*name,char*posword,char*tel,char*addr);
含参构造函数
char*getname();
取用户姓名
char*getposword();
取用户密码
char*gettel();
取用户电话号码
char*getaddr();
取用户地址
voidsetname(char*name);
设置用户姓名
voidsetposword(char*posword);
设置用户密码
voidsettel(char*tel);
设置用户电话号码
voidsetaddr(char*addr);
设置用户地址
类Film_class
成员数据定义
成员数据作用描述
charmoviename[30];
片名
charmactor[30];
主要演员
Time_classtime;
上映时间
doubleprice;
票价
intticknum;
剩余票数
intposition[121];
座位信息,position[0]不用
成员函数定义
成员函数功能描述
Film_class(void);
无参构造函数
~Film_class(void);
析构函数
Film_class(char*moviename,char*mactor,Time_classtime,doubleprice,intticknum,intposition[]);
含参构造函数
char*getmoviename();
取片名
char*getmactor();
取主要演员
Time_classgettime();
取上映时间
doublegetprice();
取票价
intgetticknum();
取剩余票数
voidsetmoviename(char*moviename);
设置片名
voidsetmactor(char*mactor);
设置主要演员
voidsettime(Time_classtime);
设置上映时间
voidsetprice(doubleprice);
设置票价
voidsetticknum(intticknum);
设置剩余票数
voidsetposition_point(intnumber);
标记用户订单信息
int*getposition();
取影片座位信息
类Torder_class
成员数据定义
成员数据作用描述
charusername[20];
用户名
charmoviename[30];
影片名
Time_classptime;
放映时间
charseat[20];
座号(如3排4号)
Time_classdtime;
订票时间
doubleprice;
票价
成员函数定义
成员函数功能描述
Torder_class(void);
无参构造函数
~Torder_class(void);
析构函数
Torder_class(char*username,char*moviename,Time_classptime,char*seat,Time_classdtime,doubleprice);
含参构造函数
char*getusername();
取用户名
char*getmoviename();
取影片名
Time_classgetptime();
取放映时间
char*getseat();
取座号(如3排4号)
Time_classgetdtime();
取订票时间
doublegetprice();
取票价
voidsetusername(char*username);
设置用户名
voidsetmoviename(char*moviename);
设置影片名
voidsetptime(Time_classptime);
设置放映时间
voidsetseat(charseat[20]);
设置座号(如3排4号)
voidsetdtime(Time_classdtime);
设置订票时间
voidsetprice(doubleprice);
设置票价
类Manage
成员数据定义
成员数据作用描述
vector
//用户容器
vector
//管理员容器
vector
//电影信息容器
vector
//订单容器
成员函数定义
成员函数功能描述
Manage(void);
无参构造函数
~Manage(void);
析构函数
voidenroll_user(User_classa);
用户注册函数
voidenroll_administrator(User_classa);
管理员注册函数
voidload();
从文件加载用户和管理员信息到两个容器中
读取文本信息到程序中
voidsave_user_info();
把信息保存到文件中
voidsave_film_info();
保存影片信息
voidsave_torder_info();
保存订单信息
intlogin_user(User_classa);
用户登录
intlogin_administrator(User_classa);
管理员登录
voidadd_film_info(Film_classa);
添加影片信息
voidadd_torder_info(Torder_classa);
添加订单信息
Film_class*search_film_info(char*moviename);
搜索电影信息
Torder_class*search_torder_info(char*username);
搜索订单信息
booldel_film_info(char*moviename);
删除影片信息
booldel_torder_info(char*tordername);
删除订单信息
vector
返回films引用,使边界类可以调用管理类中的对象
vector
返回users引用
vector
返回torder引用
voidchange_film_info_moviename();
修改影片信息
voidchange_film_info_mactor();
修改影片信息
voidchange_film_info_time();
修改影片信息
voidchange_film_info_price();
修改影片信息
类Boundary
成员数据定义
成员数据作用描述
Managemanage;
控制类管理对象
成员函数定义
成员函数功能描述
Boundary(void);
无参构造函数
~Boundary(void);
析构函数
voidenroll_menu();
注册菜单
voidenroll_user();
用户注册
voidenroll_administrator();
管理员注册
voidlogin_menu();
登录菜单
voidlogin_user();
用户登录
voidlogin_administrator();
管理员登录
voiduser_function_menu(User_class*a);
用户功能菜单
voidadmin_function_menu(User_class*a);
管理员功能菜单
voidadd_film_info();
添加影片信息
voidadd_torder_info();
添加订单信息
voiddisplay_film_info();
显示影片信息
voidsearch_film_info();
查找影片信息
voidsearch_torder_info();
查找某用户订单信息
voiddel_film_info();
删除影片信息
voiddel_torder_info();
删除订单信息
voiddisplay_user_info();
显示用户信息
voiddisplay_torder_info();
显示订票信息
voiduser_booking_film();
用户订票
voidchange_film_info();
添加影片信息
voidchange_film_info_moviename();
修改影片信息
voidchange_film_info_mactor();
修改影片信息
voidchange_film_info_time();
修改影片信息
voidchange_film_info_price();
修改影片信息
五、实验总结
题目序号
实现情况与掌握程度
是否独立完成
代码是否规范编写
存在问题
如何改进
1
掌握了边界类,控制类函数的实现
代码独立完成
代码基本按照要求编写
在取系统时间时,未能正确取出。
t=localtime_s(&t);
查询有关知识,使用不同的方式,取系统时间
题目序号
实践经验
经典代码
1
边界类直接调用控制类中的容器,那么就得在控制类添加返回容器的引用
①Film_class*film=manage.search_film_info(moviename);
②system("pause");//暂停
③vector
:
iteratorpos;
for(pos=films.begin();pos!
=films.end();pos++){
if(strcmp(pos->getmoviename(),moviename)==0){
films.erase(pos);//删除
save_film_info();//保存影片信息
}
}
①Manage控制类,执行逻辑
②Boundary边界类,与用户实现信息的输入与输出,边界类调用控制类对象,控制类对象调用控制类中的函数,实现相应的功能。
③主程序有两个功能,一个是注册,一个是登录。
两个功能进入边界类。
④如果边界类直接调用控制类中的容器,那么就得在控制类添加返回容器的引用
六、实验源码
//stdafx.h文件
#pragmaonce
#include"targetver.h"
#include
#include
#include
usingnamespacestd;
#include
#include
#include
#include
#include
#include
///:
~
//Time_class.h文件
#pragmaonce
classTime_class//时间类
{
intyear;
intmonth;
intday;
public:
Time_class(void);
~Time_class(void);
Time_class(intyear,intmonth,intday);
intgetyear();
intgetmonth();
intgetday();
voidsetyear(intyear);
voidsetmonth(intmonth);
voidsetday(intday);
};
///:
~
//Time_class.cpp文件
#include"StdAfx.h"
#include"Time_class.h"
Time_class:
:
Time_class(void)
{
}
Time_class:
:
~Time_class(void)
{
}
Time_class:
:
Time_class(intyear,intmonth,intday)
{
this->year=year;
this->month=month;
this->day=day;
}
intTime_class:
:
getyear()
{
returnyear;
}
intTime_class:
:
getmonth()
{
returnmonth;
}
intTime_class:
:
getday()
{
returnday;
}
voidTime_class:
:
setyear(intyear)
{
this->year=year;
}
voidTime_class:
:
setmonth(intmonth)
{
this->month=month;
}
voidTime_class:
:
setday(intday)
{
this->day=day;
}
///:
~
//User_class.h文件
#pragmaonce
//用户信息类
classUser_class
{
charname[30];//用户或管理员姓名
charposword[20];//用户密码
chartel[20];//用户电话
charaddr[50];//用户住址
public:
User_class(void);
~User_class(void);
User_class(char*name,char*posword);
User_class(char*name,char*posword,char*tel,char*addr);
char*getname();
char*getposword();
char*gettel();
char*getaddr();
voidsetname(char*name);
voidsetposword(char*posword);
voidsettel(char*tel);
voidsetaddr(char*addr);
};
///:
~
//User_class.cpp文件
#include"StdAfx.h"
#include"User_class.h"
User_class:
:
User_class(void)
{
}
User_class:
:
~User_class(void)
{
}
User_class:
:
User_class(char*name,char*posword)
{
strcpy_s(this->name,name);
strcpy_s(this->posword,posword);
}
User_class:
:
User_class(char*name,char*posword,char*tel,char*addr)
{
strcpy_s(this->name,name);
strcpy_s(this->posword,posword);
strcpy_s(this->tel,tel);
strcpy_s(this->addr,addr);
}
char*User_class:
:
getname()
{
returnname;
}
char*User_class:
:
getposword()
{
returnposword;
}
char*User_class:
:
gettel()
{
returntel;
}
char*User_class:
:
getaddr()
{
returnaddr;
}
voidUser_class:
:
setname(char*name)
{
strcpy_s(this->name,name);
}
voidUser_class:
:
setposword(char*posword)
{
strcpy_s(this->posword,posword);
}
voidUser_class:
:
settel(char*tel)
{
strcpy_s(this->tel,tel);
}
voidUser_class:
:
setaddr(char*addr)
{
strcpy_s(this->addr,addr);
}
///:
~
//Film_class.h文件
#pragmaonce
#include"Time_class.h"
//影片信息类
classFilm_class
{
charmoviename[30];//片名
charmactor[30];//主要演员
Time_classtime;//上映时间
doubleprice;//票价
intticknum;//剩余票数
intposition[121];//
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 影院 订票 系统 实验 报告