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

BÁO cáo lập TRÌNH SHELL SCRIPT mẫu, FULL CODE + cập NHẬP, tìm KIẾM HIỂN THỊ THÔNG TIN KHOA, GIẢNG VIÊN

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 (414.52 KB, 16 trang )

Kho tài liệu miễn phí của diễn đàn Ketnooi.com

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
---------------------------------------------------------

BÁO CÁO
BÀI TẬP LỚN
Môn: Linux
Đề tài :

Sử dụng Shell Scrip lập trình bài toán theo yêu cầu
1
2
3
4
5

THÀNH VIÊN TRONG NHÓM
NGUYỄN VĂN A TRƯỞNG NHÓM
NGUYỄN VĂN B NS 1900
NGUYỄN VĂN B

ĐỀ TÀI NHÓM 6
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 khoa và thông tin giảng
viên trong các khoa, ta lưu trữ thông tin về các khoa và tổ chức dữ liệu gồm:
1> Thông tin về khoa như sau:
Tên trường
Ý nghĩa
ID
Mã khoa (dùng làm khóa chính)


TenKhoa
Tên khoa
Kieu
Kiểu khoa (Khoa học CB, Khoa học UD,…)
TruongKhoa
Họ tên trưởng khoa
2> Thông tin về giảng viên trong từng khoa gồm:
Tên trường
Ý nghiã
ID
Mã khoa (khoá ngoại liên kết)
Possition
Vị trí giảng viên trong khoa(Trưởng bộ môn, P.T Bộ môn,..)
Ten
Tên giảng viên
1


Kho tài liệu miễn phí của diễn đàn Ketnooi.com

Yêu cầu:
1> Tổ chức dữ liệu: Thông tin về các khoa và giảng viê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 khoa mới, Tìm thông tin về
khoa, thống kê khoa 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ề khoa mới, cập

nhật danh mục giảng viên trong khoa, sửa đổi thông tin về khoa và các giảng viên trong
khoa, hiển thị danh mục các khoa, danh mục giảng viên của từng khoa, tìm kiếm thông
tin về khoa và thông tin về các giảng viên trong khoa.

PHÂN TÍCH
1. Phân tích hàm thêm mới giảng viên
- Ý tưởng: Chức năng này cho phép thêm mới thông tin giảng viên và lưu thông tin
-

giảng viên vào tệp giangvien.txt:
Diễn giải: Xóa hết màn hình-> Nhập Id khoa->Lưu dữ liệu vào tệp giangvien.txt>Nhập vị trí giảng viên->Lưu dữ liệu vào tệp giangvien.txt->Nhập tên giảng viên-

-

>Lưu dữ liệu vào tệp giangvien.txt->Gọi lại hàm Menu hiển thị các chức năng.
Code:
function themgiangvien()
{
clear
echo "---------------THEM MOI GIANG VIEN--------------"
echo "Ma khoa: "
read chuoi
echo "Ma khoa: $chuoi">>giangvien.txt
echo "Vi tri giang day: "
read chuoi
echo "Vi tri: $chuoi">>giangvien.txt
echo "Ten giang vien: "
read chuoi
echo "Ten: $chuoi">>giangvien.txt
echo "------------Da them thanh cong du lieu vao tep

2


Kho tài liệu miễn phí của diễn đàn Ketnooi.com

}

giangvien.txt--------------"
Menu

2. Phân tích hàm thêm mới khoa
- Ý tưởng: Hàm thêm mới khoa cho phép thêm mới dữ liệu khoa và lưu thông tin
-

vào một tệp khoa.txt
Diễn giải:Xóa hết màn hình-> Nhập Id khoa->Lưu dữ liệu vào tệp khoa.txt
->Nhập tên khoa->Lưu dữ liệu vào tệp khoa.txt->Nhập kiểu khoa->Lưu dữ liệu
vào tệp khoa.txt -> Nhập trưởng phòng->Lưu dữ liệu vào tệp khoa.txt->Gọi lại

-

hàm Menu hiển thị các chức năng.
Code:
function themkhoa()
{
clear
echo "--------------THEM MOI KHOA-------------"
echo "Ma khoa: "
read chuoi
echo "ID: $chuoi">>khoa.txt

echo "Ten khoa: "
read chuoi
echo "Tenkhoa: $chuoi">>khoa.txt
echo "Kieu khoa: "
read chuoi
echo "Kieu: $chuoi">>khoa.txt
echo "Truong khoa: "
read chuoi
echo "TruongKhoa: $chuoi">>khoa.txt
echo "------------Da them thanh cong du lieu vao tep
khoa.txt--------------"
Menu
}

3. Phân tích hàm tìm giảng viên

3


Kho tài liệu miễn phí của diễn đàn Ketnooi.com
-

Mục đích: Hàm tìm giảng viên cho phép ta tìm thông tin một giảng viên và in ra

-

thông tin giảng viên nếu tìm thấy
Ý tưởng: Nhập tên giảng viên cần tìm kiếm->đọc dữ liệu từ tệp tin giangvien.txt
->So sánh tên giảng viên với các trường dữ liệu đọc được-> Nếu tồn tại thì in da
thông tin giảng viên cần tìm kiếm -> Gọi lại hàm Menu hiển thị các chức năng


-

của chương trình
Code:
function timgiangvien
{
clear
echo "Nhap ten giang vien can tim kiem: "
read tengv
file=giangvien.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 #Dong 50
"Ten: $tengv") echo "Reply: Giang vien co ten: $tengv
ton tai trong tep giangvien.txt "
dongtimkiem=$dong
timkiem="1"
;;*)
esac
fi
dong=$(($dong+1))
done <$file

#
echo "So dong: $dong"
if [ $timkiem != 1 ]
then
echo "Reply: $tengv khong ton tai trong tep giangvien.txt"
else
4


Kho tài liệu miễn phí của diễn đàn Ketnooi.com

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ê khoa

- Ý tưởng: Hàm thống kê khoa cho phép chúng ta liệt kê ra tất cả những bệnh

nhân thuộc khoa: Người dùng nhập id khoa cần thồng kê -> Đọc dữ liệu từ tệp
giangvien.txt, lọc và in ra tất cả các Giáo viên thuộc khoa -> Gọi lại hàm Menu
-

hiển thị các chức năng của chương trình
Code:
function thongkekhoa
{
clear
echo "Nhap ID Khoa can thong ke: "
read idkhoa
file=giangvien.txt;
dong=0;
chisokt=0;
timkiem=0;
dongtimkiem=0;
echo "-----DANH SACH GIANG VIEN THUOC ID KHOA $idkhoa----"
while read banghi; do
#
echo "Dong so: $dong co ban ghi: $banghi, chi so kt:
$chisokt"

5


Kho tài liệu miễn phí của diễn đàn Ketnooi.com

#


if [ $dong -eq $chisokt ]
then
#echo "$banghi"
chisokt=$(($chisokt+3))
case $banghi in
"Ma khoa: $idkhoa")
dongtimkiem=$dong
readfilegiangvien
;;*)
esac
fi
dong=$(($dong+1))
done <$file
echo "So dong: $dong"
Menu

}
5. Phân tích hàm tìm kiếm khoa
- Mục đính: Chức năng này cho phép chúng ta kiểm tra Khoa có tồn tại trong tệp
-

dữ liệu Khoa.txt hay không, nếu tồn tại thì in ra thông tin của Khoa
Ý tưởng: Người dùng nhập vào ID khoa cần tìm kiếm->Đọc dữ liệu từ file
khoa.txt, so sánh IDKhoa vừa nhập với các bản ghi->Nếu trùng lặp->in ra thông

-

tin khoa tìm thấy - >Gọi lại hàm Menu hiển thị các chức năng của chương trình
Code:

function timkiemkhoa
{
clear
echo "Nhap ID Khoa can tim kiem: "
read idkhoa
file=khoa.txt;
dong=0;
chisokt=0;
timkiem=0;
dongtimkiem=0;
while read banghi; do

6


Kho tài liệu miễn phí của diễn đàn Ketnooi.com

if [ $dong -eq $chisokt ]
then
#
echo "$banghi"
chisokt=$(($chisokt+4))
case $banghi in #Dong 50
"ID: $idkhoa") echo "Reply: ID khoa: $idkhoa ton tai
trong tep khoa.txt "
dongtimkiem=$dong
timkiem="1"
;;*)
esac
fi

dong=$(($dong+1))
done <$file
#
echo "So dong: $dong"
if [ $timkiem != 1 ]
then
echo "Reply: idkhoa $idkhoa khong ton tai trong tep
khoa.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
}
6. Hàm hiển thị danh mục Khoa
- Mục đích: Cho phép liệt kê ra tất cả các khoa có trong tệp khoa.txt và in thông

tin ra màn hình
7



Kho tài liệu miễn phí của diễn đàn Ketnooi.com
-

Ý tưởng: Người dùng chọn chức năng hiển thị danh mục khoa->đọc dữ liệu từ
file khoa.txt và in ra tất cả thông tin có trong tệp->Gọi lại hàm Menu hiển thị các

-

tính năng
Code:
function hienthidmkhoa
{
clear
echo "=====DANH MUC KHOA======="
file=khoa.txt;
while read banghi; do
echo "$banghi"
done <$file
Menu
}

7. Hiển thị danh mục giảng viên
- Mục đích: : Cho phép liệt kê ra tất cả các giảng viên có trong tệp khoa.txt và in
-

thông tin ra màn hình
Ý tưởng: Người dùng chọn chức năng hiển thị danh mục giảng viên->đọc dữ liệu
từ file giangvien.txt và in ra tất cả thông tin có trong tệp->Gọi lại hàm Menu hiển

-


thị các tính năng
Code
function hienthidmgiangvien
{
clear
echo "=====DANH MUC GIANG VIEN======="
file=giangvien.txt;
while read banghi; do
echo "$banghi"
done <$file
Menu
}

8. Phân tích hàm Menu
8


Kho tài liệu miễn phí của diễn đàn Ketnooi.com
-

Mục đích: Hàm menu là hàm dùng để hiển thị các chức năng của chương trình,
thao tác với người sử dụng và gọi các hàm tương ướng với mục đích của người

-

sử dụng
Code:
function Menu
{

echo "=============MENU=============="
echo "1: Them moi khoa"
echo "2: Them moi giang vien"
echo "3: Tim thong tin giang vien"
echo "4: Tim thong tin khoa"
echo "5: Thong ke khoa theo chung loai"
echo "6: Hien thi Danh Sach KHOA"
echo "7: Hien thi Danh sach GIANG VIEN"
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)themkhoa;;
2)themgiangvien;;
3)timgiangvien;;
4)timkiemkhoa;;
5)thongkekhoa;;
6)hienthidmkhoa;;
7)hienthidmgiangvien;;
8)exit 0;;*)
}

esac

CODE CHƯƠNG TRÌNH
#!/bin/bash
# declare STRING variablfor
function themgiangvien()
9



Kho tài liệu miễn phí của diễn đàn Ketnooi.com
{
clear
echo "---------------THEM MOI GIANG VIEN--------------"
echo "Ma khoa: "
read chuoi
echo "Ma khoa: $chuoi">>giangvien.txt
echo "Vi tri giang day: "
read chuoi
echo "Vi tri: $chuoi">>giangvien.txt
echo "Ten giang vien: "
read chuoi
echo "Ten: $chuoi">>giangvien.txt
echo "------------Da them thanh cong du lieu vao tep giangvien.txt--------------"
Menu
}
function themkhoa()
{
clear
echo "--------------THEM MOI KHOA-------------"
echo "Ma khoa: "
read chuoi
echo "ID: $chuoi">>khoa.txt
echo "Ten khoa: "
read chuoi
echo "Tenkhoa: $chuoi">>khoa.txt
echo "Kieu khoa: "
read chuoi

echo "Kieu: $chuoi">>khoa.txt
echo "Truong khoa: "
read chuoi
echo "TruongKhoa: $chuoi">>khoa.txt
echo "------------Da them thanh cong du lieu vao tep khoa.txt--------------"
Menu
}
function timgiangvien
{
clear
echo "Nhap ten giang vien can tim kiem: "
read tengv
file=giangvien.txt;
dong=0;
chisokt=2;
timkiem=0;
dongtimkiem=0;
while read banghi; do
if [ $dong -eq $chisokt ]
10


Kho tài liệu miễn phí của diễn đàn Ketnooi.com
then
#echo "$banghi"
chisokt=$(($chisokt+3))
case $banghi in #Dong 50
"Ten: $tengv") echo "Reply: Giang vien co ten: $tengv ton tai trong
tep giangvien.txt "
dongtimkiem=$dong

timkiem="1"
;;*)
esac

#

fi
dong=$(($dong+1))
done <$file
echo "So dong: $dong"
if [ $timkiem != 1 ]
then
echo "Reply: $tengv khong ton tai trong tep giangvien.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 thongkekhoa

{
clear
echo "Nhap ID Khoa can thong ke: "
read idkhoa
file=giangvien.txt;
dong=0;
chisokt=0;
timkiem=0;
dongtimkiem=0;
echo "-----DANH SACH GIANG VIEN THUOC ID KHOA $idkhoa----"
while read banghi; do
11


Kho tài liệu miễn phí của diễn đàn Ketnooi.com
#

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
"Ma khoa: $idkhoa")
dongtimkiem=$dong
readfilegiangvien
;;*)
esac

#


fi
dong=$(($dong+1))
done <$file
echo "So dong: $dong"
Menu

}
function readfilegiangvien
{
file=giangvien.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 timkiemkhoa
{
clear
echo "Nhap ID Khoa can tim kiem: "
read idkhoa
file=khoa.txt;
dong=0;

chisokt=0;
timkiem=0;
dongtimkiem=0;
while read banghi; do
12


Kho tài liệu miễn phí của diễn đàn Ketnooi.com
if [ $dong -eq $chisokt ]
then
echo "$banghi"
chisokt=$(($chisokt+4))
case $banghi in #Dong 50
"ID: $idkhoa") echo "Reply: ID khoa: $idkhoa ton tai trong tep

#

khoa.txt "
dongtimkiem=$dong
timkiem="1"
;;*)
esac

#

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

then
echo "Reply: idkhoa $idkhoa khong ton tai trong tep khoa.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 hienthidmkhoa
{
clear
echo "=====DANH MUC KHOA======="
file=khoa.txt;
while read banghi; do
echo "$banghi"
done <$file
Menu
}
function hienthidmgiangvien
{

13


Kho tài liệu miễn phí của diễn đàn Ketnooi.com
clear
echo "=====DANH MUC GIANG VIEN======="
file=giangvien.txt;
while read banghi; do
echo "$banghi"
done <$file
Menu
}
function Menu
{
echo "=============MENU=============="
echo "1: Them moi khoa"
echo "2: Them moi giang vien"
echo "3: Tim thong tin giang vien"
echo "4: Tim thong tin khoa"
echo "5: Thong ke khoa theo chung loai"
echo "6: Hien thi Danh Sach KHOA"
echo "7: Hien thi Danh sach GIANG VIEN"
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)themkhoa;;
2)themgiangvien;;
3)timgiangvien;;

4)timkiemkhoa;;
5)thongkekhoa;;
6)hienthidmkhoa;;
7)hienthidmgiangvien;;
8)exit 0;;*)
esac
}
Menu

MỘT SỐ HÌNH ẢNH CỦA CHƯƠNG TRÌNH

14


Kho tài liệu miễn phí của diễn đàn Ketnooi.com

Giao diện khi chương trình khởi động

Giao diện chức năng thêm mới khoa

15


Kho tài liệu miễn phí của diễn đàn Ketnooi.com

Giao diện chức năng tìm kiếm giảng viên

16




×