实验五 结构体和指针 您所在的位置:网站首页 指针一实验报告 实验五 结构体和指针

实验五 结构体和指针

2024-07-15 06:22| 来源: 网络整理| 查看: 265

1 实验目的 (1)学习如何使用结构体的指针作为函数的参数,通过传指针(本质也是传值)的方式,在被调用函数中修改主调函数中的多个结构体变量的方法。 (2)学习如何把逻辑结构相同的部分抽象为函数,以提高代码的可重用性,达到提高程序可维护性的目的。 2 实验内容 2.1 模拟画图功能 (1)问题描述 模拟计算机的画图功能,能够模拟画圆和长方形的功能。程序主要功能如下: ① 提供一个如下的主菜单。

Circle (圆)Rectangle (长方形)Exit (退出)

② 不断接受用户的选择(整数),直至用户选择0为止。如果用户输入了系统尚未支持的选择(比如3),则给出相应的提示信息,并继续选择。 ③ 如果用户选择了圆或长方形,则进一步提示用户输入两个点,分别称为起点和终点,如下图所示。坐标仅考虑正整数的情况。要求终点的坐标大于起点的坐标,否则给出相关的提示信息并返回主菜单。

图1. 显示屏的坐标系与起点、终点位置 ④ 模拟画出圆和长方形。画圆时,要计算startPoint和endPoint所构成的正方形的内切圆的圆心和半径。若startPoint和endPoint所构成的不是正方形,则给出相关的提示信息并返回主菜单。 (2)问题要求 ① 定义一个Point结构体,用来表示显示屏上的点; ② 实现以下函数(图2),使得主程序(图3)输出图4中的结果。

图2. 需要实现的函数雏形 主程序如图3所示。

图3. 主程序 运行结果如图4所示。

图4. 运行结果 注意,上述结果未能列出所有可能的执行情况。请认真思考,相关的提示信息应该分别在由哪些函数中输出? 源代码:

#include using namespace std; struct Point { int x; int y; }; void displayMenu() { cout cout center.x = (startP->x + endP->x)/2; // 计算圆心横坐标 center.y = (startP->y + endP->y)/2; // 计算圆心纵坐标 radius = (endP->x - startP->x)/2; // 计算半径 // 模拟画圆 cout int choice = 1; // 用户选择 struct Point startP; // 起点 struct Point endP; // 终点 while (choice) { displayMenu(); cin >> choice; switch (choice) { case 1: getTwoPoints(&startP, &endP); drawCircle(&startP, &endP); break; case 2: getTwoPoints(&startP, &endP); drawRectangle(&startP, &endP); break; case 0: cout rules[i].R; } } void outputRules(struct Rule rules[], int n) { cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有