Skip to content

Instantly share code, notes, and snippets.

@HenriqueMitsuo
Last active September 9, 2019 17:32
Show Gist options
  • Save HenriqueMitsuo/029bb8620c437af0206b81f7f71e573b to your computer and use it in GitHub Desktop.
Save HenriqueMitsuo/029bb8620c437af0206b81f7f71e573b to your computer and use it in GitHub Desktop.
Revisão N1
- 3 diagramas
- Objetos
- Classe
- Caso de Uso
- Levantamento de Requisitos
- Engenharia de Requisitos
# Requisitos do Usuário
@ Funções que o usuário gostaria que tivesse
# Requisitos do Sistema
@ Funções especifica do sistema
- Requisitos funcionais
# Requisitos
- Requisitos não-funcionais
# Requisitos de produto: EX: configaração minima, acesso a internet
# Requisitos organizacionais: EX: funções com restrições por departamento
# Requisitos externos: Nota Fiscal, Normas Juridicas/Ambientais, Regras de adequação
- Diagrama de caso de uso
# Ator (Usuarios do sistem): EX - Funcionário, Cliente, Computador, Sensor
# Caso de uso (funções do sistema): EX - abrir conta, sacar dinheiro, alugar carro
# Associação (Ligação entre atores e funções)
# Generalização/Especialização
# Include (função/caso de uso que pode ser realizada a partir de outro): realizar saque/deposito <<include>> registrar movimento
# Extends (função/caso de uso que ocorre como uma nescessidade )
# Multiplicidade (Minima e Maxima)
- Conceitos de orientação a objetos / Diagrama de Classes
# Classificação de objetos
# Abstração
# Instanciar
# O que são atributos
# Tipos de visibilidade: + public, - private, ~ package, # protected
# O que são métodos
# Multiplicidade
# Tipos de associação
@ Associação binaria
@ Agregação
@ Composição
@ Generalização
- Diagrama de Objetos
# Objetivo
# Instanciar objetos
# Oferece uma visão dos valores armazenados pelos objetos das classes
# estrutura:
@ Titulo: Joao: Aluno
@ Atributos: +Codigo = 01, -Nome = Joao da silva
CREATE DATABASE clinica;
USE clinica;
CREATE TABLE ambulatorios(
nroa INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
andar INT,
capac INT
);
CREATE TABLE medicos(
codm INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
nome VARCHAR(40),
idade INT,
especialidade VARCHAR(30),
cpf VARCHAR(14),
cidade VARCHAR(30),
nroa INT,
FOREIGN KEY (nroa) REFERENCES ambulatorios(nroa)
);
CREATE TABLE pacientes(
codp INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
nome VARCHAR(40),
idade INT,
cidade VARCHAR(30)
);
ALTER TABLE pacientes ADD cpf VARCHAR(14);
ALTER TABLE pacientes ADD doenca VARCHAR(40);
ALTER TABLE ambulatorios CHANGE capac capacidade INT;
INSERT INTO ambulatorios(andar, capacidade)
VALUES
(1, 30),
(1, 50),
(2, 40),
(2, 25),
(2, 55);
INSERT INTO medicos(nome, idade, especialidade, cpf, cidade, nroa)
VALUES
('Joao', 40, 'Ortopedia', '11111111111', 'Florianopolis', 1),
('Maria', 42, 'Traumatologia', '22222222222', 'Blumenau', 2),
('Pedro', 51, 'Pediatria', '33333333333', 'São José', 2),
('Carlos', 28, 'Ortopedia', '44444444444', 'Joinville', 3),
('Marcia', 33, 'Neurologia', '55555555555', 'Biguacu', 3);
INSERT INTO pacientes(nome, idade, cidade, doenca, cpf)
VALUES
('Ana', 20, 'Florianopolis', 'gripe', '11111111111'),
('Paulo', 24, 'Palhoca', 'fratura', '22222222222'),
('Lucia', 30, 'Biguacu', 'tendinite', '33333333333'),
('Carlos', 28, 'joinville', 'sarampo', '44444444444');
DELETE FROM pacientes WHERE codp = 3;
UPDATE pacientes SET nome = 'Fernando' WHERE codp = 2;
/****************************************************************************************************************/
CREATE DATABASE fabrica;
USE fabrica;
CREATE TABLE empregado(
codigo INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(50),
cargo VARCHAR(20),
cod_depto INT,
salario DECIMAL(10,2)
);
INSERT INTO empregado(nome, cargo, cod_depto, salario)
VALUES
('Leonardo Ramos', 'Gerente', 10, 5500),
('Karina Neves', 'Gerente', 12, 5000),
('Paola Silva', 'Analista', 12, 2500),
('Andre Silva', 'Analista', 10, 2500);
SELECT COUNT(*) FROM empregado;
SELECT COUNT(*) FROM empregado WHERE salario > 2500;
SELECT SUM(salario) FROM empregado;
SELECT ROUND(AVG(salario)) FROM empregado;
SELECT MAX(salario) FROM empregado;
SELECT * FROM empregado WHERE cod_depto = 12;
SELECT MIN(salario) FROM empregado;
SELECT * FROM empregado WHERE nome LIKE '%o%';
SELECT SUM(salario) FROM empregado WHERE cod_depto = 10;
SELECT * FROM empregado WHERE nome LIKE '%a';
SELECT * FROM empregado WHERE nome LIKE '__o%';
SELECT * FROM empregado ORDER BY codigo DESC;
SELECT DISTINCT cargo FROM empregado;
SELECT * FROM empregado WHERE codigo NOT IN (2, 3);
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ponteiro_1 = 10;
printf("ponteiro_1: %i\n", ponteiro_1);
printf("&ponteiro_1: %i\n\n", &ponteiro_1);
/**
* OUTPUT:
* ponteiro_1: 10 <- valor armazenado
* &ponteiro_1: 6548214 <- endereço de memória
*/
int numero = 20;
printf("numero: %i\n", numero);
printf("&numero: %i\n\n", &numero);
/**
* OUTPUT:
* numero: 20 <- valor armazenado
* &numero: 8954112 <- endereço de memória
*/
ponteiro_1 = &numero; // <- ponteiro recebe o endereço da variavel
printf("ponteiro_1: %i\n", ponteiro_1);
printf("&ponteiro_1: %i\n", &ponteiro_1);
/**
* OUTPUT:
* ponteiro_1: 8954112 <- valor armazenado
* &ponteiro_1: 6548214 <- endereço de memória
*/
int vetor[] = {10, 7, 2, 6, 3};
printf("%i\n", *(vetor+0));
printf("%i\n\n", *(vetor+1));
/**
* OUTPUT:
* 10
* 7
*/
printf("%i\n", vetor[2]);
printf("%i\n", vetor[3]);
/**
* OUTPUT:
* 2
* 6
*/
}
typedef struct {
char nome[50];
char sexo[20];
char fumo[10];
char esporte[10];
char fisica[10];
int idade;
float renda;
} PessoaStruct;
typedef struct {
float totalHomens;
float totalMulheres;
float totalIdade;
float totalFumo;
float totalRenda;
} EstatisticaStruct;
FILE *arquivo;
void manter_Pesquisa();
int menu();
void cadastrarPessoas(PessoaStruct *, EstatisticaStruct *);
void consultarPessoa();
void imprimirEstatisca(EstatisticaStruct *);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "pesquisa.h"
int j = 0;
void manter_Pesquisa() {
int i = 0;
PessoaStruct pessoa[2];
EstatisticaStruct estatistica;
estatistica.totalFumo = 0;
estatistica.totalIdade = 0;
estatistica.totalHomens = 0;
estatistica.totalMulheres = 0;
estatistica.totalRenda = 0;
printf("Digite a quantidade de cadastros: ");
scanf("%i", &j);
system("cls");
while(i < j) {
cadastrarPessoas(&pessoa[i], &estatistica);
i++;
}
while(1 == 1) {
int op = menu();
switch(op) {
case 1:
system("cls");
consultarPessoa();
printf("\n");
break;
case 2:
system("cls");
imprimirEstatisca(&estatistica);
printf("\n");
break;
case 3:
exit(0);
break;
}
}
};
int menu() {
int opcao;
printf("<---------------------------------------- MENU ---------------------------------------------->\n");
printf("<---------------------------------- 1 - PESQUISA -------------------------------------------->\n");
printf("<-------------------------------- 2 - ESTASTISTICA ------------------------------------------>\n");
printf("<------------------------------------ 3 - SAIR ---------------------------------------------->\n");
printf("<-------------------------------------------------------------------------------------------->\n\n");
printf("Escolha a opcao: ");
scanf("%d",&opcao);
return opcao;
};
//Registro de Pessoas
void cadastrarPessoas(PessoaStruct *pessoa, EstatisticaStruct *estatistica) {
fflush(stdin);
printf("Digite o nome: ");
scanf("%s", &pessoa->nome);
printf("Digite o sexo (masculino/feminino): ");
scanf("%s", &pessoa->sexo);
printf("Digite a idade: ");
scanf("%i", &pessoa->idade);
printf("Digite a renda mensal: ");
scanf("%f", &pessoa->renda);
printf("E fumante? (sim/nao): ");
scanf("%s", &pessoa->fumo);
printf("Gosta de esportes? (sim/nao): ");
scanf("%s", &pessoa->esporte);
printf("Pratica atividade fisica? (sim/nao): ");
scanf("%s", &pessoa->fisica);
printf("\n");
arquivo = fopen("resposta.txt", "a");
fprintf(arquivo, "Nome: %s, sexo: %s, idade: %d, renda mensal: %0.2f, fumante: %s, Gosta de esportes: %s, Pratica atividade fisica: %s\n", pessoa->nome, pessoa->sexo, pessoa->idade, pessoa->renda, pessoa->fumo, pessoa->esporte, pessoa->fisica);
fclose(arquivo);
// GERANDO ESTATISTICAS
if(strcmp(pessoa->sexo, "masculino") == 0) {
estatistica->totalHomens++;
}
if(strcmp(pessoa->sexo, "feminino") == 0) {
estatistica->totalMulheres++;
}
if(pessoa->idade > 18 && pessoa->idade < 40) {
estatistica->totalIdade++;
}
if(strcmp(pessoa->fumo, "sim") == 0) {
estatistica->totalFumo++;
}
estatistica->totalRenda = estatistica->totalRenda + pessoa->renda;
system("cls");
};
void consultarPessoa() {
char Result[256];
char nome[50];
printf("Digite o nome a ser pesquisado: ");
scanf("%s", &nome);
printf("\n\n");
// ABRE O ARQUIVO PARA LEITURA
arquivo = fopen("resposta.txt", "r");
// VERIFICA SE ARQUIVO NÂO ESTÀ VAZIO
if(arquivo != NULL){
// LOOP WHILE PARA LER O ARQUIVO LINHA POR LINHA COM A FUNÇÃO fgets();
while(fgets(Result, 256, arquivo) != NULL){
// RETORNA A LINHA CASO SEJA ENCONTRADO O NOME DIGITADO
if(strstr(Result, nome) != NULL){
// PRINTF DO RESULTADO
printf("%s\n", Result);
}
}
}
fclose(arquivo);
};
void imprimirEstatisca(EstatisticaStruct *estatistica) {
float percentH;
float percentM;
float percentI;
float percentF;
float rendaMedia;
// CALCULO E ARMAZENAMENTO DAS ESTATISTICAS
percentH = (estatistica->totalHomens / j) * 100.0;
percentM = (estatistica->totalMulheres / j) * 100.0;
percentI = (estatistica->totalIdade / j) * 100.0;
percentF = (estatistica->totalFumo / j) * 100.0;
rendaMedia = estatistica->totalRenda / j;
// PRINTF DAS PORCENTAGEMS
printf("\n\n");
printf("Percentual de homens: %0.0f%%\n", percentH);
printf("Percentual de mulheres: %0.0f%%\n", percentM);
printf("Percentual de pessoas entre 18 e 40 anos: %0.0f%%\n", percentI);
printf("Percentual de fumantes: %0.0f%%\n", percentF);
printf("Renda media: R$%0.2f\n\n", rendaMedia);
};
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "pesquisa.h"
int main(){
manter_Pesquisa();
// ESTRUTURA DA PESQUISA NO ARQUIVO "resposta.txt"
// Nome: henrique, sexo: masculino, idade: 10, renda mensal: 10.00, fumante: nao, Gosta de esportes: nao, Pratica atividade fisica: nao
// Nome: maria, sexo: feminino, idade: 20, renda mensal: 20.00, fumante: sim, Gosta de esportes: sim, Pratica atividade fisica: sim
// Nome: joao, sexo: masculino, idade: 30, renda mensal: 30.00, fumante: nao, Gosta de esportes: sim, Pratica atividade fisica: sim
// Nome: teste, sexo: feminino, idade: 50, renda mensal: 50.00, fumante: sim, Gosta de esportes: sim, Pratica atividade fisica: sim
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment