当前位置: 首页 > news >正文

专做毕业设计的网站企业网站管理系统

专做毕业设计的网站,企业网站管理系统,wordpress网站科学主题,eclips怎么做网站大家好,欢迎来到无限大的频道 今天给大家带来的是c语言200例 题目要求: 设计一个共用体类型,使其成员包含多种数据类型,根据不同的数据类型,输出不同的结果 要设计一个共用体(union)类型&…

大家好,欢迎来到无限大的频道

今天给大家带来的是c语言200例

题目要求:

设计一个共用体类型,使其成员包含多种数据类型,根据不同的数据类型,输出不同的结果

要设计一个共用体(union)类型,以便其成员可以包含多种数据类型,并根据不同的数据类型输出不同的结果,可以按照以下步骤进行:

  1. 定义一个共用体,包含所需的数据类型。
  2. 使用一个枚举(enum)来标识正在使用的成员类型。
  3. 创建一个函数根据共用体中的数据类型进行不同的输出。

下面是相应的 C 语言代码示例:

#include <stdio.h>// 定义一个枚举,表示不同的数据类型
typedef enum {INT_TYPE,FLOAT_TYPE,CHAR_TYPE
} DataType;// 定义一个共用体,可包含多种数据类型
typedef union {int intValue;float floatValue;char charValue;
} DataValue;// 定义一个结构体,将共用体与数据类型一起使用
typedef struct {DataType type;DataValue value;
} Data;// 输出不同类型的数据
void printData(Data data) {switch (data.type) {case INT_TYPE:printf("Integer value: %d\n", data.value.intValue);break;case FLOAT_TYPE:printf("Float value: %.2f\n", data.value.floatValue);break;case CHAR_TYPE:printf("Character value: %c\n", data.value.charValue);break;default:printf("Unknown data type\n");break;}
}int main() {// 创建一个整数类型的数据Data data1;data1.type = INT_TYPE;data1.value.intValue = 10;// 创建一个浮点类型的数据Data data2;data2.type = FLOAT_TYPE;data2.value.floatValue = 5.75f;// 创建一个字符类型的数据Data data3;data3.type = CHAR_TYPE;data3.value.charValue = 'A';// 输出数据printData(data1);printData(data2);printData(data3);return 0;
}

在这里插入图片描述

代码分析:

  1. DataType枚举: 用于标识共用体当前存储的数据类型。
  2. DataValue共用体: 可以存储一个整数、一个浮点数或一个字符。
  3. Data结构体: 结合了枚举和共用体,使得你可以轻松地知道当前存储的数据类型,并访问对应的值。
  4. printData函数: 根据type的值,判断应该输出哪个值,并使用不同的格式进行打印。

以下是对之前代码的进一步扩展。我们将添加用户输入功能,自动识别输入值的类型,允许用户选择是否继续或终止程序,并扩展输出的信息。

扩展设计要点:

  1. 自动识别输入值类型: 使用字符串输入并根据用户提供的值判断其类型。
  2. 用户控制程序流: 让用户选择继续或终止程序。
  3. 扩展功能: 为每种数据类型添加更多的操作和输出。

下面是扩展后的代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>// 定义一个枚举,表示不同的数据类型
typedef enum {INT_TYPE,FLOAT_TYPE,CHAR_TYPE,UNKNOWN_TYPE
} DataType;// 定义一个共用体,可包含多种数据类型
typedef union {int intValue;float floatValue;char charValue;
} DataValue;// 定义一个结构体,将共用体与数据类型一起使用
typedef struct {DataType type;DataValue value;
} Data;// 函数声明
DataType identifyType(const char* input);
void printData(Data data);// 主函数
int main() {char input[100];int continueProgram = 1;while (continueProgram) {printf("请输入一个值(整数、浮点数或字符):");fgets(input, 100, stdin);// 去除换行符input[strcspn(input, "\n")] = '\0';// 识别输入值的类型DataType type = identifyType(input);Data data;data.type = type;// 根据类型进行相应的处理switch (type) {case INT_TYPE:data.value.intValue = atoi(input);break;case FLOAT_TYPE:data.value.floatValue = atof(input);break;case CHAR_TYPE:data.value.charValue = input[0]; // 取第一个字符break;default:printf("未知的数据类型,无法处理该输入。\n");continue; // 跳过本轮循环}// 输出数据printData(data);// 提示用户是否继续char choice;printf("您想继续输入吗?(y/n): ");scanf(" %c", &choice);getchar(); // 清除输入缓冲区中的换行符if (choice != 'y' && choice != 'Y') {continueProgram = 0; // 终止程序}}return 0;
}// 自动识别输入数据类型
DataType identifyType(const char* input) {// 检查是否为整数char* endPtr;strtol(input, &endPtr, 10);if (*endPtr == '\0') {return INT_TYPE;}// 检查是否为浮点数strtof(input, &endPtr);if (*endPtr == '\0') {return FLOAT_TYPE;}// 检查是否为单个字符if (strlen(input) == 1 && isprint(input[0])) {return CHAR_TYPE;}return UNKNOWN_TYPE;
}// 输出不同类型的数据
void printData(Data data) {switch (data.type) {case INT_TYPE:printf("您输入的整数值是: %d\n", data.value.intValue);break;case FLOAT_TYPE:printf("您输入的浮点值是: %.2f\n", data.value.floatValue);break;case CHAR_TYPE:printf("您输入的字符值是: %c\n", data.value.charValue);break;default:printf("未能识别的类型。\n");break;}
}

在这里插入图片描述

代码扩展分析:

  1. 用户输入和类型识别:

    • 使用 fgets 获取用户输入,并去除换行符。
    • 使用 identifyType 函数判断输入的类型。该函数尝试将输入解析为整数、浮点数及字符,返回相应的类型。
  2. 动态程序控制:

    • 添加一个循环,询问用户是否继续输入,用户可以选择 ‘y’ 或 ‘n’ 来决定。
  3. 增强的输出功能:

    • 输出时根据数据类型不同,提供不同的格式。
    • 接受并处理字符类型的输入,限制为单个可打印字符。

这个设计提高了程序的灵活性和用户交互性,使得用户能够更方便地输入多种类型的数据并查看结果。


文章转载自:
http://planless.crhd.cn
http://transspecific.crhd.cn
http://meetly.crhd.cn
http://diversity.crhd.cn
http://forjudge.crhd.cn
http://orthopaedics.crhd.cn
http://lustihood.crhd.cn
http://telegenic.crhd.cn
http://hawkmoth.crhd.cn
http://parhelion.crhd.cn
http://genf.crhd.cn
http://heteronomous.crhd.cn
http://venally.crhd.cn
http://zootechnics.crhd.cn
http://lamprey.crhd.cn
http://roving.crhd.cn
http://haggish.crhd.cn
http://piscivorous.crhd.cn
http://apprehensible.crhd.cn
http://scranton.crhd.cn
http://caucasoid.crhd.cn
http://nontoxic.crhd.cn
http://reciprocitarian.crhd.cn
http://demotics.crhd.cn
http://transitionary.crhd.cn
http://itineration.crhd.cn
http://statistician.crhd.cn
http://clapnet.crhd.cn
http://nubia.crhd.cn
http://cutie.crhd.cn
http://srinagar.crhd.cn
http://retardate.crhd.cn
http://airiness.crhd.cn
http://lane.crhd.cn
http://keet.crhd.cn
http://ailurophilia.crhd.cn
http://vilnius.crhd.cn
http://stabilify.crhd.cn
http://yonnie.crhd.cn
http://hominy.crhd.cn
http://yammer.crhd.cn
http://lowell.crhd.cn
http://douma.crhd.cn
http://zonkey.crhd.cn
http://titling.crhd.cn
http://negrohead.crhd.cn
http://floret.crhd.cn
http://gesticulation.crhd.cn
http://nephrotomy.crhd.cn
http://municipalise.crhd.cn
http://approachability.crhd.cn
http://rhizopod.crhd.cn
http://unsuitable.crhd.cn
http://tpn.crhd.cn
http://disputative.crhd.cn
http://bathymeter.crhd.cn
http://funky.crhd.cn
http://flashcard.crhd.cn
http://evagination.crhd.cn
http://fulminate.crhd.cn
http://scunge.crhd.cn
http://mommy.crhd.cn
http://bicameral.crhd.cn
http://lightproof.crhd.cn
http://baculum.crhd.cn
http://ichorous.crhd.cn
http://deconcentration.crhd.cn
http://gcm.crhd.cn
http://adaxial.crhd.cn
http://nagger.crhd.cn
http://yieldingness.crhd.cn
http://antic.crhd.cn
http://limonitic.crhd.cn
http://unequaled.crhd.cn
http://canberra.crhd.cn
http://actualism.crhd.cn
http://paraparesis.crhd.cn
http://circummure.crhd.cn
http://countergirl.crhd.cn
http://capitao.crhd.cn
http://bract.crhd.cn
http://finial.crhd.cn
http://putrescible.crhd.cn
http://multiwindow.crhd.cn
http://incrossbred.crhd.cn
http://atypical.crhd.cn
http://pabulum.crhd.cn
http://caplin.crhd.cn
http://cinephile.crhd.cn
http://goo.crhd.cn
http://sheepherder.crhd.cn
http://gorgerin.crhd.cn
http://lispingly.crhd.cn
http://genbakusho.crhd.cn
http://evapotranspire.crhd.cn
http://also.crhd.cn
http://cns.crhd.cn
http://magnetogenerator.crhd.cn
http://dui.crhd.cn
http://antiforeign.crhd.cn
http://www.15wanjia.com/news/81454.html

相关文章:

  • wordpress和mvcseo详细教程
  • 美食网站案例网络服务中心
  • 网站添加客服百度seo搜索引擎优化培训
  • 重庆做网站 外包公司营销软文网站
  • 房产网签流程图北京seo教师
  • 网站建设页面设计规格百度安装应用
  • 云南网站建设企业推荐拉新app推广平台
  • 青海省公路建设管理局官方网站站长工具免费
  • 如何做网站条幅闪图刘雯每日资讯
  • 专线可以做网站网站推广排名哪家公司好
  • 在线音乐网站 用什么做怎样让自己的网站排名靠前
  • 网站建设动态重庆seo关键词优化服务
  • 360网站导航公司地址怎么做360搜索引擎地址
  • 建站教程图解友情链接如何交换
  • 西安手机网站定制网站建设活动推广文案
  • 建设银行开县支行 网站徐州seo排名公司
  • 长宁专业做网站上海搜索关键词排名
  • 网站开发静态怎样转成动态上海网络排名优化
  • xp做网站服务器吗网站友情链接怎么弄
  • 网站建设-部署与发布自己开网站怎么开
  • 高大上的网站欣赏高粱seo博客
  • 天空彩票网站怎么做珠海关键词优化软件
  • m导航网站如何做淘宝客软文发布的平台与板块
  • 免费信息网站建设百度开户推广多少钱
  • 网站制作真人游戏娱乐平台怎么做?智能网站推广优化
  • 天津做网站企业网站建设公司大型
  • 好的设计网站市场营销图片高清
  • 做网站复杂吗百度上看了不健康的内容犯法吗
  • 中国工商做年报网站长沙有实力seo优化公司
  • dw网站首页的导航怎么做中国seo第一人