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

📄 文件的输入和输出的实验.mb

📁 mabasic 经典使用案例。主要关于菜单建立
💻 MB
📖 第 1 页 / 共 4 页
字号:
          IF pX > 5 AND pX <= 50 THEN 
             r3 = r3 + pX
             GOTO e4
          END IF 
          IF pX > 50 AND pX <= 100 THEN 
             r3 = r3 + pX * .85
             GOTO e4
          END IF
          IF pX > 100 AND pX <= 150  THEN 
             r3 = r3 + pX * .75
             GOTO e4
          END IF
          IF pX BETWEEN 150 AND 200 THEN 
             r3 = r3 + pX * .65
             GOTO e4
          END IF
          IF pX > 200 THEN 
             r3 = r3 + pX * .5
          END IF
    e4:   IF y1 = j AND r1 = i THEN
             GOTO e5
          END IF     
        NEXT 
    NEXT
    e5:INSERT INTO 当前雨情分析原始表      '增加一行数据                         
    VALUES (L0,I0,S2,R2,R5,R6,R3)
    IF c < l1 THEN 
       CC=CC+35
    END IF  
NEXT
z0$="降水总量;降水日数;最大日降水量;有效降水"
dialog
title"请您选择排序分析对象" 
control statictext
title "您可以分别以左下框字段从小到大进行排序"
position 10,0
control statictext
title "时段内降水总量"
position 65,10
control statictext
title "时段内降水日数"
position 65,20
control statictext
title "时段内最大日降水量"
position 65,30
control statictext
title "日降水不足5毫米,忽略不计,"
position 65,40
control statictext
title " 5-50为100%,51-100为85%"
position 65,50
Control statictext
title " 101-150为75%,150-200为65%"
position 65,60
Control statictext
title " >200为50%。"
position 65,70
control listbox
title z0$
width 50 height 35          '50为方框宽度35为高度
position 10,10
into AX
control okbutton
title "确定"
position 30,80
control cancelbutton
title "取消"
position 130,80
Z$(1)="降水总量"
z$(2)="降水日数"
z$(3)="最大日降水量"
z$(4)="有效降水"
Select 年份,降水总量,降水日数,最大日降水量,月份,日期,有效降水  '选择字段
From  当前雨情分析原始表 'Where expression_group  '选择“当前雨情分析表”
Into  当前雨情分析结果 Noselect   '检索结果存入“当前雨情分析结果”表中,该表不需定义
Order By  Z$(ax)                  '对“降水总量”等进行排序(从小到大)
Commit Table 当前雨情分析结果 Interactive   '保存表
Commit Table 当前雨情分析_从小到大排序 Interactive   '保存表
FOR I=1 TO N
   for j=1 to 7
     fetch rec I from 当前雨情分析结果
     f(j)=当前雨情分析结果.col(j)
   NEXT
   px=i/(n+1)*100
   INSERT INTO 当前雨情分析_从小到大排序       '增加一行数据                         '
   VALUES (f(1),f(2),f(3),f(4),f(5),f(6),f(7),px)
   IF f(1)=L2 THEN 
     k=I
   END IF
NEXT
Select 年份,降水总量,降水日数,最大日降水量,月份,日期,有效降水,频率  '选择字段
From  当前雨情分析_从小到大排序                'Where expression_group  选择“当前雨情分析表”
Into  当前雨情分析结果 Noselect   '检索结果存入“当前雨情分析结果”表中,该表不需定义
Order By  年份                 
Select  AVG(降水总量),AVG(降水日数),AVG(最大日降水量),AVG(月份),AVG(日期),AVG(有效降水)
   From 当前雨情分析原始表 
   Into  Lit_query 
FOR C=19 TO 26
     F(C)=0                          '
NEXT                          '
FOR C=33 TO 38
    F(C)=9999
NEXT
FOR J=1 TO 6                    '
  fetch rec 1 from Lit_query    '
  F(J)=Lit_query.col(J)         '
    FOR I=1 TO N                  '
     fetch rec I from 当前雨情分析原始表
     PX=当前雨情分析原始表.col(J+1)        '
     IF J=4 OR J=5 THEN 
        GOTO T1
     END IF
     IF J=3 THEN
        IF F(23)<PX THEN
           F(23)=PX
           F(24)=当前雨情分析原始表.col(5)
           F(25)=当前雨情分析原始表.col(6)
           F(29)=当前雨情分析原始表.col(1)
           F(30)=F(29)      
           F(31)=F(29)
         END IF
         IF F(35)>PX THEN          
            F(35)=PX
            F(36)=当前雨情分析原始表.col(5)
            F(37)=当前雨情分析原始表.col(6)
            F(41)=当前雨情分析原始表.col(1)
            F(42)=F(41)
            F(43)=F(41)
         END IF
      END IF
     IF F(20+J)<PX THEN
        F(20+J)=PX
        F(26+J)=当前雨情分析原始表.col(1)
     END IF
     IF F(32+J)>PX THEN
        F(32+J)=PX
        F(38+J)=当前雨情分析原始表.col(1)
     END IF
     F(19)=F(19)+(PX-F(J))^2                     '
     F(20)=F(20)+(PX-F(J))^3                     '
  T1:NEXT
  F(J+6)=1/F(J)*SQR(F(19)/(N-1))*1000         '
  F(J+12)=F(20)/((N-3)*(F(J)*F(j+6)/1000)^3 )*1000
NEXT
Graph 年份, 降水总量,最大日降水量,有效降水 From 当前雨情分析结果
Graph 年份, 降水总量 From 当前雨情分析结果

z0$=当前雨情统计表
F(19)=0
INSERT INTO z0$          '增加一行数据                         
  VALUES ("平均",F(1),F(2),F(3),F(4),F(5),F(6))
INSERT INTO z0$       
  VALUES ("最大",F(21),F(22),F(23),F(24),F(25),F(26))
INSERT INTO z0$         
VALUES ("年份",F(27),F(28),F(29),F(30),F(31),F(32))
INSERT INTO z0$                       
  VALUES ("最小",F(33),F(34),F(35),F(36),F(37),F(38))
INSERT INTO z0$                              
  VALUES ("年份",F(39),F(40),F(41),F(42),F(43),F(44))
INSERT INTO z0$                             
  VALUES ("Cv",F(7),F(8),F(9),F(19),F(19),F(12))
INSERT INTO z0$                              
  VALUES ("Cs",F(13),F(14),F(15),F(19),F(19),F(18))
Browse * From 当前雨情分析_从小到大排序  
Browse * From z0$
Browse * From 当前雨情分析结果

END SUB

Sub a4
FOR c1 = 1 TO n
   IF l2 = VAL(t$(c1)) THEN 
      l1 = c1
      goto a12  
   end if
next
l1 = c1 + 1
a12:end sub

SUB A8
'FOR c1 = 1 TO n
' IF l2 = VAL(t$(c1)) 
'THEN l1 = c1
' RETURN
' NEXT
' l1 = c1 + 1
' RETURN
END SUB

sub b11
z0$=" 一月; 二月; 三月; 四月; 五月; 六月; 七月; 八月; 九月; 十月;十一月;十二月"
r0=y0*4-1
z0$=left$ (z0$,r0)
p$=" 1日; 2日; 3日; 4日; 5日; 6日; 7日; 8日; 9日;10日;11日;12日;13日;14日;15日;16日;17日;18日;19日;20日;21日;22日;23日;24日;25日;26日;27日;28日;29日;30日;31日"
dialog
title"输入开始月份对话框" 
control statictext
title "请您选择开始月份:"
position 10,5
control popupmenu
title z0$
position 90,8
into Y0
control okbutton
title "确定"
position 20,80
control cancelbutton
title "取消"
position 90,80
ax=y(y0)*4
p$=left$(p$,ax)
dialog
title"输入开始日期对话框" 
control statictext
title "请您选择开始日期:"
position 10,30
control statictext
title "您选择了"+y0+"月,为"+y(y0)+"天"
position 10,10
control popupmenu
title p$
position 90,5
width 30  height 40
position 90,25
into R0
control okbutton
title "确定"
position 20,80
control cancelbutton
title "取消"
position 90,80
end sub

SUB lsyq                      '历史雨情过程开始
call a25
if x=2 then 
goto a23
end if
CALL A40
call a500
ax=0
for j=1 to 5
  fetch rec n+j from 年统计表
    for i=2 to 17
    s(ax+i)=年统计表.col(i)
    next
ax=ax+17
next
cls

note "历史雨情分析结果在“消息”框中报告,请您查看" 
print "    根据"+zm$+a1+"-"+a2+"年"+n+"年降水量资料分析得出以下结论:"
print "多年平均降水量为"+s(2)+"毫米,"
print "最大年雨量为"+s(19)+"毫米,出现在"+s(36)+ "年,"
print "最小年雨量为"+s(53)+"毫米, 出现在"+s(70)+"年。"
print "最大年雨量是最小年雨量的"+int(s(19)/s(53)*100)/100+"倍 。" 
print "最大年雨量是多年平均年雨量的"+int(s(19)/s(2)*100)/100+"倍。"
print"多年平均降水日数为"+s(3)+"天,"

print "最多降水日数"+s(20)+"天,出现在"+s(37)+ "年,"
print "最少年降水日数"+s(54)+"天, 出现在"+s(71)+"年。"
print "最多年降水日数是最少值的"+int(s(20)/s(54)*100)/100+"倍 ." 
print "最大年雨量是多年平均年雨量的"+int(s(20)/s(3)*100)/100+"倍。"
print"汛期6-9月份平均降水量为"+s(5)+"毫米,"
print"6-9月最大降雨量为"+s(22)+"毫米,出现在"+s(39)+ "年,"
print "最小汛期6-9降雨量为"+s(56)+"毫米, 出现在"+s(73)+"年。"
print "6-9月最大降雨量是6-9月最小降雨量的"+int(s(22)/s(56)*100)/100+"倍 。" 
print "6-9月最大降雨量是多年6-9月平均降雨量的"+int(s(22)/s(5)*100)/100+"倍."
print"平均最大一日降水量为"+s(6)+"毫米,"
print"最大一日降雨量为"+s(23)+"毫米,出现在"+s(40)+ "年,"
print "最小一日降雨量为"+s(57)+"毫米, 出现在"+s(74)+"年。"
print "最大一日降雨量是最小一日降雨量的"+int(s(23)/s(57)*100)/100+"倍 ." 
print "最大一日降雨量是多年平均最大一日降雨量的"+int(s(23)/s(6)*100)/100+"倍."
print"平均最大三日降水量为"+s(8)+"毫米,"
print"最大三日降雨量为"+s(25)+"毫米,出现在"+s(42)+ "年,"
print "最小三日降雨量为"+s(59)+"毫米, 出现在"+s(76)+"年。"
print "最大三日降雨量是最小三日降雨量的"+int(s(25)/s(59)*100)/100+"倍 。" 
print "最大三日降雨量是多年平均最大三日降雨量的"+int(s(23)/s(8)*100/100)+"倍。"
print"平均最大七降水量为"+s(10)+"毫米,"
print "最大七日降雨量为"+s(27)+"毫米,出现在"+s(44)+ "年,"
print "最小七日降雨量为"+s(61)+"毫米, 出现在"+s(78)+"年。"
print "最大七日降雨量是最小三日降雨量的"+int(s(27)/s(61)*100/100)+"倍。" 
print "最大七日降雨量是多年平均最大七日降雨量的"+int(s(27)/s(10)*100)/100+"倍。"
print"平均最大十五日降水量为"+s(12)+"毫米,"
print"最大十五日降雨量为"+s(29)+"毫米,出现在"+s(46)+ "年,"
print "最小十五日降雨量为"+s(63)+"毫米, 出现在"+s(80)+"年。"
print "最大十五日降雨量是最小十五日降雨量的"+int(s(29)/s(63)*100)/100+"倍 。" 
print "最大十五日降雨量是多年平均最大十五日降雨量的"+int(s(29)/s(12)*100)/100+"倍。"
print"平均最大三十降水量为"+s(14)+"毫米,"
print"最大三十降雨量为"+s(31)+"毫米,出现在"+s(48)+ "年,"
print "最小三十降雨量为"+s(65)+"毫米, 出现在"+s(82)+"年。"
print "最大三十降雨量是最小三日降雨量的"+int(s(31)/s(65)*100)/100+"倍 。" 
print "最大三十降雨量是多年平均最大三十降雨量的"+int(s(31)/s(14)*100)/100+"倍。"
print"平均最长持续无雨日"+s(16)+"天,"
print"最大持续无雨日为"+s(33)+"天,出现在"+s(50)+ "年,"
print "最小持续无雨日为"+s(67)+"天, 出现在"+s(84)+"年。"
print "最大持续无雨日是最小持续无雨日的"+int(s(33)/s(67)*100)/100+"倍。" 
print "最大持续无雨日是多年平均持续无雨日的"+int(s(33)/s(16)*100)/100+"倍。"
if x=1 then
goto a24 
end if
a23:note "您选择了"+z$(2) 
a24:END SUB               '历史雨情分析结束

sub a25
dialog
title"欢迎您使用降水量统计分析地理信息系统"
position 200,120              '200为菜单左边界距窗口左边的距离120为距窗口的上部距离 
control statictext
title "      在分析统计计算中,系统将会"
position 20,0
control statictext
title "自动生成一些表格,您是否需要浏览:"
position 20,10
control radiogroup
title "需要浏览  ;不需要浏览"
position 40,20
into  E '选择结果存入E
control okbutton
title "确定"
position 20,50
control cancelbutton
title "取消"
position 100,50
z$(1)="分区(单站)分析"
z$(2)="分区综合分析"
dialog
title"欢迎您选择工作分区" 
position 200,120              '200为菜单左边界距窗口左边的距离120为距窗口的上部距离 
control radiogroup

⌨️ 快捷键说明

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