11.rar

  • PUDN用户
    了解作者
  • Visual C++
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 13
    下载次数
  • 2010-04-26 14:44
    上传日期
开发音乐程序。提供给用户输入乐谱的窗口,只要用户按照你规定的输入方式输入乐谱(音高和音长),并保存到文件中。音乐程序就可以从文件中读取乐谱并演奏。
11.rar
  • 11.CPP
    2.9KB
内容介绍
#include<math.h> #include<conio.h> #include<stdio.h> #include<string.h> #include<dos.h> void sound1(int freq,int time); void pause(int time); struct yinyue {int s; char m2[100];} yinyue1,yinyue2; void main() { int i,freq; int SPEED,time; char *qm; FILE *ff,*fff; printf("the mid 1 2 3 4 5 6 7 are a s d f g h j \n"); printf("the low 1 2 3 4 5 6 7 are z x c v b n m \n"); printf("the high 1 2 3 4 5 6 7 are q w e r t y u \n"); printf("i is one beat. l is half beat. k is quarter beat.\no is one beat and a half.\n"); printf("beat is before sound!\n"); printf("input the SPEED(the bigger the slower,such as 10,20,40): \n"); printf(" -------------------------------------------------\n"); scanf("%d",&yinyue1.s); printf("input the music: \n"); printf(" -------------------------------------------------\n"); scanf("%s",yinyue1.m2); if ((ff = fopen("111.dat", "wb")) == NULL) { printf( "Cannot open the file.\n"); } else{ fwrite(&yinyue1,sizeof(struct yinyue),1,ff); } fclose(ff); if ((fff = fopen("111.dat", "rb")) == NULL) { printf( "Cannot open the file.\n"); } else{ fread(&yinyue2,sizeof(struct yinyue),1,ff); } fclose(fff); SPEED=yinyue2.s; qm=yinyue2.m2; time=4*SPEED; printf("%d\n%d\n",SPEED,time); printf("%s",qm); while(*qm++!='\0'){ i=1; switch(*qm){ case'k': time=1*SPEED;i=0; break; case'l': time=2*SPEED;i=0; break; case'i': time=4*SPEED;i=0; break; case'o': time=6*SPEED;i=0; case'p': pause(time);i=0; break; case'a': freq=523; break; case's': freq=587; break; case'd': freq=659; break; case'f': freq=698; break; case'g': freq=784; break; case'h': freq=880; break; case'j': freq=988; break; case'z': freq=262; break; case'x': freq=294; break; case'c': freq=330; break; case'v': freq=349; break; case'b': freq=392; break; case'n': freq=440; break; case'm': freq=494; break; case'q': freq=1047; break; case'w': freq=1175; break; case'e': freq=1319; break; case'r': freq=1397; break; case't': freq=2568; break; case'y': freq=1760; break; case'u': freq=1976; break; default: i=0; break; } if(i) sound1(freq,time); } } void sound1(int freq,int time)/*freq为频率,time为时间*/ { union{ long divisor; unsigned char c[2]; }count; unsigned char ch; count.divisor=1193280/freq;/*1193280是系统时钟频率*/ outp(67,182); outp(66,count.c[0]); outp(66,count.c[1]); ch=inp(97); outp(97,ch|3); pause(time); outp(97,ch); } void pause(int time) { int t1,t2; union REGS in,out; in.h.ah=0x2c; int86(0x21,&in,&out); /*取得当前时间*/ t1=t2=100*out.h.dh+out.h.dl; /*out.h.dh为秒值,out.h.dl为1/100秒值*/ while(t2-t1<time) { int86(0x21,&in,&out); t2=100*out.h.dh+out.h.dl; if(t2<t1)t2+=6000; /*增加一分钟 */ } }
评论
    相关推荐
    • 数据库课程设计
      一个数据库课程设计,access管理工具实现,用的是窗体!
    • 数据库课程设计
      数据库课程设计十分完整有需要的请下载啊谢谢
    • 数据库课程设计
      广东工业大学数据库课程设计,可视化界面连接数据库,delphi7
    • 数据库课程设计
      数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述
    • 数据库课程设计
      数据库课程设计》由周爱武、汪海威、肖云编著,遵循数据库课程设计的具体要求,独立于具体的数据库教材,从实际应用系统的需求着手,引导读者逐步完成数据库设计全过程,重点讲解数据库系统的需求分析、概念设计、...
    • 数据库课程设计
      数据库课程设计人事管理系统 数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计...
    • 数据库课程设计
      数据库课程设计,基于visual basic自助银行管理系统,界面很清爽,实用。同学都说好,所以就上传了!!!
    • 数据库课程设计
      数据库课程设计 里面有详细的文档资料 包含数据库一切的图 以及生成的数据库表文件 期末得分为优秀
    • 数据库课程设计
      可以作为数据库课程设计,也可以作为Java的课程设计,内容全面。本资源转载的,非本人原创。用于交流学习,特此申明!
    • 数据库课程设计
      数据库课程设计蓝天大学学生管理系统 2.商店信息管理系统 3.实验室机房收费管理系统 4.图书馆资料检索系统 5.企业库存管理系统 6.仓库管理系统 7.工程项目管理系统 8.教材管理系统 9.企业人事管理系统 10.企业财务...