makefile

computer 一个文件

main.c

#include "mywin.h"
#include <gtk/gtk.h>

extern GtkWidget *window;
int main(int argc,char* argv[])
{
 
 
 gtk_init(&argc,&argv);
 my_interface();
 my_connect();
        gtk_widget_show_all(window);
 gtk_main();
 return 0; 
}

 

mywin.c

#include"mywin.h"

GtkWidget *window;
GtkWidget *table1;
GtkWidget *table2;
GtkWidget *entry;
GtkWidget *button1,*button2,*button3,*button4,*button5,*button6,*button7,*button8;
GtkWidget *button9,*button10,*button11,*button12,*button13,*button14,*button15,*button16;
GtkWidget *vbox1,*vbox2,*vbox3,*vbox4;

float a=0;
float b=0;
char sy[3];
int method=0;

void my_interface()
{
 window=gtk_window_new(GTK_WINDOW_TOPLEVEL);                      //initial
 gtk_window_set_title(GTK_WINDOW(window),"my computer");
// gtk_widget_set_usize(window,300,250);
 gtk_widget_set_uposition(window,500,250);
 table1=gtk_table_new(2,1,TRUE);
 entry=gtk_entry_new();
 table2=gtk_table_new(1,4,TRUE);
 button1=gtk_button_new_with_label("1");
 button2=gtk_button_new_with_label("4");
 button3=gtk_button_new_with_label("7");
 button4=gtk_button_new_with_label(".");
 button5=gtk_button_new_with_label("2");
 button6=gtk_button_new_with_label("5");
 button7=gtk_button_new_with_label("8");
 button8=gtk_button_new_with_label("0");
 button9=gtk_button_new_with_label("3");
 button10=gtk_button_new_with_label("6");
 button11=gtk_button_new_with_label("9");
 button12=gtk_button_new_with_label("+ =");
 button13=gtk_button_new_with_label("-");
 button14=gtk_button_new_with_label("*");
 button15=gtk_button_new_with_label("/");
 button16=gtk_button_new_with_label("CE");
 vbox1=gtk_vbox_new(TRUE,0);
 vbox2=gtk_vbox_new(TRUE,0);
 vbox3=gtk_vbox_new(TRUE,0);
 vbox4=gtk_vbox_new(TRUE,0);

 gtk_container_add(GTK_CONTAINER(window),table1);              //load

 gtk_table_attach(GTK_TABLE(table1),entry,0,1,0,1,(GtkAttachOptions)(GTK_FILL),(GtkAttachOptions)(0),0,0);
 gtk_table_attach(GTK_TABLE(table1),table2,0,1,1,2,(GtkAttachOptions)(GTK_FILL),(GtkAttachOptions)(0),0,0);

 gtk_table_attach(GTK_TABLE(table2),vbox1,0,1,0,1,(GtkAttachOptions)(GTK_FILL),(GtkAttachOptions)(0),0,0);
 gtk_table_attach(GTK_TABLE(table2),vbox2,1,2,0,1,(GtkAttachOptions)(GTK_FILL),(GtkAttachOptions)(0),0,0);
 gtk_table_attach(GTK_TABLE(table2),vbox3,2,3,0,1,(GtkAttachOptions)(GTK_FILL),(GtkAttachOptions)(0),0,0);
 gtk_table_attach(GTK_TABLE(table2),vbox4,3,4,0,1,(GtkAttachOptions)(GTK_FILL),(GtkAttachOptions)(0),0,0);

 gtk_box_pack_start(GTK_BOX(vbox1),button1,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox1),button2,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox1),button3,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox1),button4,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox2),button5,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox2),button6,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox2),button7,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox2),button8,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox3),button9,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox3),button10,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox3),button11,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox3),button12,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox4),button13,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox4),button14,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox4),button15,TRUE,FALSE,0);
 gtk_box_pack_start(GTK_BOX(vbox4),button16,TRUE,FALSE,0);
}


void my_input(GtkWidget *widget,gpointer data)
{
 gtk_entry_append_text( GTK_ENTRY(entry),gtk_button_get_label(GTK_BUTTON(widget)));
}

void my_plus(GtkWidget *widget,gpointer data)
{      
 
 //strcpy(sy,gtk_button_get_label(GTK_BUTTON(data)));
 //gtk_entry_append_text( GTK_ENTRY(entry),sy);
 
 char num[50];
 strcpy(num,gtk_entry_get_text(GTK_ENTRY(entry)));
 if(a==0)
 {
  gtk_entry_set_text(GTK_ENTRY(entry),"");
  a=atof(num);
        }
 else
 {
  b=atof(num);
  switch (method)
  {
   case 1:  a=a+b;break;
   case 2:  a=a-b;break;
   case 3:  a=a*b;break;
   case 4:  a=a/b;break;
  }
  b=0;
  gcvt(a,10,num);
  gtk_entry_set_text(GTK_ENTRY(entry),num);
  a=0;
 }
 method=1;
}


void my_sub(GtkWidget *widget,gpointer data)
{      
 
 //strcpy(sy,gtk_button_get_label(GTK_BUTTON(data)));
 //gtk_entry_append_text( GTK_ENTRY(entry),sy);
 method=2;
 char num[50];
 strcpy(num,gtk_entry_get_text(GTK_ENTRY(entry)));
 if(a==0)
 {
  gtk_entry_set_text(GTK_ENTRY(entry),"");
  a=atof(num);
        }
 else
 {
  b=atof(num);
 }
}

void my_mul(GtkWidget *widget,gpointer data)
{      
 
 //strcpy(sy,gtk_button_get_label(GTK_BUTTON(data)));
 //gtk_entry_append_text( GTK_ENTRY(entry),sy);
 method=3;
 char num[50];
 strcpy(num,gtk_entry_get_text(GTK_ENTRY(entry)));
 if(a==0)
 {
  gtk_entry_set_text(GTK_ENTRY(entry),"");
  a=atof(num);
        }
 else
 {
  b=atof(num);
 }
}


void my_div(GtkWidget *widget,gpointer data)
{      
 char num[50];
 strcpy(num,gtk_entry_get_text(GTK_ENTRY(entry))); 
 if(a==0)
 {
  gtk_entry_set_text(GTK_ENTRY(entry),"");
  a=atof(num);
        }
 else
 {
  b=atof(num);
 }
}

 

void my_clear(GtkWidget *widget,gpointer data)
{
 gtk_entry_set_text(GTK_ENTRY(entry),"");
 a=0;
 b=0;
}

void my_quit(GtkWidget *widget,gpointer data)
{
 gtk_main_quit();
}

void my_connect()
{
 g_signal_connect(G_OBJECT(button1),"clicked",G_CALLBACK(my_input),NULL);
 g_signal_connect(G_OBJECT(button2),"clicked",G_CALLBACK(my_input),NULL);
 g_signal_connect(G_OBJECT(button3),"clicked",G_CALLBACK(my_input),NULL);
 g_signal_connect(G_OBJECT(button4),"clicked",G_CALLBACK(my_input),NULL);
 g_signal_connect(G_OBJECT(button5),"clicked",G_CALLBACK(my_input),NULL);
 g_signal_connect(G_OBJECT(button6),"clicked",G_CALLBACK(my_input),NULL);
 g_signal_connect(G_OBJECT(button7),"clicked",G_CALLBACK(my_input),NULL);
 g_signal_connect(G_OBJECT(button8),"clicked",G_CALLBACK(my_input),NULL);
 g_signal_connect(G_OBJECT(button9),"clicked",G_CALLBACK(my_input),NULL);
 g_signal_connect(G_OBJECT(button10),"clicked",G_CALLBACK(my_input),NULL);
 g_signal_connect(G_OBJECT(button11),"clicked",G_CALLBACK(my_input),NULL);
 g_signal_connect(G_OBJECT(button12),"clicked",G_CALLBACK(my_plus),NULL);
 g_signal_connect(G_OBJECT(button13),"clicked",G_CALLBACK(my_sub),NULL);
 g_signal_connect(G_OBJECT(button14),"clicked",G_CALLBACK(my_mul),NULL);
 g_signal_connect(G_OBJECT(button15),"clicked",G_CALLBACK(my_div),NULL);
 g_signal_connect(G_OBJECT(button16),"clicked",G_CALLBACK(my_clear),NULL); 
 //g_signal_connect(G_OBJECT(table2),"clicked",G_CALLBACK(my_quit),NULL);

}

 

mywin.h

#ifndef _MYWIN_H_
#define _MYWIN_H_
#include<stdio.h>
#include<gtk/gtk.h>
#include<string.h>
#include<stdlib.h>


extern GtkWidget *window;
// int hasdot;
// int method;
void my_interface();
void my_input(GtkWidget *widget,gpointer data);
void my_plus(GtkWidget *widget,gpointer data);
void my_sub(GtkWidget *widget,gpointer data);
void my_mul(GtkWidget *widget,gpointer data);
void my_div(GtkWidget *widget,gpointer data);
void my_clear(GtkWidget *widget,gpointer data);
void my_quit(GtkWidget *widget,gpointer data);
void my_connect();
#endif

 

 

makefile

main: main.o mywin.o
 gcc main.o mywin.o -o main `pkg-config --cflags --libs gtk+-2.0`
mywin.o:mywin.c mywin.h
 gcc -c mywin.c `pkg-config --cflags --libs gtk+-2.0`
main.o:main.c mywin.h
 gcc -c main.c `pkg-config --cflags --libs gtk+-2.0`
clear:
 rm -f *.o

 

 

 

 

print一个文件夹

 

main.c

#include"print.h"
int main()
{
 print();
 print1();
 return 0;
}

 

print.c

#include"print.h"
char a[10]="anan";
void print()

 printf("%s\n",a);
}

 

print.h

#ifndef _PRINT_H_
#define _PRINT_H_

#include<stdio.h>
//#include<>

void print();
void print1();

#endif

 

print1.c

#include"print.h"
char b[10]="chdifhdi";
void print1()
{ //extern char a[10];
 printf("%s\n",b);
}

 

makefile

main:print.o print1.o main.o
 gcc main.o print.o print1.o -o main
print.o:print.c print.h
 gcc -c print.c -o print.o
print1.o:print1.c print.h
 gcc -c print1.c -o print1.o
main.o:main.c print.h
 gcc -c main.c -o main.o
clean:
 rm -f *.o
 rm -f *.c~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值