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

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

#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
米小兔
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2012-7-14
收藏
得分:0 
额……我还是不太会弄……
2012-07-14 13:13
米小兔
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
米小兔
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2012-7-14
收藏
得分:0 
# include <stdio.h>
#define STARS "********************"
int main(void)
{
    int year,month,day1,day2,c,Y,W,i1,i2,j,w,k,flag1=0,flag2=0,p,q;
  
    int t[]={31,0,31,30,31,30,31,31,30,31,30,31};
    printf("%s A calendar program %s\n",STARS,STARS);
    printf("\n Please enter a year (enter q to exit) :");
    scanf("%d",&year);
    while(year>0&&year!='q'){
        if(year%4==0&&year%100!=0||year%400==0)
            t[1]=29;
        else
            t[1]=28;

   
        for(month=1;month<=12;month=month+2)
        {
        
            flag1=0;flag2=0;        /*每次循环flag1;flag2的初始都应该为0*/
            if(month<3)  
            {
            
                c=((int)(year-1)/100);
                Y=(year-1)-((int)((year-1)/100))*100;
                w=((int)(c/4))-2*c+Y+((int)(Y/4))+((int)(13*(month+13)/5));
                W=(w+70)%7;

            }
            else if(month>=3)
            {
                c=((int)(year/100));
                Y=year-((int)(year/100))*100;
                w=((int)(c/4))-2*c+Y+((int)(Y/4))+((int)(13*(month+1)/5));
                W=(w+70)%7;
            }
            printf("\n%15d月%30d月\n",month,month+1);
            printf("                |               六\n");
            i1=W;                              
            for(j=1;j<=W;j++)                  
                printf("    ");
            for(day1=1;day1<=t[month-1]&&flag1==0;day1++)
            {
                i1++;printf("%4d",day1);
                if(i1%7==0) flag1=1;
            }
            printf("  | ");
            i2=(W+t[month-1])%7;
   
            for(k=1;k<=((W+t[month-1])%7);k++)
                printf("    ");
            for(day2=1;day2<=t[month]&&flag2==0;day2++)
            {
                i2++;
                printf("%4d",day2);
                if(i2%7==0)
                    flag2=1;
            }
            printf("\n");
            for(p=8;p<=50;p=p+7)                 
            {   
                i1=0;flag1=0;
                for(day1=p-W;day1<=t[month-1]&&flag1==0;day1++)
                {
                    i1++;printf("%4d",day1);
                    if(i1%7==0) flag1=1;
                }
                for(q=i1;q<7;q++)                  
                    printf("    ");
                printf("  | ");
                i2=0;flag2=0;
                for(day2=p-(W+t[month-1])%7;day2<=t[month]&&flag2==0;day2++)
                {
                    i2++;printf("%4d",day2);
                    if(i2%7==0) flag2=1;
                }
      
                printf("\n");

            }
        }
        printf("\nPlease enter the year (enter q to exit) :");
        if(scanf("%d",&year)!=1)
            break;
    }
    printf("%s  Thanks for using  %s\n",STARS,STARS);
    getchar();
    return 0;
}
2012-07-14 15:53
米小兔
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2012-7-14
收藏
得分:0 
这下我这个,差不多了。
2012-07-14 15:54
米小兔
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2012-7-14
收藏
得分:0 
18楼的一模一样……哇塞,大神
2012-07-15 10:57
米小兔
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2012-7-14
收藏
得分:0 
没错误啊 ,我试过了已经。
2012-07-15 11:07
快速回复:这程序到底应该怎么编出很多功能的?还有那个输出的边框怎么做的。。头 ...
数据加载中...
 
   



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

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