第十七周实验报告3 不完整版

来源:互联网 发布:淘宝网集市给我打电话 编辑:程序博客网 时间:2024/04/29 19:19
 实验目的:

实验内容:

* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:                             
* 作    者:       徐嘉健                           
* 完成日期:       2011  年      12 月    19     
* 版本号:         number one
* 对任务及求解方法的描述部分
* 输入描述:从文件中读入学生数据

* 问题描述:如何利用利用动态链表,求出总分高于平均中分且没有挂科的同学的名单

* 程序输出:求出总分高于平均中分且没有挂科的同学的名单
* 程序头部的注释结束(此处也删除了斜杠)

#include <iostream>

using namespace std;

struct Date
{
    int year;
    int month;
    int day;
};
Date date;
struct Time
{
    int hour;
    int minute;
    int second;
};
Time time;
int main()
{
    int d, d2;
    cout << "请输入您的出生 年 月日" << endl;
    cin >> date.year >> date.month >> date.day;
    if((date.year % 4 == 0 && date.year % 100 !=0) || date.year % 400==0)
    {
         d2 = 29;
    }
    else
    {
         d2 = 28;
     }
    switch(date.month)
    {
         case 1: d = date.day; break;
         case 2: d = 31 + date.day; break;
         case 3: d = 31 + d2 + date.day; break;
         case 4: d = 31 + d2 + 31 + date.day; break;
         case 5: d = 31 + d2 + 31 + 30 + date.day; break;
         case 6: d = 31 + d2 + 31 + 20 + 31 + date.day; break;
         case 7: d = 31 + d2 + 31 + 30 + 31 + 30 + date.day; break;
         case 8: d = 31 + d2 + 31 + 30 + 31 + 30 + 31 + date.day; break;
         case 9: d = 31 + d2 + 31 + 30 + 31 + 30 + 31 + 31 +date.day; break;
         case 10: d = 31 + d2 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + date.day; break;
         case 11: d = 31 + d2 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + date.day; break;
         case 12: d = 31 + d2 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + date.day; break;
    }
    cout << "该日是本年中的第" << d << "天" << endl << "\n";
 
    cout << "请输入您的出生时刻时 分 秒" << endl;
    int s;
    cin >> time.hour >> time.minute >> time.second;
    s = time.hour * 3600 + time.minute * 60 + time.second;
    cout << "该时刻是该天的第" << s << "秒" << endl << "\n";
 
    int S;
    switch(date.month)
    {
         case 1: S = date.day*86400+s; break;
         case 2: S = 31 * 86400 + date.day * 86400 + s; break;
         case 3: S = (31 + d2) * 86400 + date.day * 86400 + s; break;
         case 4: S = (31 + d2 + 31) * 86400 + date.day * 86400 + s; break;
         case 5: S = (31 + d2 + 31 + 30) * 86400 + date.day * 86400 + s; break;
         case 6: S = (31 + d2 + 31 + 20 + 31) * 86400 + date.day * 86400 + s; break;
         case 7: S = (31 + d2 + 31 + 30 + 31 + 30) * 86400 + date.day * 86400 + s; break;
         case 8: S = (31 + d2 + 31 + 30 + 31 + 30 + 31) * 86400 + date.day * 86400 + s; break;
         case 9: S = (31 + d2 + 31 + 30 + 31 + 30 + 31 + 31) * 86400 + date.day * 86400 + s; break;
         case 10: S = (31 + d2 + 31 + 30 + 31 + 30 + 31 + 31 + 30) * 86400 + date.day * 86400 + s; break;
         case 11: S = (31 + d2 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31) * 86400 + date.day * 86400 + s; break;
         case 12: S = (31 + d2 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30) * 86400 + date.day * 86400 + s; break;
    }
    cout << "该时刻是该年的第" << S << "秒" << endl;
 
 
    return 0;
}

试验结果:

第十七周实验报告3 <wbr>不完整篇

上机感言:

额想哭~~~~~~~~~~明明叫万年历,似乎最最重要的功能我没能实现。可惜的是,我仅仅完成了前四小项,就被无情的绊住了,可恶的程序,昨天奋斗到凌晨也没有得到想要的结果,呜呜~~~~~~~~~~

到底怎么样得到n天后是哪年哪月哪日啊,who can tell me?问题真的很多,其一,用户的出身月份不知道,换句话说,月份的具体天数不知,其二,如果n的值很大,超过些许年份,又要判定闰年还是平年,因为年的天数未知。

本来想用n/365=一个数,然后year+这个数,然后n65,然后在每一个case中用减的方式求解的,可是,程序就会变得好长好长好长,就像我前面所说的,365的天数也不是确定不变的,加上对闰年平年的判断,我的天,拿药写多少行啊!!!!!!!!!!!!

唉~~~~~~~~~~我是真的真的好想做出来啊!!!!!!!可是看来现在实际尚不成熟,所以先交一个不完整版的,今晚再熬熬夜,不行明晚再熬熬夜······看看能不能有结果。

我是喜欢把习题全部完成再一起交的,可是,呜呜~~~~~~我不想的不到学分,所以,先姑且交个不完整篇,读者们,不好意思,将就看吧!!!!!!!

原创粉丝点击