软件工程第一次作业

个人情况介绍

    本人岳智彬,学号D23182407,主要研究方向为雷达水声信号处理以及其与人工智能结合应用。本人未曾有过软件开发的学习和工作经历,计算机和软件开发并我喜欢和擅长的领域,擅长的软件是MATLAB,会简单使用python。未来想继续从事雷达水声信号处理理论方面的研究,提升雷达声纳的性能指标。

    因为选课的时候只有人工智能和软件工程两门专业外课程可选,硕士阶段已修过人工智能,希望学点新的知识拓展一下知识面。希望通过这门课程的学习能够熟练使用GITHUB和Gitee代码仓库,学会在其中创建项目,记录自己博士阶段的学习工作。打算每周拿出6个小时,目前还未找到感兴趣的项目,如果能碰到,可以付出更多的时间。

理论学习

学堂在线学习

视频学习:

课后习题:

讨论和编程作业

《人月神话》读后感

https://blog.csdn.net/yzyyyzz/article/details/133781141?spm=1001.2014.3001.5502

《构建之法》读后感

https://blog.csdn.net/yzyyyzz/article/details/133785704?spm=1001.2014.3001.5502

实践学习

编程环境

1.配置python语言的IDE(pycharm)

编写显示下一天的程序(nextday.py)

# 输入年月日数组,以空格分隔
input_str = input("请输入数组元素,以空格分隔:")
input_list = input_str.split()
array = [int(x) for x in input_list]
year = array[0]
month = array[1]
day = array[2]
# print(array)
def nextday_calculate(year,month,day):
    if month < 1 or month > 12:
        print("月份不存在")
        exit()

    if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
        print("{}是闰年".format(year))
        if month == 2:
            print("{}是闰月".format(month))
            if day < 1 or day > 29:
                print("天数不存在")
                exit()

            if day + 1 == 30:
                day = day - 28
                month = month + 1
                if month == 13:
                    month = month - 12
                    year = year + 1
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
                else:
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
            else:
                day = day +1
                print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
        elif month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
            if day < 1 or day > 31:
                print("天数不存在")
                exit()
            if day + 1 == 32:
                day = day - 30
                month = month + 1
                if month == 13:
                    month = month - 12
                    year = year + 1
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
                else:
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
            else:
                day = day+1
                print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
        elif month == 4 or month == 6 or month == 9 or month == 11:
            if day < 1 or day > 30:
                print("天数不存在")
                exit()
            if day + 1 == 31:
                day = day - 29
                month = month + 1
                if month == 13:
                    month = month - 12
                    year = year + 1
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
                else:
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
            else:
                day = day+1
                print("{}年".format(year) + "{}月".format(month) + "{}日".format(day + 1))
    else:
        print("{}不是闰年".format(year))
        if month == 2:
            # print("{}是闰月".format(month))
            if day < 1 or day > 28:
                print("天数不存在")
                exit()
            if day + 1 == 29:
                day = day - 27
                month = month + 1
                if month == 13:
                    month = month - 12
                    year = year + 1
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
                else:
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
            else:
                day = day + 1
                print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
        elif month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
            if day < 1 or day > 31:
                print("天数不存在")
                exit()
            if day + 1 == 32:
                day = day - 30
                month = month + 1
                if month == 13:
                    month = month - 12
                    year = year + 1
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
                else:
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
            else:
                day =day+1
                print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
        elif month == 4 or month == 6 or month == 9 or month == 11:
            if day < 1 or day > 30:
                print("天数不存在")
                exit()
            if day + 1 == 31:
                day = day - 29
                month = month + 1
                if month == 13:
                    month = month - 12
                    year = year + 1
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
                else:
                    print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
            else:
                day =day+1
                print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
    return year,month,day
nextday_calculate(year,month,day)




运行程序,输入当前的年月日,程序会自动更新到下一天年月日。

假设分别输入:999 99 9、2050 2 20、2052 4 30,结果如下图所示:

2.结合pycharm进行单元测试和性能测试

单元测试代码:

检测6个时间的正确,主要包括大小月的最后一天计算,闰年2月最后一天的计算。检测相关边界是否正确。

# 导入单元测试库
import unittest
# 导入nextday的程序
from nextday import nextday_calculate
#import nextday#

day_1 = 2022, 3, 1
day_2 = 2024, 3, 1
day_3 = 2024, 9, 1
day_4 = 2027, 10, 1
day_5 = 2028, 2, 29
day_6 = 2026, 8, 31
class MyTestCase(unittest.TestCase):
    def setUp(self) -> None:
        print('begin')
    pass

    # 测试用例后执行
    def tearDown(self) -> None:
        print('end')
    pass

    def test_something1(self):
        self.assertEqual(nextday_calculate(2022, 2, 28), day_1, "false")
        self.assertEqual(nextday_calculate(2024, 2, 29), day_2, "false")
        self.assertEqual(nextday_calculate(2024, 8, 31), day_3, "false")
        self.assertEqual(nextday_calculate(2027, 9, 30), day_4, "false")
        self.assertEqual(nextday_calculate(2028, 2, 28), day_5, "false")
        self.assertEqual(nextday_calculate(2026, 8, 30), day_6, "false")


if __name__ == '__main__':
    unittest.main()

运行后结果如下图所示:

代码仓库

仓库地址:https://gitee.com/hezhiyong_edu/pychar-gitee.git

1.从pycharm中把项目上传到自己所创建的gitee仓库上。

pycharm与gitee集成参考如下链接:

https://memory-qianxiao.blog.csdn.net/article/details/106844385?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-106844385-blog-130464794.235%5Ev38%5Epc_relevant_sort&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-106844385-blog-130464794.235%5Ev38%5Epc_relevant_sort&utm_relevant_index=1

在刚push的时候提交不上去,出现报错:

hint: not have locally. This is usually caused by another repository pushing
Done
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

寻找解决方法如下链接:

https://xiao7.blog.csdn.net/article/details/107618389?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-107618389-blog-124901486.235%5Ev38%5Epc_relevant_sort&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-107618389-blog-124901486.235%5Ev38%5Epc_relevant_sort&utm_relevant_index=1

完成后仓库如下图所示,pycharm中的所有程序均已上传到仓库。

重新提交一个test.py的说明文件,结果如下:

多次提交仓库记录:

2.在gitee上进行fork,pull request等操作

首先fork双人合作同伴周凡喻同学的代码仓库test_for_gitee:

对其中的test文件进行编辑,并提交pull request:

上传文件:

学习总结

    通过本次大作业,阅读了两本书籍,学习到了很多对于以后学习生活有帮助的知识,同时熟悉了pycharm编程环境,简单上手了python编程。通过对unittest库的使用,熟悉了pycharm的单元测试,对于后续学习也有帮助。将pycharm与gitee相关联,可以通过pycharm远程上传程序,项目。熟悉了gitee代码仓库的使用,会在gitee上上传文件、fork他人项目以及进行pull request。通过本次学习,收获匪浅,为以后的学习打下了基础。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值