Você está na página 1de 7

Introduo Programao

Universidade Jean Piaget de Cabo Verde


Ano Lectivo 2013/2014
ProjFinal
Jos Rodrigues
jgrodrigues@cv.unipiaget.org
Informtica de Gesto, 1 Ano
Engenharia de Sistemas e Informtica, 1 Ano
9 de Janeiro de 2014
1. Enquadramento
A PraiaTel uma empresa que controla os servios de telecomunicaes na cidade da
Praia. No momento a empresa se encontra composta por 5 funcionrios (um director, um
Eng. de telecomunicaes, 2 tcnicos electrnicos e uma secretaria administrativa). A
empresa tende-se numa perspectiva de crescimento onde a ideia centra-se em recrutar,
no futuro, mais trs funcionrios.
A PraiaTel decidiu investir num software (programa em C) para a gesto de
processamento de salrios dos seus funcionrios. Portando foi lanado um concurso
para os alunos de ESI e IGE 1Ano, com a finalidade de desenvolverem um programa
para gesto de processamento de salrios que satisfazem as necessidades da PraiaTel.
O programa deve manusear informaes como: funcionrios (codigo, nome, escalao,
salario, INPS, sindicato, mes_proc) e TabIUR (taxa, limite_sal).
2. Descrio do Projecto
Pretende-se que seja desenvolvida em C um programa chamada ProcSalario (que
dever ser guardado com o nome de ProcSalario.c). Entretanto, o programa quando
iniciado solicita ao utilizador um username e password para poder aceder ao sistema
ou programa. Depois de trs tentativas erradas o programa deve terminar.
Caso o utilizador conseguir aceder ao sistema o programa deve:
inicializar o campo cdigo da estrutura de funcionrios a -1 (-1 significa vazio);
carregar os dados de funcionrios existentes no ficheiro (deve existir um ficheiro
com o nome funcionarios.txt com os dados de funcionrios) para a estrutura
funcionrios;
carregar os dados da tabela de IUR existentes no ficheiro (deve existir um
ficheiro com o nome tabelaIUR.txt com as taxas de IUR e os respectivos salrios)
para a estrutura TabIUR;
apresentar no ecr o seguinte menu:
############# Menu ##############
# 1 Processamento #
# 2 Funcionario #
# 3 Tabela IUR #
# 4 Listagem #
# 5 Sair #
#################################
1 Processamento - esta a primeira opo do menu principal. Ao escolher esta
opo dever ser apresentado no ecr o seguinte submenu:
############ SubMenu ############
# 1 Manual #
# 2 Automatico #
# 3 Reimpressao #
# 4 Menu anterior #
#################################
1 Manual - esta a primeira opo do submenu. Ao escolher esta opo o
programa deve pedir ao utilizador que introduza o cdigo de um funcionrio e
logo de seguida dever ser apresentado no ecr o processamento de salrio do
funcionrio com as respectivas informaes: cdigo e nome do funcionrio,
Salrio Bruto, IUR (a taxa de IUR deve ser apurada na estrutura TabIUR, varia de
acordo com o salrio e obrigatrio), INPS (a taxa de INPS de 8% para todos os
funcionrios independentemente do salrio e opcional), Sindicato (a taxa de 1%
para todos os funcionrios independentemente do salrio e opcional), Total
Descontos (que a soma dos valores de IUR, INPS e Sindicato) e por fim Salrio
Liquido (que a diferena entre o Salrio Bruto e o Total Descontos). Ex. de
layout:
*** PROCESSAMENTO DE SALARIO ***
+-------------------------------+
| Cod: 101 Nome: Ana Ms: 3
+-------------------------------+
| SALARIO BRUTO |
+-------------------------------+
| 54000.0
+-------------------------------+
| DESCONTOS |
+-------------------------------+
| IUR: ......... 2970.0
| INPS: ........ 4320.0
| SINDICATO: ... 540.0
+-------------------------------+
| TOTAL DESCONTOS |
+-------------------------------+
| 7830.0
+-------------------------------+
| SALARIO LIQUIDO |
+-------------------------------+
| 46170.0
+-------------------------------+
!.!.!.! PROCESSAMENTO EFECTUADO COM SUCESSO !.!.!.!
Em cada processamento o campo mes_proc da estrutura de funcionrios deve
ser actualizado (quando for feito o primeiro processamento, o valor do campo
mes_proc 1, que o numero correspondente ao ms de Janeiro, e quando for feito o
segundo processamento o valor do campo mes_proc passa a ser 2 correspondente ao
ms Fevereiro, e assim sucessivamente at 12 que corresponde ao ms Dezembro).
No final os dados de processamento devero ser armazenados num ficheiro txt,
cujo nome o cdigo de funcionrio. Ex. do nome de ficheiro: 101.txt. Ex.
de dados no ficheiro (ateno os dados so separados por tabulao):
101 Ana 3 54000.0 2970.0 4320.0 540.0 7830.0 46170.0
2 Automatico - esta a segunda opo do submenu. Ao escolher esta opo
o programa deve processar o salrio de todos os funcionrios. Terminado o
processamento deve-se imprimir no ecr:
!.!.!.! PROCESSAMENTO EFECTUADO COM SUCESSO !.!.!.!
Os dados de processamento devero ser armazenados num ficheiro txt, com
nome geral.txt. Ex. de dados no ficheiro (ateno os dados so separados por
tabulao):
101 Ana 3 54000.0 2970.0 4320.0 540.0 7830.0 46170.0
102 Maria 3 78000.0 6630.0 6240.0 780.0 13650.0 64350.0
105 Beto 3 33500.0 335.0 2680.0 335.0 3350.0 30150.0
Tambm neste processamento o campo mes_proc da estrutura de funcionrios
deve ser actualizado para todos os funcionrios (quando for feito o primeiro
processamento, o valor do campo mes_proc 1, que o numero correspondente ao
ms de Janeiro, e quando for feito o segundo processamento o valor do campo
mes_proc passa a ser 2 correspondente ao ms Fevereiro, e assim sucessivamente at
12 que corresponde ao ms Dezembro).
3 Reimpressao - esta a terceira opo do submenu. Ao escolher esta opo
o programa deve pedir ao utilizador que introduza o cdigo de um funcionrio
e logo de seguida dever ser apresentado no ecr o salrio processado deste
funcionrio (partindo do principio que fica armazenado somente o ltimo
processamento).
Portanto, para apresentar no ecr o ltimo salrio processado deste
funcionrio, ser necessrio ler os dados no ficheiro (se o cdigo do funcionrio
for 101, ento o nome do ficheiro ser 101.txt. Se o ltimo processamento no for
manual, mas sim automtico, ento o ficheiro a ser lido ser geral.txt. Portando deve-
se procurar no ficheiro o registo correspondente ao funcionrio em causa e imprimir
os dados no ecr).
4 Menu anterior esta opo permite ao utilizador voltar ao menu
principal.
2 Funcionario - esta a segunda opo do menu principal. Ao escolher esta
opo dever ser apresentado no ecr o seguinte submenu:
############ SubMenu ############
# 1 Cadastro #
# 2 Alterar escalao #
# 3 Remover #
# 4 Outras opcoes #
# 5 Menu anterior #
#################################
1 Cadastro - esta a primeira opo do submenu. Ao escolher esta opo o
programa deve pedir ao utilizador as informaes necessrias para preencher
os dados de um funcionrio na estrutura.
Portanto sero pedidos ao utilizador as seguintes informaes: cdigo (que
nico para cada funcionrio), nome, escalo (temos quatro tipo de escalo:
ESCALAOI enquadra todos os funcionrios cujo salrios so inferiores ou iguais a
30.000$00, ESCALAOII enquadra todos os funcionrios cujo salrios so
superiores a 30.000$00 e inferiores a 94.600$00, ESCALAOIII enquadra todos os
funcionrios cujo salrios so iguais ou superiores a 94.600$00 e inferiores a
154.250$00 e ESCALAOIV enquadra todos os funcionrios cujo salrios so iguais
ou superiores a 154.250$00) e salrio (que deve respeitar os intervalos de cada
escalo. Ex.: se um funcionrio de ESCALAOI, o seu salrio nunca pode ultrapassar
os 30.000$00).
Os campos sindicato, INPS, ult_proc so de preenchimento automtico. O
programa deve preencher todos estes campos a zero (0). Sindicato e INPS com
valor zero (0) significam que os descontos de sindicato e INPS no so
aplicados este funcionrio. O campo ult_proc a zero (0) significa que ainda
no foi processado nenhum salrio para este funcionrio.
2 Alterar escalo - esta a segunda opo do submenu. Ao escolher esta
opo o programa deve pedir ao utilizador que introduza o cdigo de um
funcionrio o qual deseja alterar o escalo. Mas lembrem-se que ao mudar um
funcionrio de escalo, o seu salrio deve ser obrigatoriamente reajustado de
acordo com o intervalo de salrio de cada escalo.
3 Remover - esta a terceira opo do submenu. Ao escolher esta opo o
programa deve pedir ao utilizador que introduza o cdigo de um funcionrio
que deseja remover. Para remover um funcionrio, basta colocar o valor -1 no
campo cdigo da estrutura funcionrio.
4 Outras opcoes - esta a quarta opo do submenu. Esta opo fica a
disposio do grupo. Aqui o grupo livre para escolher uma funcionalidade
que achar mais conveniente para esta opo.
5 Menu anterior esta opo permite ao utilizador voltar ao menu
principal.
3 Tabela IUR - esta a terceira opo do menu principal. Ao escolher esta
opo dever ser apresentado no ecr o seguinte submenu:
############ SubMenu ############
# 1 Nova taxa #
# 2 Alterar taxa #
# 3 Menu anterior #
#################################
1 Nova taxa - esta a primeira opo do submenu. Ao escolher esta opo o
programa deve pedir ao utilizador o nome de um ficheiro que contem os dados
da tabela de IUR (taxa e limite de salrio. Estes dados esto disponveis no anexo
deste projecto). O programa deve ler os dados do ficheiro e armazena-los na
estrutura TabIUR.
2 Alterar taxa - esta a segunda opo do submenu. Ao escolher esta opo
o programa deve pedir ao utilizador que introduza o valor de uma taxa de IUR.
De seguida deve-se verificar a existncia desta taxa, caso a taxa existir na
estrutura TabIUR, o programa deve pedir ao utilizador um novo salrio a
reajustar na taxa, ou seja, substituindo o antigo salrio pelo novo.
3 Menu anterior esta opo permite ao utilizador voltar ao menu
principal.
4 Listagem - esta a quarta opo do menu principal. Ao escolher esta opo
dever ser apresentado no ecr o seguinte submenu:
############ SubMenu ############
# 1 Funcionarios #
# 2 Func/Escalao #
# 3 Func/IUR #
# 4 Menu anterior #
#################################
1 Funcionarios - esta a primeira opo do submenu. Ao escolher esta
opo o programa deve listar no ecr todos os dados dos funcionrios
existentes na estrutura.
2 Func/Escalao - esta a segunda opo do submenu. Ao escolher esta
opo o programa deve pedir ao utilizador um tipo de escalo e listar no ecr
todos os dados dos funcionrios existentes na estrutura que esto neste escalo.
3 Func/IUR - esta a terceira opo do submenu. Ao escolher esta opo o
programa deve pedir ao utilizador uma taxa de IUR e listar no ecr todos os
dados dos funcionrios existentes na estrutura cuja taxa se aplicam aos seus
salrios.
4 Menu anterior esta opo permite ao utilizador voltar ao menu
principal.
5 Sair - esta opo permite terminar ou sair do programa.
3. Condies de entrega
O trabalho dever ser entregue at 25 de Janeiro pelas 17 horas e 50 minutos. Para isso
todos os ficheiros devero ser colocados na pasta ProjFinal da home directory de cada
grupo. Depois desta data perdero as permisses de escrita nessa directoria.
Juntamente com os ficheiros dever ser entregue um relatrio que dever conter:
Capa: com ttulo (ProjFinal), subttulo (Processamento de salrios), o nmero e o
nome de cada elemento do grupo;
Introduo;
Descrio das principais variveis;
Descrio das principais funes e a filosofia utilizada na implementao;
Outros aspectos considerados relevantes;
Concluso;
OBS: o relatrio valer 15% e a criatividade 5% da nota do ProjFinal.
4. Informaes adicionais
A estrutura para o programa definida da seguinte forma:
typedef struct
{
int codigo;
char nome[20];
int escalao;
float salario;
int sindicato;
int INPS;
int ult_proc;
}funcionario;
typedef struct
{
float taxa;
float limite_sal;
}TabelaIUR;
Nota 1: A cpia de resolues/solues na Internet, livro ou colega leva a penalizao
do trabalho em -10 valores. Isto , 0 valores no corrente trabalho e -10 valores na nota
do prximo projecto.
Nota 2: Qualquer dvida poder ser esclarecida por e-mail, atravs dos endereos
jgrodrigues@cv.unipiaget.org, e pessoalmente no final das aulas tericas e prticas.
5. Anexo
Salrios Taxas
32.224,00 0,50
33.741,00 1,00
40.152,00 1,50
41.638,00 2,00
43.238,00 2,50
44.966,00 3,00
46.838,00 3,50
48.873,00 4,00
51.092,00 4,50
53.523,00 5,00
56.197,00 5,50
59.151,00 6,00
62.434,00 6,50
66.102,00 7,00
70.228,00 7,50
76.181,00 8,00
79.147,00 8,50
82.354,00 9,00
85.832,00 9,50
89.617,00 10,00
93.750,00 10,50
98.284,00 11,00
103.278,00 11,50
108.807,00 12,00
114.961,00 12,50
121.853,00 13,00
129.624,00 13,50
138.454,00 14,00
154.661,00 14,50
161.015,00 15,00
167.914,00 15,50
175.430,00 16,00
183.651,00 16,50
192.680,00 17,00
202.643,00 17,50
213.692,00 18,00
229.538,00 18,50
236.734,00 19,00
244.395,00 19,50
252.569,00 20,00
261.308,00 20,50
270.674,00 21,00
280.736,00 21,50
291.575,00 22,00
303.285,00 22,50
315.975,00 23,00
329.773,00 23,50
344.831,00 24,00
361.330,00 24,50
379.488,00 25,00
399.567,00 25,50
399.568,00 26,00

Você também pode gostar