elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Disculpen la molestia alguien podria ayudarme a realizar este programa.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Disculpen la molestia alguien podria ayudarme a realizar este programa.  (Leído 2,756 veces)
kxxx

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Disculpen la molestia alguien podria ayudarme a realizar este programa.
« en: 30 Marzo 2017, 22:46 pm »

Desarrollarlo en lenguaje C++ utilizando sistema operativo Ubuntu. El programa deberá ingresar los datos de marcaje del empleado de una oficina, la cual trabaja en un horario definido de la siguiente manera:
a.   Entrada 8:00 de la mañana
b.   Salida 16:00 de la tarde
c.   Horario de almuerzo  12:00 a 13:00 al medio día.
ii.   Información General:
   Nombre completo
   Código de empleado
   Fecha
   Hora de Ingreso a laborar
   Hora de salida de su horario de almuerzo
   Hora de entrada de su horario de almuerzo
   Hora de salida de sus labores.
iii.   Requerimiento:
1.   El programa debe contener un ABC de la información.
2.   Los datos deben guardarse en un archivo llamado “Control.txt”, el que se verificará al momento de la calificación, este debe ser un archivo directo.
3.   El programa debería permitir generar consultas de los campos en forma individual, y presentar en pantalla los datos de código de empleado, nombre y fecha consultada, así como el campo elegido para su consulta.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Disculpen la molestia alguien podria ayudarme a realizar este programa.
« Respuesta #1 en: 30 Marzo 2017, 23:05 pm »

que llevas hecho? que no sabes? donde tienes dudas?


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
kxxx

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Disculpen la molestia alguien podria ayudarme a realizar este programa.
« Respuesta #2 en: 31 Marzo 2017, 00:13 am »

fijate que un amigo me paso este programa similar para que lo revisara, lo estuve revisando por horas y me tira unos errores que no se como solucionarlos. y esto es lo que llevo



Código
  1. #include <iostream>
  2. #include <string>
  3. #include <cstdlib>
  4. using namespace std;
  5. int const trabajador=50;
  6. int const dias=30;
  7.  
  8. struct nacimiento{
  9. int dia;
  10. int mes;
  11. int anyo;
  12. };
  13. struct datos {
  14. int id;
  15. string nombre;
  16. string domicilio;
  17. int CP;
  18. char sexo;
  19. nacimiento fecha;
  20. };
  21. void introducir (datos& reg);
  22. bool fecha (datos reg);
  23. int busca_id(datos reg[trabajador], int dni, int inicio, int final);
  24. void imprimirEmpleado (datos reg);
  25. void modificarDatos (datos& reg);
  26. void ordena_sele(datos reg[trabajador], int cont);
  27. void intercambia(int& a, int&b);
  28.  
  29. int main(void){
  30. int opc=1;
  31. datos empleados[trabajador];
  32. int contador_empleados=1;
  33. int job=0;
  34. char continua;
  35. int principio=1;
  36. while(opc!=0){
  37.  
  38. cout << "CONTROL DE PRESENCIA" << endl;
  39. cout << "1. Introducir/modificar datos de empleados " << endl;
  40. cout << "2. Horarios de entrada y salida " << endl;
  41. cout << "3. Consultar datos personal " << endl;
  42. cout << "4. Control laboral de personal " << endl;
  43. cout << "0. Salir " << endl;
  44. cout << "Seleccione una opcion: " <<endl;
  45. cin >> opc;
  46. switch(opc){
  47. case 1:
  48. {
  49. while(opc2!=0){
  50. system("cls"); //limpia la pantalla
  51. cout << "MENU DATOS" << endl;
  52. cout << "1. Introducir datos de empleados" << endl;
  53. cout << "2. Modificar datos de empleados" << endl;
  54. cout << "0. Volver a menu principal "<< endl;
  55. cout << "Seleccione una opcion: "<<endl;
  56. cin >> opc2;
  57.  
  58. switch(opc2){
  59.  
  60. case 1:
  61. {
  62. cout<<"Introduzca los datos del 1er empleado"<<endl;
  63. introducir (empleados[job]);
  64. cout<<"Si no desea introducir m·s datos pulse N"<<endl;
  65. cin>>continua;
  66. while(job<trabajador && continua!='N')
  67. { job++;
  68. contador_empleados++;
  69.  
  70. cout<<endl<<"Introduzca los datos del "<<job+1<<"o empleado"<<endl;
  71. introducir (empleados[job]);
  72. ordena_sele(empleados, contador_empleados);
  73. cout<<"Si no desea introducir mas datos pulse N"<<endl;
  74. cin>>continua;
  75. }
  76. }
  77. break;
  78.  
  79. case 2:
  80. {
  81. int dni;
  82. int pos;
  83. cout<<"Introduzca DNI del empleado que desee modificar(sin letra)"<<endl;
  84. cin>>dni;
  85.  
  86. pos = busca_id(empleados,dni, principio, contador_empleados);
  87. if (pos!=-1){
  88. cout<< "Los datos del empleado son:"<<endl;
  89. imprimirEmpleado(empleados[pos]);
  90. modificarDatos(empleados[pos]);
  91. }else{ cout <<"No existe empleado"<<endl;
  92. }
  93. }
  94. break;
  95. case 0:
  96.  
  97. break;
  98. default:
  99. cout << endl;
  100. cout << " La opcion es incorrecta, vuelva a seleccionar una opcion " << endl;
  101. cout << endl;
  102. break;
  103. }// fin switch
  104. }// fin while
  105. } // fin case 1 general
  106. break;
  107.  
  108. case 2:
  109. { int opc3=1;
  110. system("color 0C");
  111. while(opc3!=0){
  112. system("cls"); //limpia la pantalla
  113. cout << "MENU HORARIOS" << endl;
  114. cout << "Si desea introducir el horario de un trabajador pulse 1"<<endl;
  115. cout << "Si desea volver al menu principal pulse 0"<<endl;
  116. cout << "Seleccione una opcion: " <<endl;
  117. cin >> opc3;
  118.  
  119. switch(opc3){
  120. case 1:
  121.  
  122. break;
  123. case 0:
  124.  
  125. break;
  126. default:
  127. cout << endl;
  128. cout << " La opcion es incorrecta, vuelva a seleccionar una opcion " << endl;
  129. cout << endl;
  130. system ("pause");
  131. break;
  132. } //fi del switch
  133. }// fin del while
  134. } // fin case 2 general
  135. break;
  136.  
  137. case 3:
  138. {
  139. system("color 0D");
  140. char opc4='a';
  141. while(opc4!='0'){
  142. system("cls"); //limpia la pantalla
  143. cout << "CONSULTA DE DATOS" << endl;
  144. cout << "1. Un solo empleado por DNI " << endl;
  145. cout << "*. Todos los empleados (pulse ascerisco) " << endl;
  146. cout << "0. Para volver al menu principal " << endl;
  147. cout << "Seleccione una opcion: " <<endl;
  148. cin >> opc4;
  149. switch(opc4){
  150. case '1' :
  151. // buscar e introducir
  152. break;
  153. case '*':
  154. int job;
  155. for(job=0;job<=contador_empleados-1;job++){// si no relleno todos los trabajadores da error
  156. imprimirEmpleado(empleados[job]);
  157. }
  158. system ("pause");
  159. break;
  160.  
  161. case '0':
  162. break;
  163.  
  164. default:
  165. cout << endl;
  166. cout << "La opcion es incorrecta, vuelva a seleccionar una opcion " << endl;
  167. cout << endl;
  168. system ("pause");
  169. break;
  170. }//final while
  171. } //fi del switch
  172. }// fin case 3 general
  173. break;
  174.  
  175. case 4:
  176. { int opc5=1;
  177. while(opc5!=0){
  178. system("color 0E");
  179. system("cls"); //limpia la pantalla
  180. cout << "CONSULTA HORARIOS" << endl;
  181. cout << " 1. Consulta un dÌa " << endl;
  182. cout << " 2. Consulta la presencia de un empleado " << endl;
  183. cout << " 0. Volver menu pricipal " << endl;
  184. cout << "Seleccione una opcion: " <<endl;
  185. cin >> opc5;
  186.  
  187. switch(opc5){
  188. case 1:
  189. //buscar dÌa
  190.  
  191. break;
  192. case 2:
  193. //buscar dni y mostrar tabla de horarios
  194. break;
  195.  
  196. case 0:
  197. break;
  198.  
  199. default:
  200. cout << endl;
  201. cout << " La opcion es incorrecta, vuelva a seleccionar una opcion " << endl;
  202. cout << endl;
  203. system ("pause");
  204. break;
  205. } //fi del switch
  206. }// fin del while
  207. } // fin case 4 general
  208. break;
  209.  
  210. case 0:
  211. cout<<"Gracias por utilizar el servicio."<<endl;
  212. break;
  213.  
  214. default:
  215. cout << endl;
  216. cout << " La opcion es incorrecta, vuelva a seleccionar una opcion " << endl;
  217. cout << endl;
  218. system ("pause");
  219. } //fi del switch
  220. }//fin del loop general
  221. system("pause");
  222. } // fin main
  223. void introducir (datos& reg){
  224. string stub; //Para el "ignore"
  225. char stub2; //para la fecha
  226. cout<<endl <<"Introduzca DNI del trabajador (sin letra)" <<endl;
  227. cin >> reg.id;
  228. getline(cin, stub); //Esto es equivalente a cin.ignore()
  229. cout<<endl <<endl <<"Escriba el nombre y apellidos del trabajador "<<endl;
  230. getline(cin, reg.nombre);
  231. cout<<endl <<"Escriba domicilio del trabajador " <<endl;
  232. getline(cin, reg.domicilio);
  233. cout<<endl <<"Escriba codigo postal del trabajador " <<endl;
  234. cin >> reg.CP;
  235. cout<<endl<<"Introduzca fecha nacimiento del trabajador (dd/mm/aaaa)"<< endl;
  236. cin >> reg.fecha.dia;
  237. cin >> stub2 >> reg.fecha.mes;
  238. cin >> stub2 >> reg.fecha.anyo;
  239. while(!fecha(reg)){
  240. cout << "Fecha erronea. Introduzca de nuevo:" << endl;
  241. cin >> reg.fecha.dia;
  242. cin >> stub2 >> reg.fecha.mes;
  243. cin >> stub2 >> reg.fecha.anyo;
  244. }
  245. cout<<endl<<"Intruduzca el sexo del trabajador (m/h)" << endl;
  246. cin>>reg.sexo;
  247. while(reg.sexo!='m' && reg.sexo!='h')
  248. {
  249. cout<<"Letra incorrecta, introduzca m o h"<<endl;
  250. cin>>reg.sexo;
  251. }
  252. }
  253. bool fecha (datos reg){
  254. bool fecha_tra=true;
  255. if((reg.fecha.anyo>2007||reg.fecha.anyo<1947) || reg.fecha.mes>12 ){ //Los trabajadores no pueden tener menos de 16 aÒos
  256. fecha_tra=false;}
  257. else if ((reg.fecha.mes==4||reg.fecha.mes==6||reg.fecha.me s==9||reg.fecha.mes==11) && reg.fecha.dia<=30){
  258. fecha_tra=true;
  259. }else if (reg.fecha.mes==2 && reg.fecha.dia<=28){ //suponemos que los bisiestos no existen
  260. fecha_tra=true;
  261. } else if ((reg.fecha.mes==1||reg.fecha.mes==3||reg.fecha.me s==5||reg.fecha.mes==7||reg.fecha.mes==8||reg.fech a.mes==10||reg.fecha.mes==12) && reg.fecha.dia<=31){
  262. fecha_tra=true;
  263. }else{fecha_tra=false;}
  264. return fecha_tra;
  265. }
  266. int busca_id(datos reg[trabajador], int dni, int inicio, int final){
  267. while(inicio<=final){
  268. int medio=(inicio+final)/2;
  269. if(dni<reg[medio].id){
  270. inicio=medio+1; // buscamos en la segunda mitad de la tabla
  271. }else if (dni>reg[medio].id){
  272. final=medio-1;}
  273. else
  274. return medio;
  275. }
  276. return -1;
  277. }
  278. void modificarDatos (datos& reg){
  279. string stub; //Para el "ignore"
  280. char stub2; //para la fecha
  281. int opc_acc;
  282. while(opc_acc!=0){
  283. system ("clear");
  284. cout << "MODIFICAR"<< endl;
  285. cout << "1. Nombre " << endl;
  286. cout << "2. DirecciÛn " << endl;
  287. cout << "3. Codigo postal" << endl;
  288. cout << "4. Fecha de nacimiento " << endl;
  289. cout << "5. Sexo " << endl;
  290. cout << "6. Eliminar datos trabajador"<<endl;
  291. cout << "0. Volver men? anterior" << endl;
  292. cout << "Seleccione una opcion: " <<endl;
  293. cin>>opc_acc;
  294. switch (opc_acc){
  295. case 1:{
  296. cout<<endl <<endl <<"Escriba el nombre y apellidos del trabajador "<<endl;
  297. getline(cin, reg.nombre);
  298. }
  299. break;
  300. case 2:{
  301. cout<<endl <<"Escriba domicilio del trabajador " <<endl;
  302. getline(cin, reg.domicilio);
  303. }
  304. break;
  305. case 3:{
  306. cout<<endl <<"Escriba codigo postal del trabajador " <<endl;
  307. cin >> reg.CP;
  308. }
  309. break;
  310. case 4:{
  311. cout<<endl<<"Introduzca fecha nacimiento del trabajador (dd/mm/aaaa)"<< endl;
  312. cin >> reg.fecha.dia;
  313. cin >> stub2 >> reg.fecha.mes;
  314. cin >> stub2 >> reg.fecha.anyo;
  315. while(!fecha(reg)){
  316. cout << "Fecha erronea. Introduzca de nuevo:" << endl;
  317. cin >> reg.fecha.dia;
  318. cin >> stub2 >> reg.fecha.mes;
  319. cin >> stub2 >> reg.fecha.anyo;
  320. }
  321. }
  322. break;
  323. case 5:{
  324. cout<<endl<<"Intruduzca el sexo del trabajador (m/h)" << endl;
  325. cin>>reg.sexo;
  326. while(reg.sexo!='m' && reg.sexo!='h')
  327. {
  328. cout<<"Letra incorrecta, introduzca m o h"<<endl;
  329. cin>>reg.sexo;
  330. }
  331. }break;
  332. case 6:
  333. // AcciÛn que elimine todo
  334. break;
  335. case 0:
  336. break;
  337. default:
  338. cout<<"Opcion incorrecta vuelva a elegir"<<endl;
  339. system ("pause");
  340. break;
  341. }
  342. }
  343. }
  344. void imprimirEmpleado (datos reg){
  345. cout<<"El empleado con dni "<< reg.id << " tiene los siguientes datos almacenados:"<<endl;
  346. cout<<"Nombre y apellidos: "<< reg.nombre<< endl;
  347. cout<<"Direccion: " << reg.domicilio <<" "<<reg.CP<<endl;
  348. cout<<"Fecha nacimiento: " <<reg.fecha.dia<<"/"<<reg.fecha.mes<<"/"<<reg.fecha.anyo<<endl;
  349. cout << "Sexo: "<< reg.sexo<<endl;
  350. }
  351. void ordena_sele(datos reg[trabajador], int cont){
  352. int i, j, posmin;
  353. for (i=0; i<cont-1; i++) {
  354. posmin=i;
  355. for (j=i+1; j<cont; j++) {
  356. if (reg[posmin].id>reg[j].id) posmin=j;
  357. }
  358. intercambia(reg[i].id,reg[posmin].id);
  359. }
  360. }
  361. void intercambia(int& a, int&b){
  362. int aux;
  363. aux=a; a=b; b=aux;
  364. }


· Los códigos deben ir en etiquetas GeSHi
· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex
« Última modificación: 31 Marzo 2017, 00:36 am por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Disculpen la molestia alguien podria ayudarme a realizar este programa.
« Respuesta #3 en: 31 Marzo 2017, 00:48 am »

te explico vamos a ayudarte a resolver tus dudas... si no indicas dudas, hay poco que podamos hacer...

el programa tiene errores simples, todo lo que tienes que hacer es leer lo que te dice el compilador e ir a la linea y letra del error

el primer error que es el unico "real" a primera vista es que creaste opc2 de la nada y no está definido, ya tienes un opc definido que no usas...

de resto si hay errores de logica es poco probable que alguien por gusto se ponga a revisar un programa de 364 lineas mal identado y sin comentarios... así que indica que no sabes o que error tienes
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
kxxx

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Disculpen la molestia alguien podria ayudarme a realizar este programa.
« Respuesta #4 en: 5 Abril 2017, 20:49 pm »

ok agradezco tu comentario, esque la verda me cuesta muchisimo programar y te soy sincero no se ni como empezar y por eso recurri a esta ayuda.... Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Disculpen la molestia
Multimedia
-=Hate_dark=- 2 1,885 Último mensaje 25 Marzo 2005, 20:51 pm
por ¤ Nerviozzo ¤
Alguien puede ayudarme con este programa ? en C (Linux) « 1 2 »
Programación C/C++
tadprox 14 7,750 Último mensaje 4 Junio 2013, 19:14 pm
por leosansan
Hola, alguien podria ayudarme con este codigo de c++
Programación C/C++
orange43 4 5,922 Último mensaje 15 Marzo 2015, 23:32 pm
por orange43
¿Alguien podría ayudarme con este fragmento de código?
Programación C/C++
AnthonyS 2 2,580 Último mensaje 15 Diciembre 2016, 19:15 pm
por AnthonyS
Disculpen, ¿Alguien podria ayudarme con este problema e C?
Dudas Generales
Froppy 0 1,924 Último mensaje 7 Marzo 2023, 02:43 am
por Froppy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines