欢迎来到天天文库
浏览记录
ID:56315274
大小:3.44 MB
页数:25页
时间:2020-06-11
《北京工业大学 数据结构课设_理发馆 报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、理发馆学号_____110703xx___姓名_____xxx______指导教师______xx______2013年10月目录1需求分析31.1程序功能介绍31.2程序数据要求31.3开发与运行环境需求41.4用户界面设计52数据结构设计72.1主要数据结构72.2程序整体结构112.3模块功能描述113详细设计124测试224.1正确运行示例224.2错误运行示例245总结提高251需求分析1.1程序功能介绍本程序模拟理发馆一天的经营状况,理发馆的环境如下:1.理发馆有N把理发椅,可同时为N位顾客进行理发
2、(23、6数据说明:第一行的09:30表示理发馆将于九点半开门;第二行的6表示理发馆有6张理发椅(此处可输入3~9的任意值);随后的N行:表示第i张椅子的理发师的级别(如:第1张理发椅是1级理发师,第2张理发椅是1级理发师…)。最后一行的0.6代表折扣(可选)1.2.2随机数据需求:每个顾客进门时将负责生成三个随机数:1)理发时间durtime:进门顾客理发所需服务时间;2)间隔时间intertime:该顾客与下一位顾客到达的时间间隔;3)服务选项select:该顾客选择理发师的级别。由随机数函数产生。1.2.3输出数4、据(输出到文本文件中):本日账目清单===============================按理发师===============================理发师编号:1级别:1工作时长:17本日盈收:17理发师编号:2级别:1工作时长:29本日盈收:29理发师编号:3级别:2工作时长:28本日盈收:14理发师编号:4级别:3工作时长:73本日盈收:23理发师编号:5级别:2工作时长:24本日盈收:12理发师编号:6级别:3工作时长:27本日盈收:9理发师编号:7级别:3工作时长:20本日盈收:6理5、发师编号:8级别:1工作时长:30本日盈收:30================================按级别===============================1级别理发师总工时:76总收入:762级别理发师总工时:52总收入:263级别理发师总工时:120总收入:38=================================总汇===============================本日总创收:1401.3开发与运行环境需求1.3.1开发环境:Visualstudio20106、1.3.2运行环境:Winxp/Win7/Win81.4用户界面设计1.4.1初始化界面(例:6个队列)8队列界面1.4.2顾客到达、理发及等待界面1.4.3顾客离开界面1.4.4DOS/GUI同步演示程序过程1.4.5折扣选择界面2数据结构设计2.1主要数据结构2.1.1事件类(Event)//事件类:包含事件发生时间,事件类型,和下一个事件(指针)三个数据成员classEvent{public:intoccurtime;intevent_type;Event*next_event;Event(){}Even7、t(intoccurtime,intevent_type):occurtime(occurtime),event_type(event_type),next_event(NULL){}~Event(){}};2.1.2事件表(EventList)//事件表类:数据成员:头指针,两个用于插入删除事件结点的指针,和事件表长度classEventList{public:Event*head,*ptr_before,*ptr_after;intlength;//事件表长度EventList(){head=newEven8、t(-1,-1);length=1;}~EventList(){}voidOrderIn(Event*new_in);intListEmpty();intCmp(Event*new_in,Event*t1);};2.1.3顾客类(Customer)classCustomer{public:intdurtime;intselect;Customer*next;Customer():sel
3、6数据说明:第一行的09:30表示理发馆将于九点半开门;第二行的6表示理发馆有6张理发椅(此处可输入3~9的任意值);随后的N行:表示第i张椅子的理发师的级别(如:第1张理发椅是1级理发师,第2张理发椅是1级理发师…)。最后一行的0.6代表折扣(可选)1.2.2随机数据需求:每个顾客进门时将负责生成三个随机数:1)理发时间durtime:进门顾客理发所需服务时间;2)间隔时间intertime:该顾客与下一位顾客到达的时间间隔;3)服务选项select:该顾客选择理发师的级别。由随机数函数产生。1.2.3输出数
4、据(输出到文本文件中):本日账目清单===============================按理发师===============================理发师编号:1级别:1工作时长:17本日盈收:17理发师编号:2级别:1工作时长:29本日盈收:29理发师编号:3级别:2工作时长:28本日盈收:14理发师编号:4级别:3工作时长:73本日盈收:23理发师编号:5级别:2工作时长:24本日盈收:12理发师编号:6级别:3工作时长:27本日盈收:9理发师编号:7级别:3工作时长:20本日盈收:6理
5、发师编号:8级别:1工作时长:30本日盈收:30================================按级别===============================1级别理发师总工时:76总收入:762级别理发师总工时:52总收入:263级别理发师总工时:120总收入:38=================================总汇===============================本日总创收:1401.3开发与运行环境需求1.3.1开发环境:Visualstudio2010
6、1.3.2运行环境:Winxp/Win7/Win81.4用户界面设计1.4.1初始化界面(例:6个队列)8队列界面1.4.2顾客到达、理发及等待界面1.4.3顾客离开界面1.4.4DOS/GUI同步演示程序过程1.4.5折扣选择界面2数据结构设计2.1主要数据结构2.1.1事件类(Event)//事件类:包含事件发生时间,事件类型,和下一个事件(指针)三个数据成员classEvent{public:intoccurtime;intevent_type;Event*next_event;Event(){}Even
7、t(intoccurtime,intevent_type):occurtime(occurtime),event_type(event_type),next_event(NULL){}~Event(){}};2.1.2事件表(EventList)//事件表类:数据成员:头指针,两个用于插入删除事件结点的指针,和事件表长度classEventList{public:Event*head,*ptr_before,*ptr_after;intlength;//事件表长度EventList(){head=newEven
8、t(-1,-1);length=1;}~EventList(){}voidOrderIn(Event*new_in);intListEmpty();intCmp(Event*new_in,Event*t1);};2.1.3顾客类(Customer)classCustomer{public:intdurtime;intselect;Customer*next;Customer():sel
此文档下载收益归作者所有