C#对象和类--习题(1)

2023-11-10

1)一个景区根据游人的年龄收取不同价格的门票,请编写游人类,根据年龄段决定能够购买门票价格并输出
在这里插入图片描述

 class XiTi
 {
  string name;
  int age;
  void Xiti1()
   {
  for (; ; )//死循环,类似的while(true){}
   {
    Console.WriteLine("请输入姓名:");
    name = Console.ReadLine();
    if (name == "n")
     {
      Console.WriteLine("退出程序");
      break;
     }
    else
      {
        Console.WriteLine("请输入年龄:");
        age = int.Parse(Console.ReadLine());
        if (age >= 18)
        {
         Console.WriteLine(name + "的年龄为:" + age + ",门票价格为20元");
        }
        else
        {
         Console.WriteLine(name + "的年龄为:" + age + ",门票免费");
        }
       }               
   }
 static void Main(string[] args)
  {
   XiTi xt = new Xiti();
   xt.Xiti1();
 }
}

2)写一个函数,接收a,b,c,计算ax²+bx+c=0的根
在这里插入图片描述

class XiTi
{
 void root(float a, float b, float c)
 {
  Console.WriteLine(a + "x²+" + "(" + b + ")" + "x+" + "(" + c + ")" + "=0的根为");
  float deta = (b * b - 4 * a * c);
  if 
  {
  Console.WriteLine("该三个数组成的一元二次方程无解。");
  }
   else
    {
     float x1 = ((-b) + (float)(Math.Sqrt(deta))) / (2 * a);
     float x2 = ((-b) - (float)(Math.Sqrt(deta))) / (2 * a);              
     Console.WriteLine("x1=" + x1);
     Console.WriteLine("x2=" + x2);
    }
 }
 static void Main(string[] args)
  {
  XiTi xt = new Xiti();
  Console.Write("a=");
  int a = int.Parse(Console.ReadLine());
  Console.Write("b=");
  int b = int.Parse(Console.ReadLine());
  Console.Write("c=");
  int c = int.Parse(Console.ReadLine());
  xt.root(a, b, c);
 }
}

3)简单实现银行存款取款功能
在这里插入图片描述
写该习题时,说不出的心酸,先解决了简单的存款,取款,退出功能,测试时发现可以欠钱,然后修改后,连续两次取超过存款的钱后,怎么取钱都不会扣钱了。慢慢琢磨,我才发现了while的强大之处了。

//业务选择导航
class Xiti
{
 void Choice()
 {
   Console.WriteLine("1.存款  2.取款  0.退出");
   Console.Write("请选择要办理的业务:");
   int a = int.Parse(Console.ReadLine());
   yewu(a);
  }
//存款,取款,退出功能
void yewu(int n)
 {
 switch (n)
  {
   case 1:
     Console.Write("请输入存款金额:");
     int save = int.Parse(Console.ReadLine());
     Console.WriteLine("存款成功");
     sum += save;
     Console.WriteLine();
     Console.WriteLine("***当前余额为:" + sum + "元***\n");
     Choice();
     break;
   case 2:
     Console.Write("请输入取款金额:");
     int draw = int.Parse(Console.ReadLine());                    
     while (sum <= draw)                                   
      {
       Console.WriteLine("余额不足,重新操作。");
       Console.WriteLine("\n***当前余额为:" + sum + "元***\n");
       Console.Write("请输入取款金额:");
       draw = int.Parse(Console.ReadLine());                      
       }                                       
        sum -= draw;
        Console.WriteLine("取款成功");                                                                          
        Console.WriteLine("\n***当前余额为:" + sum + "元\n");
        Choice();
        break;
    case 0:
      Console.WriteLine("程序结束");
      Environment.Exit(0);
      break;
   }
}
static void Main(string[] args)
  {
  XiTi xt = new Xiti();
  Console.WriteLine("1.存款  2.取款  0.退出");
  Console.Write("请选择要办理的业务:");
  int a = int.Parse(Console.ReadLine());
  xt.yewu(a);
  }
}

4)简单实现我行我素购物管理(练习导航的切换)
在这里插入图片描述

Class Xiti
{
void LoginMenu()
  {
    Console.WriteLine("欢迎使用我行我素购物管理系统");
    Console.WriteLine("1.登录系统");
    Console.WriteLine("2.退出");       
    Console.WriteLine("*******************************");                                       
    Console.Write("请选择,输入数字:");
    int a = int.Parse(Console.ReadLine());
    switch (a)
     {
      case 1:
         MainMenu();
         break;
      case 2:
         Environment.Exit(0);
         Console.WriteLine("程序结束");
         break;
      }
  }        
  void MainMenu()
  {
   Console.WriteLine("我行我素购物管理系统主菜单");
   Console.WriteLine("1.客户信息管理");
   Console.WriteLine("2.真情回顾");
   Console.WriteLine("*******************************");  
   Console.Write("请选择,输入数字或按0返回上一级菜单:");
   int a = int.Parse(Console.ReadLine());
   switch (a)
      {
         case 0: LoginMenu();break;
         case 1: Console.WriteLine("该功能暂未开放"); break;
         case 2: ZhengQing();break;
      }            
   }
   void ZhengQing()
   {
    Console.WriteLine("我行我素购物管理系统 > 真情回顾");
    Console.WriteLine("1.幸运大放送");
    Console.WriteLine("2.幸运抽奖");
    Console.WriteLine("3.生日问候");
    Console.WriteLine("*******************************");  
    Console.Write("请选择,输入数字或按0返回上一级菜单:");
   int a = int.Parse(Console.ReadLine());
   switch (a)
    {
     case 0: MainMenu();break;
     case 1: Console.WriteLine("执行幸运大放送");break;
     case 2:
     case 3: Console.WriteLine("该功能暂未开放!"); break;
     default: Console.WriteLine("输入有误");break;
    }
  }
static void Main(string[] args)
 {
  XiTi xt = new Xiti();
  xt.LoginMenu();
 }
}

这个章节的习题比较多,当要写长代码时,发现自己很大的不足。
代码冗余,以至于重复编写,很多可以写进方法里面,然后直接调用
虽然是简单的功能实现,但也应该需要清楚流程需求

趁着今天放假,把上个礼拜做的习题重新复习一遍,并写下来,也希望读者可以给更好的意见。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#对象和类--习题(1) 的相关文章

  • 进程何时获得 SIGABRT(信号 6)?

    C 中进程获得 SIGABRT 的场景有哪些 该信号是否始终来自进程内部 或者该信号可以从一个进程发送到另一个进程吗 有没有办法识别哪个进程正在发送该信号 abort 向调用进程发送SIGABRT信号 就是这样abort 基本上有效 abo
  • 为什么libc++的shared_ptr实现使用完整内存屏障而不是宽松内存屏障?

    在boost的实现中shared ptr 它用放松内存排序以增加其引用计数 https github com boostorg smart ptr blob master include boost smart ptr detail sp
  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • 迭代变量并查找特定类型实例的技术

    我想迭代进程中内存中的变量 通过插件动态加载 并查找特定类型的实例 以前我可以找到特定类型 或内存中的所有类型 我可以创建类型的实例 我可以获取作为不同类型的字段包含的实例 但我无论如何都不知道只是 搜索 特定类型的实例 一种方法是使用 W
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab
  • 对齐 GridView 中的行值

    我需要在 asp net 3 5 中右对齐 gridview 列中的值 我怎样才能做到这一点
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • 检查算术运算中的溢出情况[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • IronPython:没有名为 json 的模块

    我安装了 IronPython 我的 python 文件如下所示 import sys print sys version import json 运行它的代码 var p Python CreateEngine var scope p C
  • 如何从网站下载 .EXE 文件?

    我正在编写一个应用程序 需要从网站下载 exe 文件 我正在使用 Visual Studio Express 2008 我正在使用以下代码 private void button1 Click object sender EventArgs
  • 在非活动联合成员上使用“std::addressof”是否定义明确[重复]

    这个问题在这里已经有答案了 下面的代码是尝试实现constexpr的版本offsetof在 C 11 中 它可以在 gcc 7 2 0 和 clang 5 0 0 中编译 这取决于申请std addressof工会非活跃成员的成员 这是明确
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • 为什么我不应该对不是由 malloc() 分配的变量调用 free() ?

    我在某处读到 使用它是灾难性的free删除不是通过调用创建的对象malloc 这是真的 为什么 这是未定义的行为 永远不要尝试它 让我们看看当您尝试时会发生什么free 自动变量 堆管理器必须推断出如何获取内存块的所有权 为此 它要么必须使
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop

随机推荐

  • 一文了解快手广告生态:磁力智投、磁力金牛、磁力聚星、磁力万象、磁力方舟!

    抖音和快手的对照表 通过抖音和快手的对照表 我们可以知道磁力智投是快手的信息流投放平台 主要做站外引流 磁力金牛则对标巨量千川 主要做快手电商的站内闭环 磁力聚星则是围绕着达人营销 协助于品牌做出达播和自播兼具的经营阵地 也帮助达人在变现上
  • 【2023持续更新】网络安全工程师常用网站集合

    文章目录 信息搜集 子域名搜集 在线工具 信息处理 威胁情报及分析 在线靶场 综合学习 安全资讯技术 大会演讲PPT 安全社区 社工工程学 信息搜集 http www yunsee cn http finger tidesec com ht
  • Vue.js子级向父级传递数据

    组件之间的数据的传递 子传父 注意 html对大小写不敏感 事件名字最好用 隔开或全部小写 步骤 1 在父组件中在子组件上添加事件 自定义 监听 代表的含意 事件分两类 浏览器自带的事件 click mouseover mousedown
  • 11-2_Qt 5.9 C++开发指南_QSqlQueryModel的使用(QSqlQueryModel 只能作为只读数据源使用,不可以编辑数据)

    文章目录 1 QSqlQueryModel 功能概述 2 使用 QSqlQueryModel 实现数据查询 2 1 实例功能 2 2 可视化UI设计 2 3 主窗口类定义 去除自动生成的槽函数 2 4 打开数据库 2 5 记录移动 1 QS
  • java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer

    因为BigDecimal不能强制转换成 String类型 要用toString 作为中间桥梁转换 同理 Object BigDecimal转换成int doulbe long 也是一样的 List
  • 灰灰-判断是否存在重复数

    给定一个整数数组 判断是否存在重复元素 如果任何值在数组中出现至少两次 函数返回 true 如果数组中每个元素都不相同 则返回 false 示例 1 输入 1 2 3 1 输出 true 示例 2 输入 1 2 3 4 输出 false 示
  • QT笔记——QTableWidget 之 指定某列排序

    指定某列共有2种方式 1 重写 bool QTableWidgetItem operator lt const QTableWidgetItem other const 2 点击表头进行排序 connect ui tableWidget g
  • Python配置第三方库最全教程

    学Python最让人头疼的莫过于去配置一大堆杂乱的第三方库 而下载第三方库时报错也能让你崩溃 今天 我整理了一份全的教程 最常用的办法下载第三方库 在终端中执行 pip install 第三方库名称 大部分人一般不会报错 但偏偏我去安装最基
  • fbmem驱动框架分析

    文章目录 fbmem驱动框架分析 1 与misc驱动框架类比 1 1 my first cdev的记录 1 2 关于misc驱动框架的总结 2 fbmem驱动框架 2 1提供注册函数 2 2 操作函数分析 2 2 1 open函数分析 op
  • google analytics 添加跟踪代码

    google analytics添加跟踪代码实现统计分析 其代码添加方式共有三种 1 gtag js 基础代码
  • 个人网站搭建 04——WebHooks 实现远程项目的自动部署

    环境说明 Github 或 Gitee 维护的网站代码 支持 Webhooks 由于 Github 访问速度受限 易出现超时问题 我使用 Gitee 部署代码 Linux 公网服务器 阿里云 腾讯云 华为云等 服务器操作环境为 CentOS
  • Windows环境下 Redis RDB持久化无法生成dump.rdb文件

    Windows环境下 Redis RDB持久化无法生成dump rdb文件 问题 删除dump rdb文件 配置redis windows conf的SNAPSHOTTING 设置在60秒内进行了5次操作 即写入rdb文件中进行持久化保存
  • spring cloud 版本错Cannot resolve org.springframework.cloud:spring-cloud-starter-openfeign:unknown

    Cannot resolve org springframework cloud spring cloud starter openfeign unknown 说明 创建spring cloud项目后依赖错误 原因 版本错误 如下图 有些博
  • 怎么进入项目后台服务器,项目部署并常驻在服务器后台

    前言 上一次文章是自己的博客项目正式上线 这次分享 怎么让自己写好的项目常驻与服务器后台 在这之前 先了解一下服务器部署项目的一些环境依赖问题 服务器部署项目时 你的项目用到了什么环境 就要在服务器上安装相应的环境依赖 一般常要安装的就是M
  • 二进制颜色代码大全(含图)

    二进制颜色代码大全 可供大家开发时参考 FFFFFF DDDDDD AAAAAA 888888 666666 444444 000000 FFB7DD FF88C2 FF44AA FF0088 C10066 A20055 8C0044 FF
  • 如何证明凸函数的局部极小值为全局极小值

    最近上系统分析这门课的时候 老师提到了这个概念 当我们能够确定凸函数的局部最小值 这个最小值即为全局极小值 但并未给出证明 这里记录一下 主要用的还是凸函数的定义 凸函数区间任意位置的函数值小于两区间端点函数值之和
  • c#客户端Kafka的使用方法

    简介 Apache Kafka是一个分布式流处理平台 最初由LinkedIn开发 现在是Apache软件基金会的顶级项目之一 Kafka能够处理大规模的实时数据流 支持高可靠性 高可扩展性 低延迟和高吞吐量 它主要用于构建实时数据管道和流式
  • Pycharm debug 的使用

    Debug 作用的理解 若整个代码编写没有错误 且执行体没有设置断点时 Debug同正常运行模式 直接得到最终结果 当某一行代码设置断点后 在Debug模式下 代码会运行断点之前的所有程序 在断点处暂停 并在 变量窗口 可以查看所有主程序当
  • C#学习笔记:RadioButton控件与CheckBox控件的用法

    一 用途 1 RadioButton控件 单选按钮 当与其他单选按钮成对出现时 允许用户从一组选项中选择单个选项 也就是说 当同一个容器中 Form Panel GroupBox PictureBox等 存在两个以上的单选按钮时 只能有一个
  • C#对象和类--习题(1)

    1 一个景区根据游人的年龄收取不同价格的门票 请编写游人类 根据年龄段决定能够购买门票价格并输出 class XiTi string name int age void Xiti1 for 死循环 类似的while true Console