| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3109 人关注过本帖
标题:这程序到底应该怎么编出很多功能的?还有那个输出的边框怎么做的。。头炸了 ...
只看楼主 加入收藏
米小兔
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2012-7-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:23 
这程序到底应该怎么编出很多功能的?还有那个输出的边框怎么做的。。头炸了。
年历显示。
图片附件: 游客没有浏览图片的权限,请 登录注册

想要的是,能够这样显示出来,更好的是还能包括其它的功能,比如日程的添加删除及查看,返回菜单等一些功能。

#include<stdio.h>

int function1(int year){
   int d=0;
   if(year%400==0||year%4==0&&year%100!=0)
                        d=1;
   return d;
}

int function2(int year){
    int i,j,s=0,d;
    j=year-1900;
    for(i=0;i<j;i++)
           s=s+365+function1(1900+i);
    d=(s%7+1)%7;
    return d;
}
void main(){
    int i,j,k,m,n;
    int b[42];
    int c[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int year;
    for(i=0;i<42;i++)
       b[i]=0;
    printf("请输入一个1900~2099后的一年:");
    scanf("%d",&year);
    if(year<1900||year>2099)
     {
         printf("输入年份不在范围内!");
         printf("\n");
         return 0;
      }
    printf("\n");
    printf("请输入月份:");
    scanf("%d",&n);
    if(n<1||n>12)
     {
         printf("输入月份不在范围内!");
         printf("\n");
         return 0;
      }
    printf("\n");
    m=function2(year);
    c[1]=28+function1(year);
    for(i=1;i<=12;i++){
       for(k=0;k<c[i-1];k++){
          b[m+k]=1+k;
       }
    m=(m+k)%7;
    if(i==n){
         printf("%d月        %d年\n",i,year);
         printf("SUN  MON  TUE  WED  THU  FIR  SAT");
         printf("\n");
         for(k=0,j=0;k<42;k++)
            {
              if(b[k]==0)
                printf("     ");
              else
               {
                 if(b[k]<10)
                    printf("%d    ",b[k]);
                 else
                    printf("%d   ",b[k]);
                }
              j++;
              if(j==7)
               {
                 j=0;
                 printf("\n");
                }
            }
         printf("\n");
    }
   for(j=0;j<42;j++)
        b[j]=0;
}

这样能显示出指定年份制定月份的日历,但是对上面的那个图,我实在无能为力。。。。求高手指点!
搜索更多相关主题的帖子: return include 
2012-07-14 12:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你能够输出一个月,自然也能够交错输出两个月。编程要学会写函数拆功能,不要总幻想在一个大代码段中做完一切事情。

授人以渔,不授人以鱼。
2012-07-14 12:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
根据掌握的手段不同,这个程序可以有多种不同的实现方法,新学的童鞋们都不妨做一下。

授人以渔,不授人以鱼。
2012-07-14 12:59
米小兔
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2012-7-14
收藏
得分:0 
额……我还是不太会弄……
2012-07-14 13:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你现在觉得最大的困难在什么地方呢?

授人以渔,不授人以鱼。
2012-07-14 13:19
米小兔
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2012-7-14
收藏
得分:0 
怎么能一下子显示那么多,还有那个边框怎么弄,
2012-07-14 13:41
米小兔
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2012-7-14
收藏
得分:0 
老师课堂上讲的都是让我们做写小编程,这个据说要一百多行,没接触过啊……
2012-07-14 13:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你先不要管那个框,把日历做出来了再补上去。你现在知道左边1月1日在什么位置,那么,7月1日在什么位置,能推算得出来吗?算出这个位置,就好办了。

授人以渔,不授人以鱼。
2012-07-14 13:49
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
像你1楼那样输出一个月的方式,要完成所需功能,最后的代码确实是很难看。

授人以渔,不授人以鱼。
2012-07-14 14:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
要么你改一下算法,找出指定日期是星期几,有了这个,对你来说应该容易许多。

授人以渔,不授人以鱼。
2012-07-14 14:09
快速回复:这程序到底应该怎么编出很多功能的?还有那个输出的边框怎么做的。。头 ...
数据加载中...
 
   



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

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