江南大学 物联网工程学院
课程名称:设计题目:班 级:姓 名:指导教师:
课程设计报告 C语言课程设计 学生成绩管理系统 自动化1003班 孙海洋 学 号: 赵芝璞 评 分: 2011 年 11 月 20 日
目录
1、设计题目及要求------------------------------------------------
2、总体设计(程序设计组成框图、流程图)-------------------------
3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等))-------------------------------------
4、调试与测试:调试方法,测试数据,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施----------
5、源程序清单和执行结果(可附上截屏图片):清单中应有足够的注释--------------------------------------------------------------
一、设计题目及要求:
1、设计题目:
学生成绩信息包括:学号,姓名,三门课程成绩(数学、英语和计算机)等。
主要功能:
(1) 计算各个学生的总分及平均分,并按平均分排出名次。
(2) 统计全班学生平均分成绩,输出60分以下、60~79、80~89、90分以上各分数人数
(3) 能按学号、姓名查询学生成绩,并能输出学生的成绩单
(4) 输出不及格科目及学生名单
(5) 选做:在屏幕打印优等生名单(学号,三门课程成绩,平均成绩,名次),优等生必须满足下列条件:
1)平均成绩大于90分;或平均分大于85分且至少有一门功课为100分;或者平均分大于85分且至少两门课程成绩为95分以上;
2) 名次在前三名;
3) 每门功课及格以上;
要求:使用文本文件方式存储数据,系统以菜单方式工作 查询和统计的结果均写入单独的文件中。
二、总体设计
1、程序设计组成框图:
2、流程图:
三、详细设计
模块功能说明:(未定义函数,所有的程序直接在main函数中进行)
1、输入学生的信息函数功能:定义了一个结构体,通过scanf输入函数直接输入学生的姓名、学号、英语成绩、数学成绩、计算机成绩。
2、计算机排序功能:mian函数中的第二个模块直接输出学生的总分及平均分,
并按平均分排出名次。
3、输出功能:第三模块中,通过for循环功能,输出不及格科目及学生名单。
4、查询功能:通查询信息,在第四模块中,输入学生的学号或姓名,找到输入的结构体的姓名或是学号对应的学生的所有的信息,并输出该学生信息。
5、退出程序
四、调试与测试
1、调试方法:逐条的对程序中的错误进行修改;修改程序中的变量、对各个模块的函数功能进行修改调试,直至零错误、零警告。
2、调试数据:
姓名 学号 英语成绩 数学成绩 计算机成绩 Qipengcheng 1 78 58 78
Luoxiuqing 2 78 87 90
Sunhaiyang 3 39 67 97
Wanghongcheng 4 80 69 49
Weipeng 5 69 99 87 Piaonanji 6 57 79 98
3、测试结果的分析与讨论:
由测试数据分析输出的结果可以得出输出的成绩排名、不及格人数及信息、按姓名和学号查询学生的信息输出均为正确的。
4、测试过程中遇到的问题:
①显示结果时候出错
问题描述:每一个功能在现实结果现实的信息部完整,部分信息部能现实或被覆盖。
解决办法:现实出错也就是printf语句中的结构没有排列好所导致的。检查所有的Printf语句后发现所有的printf语句中少输出了以个语文成绩,且它们不能完全对齐。在增加了“语文”,修改了转义字符以及空格后,问题解决了。 ②在查询信息的时候出错
问题描述:在输入不在文件中保存的姓名、学号时,没有信息提示。
解决办法:出现此问题说明if语句后少了一条else语句,加上该语句后,显示的结果正确了。
五、原程序清单及执行结果
原程序清单:
#include <stdio.h>
#include <string.h>
struct student
{ int paiming;
int number;
char name[30];
double english,math,computer;
double sum;
double aver;
};
int main()
{
struct student b[100];
int t;
int i,j=0;
int s=0;
int n;
char name[30];
double english, math, computer;
double aver=0.0;
int a[4];
int p;
int m;
int y;
char xingming[30];
for(i=0; i<4; i++)
a[i]=0;
printf("**********若结束输入,请输入0 ************\n");
for(i=0; ;i++)
{ printf("请输入学号:\n");
scanf("%d",&n);
if(n==0) break;
else
{
b[++j].paiming=j;
b[j].number=n;
printf("请输入学生姓名:\n");
scanf("%s",name);
strcpy(b[j].name,name);
printf("请输入学生英语成绩:\n"); scanf("%lf",&english);
b[j].english=english;
printf("请输入学生数学成绩:\n");
scanf("%lf",&math);
b[j].math=math;
printf("请输入学生电脑成绩:\n"); scanf("%lf",&computer);
b[j].computer=computer;
s++;}
}
for(i=1; i<=s; i++)
{b[i].sum=b[i].english+b[i].math+b[i].computer; b[i].aver=b[i].sum/3.0;
}
for(i=1; i<s; i++)
{
if(b[i].aver<b[i+1].aver)
{t=b[i].paiming;
b[i].paiming=b[i+1].paiming;
b[i+1].paiming=t;
}
}
printf("现在按平均分从小到大输出学生信息:\n"); for(i=1; i<=s; i++)
{
printf("排名:%d\n",b[i].paiming);
printf("学号:%d\n",b[i].number);
printf("姓名:%s\n",b[i].name);
printf("英语成绩:%lf\n",b[i].english); printf("数学成绩:%lf\n",b[i].math); printf("电脑成绩:%lf\n",b[i].computer); printf("总分:%lf\n",b[i].sum);
printf("平均分:%lf\n",b[i].aver);
}
for(i=1; i<=s; i++)
{aver+=(b[i].aver/(s*1.0));
}
printf("学生的平均分为:%lf\n",aver);
for(i=1; i<=s; i++)
{ switch(((int)b[i].aver)/10)
{ case 6:
case 7: a[1]++;break;
case 8: a[2]++;break;
case 9:
case 10: a[3]++;break;
default: a[0]++;break;
}
}
printf("平均分在60分以下的人数为:%d\n",a[0]);
printf("平均分在60分~79分的人数为:%d\n",a[1]); printf("平均分在80分~89分的的人数为:%d\n",a[2]); printf("平均分在90分以上的人数为:%d\n",a[3]); printf("\n");
printf("以下是不及格的学生信息:\n");
for(i=1; i<=s; i++) /*只输出不及格科目即可*/ {
if(b[i].english<60 || b[i].math<60 || b[i].computer<60) {printf("姓名:%s\n",b[i].name);
if(b[i].english<60)
{
printf("英语成绩:%lf\n",b[i].english);
}
if(b[i].math<60)
{printf("数学成绩:%lf\n",b[i].math);
}
if(b[i].computer<60)
{
printf("电脑成绩:%lf\n",b[i].computer); }
}
}
printf("\n");
for(i=0; ;i++)
{printf("查询信息按1,结束按0.\n"); /*实现多次查询*/ scanf("%d",&y);
if(y==0) break;
else{
printf("请输入您要查询学生的学号或者姓名,输入学号请按1,输入姓名请按2:\n"); {
scanf("%d", &p);
if(p==1)
{
printf("请输入您要查询学生的学号:\n");
scanf("%d", &m);
printf("您查询的学生信息如下:\n");
printf("排名:%d\n",b[m].paiming);
printf("学号:%d\n",b[m].number);
printf("姓名:%s\n",b[m].name);
printf("英语成绩:%lf\n",b[m].english);
printf("数学成绩:%lf\n",b[m].math);
printf("电脑成绩:%lf\n",b[m].computer);
printf("总分:%lf\n",b[m].sum);
printf("平均分:%lf\n",b[m].aver);
}
if(p==2)
{
printf("请输入您要查询学生的姓名:\n");
scanf("%s",xingming);
for(i=1; i<=s; i++)
{
if(strcmp(b[i].name, xingming)==0)
{printf("您查询的学生信息如下:\n");
printf("排名:%d\n",b[i].paiming);
printf("学号:%d\n",b[i].number);
printf("姓名:%s\n",b[i].name);
printf("英语成绩:%lf\n",b[i].english);
printf("数学成绩:%lf\n",b[i].math);
printf("电脑成绩:%lf\n",b[i].computer);
printf("总分:%lf\n",b[i].sum);
printf("平均分:%lf\n",b[i].aver);}
}
}
else {printf("按键错误!\n");}
}
}
}
return 0;
}
执行结果:
①输入学生的信息:
②按平均分输出学生的成绩排名和学生的具体信息:
③输出不及格学生信息:
④学生信息查询
计算机学院计算机科学与技术专业
《程序设计综合课程设计》报告
(2011/2012学年 第一学期)
学生姓名:学生班级: 计算机102001班
学生学号:指导教师:
20xx年 12月 30日
年历显 示
第一章 课程设计的目的和要求
1.1 课程设计的目的
本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计基础(C)》课程后进行的一次全面的综合设计。本课程设计的目的和任务
1. 巩固和加深学生对C语言课程的基本知识的理解和掌握。
2. 掌握C语言编程和程序调试的基本技能。
3. 利用C语言进行基本的软件设计。
4. 掌握书写程序设计说明文档的能力。
5. 提高运用C语言解决实际问题的能力。
此课程设计着眼于知识的运用,把平常学的知识运用到课程实践中来,本身就是考察我们知识运用能力。要求熟悉运用一些编程软件(如:Microsoft Visual C++ 6.0),对我们所学的理论知识进一步的深化。
1.2 课程设计实现的要求
《程序设计基础课程设计》是计算机科学与技术专业实践性环节之一,是学习完《程序设计基础》课程后进行的一次全面的综合练习。其目的是要达到理论与实际应用相结合,使学生能够使用所学的程序设计语言,根据具体案例的要求,组织数据,运用算法编写程序,以培养良好的程序设计技能。
1
第二章 课程设计任务内容
功能要求:
(1) 输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在
1940-20xx年之间。
(2) 输入年月,输出该月的日历。
(3) 输入年月日,输出距今天还有多少天,星期几。
2.1使用C语言中的多分支选择结构进行日期的运算
因为本程序中是年份、月份、星期的运算,它们都是有周期性的,每个一段时间就重复一次,从而用switch语句进行选择满足条件的数据,并且可以根据情况选择让switch依次执行每个case语句或者只是执行满足条件的case语句后跳出乡下的执行过程,这样大大减少了重复运算的工作量,对于有周期性的数据运算更加有用。
2.2界面设计
1.欢迎进入系统的语句;
2.对使用者查询的年月日的范围进行了划定;
3.对查询的的格式和方式进行提醒;
4.每一系查询完,程序都会询问是否继续使用本系统--------更加人性化;
2.3运行说明
此程序在使用时,只能查询19xx年到20xx年的年月日,否则会提示“输入错误,请重新输入”并且必须按程序提醒的格式输入要查询的年月日,否则会提示出错。在输入前请认真阅读输入前的都提示。
2
第三章 详细课程设计
3.1模块描述
系统的整体模块描述如图3-1所示:
3.2程序设计过程
3.2.1对年月日的输入和判断
因为本程要求输入的年月日是19xx年到20xx年,所以必须对所输入的年月日进行判断看是否满足要求,当输入不满足格式或输入的年份超出了以上的范围则程序提示出错。因为需要对输入的年要输出年历,对输入的月份要输出这个月的月历,对输入的日子要输出据今日有多少天和那天是星期几。所以我把上面三种情况在输入时输入三种格式——如:2010(查年历)、201003(查日历)、20100305(查日子)。然后用if条件句判断输入的数据是否正确并且对查年,查月,查日进行分类和算出具体要查的年月日。
if(n>=1940&&n<=2040) //对是否是差年历进行判断
}
else {cout<<"输入有错误,请重新输入:"<<endl;g=0; { year(n);//若是则调用year函数并令g=1 g=1; } else if(n>=194001&&n<=204012)//对是否是查月历进行判断 { m=n/100;j=n-m*100;//若是则把输入的n中的年和月分离 month(m,j);//调用函数month函数并令g=1 g=1; } else if(n>=19400101&&n<=20401231)//对是否是查日子进行判断 { m=n/10000; //若是则把年月日进行分离; j=n/100-m*100; k=n-m*10000-j*100; day(m,j,k);//调用函数day,并令g=1 g=1;
//若对以上的判断都不是则令g=0;
}
return g;//返回g的值
4
3.2.2对输入错误的数据进行处理
do{cout<<"请输入要查询的你月日(如查年:2001,查月200103,查日20010301):"<<endl;
do
{ cin>>n;
q=niu(n);//上节中返回的g的值赋给q
}while(q==0) ;//内嵌的while循环语句对输错的数据进行重新输入知道输对//后返回的值使q不等于0为止;
cout<<"是否继续使用(输入“Y”继续使用,输入其它则不继续使用)? ";
cin>>st;//执行完niu函数后程序询问是否继续使用,使用者输入字符
}while(st=='Y');//用while循环句对输入"Y"的继续循环使用,直到输入的字符不//为Y为止
cout<<"谢谢使用本系统( ^_^ )/~~拜拜。。。。。。"<<endl;//整个程序结束
}
3.2.3对给出的日子的星期的计算
本程序用蔡勒(Zeller)公式计算,具体算法如下: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如20xx年1月1日要看作20xx年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。(C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值。)
算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日。
具体的程序是:
if(j>2&&j<13)//对3到12月份中需要带入蔡勒(Zeller)公式的数据求解
{c=int(m/100);//得到世纪减一 y=m-c*100;//得到年数的最后两位数 p=int(y/4);//年数最后两位除以四取整 5
l=int(c/4);//c除以四取整 w=int(26*(j+1)/10); } else if(j==1||j==2)//对所求日子在一二月分的,需要带入蔡勒(Zeller)公式的数据求解
{ c=int((m-1)/100);//得到世纪减一 y=(m-1)-c*100;//得到年数的最后两位数 p=int(y/4);//年数最后两位除以四取整 l=int(c/4);//c除以四取整 w=int(26*(j+12+1)/10); } s=y+p+l-2*c+w+k-1;//把所得到的数据代入公式 g=s%7;//所得的余数为所求的星期数
3.2.4对求得的月份日子与星期数进行对应——月历的表示
cout<<j<<" 七 一 二 三 四 五 六"<<endl;//在第一行输出月份j和星期 //一 到七
while(m<=g)//g为计算星期的余数, m开始时取0,这个while循环用来计算并//输出每个月的第一天在月历的第一行对应的星期数,直到第一天对应好,在这 //之前一直输出空格直到找到第一天的位置即g>m为止
{
cout<<" "; m=m+1;}
for(i=1;i<=h;i++)//h是这个月的总天数,这个for循环的作用是输出这个月的每天 {
cout<<setiosflags(ios::right);//输出的每个数都进行右对齐 cout<<" "<<setw(3)<<i;//是输出的每个数都有三个字长,以便对齐 if((g+i)%7==0)cout<<endl<<" ";//每当g+i除以七的余数等于零时,进行换行 }//以便使每七天换一行,使月历中的每天与自己的星期对好}
3.2.5对单独日子距今天数的处理
对计算一天距今多少天分了三个部分:
6
1.计算从输入的那个日子到当年结束还有多少天;
2.计算从输入的日子的下一年到今天这一年的上一年有多少年,有多少闰年和平年,各自乘以366和365相加;
3.找今年除了今天已过了多少天;
以上三个部分相加即可得到随意一天,到今天有多少天;而那天的星期算法个上面所说的一样;
int a,b,c,d,h,e=0,p=0,v=0,sum=0;
cin>>a>>b>>c;//输入今天的年月日
for(d=m+1;d<a;a++)//对大于所求的年份到今年,统计润年数
if((d%4==0&&d%100!=0)||(d%400==0))
e=e+1;//没有一个闰年则e加一
bool red=false,green=false;//设两个布尔型数据并初始化为false
if((a%4==0&&a%100!=0)||(a%400==0))//判断今年是不是闰年
green=true;//若是则吧green赋值为true
if((m%4==0&&m%100!=0)||(m%400==0))//判断所求的年份是不是闰年
red=true;//若是则吧red赋值为true
switch(j+1)//从所求日子的下一个月对本年生于的日子进行累加
{
case 2:{if(red==true)p=p+29;else p=p+28;}//日月有几天判断所求//日子的年份的
case 3:p=p+ 31;
case 4:p=p+30;
case 5:p=p+31;
case 6:p=p+30;
case 7:p=p+31;
case 8:p=p+31;
case 9:p=p+30;
case 10:p=p+31;
case 11:p=p+30;
case 12:p=p+31;
7
case 13:p=p+0;
}
if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)
h=31-k;//求所求日子的那个月的剩余天数
else if(j==4||j==6||j==9||j==11)//求所求日子的那个月的剩余天数
h=30-k;
else
if(j==2&&red==true)
h=29-k;//求所求日子的那个月的剩余天数
else
if(j==2&&red==false)
h=28-k;
switch(b-1)//用switch语句对今年已过去的几个月的天数进行累加
{case 11:v=v+30;
case 10:v=v+31;
case 9:v=v+30;
case 8:v=v+31;
case 7:v=v+31;
case 6:v=v+30;
case 5:v=v+31;
case 4:v=v+30;
case 3:v=v+31;
case 2:{if(green)v=v+29;else v=v+28;}
case 1:v=v+31;
case 0:v=v+0;
}
sum=e*366+(a-m-e-1)*365+p+h+v+c;}//计算三部分的总天数即为所求//的
日子据今天有多少天
8
}
3.2.6年里显示主函数
void main()
{int q;char st;
cout<<" 欢迎使用我的万年历(*^__^*) 嘻嘻??"<<endl;
cout<<"备注:本系统只能查询公元19xx年至20xx年时间历表"<<endl; int niu(int);
do
{
cout<<"请输入要查询的你月日(如查年:2001,查月200103,查日20010301):"<<endl;
do
{cin>>n;
q=niu(n);
}while(q==0) ;
cout<<"是否继续使用(输入“Y”继续使用,输入其它则不继续使用)? "; cin>>st;
}while(st=='Y');
cout<<"谢谢使用本系统( ^_^ )/~~拜拜。。。。。。"<<endl;}
第四章 运行环境及需求
4.1编程工具和硬件要求
Microsoft Visual C++ 6.0 一般的PC
Windows Vista/2003/XP/7。
计算机及VisualC++6.0编程环境
4.2运行结果
欢迎界面如图4-1所示:
9
图4-1欢迎界面
查询年历如图4—2(a)(b)(c)所示:
图4——2(a)年历显示
10
图4——2(b)年历显示
图4——2(c)年历显示
11
显示月历为图4—3所示:
图4-3显示月历的查询结果
对日子的显示如图4-4所示:
图4-4对日子的查询显示
退出系统界面如图4-5所示:
图4-5退出程序界面
12
第五章 课程设计心得体会
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说,掌握程序开发技术是十分重要的,而C/C++语言又是最常见,功能最强大的高级语言,因此做好C/C++语言课程设计是十分必要的。回顾起此次课程设计,我感慨颇多。的确,从拿到题目到完成整个系统的编程,从理论到实践,在整整三周的日子里,我学会了很多东西,在巩固了以前所学过的知识的同时,我还学到了很多在书本上所没有学到过的知识。
在这次课程设计中,我深刻的了解到:第一,C/C++语言是程序设计的重要工具。如果想有效的进行程序设计,正确地应用程序设计语言表达算法,必须准确的运用程序设计语言,而C/C++语言是最常见的,也是功能最强大的语言。在做好程序设计的前提下,必须掌握C/C++语言的基本语言要素和其控制结构等语法知识,且灵活运用。第二,进行程序设计必须有清晰的思路与方法,要合理的分配勾画系统的功能模块图、构建各个函数的流程图、编写程序以及上机实践的时间。这次的课程设通过课堂教学、与自我实践的紧密联系,使得我们对课程设计有了较为深的了解与认识,更好的完成了这次学习任务。第三,做好课程设计,要有顽强的意志与坚定的信心,永不言弃。要多看、多问、多想,遇到问题要想办法解决,否则事倍功半。
在这期间,我们有过山穷水尽的困惑,有过柳暗花明的惊喜,有过唇枪舌剑的辩论,有过相互鼓励的安慰。在这期间,我们经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。
经过这次课程设计,我在收获知识、提高能力的同时,我也学到了很多人生的哲理,学会了如何运用所学知识去解决实际问题,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前。在此,感谢老师的辛勤教导!感谢对我予以帮助的同学们!
13
附录一:参考文献
[1]、《数据结构(C语言版)》严蔚敏 吴伟民 米宁 清华大学出版社
[2]、《C语言程序设计》(第三版)谭浩强 清华大学出版社
14
附录二: 程序清单
#include<iostream>
#include<iomanip>
#include<cmath>
#include<string>
using namespace std;
int n;
void main()
{int q;
char st; cout<<" 欢迎使用我的万年历(*^__^*) 嘻嘻……"<<endl; cout<<"备注:本系统只能查询公元19xx年至20xx年时间历表"<<endl;
int niu(int); do { cout<<"请输入要查询的你月日(如查年:2001,查月200103,查日20010301):"<<endl;
do { cin>>n; q=niu(n); 15
}while(q==0) ; cout<<"是否继续使用(输入“Y”继续使用,输入其它则不继续使用)? ";
cin>>st;
}while(st=='Y');
cout<<"谢谢使用本系统( ^_^ )/~~拜拜。。。。。。
}
int niu(int n)
{
int m,j,k,g;
void year(int);
void month(int,int);
void day(int,int,int);
if(n>=1940&&n<=2040)
{
year(n);
g=1;
}
else if(n>=194001&&n<=204012)
{
m=n/100;j=n-m*100;
month(m,j);
16 "<<endl;
} g=1; else if(n>=19400101&&n<=20401231) {
m=n/10000;
j=n/100-m*100;
k=n-m*10000-j*100;
day(m,j,k);
g=1;
}
else
{
cout<<"输入有错误,请重新输入: }
return g;
}
void year(int x)
{
void month (int,int);
int w;
for(w=1;w<13;w++)
month(x,w);
17 "<<endl;g=0;
}
void month(int m,int j) {
int h,g; int xingqi(int,int,int); g=xingqi(m,j,1);
bool leap=false; if((m%4==0&&m%100!=0)||(m%400==0)) leap=true; if(j==1||j==3||j==5||j==7||j==8||j==10||j==12) h=31; else if(j==4||j==6||j==9||j==11) h=30; else if(j==2&&leap==true) h=29; else if(j==2&&leap==false) h=28; cout<<j<<" 七 一 二 三 四 五 六"<<endl; void slove(int,int); slove(g,h); cout<<endl; 18
}
int xingqi(int m,int j,int k) {int y,p,l,w;
int s,g;int c;
if(j>2&&j<13)
{
c=int(m/100); y=m-c*100;
p=int(y/4);
l=int(c/4);
w=int(26*(j+1)/10); }
else if(j==1||j==2) {
c=int((m-1)/100); y=(m-1)-c*100; p=int(y/4);
l=int(c/4);
w=int(26*(j+12+1)/10); }
s=y+p+l-2*c+w+k-1; g=s%7;
19
return g;
}
void slove(int g,int h)
{ int i,m=0;
while(m<=g)
{
cout<<" ";
m=m+1;
}
for(i=1;i<=h;i++)
{
cout<<setiosflags(ios::right);
cout<<" "<<setw(3)<<i;
if((g+i)%7==0)cout<<endl<<" ";
}
}
void day(int m,int j,int k)
{
cout<<"请输入今天的年月日:"<<endl;
cout<<"请按“年+空格+月+空格+日”的格式写如04"<<endl;
int a,b,c,d,h,e=0,p=0,v=0,sum=0;
20 03 2001
cin>>a>>b>>c;
for(d=m+1;d<a;a++)
if((d%4==0&&d%100!=0)||(d%400==0)) e=e+1;
bool red=false,green=false;
if((a%4==0&&a%100!=0)||(a%400==0)) green=true;
if((m%4==0&&m%100!=0)||(m%400==0)) red=true;
switch(j+1)
{ case 2:{if(red==true)p=p+29;else p=p+28;} case 3:p=p+31;
case 4:p=p+30;
case 5:p=p+31;
case 6:p=p+30;
case 7:p=p+31;
case 8:p=p+31;
case 9:p=p+30;
case 10:p=p+31;
case 11:p=p+30;
case 12:p=p+31;
21
case 13:p=p+0;
}
if(j==1||j==3||j==5||j==7||j==8||j==10||j==12) h=31-k;
else
if(j==4||j==6||j==9||j==11) h=30-k;
else
if(j==2&&red==true) h=29-k;
else
if(j==2&&red==false) h=28-k;
switch(b-1)
{case 11:v=v+30;
case 10:v=v+31;
case 9:v=v+30;
case 8:v=v+31;
case 7:v=v+31;
case 6:v=v+30;
case 5:v=v+31;
case 4:v=v+30;
22
case 3:v=v+31;
case 2:{if(green)v=v+29;else v=v+28;}
case 1:v=v+31;
case 0:v=v+0;
}
sum=e*366+(a-m-e-1)*365+p+h+v+c;
int g; g=xingqi(m,j,k); switch(g) { case 6:{cout<<"那天是星期六";break;} case 5:{cout<<"那天是星期五";break;} case 4:{cout<<"那天是星期四";break;} case 3:{cout<<"那天是星期三";break;} case 2:{cout<<"那天是星期二";break;} case 1:{cout<<"那天是星期一";break;} case 0:{cout<<"那天是星期天";break;} } if(a<m)sum=0-sum;
cout<<"你输入的日子距今日有:"<<sum<<endl; }
23
24
东莞理工学院《C语言程序设计》课程设计题目:图书信息管理系统院系:电子工程学院专业:电子信息工程年级:20##班别:2班指导教师:…
C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体…
河南理工大学计算机科学与技术学院课程设计报告20XX20XX学年第一学期课程名称C语言课程设计设计题目《小学算术运算测试》学生姓名…
C语言课程设计报告设计题目专业班级学号姓名任课老师时间目录一课程设计题目及所涉及知识点二课程设计思路及设计流程图三课程设计中遇到的…
C语言程序设计课程设计报告20xx20xx学年第1学期题目专业班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录…
C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体…
C语言程序设计实验报告专业班级日期11月26日成绩实验组别第327次实验指导教师李开学生姓名学号同组人姓名实验名称数组实验一实验目…
C语言程序设计实验报告学号姓名1设计一个函数fc统计数组中偶数和奇数的个数数组元素个数不多于10个编写main函数正确调用fc函数…
3130111103福建工程学院C语言课程设计报告班级机械1301学号姓名指导教师日期20xx123020xx1331301111…
河南理工大学C程序设计报告C语言课程设计报告题目小学算术运算测试mathc设计者史前利专业班级通信工程1205学号31120xx2…
本次课程设计已经圆满结束了,通过这次课程设计,巩固和加深了学生对C语言基本知识和语言特点的理解和掌握,使学生熟练掌握了C语言编程和…