Ejemplo n.º 1
0
int agregarPelicula(EMovie movie[],FILE *f)
{
    int i;

    estado(movie);

    for(i=0;i<M;i++)
    {
       if(movie[i].estado == 0)
       {
            printf("Titulo de La pelicula: \n");
            fflush(stdin);
            gets(movie[i].titulo);
            val_tam(movie[i].titulo,21);
            strlwr(movie[i].titulo);
            printf("Genero de la pelicula: \n");
            fflush(stdin);
            gets(movie[i].genero);
            val_tam(movie[i].genero,21);
            printf("Duracion de la pelicula(min): \n");
            scanf("%d",&movie[i].duracion);
            movie[i].duracion = val_Enteros(movie[i].duracion);
            printf("Descripcion de la pelicula: \n");
            fflush(stdin);
            gets(movie[i].descripcion);
            val_tam(movie[i].descripcion,51);
            printf("Puntaje de la pelicula(del 1 al 10):  \n");
            scanf("%d",&movie[i].puntaje);
            movie[i].puntaje = val_Rangoint(movie[i].puntaje,1,10);
            printf("Portada de la pelicula: \n");
            fflush(stdin);
            gets(movie[i].linkImagen);
            val_tam(movie[i].linkImagen,51);
            movie[i].estado = 1;

            fseek(f,0L,SEEK_END);
            fwrite(&movie,sizeof(EMovie),1,f);



            break;
       }


    }
    return 0;



}
Ejemplo n.º 2
0
void Visitados::marcar_visitado(const set<Vertice>& vertices) {
	set<Vertice>::iterator it;
	vector<bool> estado(N);
	no *atual = visitados;

	for (it = vertices.begin(); it != vertices.end(); it++)
		estado[*it] = true;

	for (int i = 0; i < N; i++) {
		if (estado[i]) {
			if (!atual->dir)
				atual->dir = cria_novo_no();
			atual = atual->dir;
		} else {
			if (!atual->esq)
				atual->esq = cria_novo_no();
			atual = atual->esq;
		}
	}
}
Ejemplo n.º 3
0
bool Visitados::foi_visitado(const set<Vertice>& vertices) {
	set<Vertice>::iterator it;
	vector<bool> estado(N);
	no *atual = visitados;

	for (it = vertices.begin(); it != vertices.end(); it++)
		estado[*it] = true;

	for (int i = 0; i < N; i++) {
		if (estado[i]) {
			if(!atual->dir)
				return false;
			atual = atual->dir;
		} else {
			if(!atual->esq)
				return false;
			atual = atual->esq;
		}
	}

	return true;
}
void JanelaPrincipal::getDadosCPU() {
    // Registradores
    Registradores->ClearAll();
    Registradores->InsertColumn(0,_("AX"));     //Acumulator
    Registradores->InsertColumn(1,_("BX"));     //Base
    Registradores->InsertColumn(2,_("CX"));     //Count
    Registradores->InsertColumn(3,_("DX"));     //Data  (Em alguns casos os registradores DX:AX são concatenados formando um registrador de 32bits para ser usado em instruções como MUL e DIV)
    Registradores->InsertColumn(4,_("IP"));     //Instruction Pointer
    Registradores->InsertColumn(5,_("SP"));     //Stack Pointer
    Registradores->InsertColumn(6,_("BP"));     //Base Pointer
    Registradores->InsertColumn(7,_("SI"));     //Souce Index
    Registradores->InsertColumn(8,_("DI"));     //Destination Index
    Registradores->InsertColumn(9,_("CS"));     //Code Segment
    Registradores->InsertColumn(10,_("DS"));    //Data Segment
    Registradores->InsertColumn(11,_("SS"));    //Stack Segment
    Registradores->InsertColumn(12,_("ES"));    //Extra Segment
    Registradores->InsertItem(0,wxString(cpu->getAX().c_str(), wxConvUTF8));    //AX
    Registradores->SetItem(0,1,wxString(cpu->getBX().c_str(), wxConvUTF8));     //BX
    Registradores->SetItem(0,2,wxString(cpu->getCX().c_str(), wxConvUTF8));     //CX
    Registradores->SetItem(0,3,wxString(cpu->getDX().c_str(), wxConvUTF8));     //DX
    Registradores->SetItem(0,4,wxString(cpu->getIP().c_str(), wxConvUTF8));     //IP
    Registradores->SetItem(0,5,wxString(cpu->getSP().c_str(), wxConvUTF8));     //SP
    Registradores->SetItem(0,6,wxString(cpu->getBP().c_str(), wxConvUTF8));     //BP
    Registradores->SetItem(0,7,wxString(cpu->getSI().c_str(), wxConvUTF8));     //SI
    Registradores->SetItem(0,8,wxString(cpu->getDI().c_str(), wxConvUTF8));     //DI
    Registradores->SetItem(0,9,wxString(cpu->getCS().c_str(), wxConvUTF8));     //CS
    Registradores->SetItem(0,10,wxString(cpu->getDS().c_str(), wxConvUTF8));    //DS
    Registradores->SetItem(0,11,wxString(cpu->getSS().c_str(), wxConvUTF8));    //SS
    Registradores->SetItem(0,12,wxString(cpu->getES().c_str(), wxConvUTF8));    //ES

    // Flags
    Flags->ClearAll();
    Flags->InsertColumn(0,_("CF"));             //Carry
    Flags->InsertColumn(1,_("ZF"));             //Zero
    Flags->InsertColumn(2,_("SF"));             //Sign
    Flags->InsertColumn(3,_("OF"));             //Overflow
    Flags->InsertColumn(4,_("PF"));             //Parity
    Flags->InsertColumn(5,_("AF"));             //Auxiliary Carry
    Flags->InsertColumn(6,_("IF"));             //Interupt
    Flags->InsertColumn(7,_("DF"));             //Direction
    Flags->InsertItem(0,wxString(cpu->getCF().c_str(), wxConvUTF8));    //CF
    Flags->SetItem(0,1,wxString(cpu->getZF().c_str(), wxConvUTF8)); //ZF
    Flags->SetItem(0,2,wxString(cpu->getSF().c_str(), wxConvUTF8)); //SF
    Flags->SetItem(0,3,wxString(cpu->getOF().c_str(), wxConvUTF8)); //OF
    Flags->SetItem(0,4,wxString(cpu->getPF().c_str(), wxConvUTF8)); //PF
    Flags->SetItem(0,5,wxString(cpu->getAF().c_str(), wxConvUTF8)); //AF
    Flags->SetItem(0,6,wxString(cpu->getIF().c_str(), wxConvUTF8)); //IF
    Flags->SetItem(0,7,wxString(cpu->getDF().c_str(), wxConvUTF8)); //DF

    //_("Data")
    MemView->ClearAll();
    MemView->InsertColumn(0,_("Segmento"));
    MemView->SetColumnWidth(0,80);
    MemView->InsertColumn(1,_("Conteúdo"));
    MemView->SetColumnWidth(1,580);

    MemView->InsertItem(0,_("Data"));
    MemView->SetItem(0,1,wxString(cpu->getDataMem().c_str(), wxConvUTF8));
    MemView->InsertItem(1,_("Code"));
    MemView->SetItem(1,1,wxString(cpu->getCodeMem().c_str(), wxConvUTF8));

    Pipeline->ClearAll();
    Pipeline->InsertColumn(0,_("IF"));          //Instruction Fetch
    Pipeline->SetColumnWidth(0,130);
    Pipeline->InsertColumn(1,_("ID"));          //Instruction Decode
    Pipeline->SetColumnWidth(1,130);
    Pipeline->InsertColumn(2,_("EX"));          //Execute
    Pipeline->SetColumnWidth(2,130);
    Pipeline->InsertColumn(3,_("MEM"));         //Memory Access
    Pipeline->SetColumnWidth(3,130);
    Pipeline->InsertColumn(4,_("WB"));          //Register Write Back
    Pipeline->SetColumnWidth(4,130);
    Pipeline->InsertItem(0,wxString(cpu->getPIF().c_str(), wxConvUTF8));
    Pipeline->SetItem(0,1,wxString(cpu->getPID().c_str(), wxConvUTF8));
    Pipeline->SetItem(0,2,wxString(cpu->getPEX().c_str(), wxConvUTF8));
    Pipeline->SetItem(0,3,wxString(cpu->getPMEM().c_str(), wxConvUTF8));
    Pipeline->SetItem(0,4,wxString(cpu->getPWB().c_str(), wxConvUTF8));

    wxString estado(cpu->getOn().c_str(), wxConvUTF8);
    ligado->SetLabel(estado);
}