2021-2022-1 20211325《信息安全专业导论》第八周学习总结

学习目标

  • 功能设计与面向对象设计
  • 面向对象设计过程
  • 面向对象语言三要素
  • 汇编、编译、解释、执行

学习资源

  • 教材
  • 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零

学习任务

  • 加入云班课,参考本周学习资源
  • 自学教材

## 教材学习内容总结

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知道了解决方法

功能设计 架构设计 概要设计 功能设计的概念与步骤_目标程序

 

功能设计 架构设计 概要设计 功能设计的概念与步骤_汇编语言_02

 

功能设计 架构设计 概要设计 功能设计的概念与步骤_目标程序_03

 

功能设计 架构设计 概要设计 功能设计的概念与步骤_sql_04

 

功能设计 架构设计 概要设计 功能设计的概念与步骤_汇编语言_05

 

功能设计 架构设计 概要设计 功能设计的概念与步骤_sql_06

 

功能设计 架构设计 概要设计 功能设计的概念与步骤_汇编语言_07

 

功能设计 架构设计 概要设计 功能设计的概念与步骤_sql_08

 

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数据库编程中的学习中,学会了怎么方便的创建和修改表格,顺便复习了一下字典