收藏 分销(赏)

打印机任务队列.doc

上传人:xrp****65 文档编号:6416527 上传时间:2024-12-08 格式:DOC 页数:6 大小:105.50KB 下载积分:10 金币
下载 相关 举报
打印机任务队列.doc_第1页
第1页 / 共6页
打印机任务队列.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
程序与算法综合设计 课程设计指导书 合肥工业大学 计算机与信息学院 2012年6月 课程设计报告 设计题目: 打印机任务队列 学生姓名: 孙久成 专 业: 电信科 班 级: 2班 学 号: 20112845 指导教师: 完成日期: 2012-6-26 合肥工业大学计算机与信息学院 (一) 需求和规格说明 打印机的打印队列中,每一个打印任务都有一个优先级,为1~9的一个整数(9的优先级最高,1的优先级最低),打印按如下方法进行. (1)取出打印队列中队首的打印任务J; (2)如果打印队列中存在优先级高于J的打印任务,则将J移动到打印队列的队尾;否则,打印J. 现在的问题是,要确定你要打印的文件何时打印完毕。给定当前打印队列(一个优先级队列)和你的打印任务在当前打印队列中的位置,确定你的打印任务完成时需要多长时间。为了简化问题,假定没有新的打印任务加入到打印队列中;并且,假定完成任何一个打印任务均需要1min时间,向打印队列中加入一个打印任务或从打印队列中移除一个打印任务不需要时间。 例如,当前打印队列为“1 1 9 1 1 1”且你的打印任务在队首时,需要5min. (二) 设计 系统类图salesmanager virtual void pay(); vitual void displayStatus(); salesman float CommRate; float sales; virtual void pay(); vitual void displayStatus(); manager float monthlyPay virtual void pay(); vitual void displayStatus(); technician float hourlyRate int workHours virtual void pay(); vitual void displayStatus(); Queue char *name int individualEmpNo; int grade; float accumPay; static int employeeNo; virtual void pay(); void promote(int); vitual void displayStatus(); 属性和方法定义 类名 成员类别 类型 成员名 描述 employee 属性 char * name 雇员姓名 int individualEmpNo 个人编号 int grade 级别 float accumPay 月薪总额 int employeeNo 本公司雇员编号目前最大值 方法 void pay() 计算月薪函数(为纯虚函数) void promote(int) 升级函数 void DisplayStatus() 显示人员信息(为纯虚函数) 类名 成员类别 类型 成员名 描述 technician 属性 float hourlyRate 每小时酬金 int workHours 当月工作时数 方法 void pay() accumPay=hourlyRate*workHours void DisplayStatus() 显示技术人员信息 manager 属性 float monthlyPay 固定月薪数 方法 void pay() AccumPay=monthlyPay void DisplayStatus() 显示经理信息 salesman 属性 float CommRate 按销售额提取酬金百分比 float sales 当月销售额 方法 void pay() accumPay=sales*CommRate void DisplayStatus() 显示推销员信息 salesmanager 属性 方法 void pay() accumPay=monthlyPay+CommRate*sales void DisplayStatus() 显示销售经理信息 (三) 用户手册 程序运行时,首先提示输入打印队列任务J。 然后直接输入打印任务即可完成任务。 (四) 调试及测试 附录 源程序 #include<iostream.h> typedef int DATA_TYPE; const int maxlen=100; enum error_code { success=0,underflow,overflow }; class queue { public: queue(); bool empty()const; error_code get_front(DATA_TYPE &x)const; error_code append(const DATA_TYPE X); error_code pop(); bool full()const; public: int rear,front; DATA_TYPE data[maxlen]; }; queue::queue() { rear=0; front=0; } bool queue::empty()const { return (rear==front); } error_code queue::get_front(DATA_TYPE &x)const { if(empty()) return underflow; else { x=data[front%maxlen]; return success; } } error_code queue::append(const DATA_TYPE X) { if(full()) return overflow; else { data[rear%maxlen]=X; rear++; } } error_code queue::pop() { if(empty()) return underflow; else { front++; return success; } } bool queue::full()const { return (rear==maxlen-1); } void main() { queue Q; int J,temp; for(int i=0;i<=10;i++) { cout<<"请输入打印任务J"<<endl; cin>>J; Q.append(J); } cout<<"原来的队列为"<<endl; while(Q.empty()!=true) { Q.get_front(J); cout<<J<<" "; Q.pop(); } cout<<endl; cout<<"队头元素为"<<Q.data[0]; for(int j=0;j<=100;j++) { if(Q.data[j]<Q.data[j+1]) { temp=Q.data[j]; Q.data[j]=Q.data[j+1]; Q.data[j+1]=temp; } } cout<<endl; cout<<"取出打印队列中队首的打印任务J为"<<Q.data[0]; cout<<endl; } 测试数据: 测试结果:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服