La Red de Conocimientos Pedagógicos - Currículum vitae - Recompensa de 100 puntos por preguntas en lenguaje C

Recompensa de 100 puntos por preguntas en lenguaje C

Darte un curso de diseño que empezó el año pasado. Espero que esto ayude.

//Sistema de gestión de información estudiantil. cpp: define el punto de entrada de la aplicación de consola.

//

#Include " stdafx.h "

# include & ltiostream & gt

# include & ltfstream & gt

# incluir & ltstring& gt

# incluir & ltsstream & gt

# incluir & ltiomanip & gt

# incluir & ltvector & gt

# incluir & ltalgoritmo& gt

Usar espacio de nombres estándar

/////////////// ////// ///////////////////////////////////////////////// // /////

Estudiantes de la clase {

cadena _ ID

Número de secuencia de cadena

Nombre de cadena;

p>

int math_score, phys_score, math1_score, comp_score, engl_score

Público:

cadena y cadena. ID();

Cadena y cadena. SN();

Cadena y cadena. nombre();

int & amp operator[](int index); //Operador[] sobrecargado

};

//* *** ****************************

Cadena a cadena. CStudent::ID(){

return _ ID

}

Cadena y cadena. CStudent::SN(){

Devuelve el número de serie;

}

Cadena y cadena.

CStudent::Name(){

Devolver nombre;

}

int & ampc estudiante::operador[](int index){

Cambiar (índice)

{

Caso 0:

Devolver math_score

Interrupción;

Caso 1:

Devolver phys _ puntuación

Descanso;

Caso 2:

Devolver matemáticas 1 _ puntuación;

p>

Pausa;

Caso 3:

Devolver comp_score

Pausa;

Caso 4:

Regresar engl_score

Pausa;

Predeterminado:

Lanza "¡Debes dar un exponente no mayor que 4 ni menor que 0!";

Descanso;

}

}

////////////// ////// ///////////////////////////////////////////////// // //////////

Categoría CCredit{

doble matemática, física, matemática1, comp, inglés

Público:

p>

CCredit();

Operador doble & amp[](int index); //Operador[] sobrecargado

};

/ /************************************************ * ***

CCredit::CCredit():matemáticas(7.0), física(4.0), comp(4.0), matemáticas1(4.0), inglés(6.0){}

double& ampCCredit::operator[](int index){

switch(index)

{

Caso 0:

Volver a matemáticas;

Descanso;

Caso 1:

Volver a física

Descanso;

Caso 2:

devolver matemáticas 1;

Descanso;

Caso 3:

Devolución de compensación;

Descanso;

Caso 4:

Volver al inglés;

Pausa;

Predeterminado:

Tirar "Debes dar ¡Un exponente no mayor que 4 y no menor que 0! ";

Romper;

}

}

//////////////// /////////////////////////////////////////////////// //// ///////////

Estudiantes de gestión de clases {

Protegido:

Vector estático & lt estudiantes & datos gt ; // Almacena las calificaciones originales de los estudiantes.

void on brower(); //Buscar datos

void OnFind(); //Buscar datos

void on invalidateinput(char *); Mensaje de error de entrada

void OnAddData(); //Agregar datos

bool on save() //Guardar

cmanagementstudent * parent;

Público:

título de cadena estática[8]; //nombre del curso

static int wid[8]; //ancho de impresión

cmanagementstudent ( cmanagementstudent * p = 0):parent(p){ }

bool datos iniciales(); //Leer datos en la memoria

Virtual void ShowMenu() //Mostrar menú

Evento virtual void do(int ID); //Respuesta a la entrada del usuario

};

cmanagementstudent * pBase;

Oyster & ;operador& lt& lt(ostream & ampos, const CStudent & ampst)

{

CStudent obj = st

os & lt& ltsetw(cmanagementstudent: :wid[ 0])<<obj. ID();

os & lt& ltsetw(cmanagementstudent::wid[1])& lt;& ltobj. SN();

os & lt& ltsetw(cmanagementstudent::wid[2])& lt;& ltobj.

nombre();

os & lt& ltsetw(cmanagementstudent::wid[3])& lt;& ltobj[0];

os & lt& ltsetw(cmanagementstudent::wid[ 4])& lt;& ltobj[1];

os & lt& ltsetw(cmanagementstudent::wid[5])& lt;& ltobj[2];

os & lt& ltsetw(cmanagementstudent::wid[6])& lt;& ltobj[3];

os & lt& ltsetw(cmanagementstudent::wid[7])& lt;& ltobj[4];

Volver al sistema operativo;

}

///////////////////////// // ///////////////////////////////////

Vector<student>cmanagement estudiante::datos ;

string cmanagement Student::title[8]= { "ID de estudiante", "Número de serie", "Nombre", "Matemáticas avanzadas", "Física general", "Matemáticas discretas", "Computadora" , "Inglés" };

int cmanagement estudiante::wid[8]= { 12, 6, 8, 10, 10, 10, 8, 6 }

void cmanagementstudent ::ShowMenu(){

cout & lt& ltendl

cout & lt& lt"* * * * * * * * * * * * * * * * * * * *Estudiante Sistema de gestión de puntuaciones * * * * * * * * * * * * * * \n";

cout & lt& lt"1 Vista previa\t2 Buscar\t3 Agregar\t4 Guardar\t0 Salir\n" ;

cout & lt& lt"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n";

}

void cmanagementstudent::OnInvalidateInput(char * str){

cout & lt& ltstr & lt& ltendl

}

boolcmanagestudent::initial data()//Datos variables para la inicialización.

{

ifstream fin(" puntuación . txt ");

if(fin.fail()){

cout & lt& lt"Archivo de datos no encontrado"

Devuelve falso

}

String s; //Define un objeto de cadena que lee cada línea del archivo.

getline(fin, s); //Mira la línea del título, no es necesario.

while(getline(fin, s)){

istringstream istr

Student Street;

istr & gt& gtST . );

istr & gt& gtST . SN();

istr & gt& gtHoly Name();

for(int I = 0; I& lt5; i++)

istr & gt& gtST[I];

datos . push _ back(ST);

}

fin . close();

Devuelve verdadero

}

void cmanagementstudent::OnAddData()

{

char ch

if(data.size () == 0)

{

Hacer

{

Calle del estudiante;

cout & lt& lt"Ingrese el nombre del estudiante:";

CIN & gt;& gtHoly Name()

cout & lt& lt"Ingrese su ID de estudiante:";

CIN & gt;& gtST . ID();

ST SN()= 1;

. for(int I = 0;i<5;i++)

{

cout & lt& lt"Por favor ingrese"

CIN>>ST [I]; p>

}

cout & lt& lt"¿Es correcta la entrada? y significa sí; r significa volver a ingresar; n significa darse por vencido\ n "; gt;& gtch;

if(ch=='y ')

datos . push _ back(ST);

} while( ch = =. ' r ');

}

Otro

{

Hacer{

Student Street ;

ST .ID()= datos[tamaño de datos()-1]. ID();

st.ID()[st.ID(). tamaño()-1]++;

ST SN()= datos[tamaño()-1]. SN();

st.SN()[st.SN().

size()-1]++;

cout & lt& lt"Por favor ingrese el nombre del estudiante:";

CIN & gt;& gtHoly Name();

for(int I = 0;i<5;i++)

{

cout & lt& lt"Ingrese"

CIN & gt & gtST; [I];

}

cout & lt& lt"¿La entrada es correcta? y significa sí; r significa volver a ingresar; n significa darse por vencido\n";

CIN & gt;& gtch;

if(ch=='y ')

datos push _ back(ST);

} while(ch == ' r ');

}

}

bool cmanagementstudent::on save()

{

of stream fout(" score . txt ");

if(fout.fail()){

cout & lt& lt"No se puede guardar"

Devuelve falso

}

for(int I = 0;i<8;i++)

fout & lt& lttitle[I]& lt;& lt" ";

fout & lt& ltendl

vector & ltstudent& gt*iterator it = data.begin();

mientras (it! =data.end()){

CStudent st = * it

fout & lt& ltST .

fout & lt& lt " " " & lt& ltST . SN();

fout & lt& lt" " " & lt& ltHoly Name();

for(int I = 0; i<5 ;i++)

fout & lt& lt" " " & lt& ltST[I];

fout & lt& ltendl

it++;

}

fout . close();

Devuelve verdadero

}

void cmanagementstudent::do event(int ID){

Cambiar (ID)

{

Caso 1:

en el navegador();

Interrupción

Caso 2:

OnFind();

Romper

Caso 3:

OnAddData() ;

Pausa;

Caso 4:

al guardar();

Pausa;

Caso 0:

cout & lt& lt"Adiós\n";

Salir(0);

Valor predeterminado:

OnInvalidateInput(" entrada 1, 2, 3 , 4, 0 ");

Romper;

}

}

///// ////// ///////////////////////////////////////////////// // ////

Clase CFind:estudiante de administración pública {

void on find name();

void onfindhhighscore();

anular OnF

indLowScore();

Público:

CFind(cmanagementstudent * p = 0):cmanagementstudent(p){ }

void ShowMenu(); //Mostrar Menú

void do event(int ID); //Respuesta a la entrada del usuario

};

//////////// / /////////////////////////////////////////////////

void CFind::ShowMenu(){

cout & lt& ltendl

cout & lt& lt"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *";

cout & lt& lt" 1 Buscar por nombre \t2Buscar puntuaciones altas\t3Buscar puntuaciones bajas\t0Salir\n";

cout & lt& lt"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n";

}

void CFind: :DoEvent(int ID)

{

Cambiar (ID)

{

Caso 1:

en buscar nombre();

Pausa;

Caso 2:

onfindhhighscore();

Pausa;

Caso 3:

OnFindLowScore();

Pausa;

Caso 0:

cout & lt& lt" Salir el menú de búsqueda \n";

pBase = parent

Eliminar esto;

Romper;

Predeterminado:

OnInvalidateInput(" entrada 1, 2, 3, 0 ");

Break

}

}

void CFind; :: OnFindName(){

Nombre de cadena;

cout & lt& lt"Ingrese el nombre del estudiante que desea encontrar:";

CIN & gt;& gt nombre;

Vector & ltstudent& gt* iterador it = data .

String tmp

bool first = true

Y (¡eso! =data.end()){

Si ((*it).Name()==nombre)

{

Si (primero)

{

for(int I = 0;i<8;i++)

cout & lt& ltsetw(wid[I])<<title [I];

cout & lt& ltendl

primero = false

}

cout & lt& lt(*it).

nombre()<<endl

}

it++;

}

}

void CFind :: onfindhhighscore(){

String scoring_name

cout & lt& lt"Ingrese el nombre del curso: ";

CIN & gt;& gtscore_ name

int num=0, index = 3;

while(index <8)//Calcula a qué curso ha ingresado el usuario.

{

if(title[index]==score_name)

descanso;

index++;

}

Vector <student>*iterator it = data.begin();

if(index>=8){

cout & lt& lt"El nombre del curso es incorrecto\n";

Retorno;

}

int puntuación;

cout & lt<"Puntuación de entrada:";

CIN>>Score;

bool first = true

Y (it!=data.end( )){

if(( * it)[index-3]>=score){

if (primero){

primero = false

for(int I = 0; i<8;i++)

cout & lt& ltsetw(wid[I])& lt;& lttitle[I];

cout & lt& ltendl

}

cout & lt& lt* it & lt& ltendl

num++;

}

it++;

}

cout & lt& lt" \n***ya"

}

void CFind::OnFindLowScore()

{

Cadena nombre_puntuación

cout & lt& lt"Ingrese el nombre del curso: ";

CIN>& gtscore_name

int num=0, index = 3;

while(index <8)// Calcula dónde ha ingresado el usuario a los cursos.

{

if(title[index]==score_name)

descanso;

index++;

}

Vector <student>*iterator it = data.begin();

if(index>=8){

cout & lt& lt"El nombre del curso es incorrecto\n";

Retorno;

}

int puntuación;

cout & lt<"Puntuación de entrada:";

CIN>>Score;

bool first = true

Y (it!=data.end( ))

{

if((* it)[index-3]<=puntuación)

{

si (primero){

primero = falso

for(int I = 0;i<8;i++)

cout & lt& ltsetw(wid[ I])<<Title[I];// Genera la información de cada elegible alumno.

cout & lt& ltendl

}

cout & lt& lt* it & lt& ltendl

num++;

}

it++;

}

cout & lt& lt" \n***ya"

}

//////////////////////////////////////////////// / p>

navegador de clase c:estudiante de administración pública {

void OnOrigin();

void en promedio()

void OnScoreAnasys(); ;

nulo en crédito();

Público:

CB remero(cmanagementstudent * p = 0):cmanagementstudent(p){ }

void ShowMenu(); //Mostrar menú

void do event(int ID); //Responder a la entrada del usuario

};

/ // ///////////////////////////////////////////////// ////// /////////

void CBrower::ShowMenu(){

cout & lt& ltendl

cout & lt& lt"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

cout & lt& lt"1 Puntuación original\t2Puntuación media\t3 Análisis de puntuación\t4 Créditos\t0Salir\n";

cout & lt& lt"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n";

}

void CBrower::DoEvent(int ID){

Cambiar( ID){

Caso 1:

OnOrigin();

Interrupción;

Caso 2:

en promedio();

Pausa;

Caso 3:

OnScoreAnasys();

Pausa;

Caso 4:

OnCredit();

Pausa;

Caso 0:

cout & lt& lt" Salir del menú de vista previa\ n";

pBase = parent

Eliminar esto;

Romper;

Valor predeterminado:

OnInvalidateInput ("entrada,,,");

Break;

}

}

void CBrower::OnOrigin (){

Vector<Student>*Iterador it = data.begin();

for(int I = 0;i<8;i++)

cout & lt& ltsetw (ancho[I])& lt;& lt

Título[I];

cout & lt& ltendl

Y (it!=data.end()){

cout & lt& lt* it & lt& ltendl

it++;

}

}

void CBrower::OnAverage()

{

vector <student>*iterator it = data.begin();

for(int I = 0;i<8;i++)

cout & lt& ltsetw(wid[I ])& lt;& lttitle[I];

cout & lt& lt"puntaje promedio";

y (it!= data.end ())

{

doble suma = 0;

for(int I = 3;i<8;i++)

{

suma+= (* it)[I-3];

}

cout & lt& lt* it & lt& lt" " " & lt& ltsum /5 & lt;& ltendl

it++;

}

cout & lt& ltendl

}

void CBrower::OnScoreAnasys()

{

Vector & lt estudiante & gt* iterador = datos .

cout & lt& lt "* * * * * * * * * * * * * *Análisis de desempeño personal* * * * * * * * * * * * \n";

for(int I = 0; I& lt3;i++)

cout & lt& ltsetw(wid[I])& lt;& lttitle[I];

cout & lt& ltendl

Y (it != data.end())

{

cout & lt& lt(*it).ID()& lt;& lt" ";

cout & lt& lt(*it). )& lt;& lt" ";

cout & lt& lt(*it).

nombre()& lt;& lt" " " & lt& ltendl

int recuento _ bueno = 0;

int recuento _ malo = 0;

cout & lt& lt"Excelentes resultados":

for(int I = 3;i<8;i++)

{

if((* it) [I- 3]>= 90)

{

cout & lt& lttitle[I]& lt;& lt":" & lt& lt(* it)[I -3]& lt;& lt" ";

count _ bueno++;

}

}

cout & lt& lt" \nA * * * "

cout & lt& lt"failed":

for(int I = 3;i<8;i++)

{

if((* it)[I-3]& lt;= 60)

{

cout & lt& lttitle[I]& lt & lt":" & lt& lt; (*it)[I-3]& lt;& lt" ";

cuenta_mala++;

}

}

cout & lt& lt" \na* * * "

it++;

cout & lt& lt"-"& lt;& ltendl

}

}

void CBrower::OnCredit()

{

Vector<Student> *Iterador it = comenzar();

.

for(int I = 0;i<8;i++)

cout & lt& ltsetw(wid[I])& lt ;& ltTítulo[I];

cout & lt& ltendl

Y (it!=data.end())

{

Crédito de crédito;

cout & lt& ltsetw(wid [0])& lt;& lt(*it).ID()& lt;& ltsetw(wid[1]);

cout & lt& lt(*it). ;& lt" ";

cout & lt& ltsetw(wid[1])& lt;& lt(*it) .

nombre()<<setw(wid[1]);

for(int I = 0;i<5;i++)

{

if((* it)[I]& gt;= 60)

cout & lt& ltcredit[I]& lt;& ltsetw(wid[I+4]);

Otros

cout & lt& lt" 0 " & lt& ltsetw(wid[I+4]);

}

it++;

cout & lt& ltendl

}

}

void cmanagementstudent::on brower(){

pBase = new c brower( pBase);

}

void cmanagementstudent::OnFind()

{

pBase = new CFind(pBase);

p>

}

//////////////////////////////////////// /////////

int main()

{

pBase = nuevo cmanagementstudent;

if(pBase ->;InitialData()){

int ID

mientras(1){

pBase->;ShowMenu();

CIN>>ID

pBase->hacer evento(ID);

}

}

Eliminar pBase

Devuelve 0;

}

Necesita configurar un socre.txt para almacenar inicialmente la información de los estudiantes.

Déjame mostrarte un ejemplo.

ID del estudiante Nombre Matemáticas avanzadas Física general Matemáticas discretas Computación Inglés

200611002 Chen Xiaobao

200611003 3 Chen Dalong 81 83 97 85 73

200611004 4 Chen Wen83 49 79 82 80

200611005 5 Cheng Zhengxing79 80 91 77 76

Puedes preguntarme si no entiendes.