Tải bản đầy đủ (.docx) (16 trang)

LẬP TRÌNH SHELL SCRIPT cập NHẬP và tìm KIẾM các THÔNG TIN PHÒNG BỆNH báo cáo + CODE SH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (389.22 KB, 16 trang )

ĐỒ ÁN NHÓM 10

-

D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP

Đề tài 10: Với các yêu cầu – cập nhật, tìm kiếm và hiển thị thông tin các phòng
bệnh của phòng khám và thông tin các bệnh nhân trong các phòng bệnh, ta lưu trữ
thông tin về các phòng bệnh và tổ chức dữ liệu gồm:
1> Thông tin về phòng bệnh như sau:
Tên trường
ID
TenP
Type
TruongP

Ý nghĩa
Mã phòng bệnh (dùng làm khóa chính)
Tên phòng bệnh
Loại phòng bệnh (Phòng khám nội, Phòng khám nhi,..)
Họ tên bác sĩ trưởng phòng bệnh

2> Thông tin về bệnh nhân trong từng phòng bệnh gồm:
Tên trường
ID
SoGiuong
Ten



Ý nghiã
Mã phòng bệnh (khoá ngoại liên kết)
Số hiệu giường bệnh trong phòng bệnh
Tên bệnh nhân

Yêu cầu:
1> Tổ chức dữ liệu: Thông tin về các phòng bênh và các bệnh nhân được lưu thành
2 tệp tin.
2> Xây dựng thực đơn chương trình gồm các mục: Thêm phòng bệnh mới, Tìm
thông tin về phòng bệnh, thống kê phòng bệnh theo chủng loại, Thoát chương trình
3> Xây dựng các tính năng tương ứng với các mục trong thực đơn
Chú ý:
- Khi chạy chương trình sẽ hiển thị menu chọn (mỗi mục chọn được qui định bởi
một phím chữ, ví dụ: thoát chương trình là phím q,….), khi người sử dụng chọn mục
nào sẽ thực hiện tính năng tương ứng.
- Chương trình cho phép người sử dụng cập nhật thêm các thông tin về phòng bệnh
mới, cập nhật danh mục bệnh nhân trong phòng bệnh, sửa đổi thông tin về phòng
bệnh và các bệnh nhân trong phòng bệnh, hiển thị danh mục các phòng bệnh, danh
mục bệnh nhân của từng phòng bệnh, tìm kiếm thông tin về phòng bệnh và thông tin
về các bệnh nhân trong phòng bệnh.

PHÂN TÍCH

-1-


ĐỒ ÁN NHÓM 10

-


D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP

Để xây dựng được ứng dụng theo yêu cầu ta xây dựng các hàm con sau đó
gọi khi cần dùng
1. Xây dựng hàm thêm bệnh nhân
- Mục đích: Hàm có chức năng thêm mới bệnh nhân và lưu thông tin bệnh
nhân vào tệp benhnhan.txt
- Ý tưởng: Xóa hết màn hình-> Nhập Id phòng bệnh->Lưu dữ liệu vào tệp
Benhnhan.txt->Nhập Số giường->Lưu dữ liệu vào tệp benhnhan.txt->Nhập
tên bệnh nhân->Lưu dữ liệu vào tệp benhnhan.txt->Gọi lại hàm Menu hiển
thị các chức năng.
- Code:
-

function thembenhnhan()
{
clear
echo "---------------THEM MOI BENH NHAN--------------"
echo "ID PHONG BENH: "
read chuoi
echo "ID PHONG BENH: $chuoi">>benhnhan.txt
echo "SO GIUONG: "
read chuoi
echo "SO GIUONG: $chuoi">>benhnhan.txt
echo "TEN BENH NHAN: "

read chuoi
echo "TEN: $chuoi">>benhnhan.txt
echo "------------Da them thanh cong du lieu vao tep
BENHNHAN.txt--------------"
Menu
}

2. Xây dựng hàm thêm mới phòng bệnh
- Mục đích: Hàm có chức năng thêm mới phòng bệnh và lưu thông tin vào
-

tệp phong.txt
Ý tưởng: Xóa hết màn hình-> Nhập Id phòng bệnh->Lưu dữ liệu vào tệp
phong.txt->Nhập tên phòng->Lưu dữ liệu vào tệp phong.txt->Nhập loại
phòng->Lưu dữ liệu vào tệp phong.txt -> Nhập trưởng phòng->Lưu dữ liệu
vào tệp phong.txt->Gọi lại hàm Menu hiển thị các chức năng.
-2-


ĐỒ ÁN NHÓM 10
-

-

D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP


Code:

}

function themphongbenh()
{
clear
echo "--------------THEM MOI KHOA-------------"
echo "ID PHONG BENH: "
read chuoi
echo "ID PHONG BENH: $chuoi">>phong.txt
echo "TEN PHONG: "
read chuoi
echo "TEN PHONG: $chuoi">>phong.txt
echo "LOAI PHONG: "
read chuoi
echo "LOAI PHONG: $chuoi">>phong.txt
echo "TRUONG PHONG: "
read chuoi
echo "TRUONG PHONG: $chuoi">>phong.txt
echo "------------Da them thanh cong du lieu vao tep
PHONG.txt--------------"
Menu

3. Hàm tìm kiếm bệnh nhân
- Mục đích: Hàm sử dụng để tìm kiếm và hiển thị các thông tin của bệnh
-

-


nhân
Ý tưởng:
Nhập tên bệnh nhân cần tìm kiếm->đọc dữ liệu từ tệp tin benhnhan.txt
->So sánh tên bệnh nhân với các trường dữ liệu đọc được-> Nếu tồn tại thì
in da thông tin bệnh nhân tìm kiếm
Code
function timkiembenhnhan
{
clear
echo "Nhap ten benh nhan can tim kiem: "
read tenbn
file=benhnhan.txt;
dong=0;
chisokt=2;
timkiem=0;
dongtimkiem=0;
-3-


ĐỒ ÁN NHÓM 10

-

D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP

while read banghi; do

if [ $dong -eq $chisokt ]
then
#echo "$banghi"
chisokt=$(($chisokt+3))
case $banghi in
"TEN: $tenbn") echo "Reply: Benh nhan:
$tenbn ton tai trong tep benhnhan.txt "
dongtimkiem=$dong
timkiem="1"
;;*)
esac
fi
dong=$(($dong+1))
done <$file
#
echo "So dong: $dong"
if [ $timkiem != 1 ]
then
echo "Reply: $tenbn khong ton tai trong tep
benhnhan.txt"
else
dong=0;
while read banghi; do
if [ $dong -ge $dongtimkiem ] #Dong 66
then
if [ $dong -le $(($dongtimkiem+2)) ]
then
echo "$banghi"
fi
fi


}

fi
Menu

dong=$(($dong+1))
done <$file

4. Hàm thống kê bệnh nhân
- Mục đích: Hàm có chức năng liệt kê ra tất cả các bênh nhân thuộc một

phòng mà người dùng nhập vào từ bàn phím

-4-


ĐỒ ÁN NHÓM 10
-

-

D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP

Ý tưởng: Nhập ID phòng bênh cần thống kê-> Đọc dữ liệu từ tệp bệnh nhân>So sánh và lọc ra tất cả các bênh nhận có chung một ID Phòng
Code

function thongkebenhnhan
{
clear
echo "Nhap ID Phong can thong ke: "
read idphong
file=benhnhan.txt;
dong=0;
chisokt=0;
timkiem=0;
dongtimkiem=0;
echo "-----DANH SACH BENH NHAN THUOC ID PHONG
$idphong----"
while read banghi; do
#
echo "Dong so: $dong co ban ghi: $banghi, chi so kt:
$chisokt"
if [ $dong -eq $chisokt ]
then
#echo "$banghi"
chisokt=$(($chisokt+3))
case $banghi in
"ID PHONG BENH: $idphong")
dongtimkiem=$dong
readfilebenhnhan
;;*)
esac
fi
dong=$(($dong+1))
done <$file
#

echo "So dong: $dong"
Menu
}

5. Hàm hiển thị danh mục Phòng(Hiển thị danh sách tất cả các phòng)
- Mục đích: Hàm sử dụng để hiển thị danh mục phòng, liệt kê ra danh sách
-

tất cả các phòng có trong dữ liệu.
Ý tưởng: Người dùng chọn chức năng hiển thị danh mục -> Đọc dữ liệu từ
file phong.txt, in tất tất cả các thông tin trong tệp.
-5-


ĐỒ ÁN NHÓM 10
-

-

D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP

Code:

}

function hienthidmphong

{
clear
echo "=====DANH MUC PHONG BENH======="
file=phong.txt;
while read banghi; do
echo "$banghi"
done <$file
Menu

6. Hàm hiển thị danh mục bệnh nhân
- Mục đích: Hàm sử dụng để hiển thị da tất cả các bệnh nhân có trong dữ liệu
- Ý tưởng: Người dùng chọn chức năng hiển thị bệnh nhân -> Đọc dữ liệu từ
-

file benhnhan.txt, in tất tất cả các thông tin trong tệp.
Code:

}

function hienthidmbenhnhan
{
clear
echo "=====DANH MUC BENH NHAN======="
file=benhnhan.txt;
while read banghi; do
echo "$banghi"
done <$file
Menu

7. Hàm Menu

- Mục đích: Hàm Menu là hàm hiển thị các chức năng của chương trình, Hàm
-

-

sẽ được gọi lai nhiều lần để hiển thị chức năng
Ý tưởng:
Hệ thống hiển thị ra danh sách các chức năng->người dùng chọn các chức
năng tương ứng và gọi các hàm tương ướng với chức năng người dùng
yêu cầu
Code
function Menu
-6-


ĐỒ ÁN NHÓM 10

{

-

D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP

echo "=============MENU=============="
echo "1: THEM MOI PHONG BENH"
echo "2: THEM MOI BENH NHAN"

echo "3: TIM BENH NHAN"
echo "4: TIM PHONG BENH"
echo "5: THONG KE THEO CHUNG LOAI PHONG"
echo "6: HIEN THI DANH SACH PHONG BENH"
echo "7: HIEN THI DANH SACH BENH NHAN"
echo "8: THOAT CHUONG TRINH"
echo "******CODE DESIGN BY 0946189990********"
echo "------Vui long chon 1 lenh tuong ung de tiep tuc---------"
read kytu
case $kytu in
1)themphongbenh;;
2)thembenhnhan;;
3)timkiembenhnhan;;
4)timkiemphong;;
5)thongkebenhnhan;;
6)hienthidmphong;;
7)hienthidmbenhnhan;;
8)exit 0;;*)

}

esac

CODE CHƯƠNG TRÌNH
#!/bin/bash
# declare STRING variablfor
function thembenhnhan()
{
clear
echo "---------------THEM MOI BENH NHAN--------------"

echo "ID PHONG BENH: "
read chuoi
echo "ID PHONG BENH: $chuoi">>benhnhan.txt
echo "SO GIUONG: "
read chuoi
echo "SO GIUONG: $chuoi">>benhnhan.txt
echo "TEN BENH NHAN: "

-7-


ĐỒ ÁN NHÓM 10

-

D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP

read chuoi
echo "TEN: $chuoi">>benhnhan.txt
echo "------------Da them thanh cong du lieu vao tep
BENHNHAN.txt--------------"
Menu
}
function themphongbenh()
{
clear

echo "--------------THEM MOI KHOA-------------"
echo "ID PHONG BENH: "
read chuoi
echo "ID PHONG BENH: $chuoi">>phong.txt
echo "TEN PHONG: "
read chuoi
echo "TEN PHONG: $chuoi">>phong.txt
echo "LOAI PHONG: "
read chuoi
echo "LOAI PHONG: $chuoi">>phong.txt
echo "TRUONG PHONG: "
read chuoi
echo "TRUONG PHONG: $chuoi">>phong.txt
echo "------------Da them thanh cong du lieu vao tep
PHONG.txt--------------"
Menu
}
function timkiembenhnhan
{
clear
echo "Nhap ten benh nhan can tim kiem: "
read tenbn
file=benhnhan.txt;
dong=0;
chisokt=2;
timkiem=0;
dongtimkiem=0;
while read banghi; do
if [ $dong -eq $chisokt ]
then

#echo "$banghi"
chisokt=$(($chisokt+3))
case $banghi in
"TEN: $tenbn") echo "Reply: Benh nhan: $tenbn
ton tai trong tep benhnhan.txt "
dongtimkiem=$dong
timkiem="1"
;;*)
esac
fi

-8-


ĐỒ ÁN NHÓM 10

-

D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP

dong=$(($dong+1))
done <$file
#
echo "So dong: $dong"
if [ $timkiem != 1 ]
then

echo "Reply: $tenbn khong ton tai trong tep
benhnhan.txt"
else
dong=0;
while read banghi; do
if [ $dong -ge $dongtimkiem ] #Dong 66
then
if [ $dong -le $(($dongtimkiem+2)) ]
then
echo "$banghi"
fi
fi
dong=$(($dong+1))
done <$file
fi
Menu
}
function thongkebenhnhan
{
clear
echo "Nhap ID Phong can thong ke: "
read idphong
file=benhnhan.txt;
dong=0;
chisokt=0;
timkiem=0;
dongtimkiem=0;
echo "-----DANH SACH BENH NHAN THUOC ID PHONG $idphong----"
while read banghi; do
#

echo "Dong so: $dong co ban ghi: $banghi, chi so kt:
$chisokt"
if [ $dong -eq $chisokt ]
then
#echo "$banghi"
chisokt=$(($chisokt+3))
case $banghi in
"ID PHONG BENH: $idphong")
dongtimkiem=$dong
readfilebenhnhan
;;*)
esac
fi

-9-


ĐỒ ÁN NHÓM 10

#

-

D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP

dong=$(($dong+1))

done <$file
echo "So dong: $dong"
Menu

}
function readfilebenhnhan
{
file=benhnhan.txt;
dongl1=0;
while read banghi; do
if [ $dongl1 -ge $dongtimkiem ] #Dong 66
then
if [ $dongl1 -le $(($dongtimkiem+2)) ]
then
echo "$banghi"
fi
fi
dongl1=$(($dongl1+1))
done <$file
}
function timkiemphong
{
clear
echo "Nhap ID Phong can tim kiem: "
read idphong
file=phong.txt;
dong=0;
chisokt=0;
timkiem=0;
dongtimkiem=0;

while read banghi; do
if [ $dong -eq $chisokt ]
then
#
echo "$banghi"
chisokt=$(($chisokt+4))
case $banghi in #Dong 50
"ID PHONG BENH: $idphong") echo "Reply:
Phong : $idphong ton tai trong tep phong.txt "
dongtimkiem=$dong
timkiem="1"
;;*)
esac
fi
dong=$(($dong+1))
done <$file
#
echo "So dong: $dong"
if [ $timkiem != 1 ]

-10-


ĐỒ ÁN NHÓM 10

-

D6LTCNTT2

-


LẬP TRÌNH SHELL SCRIP

then
echo "Reply: Phong $idphong khong ton tai trong tep
phong.txt"
else
dong=0;
while read banghi; do
if [ $dong -ge $dongtimkiem ] #Dong 66
then
if [ $dong -le $(($dongtimkiem+3)) ]
then
echo "$banghi"
fi
fi
dong=$(($dong+1))
done <$file
fi
Menu
}
function hienthidmphong
{
clear
echo "=====DANH MUC PHONG BENH======="
file=phong.txt;
while read banghi; do
echo "$banghi"
done <$file
Menu

}
function hienthidmbenhnhan
{
clear
echo "=====DANH MUC BENH NHAN======="
file=benhnhan.txt;
while read banghi; do
echo "$banghi"
done <$file
Menu
}
function Menu
{
echo "=============MENU=============="
echo "1: THEM MOI PHONG BENH"
echo "2: THEM MOI BENH NHAN"
echo "3: TIM BENH NHAN"
echo "4: TIM PHONG BENH"
echo "5: THONG KE THEO CHUNG LOAI PHONG"
echo "6: HIEN THI DANH SACH PHONG BENH"
echo "7: HIEN THI DANH SACH BENH NHAN"

-11-


ĐỒ ÁN NHÓM 10

-

D6LTCNTT2


-

LẬP TRÌNH SHELL SCRIP

echo "8: THOAT CHUONG TRINH"
echo "******CODE DESIGN BY 0946189990********"
echo "------Vui long chon 1 lenh tuong ung de tiep
tuc---------"
read kytu
case $kytu in
1)themphongbenh;;
2)thembenhnhan;;
3)timkiembenhnhan;;
4)timkiemphong;;
5)thongkebenhnhan;;
6)hienthidmphong;;
7)hienthidmbenhnhan;;
8)exit 0;;*)
esac
}
Menu

HÌNH ẢNH DEMO

-12-


ĐỒ ÁN NHÓM 10


-

D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP

Hình ảnh khởi động men chương trình

Màn hình thêm mới phòng bệnh

-13-


ĐỒ ÁN NHÓM 10

-

D6LTCNTT2

-

Giao diện thêm mới bệnh nhân

Giao diện tìm bệnh nhân
-14-

LẬP TRÌNH SHELL SCRIP



ĐỒ ÁN NHÓM 10

-

D6LTCNTT2

-

Giao diện tìm phòng bệnh

-15-

LẬP TRÌNH SHELL SCRIP


ĐỒ ÁN NHÓM 10

-

D6LTCNTT2

-

LẬP TRÌNH SHELL SCRIP

Giao diện thống kê theo chủng loại

-16-




×