新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

《新大榭》- 创大榭地方网络社区先锋品牌 新大榭始终专注于地方网络社区平台的建设 关于我们- [大记事]- 留言建议- [新手报道]

发布 .新大榭软件管家(Excel版) V5.9版 财务/仓库/生产/销售/采购/行政/人事/校园 .公告 - 客户 - 打赏 - 职场 - Excel - Python.

新大榭镜像-音乐-法律-图书-高中课堂-实验 广告是为了能更好的发展 [欢迎商家支持本站互利共赢] 广告位招租.首页黄金广告位等您来!联系 13566035181

新大榭论坛 门户 查看主题

7458 - [D]设计一个外币与人民币换汇应用程序

发布者: admin | 发布时间: 2021-7-24 17:21| 查看数: 596| 评论数: 0|帖子模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!

您需要 登录 才可以下载或查看,没有账号?注册

x
设计一个外币与人民币换汇应用程序,要求能够输入的汇率h和外币金额s,换算成相应的人民币金额r。
) c# p$ h; Q( |) h, ?' v5 p
本题是一个综合性较强的实际问题,教师要引导学生从以下几个方面思考:/ z; z# v- l0 Y6 c3 {/ T
(1)如何收集外币与人民币换汇汇率?采用何种数据结构存储汇率数据?
( ^! ^: n7 s! |* n$ S, k(2)需要哪些变量?如何计算换汇金额?2 K' P' }) r) O0 w* U
(3)如何设计循环控制条件实现多次查询换汇汇率功能?

% S. S( g$ x( B
/ G$ f# r: e6 f4 [
  1. # -*- coding: utf-8 -*-& q7 M8 t: \6 |2 R$ R0 {# n( k
  2. """$ I/ i8 R4 s  L9 @% D. a
  3. Team: 新大榭  {" i) ~6 X- c4 a) H
  4. Author: 张黎斌8 ^3 V3 w, t( }- K; W8 T
  5. update: 2021-07-24
    5 W" b' b! T* {- O6 }1 }$ ?
  6. Level: D$ ~, a, l6 u( P2 s7 c3 r6 M

  7. 3 Z+ p3 m0 b5 u2 Y
  8. 设计一个外币与人民币换汇应用程序,
    6 G3 f6 N/ i) @5 Z3 J2 F, m- n
  9. 要求能够输入的汇率h和外币金额s,换算成相应的人民币金额r。* {6 b" T6 O! y* _
  10. """
    & N5 x0 Q$ ?3 [
  11. #版本1:直接输入汇率h和外币金额s,显示相应的人民币金额r* g: o/ H+ v8 n
  12. def exchange_1():
    6 @8 Z1 p8 }6 V0 E% X
  13.     h = float(input('请输入汇率:'))6 d) H9 Y  M" z; C+ Q
  14.     s = float(input('请输入金额:'))# H! u( f/ [# ]* r$ j+ K
  15.     r = h * s2 G' S+ w# h: w7 i
  16.     print(f'汇率为{h}的外币金额{s}元可以兑换人民币{r:0.2f}元')6 |2 h7 K$ x7 H: ?
  17.     $ Y9 E1 U$ |6 ?; @$ v4 Z" R
  18. #版本2:直接输入外币名称m和外币金额s,显示相应的人民币金额r- A7 |0 {% n* t. c0 x& [8 c
  19. def exchange_2():4 D* B% A2 s& g; ^: z
  20.     f = {'日元':0.0605, '欧元':7.6320, '台币':0.2197, '美元':6.7201, '韩元':0.0059,
    9 w6 L2 ^2 ~5 c8 n6 c* `
  21.          '澳元':4.8492, '瑞士法郎':6.8835, '英镑':8.7562, '印度卢比':0.0956, '越南盾':0.0003}
    7 n2 w8 Z% }: O8 U" l
  22.     print('各国汇率信息如下:')! s0 S1 y2 D0 `' ], A: [5 `; i/ W
  23.     for k, v in f.items():
    : C! Z2 r3 J4 J1 _
  24.         print(f'{k}:{v}')
    8 I- `" w8 j. J! m7 W, v4 {+ t
  25.     name = input('请输入外币名称:')#直接回车结束查询7 S) Q% S* c8 r+ F8 T
  26.     while name:0 g( I1 [$ N. K  A6 Q' k4 u
  27.         if name in f.keys():4 h  b+ E1 S  U$ l2 _: w$ j
  28.             s = float(input('请输入金额:'))
    ! e0 ]# m! C, l3 E) V5 z
  29.             r = f[name] * s! E3 k" s3 ?0 e7 s/ z( p
  30.             print(f'{s}元{name}可以兑换人民币{r:0.2f}元')
    9 }+ l  n4 X# T+ G$ a6 p4 X
  31.         else:
    / [# Z2 \( x! ^; I; r6 s
  32.             print(f'{name}不是正确的外币名称!')' x, Y' k3 }0 |( f3 V
  33.         name = input('请输入外币名称:')
    8 x; K+ p; b# \. ^
  34.     else:! J8 U. W. U: v2 c2 y; z
  35.         print('查询结束!')
    " V+ T$ [1 K$ @1 A2 U
  36.         
    , i9 ~* S2 u' t) g8 J
  37. #版本3:从文件读取汇率信息,支持模糊查询外币名称
    / b& d8 F9 G6 s8 M$ x" M) E  `: r
  38. def exchange_3():; ^& T8 f4 A; O7 k0 ]
  39.     f = {}. S" x) P+ R- v; c! R7 d
  40.     with open('7458:人民币兑换列表.txt', 'r', encoding='utf8') as fo:
    0 H8 b1 J% |9 n# s8 x
  41.         for line in fo.readlines():#依次读取每行  ; D% {3 y- g4 J1 I3 h, W( }
  42.             line = line.strip().split() #去掉每行头尾空白
    * O" ], w* w+ ^6 Z: s
  43.             f_n = line[1].split('(')#只保留外币名称4 U7 Z0 k: ?7 ^4 l6 p! B
  44.             f[f_n[0]] = float(line[3])! K- X* N5 z! H6 w6 z; |0 Y! y
  45.     print('各国汇率信息如下:')4 [3 `/ \- i4 \' w5 E
  46.     for k, v in f.items():
    + E8 a: d+ W# q% s# ^. X! X2 j
  47.         print(f'{k}:{v}')2 @& _1 c# b7 T
  48.     name = input('请输入外币名称(支持模糊查询):')#直接回车结束查询
    : a  e( y+ m3 t4 C0 d5 X# l7 ]
  49.     while name:
    ! A# k/ j' m% K8 i* T( k/ A1 W
  50.         f_name = []( l) M/ w) G' ^) d; ?% n. k9 Y
  51.         for f_n in f.keys():( w- S" j: j& W  y& O7 _  `3 z
  52.             if name in f_n:
    * f5 R9 p# i! m! q+ s
  53.                 f_name.append(f_n)
    " |- U1 y9 s7 Q* `0 z/ Y
  54.                
    # {7 o; M( A7 ^+ u0 j
  55.         if name in f.keys():- e2 |0 s! q2 _" V0 ~
  56.             s = float(input('请输入金额:'))
    8 t3 R7 O2 v5 j9 ], j. S. x: `
  57.             r = f[name] * s
    . o% [2 V) u2 g- z7 s3 e, A
  58.             print(f'{s}元{name}可以兑换人民币{r:0.2f}元')
    * \, f- E5 ?" M, P
  59.             name = input('请输入外币名称(支持模糊查询):')#直接回车结束查询
    : A5 Z; E" O. P) q$ q( c
  60.         elif f_name:
    ( q+ T; C! y& U6 d
  61.             print('你查询的外币完整名称如下:')8 q3 e$ X* i- t- c) E
  62.             for f_n in f_name:
    ! I$ m8 v1 e: S- M* |9 c$ y" O" Z
  63.                 print(f'{f_n}:{f[f_n]}')
    ) K3 B2 S/ n, }1 M% I+ Q2 J1 n
  64.             name = input('请输入完整的外币名称:')#直接回车结束查询+ W3 |4 s: D& b
  65.         else:, {1 x! C( t( u5 [, R7 }/ A
  66.             print(f'{name}不是正确的外币名称!')
    6 J% s. Q; X8 V, ?. \% f4 S8 s7 N
  67.             name = input('请输入外币名称(支持模糊查询):')#直接回车结束查询
    0 ?: v) y2 U( k; n0 l+ e! Q
  68.     else:
    / T4 q; {1 n( y4 g6 r9 W$ D
  69.         print('查询结束!')) |6 \# P4 G# l; R/ G
  70.    
    ! {) F$ z3 l" x& M$ p7 X) v8 |
  71. #exchange_1()
    % \9 C* r. e; `. Z& N8 e! ~- Z+ N
  72. #exchange_2()& k/ q. {4 _* ~% {0 D- L8 A( D) ^
  73. exchange_3()
复制代码
; C' y# W( X7 n1 v8 o) v: D4 D

7458:人民币换汇.zip

3.96 KB, 阅读权限: 10, 下载次数: 0, 下载积分: 财富 -1 点

售价: 1 个金币  [记录]  [购买]

最新评论

新大榭七周年,感谢由您!

文字版|小黑屋|新大榭 ( 浙ICP备16018253号-1 )|点击这里给站长发消息|

GMT+8, 2025-7-2 15:02 , Processed in 0.085750 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表