1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo lập trình Shell Script mẫu, Full code + báo cáo Cập nhập, tìm kiếm hiển thị thông tin khoa

16 1,7K 30

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 384,42 KB

Nội dung

BÁO CÁOBÀI TẬP LỚNMôn: LinuxĐề tài : Sử dụng Shell Scrip lập trình bài toán theo yêu cầuĐỀ TÀI NHÓM 6Với các yêucầu–cậpnhật,tìmkiế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ĩaIDMã khoa (dùng làmkhóa chính) TenKhoaTên khoaKieuKiểu khoa (Khoa học CB, Khoa học UD,…)TruongKhoa Họ tên trưởng khoa2> Thông tin về giảng viên trong từng khoa gồm:Tên trườngÝ nghiãIDMã khoa (khoá ngoại liên kết) PossitionVị trí giảng viên trong khoa(Trưởng bộ môn, P.T Bộ môn,..) Ten Tên giảng viênYê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ình3> Xây dựng các tính năng tương ứng với các mục trong thực đơnChú ý: 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.Báo cáo lập trình Shell Script mẫu, Full code + báo cáo Cập nhập, tìm kiếm hiển thị thông tin khoa

Trang 1

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

THÀNH VIÊN TRONG NHÓM

1 NGUYỄN VĂN A TRƯỞNG NHÓM

2 NGUYỄN VĂN B NS 1900

3 NGUYỄN VĂN B

4 5

ĐỀ TÀI NHÓM 6

Trang 2

Với các yêucầu–cậpnhật,tìmkiế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:

ID Mã khoa (dùng làmkhó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:

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

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 >Lưu dữ liệu vào tệp giangvien.txt-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() {

Trang 3

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 }

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: "

Trang 4

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

- 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

Trang 5

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 }

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;

Trang 6

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"

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;

Trang 7

dongtimkiem=0;

while read banghi; do

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

Trang 8

- 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

- Ý 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 }

Trang 9

8 Phân tích hàm Menu

- 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

Trang 10

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

Trang 11

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

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 "

Trang 12

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

"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;

Trang 13

while read banghi; do

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

Trang 14

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

Trang 15

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

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

Trang 16

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

Ngày đăng: 05/03/2015, 11:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w