Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO DE FIXAÇÃO 01 (LINGUAGENS C/C++) TURMAS 01 & 02 DATA: 26/05/2017 1. Implementar e testar uma struct que possibilite o armazenamento de datas, em formato dd, mm e aaaa. Detalhe de implementação: Os dados digitados pelo usuário, referentes à data de seu interesse, deverão ser validados, antes de serem armazenados em um arquivo denominado datas.txt ou datas.dat. 2. Implementar um programa para gerenciar uma base de dados contendo as seguintes informações, relativas aos alunos da turma de Técnicas de Programação: (i) nome; (ii) número de matrícula; (iii) notas dos estágios; (iv) nota da prova final; e (v) média final. O programa deverá oferecer ao usuário facilidades para: (i) Cadastrar alunos; (ii) Atualizar dados; (iii) Remover alunos; e (iv) Listar alunos e respectivas notas. Detalhes de implementação: Os dados deverão ser armazenados em um arquivo denominado notas.txt ou notas.dat; e Sugere-se o emprego dos comandos file.read(char*, streamsize) e file.write(char*, streamsize), assim como a utilização da conversão de tipos nos atributos da estrutura para char*, visando-se à manipulação dos dados do arquivo notas.txt (ou notas.dat). 3. Implementar, a partir de enums, um programa que possibilite verificar se um dado mês indicado pelo usuário cairá no primeiro ou no segundo semestre do ano. O programa deverá solicitar ao usuário o número do mês e retornar a mensagem “XXXX pertence ao primeiro semestre do ano.”, para os meses janeiro a junho ou “XXXX pertence ao primeiro semestre do ano.”, para os demais meses. [XXXX corresponde ao nome do mês (Janeiro, ..., Dezembro).] 4. Dado o código a seguir: #include <iostream> using namespace std; class Disjuntor{ enum EstadoAtual {ligado, desligado}; EstadoAtual estado; public: Disjuntor(){ // construtor default estado = desligado; } void exibeStatus(){ if (estado == ligada)cout << "Disjuntor ligado" << endl; else cout << "Disjuntor desligado" << endl; } void desliga() { estado = desligado; } void liga() { estado = ligado; } }; int main() { Disjuntor d1; // cria um objeto da classe Disjuntor d1.exibeStatus(); d1.liga(); d1.exibeStatus(); d1.desliga(); d1.exibeStatus(); } i. Modificar o trecho de código, acrescentando um método destrutor à classe Disjuntor, o qual deverá indicar que o objeto foi destruído ao final do processo. ii. Verificar e reportar o que ocorre se forem inseridas as seguintes linhas de código à função de teste da classe? Lampada d2[3]; d2[0].mostrar(); iii. Dotar os objetos da classe Disjuntor de um atributo tipo (unipolar, bipolar ou tripolar) que indicará o tipo de cada instância da classe e criar um novo construtor, a fim de que o tipo default de disjuntor seja unipolar. Alterar também a função exibeStatus, de modo que o tipo e o estado do disjuntor sejam exibidos ao usuário. iv. O que ocorrerá se a seguinte linha for inserida ao final da função de teste da classe? Por que? d1.tipo = bipolar; v. Criar um terceiro construtor para a classe Disjuntor, privado, o qual deverá receber como argumentos o tipo, a classe de isolamento (I, II ou III) e o estado do disjuntor; e vi. Testar toda a implementação e salvar os dados do teste em arquivo. BOM TRABALHO!
Compartilhar