Sunteți pe pagina 1din 10

Proiect “Sisteme de operare”

-Stefanescu Mircea 1144 ID-

Realizati aplicatia care sa permita utilizatorului sa efectueze diferite operatiuni.


Se creeza un meniu pentru a putea selecta urmatoarele functii:

-operatii matematice la alegere (adunare, scadere, inmultire, impartire)


-afisarea pe consola a informatiilor continute in fisierul prestabilit “salvare.txt”
-inserarea si afisarea informatiilor oferite de utilizator
-generarea sirului Fibonacci de n numere alese de utilizator
-generare piramida cu dimensiunea aleasa de utilizator
Programul a fost realizat in Ubuntu 64 bit;

Versiune OS:
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-
policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
Proiectul ruleaza in urmatorul mod:
Se apeleaza shell scriptul “Proiect.sh” cu comanda “bash” si se afisaza meniul principal
Utilizatorul are posibilitatea de alegerea a 5 operatiuni de executie plus 1 de iesire din
program.
Fiecarea operatiune se alege cu numere intregi de la 1 la 6

Codul sursa:
#! bin/bash
#sterge ecranul la pornirea programului
clear
#afisaza mesaj de intampinare cu numele utilizatorului
echo " Salutare $USER ! "

#definirea functie
calculator()
{

echo " Introduceti primul numar: "


#citeste de la tastatura
read a
echo " Introduceti al doile numar: "
read b
echo " Alegeti o operatie: "
echo "1. Adunare "
echo "2. Scadere "
echo "3. Inmultire "
echo "4. Impartire "
echo "0. Pentru a iesi din program apasati "
read ch;
case $ch in
#stocheaza rezultatul in variabila res
# bc comanda folosita pentru efectuarea operatiilor matematice
1)res=`echo $a + $b | bc`
;;
2)res=`echo $a - $b | bc`
;;
3)res=`echo $a \* $b | bc`
;;
#fractie cu 2 zecimale
4)res=`echo "scale=2; $a / $b" | bc`
;;
0) exit
esac
#afisare rezultat
echo "Result : $res"

readFile()
{
#afisaza primele 99 linii din fisierul salvare.txt
head -99 salvare.txt

afisareInformatii()
{
#primul parametru
echo -n "Introdu CNP: "
read info1
#al doilea parametru
echo -n "Introdu varsta: "
read info2
#al treilea parametru
echo -n "Introdu adresa personala: "
read info3
#afisare parametrii impreuna cu userul
echo " $USER, informatiile tale persoanel sunt: "
echo "$info1"
echo "$info2"
echo "$info3"
}

fibonacci()
{
echo " Specificati cati digiti sa aibe sirul Fibonacci: "

read N
#primul numar al seriei
a=0
#al doilea numar al seriei
b=1
#structura repetitiva pana cand i<N
for (( i=0; i<N; i++ ))
do
echo -n "$a "
fn=$((a + b))
a=$b
b=$fn
done
echo
}

piramida()
{
echo " Inaltime piramida: "
read p
for((m=1; m<=p; m++))
do
# structura repetitiva pentru determinarea numarului de spatii
for((a=i; a<=p; a++))
do
echo -ne " ";
done
# partea stanga a piramidei
for((n=1; n<=m; n++))
do
echo -ne "#";
done
# partea dreapta
for((i=1; i<m; i++))
do
echo -ne "#";
done
# linie noua
echo;
done
echo
}
#meniu
echo " 1. Calculator "
echo " 2. Citeste din fisier "
echo " 3. Afisare informatii personale "
echo " 4. Generare sir Fibonacci "
echo " 5. Generare piramida "
echo " 6. Iesire "

read numar
case $numar in
#apeleaza functiile
#pe baza inputului utilizatorului
1) calculator ;;

2) readFile ;;

3) afisareInformatii ;;

4) fibonacci ;;

5) piramida ;;

6) exit 1 ;;
#alegere diferita de optiunile valide
*) echo "Comanda invalida ! " ;;
# case scris invers, sfarsit de case
Esac

Printscreen:

S-ar putea să vă placă și