zoukankan      html  css  js  c++  java
  • shell 基本编程 打印菱形 三角形 乘法表

      1 #!/bin/bash
      2 #########################################################################
      3 # File Name     : print_start.sh
      4 # Author        : uc
      5 # Created Time  : 21 Sep 2016
      6 usage() {
      7     cat <<EOF
      8 
      9 EOF
     10 }
     11 
     12 
     13 main() {
     14 
     15     echo "请选择要打印的图形:"
     16     echo '#########################################'
     17     echo "1,99乘法表"
     18     echo "2,三角形"
     19     echo "3,菱形"
     20     echo "4,随机打印"
     21     echo '#########################################'
     22     echo ""
     23 
     24     read -r -p "输入要打印的图形:" difficulty
     25     case $difficulty in
     26         1)
     27             for ((i = 1; i < 10; i++))
     28             do
     29                for ((j = 1; j <= i; j++))
     30                do
     31                   echo -n "$j" '*' "$i ="  "$((i * j)) ";
     32                done
     33                echo ""
     34             done
     35             ;;
     36         2)
     37             for ((i = 1; i < 10; i++))
     38             do
     39                for ((j = 10; j > i; j--))
     40                do
     41                   echo -n " ";
     42                done
     43                for ((m = 1; m <= i; m++))
     44                do
     45                    echo -n "$i "
     46                done
     47                echo ""
     48             done
     49             ;;
     50         3)
     51             for ((i = 1; i < 12; i++))
     52             do
     53                 if [[ $i -le 6 ]]; then
     54                     for ((j = $((12-i)); j > i; j--))
     55                     do
     56                         echo -n " ";
     57                     done
     58                     for ((m = 1; m <= $((2*i-1)); m++))
     59                     do
     60                        #echo -n "$i "
     61                        echo -n "* "
     62                     done
     63                     echo ""
     64                 elif [[ $i -gt 6 ]]; then
     65                     n=$((12-i))
     66                     for ((j = $((12-n)); j > n; j--))
     67                     do
     68                         echo -n " ";
     69                     done
     70                     for ((m = 1; m <= $((2*n-1)); m++))
     71                     do
     72                        #echo -n "$i "
     73                        echo -n "* "
     74                     done
     75                     echo ""
     76                 fi
     77             done
     78             ;;
     79         4)
     80             random_no=$((RANDOM%10+10))
     81   
     82             read k 
     83             i=1
     84 
     85             while [ "$i" -le "$k" ]
     86             do
     87             let ban=k/2+1
     88 
     89                 if [[ $i -le $ban ]] 
     90                 then
     91                    j=1
     92                     while [ $j -le $(( ban - i)) ]
     93                     do
     94                         printf " "
     95                         let j++
     96                     done
     97 
     98                     n=1;
     99                     let xing=i*2-1
    100                     while [ "$n" -le "$xing"  ]
    101                     do
    102                         printf "*"
    103                         let n++
    104                     done
    105                     printf "
    "
    106 
    107                 else
    108                      j=1
    109                     while [ $j -le $((i - ban)) ]
    110                     do
    111                         printf " "
    112                         let j++
    113                     done
    114 
    115                     n=1
    116                     let xing1=k-i*2+ban*2
    117                     while [ "$n" -le "$xing1"  ]
    118                     do
    119                         printf "*"
    120                         let n++
    121                     done
    122                     printf "
    "
    123                 fi
    124                 let i++
    125             done
    126             ;;
    127         s)  
    128             pn=$((RANDOM%10+10))
    129              if [[ $((pn%2)) -eq 0 ]]; then
    130                 pn=$((pn+1))
    131             fi
    132             hm=$(($((pn+1))/2))
    133            
    134            echo "$pn" "$hm"
    135             for ((i = 1; i < pn; i++))
    136             do
    137                 if [[ $i -le $hm ]]; then
    138                     for ((j = $((hm-i)); j > 0; j--))
    139                     do
    140                         echo -n " ";
    141                     done
    142                     for ((m = 1; m <= $((2*i-1)); m++))
    143                     do
    144                        #echo -n "$i "
    145                        echo -n "*"
    146                     done
    147                     echo ""
    148                 elif [[ $i -gt $hm ]]; then
    149                     n=$((pn-i))
    150                     for ((j = $((hm-n)); j > 0; j--))
    151                     do
    152                         echo -n " ";
    153                     done
    154                     for ((m = 1; m <= $((2*n-1)); m++))
    155                     do
    156                        #echo -n "$i "
    157                        echo -n "*"
    158                     done
    159                     echo ""
    160                 fi
    161             done
    162             echo "谢谢使用"
    163             ;;
    164         *)  
    165             for ((i = 1; i < 12; i++))
    166             do
    167                 if [[ $i -le 6 ]]; then
    168                     for ((j = $((12-i)); j > i; j--))
    169                     do
    170                         echo -n " ";
    171                     done
    172                     for ((m = 1; m <= $((2*i-1)); m++))
    173                     do
    174                        #echo -n "$i "
    175                        echo -n "*"
    176                     done
    177                     echo ""
    178                 elif [[ $i -gt 6 ]]; then
    179                     n=$((12-i))
    180                     for ((j = $((12-n)); j > n; j--))
    181                     do
    182                         echo -n "";
    183                     done
    184                     for ((m = 1; m <= $((2*n-1)); m++))
    185                     do
    186                        #echo -n "$i "
    187                        echo -n "*"
    188                     done
    189                     echo ""
    190                 fi
    191             done
    192             echo "谢谢使用"
    193             ;;
    194     esac
    195 
    196     case $random_no in
    197         1 )
    198             ;;
    199     esac
    200 }
    201 
    202 main "$@"
    203 
    204 exit 0
  • 相关阅读:
    Drawing points
    Drawing text
    Drag & drop a button widget
    Simple drag and drop
    QtGui.QComboBox
    QtGui.QSplitter
    QtGui.QLineEdit
    Java-java中的有符号,无符号操作以及DataInputStream
    Android Studio-设置override及getter/setter方法
    Android Studio-设置switch/case代码块自动补齐
  • 原文地址:https://www.cnblogs.com/enjoyco/p/5895377.html
Copyright © 2011-2022 走看看