程序设计神器 之 实体

简介: 程序是什么?简单说,程序是处理数据的计算机代码几乎所有的程序都可以分为三部分

程序处理的是概念

程序是什么?

简单说,程序是处理数据的计算机代码

几乎所有的程序都可以分为三部分

输入--> 处理 --> 输出

程序可以理解成一个加工处理数据的过程,或者工具

那么被加工的数据又是什么呢?

数据有多种形式,如文本、图像、音频、视频等等

无论数据形式如何,都代表的是某种信息

大部分信息,可以经过数字化处理,变为计算机里的数据

那么信息又是什么呢?

信息就是对某个事物、事情、现象的一种描述

既然是描述,就意味着,其中包含了一些概念

概念是我们思考、认识、交流的重要的元素

如果理解了信息是由一些概念组成的,那么就能理解:

程序处理的实际上是 概念

再进一步,就能理解:

计算机是人类大脑的延伸

我们思考、认识、交流都是基于某些概念的,而且教育的主要就是关于抽象概念的


概念就是实体

概念表示某种具体或者抽象的事物

任何一个事物,都具有某种特性或者属性

比如一个人,具有性别、年龄、肤色、国籍等一系列属性

再比如一个课程,具有名称、级别、课时、授课老师等一系列属性

再比如一张图片,具有大小、尺寸、名称、存放位置等一系列属性

看到了吗,对这些概念的进一步分析,获取到其中的各种属性,就能得到这个概念在程序里的表示形式

一个概念在程序里的表现形式就是实体

实体,就就是建立现实世界和计算机世界之间的联系的

现实世界里,各个东西都是概念,计算机世界里各种东西都是实体

概念和实体之间是可以相互表示的

前面我们知道了,程序处理的就是概念,那么将概念表示为实体,就可以编写为程序了


实体之间的关系

概念之间是有联系的,同样,实体之间也是有联系的

相对概念之间的联系,实体之间的联系更为简单

只有一对一一对多,和多对多的联系

是不是感觉有点熟悉了,这不就是数据库表之间的联系吗?

没错,数据库表实际上是用来存放概念的,比如存放人员信息,课程信息,图片信息

即它实际上存放的就是实体

日常大多数程序,并不需要和数据库打交道

但并不意味着不和实体大交道

数据库只是存放实体的一种形式,并且实现了实体之间的一对一一对多的关系

一对一,意味着,两个实体之间是一一对应的,比如每个人只有一个身份证(正常情况下),

一对多,意味着,两种实体之间具有包含的关系,比如一个家庭,由多个个人组成,或者一个学生可以同时选择多们课程

这种关联关系,在程序中会被处理成顺序处理,和循环处理


实体的表示

程序设计,需要像建筑图纸一样表示出来

对于实体,应该如何表示呢

通过参考各种资料,特别是学习了 《系统分析与设计方法》,并结合工作实践,我总结了一套表示实体的方法

在不同的设计阶段,需要用到不同的表示方式

一般分为 概要实体详细实体

区别在于,概要实体不用关注实体的熟悉,而详细实体,需要关注实体的属性

今天我们只讨论概要实体

概要实体用一个方框表示:

33.jpg


实体

方框里面写实体的名称

实体之间的关系,用链接它们的线条表示


34.jpg

实体关系

线条两端,需要特别注意,靠近外面的表示一或者多

是一个小短线, 是三分叉

靠近里面的小圈,表示 0 即可以不存在,小短线表示 1 即表示必须存在

例如第一条线左端,读作:有且有一个,右端读作:有且有一个或者多个

第二条线左端,读作:没有或仅有一个,右端读作:没有或者可以有多个

第三第四咋读,你可以试试吧,欢迎留言讨论

下面我们看一个实际的例子

35.jpg

实体关系

这幅图,描绘了一个学校系统的基本结构,通过图示,我们就能轻松的读取它所传递的信息

比如学校必须有一个或者多个班级,班级必须属于一个学校,

一个班级里可以没有学生或者有多个学生

一个学生可以不选或者选择多个课程

一个课程可能没有学生选择或者有多个学生选择

……

如果进一步展开,这些关系里实际上包含着业务规则,比如一个班级没有任何学生的状态可能是在开学前,还没学生报名的时间点

以及 不能存在一个没有班级的学校 等等

而不同的业务场景下,规则是不一样的,所有实体图,体现当前的业务场景,并不存在适应所有场景的实体图

这就是实体关系图,通过它不仅可以方便地记业务信息,而且还可以方便地交流


总结

今天我们梳理了程序设计中的实体部分,从程序处理的是什么开始,一直引导到程序处理的是概念这个观点,概念不仅是我们认识世界的工具,也是我们做程序设计的基础,抓住了实体,就像抓住了程序的纲。

目录
相关文章
|
1月前
|
C++ 芯片
【C++面向对象——类与对象】Computer类(头歌实践教学平台习题)【合集】
声明一个简单的Computer类,含有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,以及两个公有成员函数run、stop。只能在类的内部访问。这是一种数据隐藏的机制,用于保护类的数据不被外部随意修改。根据提示,在右侧编辑器补充代码,平台会对你编写的代码进行测试。成员可以在派生类(继承该类的子类)中访问。成员,在类的外部不能直接访问。可以在类的外部直接访问。为了完成本关任务,你需要掌握。
70 19
|
1月前
|
存储 编译器 数据安全/隐私保护
【C++面向对象——类与对象】CPU类(头歌实践教学平台习题)【合集】
声明一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,以及两个公有成员函数run、stop。根据提示,在右侧编辑器补充代码,平台会对你编写的代码进行测试。​ 相关知识 类的声明和使用。 类的声明和对象的声明。 构造函数和析构函数的执行。 一、类的声明和使用 1.类的声明基础 在C++中,类是创建对象的蓝图。类的声明定义了类的成员,包括数据成员(变量)和成员函数(方法)。一个简单的类声明示例如下: classMyClass{ public: int
52 13
|
1月前
|
设计模式 IDE 编译器
【C++面向对象——类的多态性与虚函数】编写教学游戏:认识动物(头歌实践教学平台习题)【合集】
本项目旨在通过C++编程实现一个教学游戏,帮助小朋友认识动物。程序设计了一个动物园场景,包含Dog、Bird和Frog三种动物。每个动物都有move和shout行为,用于展示其特征。游戏随机挑选10个动物,前5个供学习,后5个用于测试。使用虚函数和多态实现不同动物的行为,确保代码灵活扩展。此外,通过typeid获取对象类型,并利用strstr辅助判断类型。相关头文件如<string>、<cstdlib>等确保程序正常运行。最终,根据小朋友的回答计算得分,提供互动学习体验。 - **任务描述**:编写教学游戏,随机挑选10个动物进行展示与测试。 - **类设计**:基类
34 3
|
6月前
|
算法 数据可视化 C++
【C++】C++ 学生信息管理系统(源码+面向对象)【独一无二】
【C++】C++ 学生信息管理系统(源码+面向对象)【独一无二】
127 0
|
9月前
|
存储 人工智能 机器人
【C++面向对象】C++图书管理系统 (源码)【独一无二】
【C++面向对象】C++图书管理系统 (源码)【独一无二】
267 2
|
Java 测试技术
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(2)
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(2)
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(2)
|
架构师 Java 测试技术
软件设计实践:如何使用UML完成一个设计文档?
软件设计实践:如何使用UML完成一个设计文档?UML 建模可以很复杂,也可以很简单,简单掌握类图、时序图、组件图、部署图、用例 图、状态图、活动图这 7 种模型图,根据场景的不同,灵活在需求分析、概要设计和详细设计阶段绘制对应的模型图,可以实实在在地做好软件建模,搞好系统设计,做一个掌控局面、引领技术团队的架构师。
379 1
软件设计实践:如何使用UML完成一个设计文档?
C#面向对象程序设计课程实验四:实验名称:C#面向对象程序设计基础
C#面向对象程序设计课程实验四:实验名称:C#面向对象程序设计基础
C#面向对象程序设计课程实验四:实验名称:C#面向对象程序设计基础
C#面向对象程序设计课程实验一:实验名称:C#语言基础、程序流程控制
C#面向对象程序设计课程实验一:实验名称:C#语言基础、程序流程控制
C#面向对象程序设计课程实验一:实验名称:C#语言基础、程序流程控制
C#面向对象程序设计课程实验五:实验名称:C#面向对象技术
C#面向对象程序设计课程实验五:实验名称:C#面向对象技术
C#面向对象程序设计课程实验五:实验名称:C#面向对象技术

热门文章

最新文章