北京工业大学数据结构课设_理发馆报告

上传人:xmg****18 文档编号:120505999 上传时间:2020-02-06 格式:DOC 页数:43 大小:3.44MB
返回 下载 相关 举报
北京工业大学数据结构课设_理发馆报告_第1页
第1页 / 共43页
北京工业大学数据结构课设_理发馆报告_第2页
第2页 / 共43页
北京工业大学数据结构课设_理发馆报告_第3页
第3页 / 共43页
北京工业大学数据结构课设_理发馆报告_第4页
第4页 / 共43页
北京工业大学数据结构课设_理发馆报告_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《北京工业大学数据结构课设_理发馆报告》由会员分享,可在线阅读,更多相关《北京工业大学数据结构课设_理发馆报告(43页珍藏版)》请在金锄头文库上搜索。

1、. . . . .理发馆学 号_110703xx_ 姓 名_xxx_指导教师_xx_2013年10月目录1 需求分析 31.1 程序功能介绍 31.2 程序数据要求 3 1.3 开发与运行环境需求 41.4 用户界面设计 52 数据结构设计 72.1 主要数据结构 72.2 程序整体结构 112.3 模块功能描述 113 详细设计 124 测试 224.1 正确运行示例 224.2 错误运行示例 245 总结提高 251需求分析1.1程序功能介绍本程序模拟理发馆一天的经营状况,理发馆的环境如下:1理发馆有N把理发椅,可同时为N位顾客进行理发(2N9);2理发师按技术水平分为三个等级(一级最高,

2、三级最低),对应不同的服务收费。理发馆一天的工作过程如下:1顾客进门时,需要选择某级别的理发师,只要该级别的理发师有空椅,则可立即坐下理发,否则需排队等候;2一旦该级别的理发师有顾客理发完离去,排在该位理发师队列队头的顾客便可以开始理发。理发馆老板统计每天不同级别理发师的营业时间、创收和每天理发馆总创收,并写入文本文件中,可作为理发师工资与奖金的发放依据。1.2程序数据要求1.2.1输入数据(由文本文件输入):7 :3061 12 13 24 35 26 30.6数据说明:第一行的09:30表示理发馆将于九点半开门;第二行的6表示理发馆有6张理发椅(此处可输入39的任意值);随后的N行:表示第

3、i张椅子的理发师的级别(如:第1张理发椅是1级理发师,第2张理发椅是1级理发师)。最后一行的0.6代表折扣(可选)1.2.2随机数据需求:每个顾客进门时将负责生成三个随机数:1)理发时间durtime:进门顾客理发所需服务时间;2)间隔时间intertime:该顾客与下一位顾客到达的时间间隔;3)服务选项select:该顾客选择理发师的级别。由随机数函数产生。1.2.3输出数据(输出到文本文件中): 本日账目清单 =按理发师=理发师编号: 1 级别: 1 工作时长: 17 本日盈收: 17理发师编号: 2 级别: 1 工作时长: 29 本日盈收: 29理发师编号: 3 级别: 2 工作时长:

4、28 本日盈收: 14理发师编号: 4 级别: 3 工作时长: 73 本日盈收: 23理发师编号: 5 级别: 2 工作时长: 24 本日盈收: 12理发师编号: 6 级别: 3 工作时长: 27 本日盈收: 9理发师编号: 7 级别: 3 工作时长: 20 本日盈收: 6理发师编号: 8 级别: 1 工作时长: 30 本日盈收: 30=按级别=1级别理发师总工时: 76 总收入: 762级别理发师总工时: 52 总收入: 263级别理发师总工时: 120 总收入: 38=总汇=本日总创收: 1401.3开发与运行环境需求1.3.1开发环境: Visual studio 20101.3.2运行

5、环境: Win xp/Win 7/Win 81.4用户界面设计1.4.1初始化界面(例:6个队列)8队列界面1.4.2顾客到达、理发及等待界面1.4.3顾客离开界面1.4.4 DOS/GUI同步演示程序过程1.4.5折扣选择界面2数据结构设计2.1 主要数据结构 2.1.1事件类(Event)/事件类:包含事件发生时间,事件类型,和下一个事件(指针)三个数据成员class Event public: int occurtime; int event_type; Event* next_event; Event() Event(int occurtime, int event_type): oc

6、curtime(occurtime), event_type(event_type), next_event(NULL) Event() ;2.1.2事件表(EventList)/事件表类:数据成员 :头指针,两个用于插入删除事件结点的指针,和事件表长度class EventList public: Event *head, *ptr_before, *ptr_after; int length; /事件表长度 EventList() head = new Event(-1, -1); length=1; EventList() void OrderIn(Event* new_in); int

7、 ListEmpty(); int Cmp(Event* new_in, Event* t1) ;2.1.3顾客类(Customer)class Customer public: int durtime; int select; Customer* next; Customer(): select(-1) Customer(int durtime, int select): durtime(durtime), select(select), next(NULL) Customer() ;2.1.4顾客队列类(CustomerQueue)class CustomerQueue public: C

8、ustomer *front, *rear; int select; int length; int worktime; int money; CustomerQueue(): front(NULL), rear(NULL), select(-1), length(0), money(0), worktime(0) CustomerQueue() void EnQueue(Customer* add); void DelQueue();2.1.5随机函数类(Random):class Random public: int durtime; int intertime; int select;

9、Random() srand(int)time(NULL); Random() int Durtime(); int Intertime(); int Select();2.1.6文件操作类(FileOperation):class FileOperation public: int input_time2;/接收输入时间 小时、分钟 char maohao;/接收中间的冒号 int number11;/用于接收理发师编号信息 int chairs;/理发师人数 float discount;/折扣(可选) char zhekou; FileOperation(): discount(1.0)

10、 FileOperation() void FileInput(ifstream &from_file, int &opentime, CustomerQueue cq, int &closetime); void FileOutput(ofstream &to_file, CustomerQueue cq, int& total_money);2.1.7绘图类(barbergraph):class barbergraph public: IMAGE background_img;/顾客去背景图片 IMAGE baber_desk;/理发师桌子背景 IMAGE my_clock;/时钟背景 I

11、MAGE door;/门 char now_time10;/时钟信息存储 char barber_info20;/理发师信息 char graphic_symbol15;/图例信息 Customer* p;/获取当前动作顾客 int chairs;/获取理发师人数 barbergraph() /读取背景图片集 loadimage(&background_img, _T(背景1.jpg); loadimage(&baber_desk, _T(六张桌子.jpg); loadimage(&my_clock, _T(时钟.jpg); loadimage(&door, _T(门.jpg); void set_chairs (int cha

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号