SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3236|回复: 0

[原创] 测试联系题(一)c代码单元测试

[复制链接]
发表于 2012-7-5 13:39:45 | 显示全部楼层 |阅读模式
  1. #include <stdio.h>
    1 G  @' N$ s9 r1 l
  2. #include <stdlib.h>9 L5 |! d0 M' ~
  3. #include <errno.h>
    / v; l2 y, s+ @8 B, [6 Q8 f5 f
  4. #include <string.h>  J# F0 O0 A% l- f& k

  5.   }3 v, w1 F, t6 y0 W
  6. typedef struct _GOOD_ST_
    % w+ ~' M( G! P3 J, \2 P8 j2 W* t
  7. {" d9 L* T% p# e1 c  \
  8.         //饮料结构体4 M. e. e" Y( R1 v4 q
  9.         char numNo;         //货号
    5 ^" @" p0 E0 D9 O% m" _3 x  E
  10.         char name[16];        //名称( ?& X1 z$ M8 x8 k5 a6 m8 F
  11.         char sumKept;        //余量
    7 C  t( w* Y' `
  12.         char sumSold;        //销量
    / ]7 w7 l: k/ u* K& A
  13. }Good_st;* F2 Q, G7 l( ], [

  14. $ w! V7 F, a; G5 i4 S
  15. typedef struct _VENDOR_ST_
    ! g  f# }$ i0 u. F2 j4 N1 l4 q2 i9 O
  16. {( H0 c5 A+ i$ k$ Q8 ^2 l( h- A
  17.         //售货机结构体
    * Z( i, K0 n, |! O: h' g  @
  18.         char coin5j;                //5角硬币1 M; {( [4 D, V
  19.         char coin1y;                //1元硬币
    $ Q  X" d2 B7 b* b# g* W9 O' X$ X
  20.         Good_st goods[8];        //饮料
    4 V, R5 e$ t( X8 v0 c& I. g
  21. }Verndor_st;
    ; z/ t/ P( g* X& h1 A$ F9 H

  22. , D- \: R' ?) x$ R

  23. ' Z3 h- w3 u9 p; f6 c" Y' c

  24. 8 [9 o! C5 V8 D3 R2 A
  25. //定义一个全局变了 售货机
    & I3 t/ v) C3 B' e1 \
  26. Verndor_st vendor;7 D$ L: w; E- m" W. d7 d

  27. / u* V2 \1 |# w
  28. //读取售货机的初始配置,返回0表示初始化成功,否不成功
    & m9 c9 m9 ~8 j6 Z
  29. int readConfig();
      P$ G* K1 [4 C3 F
  30. //显示欢迎信息
    ' z2 c7 ?, S0 S) @1 G4 J: b# K
  31. void pWellom();% b) _6 L0 T! X7 Y4 w6 I' H9 ~
  32. //显示货物清单
    7 @8 U9 o. V4 I6 j1 E$ O
  33. void pGoods();
    0 D- f) a0 r4 l" b% m/ t
  34. //显示投币信息! b. T& A+ M4 u, A7 W7 `, {3 H
  35. void pCoin();( F6 I5 C: d/ ~3 i1 s  K2 T
  36. //统计售货机中的货物数量,返回统计饮料输了& `- S5 O9 {3 j, X! n6 W5 c
  37. int countGoods();
    ! W3 T/ m- x- t* x) e! J# d) h& ~
  38. //显示取零钱
    1 l: U- J  y. g' A
  39. void pGetChanges(int change);
    8 N0 ]' B- p  I" {
  40. //显示取零钱
    3 {( o# b  H7 F" {* E& o
  41. void pGetGood(int good);$ A' [2 e2 l3 D/ {2 h3 w' B9 d
  42. //结算,输出找零9 u: H$ V$ A  G8 J; _: O8 m
  43. int checkout(int coin, int good);
    " U: d, K9 `' ?- J
  44. //保存售货机配置5 ]' V) c' f) N4 Z5 f( U
  45. int saveConfig();  Y6 D8 z' O7 G7 y) h. D
  46. - V- B) |* e+ Y

  47. ! T/ w( H& j7 |* S. R1 r0 I9 U

  48. / w/ R- Z2 f& Y3 D/ M
  49. int readConfig()2 _1 ]5 p) R" D+ n* a
  50. {
    " t, `7 M  a- \; @
  51.         //读取售货机的初始配置5 Q1 w$ g0 r  y  ~' g0 g
  52.         FILE *stream=NULL;$ N0 h% e8 p+ m) [# ]5 R
  53.         size_t num;2 ^- V0 \" |; I. Y$ h% ^/ `6 `$ C& X
  54.         int result=-1;
    1 y. F; K0 l% K$ C0 U! I
  55.         stream=fopen("vendor.cfg","rb");& q5 \* L) i! h5 M9 h
  56.         if(NULL!=stream)
    4 Q, u. {* t1 G4 `7 i
  57.         {- l' e' w6 G7 B5 T+ U3 x& A
  58.                 num=fread((char*) &vendor, sizeof(char), sizeof(Verndor_st), stream);7 H1 T: r: |" O) F2 f
  59.                 if(num==sizeof(Verndor_st))) M# g0 V6 V/ d
  60.                 {
    8 [9 Q) ~& Y" }' h; Q
  61.                         fclose(stream);. u  V. X% `2 [9 x4 l
  62.                         result=0;6 O" |# }, S- D- s: p1 ~9 @
  63.                 }
    5 b2 U+ P9 N1 u( m2 ^6 _+ i
  64.                 else+ r) O1 g4 ?, M" ?
  65.                 {( i( _' H* x# ~
  66.                         printf("Error read the file vendor.cfg.%s\n", strerror(errno));
    2 \8 v* C% o. r# t& z" Y$ v: T7 Z
  67.                         fclose(stream);
    , _" h! ?; C7 `
  68.                         result = -1;
    9 C7 ]8 `7 Z6 w0 T" z9 [
  69.                 }
    ( u! c# K. I$ u2 ^
  70.         }
    " ]. A2 N) [* P9 j0 i1 W# C8 d
  71.         else/ ]' \+ C7 f0 l, s1 l
  72.         {. K2 o# Y0 N' M3 u; J! E
  73.                 printf("Open Config file vendor.cfg Error! %d-%s\n", errno, strerror(errno));
    : u, C$ O& P9 L' G' k8 {
  74.                 result = -1;! O: Q# U9 E# k5 L& b
  75.         }
    % T2 ^7 Q' q& F$ o
  76.         return result;2 y, r3 ^' N( B
  77. }" D3 `( {3 g  ~6 s& F5 v/ Y/ O3 s
  78. # h& m& P1 i. y1 q8 B: H

  79. ( X" |" }, V& p( A
  80. void pWellom()2 |0 o* N4 k) _  N( X
  81. {. g8 q5 j& j6 d: i
  82.         //显示欢迎信息
    3 ~5 e2 S: ?, b9 V; e
  83.         system("cls");, D) T7 y6 o- M% v
  84.         printf("\n=================欢迎使用自动售货机=================\n");1 n& f5 H; F$ U4 y3 P
  85.         printf("=================本机所有的货物都是5角\n");
    , I( Q9 O2 h8 i) @
  86. }
    / L7 y. C; U% ~4 `# T# F2 J( F

  87. 4 n" _/ X# V) I" Y: z/ M" c
  88. 7 C; \: _! `" N; j) P5 K
  89. void pGoods()
    ( \" t, X9 w" ?# d
  90. {9 B3 ?1 K2 t* H$ Q* [
  91.         //显示货物清单
    ; v8 r3 s8 d  i% r
  92.         int i;
    ' j" W3 d; r- n: j4 s8 f
  93.         system("cls");7 v0 G  D4 d# K" \
  94.         printf("\n====饮料清单=======================\n");
    7 W" L" h, \" o- R3 t
  95.         for(i=0;i<8;i++)
    ; z! ]3 @! x' n1 \7 O( |' R
  96.         {
    9 ~7 u; t/ o! D  T4 ?, ^
  97.                 if(vendor.goods.numNo!=0 && vendor.goods.sumKept>0), ~' B. x( b/ @2 s4 }
  98.                         printf("%d: %s  %d\n",vendor.goods.numNo,vendor.goods.name,vendor.goods.sumKept);
    3 V! _' Q# o2 p' t) D' w
  99.         }* P8 V0 `! X% y
  100.         printf("\n====请选择饮料=======================\n");
    " c: h) _! f! G
  101. }9 s4 c1 J/ Q8 C$ F( m

  102.   j' I" G2 G( A6 U
  103. void pCoin()2 J" l% U4 F- ^) u  A: ^
  104. {2 N. b* R0 i( [$ r( i
  105.         //显示投币信息. l6 J2 |, a3 z( v6 S
  106.         system("cls");. t7 G, m9 w9 G5 E* L. W
  107.         printf("\n====本机器只接收5角和1元的硬币=======================\n");
    0 ~3 |, M& I% P# x, O% f
  108.         printf("1: 5角\n");
    5 N+ \5 [  i; {( r& B' g9 x6 t
  109.         printf("2: 1元\n");
    $ P- @* X# q# z: \
  110.         printf("\n====请投币=======================\n");
    ( Z! r2 D+ N( _7 Z
  111. }& {- T  Y$ e) t2 g9 f: L9 w' ^

  112. ) S4 w, c5 ]; ^* x
  113. int countGoods()
    # u) Z3 v/ c. h2 U" E, A
  114. {
    % T+ y0 F4 ~" [( p
  115.         //统计售货机中的货物数量! y. W% a5 c8 Z4 F* U) E) W$ S
  116.         int j;
    . C/ I9 L& ]" X/ @6 W
  117.         int result=0;
    + O' K% B2 M5 d
  118.         for(j=0;j<8;j++)' x- W2 R$ {7 C% Q
  119.         {
    " `$ O5 a- ^& s& k
  120.                 result+=vendor.goods[j].sumKept;/ \* Z& E$ G- P" b$ l' H
  121.         }' u5 Y  u+ K/ E; i
  122.         return result;" I6 U# p6 _* q* Z6 L
  123. }- v/ `1 a3 ?- z& |& c
  124. % q. J  d! ^( K* I
  125. void pGetChanges(int change)
    ) r) W1 m$ S7 ?0 r0 }+ m% {# I
  126. {
    ' ^/ w% Q( H, A1 u
  127.         //显示取零钱8 _2 h9 M3 m/ ?# p( T
  128.         system("cls");
    ( r3 R. G: O9 j  ]0 \
  129.         if(change==2)
    0 \) p9 q' S" q; N
  130.                 printf("\n====请取退款: 1元 ===============1========\n");
    # ~( }8 s! U, i, F& J
  131.         else
    , I+ Z/ m2 }1 x+ A* ^; d
  132.                 printf("\n====请取零钱: 5角 ===============1========\n");$ F3 H9 Y) w# q+ z1 d
  133. }& P* M% ?, p4 i. ]0 E2 E

  134. ! D3 R  S4 I0 x* w
  135. void pGetGood(int good)* j( C8 z6 f" f/ g* o
  136. {1 S7 N% k" Y/ D9 z# [
  137.         //显示取零钱- Z/ ?0 j& ^4 L. O* L: |
  138.         system("cls");& p# ~  a# L  W' J3 v* o
  139.         printf("\n====请取饮料: %s =============1==========\n",vendor.goods[good-1].name);
    2 l0 M3 W) Q# I' {7 d' P
  140.           I" c8 j5 t" t5 z
  141. }6 A* l' Y. Z" Z' P

  142. % N0 l5 j1 e* l/ J
  143. int checkout(int coin, int good)( y1 F* L/ [9 |, R/ [+ m, E
  144. {
    ; \7 X5 i/ Y7 U* w/ D
  145.         //结算
    $ m7 q3 d! Y8 e5 d
  146.         //输出找零
    . g$ t, `- y) @0 v
  147.         int change=0;$ s. a! X2 [' ^8 w" `( h( K
  148.         if(coin==1)3 L) B6 \( R% g* J" S/ v
  149.         {
    2 H, l# y6 _6 R$ [0 ~
  150.                 //5角
    $ `( z& O7 v! E6 y0 s
  151.                 vendor.coin5j+=1;$ H/ `9 `- U" o* X. l2 v% y/ @
  152.         }3 G2 H3 e* O% `2 p# b  D* J5 H
  153.         if(coin==2)
    7 ]4 O; i( X- n
  154.         {
    7 I0 Y8 t2 }+ x' T% J4 U% l
  155.                 //1元
    ' N! h6 q: A/ T6 @/ [1 C; T$ {+ N
  156.                 vendor.coin1y+=1;2 L. r7 t$ H& |7 B9 `
  157.                 vendor.coin5j-=1;* p; d# Z& x! B. y% h
  158.                 change=1;        //5角零钱
    - c4 c0 j# {/ f7 }9 b
  159.         }
    # E- P& s5 m9 D9 u

  160. 7 o; P7 o1 B, |. o3 L' j
  161.         //出货
    0 A* l$ i0 d1 B8 ]
  162.         vendor.goods[good-1].sumKept-=1;" ]" p- G, G7 \
  163.         vendor.goods[good-1].sumSold+=1;        9 t$ ~, I$ y. h( v' q

  164. ; f: U' w' ~2 c0 ]& a6 }' y/ p/ B

  165. 5 Q7 j' t5 _5 G: M
  166.         return change;# G* L8 e/ P5 s, n
  167. }. C6 o; U  N* g' V8 t" f) a
  168. - p' F3 \: P& U7 a, U' `1 W

  169. - r$ n& I+ k/ x4 k
  170. int saveConfig()
    . v. r- @2 ]) z' d+ y5 U6 V
  171. {, D4 h) z, g0 c7 B: D& |# U9 J
  172.         //保存售货机配置5 m1 Y, v: Q- S& C) L
  173.         int result;
    % n! m; T2 H# l
  174.         FILE *stream;
    0 }. P7 q: `% N6 ~1 O
  175.         size_t num;# d  ^8 |  b8 M0 E, K
  176.         stream=fopen("vendor.cfg","wb");
    5 o0 ^% h$ j( A( _5 I; K
  177.         if(NULL!=stream)( g8 k' u. d0 i9 f& r
  178.         {" E  N/ Q3 L) O8 w& x
  179.                 num=fwrite((char*) &vendor, sizeof(char), sizeof(Verndor_st), stream);
    4 L0 H: B% l/ N' F* \" P
  180.                 if(num==sizeof(Verndor_st))
    ' y  l1 K) E: S* t( W. W
  181.                 {
    2 z% G# ]& ?8 G- D
  182.                         printf("\nwrite %d bytes to the file vendor.cfg ok!\n", num);
    8 t* h; x% h; D) B
  183.                         fclose(stream);
    9 ~, M, k2 ]( }6 ?
  184.                         result=0;2 K' N$ ^9 A# z  ~' i# _
  185.                 }) c9 }# P! b1 {" V5 a
  186.                 else$ q; b+ U8 N2 L3 C
  187.                 {& J  s# c. Z6 {) p( {
  188.                         printf("Error writing to the file vendor.cfg.\n");# r: E3 ], ]! T! u
  189.                         printf("\nWrite %d bytes to the file vendor.cfg ......\n", num);
      u4 C' ]$ w* t# g8 I: x5 j
  190.                         fclose(stream);9 l- N7 k$ w# i, }5 r
  191.                         result = -1;$ F: O' x8 F# M: t9 A
  192.                 }
    / K8 _9 p5 ~! i+ v
  193.         }: E/ l+ d, C/ R
  194.         else
    # f. E2 X7 Z7 Z4 \/ m4 _
  195.         {0 q% X7 O  q( _" ~) s) y& |
  196.                 printf("Open Config file vendor.cfg Error! \n");% K) R: u1 N& Q! \! y
  197.                 result = -1;
    / z( c7 m, N& l# w
  198.         }5 f4 X2 L& U3 j7 s6 e- }$ i, R/ j
  199.         return result;2 N, k1 O2 M+ S' x9 h) `0 @
  200. }' {" a( O' Y& W0 C7 K8 {
  201. * \; w9 {& x) b) q3 ~1 S
  202. - E0 i1 s$ t0 Z9 ]- c9 k7 i
  203. int main(), Q; R2 p# @! k
  204. {
    4 A0 k: @' Z6 F9 \! v$ s
  205.         int change=0;        //找零0:不找;1:5角;2:1元
    ! T: x" a  c! R4 v2 _9 _- x" z
  206.         int coin=0;                //投币选择0:没有投;1:5角,2:1元
    , u, Q5 c# W  R! L! W
  207.         int good=0;                //饮料选择0:没有选择;1:啤酒,2:橙汁
    % t4 g2 W& t8 U& I2 L
  208.         int sumGood=0;        //货物剩余量
    7 T: R; e' W' g0 R
  209.         int getcoin=0;        //取零钱,1:取了0 k: k- @8 T/ s& p& s, J
  210.         int getgood=0;        //去饮料,1:取了
    " Y) Z% f  L) Y

  211. ( d% y& W$ l# C9 a8 O

  212.   @, q2 j+ \! s$ d
  213.         if(readConfig()==0)7 g0 ?5 Y# B8 M& [! p& o9 \
  214.         {
    % E9 j* a6 ^; \/ z4 q- ^2 U
  215.                 //欢迎' z, d& I# b+ O0 s1 H
  216.                 pWellom();6 z/ v& R8 b. D6 r
  217.                 sumGood=countGoods();: k* @2 o2 f- t' T. M8 r
  218.                 if(sumGood<=0)2 d- E4 r( i& q( V2 k7 {/ c
  219.                 {        //判断饮料是否卖完了" d) A9 u' z% u- Q% h
  220.                         printf("\n饮料已经售完,本机暂停服务!!\n");
    0 ~& [' J2 d$ f) E7 F3 A6 V
  221.                         //break;
    , O, ?# J% G1 T3 P8 P6 g  t
  222.                 }
    - M3 a. n% h! O" e& {
  223.                 else0 a3 I- \" P7 l  z5 c
  224.                 {! Q/ Y, d, p0 n0 b. u  u
  225.                         while(sumGood>0)
    + A; }8 {( H5 [$ R  `
  226.                         {! N6 J1 i. z6 t$ X" L" @
  227.                                 if(vendor.coin5j==0)
    8 u6 {" ^- q, K3 q# P! a# O8 C
  228.                                 {//判断是否有零钱( `1 ]' Z( l8 n. a
  229.                                         printf("\n本机没有零钱,请不要投大额硬币\n");
    . l: a" U) O0 ?; I: o7 c. K
  230.                                 }
    5 q4 H1 Y  m  {( @5 d& q4 U
  231.                                 
    8 b/ Q: D$ Z4 l( r( N$ `. W
  232.                                 //投币$ A7 ?% g  A; s
  233.                                 while(coin!=49 && coin!=50). {; B+ j' l# G, ^
  234.                                 {% P0 J6 o" ^; z/ d
  235.                                         //提示投币
    ! c' W6 r! |+ `7 S* ]
  236.                                         pCoin();6 e/ N9 L1 r7 `' Q) S" [3 [8 j
  237.                                         coin=getch();7 L6 C9 {$ e. Y( H3 T& l2 i
  238.                                         //printf("coin=%d\n",coin);
      O2 j+ p- E: l" W% v, a1 B
  239.                                 }* \$ b, d0 X/ }+ K( U1 v
  240.                                 ; e; C  Q% y9 Y3 }) O
  241.                                 //如果没有零钱,且投入的是1元,则直接退钱$ M/ u0 }. }3 ^' Q- [( v, c1 n, d
  242.                                 if(coin==50 && vendor.coin5j==0)9 S+ B0 N# k: v/ y) O" ~
  243.                                 {9 g" m1 Z  ?* ]9 o  c  c
  244.                                         change=2;
    ; H, u: Y. Z1 G! [. Z) S
  245.                                         //退钱
    ' d6 y8 A) W9 ~0 D) W' c  l) E  M
  246.                                         while(getcoin!=49)' X6 C* [% {7 X
  247.                                         {/ b! n; \% a- E; b, i, J+ j& [$ ~& Q; C
  248.                                                 pGetChanges(change);9 L1 w7 n6 Q# @
  249.                                                 getcoin=getch();9 D8 E4 ~9 o# \% _4 _3 C/ s- |
  250.                                         }6 a, m9 m) x$ ~
  251.                                 }. d. Z7 M% }2 v8 }' I% E
  252.                                 else) {$ ~$ }. e% l. |! M' q3 P* [  E
  253.                                 {0 v4 I" Y- b/ V: @
  254.                                         //选饮料1 `5 Y5 a8 L+ d4 I& }* f- c
  255.                                         while(good!=49 && good!=50)
    - C8 v  e  B6 C" F  b
  256.                                         {
    " A" P7 L" d! c  I8 J
  257.                                                 //提示选择饮料
    6 x8 R8 p+ X% h2 o  A; b& W' w6 K
  258.                                                 pGoods();                                                1 v2 s9 }) q7 `& e0 ~: }
  259.                                                 good=getch();
    ( Z9 O! E$ _8 G5 _
  260.                                                 //printf("good=%d\n",good);2 a# _* X# a# v7 u" `, F
  261.                                                 //printf("coin=%d\n",coin);
    ( t0 j; ^% ^. H0 O) {5 q
  262.                                                 if(good==49 || good==50); O" j: L$ {: w' D! N
  263.                                                 {# ?0 G. O' E. }! H
  264.                                                         if(vendor.goods[good-49].sumKept<=0); P: k8 d. D1 x" ^" d" f
  265.                                                         {3 T+ b* j& z3 m! {2 v! Y7 m
  266.                                                                 good=0;9 S1 I% U8 k- \4 @* G
  267.                                                         }- Y+ O% l6 z" k+ L0 t, [4 k
  268.                                                 }) ~7 H- F& z9 t/ B
  269.                                         $ D$ B6 f. r+ T$ |8 T; H" F+ _" A
  270.                                         }
    3 H3 G* M% t( `

  271. % S* E" K& L8 B
  272.                                         //结算
    3 _9 U7 r- I+ S' l1 r5 q) y2 [
  273.                                         change=checkout(coin-48,good-48);/ S% W- b. K0 y- P" w: h3 Q- Y
  274.                                         if(change>0)% M. Q1 [" j! Q# c# `+ g. F3 t1 B2 W
  275.                                         {//找零
    , [& U; W+ g. m( b. o6 ?1 B. c
  276.                                                 while(getcoin!=49)
    " G7 h' n" U+ @9 p' v4 C
  277.                                                 {
    3 z. u; a. Q) X+ }' U; o/ J
  278.                                                         pGetChanges(change);) G( Y# `! f  L6 d( f, U0 b+ D
  279.                                                         getcoin=getch();& C, }' S+ Z6 d& X. f$ f0 v
  280.                                                 }
    7 K# H2 a+ U9 Z
  281.                                         }* J* a/ c/ ^2 R4 H/ t
  282.                                         while(getgood!=49)
    6 C: b- Q: \: A: F6 h' q: m
  283.                                         {( N$ d% W" q- ~0 L% p1 s5 L8 k
  284.                                                 //出饮料' J! F# p! c4 U+ E* A) K0 y
  285.                                                 pGetGood(good-48);
    / Y9 K) D5 s* H
  286.                                                 getgood=getch();& U% q, Z' \1 T, v! ]6 `
  287.                                         }$ u3 G8 Z+ W6 ?
  288.                                 }$ a: ^4 k4 e! G) v/ A% A0 k
  289.                                 //重新开始
    6 V  C7 W8 ]2 ]
  290.                                 change=0;
    . d  O; N9 M3 X# s  s4 n
  291.                                 coin=0;        
    ( P  b+ y# z0 H+ u- O. M9 l; D; K
  292.                                 good=0;        
    : Q/ H1 @# z9 h6 j( P
  293.                                 getcoin=0;
    3 F5 v6 v; a7 l. N7 j/ ]* |
  294.                                 getgood=0;
    & C" B/ M& T  y3 F
  295.                                 sumGood=countGoods();
    6 h6 a9 |; _* A% }; m" ]5 _
  296.                         }8 `" L0 G) n" Y% b) i7 z- w
  297.                 }, q: W% o( g8 B, R5 ]/ H
  298.         }: U' x: h/ @( b7 r  B7 t- V
  299.         else! y* x; s, q3 s2 [$ j: p
  300.         {& ?3 M0 M( Y/ h$ L# p
  301.                 printf("售货机系统退出了");
    ' ?2 T' Q! o5 z
  302.                 printf("。。。。3秒后退出。。。。");4 Y& j/ q7 \: @7 i9 }! G
  303.         //        sleep(3);
    2 Z8 b: ?0 T, T4 y1 b( I
  304.                 system("cls");
    & m* {- T8 A! T- P6 m
  305.         }( P# C5 ~: _3 Y& x7 I
  306. 1 s* d; v4 \! q" E
  307.         return 0;6 X3 x6 [2 |# U& E; Y

  308. . t) K, d# H# P. ^
复制代码
这是我写的一个模拟自动售货机的c代码。有兴趣的同学可以用来练习测试。如:使用RTRT来做单元测试,逻辑覆盖,代码走读等。
  v5 Y7 c# [- Q. E
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2019-8-26 03:56 , Processed in 0.078765 second(s), 12 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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