| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3338 人关注过本帖
标题:排班系统(指针问题)
只看楼主 加入收藏
zbsilent
Rank: 2
等 级:论坛游民
帖 子:23
专家分:16
注 册:2010-11-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:12 
排班系统(指针问题)
题目2:排班系统  学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下:   钱:星期一、星期六  赵:星期二、星期四   孙:星期三、星期日   李:星期五   周:星期一、星期四、星期六   吴:星期二、星期五   陈:星期三、星期六、星期日   
 运行结果:
  Solution: 1   赵 钱 孙 李 周 吴 陈   =============================================================   星期四 星期一 星期三 星期五 星期六 星期二 星期日      Solution: 2   赵 钱 孙 李 周 吴 陈   =============================================================   星期四 星期一 星期日 星期五 星期六 星期二 星期三      Solution: 3   赵 钱 孙 李 周 吴 陈   =============================================================   星期四 星期六 星期三 星期五 星期一 星期二 星期日   
搜索更多相关主题的帖子: 星期六 休息日 
2010-12-23 22:27
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
作业帖???
你想怎么样

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-12-23 22:28
zbsilent
Rank: 2
等 级:论坛游民
帖 子:23
专家分:16
注 册:2010-11-11
收藏
得分:0 
回复 2楼 vandychan
给我个思路…… 是别的班的老师出的,没头绪……汗
2010-12-23 22:33
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:0 
把你的代码发上来看看吧.如果有错就一起找找,但不要求别人帮你写代码
其实如果你给一百分的话我可以考虑.

经验积累中............
2010-12-23 22:33
zbsilent
Rank: 2
等 级:论坛游民
帖 子:23
专家分:16
注 册:2010-11-11
收藏
得分:0 
回复 4楼 五当家
我初学 我只需要个思路…… 我正在写,写成了再说。写不成,希望有人给我个思路而已!
2010-12-23 22:36
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
明天给你代码

Go Go Go
2010-12-23 22:56
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:20 
声明下在“vc++6.0”环境下进行编译通过。
1。按照提示输入,输入一个星期按回车,例如:赵选择的是星期二,星期四。输入的时候输入“星期二+回车”,提示你是否还有选择有“y+回车”再输入星期四。。。。。。。。。
2。输入完成后自动打印轮休表。
3。代码一次修改,待优化的地方很多。。。楼主则优,优化
4。程序仅供参考;
程序代码:
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
struct st
{
    char *a[7];
    char b[7][8];
    int c;
};
void panduan(struct st *s);
void main()
{
    struct st s[7];
    int i=0;
    int j=0;
    char k;
    for(i=0;i<7;i++)
        for(j;j<7;j++)
            s[i].b[j][0]='\0';
        s[0].a[0]  = "";
        s[1].a[1]  = "";
        s[2].a[2]  = "";
        s[3].a[3]  = "";
        s[4].a[4]  = "";
        s[5].a[5]  = "";
        s[6].a[6]  = "";
        printf("请输入每个人的轮休选择:\n");
        for(i=0;i<7;i++)
        {
            printf("%s:\n",s[i].a[i]);
            for(j=0;j<7;j++)
            {   
                s[i].c = j;
                printf("请输入:");
                scanf("%s",s[i].b[j]);
                printf("%s还有选择吗?(y/n)",s[i].a[i]);
                fflush(stdin);
                k=getchar();
                if(k=='N'||k=='n')
                    break;
                fflush(stdin);
            }
            system("cls");
        }
        system("cls");
        panduan(s);
}
void panduan(struct st *s)
{
    int i,j,k,l,m,n,z;
    for(i=0;i<=s[0].c;i++)
    {
        for(j=0;j<=s[1].c;j++)
        {   
           
            if(strcmp(s[1].b[j],s[0].b[i])==0)
                continue;
            for(k=0;k<=s[2].c;k++)
            {
                if(strcmp(s[2].b[k],s[1].b[j])==0)
                    continue;
                if(strcmp(s[2].b[k],s[0].b[i])==0)
                    continue;
                for(l=0;l<=s[3].c;l++)
                {
                    if(strcmp(s[3].b[l],s[0].b[i])==0)
                        continue;
                    if(strcmp(s[3].b[l],s[1].b[j])==0)
                        continue;
                    if(strcmp(s[3].b[l],s[2].b[k])==0)
                        continue;
                    for(m=0;m<=s[4].c;m++)
                    {
                        if(strcmp(s[4].b[m],s[0].b[i])==0)
                            continue;
                        if(strcmp(s[4].b[m],s[1].b[j])==0)
                            continue;
                        if(strcmp(s[4].b[m],s[2].b[k])==0)
                            continue;
                        if(strcmp(s[4].b[m],s[3].b[l])==0)
                            continue;
                        for(n=0;n<=s[5].c;n++)
                        {
                            if(strcmp(s[5].b[n],s[0].b[i])==0)
                                continue;
                            if(strcmp(s[5].b[n],s[1].b[j])==0)
                                continue;
                            if(strcmp(s[5].b[n],s[2].b[k])==0)
                                continue;
                            if(strcmp(s[5].b[n],s[3].b[l])==0)
                                continue;
                            if(strcmp(s[5].b[n],s[4].b[m])==0)
                                continue;
                            for(z=0;z<=s[6].c;z++)
                            {
                                if(strcmp(s[6].b[z],s[0].b[i])==0)
                                    continue;
                                if(strcmp(s[6].b[z],s[1].b[j])==0)
                                    continue;
                                if(strcmp(s[6].b[z],s[2].b[k])==0)
                                    continue;
                                if(strcmp(s[6].b[z],s[3].b[l])==0)
                                    continue;
                                if(strcmp(s[6].b[z],s[4].b[m])==0)
                                    continue;
                                if(strcmp(s[6].b[z],s[5].b[n])==0)
                                    continue;
                                printf("%-4s,%-4s,%-4s,%-4s,%-4s,%-4s,%-4s\n",s[0].a[0],s[1].a[1],s[2].a[2],s[3].a[3],s[4].a[4],s[5].a[5],s[6].a[6]);
                                printf("=============================================================\n");
                                printf("%s,%s,%s,%s,%s,%s,%s\n",s[0].b[i],s[1].b[j],s[2].b[k],s[3].b[l],s[4].b[m],s[5].b[n],s[6].b[z]);
                               
                            }
                        }
                    }
                }
            }
           
        }
    }
}
结果:
图片附件: 游客没有浏览图片的权限,请 登录注册


Go Go Go
2010-12-24 15:16
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:0 
谢谢浙大的大哥
2010-12-24 15:19
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
输出的时候界面控制的不太好,稍微修改下就行了................................

Go Go Go
2010-12-24 15:19
zbsilent
Rank: 2
等 级:论坛游民
帖 子:23
专家分:16
注 册:2010-11-11
收藏
得分:0 
回复 7楼 zhaoya881010
我们大一,结构体才讲完,而且老师是用很快的速度讲完指针,然后这个题目是其他班的老师出的,上面代码很大程度上不容易理解啊!
2010-12-24 19:43
快速回复:排班系统(指针问题)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015200 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved