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

📄 checknow.c

📁 用GTK+做用户界面 股票每日分时行情用数据库管理——MYSQL 软件应用方式客户端/服务器模式 基于TCP/IP的C/S通信模式 实现STOCK
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <stdio.h>#include "gmclient.h"static GtkWidget *tmpentry1;static GtkWidget *tmpentry2;static GSList *reclist;/* 0--上涨  1--下跌 2--横盘 3--成交量*/static gint flag=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);static void priceok_clicked(GtkWidget *widget,gpointer data);static void searchDialog(gchar *title1,char *title2,char *title3);static void priceSelectRow(GtkWidget *list,gint c,gint r);void recentlyIncrease(){    flag=0;    searchDialog("近期上涨股票查询","近期搜索时间天数:",                  "近期上涨幅度(%):");}void recentlyDecrease(){    flag=1;    searchDialog("近期下跌股票查询","近期搜索时间天数:",                  "近期下跌幅度(%):");}void recentlyHengpan(){    flag=2;    searchDialog("近期横盘股票查询","近期横盘时间天数:",                  "近期横盘震幅(正负<%):");}void recentlyFangliang(){    flag = 3;    searchDialog("近期放量股票查询","量比扫描时间断:(天数)",                  "量比幅度:(>%)");}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);   }void priceSelectRow(GtkWidget *list,gint c,gint r){    GSList *node;    REC *rec; //    strcpy(str,getClist(list));//    printf("c:%d r:%d %s\n",c,r,str);    node=g_slist_nth(reclist,c);    rec=(REC *)node->data;    if(frechStock(rec->code) == 0){         return;    }     if(strlen(rec->code) == 6)      codeToName(SHBZ,rec->code);    else      codeToName(SZBZ,rec->code);    areastart=(stocksum-60>1?stocksum-60:1);    Repaint();    }static void total_clicked(GtkWidget *widget,gpointer data){}static void save_clicked(GtkWidget *widget,gpointer data){    char filename[80];    createFilenameDialog("保存检索结果");  strcpy(filename,getFilename());  printf("%s",filename);    }void priceok_clicked(GtkWidget *widget,gpointer data){   GtkWidget *tmpwin;   GtkWidget *tmpvbox;   GtkWidget *i_box2,*i_but;   GSList *gslist;   int i,k,j,n,day,zf;   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. --- */
    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<=shstocksum;i++){        if(shtbl[i].code[0]!='6' && shtbl[i].code[0]!='5'){             i++;             continue;        }        if(frechStock(shtbl[i].code) == 0){             i++;             continue;        }        tmpzgj=stock[stocksum-day].zgj;        tmpzdj=stock[stocksum-day].zdj;        tmpzgjdate=0;        tmpzdjdate=0;        tmpzgjaddr=0;        tmpzdjaddr=0;      for(k=(stocksum-day>0?stocksum-day:1);k<=stocksum;k++){       if(tmpzgj<=stock[k].zgj){            tmpzgj=stock[k].zgj;            tmpzgjdate=stock[k].jydate;            tmpzgjaddr=k;       }       if(tmpzdj>=stock[k].zdj){             tmpzdj=stock[k].zdj;             tmpzdjdate=stock[k].jydate;             tmpzdjaddr=k;       }            }         if(tmpzdj<=0) tmpzdj=1;      switch(flag){        case 0:                 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++;           }            break;            case 1:                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++;            }            break;         case 2:           if((tmpzgj-tmpzdj)*100/tmpzdj<=zf){             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++;            }             break;         default:             break;        }                  if(j>=shstocksum/10){          UpdateProgress (i,shstocksum);          j=0;        }        else{          j++;        }      } 
         for(i=1;i<=szstocksum;i++){        if(sztbl[i].code[0]!='4' && sztbl[i].code[0]!='0'){             continue;        }        if(frechStock(sztbl[i].code) == 0){             continue;        }        tmpzgj=stock[stocksum-day].zgj;        tmpzdj=stock[stocksum-day].zdj;        tmpzgjdate=0;        tmpzdjdate=0;        tmpzgjaddr=0;        tmpzdjaddr=0;      for(k=(stocksum-day>0?stocksum-day:1);k<=stocksum;k++){       if(tmpzgj<=stock[k].zgj){            tmpzgj=stock[k].zgj;            tmpzgjdate=stock[k].jydate;            tmpzgjaddr=k;       }       if(tmpzdj>=stock[k].zdj){             tmpzdj=stock[k].zdj;             tmpzdjdate=stock[k].jydate;             tmpzdjaddr=k;       }            }         if(tmpzdj<=0) tmpzdj=1;      switch(flag){        case 0:                 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++;           }            break;            case 1:                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++;            }            break;         case 2:           if((tmpzgj-tmpzdj)*100/tmpzdj<=zf){             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++;            }             break;         default:             break;        }                  if(j>=szstocksum/10){          UpdateProgress (i,szstocksum);          j=0;

⌨️ 快捷键说明

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