2021-2022-1 20211325《信息安全专业导论》第八周学习总结
2021-2022-1 20211325《信息安全专业导论》第八周学习总结
学习目标
- 功能设计与面向对象设计
- 面向对象设计过程
- 面向对象语言三要素
- 汇编、编译、解释、执行
学习资源
- 教材
- 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
学习任务
-
加入云班课,参考本周学习资源
-
自学教材
- 计算机科学概论第9章 并完成云班课测试
- 《看漫画学Python》第9,10章并完成云班课测试
## 教材学习内容总结
1.功能设计是按照产品定位的初步要求,在对用户需求及现有产品进行功能调查分析的基础上,对所定位产品应具备的目标功能系统进行概念性构建的创造活动。
2.面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。
3.面向对象设计过程:1.定义一个类2.定义一个订单创建行为的接口3.定义具体的不同订单创建行为类4.创建订单
4.面向对象程序设计的三要素是封装、继承、多态。 封装就是事物抽象为类,把对外接口暴露,将实现和内部数据隐藏;继承是指可以使用现有类的所有功能;多态性是指允许将父对象设置成为和一个或更多子对象相等的技术。
5.1、汇编程序
把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列设计的一种面向机器的语言,由汇编执行指令和汇编伪指令组成。
采用汇编语言编写程序虽不如高级程序设计语言简便、直观,但是汇编出的目标程序占用内存较少、运行效率较高,且能直接引用计算机的各种设备资源。它通常用于编写系统的核心部分程序,或编写需要耗费大量运行时间和实时性要求较高的程序段。
2、解释程序
解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别。
3、编译程序
编译程序也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。
它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
## 代码调试中的问题和解决过程
问题1:在数据库编程中链接的建立经常失败
解决:在pip里面重新安装扩展包到指定的python文件夹。
问题2:数据库编程时存在输出表与预期不同
解决:在查验了三天之后发现是创建字典时指令创建错误
问题3:db板块在使用时总是无法接受
解决:通过CSDN知道了解决方法
from sqlite3 import connect db_name = ":memory:"
from db_set import * sql_string_dict = { "create":'create table genral_tab (card_id integer,name text,address text)', "insert": ['insert into genral_tab (card_id,name,address)values(1,"L","1")', 'insert into genral_tab (card_id,name,address)values(2,"M","2")', 'insert into genral_tab (card_id,name,address)values(3,"A","3")', 'insert into genral_tab (card_id,name,address)values(4,"K","4")'], "select":'select * from genral_tab', "update":'update genral_tab set name="Q" where card_id=4', "delete":'delete from genral_tab where card_id=3', } con = connect(db_name) cur = con.cursor() print("Create Table:\n") cur.execute(sql_string_dict["create"]) print("Insert Data:") print('(1,"L","1")') print('(2,"M","2")') print('(3,"A","3")') print('(4,"K","4")') for sql in sql_string_dict["insert"]: cur.execute(sql) print() print("All Records:") cur.execute(sql_string_dict["select"]) for row in cur: print(row) print() cur.execute(sql_string_dict["update"]) print("After Updated:") cur.execute(sql_string_dict["select"]) for row in cur: print(row) print() cur.execute(sql_string_dict["delete"]) print("After delete:") cur.execute(sql_string_dict["select"]) for row in cur: print(row) con.commit() con.close()
代码行数(新增/积累) | 博客量(新增/积累) | 学习时间(新增/积累) | 重要成长 | |
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/150 | 2/2 | 20/20 | |
第二周 | 250/300 | 2/4 | 30/50 | 对于纯理论性知识的记忆还有待加强 |
第三周 | 100/400 | 1/5 |
40/90 |
对于简单的编码和设计程序判断已基本掌握,但对于在atom中在编写python时的图片插入仍存在问题 |
第四周 | 200/600 | 1/6 | 20/110 | 换用了VScode编辑器,好像是要方便一点,之后学会了BASE64编码,浮点数,还有阿拉伯数字和罗马数字的互相转化。 |
第五周 | 250/850 | 3/9 | 20/130 |
终于不是一脸懵的抄代码了 |
第六周 | 200/1050 | 3/12 | 20/150 | 知道了原来代码并没有什么唯一解,只有更方便更简洁的答案 |
第七周 | 300/1350 | 4/16 | 25/175 | 对伪代码的理解更深入了,这将便于我更准确的书写代码,以及对算法的深入了解将会方便我选择更合适的算法 |
第八周 | 250/1600 | 2/18 | 20/195 | 在项目python数据库编程中的学习中,学会了怎么方便的创建和修改表格,顺便复习了一下字典 |