⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkhis.c

📁 用GTK+做用户界面 股票每日分时行情用数据库管理——MYSQL 软件应用方式客户端/服务器模式 基于TCP/IP的C/S通信模式 实现STOCK
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <stdio.h>#include "gmclient.h"static GtkWidget *tmpcombo; static GtkWidget *tmpcombo1; static GtkWidget *tmpentry0;static GtkWidget *tmpentry1;static GtkWidget *tmpentry2;static GSList *reclist;static int zs=0,shzs=0,szzs=0;typedef struct{    char code[7];    int zdjdate;    int zdj;    int zgjdate;    int zgj;    int zdf;    int addr;}REC;static void endProgram1(GtkWidget *widget,gpointer data){    GSList *node;      for(node=reclist;node;node=node->next)       g_free(node->data);   g_slist_free(reclist);   gtk_widget_destroy(widget);   }static void curselectRow(GtkWidget *list,gint c,gint r){    GSList *node;    REC *rec;     int no;//    strcpy(str,getClist(list));//    printf("c:%d r:%d %s\n",c,r,str);    node=g_slist_nth(reclist,c);    rec=(REC *)node->data;    no=rec->addr;     if(no-5>1)       areastart=no-5;    else    areastart=no;    Repaint();    }static void total_clicked(GtkWidget *widget,gpointer data){}static void save_clicked(GtkWidget *widget,gpointer data){}static void curok_clicked(GtkWidget *widget,gpointer data){   GtkWidget *tmpwin;   GtkWidget *tmpvbox;   GtkWidget *i_box2,*i_but;   GSList *gslist;   int i,k,j,n,day,zf,zd;   int tmpzgj,tmpzdj,tmpzgjdate,tmpzdjdate,tmpzgjaddr,tmpzdjaddr;   char strentry[50];   GtkWidget *tmplist;   REC *rec;   gchar *tmprec[5];   gchar str0[88];   gchar str1[88];   gchar str2[88];   gchar str3[88];   gchar str4[88];   tmprec[0]=str0;   tmprec[1]=str1;   tmprec[2]=str2;   tmprec[3]=str3;   tmprec[4]=str4;
    reclist=NULL;    /* --- Call the timer. --- */
    strcpy(strentry,      gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(tmpcombo)->entry)));    if(!strcmp(strentry,"上涨"))   zd=1;    else   zd=0;    strncpy(strentry,gtk_entry_get_text(GTK_ENTRY(tmpentry1)),4);    strentry[4]='\0';    day=atoi(strentry);    strncpy(strentry,gtk_entry_get_text(GTK_ENTRY(tmpentry2)),4);    strentry[4]='\0';    zf=atoi(strentry);        gtk_widget_destroy(widget);    StartProgress ("正在检索,请稍候...");
     n=0;     j=0;    for(i=1;i<=stocksum-day;i++){        tmpzgj=stock[i].zgj;        tmpzdj=stock[i].zdj;        tmpzgjdate=0;        tmpzdjdate=0;        tmpzgjaddr=0;        tmpzdjaddr=0;      for(k=0;k<day && k+i<=stocksum;k++){       if(tmpzgj<=stock[k+i].zgj){            tmpzgj=stock[k+i].zgj;            tmpzgjdate=stock[k+i].jydate;            tmpzgjaddr=k+i;       }       if(tmpzdj>=stock[k+i].zdj){             tmpzdj=stock[k+i].zdj;             tmpzdjdate=stock[k+i].jydate;             tmpzdjaddr=k+i;       }            }          if(tmpzdj<=0) tmpzdj=1;       if(zd){               if((tmpzgj-tmpzdj)*100/tmpzdj>=zf &&                        tmpzgjdate>tmpzdjdate){             rec=(REC *)g_malloc(sizeof(REC));             strcpy(rec->code,stockcode);             rec->zdjdate=tmpzdjdate;             rec->zdj=tmpzdj;             rec->zgjdate=tmpzgjdate;             rec->zgj=tmpzgj;             rec->zdf=(tmpzgj-tmpzdj)*100/tmpzdj;             rec->addr=tmpzdjaddr;             reclist=g_slist_append(reclist,rec);                 n++;                 i+=day;                          }       }       else{         if((tmpzgj-tmpzdj)*100/tmpzdj>=zf &&                       tmpzgjdate<tmpzdjdate){             rec=(REC *)g_malloc(sizeof(REC));             strcpy(rec->code,stockcode);             rec->zdjdate=tmpzdjdate;             rec->zdj=tmpzdj;             rec->zgjdate=tmpzgjdate;             rec->zgj=tmpzgj;             rec->zdf=-(tmpzgj-tmpzdj)*100/tmpzdj;             rec->addr=tmpzgjaddr;             reclist=g_slist_append(reclist,rec);                 n++;                 i+=day;         }       }              if(j>=stocksum/10){          UpdateProgress (i, stocksum-day);          j=0;        }        else{          j++;        }       
     }     EndProgress ();
    if(n == 0){      showMessage("提示","未检索到符合结果.");     return;    }     tmpwin=createWindow("当前股票检索结果",480,300,0,0,2,                       GTK_SIGNAL_FUNC(endProgram1));        gtk_window_set_policy(GTK_WINDOW(tmpwin),FALSE,FALSE,TRUE);        tmpvbox=createBox(tmpwin,VERTICAL,0);        tmplist=createClist(tmpvbox,5,GTK_SIGNAL_FUNC(curselectRow));    setupClist(tmplist,0,"股票代码",64);         setupClist(tmplist,1,"日期",128);         setupClist(tmplist,2,"最低价",64);         setupClist(tmplist,3,"最高价",64);         setupClist(tmplist,4,"涨跌幅",48);              i=0;    for(gslist=reclist;gslist || i<n;gslist=gslist->next){      rec=(REC *)gslist->data;//      printf("%s %d %d %d %d %d\n",rec->code,rec->zdjdate,//              rec->zdj,rec->zgj,rec->zdf,rec->addr);      strcpy(tmprec[0],rec->code);      if(zd)       sprintf(tmprec[1],"%d-%d",rec->zdjdate,rec->zgjdate);      else       sprintf(tmprec[1],"%d-%d",rec->zgjdate,rec->zdjdate);      sprintf(tmprec[2],"%d",rec->zdj);      sprintf(tmprec[3],"%d",rec->zgj);      sprintf(tmprec[4],"%d%",rec->zdf);      insertClist(tmplist,tmprec);      i++;    }  i_box2 = gtk_hbutton_box_new();  gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD);  gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10);  gtk_box_pack_start(GTK_BOX(tmpvbox), i_box2, FALSE, FALSE, 0);  gtk_widget_show(i_box2);  i_but = gtk_button_new_with_label("统计");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(total_clicked),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  i_but = gtk_button_new_with_label("保存");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(save_clicked),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  i_but = gtk_button_new_with_label("退出");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(endProgram1),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);}void curStockCheck(){    GtkWidget *tmpwin;    GtkWidget *tmpvbox;    GtkWidget *i_box2,*i_but;    GList *items=NULL;            if(!frechflag) return;    tmpwin = createWindow("当前股票检索",200,200,0,0,20,                          GTK_SIGNAL_FUNC(endProgram));    tmpvbox = createBox(tmpwin,VERTICAL,0);        createLabel(tmpvbox, "选择涨跌趋势:");    items = g_list_append(items,"上涨");    items = g_list_append(items,"下跌");        tmpcombo=gtk_combo_new();        gtk_combo_set_popdown_strings(GTK_COMBO(tmpcombo),items);    gtk_box_pack_start(GTK_BOX(tmpvbox),tmpcombo, FALSE, FALSE, 0);    gtk_widget_show(tmpcombo);            createLabel(tmpvbox,"选择涨跌区间:(天)");        tmpentry1=createEntry(tmpvbox,"20");           createLabel(tmpvbox,"选择涨跌百分比:(%)");    tmpentry2=createEntry(tmpvbox,"100");    createLabel(tmpvbox,"         ");  i_box2 = gtk_hbutton_box_new();  gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD);  gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10);  gtk_box_pack_start(GTK_BOX(tmpvbox), i_box2, FALSE, FALSE, 0);  gtk_widget_show(i_box2);  i_but = gtk_button_new_with_label("OK");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(curok_clicked),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  i_but = gtk_button_new_with_label("Cancel");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(endProgram),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);   gtk_grab_add(tmpwin);}static void allselectRow(GtkWidget *list,gint c,gint r){    GSList *node;    REC *rec;     int no;//    strcpy(str,getClist(list));//    printf("c:%d r:%d %s\n",c,r,str);    node=g_slist_nth(reclist,c);    rec=(REC *)node->data;    no=rec->addr;     if(frechStock(rec->code) == 0){         return;    }     if(strlen(rec->code) == 6)      codeToName(SHBZ,rec->code);    else      codeToName(SZBZ,rec->code);    if(no-5>1)       areastart=no-5;    else    areastart=no;    Repaint();    }static void alltotal_clicked(GtkWidget *widget,gpointer data){   char str[1000];      sprintf(str,"总数: %d   上海总数: %d   深圳总数: %d",zs,shzs,szzs);      showMessage("统计结果",str);   }static void allok_clicked(GtkWidget *widget,gpointer data){   GtkWidget *tmpwin;   GtkWidget *tmpvbox;   GtkWidget *i_box2,*i_but;   GSList *gslist;   int x,i,k,j,day,zf,zd,qsrq;   int tmpzgj,tmpzdj,tmpzgjdate,tmpzdjdate,tmpzgjaddr,tmpzdjaddr;   char strentry[50];//   char tmpcode[6];   GtkWidget *tmplist;   REC *rec;   int shflag=0,szflag=0,shszflag=0,meflag=0;   gchar *tmprec[5];   gchar str0[88];   gchar str1[88];   gchar str2[88];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -