您好,欢迎来到爱站旅游。
搜索
您的当前位置:首页c++课程设计-保安值班安排系统

c++课程设计-保安值班安排系统

来源:爱站旅游
目 录

一 课程设计目的 ………………………………………………………4 二 课程设计任务和内容 ………………………………………………4 三 系统设计方案 ………………………………………………………5 系统详细描述……………………………………………………5 ……………………………………………………6

四 系统实现与测试……………………………………………………6 4.1 主菜单模块实现………………………………………………6 ………………………………………………………6 …………………………………………………………6 ……………………………………………………9

4.2 排班模块实现…………………………………………………10 ……………………………………………………10 ………………………………………………………10 …………………………………………………18 4.3 输入资料模块实现

……………………………………………………20 ………………………………………………………21 …………………………………………………24 4.4 查询资料模块实现

4.4.1流程图……………………………………………………25

4.4.2代码………………………………………………………27 4.4.3模块测试…………………………………………………27 4.5 删除资料模块实现

4.5.1流程图……………………………………………………28 4.5.2代码………………………………………………………29 4.5.3模块测试…………………………………………………31 4.6 修改资料模块实现 4.7 查询工龄模块实现

4.7.1流程图……………………………………………………32 4 .7.2代码………………………………………………………32 4.7.3模块测试…………………………………………………34 4.8 查询休息时间模块实现

4.8.1流程图……………………………………………………34 4.8.2代码………………………………………………………34 4.8.3模块测试…………………………………………………35 4.9 输出资料模块实现

4.9.1代码………………………………………………………36 4.9.2模块测试…………………………………………………38 4.10 修改密码模块实现

4.10.1流程图……………………………………………………39 4.10.2代码………………………………………………………40 4.10.3模块测试…………………………………………………41

4.11 退出模块实现

4.11.1代码………………………………………………………42 五 程序调试中出现的问题及解决方法………………………………42 六 参考文献……………………………………………………………42 七 附录…………………………………………………………………42

一、课程设计的目的

1) 学习综合运用C高级语言课程和其他先修课程的知识,提高分析和解决实际

问题的的能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。 2) 全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立

完成有一定工作量的程序设计任务,同时强调好的程序设计风格。 3) 掌握程序设计中的常用算法和C语言的编程技巧和上机调试程序的方法。 4) 在参与一系列子项目的实践过程中,提高如何综合运用所学知识解决实际问

题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。

二、课程设计任务和内容

学校有7名保安人员:赵、钱、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制一程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日,每个人先选择自己的休息,然后经过分析和商量,列出有关的可能的方案。

系统的创建与实施可以为生活区或者企业提供很方便的服务。便于保安人员的工作服务。管理员可以修改值班的信息以及基本的信息。同时为了使每个人都满意,可以实施轮流的方案,这样每个人就处于平等的优势,当然保安人员可以请假或者经过他们自己的商量,暂时的替班。

三 系统设计方案

软件使用说明:

保安值班安排系统主要有四个功能:

第一 保安排班管理,管理员可以通过登录界面进入信息界面查看保安人员的值班信息;

第二 管理员管理,管理员可以通过信息修改表修改保安人员的值班信息: 第三 保安排班查询.,保安人员可以通过登陆界面查询值班情况:

第四程 序管理权限的设置,即管理员和保安人员的登陆后进入的界面不同。

基本要求有下面几点:

1该程序要求应该是能够输入每人选择的休息日期,由于工作需要进行轮休制度,一星期中每人只能休息一天。

2先让每一个人选择自己认为合适的休息日,判断是否符合条件 3此程序可以打印轮休的所有可能方案。当然使每个人都满意。

4每个人先给出自己的想休息的星期天,然后,经过商量,让主管人员给出可能的方案。 概要设计: 流程图如: 开始 排 班 输 入资料 查 询 删 除资料 更 改资料 查 询工龄 查 询休息时间 输 出资料 修 改密码 退出 输入相应数字可进入相应菜单,删除和更改资料需要输入密码。

四 系统实现与测试 4.1 主菜单

开始 输出可选 择项

判断是结束 退出 否退出 输入选择的项目 进行选择的操作

int main() {

int m; string p; int t=1; while(t!=0) {

system(\"cls\");

cout<<\"****************欢迎进*****************\"<cout<<\"# #\"<cout<<\"# #\"<cout<<\"# #\"<入排 班系统

*

***

*********

cout<<\"# ***快乐排班*** #\"<cout<<\"# ********* #\"<cout<<\"# *** #\"<cout<<\"# * #\"<cout<<\"****************欢迎进入排班系统*****************\"<cout<<\"排班请输入1;输入资料请输入2;查询请输入3;删除资料\"<>m;

if(m==1)case1(); else if(m==2) {

if(case0()==0)case2(); }

else if(m==3)case3(); else if(m==4) {

if(case0()==0)case4(); }

else if(m==5) {

if(case0()==0)case2(); }

else if(m==6)case6(); else if(m==7)case7(); else if(m==8)case8(); else if(m==9)case9(); else if(m==0)t=0; else {

cout<<\"无该选项请重新选择!\"<>p; } }

return 0; }

测试如下:

4.2 模块一:排班模块

If(保存) 输入选择 输入1 开始 输出主页面 输出输入选择 输出可能方案

保存 输入选择的方案

void case1(void) {

int m,i; string o; int z[7];

int j,k,h,n=0,flag=1; int a,b,c,d,e,f,g;

int achoice,bchoice,cchoice,dchoice,echoice,fchoice,gchoice; int q[7][7]; int A[7];

cout<<\"****************欢迎进入排班系统*****************\"<cout<<\"请赵输入轮休日期\"<cout<<\"请钱输入你想选择的次数\"<cout<<\"请钱输入轮休日期\"<cout<<\"请孙输入你想选择的次数\"<cout<<\"请孙输入轮休日期\"<cout<<\"请李输入你想选择的次数\"< cout<<\"请李输入轮休日期\"<cout<<\"请周输入你想选择的次数\"<cout<<\"请周输入轮休日期\"<cout<<\"请吴输入你想选择的次数\"<cout<<\"请吴输入轮休日期\"<cout<<\"请陈输入你想选择的次数\"<cout<<\"请陈输入轮休日期\"<for(a=0;a A[4]=q[e][4]; A[5]=q[f][5]; A[6]=q[g][6]; flag=1; for(k=0;k<6;k++) { for(h=k+1;h<7;h++) { if(A[k]==A[h]) flag=0; } } if(flag==1) { cout<<\"得到以下组合:\"<if(n==0) { cout<<\"对不起,你们的选择不能实现排班,请重新选择!!\"<else cout<<\"保存请输入1\"; cout<<\"退出请输入0\"<>m; if(m==0) cout<<\" \"; else if(m==1) {

cout<<\"请按次序和选择的方案输入休息日\"<>z[i];

fstream outfile(\"f1.txt\ if(!outfile) cout<<\"open error!\"<cout<<\"已保存!\"<cout<<\"请输入任意值返回主菜单。\"<>o; }

输入1回车将分别请钱、赵、孙、李、周、吴、陈输入选择次数和轮休日期然后自动排班,输入2选择方案并保存数据。

图4

4.3 模块二:输入资料模块

保存 If(保存) 输出请输入资输入1 开始 输出主页面 输入密码 If(正确) 输入资料

void case2(void) {

int n,t; string i; struct baoan {int num; string name; char sex; int age;

string telephone; int day; int days; string addr; }baoan[8];

fstream infile(\"f2.txt\ if(!infile) cout<<\"open error!\"<infile>>baoan[n].num>>baoan[n].name>>baoan[n].sex>>baoan[n].telephone>>baoan[n].age>>baoan[n].day>>baoan[n].days>>baoan[n].addr;\" \"; infile.close();

cout<<\"请按提示输入信息按回车确认。\"<>n; if(n>=8) { cout<<\"无此工号请重新输入\"<>n; }

baoan[n].num=n;

cout<<\"请输入姓名:\"; cin>>baoan[n].name;

cout<<\"请输入性别(男m女w):\"; cin>>baoan[n].sex;

cout<<\"请输入电话号码:\"; cin>>baoan[n].telephone; cout<<\"请输入年龄:\"; cin>>baoan[n].age;

cout<<\"请输入休息日:\";

cin>>baoan[n].day;

cout<<\"请输入工龄(天):\"; cin>>baoan[n].days;

cout<<\"请输入住址(以/或、隔开):\"; cin>>baoan[n].addr;

cout<<\"输入以下资料:\"<cout<<\"确认请输入2;重新输入请输入1\"<>t; if(t==2) { fstream outfile(\"f2.txt\ if(!outfile) cout<<\"open error!\"<else if(t==1) cout<<\"未储存请重新选择!\"<>i; }

输入2将要求输入密码输入正确密码后将提示输入各种信息男m女w, 输入后将要求输入2保存数据,输入1将不保存。

4.4 模块三:查询模块

输出主菜单 开始

输入查询工号 输入3

输出信息

void case3(void) {

int n; string i; struct baoan {int num; string name; char sex; int age;

string telephone; int day; int days; string addr; }baoan[8];

fstream infile(\"f2.txt\ if(!infile) cout<<\"open error!\"<infile>>baoan[n].num>>baoan[n].name>>baoan[n].sex>>baoan[n].telephone>>baoan[n].age>>baoan[n].day>>baoan[n].days>>baoan[n].addr;\" \"; infile.close();

cout<<\"信息按工号、姓名、性别、电话、年龄、休息日、工龄、地址如下:\"<for(n=1;n<=7;n++) cout<>i; }

输入3本模块查询所有信息从“”中读取信息并显示

信息按工号、姓名、性别、电话、年龄、休息日、工龄、地址显示。

4.5 模块四:删除资料模块

开始 输出主菜单 输入4 输入密码 否 是

否 If(正确) If(输入0)

输入删除工号

void case4(void) {

int n; string i; struct baoan {int num; string name; char sex; int age;

string telephone; int day; int days; string addr; }baoan[8];

fstream infile(\"f2.txt\ if(!infile) cout<<\"open error!\"<infile>>baoan[n].num>>baoan[n].name>>baoan[n].sex>>baoan[n].telephone>>baoan[n].age>>baoan[n].day>>baoan[n].days>>baoan[n].addr;\" \"; infile.close();

cout<<\"请输入要删除的工号:\"<>n;

baoan[n].num=0; baoan[n].name='x'; baoan[n].sex='x';

baoan[n].telephone='0'; baoan[n].age=0; baoan[n].day=0; baoan[n].days=0; baoan[n].addr='x';

fstream outfile(\"f2.txt\ if(!outfile) cout<<\"open error!\"<\"<outfile.close();

cout<<\"已删除!\"<>i; }

输入4要求输入密码输入正确密码后输入要删除信息的工号然后将删除该工号下所有信息!

4.6 模块五:修改资料模块和模块2相似

4.7 模块六:查询工龄从“”文件夹中提取信息输出工龄

开始

输入6 输出主菜单

输出所有工龄 从文件提取信息

void case6(void) {

int n; string i; struct baoan {int num; string name; char sex; int age;

string telephone; int day; int days; string addr; }baoan[8];

fstream infile(\"f2.txt\ if(!infile) cout<<\"open error!\"<infile>>baoan[n].num>>baoan[n].name>>baoan[n].sex>>baoan[n].telephone>>baoan[n].age>>baoan[n].day>>baoan[n].days>>baoan[n].addr;\" \"; infile.close();

for(n=1;n<=7;n++) { cout<cout<<\"请输入任意值返回主菜单!\"<>i; }

4.8 模块七:查询休息时间从“”文件夹中提取信息输出休息时间

开始 输出主菜单 输入6

输出所有工龄 从文件提取信息

void case7(void) {

int i; string o; int a[7];

fstream infile(\"f1.txt\ if(!infile) cout<<\"open error!\"<>a[i]; cout<cout<<\"输入任意值返回主菜单\"<>o; }

4.9 模块八:输出模块

从“”文件夹中提取信息输出到“”中将输出所有信息4.9.1代码 void case8(void) {

int n;

string i; struct baoan {int num; string name; char sex; int age;

string telephone; int day; int days; string addr; }baoan[8];

fstream infile(\"f2.txt\ if(!infile) cout<<\"open error!\"<infile>>baoan[n].num>>baoan[n].name>>baoan[n].sex>>baoan[n].telephone>>baoan[n].age>>baoan[n].day>>baoan[n].days>>baoan[n].addr;\" \"; infile.close();

fstream outfile(\"f3.txt\ if(!outfile) cout<<\"open error!\"<cout<<\"已输出到“”文件中\"<>i; }

4.9.2测试

4.10 模块九:修改密码

判断是否争确 输入10 输入原密码 输入新密码

输入0返回 保存 void case9(void) {

int s;

string a,b,i; s=case0(); while(s==0) { cout<<\"请输入新密码:\"<>a; cout<<\"请再次输入密码:\"<>b; if(a==b) { cout<<\"修改成功!\"<}

}

outfile<>i; }

else cout<<\"输入错误请重新输入!\"<管理员才有权限修改和删除资料需要密码,修改密码先要输入正确密码然后输入两次新密码后保存新密码。

1 模块十:退出

int main() {

int m;

string p; int t=1; while(t!=0) { system(\"cls\"); cout<<\"****************欢迎进入排班系统*****************\"<>m; if(m==1)case1(); else if(m==2) { if(case0()==0)case2(); } else if(m==3)case3(); else if(m==4) { if(case0()==0)case4(); } else if(m==5) { if(case0()==0)case2(); } else if(m==6)case6(); else if(m==7)case7();

}

else if(m==8)case8(); else if(m==9)case9(); else if(m==0)t=0; else { cout<<\"无该选项请重新选择!\"<>p; } }

return 0;

五 程序调试中出现的问题及解决方法

1. 曾在选择时输入字母会死循环 解决方法把整形定义为字符串; 2. 修改密码时忘记密码无法退出 解决方法添加了个退出函数; 3. 找不到保存文件时陷入死循环 解决方法输出找不到数据文件;

六 参考文献

[1]谭浩强,《C++程序设计》,清华大学出版社, 2011。 [2]郑莉,《C++程序设计(第三版)》,清华大学出版社, 2005。 [3]钱能,《C++程序设计教程》,清华大学出版社, 2004。 [4]武俊亮,《visual c++课程设计与系统开发案例》,清华出版社。 [5]黄维通,《Visual C++程序设计教程》,清华大学出版社, 2005。

七 附录(源代码)

#include #include #include using namespace std; int case0() {

int s=1; string a,b,c; c='0';

fstream infile(\"f4.txt\ if(!infile) cout<<\"open error!\"<>a; infile.close();

while(s==1) { cout<<\"请输入密码:\"<>b; if(b==a) { s=0; } else if(b==c) { s=2; } else cout<<\"密码错误请重新输入!退出请输入0。\"<return s; }

void case1(void) {

int m,i; string o; int z[7];

int j,k,h,n=0,flag=1; int a,b,c,d,e,f,g;

int achoice,bchoice,cchoice,dchoice,echoice,fchoice,gchoice; int q[7][7]; int A[7];

cout<<\"****************欢迎进入排班系统*****************\"<cout<<\"请赵输入轮休日期\"<cout<<\"请钱输入你想选择的次数\"<cout<<\"请钱输入轮休日期\"<cout<<\"请孙输入你想选择的次数\"<cout<<\"请孙输入轮休日期\"<cout<<\"请李输入你想选择的次数\"<cout<<\"请李输入轮休日期\"<cout<<\"请周输入你想选择的次数\"<cout<<\"请周输入轮休日期\"<cout<<\"请吴输入你想选择的次数\"<cout<<\"请吴输入轮休日期\"<cout<<\"请陈输入你想选择的次数\"<cout<<\"请陈输入轮休日期\"<for(a=0;a\"; \"; \"; \"; for(c=0;cfor(g=0;gif(n==0) { cout<<\"对不起,你们的选择不能实现排班,请重新选择!!\"<else cout<<\"保存请输入1\"; cout<<\"退出请输入0\"<>m; if(m==0) cout<<\" \"; else if(m==1) { cout<<\"请按次序和选择的方案输入休息日\"<>z[i];

fstream outfile(\"f1.txt\ if(!outfile) cout<<\"open error!\"<cout<<\"已保存!\"<cout<<\"请输入任意值返回主菜单。\"<>o; }

void case2(void) {

int n,t; string i; struct baoan {int num; string name; char sex; int age;

string telephone; int day; int days; string addr; }baoan[8];

fstream infile(\"f2.txt\

if(!infile) cout<<\"open error!\"<infile>>baoan[n].num>>baoan[n].name>>baoan[n].sex>>baoan[n].telephone>>baoan[n].age>>baoan[n].day>>baoan[n].days>>baoan[n].addr;\" \"; infile.close();

cout<<\"请按提示输入信息按回车确认。\"<>n; if(n>=8) { cout<<\"无此工号请重新输入\"<>n; }

baoan[n].num=n;

cout<<\"请输入姓名:\"; cin>>baoan[n].name;

cout<<\"请输入性别(男m女w):\"; cin>>baoan[n].sex;

cout<<\"请输入电话号码:\"; cin>>baoan[n].telephone; cout<<\"请输入年龄:\"; cin>>baoan[n].age;

cout<<\"请输入休息日:\"; cin>>baoan[n].day;

cout<<\"请输入工龄(天):\"; cin>>baoan[n].days;

cout<<\"请输入住址(以/或、隔开):\"; cin>>baoan[n].addr;

cout<<\"输入以下资料:\"<cout<<\"确认请输入2;重新输入请输入1\"<>t; if(t==2) { fstream outfile(\"f2.txt\ if(!outfile) cout<<\"open error!\"<outfile<else if(t==1) cout<<\"未储存请重新选择!\"<>i; }

void case3(void) {

int n; string i; struct baoan {int num; string name; char sex; int age;

string telephone; int day; int days; string addr; }baoan[8];

fstream infile(\"f2.txt\ if(!infile) cout<<\"open error!\"<infile>>baoan[n].num>>baoan[n].name>>baoan[n].sex>>baoan[n].telephone>>baoan[n].age>>baoan[n].day>>baoan[n].days>>baoan[n].addr;\" \"; infile.close();

cout<<\"信息按工号、姓名、性别、电话、年龄、休息日、工龄、地址如下:\"<for(n=1;n<=7;n++) cout<>i; }

void case4(void) {

int n; string i; struct baoan {int num; string name; char sex; int age;

string telephone; int day; int days; string addr; }baoan[8];

fstream infile(\"f2.txt\ if(!infile) cout<<\"open error!\"<infile>>baoan[n].num>>baoan[n].name>>baoan[n].sex>>baoan[n].telephone>>baoan[n].age>>baoan[n].day>>baoan[n].days>>baoan[n].addr;\" \"; infile.close();

cout<<\"请输入要删除的工号:\"<>n;

baoan[n].num=0; baoan[n].name='x'; baoan[n].sex='x';

baoan[n].telephone='0'; baoan[n].age=0; baoan[n].day=0; baoan[n].days=0; baoan[n].addr='x';

fstream outfile(\"f2.txt\ if(!outfile) cout<<\"open error!\"<outfile.close();

cout<<\"已删除!\"<cin>>i; }

void case6(void) {

int n; string i; struct baoan {int num; string name; char sex; int age;

string telephone; int day; int days; string addr; }baoan[8];

fstream infile(\"f2.txt\ if(!infile) cout<<\"open error!\"<infile>>baoan[n].num>>baoan[n].name>>baoan[n].sex>>baoan[n].telephone>>baoan[n].age>>baoan[n].day>>baoan[n].days>>baoan[n].addr;\" \"; infile.close();

for(n=1;n<=7;n++) { cout<cout<<\"请输入任意值返回主菜单!\"<>i; }

void case7(void) {

int i; string o; int a[7];

fstream infile(\"f1.txt\ if(!infile) cout<<\"open error!\"<>a[i];

cout<cout<<\"输入任意值返回主菜单\"<>o; }

void case8(void) {

int n; string i; struct baoan {int num; string name; char sex; int age;

string telephone; int day; int days; string addr; }baoan[8];

fstream infile(\"f2.txt\ if(!infile) cout<<\"open error!\"<infile>>baoan[n].num>>baoan[n].name>>baoan[n].sex>>baoan[n].telephone>>baoan[n].age>>baoan[n].day>>baoan[n].days>>baoan[n].addr;\" \"; infile.close();

fstream outfile(\"f3.txt\ if(!outfile) cout<<\"open error!\"<cout<<\"已输出到“”文件中\"<>i; }

void case9(void)

{

int s;

string a,b,i; s=case0(); while(s==0) { cout<<\"请输入新密码:\"<>a; cout<<\"请再次输入密码:\"<>b; if(a==b) { cout<<\"修改成功!\"<>i; } else cout<<\"输入错误请重新输入!\"<int main() {

int m; string p; int t=1; while(t!=0) { system(\"cls\"); cout<<\"****************欢迎进入排班系统*****************\"<cout<<\"# ********* #\"<>m; if(m==1)case1(); else if(m==2) { if(case0()==0)case2(); } else if(m==3)case3(); else if(m==4) { if(case0()==0)case4(); } else if(m==5) { if(case0()==0)case2(); } else if(m==6)case6(); else if(m==7)case7(); else if(m==8)case8(); else if(m==9)case9(); else if(m==0)t=0; else { cout<<\"无该选项请重新选择!\"<>p; } }

return 0; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- azee.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务