Red de conocimiento informático - Problemas con los teléfonos móviles - Código fuente de Printfc

Código fuente de Printfc

# include & ltstdio.h & gt

# include & ltconio.h & gt

# include & ltstring.h & gt

#Definir tamaño 300

estructura typedef

{

char nombre[30];

int num

char todavía[10] ;

Precio flotante;

}Registro;

void DataInput(record *com, int *nptr);

int DataRead( record *com, int * nptr);

void DataStorage(record *com, int n /*Guardar información en el archivo*/

void data find();< / p>

visualización de datos nulos();

añadir datos nulos();

void DataDel();

void DataStatistic();

p>

int main()

{

Registrar el artículo [tamaño]

int número = 20/*Establecer la cantidad del artículo * /

char fn

Printf ("\ t ~ ~ ~ ~Sistema de gestión de productos~ ~ ~ ~ "); p >

{

Printf("\n\t\t1. Entrada de información del producto\ n "); /*Mostrar menú principal*/

Printf("\t \ t2. Visualización de información del producto\ n ");

Printf("\t\t3. Búsqueda de información del producto\ n ");

Printf("\t\t4. Add Información del producto\ n ");

Printf("\t\t5. La información del producto ha sido eliminada\ n ");

Printf("\t\t6. Estadísticas de información del producto \ n ");

Printf("\t\t0.

Salir del sistema");

printf(" \ n \ t ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ \ n ");

printf ("\tIngrese una opción (número 0-6):");

fflush(stdin);

scanf("%c ", & ampfn);

fflush(stdin);

p>

puts(" \ n ");

Cambiar (fn) /*Cambiar a una función diferente */

{

Caso " 1":

Entrada de datos (Shangpin y número de amplificador);

Interrupción /*Entrar; información*/

Caso "2": visualización de datos( );

Pausa /*Visualización de información*/

Caso "3":

búsqueda de datos();

Pausa /*Búsqueda de información*/

Caso "4":

DataAdd();

Interrupción; /*Agregar*/

Caso "5":

DataDel();

Interrupción /*Eliminar*/

Caso "6":

DataStatistic ();

Break /*Información estadística*/

Caso "0":

Devuelve 0;

Valor predeterminado: puts("\t\t¡No existe tal elemento! ¡Volver al menú principal!");

Pausa;

}

Printf ("\ n \ t \ tOver! Presione cualquier tecla para continuar"

getch();

puts(" \ n ");

}

}

Entrada de datos nula (registro * com, int * nptr)/*Entrada de información del producto*/

{

int I = 0;

int n;*Número total de entradas*/

char YesOrNo/*Determinar si se guardará* /

Char Shangming[30];/*Nombre de la empresa */

Territorio de Ma Hao; /*Número de producto*/

char Shangjia[10]; /*Precio unitario*/

Jia Dan flotante;

printf(" \ t \ tIngrese la cantidad de productos:

scanf("); %d ", & ampn);

* nptr = n ;/*nptr devuelve la cantidad del producto*/

printf(" \ t \ tIngrese la información del producto %d inmediatamente: \n\n ", n);

while( i<n)

{

Printf("Ingrese el nombre del producto:", I+1) ;

scanf("%s ",& amp Shang Ming);

Printf("Ingrese el número de producto:", I+1);

scanf("%d ", & amp马浩);

Printf("Ingrese el fabricante del producto:", I+1

scanf("%s "); , & amp Shangjia);

Printf(" Ingrese el precio unitario del producto: ", I+1);

scanf("%f ",& ampJia Dan) ;

If (Jia Dan& gt= 0 & amp& amp Jia Dan<=1000) /*Solo se pueden ingresar precios unitarios válidos*/

{

strcpy (com[i].Nombre, Shangming);

com[i]. número = Ma Hao;

strcpy(com[i]. Shang, Shangjia

com[i].

Precio = Jia Dan;

I = I+1;

}

Otros

Printf("El precio unitario ingresado es un valor no válido! \ n \ n ");

}/*End while*/

Printf("¿Quieres guardar los datos que acabas de ingresar? (Y/N) ?" );/*Elija guardar*/

fflush(stdin);

scanf("%c ", & ampYesOrNo);

if( YesOrNo== 'y'||YesOrNo=='Y ')

Almacenamiento de datos(com, n);

else if(YesOrNo == ' N ' | | YesOrNo == ' N ' )

Retorno;

Otro

Printf("La opción ingresada es incorrecta\n ");

Retorno;

}/*Fin de función*/

Void DataFind() /* Buscar */

{

void OnNumber(registro * com, int n); /*Ordenar por número de producto*/

int key; /*key es el valor clave que se encontrará*/

int low = 0; Límite inferior*/

int alto; /*límite superior*/

int medio/*valor medio*/

caracteres/*opción*/

record com[SIZE];

int n;

if(DataRead(com &N)==1) /*Leer información del archivo* /

{

OnNumber(com, n); /*Primero ordenar por número de producto*/

Alto = n;

Hacer

{

printf(" \ n \ n \ t \ tIngrese el número de producto que está buscando: "

scanf("%); d ",& amp key);

bajo = 0; alto = n;

mientras(bajo & lt;=alto)

{

mid = (high + low)/2; /*Método de búsqueda media*/

if (key == com[mid]). Número)

{

printf("\n\t\tEstás buscando %d producto\n", mid+1);

printf( "\t\tLos resultados son los siguientes:\n\n");

Printf("Número de serie\t\t\Nombre del producto\tNúmero de producto\tFabricante\tPrecio unitario\n"); /p>

printf(" % 3d % 17s % 12d % 12s % 8.1f \ n ", mid+1, com[mid]. nombre, com[mid]. num, com[mid]. Shang,

com[mid].price);

Break; /*Si lo encuentra, salga del bucle*/

}

if ( clave>com[mediados].

num)bajo = medio+1;

else alto = medio-1

}

if(bajo&gmuslo)

Printf( "\t\t, ¡este precio no fue encontrado!\ n ");

printf(" \ N \ t \ t¿Quieres continuar consultando (Y/N)?");

p>

ans = getch();

}

while(ans = = ' Y ' | | ans = = ' Y '); . while */

}

}

Almacenamiento de datos nulo (registro * com, int n) /*Ingrese y guarde el archivo*/

{

int I;

FILE * comPtr

Nombre de archivo de caracteres [20];

Printf(" Ingrese el nombre del archivo que desea guardar: ");

scanf("%s ", nombre del archivo);

Printf("Guardando información del producto en el archivo, espere. . .\ n ");

if((comPtr=fopen(FileName, " w"))==NULL)

Printf("File\n " no existe);

Otro

for(I = 0;i<n;i++)

fprintf(comPtr, "\n % 17s % 12d % 12s % 8.1f ", com[i]. nombre, com[i]. num, com[i]. Shang, com[i]. /p>

Intdataread (registro * com, int * nptr)/* Leer archivo */

{

int I = 0;

char archivo de datos[20];

FILE * comPtr

* nptr = 0;

Printf("Ingrese el nombre del archivo:");

p>

scanf("%s ", archivo de datos);

If ((comptr = fopen (datafile, " r")) == null)/*Abrir archivo* /

{

Printf("¡Este archivo no está disponible, vuelva a ingresar!\n ");

Devuelve 0;

}

Otros

{

Printf("Leyendo el precio unitario del producto, espere...\ n ");

Y (! feof(comPtr)

{

fscanf(comPtr, " %s%d%s%f " y ampcom[i]. Nombre y ampcom[i]. Número y ampcom [yo].

precio

i++;

}

* nptr = I

printf("\n"); >

fclose(comPtr);

Retorno 1;

}

}

visualización de datos anulados()

{

void OnPrice(record *com, int n); /*Según precio unitario*/

void OnNumber(record *com, int n); *Según número de producto*/

int N

int I

Registro com[300]

char SíNo/ *Si presionar Visualización secuencial*/

char tp

if(DataRead(com & amp; N)==1) /*Leer datos del archivo*/

{

Printf("Número de serie\t \t\Nombre del producto\tNúmero de producto\tFabricante\tPrecio unitario\n");

for(I = 0; i<n;i++)

printf(" % 3d % 17s % 12d % 12s % 8.1f \n ",i+1,com[i].nombre,com[i].num,com [i ]. Shang, com[i]. Precio);

Printf("¿Quieres mostrarlo en orden? (Sí/No)?");

fflush(stdin). ) ;

scanf("%c ", & ampyes no);

if(YesNo=='y'||YesNo=='Y ')

{

printf("\tIngrese el método de clasificación:\n");

Printf("\t(1. Ordenar por precio de menor a mayor; 2. Ordenar por precio Los números de producto se ordenan de menor a mayor ) ");

fflush(stdin);

scanf("%c ", & ampTP);

if (tp=='1 ')

OnPrice(com, N);

si no(tp =='2 ')

OnNumber (com, N);

Otros

printf(" \ t¡La entrada es incorrecta!\ n ");

}/*Visualización del resultado final*/

Void OnPrice(record *com, int n) /*Ordenar por precio unitario*/

{ int i , j;

Registrar la temperatura

printf(" \ t \ tOrdenar por precio unitario-\ n \ n "); el número total de productos es %d :\n ",n);

for(j = 0; j & ltn-1; J++) /*bubble sort*/

for (I = 0; i <n-j-1;i++)

if(com[i].precio>com[i+1].

precio)

{

temp = com[I];

com[I]= com[I+1];

com[I+1]= temp;

}

printf(" \ n \ t \ tLos resultados ordenados por calificaciones son los siguientes (de menor a mayor):\ n \ n ");

Printf("Número de serie\t \t\Nombre del producto\tNúmero de producto\tFabricante\tPrecio unitario\n ");

for(I = 0 ;i<n ;i++)

printf(" % 3d % 17s % 12d % 12s % 8.1f \n ", i+1, com[i].nombre, com[i].num, com[i] .Shang,

com[i].price);

}

Anular en número (registro * com, int n)/* Organizar en orden numérico */

{

int i, j;

Registrar temperatura

printf(" \ t \ t Ordenar por número de producto -\ n \ n ");

Printf("El número total de productos es %d:\n ", n);

for(j = 0; j & ltn -1;j++)

for(I = 0;i & ltn-j-1;i++)

if(com[i].num & gtcom[i+1 ] . Número)

{

temp = com[I];

com[I]= com[I+1];

< p. >com[I+1]= temp;

}

printf(" \ n \ tLos resultados ordenados por número de producto son los siguientes (de pequeño a grande):\ n \ n ");

Printf("Número de serie\t \t\Nombre del producto\tNúmero de producto\tFabricante\tPrecio unitario\n ");

for(I = 0 ;i<n ;i++)

printf(" % 3d % 17s % 12d % 12s % 8.1f \n ", i+1, com[i].nombre, com[i].num, com[i] .Shang,

com[i].

precio);

}

Void DataAdd() /* Agregar */

{

int i=0, n, m ;/*Nombre del producto*/

Char Shangming[30];

Territorio de Ma Hao;/*Fabricante*/

char Shangjia[ 10]; /p>

Float jadan;

char YesOrNo

record com[SIZE];

Printf ("\ t \ tLeer información de datos originales-\ n ");

if(DataRead(com & n)==1)

{

printf(" \ t \tSe ha completado la lectura de la información !\n\n");

printf("\t\tIngrese el número total de productos que se agregarán:");

scanf(" %d ", & ampm);

printf(" \ t \ tIngrese la información del producto %d inmediatamente:\n\n ", m

while(i & ltm)

{

Printf("Nombre del producto %d:", I+1);

scanf("%s ",& amp Shang Ming

Printf ("Número de artículo del %d artículo:", I+1

scanf ("%d ", & amp Ma Hao

); Printf("Fabricante del producto %d:", I+1);

scanf("%s ", & amp Shangjia

Printf("Precio unitario del artículo %); d:", I+1);

scanf("%f ", & ampJaDan);

If (JiaDan> = 0 & amp& ampJia Dan<=1000) /*Solo válido se pueden ingresar precios unitarios*/

{

stracpy(com[i+n].Name, Shang Ming

com[i+n]); . num = Ma Hao;

strcpy(com[i+n]. Shang, Shangjia);

com[i+n].

Precio = Jia Dan;

I = I+1;

}

Otros

Printf("El precio unitario ingresado es un valor no válido, vuelva a ingresarlo. \ n \ n ");

}

Printf("¿Desea guardar los datos que acaba de ingresar (S/N)?" );

p>

fflush(stdin);

scanf("%c ", & ampYesOrNo);

if(YesOrNo=='y'| |YesOrNo=='Y ')

Almacenamiento de datos(com, n+m);

else if(YesOrNo = = ' N ' | | YesOrNo = = ' N ')

Regresar;

Otros

Printf("La entrada es incorrecta, regresar al nivel anterior\n ");

}

}

voiddateddel()//Eliminar

{

void OnNumber(record *com , int n);

record com[SIZE];

int I;/*Número total de registros*/

int n;/*Número de registro a eliminar*/

int m;

Printf ("\ t \ tLeer información de datos original-\ n "); & amp; n)==1)

{

printf(" \ t \ tLos datos originales son los siguientes: \ n \ n "); >OnNumber(com, n);

Printf("Ingrese el número de serie del registro que desea eliminar");

scanf("%d ", & ampm) ;

Si (m & gt= 1. & ampm & lt=n)

{

for(I = m-1;i<n-1; i++)

com[I ]= com[I+1];

Almacenamiento de datos(com, n-1);

}

}

}

Estadísticas de datos nulos()/*estadísticas*/

{

int alto=0, bajo= 200, ave = 0;

int n, I, suma = 0

int g, l

registro com[TAMAÑO]; >

Printf("Leer información de datos- \n ");

if(DataRead(com, & ampn)==1)

{

Printf("El número total de productos es %d\n \n ",n);

for(I = 0;i<n;i++)

{

if(com[i].precio& gmuslo)

{

alto = com[i]. precio;

g = I;

}

if(com[i].precio<low)

{

bajo = com[i]. precio;

l = I;

}

suma += com[i].

Precio;

}

ave = suma/n;

printf(" \ t \ tHighest \ tlo west \ t promedio \ n "); Valor calculado*/

Printf("Estadísticas de precio unitario del producto:\t%d\t%d\t%d\n\n ", alto, bajo, promedio);

Printf("Número de serie\t \t\Nombre del producto\tNúmero de producto\tFabricante\tPrecio unitario\n");

for(I = 0;i<n;i++)

printf(" % 3d % 17s % 12d % 12s % 8.1f \ n ",i+1,com[i].nombre,com[i].num,com[i].shang,

com[i]. Precio);

printf("\t\tNúmero de serie\t\tNombre del producto\tNúmero de producto\tPrecio unitario del fabricante\n");

p>

Printf ("Los productos con mayor precio unitario son: % 3d % 17s % 12d % 12s % 8.1f \ n \ n ", g+1, com [g]. Nombre, com [g].

Printf("Los productos con el precio unitario más bajo son: % 3d % 17s % 12d % 12s % 8.1f \ n ", l+1, com [l]. nombre, com [l]. No.,.

}/*Fin de estadísticas*/

}