천진 프로젝트 학생 실천 제 비 뽑 기 문제

재 미 있 는 기업 셸 실전 프로 그래 밍 문제: 좋 은 소식, 늙 은 남자 아이 가 학생 들 에 게 기업 프로젝트 실천 기회 (6 차) 가 왔 다 (이 달 중순). 그러나 정원 이 제한 되 어 있 고 대원 은 3 명 (반장 인솔자) 으로 제한 된다.따라서 학생 을 뽑 아야 하기 때문에 제 비 뽑 기 프로그램 이 필요 합 니 다. 요구: 1. 스 크 립 트 를 실행 한 후에 가 고 싶 은 학생 은 영어 이름 을 모두 입력 하고 난수 01 - 99 사이 의 숫자 를 만 듭 니 다. 숫자 가 클 수록 프로젝트 실천 에 참가 합 니 다. 앞에서 잡 은 숫자 는 다음 에 같은 숫자 가 나 오 면 안 됩 니 다.2. 첫 번 째 로 이름 을 입력 한 후에 화면 에 정 보 를 출력 하고 이름과 숫자 를 파일 에 기록 합 니 다. 프로그램 은 다른 학생 의 입력 을 계속 기다 리 는 것 을 종료 할 수 없습니다.
어젯밤 에 잠 을 이 루 지 못 해 잠 을 이 루 지 못 했 습 니 다. 갑자기 이 문제 가 생각 났 습 니 다. 학생 들 을 환영 합 니 다. 친구 들 의 도전 을 환영 합 니 다.python 배 워 서 만들어 도 돼.독립 적 으로 완 성 된 첫 번 째 학생 은 제 비 를 뽑 을 때 40 점 을 더 합 니 다.
학생 여러분, 박 우 들 의 도전 을 환영 합 니 다. 답 을 붙 입 니 다!
정 답 참고:
[root@oldboy scripts]# cat zhuajiu.sh 
#!/bin/bash
##############################################################
# File Name: zhuajiu.sh
# Version: V1.0
# Author: oldboy
# Organization: www.oldboyedu.com
##############################################################
>/tmp/a.log
while true
do
    while true
    do
        random=`echo $((RANDOM%99))`
        if [ `grep -w $random /tmp/a.log|wc -l` -eq 1 ]
        then
            random=`echo $((RANDOM%99))`
        else
            break
        fi
    done
    read -p "       :" name
    if [ "$name"  == "exit" ]
    then
        echo "    ,    "
        break
    else
        echo -e "$random\t$name"|tee -a /tmp/a.log
    fi
done
sort -rn -k1 /tmp/a.log|head -3

       :
[root@oldboy scripts]# cat zhuajiu1.sh 
#!/bin/bash
##############################################################
# File Name: zhuajiu.sh
# Version: V1.0
# Author: oldboy
# Organization: www.oldboyedu.com
##############################################################
>/tmp/name.log
random(){
    random="$((RANDOM%100))"
    if [ `egrep -w "$random" /tmp/name.log|wc -l` -ge 1 ]
    then
        continue
    fi
}
name(){
    read -p "          :" name
    if [ "$name" = "exit" ];
    then
        break
    fi
    if [ `egrep -w "$name" /tmp/name.log|wc -l` -ge 1 ]
    then
        echo "    ,     "
        continue
    fi
    echo -e "$random\t\t$name"|tee -a /tmp/name.log
}
main(){
    while true
    do
        random
        name
    done
    echo "    ,      :"
    sort -rn -k1 /tmp/name.log|head -3
}
main

[root@oldboy scripts]# sh zhuajiu.sh
       :xiaoding
83	xiaoding
       :haiyan
82	haiyan
       :kaili
35	kaili
       :xiaojiang   
36	xiaojiang
       :xiaocai
73	xiaocai
       :xiaosu
81	xiaosu
       :xiaoliang
30	xiaoliang
       :exit

    ,    
83	xiaoding
82	haiyan
81	xiaosu

좋은 웹페이지 즐겨찾기