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

📄 checkhis.c

📁 用GTK+做用户界面 股票每日分时行情用数据库管理——MYSQL 软件应用方式客户端/服务器模式 基于TCP/IP的C/S通信模式 实现STOCK
💻 C
📖 第 1 页 / 共 2 页
字号:
   gchar str3[88];   gchar str4[88];   tmprec[0]=str0;   tmprec[1]=str1;   tmprec[2]=str2;   tmprec[3]=str3;   tmprec[4]=str4;
   zs=0;   shzs=0;   szzs=0;    reclist=NULL;    /* --- Call the timer. --- */
    strcpy(strentry,      gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(tmpcombo1)->entry)));    if(!strcmp(strentry,"上海"))   shflag=1;    if(!strcmp(strentry,"深圳"))   szflag=1;    if(!strcmp(strentry,"全部"))   shszflag=1;    if(!strcmp(strentry,"自选"))   meflag=1;    strcpy(strentry,      gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(tmpcombo)->entry)));    if(!strcmp(strentry,"上涨"))   zd=1;    else   zd=0;    strcpy(strentry,gtk_entry_get_text(GTK_ENTRY(tmpentry0)));//    strentry[4]='\0';    qsrq=atoi(strentry);    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 ("正在检索,请稍候...");
if(shflag || shszflag){     j=0;   for(x=1;x<=shstocksum;x++){       if(shtbl[x].code[0]!='5' && shtbl[x].code[0]!='6'){            x++;            continue;       }       if(frechStock(shtbl[x].code) == 0){            x++;            continue;       }         for(i=1;i<=stocksum-day;i++){        if(stock[i].jydate < qsrq) continue;        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);                 shzs++;                 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);                 shzs++;                 i+=day;         }       }             
     }        if(j>=shstocksum/10){          UpdateProgress (x, shstocksum);          j=0;        }        else{          j++;        }   }}if(szflag || shszflag){     j=0;   for(x=1;x<=szstocksum;x++){       if(sztbl[x].code[0]!='4' && sztbl[x].code[0]!='0'){            x++;            continue;       }       if(frechStock(sztbl[x].code) == 0){            x++;            continue;       }         for(i=1;i<=stocksum-day;i++){        if(stock[i].jydate < qsrq) continue;        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);                 szzs++;                 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);                 szzs++;                 i+=day;         }       }             
     }        if(j>=szstocksum/10){          UpdateProgress (x, szstocksum);          j=0;        }        else{          j++;        }   }}    zs=shzs+szzs;     EndProgress ();
    if(zs == 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(allselectRow));    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<zs;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(alltotal_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 allStockCheck(){    GtkWidget *tmpwin;    GtkWidget *tmpvbox;    GtkWidget *i_box2,*i_but;    GList *items=NULL;    GList *items1=NULL;        if(!frechflag) return;    tmpwin = createWindow("分类股票检索",200,280,0,0,20,                          GTK_SIGNAL_FUNC(endProgram));    tmpvbox = createBox(tmpwin,VERTICAL,0);        createLabel(tmpvbox,"选择扫描起始日期:(yyyymmdd)");        tmpentry0=createEntry(tmpvbox,"19960101");    createLabel(tmpvbox, "选择分类股票:");     items = g_list_append(items,"上海");    items = g_list_append(items,"深圳");    items = g_list_append(items,"全部");    items = g_list_append(items,"自选");    tmpcombo1=gtk_combo_new();        gtk_combo_set_popdown_strings(GTK_COMBO(tmpcombo1),items);    gtk_box_pack_start(GTK_BOX(tmpvbox),tmpcombo1, FALSE, FALSE, 0);    gtk_widget_show(tmpcombo1);     createLabel(tmpvbox, "选择涨跌趋势:");    items1 = g_list_append(items1,"上涨");    items1 = g_list_append(items1,"下跌");        tmpcombo=gtk_combo_new();        gtk_combo_set_popdown_strings(GTK_COMBO(tmpcombo),items1);    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(allok_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);}

⌨️ 快捷键说明

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