1.1-09:字符菱形

这段代码展示了如何使用C++从标准输入接收字符,并在控制台连续输出,包括多次打印同一个字符。主要涉及cin和cout的基本操作。
#include<iostream>
using namespace std;
int main()
{
	char i;
	cin>>i;
	cout<<"  "<<i<<endl;
	cout<<" "<<i<<i<<i<<endl;
	cout<<""<<i<<i<<i<<i<<i<<endl;
	cout<<" "<<i<<i<<i<<endl;
	cout<<"  "<<i<<endl;
	return 0;
}
以下是前三道题的 **字符版 E-R 图**,使用 ASCII 字符绘制,可用于文档展示或手绘参考。 --- ## ✅ 第1题:实体之间的联系 ### 1.1 一对一(1:1)——教师 与 办公室 ``` +-----------+ 1 +-------------+ | 教师 |------------------| 办公室 | | (工号,姓名)| 分配 |(房间号,面积)| +-----------+ +-------------+ ``` > 每位教师只分配一间办公室,每间办公室仅供一人使用。 --- ### 1.2 一对多(1:N)——班级 与 学生 ``` +-----------+ 1 +-------------+ | 班级 |------------------| 学生 | | (班号,名称)| 包含 |(学号,姓名) | +-----------+ +-------------+ (一个班级有多个学生) ``` > 联系线上未画出 `N`,表示“多”端在学生侧。 --- ### 1.3 多对多(M:N)——学生 与 课程 ``` +-----------+ M +--------+ N +----------+ | 学生 |------------| 选修 |-----------| 课程 | | (学号,姓名)| |(成绩) | |(课名,学分)| +-----------+ +--------+ +----------+ ``` > 中间的菱形“选修”是联系,可带属性(如成绩),实现为关联表。 --- ## ✅ 第2题:实体内部的联系(基于“员工”) ### 2.1 内部一对一(1:1)——工作搭档 ``` +-----------------+ | | | v +-----------+ 配对 +-----------+ | 员工 |<----------| 员工 | |(工号,姓名) | |(工号,姓名) | +-----------+ +-----------+ ^ | | | +----------------------+ ``` > 更简洁表示: ``` +-----------+ 1 +-----------+ | 员工 |---------------| 员工 | |(工号,姓名) | 配对 |(工号,姓名) | +-----------+ +-----------+ (自联系,1:1) ``` --- ### 2.2 内部一对多(1:N)——上下级管理 ``` +-----------+ 1 +-----------+ | 员工 |---------------| 员工 | |(工号,姓名) | 管理 |(工号,姓名) | +-----------+ +-----------+ (管理者) (下属,多个) ``` > 表示一个上级管理多名下属,形成组织树结构。 --- ### 2.3 内部多对多(M:N)——项目协作 ``` +-----------+ M +--------+ N +-----------+ | 员工 |---------------| 参与 |---------------| 员工 | |(工号,姓名) | |(角色) | |(工号,姓名) | +-----------+ +--------+ +-----------+ ``` > 实际中应引入中间实体,如下所示: ``` +-----------+ M +------------------+ N +-----------+ | 员工 |---------------| 项目组成员 |---------------| 员工 | |(工号,姓名) | |(项目ID,角色,时间)| |(工号,姓名) | +-----------+ +------------------+ +-----------+ ``` --- ## ✅ 第3题:三个实体的多对多联系 ### 3.1 三元联系(学生、教师、课程) ``` +----------+ | 开课 | | (学期) | +----------+ / | \ / | \ M / |1 \ N / | \ v v v +-----------+ +-----------+ +----------+ | 学生 | | 教师 | | 课程 | |(学号,姓名) | |(工号,姓名) | |(课名,学分)| +-----------+ +-----------+ +----------+ ``` > “开课”是一个三元联系,表示某教师在某课程中指导某学生。 --- ### 3.2 两两之间的多对多联系 ``` M +-----------+ M 选修 ←| 学生 |→ 指导 |(学号,姓名) | +-----------+ | ↑ | N | M ↓ | +-----------+ N | 教师 |←→ 教授 |(工号,姓名) | +-----------+ ↑ | | M | N | ↓ +----------+ | 课程 | |(课名,学分)| +----------+ ``` > 更清晰布局(三角形结构): ``` 学生 / M \ 选修/ \指导 / M N \ M N 课程 —— 教授 —— 教师 ``` 完整连接示意: - 学生 —M 选修 N— 课程 - 教师 —M 教授 N— 课程 - 学生 —M 指导 N— 教师 --- ## 📚 知识点 1. **E-R模型基本结构** 实体、属性、联系构成数据模型基础,用于数据库设计。 2. **自联系与递归关系** 同一实体集内实例相互关联,如员工管理其他员工。 3. **多元联系建模** 三元联系表达三个实体共同参与的一个语义行为,如“开课”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值