Cómo construir un sistema de gestión usando lenguaje C
Puede consultar esta libreta de direcciones e intentar reescribirla usted mismo, el principio es similar
//Archivo de encabezado
#include "stdio.h"
#include "string.h"
#include "windows.h"
#include "iostream.h"
# incluir "stdlib .h"
#include "conio.h"
#define MAX_LIST 3
#define FILE_NAME"phone_list.txt"
//Declaración de función
int check_phone(char *phone_num);//Buscar número de teléfono
void menu();//Menú principal de gestión de la libreta de direcciones del estudiante
void get_line(char *cmd);//Aceptar caracteres ingresados por el usuario en la línea de comando
void add_user();//Agregar un usuario
int load_file (void);//Cargar archivo
int save_file(void);//Archivo de almacenamiento
void show_all(void);//Mostrar usuario
void del_user(void);// Eliminar usuario
void found_user(void);//Buscar usuario
void change_user(void);//Modificar usuario
void fenlei_user(void);/ /Mostrar todos los usuarios por categoría
void fenlei_user1();//Mostrar todos los usuarios móviles
void fenlei_user2();//Mostrar todos los usuarios de China Unicom
void fenlei_user3 ();//Mostrar todos los usuarios de telecomunicaciones
//Definir estructura
struct phone_node{
charname[10] ;
charphone[12];
charflag;
};
struct phone_node phone_list[MAX_LIST];
char cmd[128];
//Agregar función
void add_user()//Para implementar la función de agregar un registro de usuario a la libreta de direcciones, use la función add_user () para implementarlo
{
system("color56");
system("cls");
inti, ret;
charu_name[10];
charflag = 0;
printf("Ingrese el nombre de usuario:\n");
get_line(cmd);
strcpy(u_name,cmd);
printf("Ingrese el número de teléfono móvil del usuario:\n");
get_line(cmd);
ret= check_phone (cmd);//Compruebe si el número de usuario es válido y, si es válido, agréguelo a la matriz de estructura
si (ret)
{
printf(" Agregar número de usuarios
Hay un error en los datos, ¡vuelve a ingresar! \n");
}
else
{
for(i=0;i { if(phone_list[i].flag==0) { strcpy(phone_list[i].name,u_name ); strcpy(phone_list[i].phone,cmd); phone_list[i].flag=1;//Establecer el registro actual para que sea válido printf("¡Agregue datos de usuario exitosamente!\nNombre de usuario: %s\nNúmero de teléfono móvil: %s\n", phone_list[i].name,phone_list[i].phone); flag= 1;//Indica que hay espacio de almacenamiento y se ha reservado un registro break; } } if(flag== 0) printf("El usuario actual está completo, ¡borre otro usuario!\n"); } } //Función principal int main(){ load_file(); / /intret; while(1){ menú(); get_line(cmd); switch(cmd[0 ]) { case '0': printf("¡Gracias por usar!\n"); return0 ; ruptura ; caso '1': add_user(); ruptura; caso '2': show_all(); cambiar_usuario(); br eak; caso '3': found_user(); descanso; caso '4': show_all(); del_user(); show_all(); descanso; caso '5': show_all(); pausa; caso'6': fenlei_user(); break; predeterminado: printf("¡Entrada incorrecta, elija de nuevo!\n"); } save_file ( ); } return0; } /*------------- - ------------------- Nombre de la función: get_line Función de la función: acepta caracteres ingresados por el usuario, solo retorno de carro o salto de línea Parámetro de entrada: char*cmd almacena la primera dirección del búfer de caracteres Valor de retorno: Ninguno -------- -------------------------------------*/ //Eliminar función void get_line(char*cmd) { chartemp; while(1) { temp=getchar(); if(temp==0xa||temp==0xd) { *cmd= '\0'; descanso; } *cmd=temp; cmd++; } } //Número de cheque int check_phone(char *phone_num) { system ("color 56"); system("cls"); inti; if(strlen(phone_num)==11) { printf("El nuevo número de teléfono móvil ingresado es: %s\n",phone_num); for(i=0;i<11;i++) { if(phone_num[i]<'0'||phone_num[i]>'9') { return1; } } } más { return1; } return 0; } //Eliminar registro void del_user(void){ inti; charflag=0; printf("Ingrese el nombre de usuario:"); get_line(cmd); for( i=0;i if(phone_list[i].flag==1){ if(strcmp(phone_list[i].name,cmd )==0){ phone_list[i].flag=0; printf("¡Elimine los datos del usuario correctamente!\nNombre de usuario: %s, número de teléfono móvil: %s \ n",phone_list[i].name,phone_list[i].phone); flag=1;//Representa la eliminación de un registro ruptura; } } } if(flag==0) printf("usuario no encontrado\n"); } //Mostrar todos los registros void show_all(void){ inti; para (i=0;i if(phone_list[i].flag==1){ printf("[%d]Nombre=%s ,teléfono=%s\n",i,lista_teléfonos[i].nombre,lista_teléfonos[i].teléfono); } } } //Función de búsqueda void found_user(void){ inti; cha rflag=0; printf("Ingrese el nombre de usuario que desea encontrar:"); get_line(cmd); for(i=0; i< MAX_LIST;i++){ if(phone_list[i].flag==1){ if(strcmp(phone_list[i].name,cmd)==0 ){ printf("¡Búsqueda exitosa!\n"); printf("[%d]Nombre=%s,teléfono=%s\n",i,phone_list [i ].name,phone_list[i].phone); flag=1;//Representa un registro encontrado break; } p > } } if(flag==0) printf("¡usuario no encontrado!\n"); } void change_user(void){ inti; charflag=0; printf("Ingrese el usuario para encontrar Nombre: "); get_line(cmd); for(i=0;i if(phone_list[ i] .flag==1){ if(strcmp(phone_list[i].name,cmd)==0){ printf("¡Búsqueda exitosa!\n" printf("[%d]Nombre=%s,teléfono=%s\n",i,lista_teléfonos[i].nombre,lista_teléfonos[i].teléfono); flag=1;//Representa un registro encontrado ruptura; } } } if(flag==0){ printf("¡usuario no encontrado!\n"); } printf("Por favor, introduzca el información que desea modificar Nombre: "); get_line(cmd); strcpy(phone_list[i].name,cmd); printf( "¡Modificación exitosa! \n"); printf("Ingrese el número de teléfono que desea modificar:"); get_line(cmd); strcpy(lista_teléfonos[i].teléfono, cmd); printf("¡Modificación exitosa!\n"); } //Mostrar todos los usuarios por categoría void fenlei_user(void){ printf("Seleccione la categoría de visualización:\n\t\t1-Mostrar todos los usuarios móviles\n\t\t2-Mostrar todos los usuarios de China Unicom\n\t\ t3-Mostrar todos los usuarios de telecomunicaciones\n"); get_line(cmd); switch(cmd[0]) { case '1': printf("La lista de usuarios móviles es la siguiente:\n"); fenlei_user1(); break; case'2': printf("La lista de usuarios de China Unicom es la siguiente:\n"); fenlei_user2(); break; case'3': printf("La lista de usuarios de telecomunicaciones es la siguiente:\n"); fenlei_user3( ); break; predeterminado: printf("¡Selección incorrecta!\n"); break; } } void fenlei_user1()//Mostrar todos los usuarios móviles { inti; chara[3]; for(i=0;i { if(phone_list[i ].flag==1) { strncpy(a,phone_list[i].phone,3); a[3]='\ 0'; if(strcmp(a ,"134")==0||strcmp(a,"135")==0||strcmp(a,"136")==0| |strcmp(a,"137")==0||strcmp (a,"138")==0||strcmp(a,"139")==0||strcmp(a,"158")== 0||strcmp(a,"159")==0| |strcmp(a,"188")==0) printf(" [%d] Nombre: %s Número: %s \n",i,lista_teléfonos[i].nombre,lista_teléfonos[ i].teléfono); } } } void fenlei_user2()//Mostrar todos los usuarios de China Unicom { inti; chara[3]; for(i=0;i { if(phone_list[i].flag==1) { strncpy(a,phone_list[i].phone,3); a[3]='\0'; if(strcmp(a ,"130")==0||strcmp(a,"131")==0||strcmp(a,"132")==0||strcmp(a,"155")==0||strcmp (a,"156")==0||strcmp(a,"185")==0||strcmp(a,"186")==0) printf(" [%d ] Nombre: %s Número: %s \n",i,phone_list[i].name,phone_list[i].phone); } } } void fenlei_user3()//Mostrar todos los usuarios de telecomunicaciones { inti; chara[3]; for(i=0;i { if(phone_list[i].flag==1) { strncpy(a,phone_list[i].phone,3); a[3]='\0'; si (strcmp(a,"133")==0||strcmp(a,"153")==0||strcmp(a,"180")==0||strcmp(a,"189")== 0) printf(" [%d] Nombre: %s Número: %s\n",i,phone_list[i].name,phone_list[i].phone); } } } //Menú principal menú vacío(){ sistema ("color 48"); printf("\t\t============================== = ================================\n"); printf("\t \ t----------------****Sistema de gestión de libreta de direcciones de estudiantes******------------------\ n"); printf("\t\t================================= =============================\n"); printf(" \t\t1.Add Usuario:\n"); printf (" \t\t2. Modificar usuario:\n"); printf(" \t\t3. Buscar usuario:\n"); printf(" \t \t4. Eliminar usuarios:\n"); printf(" \t\t5. Mostrar todos los usuarios:\n"); printf(" \t\t6. Mostrar usuarios por categoría:\n"); printf(" \t\t0. Salir del sistema:\n"); printf("\t\t-- -------------------------------------------------- -- --------\n"); printf("\t\tPor favor seleccione:"); } int save_file (void){ ARCHIVO*fp; fp=fopen(FILE_NAME,"w"); if(NULL==fp){< / p> printf("error de apertura de archivo\n"); return-1; } fwrite(phone_list,sizeof(struct phone_node ) ,MAX_LIST,fp); fclose(fp); printf("guardar datos en archivo\n"); return0; } int load_file(void){ ARCHIVO*fp; intret; fp=fopen(FILE_NAME, " r"); if(NULL==fp){ printf("error de apertura de archivo\n"); devuelve guardar_archivo(); p > } ret=fread(phone_list,sizeof(structphone_node),MAX_LIST,fp); if(ret!=MAX_LIST){ fclose(fp); printf("reeor de carga de archivos\n"); return-1; } fclose ( fp); printf("datos de carga de archivo correctos\n"); return0; }