影院订票系统实验报告.docx

上传人:b****3 文档编号:3967197 上传时间:2022-11-26 格式:DOCX 页数:61 大小:279.37KB
下载 相关 举报
影院订票系统实验报告.docx_第1页
第1页 / 共61页
影院订票系统实验报告.docx_第2页
第2页 / 共61页
影院订票系统实验报告.docx_第3页
第3页 / 共61页
影院订票系统实验报告.docx_第4页
第4页 / 共61页
影院订票系统实验报告.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

影院订票系统实验报告.docx

《影院订票系统实验报告.docx》由会员分享,可在线阅读,更多相关《影院订票系统实验报告.docx(61页珍藏版)》请在冰豆网上搜索。

影院订票系统实验报告.docx

影院订票系统实验报告

综合实验报告

课程名称面向对象综合实验

实验名称_____影院订票系统的设计与实现

实验类型综合性

实验地点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

成员数据定义

成员数据作用描述

vectorusers;

//用户容器

vectoradministrators;

//管理员容器

vectorfilms;

//电影信息容器

vectortorders;

//订单容器

成员函数定义

成员函数功能描述

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&getFilms();

返回films引用,使边界类可以调用管理类中的对象

vector&getUsers();

返回users引用

vector&getTorders();

返回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];//

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

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1