ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:58.84KB ,
资源ID:9402403      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9402403.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言编写保安值班安排系统.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言编写保安值班安排系统.docx

1、C语言 编写保安值班安排系统保安值班安排系统题目:某公司有7名保安人员:赵、钱、孙、李、周、吴、陈。由于工作需要需要进行轮休制度,一星期中每人休息一天。预先让每个人选择自己认为合适的休息日。请编制一程序,打印轮休的所有可能的方案。当然是每个人都满意,例如每个人选择的休息日如下: 赵:星期二、星期四 钱:星期一、星期六 孙:星期三、星期日 李:星期五 周:星期一、星期四、星期六 吴:星期二、星期五 陈:星期三、星期六、星期日要求:(1)信息录入功能(值班信息用文件保存)输入 (2)值班信息浏览功能 输出 (3)调换班功能 (4)根据值班时间及次数计算薪酬运行结果 执行void main()/*主

2、函数*/void wage();/*工资登录函数*/代码:#include #include #include using namespace std;void manager();/*管理员登录函数声明*/void security(); /*保安登录函数声明*/void wage();/*工资登录函数声明*/void file_edit(ofstream& fout,char file_name); /文件生成函数声明int compare_values(int a,int b,int c,int d,int e,int f,int g);/判断七个变量是否两两相等的函数声明int exc

3、hange(char cha);/字符转换为整型的函数声明void load();void main()/*主函数*/ char k; cout * endl; cout 欢迎使用保安值班安排系统! endl; cout 制作人:xx 时间:2011-12-15 endl; cout * endlendl; cout 请选择您所需要的服务 endl; cout p:管理员n s:保安n g:工资 n e:退出nk; switch(k) case p: cout这是一个员工休息时间安排的程序。nendl; manager (); break; case s: cout请查看所有排班情况:nend

4、l; security (); break; case g: cout以工作天数计算工资:nendl; wage (); break; case e: exit(0); default: cout输入信息错误!n请输入字母p或s或e或g.nendl;break; void manager()/*管理员登录函数*/ char file_name30; ofstream fout; /int choose; file_edit(fout,file_name); /调用文件生成函数 /*cout 1:选择自己的休息日 endl; cout 2:显示排班的结果 endl; cout choose; s

5、witch(choose) case 1:*/ load(); system(cls); system(date /t); system(time /t); system(color fc); loop: int a77=0,i,j; string select7; string name=星期日,星期一,星期二,星期三,星期四,星期五,星期六; for(j=0;j7;j+) / 进行数据输入 switch(j) case 0:cout赵;break; case 1:cout钱;break; case 2:cout孙;break; case 3:cout李;break; case 4:cout

6、周;break; case 5:cout吴;break; case 6:cout陈;break; coutselectj; for(i=0;i7;i+) /对特定元素赋值为1 for(j=0;jselecti.length();j+) aiexchange(selectij)=1;/调用转换函数,将字符型数据转化为整型 int b77; int m7=0,0,0,0,0,0,0; for(i=0;i7;i+) /将输入数据传给二维数组b77 for(j=0;j7;j+) if(aij=1) bimi=j;mi=mi+1; /用mi记录bi中有用数据个数 coutntt经分析结果为:n; int

7、 x1,x2,x3,x4,x5,x6,x7; int count=0; /定义计数变量 for(x1=0;x1m0;x1+) /输出每条记录 for(x2=0;x2m1;x2+) for(x3=0;x3m2;x3+) for(x4=0;x4m3;x4+) for(x5=0;x5m4;x5+) for(x6=0;x6m5;x6+) for(x7=0;x7m6;x7+) if(!(compare_values(b0x1,b1x2,b2x3,b3x4,b4x5,b5x6,b6x7)/调用判断七个变量是否两两相等的函数 count+; coutSolution:count:n /输出结果到屏幕 赵t钱

8、t孙t李 t周t吴t陈endl; cout = endl; coutnameb0x1tnameb1x2tnameb2x3tnameb3x4 tnameb4x5tnameb5x6tnameb6x7endlendl; foutSolution:count:n /输出结果到文件中保存 赵t钱t孙t李 t周t吴t陈endl; foutnameb0x1tnameb1x2tnameb2x3tnameb3x4 tnameb4x5tnameb5x6tnameb6x7endlendl; if(count=0) /判断是否重新开始 cout此方案行不通,请重新输入。endl; goto loop; else co

9、ut经分析总共有count种方案endl; int exchange(char cha)/字符转换为整型的函数定义 char q2; q0=cha; return atoi(q); /字符转换为整型int compare_values(int a,int b,int c,int d,int e,int f,int g)/判断七个变量是否两两相等的函数定义 if(a=b|a=c|a=d|a=e|a=f|a=g|b=c|b=d|b=e|b=f|b=g|c=d |c=e|c=f|c=g|d=e|d=f|d=g|e=f|e=g|f=g) /判断变量是否两两相等 return 1; else retur

10、n 0;void file_edit(ofstream& fout,char file_name)/文件生成函数定义 coutfile_name; fout.open(file_name,ios:app); if(fout.fail() /判断是否能打开文件 cout打开文件失败。endl; exit(1); foutendl endl; void load() system(cls); system(date /t); system(time /t); system(color 1f); cout nnn; cout nnnntttt 系统加载中.; cout nnnnt ; for (in

11、t i0=0;i010000000;i0+) if(i0%1000000=0) for(int j0=0;j010000000;j0+) if(j0%10000000=0) cout ; system(color 1f); cout 系统 ; for (int i1=0;i110000000;i1+) if(i1%1000000=0) for(int j1=0;j110000000;j1+) if(j1%10000000=0) cout ; system(color 2f); cout 加载; for (int i2=0;i210000000;i2+) if(i2%1000000=0) for

12、(int j2=0;j210000000;j2+) if(j2%10000000=0) cout ; system(color 3f); cout 成功.; for (int i3=0;i310000000;i3+) if(i3%1000000=0) for(int j3=0;j310000000;j3+) if(j3%8000000=0) cout ; bool IsChecked(int p) int i, j; for (i=0; i7; +i) for (j=0; j7&pj!=i; +j); /*从0到6循环,如果数组中缺少0-6的任何一位数字,则返回0,如果0-6亿权,则返回。*/

13、 if (j = 7) return false; return true; /*这个函数的作用是确保0-6这7个数字均包含在该书组中*/ void wage()/*工资登录函数*/ float t,wage,zw,day; int i,j; for(j=0;j7;j+) / 进行数据输入 switch(j) case 0:cout赵;break; case 1:cout钱;break; case 2:cout孙;break; case 3:cout李;break; case 4:cout周;break; case 5:cout吴;break; case 6:cout陈;break; cout

14、请输入值班时间,天数和每小时工资数:tdaywage; zw=t*wage*day; cout应发工资zwendl; void security()/*保安登录函数*/ char *WEEK7 = 日, 一, 二, 三, 四, 五, 六; int j, s=0; int* ren = new int7; int * rest = new int7; long i; for (i=0; i2097152; +i) for (j=0; j(3*j)&7; /*通过这个循环,穷尽0-7在数组中所有的排列组合方式*/ if (!(ren0=2 | ren0=4)continue; /*如果赵保安不是休

15、周二或周四,就不用循环了。*/ else if (!(ren1=1 | ren1=6)continue;/*如果钱保安不是休周一或周六,就不用循环了。*/ else if (!(ren2=3 | ren2=0)continue;/*如果孙保安不是休周三或周日,就不用循环了。*/ else if (!(ren3=5)continue; /*如果李保安不是休周五,就不用循环了。*/ else if (!(ren4=1 | ren4=4 | ren4=6)continue; /*如果周保安不是休周一或周四或周六,就不用循环了。*/ else if (!(ren5=2 | ren5=5)continu

16、e; /*如果吴保安不是休周二或周五,就不用循环了。*/ else if (!(ren6=3 | ren6=6 | ren6=0)continue;/*如果陈保安不是休周三或周六或周日,就不用循环了。*/ else if (!IsChecked(ren) continue; /*至此,所有的保安可按他们的愿望休假,但是此时的方案可能有两个人同休一天的*/ /*情况发生,因此用这个函数排除,如果0-6这七个数字(一周七天)任何一个包含在数组中则此次匹配失败。*/ +s; coutsolution: s endl; cout 赵 t钱 t孙 t李 t周 t吴 t陈n; cout =n; for (j=0; j7; +j) cout 星期 WEEKrenj t; cout endl;

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

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