飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3279|回复: 4

[C/C++] 电脑里面翻出来的学生时代的一段代码

[复制链接]
  • TA的每日心情
    慵懒
    2018-2-11 09:23
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2010-11-9 21:13:55 | 显示全部楼层 |阅读模式
    本帖最后由 冰糖 于 2010-11-9 21:22 编辑

    当时学C时候抄袭来的代码,不保证能运行 /:017
    1. #include <graphics.h>
    2. #include <stdio.h>
    3. #include <fcntl.h>
    4. #include <alloc.h>
    5. #include <stdlib.h>
    6. #include <string.h>
    7. #include "Conio.h"
    8. #include "graphics.h"
    9. #define closegr closegraph
    10.     void initgr(void) /* BGI初始化 */
    11. {int gd=DETECT,gm=0; /* 和gd=VGA,gm=VGAHI是同样效果 */
    12. registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
    13. initgraph(&gd,&gm,"");
    14. }

    15. void drawmat(char *mat,int matsize,int x,int y,int color)
    16. /*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
    17. {int i,j,k,n;
    18. n=(matsize-1)/8+1;
    19. for(j=0;j<matsize;j++)
    20.   for(i=0;i<n;i++)
    21.    for(k=0;k<8;k++)
    22.     if(mat[j*n+i]&(0x80>>k))  /*测试为1的位则显示*/
    23.      putpixel(x+i*8+k,y+j,color);
    24. }


    25. char shi64[]={
    26. /* 以下是 '师' 的 64点阵黑体 字模,512 byte */
    27. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    28. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    29. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    30. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    31. 0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,
    32. 0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
    33. 0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
    34. 0x00,0x00,0x7C,0x3F,0xFF,0xFF,0xFF,0xF0,
    35. 0x00,0x00,0x7C,0x3F,0xFF,0xFF,0xFF,0xF0,
    36. 0x00,0x00,0x7C,0x3F,0xFF,0xFF,0xFF,0xF0,
    37. 0x03,0xF0,0x7C,0x3F,0xFF,0xFF,0xFF,0xF0,
    38. 0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
    39. 0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
    40. 0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
    41. 0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
    42. 0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
    43. 0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
    44. 0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
    45. 0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
    46. 0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
    47. 0x03,0xE0,0x7C,0x00,0x00,0xF8,0x00,0x00,
    48. 0x03,0xE0,0x7C,0x0F,0xFF,0xFF,0xFF,0xC0,
    49. 0x03,0xE0,0x7C,0x0F,0xFF,0xFF,0xFF,0xC0,
    50. 0x03,0xE0,0x7C,0x0F,0xFF,0xFF,0xFF,0xC0,
    51. 0x03,0xE0,0x7C,0x0F,0xFF,0xFF,0xFF,0xC0,
    52. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    53. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    54. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    55. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    56. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    57. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    58. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    59. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    60. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    61. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    62. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    63. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    64. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    65. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    66. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    67. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    68. 0x03,0xE0,0x7C,0x0F,0x80,0xF8,0x07,0xC0,
    69. 0x03,0xE0,0x78,0x0F,0x80,0xF8,0x07,0xC0,
    70. 0x03,0xE0,0xF8,0x0F,0x80,0xF8,0x07,0xC0,
    71. 0x03,0xE0,0xF8,0x0F,0x80,0xF8,0x07,0xC0,
    72. 0x03,0xE0,0xF8,0x0F,0x80,0xF8,0x07,0x80,
    73. 0x03,0xE1,0xF0,0x0F,0x80,0xF8,0xFF,0x80,
    74. 0x00,0x01,0xF0,0x0F,0x80,0xF8,0xFF,0x80,
    75. 0x00,0x03,0xF0,0x0F,0x80,0xF8,0x7F,0x80,
    76. 0x00,0x03,0xE0,0x0F,0x80,0xF8,0x7F,0x00,
    77. 0x00,0x07,0xE0,0x0F,0x80,0xF8,0x7C,0x00,
    78. 0x00,0x0F,0xC0,0x0F,0x80,0xF8,0x60,0x00,
    79. 0x00,0x1F,0xC0,0x0F,0x80,0xF8,0x00,0x00,
    80. 0x00,0x3F,0x80,0x00,0x00,0xF8,0x00,0x00,
    81. 0x00,0x7F,0x00,0x00,0x00,0xF8,0x00,0x00,
    82. 0x00,0xFE,0x00,0x00,0x00,0xF8,0x00,0x00,
    83. 0x01,0xFC,0x00,0x00,0x00,0xF8,0x00,0x00,
    84. 0x07,0xF8,0x00,0x00,0x00,0xF8,0x00,0x00,
    85. 0x07,0xF0,0x00,0x00,0x00,0xF8,0x00,0x00,
    86. 0x01,0xE0,0x00,0x00,0x00,0xF8,0x00,0x00,
    87. 0x00,0xC0,0x00,0x00,0x00,0xF8,0x00,0x00,
    88. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    89. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    90. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    91. };

    92. char da64[]={
    93. /* 以下是 '大' 的 64点阵黑体 字模,512 byte */
    94. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    95. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    96. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    97. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    98. 0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,
    99. 0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
    100. 0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
    101. 0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
    102. 0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
    103. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    104. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    105. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    106. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    107. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    108. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    109. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    110. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    111. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    112. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    113. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    114. 0x01,0xE0,0x00,0x07,0xC0,0x00,0x07,0xC0,
    115. 0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,
    116. 0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,
    117. 0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,
    118. 0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,
    119. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    120. 0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,
    121. 0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
    122. 0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,
    123. 0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,0x00,
    124. 0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,0x00,
    125. 0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,0x00,
    126. 0x00,0x00,0x00,0x0F,0xF0,0x00,0x00,0x00,
    127. 0x00,0x00,0x00,0x1F,0xF0,0x00,0x00,0x00,
    128. 0x00,0x00,0x00,0x1F,0xF0,0x00,0x00,0x00,
    129. 0x00,0x00,0x00,0x1F,0xF8,0x00,0x00,0x00,
    130. 0x00,0x00,0x00,0x3E,0x78,0x00,0x00,0x00,
    131. 0x00,0x00,0x00,0x3E,0x7C,0x00,0x00,0x00,
    132. 0x00,0x00,0x00,0x7C,0x3E,0x00,0x00,0x00,
    133. 0x00,0x00,0x00,0xFC,0x3E,0x00,0x00,0x00,
    134. 0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,
    135. 0x00,0x00,0x01,0xF8,0x1F,0x80,0x00,0x00,
    136. 0x00,0x00,0x03,0xF0,0x0F,0xC0,0x00,0x00,
    137. 0x00,0x00,0x03,0xF0,0x07,0xE0,0x00,0x00,
    138. 0x00,0x00,0x07,0xE0,0x07,0xF0,0x00,0x00,
    139. 0x00,0x00,0x0F,0xC0,0x03,0xF8,0x00,0x00,
    140. 0x00,0x00,0x1F,0xC0,0x01,0xFC,0x00,0x00,
    141. 0x00,0x00,0x3F,0x80,0x00,0xFE,0x00,0x00,
    142. 0x00,0x00,0xFF,0x00,0x00,0xFF,0x80,0x00,
    143. 0x00,0x01,0xFE,0x00,0x00,0x7F,0xC0,0x00,
    144. 0x00,0x03,0xFC,0x00,0x00,0x3F,0xE0,0x00,
    145. 0x00,0x0F,0xF8,0x00,0x00,0x1F,0xF8,0x00,
    146. 0x00,0x3F,0xF0,0x00,0x00,0x0F,0xFE,0x00,
    147. 0x00,0xFF,0xC0,0x00,0x00,0x07,0xFF,0x80,
    148. 0x03,0xFF,0x80,0x00,0x00,0x01,0xFF,0xE0,
    149. 0x0F,0xFF,0x00,0x00,0x00,0x00,0xFF,0xC0,
    150. 0x07,0xFC,0x00,0x00,0x00,0x00,0x7F,0x80,
    151. 0x03,0xF8,0x00,0x00,0x00,0x00,0x1F,0x00,
    152. 0x01,0xE0,0x00,0x00,0x00,0x00,0x0E,0x00,
    153. 0x01,0xC0,0x00,0x00,0x00,0x00,0x02,0x00,
    154. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    155. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    156. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    157. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    158. };



    159. char matarray16k[]={
    160. /* 以下是 '2' 的 16点阵宋体 字模,32 byte */
    161. 0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
    162. 0x10,0x10,0x00,0x10,0x00,0x10,0x00,0xE0,
    163. 0x03,0x00,0x04,0x00,0x08,0x00,0x10,0x00,
    164. 0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,
    165. /* 以下是 '0' 的 16点阵宋体 字模,32 byte */
    166. 0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
    167. 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
    168. 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
    169. 0x10,0x10,0x08,0x20,0x07,0xC0,0x00,0x00,
    170. /* 以下是 '0' 的 16点阵宋体 字模,32 byte */
    171. 0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
    172. 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
    173. 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
    174. 0x10,0x10,0x08,0x20,0x07,0xC0,0x00,0x00,
    175. /* 以下是 '2' 的 16点阵宋体 字模,32 byte */
    176. 0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
    177. 0x10,0x10,0x00,0x10,0x00,0x10,0x00,0xE0,
    178. 0x03,0x00,0x04,0x00,0x08,0x00,0x10,0x00,
    179. 0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,
    180. /* 以下是 '0' 的 16点阵宋体 字模,32 byte */
    181. 0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
    182. 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
    183. 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
    184. 0x10,0x10,0x08,0x20,0x07,0xC0,0x00,0x00,
    185. /* 以下是 '6' 的 16点阵宋体 字模,32 byte */
    186. 0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
    187. 0x10,0x10,0x10,0x00,0x10,0x00,0x17,0xC0,
    188. 0x18,0x20,0x10,0x10,0x10,0x10,0x10,0x10,
    189. 0x10,0x10,0x08,0x20,0x07,0xC0,0x00,0x00,
    190. /* 以下是 '1' 的 16点阵宋体 字模,32 byte */
    191. 0x00,0x00,0x01,0x00,0x03,0x00,0x05,0x00,
    192. 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
    193. 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
    194. 0x01,0x00,0x01,0x00,0x07,0xC0,0x00,0x00,
    195. /* 以下是 '6' 的 16点阵宋体 字模,32 byte */
    196. 0x00,0x00,0x07,0xC0,0x08,0x20,0x10,0x10,
    197. 0x10,0x10,0x10,0x00,0x10,0x00,0x17,0xC0,
    198. 0x18,0x20,0x10,0x10,0x10,0x10,0x10,0x10,
    199. 0x10,0x10,0x08,0x20,0x07,0xC0,0x00,0x00,

    200. };
    201. int puthz16(int,int,int,int,char *);
    202. int puthz24(int,int,int,int,int,int,char *);

    203. int getbit(unsigned char,int);
    204. int handle,test1,test2,test3,test4,test5;

    205. main()
    206. {
    207.      int gdriver,gmode;
    208.           int i,j;
    209.    gdriver=DETECT;
    210. /*   registerbgidriver(EGAVGA_driver);*/
    211.     initgraph(&gdriver,&gmode,"c:\\ccdos\\program\\tc");/*修改以适应*/
    212.    setbkcolor(7);
    213.    setcolor(LIGHTBLUE);
    214.    cleardevice();
    215.    ReadIcon(100,100,"C:\\fnt\\about.dat",0);


    216. initgr(); /* BGI初始化 */

    217. drawmat(shi64,64,200,125,WHITE);
    218. drawmat(da64,64,300,125,WHITE);

    219. for(i=0;i<8;i++)
    220.   drawmat(matarray16k+i*32,16,300+i*16,250,RED);


    221.     cleardevice();
    222.    mainmenu();
    223.     closegraph();
    224.    exit(0);
    225.   getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
    226. closegr(); /* 恢复TEXT屏幕模式 */
    227. }

    228. int openhzk(char c)
    229. { if (c=='s')
    230.    handle=open("c:\\ucdos\\fnt\\hzk24s",O_RDONLY|O_BINARY);
    231.    if (c=='f')
    232.    handle=open("c:\\ucdos\\fnt\\hzk24f",O_RDONLY|O_BINARY);
    233.    if (c=='k')
    234.    handle=open("c:\\ucdos\\fnt\\hzk24k",O_RDONLY|O_BINARY);
    235.    if (c=='h')
    236.    handle=open("c:\\ucdos\\fnt\\hzk24h",O_RDONLY|O_BINARY);
    237.    if (c=='o')
    238.    handle=open("c:\\ucdos\\hzk16",O_RDONLY|O_BINARY);

    239.    if(handle==-1)
    240.     {
    241.       cputs("Error on open hzk");
    242.       getch();
    243.       closegraph();
    244.       exit(1);
    245.     }
    246. }

    247. int puthz16(int x,int y,int z,int color,char *p)
    248.   {
    249.     unsigned int i,c1,c2,f=0;
    250.     int i1,i2,i3,rec;
    251.     long l;
    252.     char by[32];
    253.     while((i=*p++)!=0)
    254.       {
    255.     if(i>0xa1)
    256.       if(f==0)
    257.         {
    258.          c1=(i-0xa1)&0x7f;
    259.          f=1;
    260.         }
    261.        else
    262.        {
    263.         c2=(i-0xa1)&0x7f;
    264.         f=0;
    265.         rec=c1*94+c2;
    266.         l=rec*32L;
    267.         lseek(handle,l,SEEK_SET);
    268.         read(handle,by,32);
    269.         for(i1=0;i1<16;i1++)
    270.          for(i2=0;i2<2;i2++)
    271.           for(i3=0;i3<8;i3++)
    272.         if(getbit(by[i1*2+i2],7-i3))
    273.           putpixel(x+i2*8+i3,y+i1,color);
    274.         x=x+16+z;
    275.        }
    276.      }
    277.        return(x);
    278.    }

    279. int puthz24(int x,int y,int z,int color,int xm,int ym,char *p)
    280.   {
    281.     unsigned int i,c1,c2,f=0;
    282.     int i1,i2,i3,i4,i5,rec;
    283.     long l;
    284.     char by[72];
    285.     while((i=*p++)!=0)
    286.       {
    287.     if(i>0xa1)
    288.       if(f==0)
    289.         {
    290.          c1=(i-0xa1-15)&0x07f;
    291.          f=1;
    292.         }
    293.        else
    294.        {
    295.         c2=(i-0xa1)&0x07f;
    296.         f=0;
    297.         rec=c1*94+c2;
    298.         l=rec*72L;
    299.         lseek(handle,l,SEEK_SET);
    300.         read(handle,by,72);
    301.         for(i1=0;i1<24*xm;i1=i1+xm)
    302.          for(i4=0;i4<xm;i4++)
    303.           for(i2=0;i2<3;i2++)
    304.            for(i3=0;i3<8;i3++)
    305.         if(getbit(by[i1/xm*3+i2],7-i3))
    306.           for(i5=0;i5<ym;i5++)
    307.            putpixel(x+i1+i4,y+i2*8*ym+i3*ym+i5,color);
    308.         x=x+24*ym+z;
    309.        }
    310.      }
    311.        return(x);
    312.    }

    313. int getbit(unsigned char c, int n)
    314.   {
    315.     return((c>>n)&1);
    316.   }

    317.   int mainmenu()
    318.   {
    319.    unsigned char *f[]={"数据输入","数据检查","数据修改","统计记录",
    320.                "报表打印","退出系统"};
    321.    int i,x,key1,key2,test,size;
    322.    char c;void *buffer;
    323.    setcolor(12);
    324.    rectangle(1,0,637,33);
    325.    setfillstyle(1,3);
    326.    floodfill(200,20,12);
    327.    setcolor(LIGHTRED);
    328.    setlinestyle(0,0,2);
    329.    rectangle(1,0,637,479);
    330.    openhzk('s');
    331.    x=-3;
    332.    for(i=0;i<=5;i++)
    333.     x=puthz24(10+x,6,0,1,1,1,f[i]);
    334.    close(handle);
    335.    setcolor(12);
    336.    line(1,33,637,33);
    337.    line(107,0,107,33);
    338.    line(213,0,213,33);
    339.    line(319,0,319,33);
    340.    line(425,0,425,33);
    341.    line(531,0,531,33);
    342.    size=imagesize(3,2,105,31);
    343.    buffer=malloc(size);
    344.    getimage(3,2,105,31,buffer);
    345.    putimage(3,2,buffer,NOT_PUT);
    346.    x=3;
    347.    while(1)
    348.    {
    349.      while(key1!=13)
    350.      {
    351.        while(biOSkey(1)==0);
    352.        key1=key2=bioskey(0);
    353.        key1=key1&0xff;
    354.        key2=key2&0xff?0:key2>>8;
    355.        if(key2==75||key2==77)
    356.        {
    357.      putimage(x,2,buffer,COPY_PUT);
    358.      if(key2==77) x=x>=533?3:x+106;
    359.      if(key2==75) x=x<=3?533:x-106;
    360.      getimage(x,2,x+102,31,buffer);
    361.      putimage(x,2,buffer,NOT_PUT);
    362.        }
    363.      }
    364.      test=(x-3)/106+1;
    365.      switch(test)
    366.      {
    367.       case 1:menu11();
    368.          break;
    369.       case 2:menu12();
    370.          break;
    371.       case 3:menu13();
    372.          break;
    373.       case 4:menu14();
    374.          break;
    375.       case 5:menu15();
    376.          break;
    377.       case 6:closegraph();
    378.          exit(0);
    379.      }
    380.    key1=0;
    381.    }
    382.    free(buffer);
    383.    }

    384. int menu11()
    385.   {
    386.    unsigned char *f[]={"单个录入","连续录入"};
    387.    int x0=1,y0=35,h=2;
    388.    menu0(x0,y0,h,f);
    389.    switch(test1)

    390.     {case 1:do1();
    391.         break;
    392.      case 2:break;
    393.     }
    394.    mainmenu();
    395.    }


    396. int do1()
    397.    {setviewport(1,0,638,479,1);
    398.     clearviewport();
    399.     outtextxy(50,50,"name");
    400.     outtextxy(50,60,"number");
    401.     getch();
    402.     clearviewport();
    403.     }

    404. int menu12()
    405.   {
    406.    unsigned char *f[]={"单个录入","连续录入"};
    407.    int x0=107,y0=35,h=2;
    408.    menu0(x0,y0,h,f);
    409.    }


    410. int menu13()
    411.   {
    412.    unsigned char *f[]={"单个录入","连续录入"};
    413.    int x0=213,y0=35,h=2;
    414.    menu0(x0,y0,h,f);
    415.    }

    416.   int menu14()
    417.   {
    418.    unsigned char *f[]={"单个录入","连续录入"};
    419.    int x0=319,y0=35,h=2;
    420.    menu0(x0,y0,h,f);
    421.    }
    422. int menu15()
    423.   {
    424.    unsigned char *f[]={"单个录入","连续录入"};
    425.    int x0=425,y0=35,h=2;
    426.    menu0(x0,y0,h,f);
    427.    }

    428. int menu0(int x0,int y0,int h,unsigned char *f[])
    429.    {
    430.    int i,y,key1,key2,size0,size1;
    431.    void *buf0,*buf1;
    432.    char c;

    433.    int j,k,len;
    434.       k=0;
    435.       for(j=1;j<h;j++)
    436.       if(strlen(f[k])<strlen(f[j])) k=j;

    437.       len=strlen(f[k])*8+2;

    438.    if((x0+len)>637) x0=637-len;
    439.    size0=imagesize(x0,y0,x0+len,y0+20*h);
    440.    buf0=malloc(size0);
    441.    getimage(x0,y0,x0+len,y0+20*h,buf0);
    442.    setcolor(12);
    443.    rectangle(x0,y0,x0+len,y0+20*h);
    444.    setfillstyle(1,3);
    445.    floodfill(x0+10,y0+10,12);
    446.    setcolor(12);
    447.    setlinestyle(SOLID_LINE,0,1);
    448.    rectangle(x0,y0,x0+len,y0+20*h);
    449.    openhzk('o');
    450.    for(i=0;i<h;i++)
    451.       puthz16(x0+2,i*20+y0+2,0,1,f[i]);
    452.    close(handle);
    453.    size1=imagesize(x0+2,y0,x0+len-2,y0+20);
    454.    buf1=malloc(size1);
    455.    getimage(x0+2,y0,x0+len-2,y0+20,buf1);
    456.    putimage(x0+2,y0,buf1,NOT_PUT);
    457.    y=y0;
    458.    key1=0;
    459.    while(key1!=13&&key1!=27)
    460.      {
    461.        while(bioskey(1)==0);
    462.        key1=key2=bioskey(0);
    463.        key1=key1&0xff;
    464.        key2=key2&0xff?0:key2>>8;
    465.        if(key2==72||key2==80)
    466.        {
    467.      putimage(x0+2,y,buf1,COPY_PUT);
    468.      if(key2==72) y=y==y0?(y0+20*(h-1)):y-20;
    469.      if(key2==80) y=y==(y0+20*(h-1))?y0:y+20;
    470.      getimage(x0+2,y,x0+len-2,y+20,buf1);
    471.      putimage(x0+2,y,buf1,NOT_PUT);
    472.        }
    473.      }
    474.    free(buf1);
    475.    if(key1==13) test1=(y-y0)/20+1;
    476.    if(key1==27) test1=0;
    477.    putimage(x0,y0,buf0,COPY_PUT);
    478.    free(buf0);
    479. }

    480. ReadIcon(int x,int y,char *filename,int mode)
    481. {
    482. void *buf;
    483. long size;
    484. int fp;
    485. fp=open(filename,O_CREAT|O_BINARY);
    486. if(fp==-1) return 0;
    487. size=filelength(fp);
    488. buf=malloc(size);
    489. read(fp,buf,size);
    490. putimage(x,y,buf,mode);
    491. free(buf);
    492. close(fp);

    493. }
    494. 
    复制代码
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2018-2-11 09:23
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2010-11-9 21:14:54 | 显示全部楼层
    忘了说,需要中文DOS支持
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-11-10 09:54:14 | 显示全部楼层
    太长了,不想看。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-11-10 10:23:27 | 显示全部楼层
    500行的代码,看不懂
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-11-14 13:56:01 | 显示全部楼层
    那是自古英雄出少年啊!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表