Por favor ayuda con la programación en C, ¡gracias!
Primero, inicie Visual Studio, aquí hay una demostración de la versión 2005.
Luego crea un nuevo proyecto MFC y llámalo Calculadora.
Dado que esta calculadora es muy simple, solo usa el tipo de diálogo y le permite usar los botones de maximizar y minimizar.
No se requieren cambios para las dos páginas siguientes y se utilizará la configuración predeterminada. Así que simplemente haga clic en el botón Finalizar para cerrar el asistente.
Luego, el programa completará la inicialización de todo el proyecto. Si la memoria de su computadora es de 512 MB o menos, o la frecuencia de la CPU es de 1.6 GHZ o menos, se quedará atascado en una ciudad pequeña, espere.
Después de completar el proceso de inicialización, puede encontrar el proyecto que se muestra en la "Vista de recursos" y abrir el cuadro de diálogo.
Hay un control de texto estático y dos botones en el cuadro de diálogo predeterminado. El texto y el botón "Aceptar" no son lo que necesitamos y se pueden eliminar. Luego vaya a la "Caja de herramientas" a la izquierda, arrastre varios controles de texto estático (Texto estático), cuadros de edición (Editar) y botones (Botón) y modifique sus títulos en "Propiedades". Espectáculo.
Luego agregue variables para cada cuadro de edición, haga clic derecho en el cuadro de edición y seleccione agregar variable, luego cambie el tipo a valor y el tipo de variable a doble (flotante de doble precisión).
Lo último es agregar un controlador de mensajes para cada botón (excepto "Cancelar"), de lo contrario no se calculará.
Al hacer doble clic en el botón se saltará automáticamente al compilador.
Escribí el código para ti, solo cópialo.
void CcaculatorDlg::OnBnClickedButton1()//" "Manejador de mensajes del botón
{
UpdateData(1);//Convierte la entrada del usuario en el control Pase el valor de la variable al control y el programa volverá a dibujar el control automáticamente
}
void CcaculatorDlg::.OnBnClickedButton2()//Función de procesamiento de mensajes del botón "-"
{
UpdateData( 1); //Transfiere el valor ingresado por el usuario en el control a la variable
m_result = m_data1 m_ data2; cálculo
UpdateData(0); //Cambiar la variable El valor se pasa al control y el programa volverá a dibujar el control automáticamente
}
void CcaculatorDlg::OnBnClickedButton3()//Función de procesamiento de mensajes del botón "*"
{
UpdateData(1); //Transfiere el valor ingresado por el usuario en el control a la variable.
m_result = m_data1 * m_data2;
UpdateData(0) // Pasa el valor de la variable al control y el programa volverá a dibujar el control automáticamente
}
void CcaculatorDlg::OnBnClickedButton4()//"//" Función de procesamiento de mensajes del botón
{
UpdateData(1); el valor ingresado por el usuario por el control a la variable
if( m_data2 == 0 )// determina si el divisor es cero
{
MessageBeep (-1); // Toca la campana porque el divisor no puede ser cero
}
else
{
m_result = m_data1 / m_data2;/ Cálculo de división
}
UpdateData(0);//Transferir el valor de la variable Dar el control, el programa volverá a dibujar el control automáticamente
}
Finalmente, presione F5.
......... ¡Bien, nuestra calculadora está terminada!
2. Calculadora simple, calculadora de cuatro operaciones aritméticas código original C
Espero que te sea útil
#include "stdio.h"
p> p>
#include "stdlib.h"
#include "string.h"
/**** ********/
#define STRING_LENGTH 1000
#define NUMBER_LENGTH 40
/*definición de estructura**
símbolo de estructura
{
char c;
símbolo de estructura *next;
}*symbol_head=NULL, *temp=NULL;
número de estructura
p>
{
doble n;
número de estructura *siguiente;
}*number_head=NULL, *temp_2 =NULL;
resultado char[NUMBER_LENGTH];
/************/
/* Declaración de función**
double ji_shuan (double a, char t, double b); /* Cálculo de dos datos dobles*/
void string_scan(char *str /* Escaneo de operación de cadena*); /
void operar(void);/* operación de lista enlazada*/
void operar(void)/* operación de lista enlazada**
{ p>
temp=symbol_head-gt; siguiente;
symbol_head-gt; siguiente=symbol_head-gt; siguiente;
número_cabeza -gt; (número_cabeza-gt; siguiente-gt; n, temp-gt; c, número_cabeza-gt; n);
temp_2=número_cabeza-gt
número_cabeza-gt; siguiente=número_cabeza-gt; siguiente-gt ;siguiente;
libre(temp
libre(temp_2); >double ji_shuan(double a, char t , double b)/* Dos cálculos de datos dobles*
{
switch(t)
{
caso ' ': Devuelve a b;
caso '-': devuelve a-b;
caso '*': devuelve a*b; /p>
case ' /': Devuelve a/b; break;
default:
printf("¡El método ji_shuan se llamó incorrectamente! Cualquier tecla para salir...");
getchar();
exit(0); // Mensaje de error al depurar el programa
}
}
void string_sc
an(char *str)/* escaneo aritmético de cadenas */
{
int i=0;
char temp_str[NUMBER_LENGTH];
Símbolo de estructura *t;
/*Variables utilizadas por la función ecvt**
char *string; //almacenar cadena
int ndig; /string length
int dec; //Posición del punto decimal
int sign; //Símbolos de marca positivos y negativos
/******* * ***********/
t=(símbolo de estructura *)malloc(sizeof(símbolo de estructura));
t-gt; symbol_head ;
symbol_head=t;
symbol_head-gt; c='#';
for(i=0;ilt;strlen(str); i )
{
if((str[i] gt;='0'amp;amp;str[i]lt;='9')||(str[ i ]=='-'amp;amp;(str[i-1]lt;'0'||str[i-1]gt;'9')amp;amp;str[i-1]!=' ) '))// detecta el número, (aparece el signo "-" y el anterior se detecta como un signo distinto de ")", entonces este es un signo negativo (no un signo menos), y este número es negativo )
{
número de estructura *t;
int j=0;
mientras((str[i]gt; = '0')amp;amp;str[i-1]gt;='0')amp;amp;str[i-1]! amp;amp;str[i]lt;='9')||str[i]=='.')
{
temp_str[j]=str[i ];
i ;
j
}
temp_str[j]='\0';
t=(número de estructura *)malloc(sizeof( número de estructura));
t-gt; next=número_cabeza;
número_cabeza=t;
number_head-gt; n=atof(temp_str); //double atof(*char) se usa para convertir una cadena en función doble
}
if(str[i]= = '('||cadena[i]==')'||cadena[i]==' '||cadena[i]=='-'||cadena[i]==='*'|| cadena [i]==='