<面向对象程序设计>课程作业一
Github链接
在看完这次的作业要求后我整个人是混乱的,因为作业要求把不同的函数放在一个main函数中;我们之前也是进行了函数分离,但是是放在了不同的文件中。如果要改的话相当于重写(而且这两种形式其实也都是在调用函数),绝不是星期日一个小时就能做完的,所以我和助教聊了一下:
在得到助教的回答后我又重新看了一遍代码,发现我们之前写的代码功能都混在一起了,没有办法完全分离成不同的函数,所以还是要重构。。。。
作业感想
虽然代码达到了要求,但是我还是不太了解到底什么是模块化,所以我又上网查了一下,看到了一位网友的回复,我觉得说的挺好的,所以和大家分享一下:
举例来说吧,比如你设计了3个不同用途的系统,而3个系统都恰好要用到同一个外部设备,假设这个外部设备是个液晶显器吧,那你就仅仅只要写一个液晶驱动(而不用写三个),设定好入口函数,3个不同用途的系统就都能用了,是不是很省事呢?
其他也一样,比如使用传感器,常常要多次采样取平均值,以提高准确性,那就可以做一个通用的计算平均值的子程序,需要的时候拿来用就行了,不用管这次是温度传感器、压力传感器还是加速度感器,全部通用,就不用每次都编了.这样就提高效率了嘛。
至于把各模块连接起来,这本来概念上就不对。模块不是连接的,而是被调用的。 设计程序时应当先设计主程序的流程图,再逐步细化,细化到一定程度自然就变成一个个模块的组合了。而在主程序中只是设置一些参数,然后调用模块完成相应的功能。
这次的作业主要还是想让我们进一步熟练的运用函数调用,然后进一步向模块化编程靠近,相信我们有一天能真正进行模块化编程
其他功能
<面向对象程序设计>课程作业一的更多相关文章
- 201771010128王玉兰《面向对象程序设计(Java)》课程学习总结
1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设计结构: (4) 综合掌握java多线程编程模型: ...
- 王之泰《面向对象程序设计(java)》课程学习总结
第一部分:理论知识学习部分 总复习纲要 1. Java语言特点与开发环境配置(第1章.第2章) 2. Java基本程序结构(第3章) 3. Java面向对象程序结构(第4章.第5章.第6章) 4. 类 ...
- 2018面向对象程序设计(Java)第18周学习指导及要求
2018面向对象程序设计(Java) 第18周学习指导及要求(2018.12.27-2018.12.30) 学习目标 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设 ...
- 2018面向对象程序设计(Java)第17周学习指导及要求
2018面向对象程序设计(Java)第17周学习指导及要求(2018.12.20-2018.12.23) 学习目标 (1) 掌握线程同步的概念及实现技术: (2) Java线程综合编程练习 学习资 ...
- 2018面向对象程序设计(Java)第16周学习指导及要求
2018面向对象程序设计(Java)第16周学习指导及要求(2018.12.13-2018.12.16) 学习目标 (1) 掌握线程概念: (2) 掌握线程创建的两种技术: (3) 理解和掌握线程 ...
- 2018面向对象程序设计(Java)第15周学习指导及要求
2018面向对象程序设计(Java)第15周学习指导及要求 (2018.12.6-2018.12.9) 学习目标 (1) 掌握Java应用程序打包操作: (2) 了解应用程序存储配置信息的两种方法 ...
- 2018面向对象程序设计(Java)第14周学习指导及要求
2018面向对象程序设计(Java)第14周学习指导及要求(2018.11.29-2018.12.2) 学习目标 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及 ...
- 2018面向对象程序设计(Java)第13周学习指导及要求
2018面向对象程序设计(Java)第13周学习指导及要求 (2018.11.22-2018.11.25) 学习目标 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作机 ...
- 2018面向对象程序设计(Java)第12周学习指导及要求
2018面向对象程序设计(Java)第12周学习指导及要求 (2018.11.15-2018.11.18) 学习目标 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: (2) 掌 ...
随机推荐
- ECstore后台报表显示空白问题解决办法
执行如下sql语句: INSERT INTO `sdb_ectools_analysis` (`id`, `service`, `interval`, `modify`) VALUES (1, 'b2 ...
- Ngnix中的fastcgi參数性能优化和解释
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/luozhonghua2014/article/details/37737823 优化性能參数设置,在 ...
- MyISAM to InnoDB: Why and How(MYSQL官方译文)
原文地址:https://www.mysql.com/why-mysql/presentations/myisam-2-innodb-why-and-how/ MySQL使用一个插拔式的存储引擎架构, ...
- 【转】Android 创建AVD各参数详解
一.Eclipse中图形创建AVD: Device: 即设备,指具体的手机设备型号,可以在window->Android Virtual Device Manager->Device De ...
- CSS3渐变——径向渐变
上节在<再说CSS3渐变——线性渐变>和大家一起学习了CSS3 Gradient中径向渐变最新语法(称得上是W3C的标准语法)相关知识以及其基本使用.今天我们在这一篇中主要和大家一起来了解 ...
- 【SQL】sql update 多表关联更新方法总结
#表结构: 1.表一:Test1 Id name age 1 2 2.表二:Test2 Id name age 1 小明 10 2 小红 8 #实现将表Test2的name和age字段 ...
- kafka libjvm 报错
kafka集群 kafka-0 出现报错信息 # # A fatal error has been detected by the Java Runtime Environment: # # SIGS ...
- docker常用常用删除操作
文章参考 https://blog.csdn.net/superdangbo/article/details/78688904 https://www.cnblogs.com/jackadam/p/8 ...
- git排错
解决: 将远程仓库中除.git以外的所有文件删除,然后执行 git config --bool core.bare true 然后客户端重新push即可解决问题 还要注意远程仓库权限方面...
- ASP.NET Newtonsoft 序列化反序列化
1.NuGet 安装 Newtonsoft 2.调用方法 一 NuGet 安装 Newtonsoft 二 调用方法 Student stu = new Student(); stu.ID = &quo ...