高级语言程序设计作业 11/25

news/2024/11/30 6:37:20/文章来源:https://www.cnblogs.com/kgezhiwang/p/18567863
  • 2024高级语言程序设计:https://edu.cnblogs.com/campus/fzu/2024C
  • 高级语言程序设计课程第五次作业:https://edu.cnblogs.com/campus/fzu/2024C/homework/13311
  • 学号:102400215
  • 姓名:胡加乘

14.17 复习题

3

struct month
{const char* name;   // 月份名const char abbr[4]; // 月份缩写int days;           // 天数int no;             // 月份号
};

4

	struct month arr[12] ={{ "January", "Jan", 31, 1 },{ "February", "Feb", 28, 2 },{ "March", "Mar", 31, 3 },{ "April", "Apr", 30, 4 },{ "May", "May", 31, 5 },{ "June", "Jun", 30, 6 },{ "July", "Jul", 31, 7 },{ "Augest", "Aug", 31, 8 },{ "Spetember", "Sep", 30, 9 },{ "October", "Oct", 31, 10 },{ "November", "Nov", 30, 11 },{ "December", "Dec", 31, 12 },};

5

struct month arr[12] =
{{ "January", "Jan", 31, 1 },{ "February", "Feb", 28, 2 },{ "March", "Mar", 31, 3 },{ "April", "Apr", 30, 4 },{ "May", "May", 31, 5 },{ "June", "Jun", 30, 6 },{ "July", "Jul", 31, 7 },{ "Augest", "Aug", 31, 8 },{ "Spetember", "Sep", 30, 9 },{ "October", "Oct", 31, 10 },{ "November", "Nov", 30, 11 },{ "December", "Dec", 31, 12 },
};int totalDays(int month);int main()
{cout << "到七月为止的总天数(包括七月):" << totalDays(7);return 0;
}int totalDays(int month)
{int sum = 0;for (int i = 0; i < month; i++){sum += arr[i].days;}return sum;
}

10

struct gas
{float distance;  // 英里数float gals;      // 加仑float mpg;       // 每加仑行驶的英里数
};void cal_mpg(struct gas* g);int main()
{struct gas g = { 100, 20, -1 };cal_mpg(&g);cout << g.mpg;return 0;
}void cal_mpg(struct gas* g)
{g->mpg = g->distance / g->gals;
}

11

enum choices
{no = 0,yes = 1,maybe = 2,
};

14.18 编程练习

3

#include <iostream>using namespace std;char* s_gets(char* st, int n);#define MAXTITL   40
#define MAXAUTL   40
#define MAXBKS   100struct book
{char title[MAXTITL];     // 书名char author[MAXAUTL];    // 作者float value;             // 价格
};void sort_by_title(struct book* bks, int count);
void sort_by_value(struct book* bks, int count);int main()
{struct book library[MAXBKS];struct book* pbk[MAXBKS];// 图书总数int count = 0;int index;// 提示用户输入图书信息printf("Please enter the book title.\n");printf("Press [enter] at the start of a line to stop.\n");while (count < MAXBKS && s_gets(library[count].title, MAXTITL) != NULL&& library[count].title[0] != '\0'){printf("Now enter the author.\n");s_gets(library[count].author, MAXAUTL);printf("Now enter the value.\n");scanf_s("%f", &library[count++].value);while (getchar() != '\n')continue;if (count < MAXBKS)printf("Enter the next title.\n");}if (count > 0){printf("Here is the list of your books:\n");// 按标题排序sort_by_title(library, count);// 按价格排序// sort_by_value(library, count);for (index = 0; index < count; index++){printf("%s is by %s: $%.2f\n",library[index].title,library[index].author,library[index].value);}}else{printf("No books? Too bad.\n");}return 0;
}void sort_by_predicate(struct book* bks, int count,bool (*predicate)(struct book bk1, struct book bk2))
{for (int i = 0; i < count; i++){for (int j = 0; j < count - i - 1; j++){if (predicate(bks[j], bks[j + 1])){struct book tmp = bks[j];bks[j] = bks[j + 1];bks[j + 1] = tmp;}}}
}bool title_predicate(struct book bk1, struct book bk2)
{return bk1.title[0] > bk2.title[0];
}void sort_by_title(struct book* bks, int count)
{sort_by_predicate(bks, count, title_predicate);
}bool value_predicate(struct book bk1, struct book bk2)
{return bk1.value > bk2.value;
}void sort_by_value(struct book* bks, int count)
{sort_by_predicate(bks, count, value_predicate);
}char* s_gets(char* st, int n)
{char* ret_val;char* find;ret_val = fgets(st, n, stdin);if (ret_val) {find = strchr(st, '\n');   // look for newlineif (find)                  // if the address is not NULL,*find = '\0';          // place a null character thereelsewhile (getchar() != '\n')continue;          // dispose of rest of line}return ret_val;
}


4

#include <iostream>using namespace std;typedef struct
{int insurance;struct{const char* first_name;const char* middle_name;const char* last_name;} name;
} person;void printPerson(person p);int main()
{person contacts[5] ={{ 302039823, { "Michael",  "James", "Johnson" } },{ 485729163, { "Olivia",  "Rose", "Smith" } },{ 793462815, { "William",  "Henry", "Anderson" } },{ 628413957, { "Benjamin",  NULL, "Harris" } },{ 172948506, { "Charlotte",  "Anne", "Lee" } },};for (int i = 0; i < 5; i++){printPerson(contacts[i]);}return 0;
}void printPerson(person p)
{cout << p.name.first_name << ", " << p.name.last_name;if (p.name.middle_name)cout << " " << p.name.middle_name[0] << ".";cout << " -- " << p.insurance << endl;
}

5

#include <iostream>using namespace std;#define LEN 21
#define SCORES 3
#define CSIZE 4struct name 
{char first_name[LEN];char last_name[LEN];
};struct student 
{struct name person;float grade[SCORES];float avg;
};void input_scores(struct student arr[], int n);
void calc_avg(struct student arr[], int n);
void show_students(const struct student arr[], int n);int main()
{struct student students[CSIZE] = {{ "Emily",  "Carter" },{ "Michael", "Johnson" },{ "William", "Anderson" },{ "Charlotte",  "Lee" }};// d.输入学生成绩input_scores(students, CSIZE);// e.计算平均值calc_avg(students, CSIZE);// f. 打印每个学生的信息、平均分show_students(students, CSIZE);return 0;
}void input_scores(struct student arr[], int n) 
{int i, j;for (i = 0; i < n; i++){// 提示用户输入学生成绩printf("Please enter %d scores for %s %s:\n",SCORES, arr[i].person.first_name, arr[i].person.last_name);for (j = 0; j < SCORES; j++) {while (scanf_s("%f", &arr[i].grade[j]) != 1) {scanf_s("%*s");puts("Please use numeric input.");}}}
}void calc_avg(struct student arr[], int n)
{int i, j;float sum;for (i = 0; i < n; i++) {sum = 0;for (j = 0; j < SCORES; j++)sum += arr[i].grade[j];// 计算平均值arr[i].avg = sum / SCORES;}
}void show_students(const struct student arr[], int n) 
{int i, j;// 全名char full_name[2 * LEN];printf("\nHere is student's score list:\n");for (i = 0; i < n; i++){strcpy(full_name, arr[i].person.first_name);strcat(full_name, " ");strcat(full_name, arr[i].person.last_name);// 打印全名printf("%15s: ", full_name);for (j = 0; j < SCORES; j++)printf("%6.1f ", arr[i].grade[j]);// 打印平均分printf(" Average = %5.2f\n", arr[i].avg);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/840987.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【红队】windows立足点建立技术

本文涵盖了将PowerShell-Empire设置为C2服务器的过程,以及如何生成可用于在目标系统上获得初步立足点的宏Excel文档。 ATT& CK 初始访问包括使用各种进入向量在网络中获得其初始立足点的技术。用于获得立足点的技术包括有针对性的鱼叉式网络钓鱼和利用面向公众的Web服务器…

公钥加密系统与离散对数问题

概念 1 单向函数和陷门信息 单向函数是一种可逆函数,其正向计算容易,但反向计算却非常困难。 安全的公钥加密系统(Public Key Cryptosystem, 简称PKC)基于具有陷门的单向函数。陷门是一种辅助信息,利用它可以轻松计算单向函数的反函数。“陷门”一词来源于物理或机械陷阱的…

ljnljn小站上线啦

站内设有多个Web靶场以及Cyberchef,欢迎大家前来遛遛~ 地址:http://8.130.110.67/

周末基于 .NET 9 + K8S 写了个 MockHttp

MockHTTP MockHTTP 可以将现有HTTP转换成GET请求,设置cron定时调用,自定义代码去格式化数据,通知到你的邮箱里。 比如每天早上时自动获取博客园文章列表,天气下雨时通知,各类签到等 Request 创建一个请求 可以使用VSCode或VS,创建一个.http文件 POST https://www.wdora.c…

CentOS7.9无图形桌面安装chromedriver、chrome、drissionpage

由于centos7 停止维护,在安装google浏览器就因为版本和下载源的问题走了不少弯路,踩了一些坑。 原操作: sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpmyum install google-chrome-stable_current_x86_64.rpm出现错误缺少glibc_2.…

轻松掌控:免越狱iOS设备的群控与单控功能详解

在当今的数字化时代,高效管理多台iOS设备成为企业和个人用户的一项重要需求。无论是为了提高团队协作效率,还是为了执行大规模的营销活动,免越狱的iOS设备群控与单控功能都提供了强大且安全的解决方案。本章将详细介绍如何利用这些功能,轻松实现对多台iOS设备的有效管理。免…

详解“日切”原理

探索支付领域的奥秘,深入了解日切的复杂世界。在这篇文章将带我们穿越历史的长河,从早期的钱庄货币到现代银行体系,全面解析日切的演变、挑战和实现模式。我想很多人都不陌生,但日切究竟是如何实现的,日切前后及过程中都发生了什么,需要做哪些事情;不同的年代、不同的机…

Windows Server 2025激活教程

Windows Server 如何把评估版升级改为正式版本并激活微软官方并不提供server系统的正式版本,只提供测试的评估版本,那么我们怎么修改为正式版本呢?1.确认版本开始————运行————CMD(管理员模式)cmd命令页面输入:winver 会弹出版本页面 查看具体为数据中心版还是标准…

《花100块做个摸鱼小网站! 》第十篇—响应式布局适配PC端和移动端

⭐️基础链接导航⭐️ 服务器 → ☁️ 阿里云活动地址 看样例 → 🐟 摸鱼小网站地址 学代码 → 💻 源码库地址一、前言 大家好呀,我是summo,小网站一直有个问题,就是PC端的样式和移动端的样式是两套,并且不能根据显示屏的大小进行动态化布局,如果PC端屏幕非常小就是这…

HCIA-09 VLAN原理与配置

主要介绍了虚拟局域网 (VLAN)的相关技术知识,包括:VLAN的作用,VLAN的标识及划分,VLAN的数据交互,VLAN的实际规划和应用,以及VLAN的相关基本配置。 通过VLAN技术,可以将物理的局域网划分成多个广播域,实现同一VLAN内的网络设备可以直接进行二层通信,不同VLAN内的设备不…

vxe-modal 实现窗口拖拽调整宽高

vxe-modal 实现窗口拖拽调整宽高 官网:https://vxeui.com<template><div><vxe-button content="点击弹出" @click="showPopup = true"></vxe-button><vxe-modal v-model="showPopup" title="标题1" :widt…

Tarjan学习笔记

强连通分量,缩点算法:Tarjan 代码及模板 强连通图:有向图,任意两点有路径 强连通分量:有向图,强连通子图数量 前置知识:dfs树(dfs序构成的树) 成分: 1.树边:dfs树上的边 (以下三种边是dfs树上没有但原图上有的边) 2.前向边:dfs树的祖先到儿子的边。 3.返祖边(后…