鼠标操作
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<graphics.h> 5 #include<conio.h> 6 #include<math.h> 7 #include<dos.h> 8 #define S 16 9 #define HZK "c:\\hzk16" 10 long app=0,opple=0,Akm=0,sdibt=0; 11 int x=60,y=80; 12 char app1[123]; 13 void newxy(); 14 void cursor(); 15 void dispz(); 16 void my_sound(); 17 void load_pic(); 18 void save_pic(); 19 void input(); 20 void read_date(); 21 long Mouse_operate(); 22 void disphz(); 23 int oi=0; 24 struct HEAD 25 { 26 char file_type; 27 char file_date[3]; 28 long file_num; 29 short file_width; 30 short rec_width; 31 } head; 32 struct file 33 { 34 char field_name[10]; 35 char field_type[2]; 36 long field_start; 37 char field_width; 38 char field_dight; 39 } Fild; 40 struct ranklist 41 { 42 char name[123]; 43 double english; 44 double math; 45 double sum; 46 double computer; 47 } p; 48 union input 49 { 50 int key; 51 char cmp[2]; 52 } key; 53 int cmp(const void *a,const void *b) 54 { 55 struct ranklist *c=(struct ranklist *)a; 56 struct ranklist *d=(struct ranklist *)b; 57 if(c->sum==d->sum) 58 return d->english-c->english; 59 return d->sum-c->sum; 60 } 61 void input() 62 { 63 int gmode,gdriver=DETECT; 64 long lenth=0,flag=0,m,k=0; 65 char str[112],arr[]= {"Please input your secret"},ch; 66 initgraph(&gdriver,&gmode,""); 67 cleardevice(); 68 setcolor(4); 69 setcolor(15); 70 bar(110,120,310,150); 71 disphz(110,100,"请输入数据库文件名,回车键结束",15,1); 72 disphz(110,180,"提示",15,1); 73 setcolor(15); 74 outtextxy(142,215,"1."); 75 disphz(155,210,"可以带盘符和路径,如:",15,1); 76 setcolor(15); 77 outtextxy(380,215,"c:\\tc\\ss.dbf"); 78 setcolor(15); 79 outtextxy(145,235,"2.dbf"); 80 disphz(185,230,"可省略",15,1); 81 memset(app1,0,sizeof(app1)); 82 do 83 { 84 flag++; 85 if(flag%2==0) 86 setcolor(15); 87 else 88 setcolor(0); 89 line(110+lenth*16,150,110+lenth*16+10,150); 90 delay(200); 91 } 92 while(!kbhit()); 93 setcolor(15); 94 line(110+lenth*16,150,110+lenth*16+10,150); 95 while(1) 96 { 97 98 ch=getch(); 99 if(ch!=8&&ch!='\r') 100 { 101 str[k++]=ch; 102 str[k]='\0'; 103 104 } 105 else if(ch==8) 106 { 107 if(k-1>=0) 108 { 109 str[k-1]='\0'; 110 k--; 111 } 112 } 113 else 114 break; 115 setcolor(15); 116 settextstyle(0,0,2); 117 outtextxy(110,135,app1); 118 setcolor(0); 119 settextstyle(0,0,2); 120 outtextxy(110,135,str); 121 strcpy(app1,str); 122 setcolor(15); 123 line(110+lenth*16,150,110+lenth*16+10,150); 124 lenth=strlen(str); 125 do 126 { 127 flag++; 128 if(flag%2==0) 129 setcolor(15); 130 else 131 setcolor(0); 132 line(110+lenth*16,150,110+lenth*16+10,150); 133 delay(200); 134 } 135 while(!kbhit()); 136 } 137 strcpy(app1,str); 138 } 139 void read_date(struct ranklist *student) 140 { 141 long n,i,j,m,p3,cpu; 142 char str[134],kk[123]; 143 double score; 144 char ch,name[123]; 145 long start1,start2,start3,count=0,p1,p2,p4,start4; 146 FILE *fp; 147 m=app; 148 input(); 149 while(1) 150 { 151 if(strlen(app1)>=4&&app1[strlen(app1)-4]!='.') 152 { 153 strcat(app1,".dbf"); 154 app1[strlen(app1)]='\0'; 155 } 156 if((fp=fopen(app1,"rb"))==NULL) 157 { 158 159 160 setcolor(1); 161 rectangle(270,240,580,370); 162 163 setfillstyle(1,1); 164 floodfill(273,243,1); 165 setcolor(15); 166 outtextxy(290,300,"1."); 167 disphz(275,245,"打不开文件,请选择以下两种方案",15,1); 168 disphz(310,295,"如果想重新输入请按数字一",15,1); 169 setcolor(15); 170 outtextxy(290,320,"2."); 171 disphz(310,315,"如果想退出请按数字二",15,1); 172 cpu=getch(); 173 if(cpu=='1') 174 input(); 175 else 176 sdibt=2; 177 } 178 else 179 break; 180 if(sdibt==2) 181 return; 182 183 } 184 fp=fopen(app1,"rb"); 185 fread(&head,12,1,fp); 186 fseek(fp,20,1); 187 for(i=0;; i++) 188 { 189 fread(&Fild,18,1,fp); 190 if(strcmp(Fild.field_name,"数学")==0) 191 { 192 start2=Fild.field_start; 193 p1=Fild.field_width; 194 count++; 195 } 196 if(strcmp(Fild.field_name,"姓名")==0) 197 { 198 start1=Fild.field_start; 199 count++; 200 p2=Fild.field_width; 201 } 202 if(strcmp(Fild.field_name,"英语")==0) 203 { 204 start3=Fild.field_start; 205 count++; 206 p3=Fild.field_width; 207 } 208 if(strcmp(Fild.field_name,"计算机")==0) 209 { 210 start4=Fild.field_start; 211 count++; 212 p4=Fild.field_width; 213 } 214 if(count==4) 215 break; 216 fseek(fp,14,1); 217 } 218 fseek(fp,head.file_width,0); 219 for(m=0; m<head.file_num; m++) 220 { 221 fseek(fp,head.file_width+m*head.rec_width,0); 222 ch=fgetc(fp); 223 if(ch=='*') 224 continue; 225 fseek(fp,head.file_width+m*head.rec_width+start1,0); 226 for(j=0; j<p2; j++) 227 name[j]=fgetc(fp); 228 name[j]='\0'; 229 j=0; 230 for(i=0; i<p2; i++) 231 { 232 233 if(name[i]!=32) 234 kk[j++]=name[i]; 235 } 236 kk[j]='\0'; 237 strcpy(student[app].name,kk); 238 score=0; 239 fseek(fp,m*head.rec_width+head.file_width+start2,0); 240 fgets(str,p1,fp); 241 for(i=0; i<strlen(str); i++) 242 { 243 if(str[i]==' ') 244 continue; 245 if(str[i]!='.'&&str[i-1]!='.') 246 score+=str[i]-48; 247 if(str[i+1]!='.'&&str[i]!='.'&&str[i-1]!='.') 248 score*=10; 249 if(str[i-1]=='.') 250 { 251 score+=(str[i]-48)/10.0; 252 break; 253 } 254 } 255 student[app].math=score; 256 fseek(fp,m*head.rec_width+head.file_width+start3,0); 257 fgets(str,p3,fp); 258 score=0; 259 for(i=0; i<strlen(str); i++) 260 { 261 if(str[i]==' ') 262 continue; 263 if(str[i]!='.'&&str[i-1]!='.') 264 score+=str[i]-48; 265 if(str[i+1]!='.'&&str[i]!='.'&&str[i-1]!='.') 266 score*=10; 267 if(str[i-1]=='.') 268 { 269 score+=(str[i]-48)/10.0; 270 break; 271 } 272 } 273 student[app].english=score; 274 fseek(fp,m*head.rec_width+head.file_width+start4,0); 275 fgets(str,p4,fp); 276 score=0; 277 for(i=0; i<strlen(str); i++) 278 { 279 if(str[i]==' ') 280 continue; 281 if(str[i]!='.'&&str[i-1]!='.') 282 score+=str[i]-48; 283 if(str[i+1]!='.'&&str[i]!='.'&&str[i-1]!='.') 284 score*=10; 285 if(str[i-1]=='.') 286 { 287 score+=(str[i]-48)/10.0; 288 break; 289 } 290 } 291 student[app].computer=score; 292 student[app].sum=student[app].english+student[app].math+student[app].computer; 293 fseek(fp,head.file_width+m*head.rec_width,0); 294 app++; 295 } 296 qsort(student,app,sizeof(student[0]),cmp); 297 for(i=0; i<app; i++) 298 printf("%s %.2lf %.2lf %.2lf %.2lf\n",student[i].name,student[i].english,student[i].math,student[i].computer,student 299 300 [i].sum); 301 fclose(fp); 302 } 303 long Mouse_operate(long kk,long m) 304 { 305 int buttons,sum=0; 306 char str[100]; 307 setwritemode(XOR_PUT); 308 309 if(Akm==0) 310 { 311 init(2,638,8,477); 312 x=320; 313 y=240; 314 } 315 Akm=2; 316 cursor(x,y); 317 for(;;) 318 { 319 newxy(&x,&y,&buttons); 320 if(kbhit()) 321 { 322 opple++; 323 return kk; 324 } 325 if(x>=100&&x<=150&&y>=435&&y<=455&&buttons&&m) 326 { 327 if(kk-3>=0) 328 return kk-3; 329 return kk; 330 } 331 else if(x>=260&&x<=310&&y>=435&&y<=455&&buttons&&m) 332 { 333 334 if(kk+3<m) 335 return kk+3; 336 return kk; 337 } 338 else if(x>=420&&x<=470&&y>=435&&y<=455&&buttons&&m) 339 { 340 341 return -1; 342 } 343 else if(x>=285&&x<=330&&y>=435&&y<=455&&buttons&&m==0) 344 return -1; 345 346 } 347 348 } 349 int init(int xmin,int xmax,int ymin,int ymax) 350 { 351 union REGS regs; 352 regs.x.ax=0; 353 int86(51,®s,®s); 354 if(regs.x.ax==0) 355 return 0; 356 regs.x.ax=7; 357 regs.x.cx=xmin; 358 regs.x.dx=xmax; 359 int86(51,®s,®s); 360 regs.x.ax=8; 361 regs.x.cx=ymin; 362 regs.x.dx=ymax; 363 int86(51,®s,®s); 364 return -1; 365 } 366 int read_mouse(int *mx,int *my,int *mbutton) 367 { 368 union REGS regs; 369 int x0=*mx,y0=*my,button0=*mbutton; 370 int xnew,ynew; 371 do 372 { 373 regs.x.ax=3; 374 int86(0x33,®s,®s); 375 xnew=regs.x.cx; 376 ynew=regs.x.dx; 377 *mbutton=regs.x.bx; 378 } 379 while(xnew==0&&ynew==y0&&*mbutton==button0); 380 *mx=xnew; 381 *my=ynew; 382 switch(*mbutton) 383 { 384 case 0: 385 return 0; 386 case 1: 387 return 1; 388 case 2: 389 return 2; 390 case 3: 391 return 3; 392 default : 393 return 4; 394 } 395 } 396 void newxy(int *mx,int *my,int *mbutt) 397 { 398 int ch,xx0=*mx,yy0=*my; 399 int xm,ym; 400 ch=read_mouse(&xm,&ym,mbutt); 401 cursor(xx0,yy0); 402 cursor(xm,ym); 403 *mx=xm; 404 *my=ym; 405 406 } 407 void cursor(int x,int y) 408 { 409 int x1,x2,y1,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8; 410 x1=x-15; 411 y1=y+15; 412 413 line(x,y,x1,y1); 414 x2=x1+5; 415 y2=y1+10; 416 line(x1,y1,x2,y2); 417 x3=x-2; 418 y3=y+15; 419 line(x2,y2,x3,y3); 420 x4=x-2; 421 y4=y+35; 422 line(x3,y3,x4,y4); 423 x5=x+15; 424 y5=y+15; 425 line(x,y,x5,y5); 426 x6=x5-5; 427 y6=y5+10; 428 line(x5,y5,x6,y6); 429 x7=x+2; 430 y7=y+15; 431 line(x6,y6,x7,y7); 432 x8=x7; 433 y8=y+35; 434 line(x7,y7,x8,y8); 435 line(x4,y4,x8,y8); 436 } 437 438 void picture(struct ranklist b[]) 439 { 440 int i,j,gmode,gdriver=DETECT,q,kmp,a[3]= {9,8,6},k=30,pos[10]; 441 long m,kk=0,l=6,n=0,cmp,num=0,flag=0,mmk; 442 char arr; 443 char page[][77]= {"(F)","(B)","(Esc)"}; 444 char str[22][22]= {"10","20","30","40","50","60","70","80","90","100"},dis[3][100]= {"前页","后页","退出"}; 445 m=app; 446 initgraph(&gdriver,&gmode,""); 447 key.cmp[1]=2; 448 while(1) 449 { 450 451 if(key.cmp[1]==1) 452 break; 453 k=50; 454 q=10; 455 l=6; 456 457 line(25,10,25,405); 458 line(20,15,25,10); 459 line(30,15,25,10); 460 line(25,403,550,403); 461 line(540,399,550,403); 462 line(540,407,550,403); 463 outtextxy(15,15,"y"); 464 outtextxy(15,400,"o"); 465 outtextxy(560,400,"x"); 466 disphz(80,15,"学生成绩柱状图分布",4,2); 467 for(i=0; i<=9; i++) 468 { 469 line(25,400-q*3,30,400-q*3); 470 outtextxy(0,400-q*3,str[i]); 471 q+=10; 472 } 473 kmp=0; 474 for(i=0; i<3; i++) 475 { 476 setfillstyle(1,a[i]); 477 bar(540,kmp,575,30+kmp); 478 if(i==0) 479 disphz(575,10+kmp,"英语",4,1); 480 if(i==1) 481 disphz(575,10+kmp,"数学",4,1); 482 if(i==2) 483 disphz(575,10+kmp,"计算机",4,1); 484 kmp+=50; 485 486 } 487 flag++; 488 for(i=0; i<3; i++) 489 { 490 if(i+kk>=m) 491 break; 492 493 disphz(k+60,405,b[i+kk].name,4,1); 494 for(j=0; j<3; j++) 495 { 496 if(j==0) 497 { 498 setfillstyle(1,9); 499 bar3d(k,400-b[i+kk].english*3,k+50,400,35,1); 500 501 } 502 else if(j==1) 503 { 504 setfillstyle(1,8); 505 bar3d(k,400-b[i+kk].math*3,k+50,400,35,1); 506 if(flag==1) 507 { 508 pos[num]=k; 509 num++; 510 } 511 } 512 else 513 { 514 setfillstyle(1,6); 515 bar3d(k,400-b[i+kk].computer*3,k+50,400,35,1); 516 } 517 k+=50; 518 519 } 520 k+=10; 521 } 522 pos[num]='\0'; 523 for(cmp=0; cmp<3; cmp++) 524 { 525 setfillstyle(1,4); 526 if((kk==0&&cmp==0)||(cmp==1&&(kk==app-2))) 527 setfillstyle(1,8); 528 bar3d(pos[cmp],435,pos[cmp]+65,455,12,1); 529 disphz(pos[cmp],437,dis[cmp],0,1); 530 outtextxy(pos[cmp]+39,440,page[cmp]); 531 } 532 opple=0;mmk=kk; 533 kk=Mouse_operate(kk,m); 534 if(kk==-1||key.cmp[1]==1) 535 break; 536 n=3; 537 538 while(n--) 539 { 540 delay(50000); 541 } 542 if(opple==1) 543 kk=keyboard(kk,m) ; 544 if(mmk!=kk) 545 cleardevice(); 546 547 } 548 } 549 int keyboard(long kk,long m) 550 { 551 key.key=bioskey(0); 552 if(key.cmp[0]=='F') 553 { 554 if(kk-3>=0) 555 return kk-3; 556 return kk; 557 } 558 else if(key.cmp[0]=='B') 559 { 560 if(kk+3<m) 561 return kk+3; 562 return kk; 563 } 564 return kk; 565 566 } 567 void graph(struct ranklist *b) 568 { 569 int gmode,gdriver=DETECT,i,kmp,j,flag,p=0,kkp,hhh; 570 long kk[7]= {0},start=0,l=2,kkk=2,m=0,k=30; 571 int hh[12],s=0,s2=0; 572 char name[123][123]; 573 initgraph(&gdriver,&gmode,""); 574 cleardevice(); 575 disphz(28,15,"学生成绩饼状图分布",4,2); 576 for(i=0; i<app; i++) 577 { 578 if(b[i].sum/3<=60) 579 kk[0]++; 580 else if(b[i].sum/3<=70) 581 kk[1]++; 582 else if(b[i].sum/3<=80) 583 kk[2]++; 584 else if(b[i].sum/3<=90) 585 kk[3]++; 586 else 587 kk[4]++; 588 } 589 kmp=0; 590 591 for(i=0; i<5; i++) 592 { 593 if(i==4) 594 hh[i]=(1-s)*10000; 595 hh[i]=10000*kk[i]*1.0/app; 596 s+=hh[i]; 597 setfillstyle(1,kkk++); 598 bar(470,kmp,505,30+kmp); 599 if(i==0) 600 outtextxy(505,10+kmp,"0--60"); 601 if(i==1) 602 outtextxy(505,10+kmp,"60--70"); 603 if(i==2) 604 outtextxy(505,10+kmp,"70--80"); 605 if(i==3) 606 outtextxy(505,10+kmp,"80--90"); 607 if(i==4) 608 outtextxy(505,10+kmp,"90--100"); 609 kmp+=40; 610 611 } 612 for(i=0;i<5;i++){ 613 j=0; 614 flag=0;hhh=1; 615 p=hh[i];kkp=p; 616 printf("%d\n",p); 617 getch(); 618 while(p) 619 { 620 621 if(p>0) 622 flag++; 623 p/=10; 624 hhh*=10; 625 626 } 627 hhh/=10; 628 p=kkp; name[i][flag-2]='.';} 629 630 /* while(hhh) 631 { 632 if(name[i][j]=='.') 633 { 634 j++; 635 } 636 name[i][j++]=p/hhh; 637 hhh/=10; 638 p/=10; 639 } 640 641 name[i][j]='\0'; 642 puts(name[i]); 643 getch(); 644 }*/ 645 for(i=0; i<5; i++) 646 { 647 648 setfillstyle(1,l++); 649 if(i==4) 650 pieslice(360,240,start,360,100); 651 else 652 pieslice(360,240,start,start+kk[i]*360/app,100); 653 start+=kk[i]*360/app; 654 s=start; 655 s2=100*sin(s/2); 656 657 658 } 659 setfillstyle(1,4); 660 bar3d(280,435,330,455,12,1); 661 outtextxy(285,440,"Esc"); 662 k=Mouse_operate(k,m); 663 if(k==-1) 664 return; 665 getch(); 666 cleardevice(); 667 } 668 void disphz(int x,int y,char *p,int color,int m) 669 { 670 int i,j,n,k; 671 FILE *fp; 672 char qh,wh; 673 long offset; 674 char buffer[S*S/8]; 675 char mask[]= {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; 676 if((fp=fopen(HZK,"rb"))==NULL) 677 exit(0); 678 while(*p!='\0') 679 { 680 qh=*p-0xa0; 681 p++; 682 wh=*p-0xa0; 683 p++; 684 offset=(94L*(qh-1)+wh-1)*S*S/8; 685 fseek(fp,offset,0); 686 fread(buffer,S*S/8,1,fp); 687 for(i=0; i<S; i++) 688 { 689 for(j=0; j<S; j++) 690 { 691 if((buffer[S/8*i+j/8]&mask[j%8])!=0) 692 for(n=0; n<m; n++) 693 for(k=0; k<m; k++) 694 putpixel(x+j*m+n,y+i*m+k,color); 695 } 696 } 697 x+=S*m+5; 698 } 699 fclose(fp); 700 return; 701 } 702 void save_pic() 703 { 704 FILE *fp; 705 int i; 706 char far *p; 707 long j; 708 fp=fopen("pic.dat","wb"); 709 for(i=0;i<4;i++) 710 { 711 outportb(0x3ce,4); 712 outportb(0x3cf,i); 713 p=(char far*)0xa0000000L; 714 for(j=0;j<38400L;j++) 715 { fputc(*p,fp); 716 p++; 717 } 718 } 719 fclose(fp); 720 outportb(0x3cf,0); 721 } 722 void load_pic(int kk) 723 { 724 FILE *fp; 725 int i,k=1; 726 char far *p; 727 long j; 728 fp=fopen("pic.dat","rb"); 729 for(i=0;i<4;i++) 730 { 731 outportb(0x3c4,2); 732 outportb(0x3c5,k); 733 p=(char far*)0xa0000000L-kk*80; 734 for(j=0;j<38400;j++) 735 { 736 *p=getc(fp); 737 p++; 738 } 739 k*=2; 740 } 741 fclose(fp); 742 outportb(0x3c5,0xcf); 743 } 744 745 void title() 746 { 747 int i,n=0,k=0; 748 int gmode,gdriver=DETECT; 749 char ppq[][111]= {"1:","一","二"}; 750 char str[][123]= {"","程","序","设","计"},arr[][111]= {"程序功能","显示学生成绩分布图","显示各分数段圆饼图"}; 751 initgraph(&gdriver,&gmode,""); 752 cleardevice(); 753 setcolor(15); 754 rectangle(130,180,500,400); 755 setbkcolor(3); 756 outtextxy(170,180,":"); 757 settextstyle(1,0,9); 758 outtextxy(70,20,"c"); 759 for(i=1; i<=5; i++) 760 { 761 setcolor(1); 762 circle(100+n,80,50); 763 disphz(70+n,46,str[i-1],4,3); 764 if(i<=3) 765 { 766 disphz(170,180+k,arr[i-1],4,1); 767 setcolor(4); 768 if(i>=2) 769 disphz(145,180+k,ppq[i-1],4,1); 770 } 771 n+=120; 772 k+=30; 773 } 774 disphz(210,320,"按任意键继续",15,2); 775 } 776 void backspace() 777 { 778 settextstyle(1,0,9); 779 setcolor(4); 780 outtextxy(120,120,"The End"); 781 getch(); 782 } 783 void introduce() 784 { 785 int i,k=0,n=30,p=0,l=5,opp=0,kk=0; 786 char str[][12]= {"首","先","感","谢","王","老","师","一","年","来","的","谆","谆","教","悔","和","辛","勤","的","付","出"}; 787 char arr[][13]= {"本","程","序","是","于","二","零","一","八","年","六","月","一","号","独","立","设","计","完","成","的"}; 788 char bbq[][123]={"设","计","人",":","夏","令","富"}; 789 cleardevice(); 790 791 792 for(i=0; i<49; i++) 793 { 794 795 if(i<21) 796 disphz(220+k,240,str[i],4,1); 797 else if(i>=21&&i<42) 798 disphz(180+opp,260,arr[i%21],4,1),opp+=20; 799 else 800 disphz(320+kk,290,bbq[i-42],4,2),kk+=30; 801 k+=20; 802 my_sound(i+1); 803 804 } 805 806 save_pic(); 807 for(i=0; i<250; i++) 808 { 809 load_pic(i); 810 cleardevice(); 811 } 812 backspace(); 813 814 } 815 void music(unsigned int freq,int times) 816 { 817 int i; 818 union 819 { 820 int divisor; 821 char c[2]; 822 } count; 823 char bits; 824 count.divisor=1193180/freq; 825 outportb(0x43,0xb6); 826 outportb(0x42,count.c[0]); 827 outportb(0x42,count.c[1]); 828 bits=inportb(0x61); 829 outportb(0x61,bits|3); 830 for(i=0; i<times; i++) 831 delay(25000); 832 outport(0x61,bits&0xfc); 833 outportb(0x61,bits); 834 } 835 void my_sound(int l) 836 { 837 int freq[8]= {0,256,294,330,349,392,440,494}; 838 int song[]= { 8,8,5,5,3,6,5,3, 839 2,1,2,3,1,0, 840 3,1,3,3,1, 841 3,3,5,6,5,0, 842 6,6,6,5,4,4,4, 843 2,3,2,1,2,0, 844 3,1,0,3,1,0, 845 3,3,5,6,6,0, 846 8,5,5,6,3, 847 2,1,2,3,5,5, 848 8,5,5,6,3, 849 2,1,2,3,1,1 850 851 852 }; 853 float div[]= { 8,8,8,8,8,8,8,8, 854 8,8,8,8,4,4, 855 4,4,8,8,4, 856 8,8,8,8,4,4, 857 8,8,8,8,8,8,4, 858 8,8,8,8,4,4, 859 4,8,8,4,8,8, 860 8,8,8,8,4,4, 861 4,8,8,4,4, 862 8,8,8,8,4,4, 863 4,8,8,4,4, 864 8,8,8,8,4,4 865 866 }; 867 unsigned int f; 868 int times,i; 869 for(i=l; i<l+1; i++) 870 { 871 if(song[i]<0) 872 f=freq[-song[i]]/2; 873 else if(song[i]>7) 874 f=freq[song[i]%7]*2; 875 else if(song[i]==0) 876 f=100000000000000; 877 else 878 f=freq[song[i]]; 879 times=16/div[i]; 880 music(f,times); 881 } 882 return 0; 883 } 884 885 int main() 886 { 887 struct ranklist student[123]; 888 title(); 889 getch(); 890 read_date(student); 891 if(sdibt==0) 892 { 893 picture(student); 894 graph(student); 895 introduce(); 896 } 897 return 0; 898 }
本文来自博客园,作者:左手边五十米,转载请注明原文链接:https://www.cnblogs.com/moomcake/p/9007229.html