當前位置:首頁 » 課程大全 » 排班系統課程設計

排班系統課程設計

發布時間: 2021-02-11 22:08:14

⑴ C語言課程設計-保安值班系統

這個像排列組合多點:

c:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
char*week[7]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
char*names[7]={"趙","錢","孫","李","周","吳","陳"};
intplan[7]={-1};
intplanNum=0;
voiddoPlan(intn,int*len,intaccept[7][3]){
if(n>6){
planNum++;
for(inti=0;i<n;++i){
printf("%s ",names[plan[i]]);
}
printf(" ");
}else{
for(inti=0;i<len[n];++i){
if(plan[accept[n][i]]>=0){
continue;
}
plan[accept[n][i]]=n;
doPlan(n+1,len,accept);
plan[accept[n][i]]=-1;
}
}
}

intmain(){
intlen[7]={2,2,2,1,3,2,3};//這里的數字對應accept[i]的長度
intaccept[7][3]={{2,4},{1,6},{0,3},{5},{1,4,6},{2,
5},{0,3,6}};
for(inti=0;i<7;i++){
printf("%s ",week[i]);
plan[i]=-1;
}
printf(" ");
doPlan(0,len,accept);
printf("總共%d個方案 ",planNum);
return0;
}

⑵ 用c語言編寫排班系統

打開這個網路文庫鏈接,裡面有您需版要的答案。權
https://wenku..com/view/5b97eafb52d380eb63946de2.html?from=search

⑶ C語言編程排班系統

#include <stdio.h>

int n = 0;
int rest[7][7];

void swap(int *a, int *b)
{
int m;
m = *a;
*a = *b;
*b = m;
}

void perm(int list[], int k, int m)
{
int i;
int j;
if(k > m)
{
for (i=0; i<7; i++)
{
for (j=0; j<7; j++)
{
if (rest[i][j] == 0)
return;
if (rest[i][j] != list[i])
continue;
if (rest[i][j] == list[i])
break;
}
}

n++;
printf("Solution: %d\n", n);
printf("趙 錢 孫 李 周 吳 陳\n");
printf("=============================================================\n");
for(i = 0; i <= m; i++)
{
switch (list[i])
{
case 1: printf("星期一 ");
break;
case 2: printf("星期二 ");
break;
case 3: printf("星期三 ");
break;
case 4: printf("星期四 ");
break;
case 5: printf("星期五 ");
break;
case 6: printf("星期六 ");
break;
case 7: printf("星期日 ");
break;
default:
break;
}
}
printf("\n\n\n");
}

else
{
for(i = k; i <= m; i++)
{
swap(&list[k], &list[i]);
perm(list, k + 1, m);
swap(&list[k], &list[i]);
}
}
}

int main()
{
printf("\n");
printf("注意:\n");
printf(" 1.請按錢、趙、孫、李、周、吳、陳的順序輸入休息每個人的時間。\n");
printf(" 2.輸入星期時,請直接輸入數字,如要輸入'星期一',就用'1'代替,以此類推。\n");
printf(" 3.星期與星期之間用空格隔開,每輸入完一個人的休息日,在其後輸入0,再按回車繼續下一人。\n");
printf("\n");
int list[] = {1, 2, 3, 4, 5, 6, 7};
int i, j;
for(i = 0; i < 7; i++)
{
printf("請輸入第 %d 個人的休息時間:\n", i+1);
for(j = 0; j < 7; j++)
{
scanf("%d", &rest[i][j]);
if(rest[i][j] == 0)
break;
}
}
printf("\n\n\n");
perm(list, 0, 6);
getchar();
getchar();
printf("輸出完畢,按回車鍵結束!\n");
return 0;
}

⑷ 學校學生排班系統

分換源碼???你真行,這個程序做做也得小錢的

⑸ 用EXCEL製作一個自動排班系統(可以利用公式的方法)

具體操作步驟如下:

1、以Excel2007為例,打開Excel表格,如圖所示。

⑹ c++ 課程設計 保安值班安排系統

想吧編程量些多確實比較麻煩,我寫了一下盡量多,但是也才100多行,我想你可以加一些函數,比如加些修改的函數什麼的,我寫的,好久沒有用C++了都忘了,然而,今天看到是以為小妹有需要,嘿嘿,就寫了一個,有需要的你可以看看
#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
struct peopleclass
{
string name;
int day[7];
int max;
int a;
};
struct abcde
{
int b[7];
struct abcde *next;
}*p1 , *p2;
////////////////////////////////////////////////////////////////////////////////
int CinName(peopleclass *people) //輸入保安名字
{
int i,j;
for(i=0;i<7;i++)
{
cout<<endl<<"輸入保安名字:";
cin>>people[i].name;
people[i].max=0;
people[i].a=0;
for(j=0;j<7;j++)
people[i].day[j]=0;
}
}
////////////////////////////////////////////////////////////////////////////////
//輸入保安選擇的休息時間
int CinDay(peopleclass *people)
{
int i,x,z=0;
for(i=0;i<7;i++,z=0)
{
cout<<endl
<<people[i].name
<<"合適的休息日是(輸入數字1-7表示周一到周日):";
do
{
cin1:
cin>>x;
if(x>=0&&x<=7)
{
if(x==0&&z!=1)
{
cout<<endl<<"輸入錯誤!必須要選擇合適的休息時間,請重新輸入:";
goto cin1;
}
if(x==0)
break;
people[i].day[x-1]=1;
z=1;
}
else
{
cout<<endl<<"輸入錯誤!請重新輸入:";
goto cin1;
}

people[i].max++;
cout<<"添加合適的休息時間(選擇「0」退出):";
}while(1);
}
}
////////////////////////////////////////////////////////////////////////////////////
int CoutPeople(peopleclass *people,int d,abcde *No) //安排時間
{
for(int k=0;k<7;k++)
if((people[k].day[7-d]==1)&&(people[k].a==0))
{
people[k].a=1;
p1->b[7-d]=k;
if(d==1)
{
p2=p1;
p1=new abcde ;
p2->next=p1;
p1->next=NULL;
for(int j=0;j<7;j++)
{
p1->b[j]=p2->b[j];
}
}
int e=d-1;
CoutPeople(people,e,No);
people[k].a=0;
}
}
///////////////////////////////////////////////////////////////////////////////////////
int coutf(peopleclass *people,abcde *No) //輸出函數
{
abcde *p1;
int i,j;
p1=No;
for(;p1->next!=NULL;p1=p1->next)
{
for(i=0;i<7;i++)
{
j=p1->b[i];
cout<<"星期"<<i+1<<"「 "<<people[j].name<<" 」"<<"休息";
}cout<<endl;
}
}
//////////////////////////////////////////////////////////////////////////////////////
//主函數
int main()
{
class peopleclass people[7];
int namber=7;
abcde *No=new abcde;
No->next=NULL;
p1=No;
CinName(people);
CinDay(people);
CoutPeople(people , namber , No);
coutf(people,No);
}

⑺ 排班考勤系統怎麼設計

雖然從事考勤系統20年,早10年前就不做排班考勤了,自動抓班.

⑻ c語言程序課程設計保安值班安排系統怎麼做

某公司有7名保安人員:趙、錢、孫、李、周、吳、陳。由於工作需要進行輪休制度,一星期中每人休息一天。預先讓每一個人選擇自己認為合適的休息日。請編制一程序,列印輪休的所有可能方案。當然使每個人都滿意,例如每人選擇的休息日如下:
趙:星期二、星期四
錢:星期一、星期六
孫:星期三、星期日
李:星期五
周:星期一、星期四、星期六
吳:星期二、星期五
陳:星期三、星期六、星期日

解法一:#include "stdafx.h"
#include <iostream>

using namespace std;

static char * day[] =
{
"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"
};

int _tmain(int argc, _TCHAR* argv[])
{
int a, b, c, d, e, f, g, s;

d = 4;
f = 1;
s = 0;
for( a = 0; a < 7; a++ )
{
if( (a !=1 && a != 3) || a == d || a == f )
continue;

for( b = 0; b < 7; b++ )
{
if( (b != 0 && b != 5) || b == a || b == d || b == f )
continue;

for( c = 0; c < 7; c++ )
{
if( (c != 2 && c != 6) || c == b || c == a || c == d || c == f )
continue;
for( e = 0; e < 7; e++ )
{
if( (e != 0 && e != 3 && e != 5) || e == d || e == c || e == b || e == a || e == f)
continue;
for( g = 0; g < 7; g++ )
{
if( (g != 2 && g != 5 && g != 6) || g == f || g == e || g == d || g == c || g == b || g == a )
continue;
++s;
cout << "Solution: " << s << endl;
cout << "趙\t錢\t孫\t李\t周\t吳\t陳" << endl;
cout << "==============================================================" << endl;
cout << day[a] << "\t" << day[b] << "\t" << day[c] << "\t" << day[d] << "\t"
<< day[e] << "\t" << day[f] << "\t" << day[g] << endl << endl;
}
}
}
}
}
}

運行結果:
Solution: 1
趙 錢 孫 李 周 吳 陳
==============================================================
星期四 星期一 星期三 星期五 星期六 星期二 星期日

Solution: 2
趙 錢 孫 李 周 吳 陳
==============================================================
星期四 星期一 星期日 星期五 星期六 星期二 星期三

Solution: 3
趙 錢 孫 李 周 吳 陳
==============================================================
星期四 星期六 星期三 星期五 星期一 星期二 星期日

Solution: 4
趙 錢 孫 李 周 吳 陳
==============================================================
星期四 星期六 星期日 星期五 星期一 星期二 星期三

解法二:#include<stdio.h>
char *WEEK[7] = {" 7.", " 1.", " 2.", " 3.", " 4.", " 5.", " 6."};

int IsChecked(int p[])
{
int i, j;
for (i=0; i<7; ++i)
{
for (j=0; j<7&&p[j]!=i; ++j); //*從0到6循環,如果數組中缺少0-6的任何一位數字,則返回0,如果0-6億權,則返回。*//
if (j == 7) return 0;
}
return 1; //*這個函數的作用是確保0-6這7個數字均包含在該書組中*//
}

main()
{
int t=0, j, ren[7];
long i;
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("**********************************************");
printf("\n*zhao, qian, sun, li, zhou, wu, chen *\n");
printf("*--------------------------------------------*\n");
printf("");
for (i=0; i<2097152; ++i)
{
for (j=0; j<7; ++j)

{
ren[j]= (i>>(3*j))&7; //*通過這個循環,窮盡0-7在數組中所有的排列組合方式*//
}
if (!(ren[0]==2 || ren[0]==4))continue; //*如果趙保安不是休周二或周四,就不用循環了。*//
else if (!(ren[1]==1 || ren[1]==6))continue;//*如果錢保安不是休周一或周六,就不用循環了。*//
else if (!(ren[2]==3 || ren[2]==0))continue;//*如果孫保安不是休周三或周日,就不用循環了。*//
else if (!(ren[3]==5))continue; //*如果李保安不是休周五,就不用循環了。*//
else if (!(ren[4]==1 || ren[4]==4 || ren[4]==6))continue; //*如果周保安不是休周一或周四或周六,就不用循環了。*//
else if (!(ren[5]==2 || ren[5]==5))continue; //*如果吳保安不是休周二或周五,就不用循環了。*//
else if (!(ren[6]==3 || ren[6]==6 || ren[6]==0))continue;//*如果陳保安不是休周三或周六或周日,就不用循環了。*//
else if (!IsChecked(ren)) continue; //*至此,所有的保安可按他們的願望休假,但是此時的方案可能有兩個人同休一天的*//
//*情況發生,因此用這個函數排除,如果0-6這七個數字(一周七天)任何一個包含在數組中則此次匹配失敗。*//
for (j=0; j<7; ++j){
printf(" %s ", WEEK[ren[j]]);
}printf(" *");
printf("\n"); //*輸出成功匹配方案*//
++t; //*記錄成功匹配個數*//
}
printf("*--------------------------------------------*");
printf("\n* %d zhong qing kuang! *", t); //*輸出成功匹配方案個數*//
printf("\n**********************************************");
getch();
}

結果是
**********************************************
*zhao, qian, sun, li, zhou, wu, chen *
*--------------------------------------------*
4. 6. 3. 5. 1. 2. 7. *
4. 1. 3. 5. 6. 2. 7. *
4. 6. 7. 5. 1. 2. 3. *
4. 1. 7. 5. 6. 2. 3. *
*--------------------------------------------*
* 4 zhong qing kuang! *

⑼ 智能排班系統都有什麼方案有哪些功能

功能有很多,如自動針對人員需求,日常工作時間進行排班,對偶爾出外勤也可編入排班,有效靈活的減少了人事人員的工作量,也避免了排班出現錯誤。在選擇上我建議喔趣,功能齊全,手機電腦均可操作 靈活性也很強。

⑽ C語言實現排班系統。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

structPerson
{
intcnDay;
intday[7];//開的足夠大,假設某個人可能7天都忙--.
charpName[10];
};

charname[7][10];//7個人,每人名字不超過10
Personp[7];//7個人的信息
boolisEmpty[7]={false};//標記7天已佔用情況

voidsetTable(inti)
{
if(i==7)
{
printf("星期一星期二星期三星期四星期五星期六星期日 ");
for(intk=0;k<7;++k)
{
printf("%s",name[k]);
}
printf(" ");
return;
}
intk=0;
for(;k<p[i].cnDay;++k)
{
if(isEmpty[p[i].day[k]]==false)
{
isEmpty[p[i].day[k]]=true;
strcpy(name[p[i].day[k]],p[i].pName);
setTable(i+1);
isEmpty[p[i].day[k]]=false;
}
}
}

intmain()
{
intday;
intcount;
for(inti=0;i<7;++i)
{
printf("輸入第%d個人的名字,然後依次輸入每個人的繁忙日,輸入0結束此人信息錄入! ",i+1);
count=0;
scanf("%s",p[i].pName);
scanf("%d",&day);
while(day!=0)
{
p[i].day[count]=day-1;
++count;
scanf("%d",&day);
}
p[i].cnDay=count;
}
setTable(0);
return0;
}

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919