哈工大C语言课程设计

哈工大C语言课程设计
哈工大C语言课程设计

H a r b i n I n s t i t u t e o f T e c h n o l o g y

课程设计说明书(论文)课程名称:C语言课程设计

设计题目:音乐程序与波特图

院系:航天学院控制科学与工程系

班级:

设计者:

学号:

指导教师:

设计时间:

哈尔滨工业大学教务处

哈尔滨工业大学课程设计任务书

*注:此任务书由课程设计指导教师填写。

题目一

1.1

题目详细描述:

播放音乐程序,实现了自选音乐曲目和直接使用键盘弹奏,而且可以在曲目播放结束后循环选择乐曲。 1.2

程序设计思路及流程图:

1.3

程序清单及注释:

#include

#include

#include

#include

#include

#include

#define N1 16

#define N2 8

#define N4 4

#define N8 2

#define N16 1

#define END 0

void playmusic(int n,int *c);

void typemusic();

enum NOTES{

C10=131,D10=147,E10=165,F10=175,G10=196,A10=220,B10=247,

C0=262,D0=296,E0=330,F0=349,G0=392,A0=440,B0=494,

C1=523,D1=587,E1=659,F1=698,G1=784,A1=880,B1=988,

C2=1047,D2=1175,E2=1319,F2=1397,G2=1568,A2=1760,B2=1976,S=10 };

typedef enum NOTES SONG;

SONG song1[]={C0,N4+N2,E0,N4,G0,N2,G0,N2,A0,N1,G0,N1,E0,N4+N2,

C0,N4,G0,N1/3,G0,N1/3,G0,N1/3,E0,N1,C0,N1,G10,N1/3,G10,N1/3,

G10,N1/3,G10,N1/3,G10,N1/3,G10,N1/3,C0,N1,END,END}; SONG song2[]={A0,N2,B0,N2,C1,N1+N2,B0,N2,C1,N1,E1,N1,B0,N1+N1,S,N1,E0,N1, A0,N1+N2,G0,N2,A0,N1,C1,N1,G0,N1+N1,S,N1,E0,N2,E0,N2,F0,

N1+N2,E0,N2,F0,N1,C0,N1,E0,N1+N1,S,N1,C1,N2,C1,N2,B0,N1+N2,370,

N2,F0,N1,B0,N1,B0,N1+N2,S,N1,A0,N2,B0,N2,C1,N1+N2,B0,N2,C1,N1,

E1,N1,B0,N1+N2,END,END};

int main()

{

int m,n,c=1;

char b='y';

while(b=='y')

{

printf("Hello,what do you want to do by this program?\n"); printf("1.Listen to music.-------Press 1\n");

printf("2.Play music by yourself.-------Press 2\n");

scanf("%d",&m);

while(m!=1&&m!=2&&m!=3) /*选择方式*/

{

printf("You typed wrong!Do not push me around.:(\n");

scanf("%d",&m);

}

if(m==1)

{

printf("I have two musics,choose one!(Press 1/2)\n");

scanf("%d",&n);

while(n!=1&&n!=2)

{

printf("You typed wrong!Do not push me around.:(\n");

scanf("%d",&n);

}

playmusic(n,&c);

}

else if(m==2)

{

typemusic();

}

getchar();

printf("Do you want to continue?(y/n)\n");

scanf("%c",&b);

}

return 0;

}

void playmusic(int n,int *c)

{

int note=0,fre,dur,control;

char d;

clock_t goal;

if(n==1)

{

while(song1[note]!=END)

{

fre=*c*song1[note];

dur=song1[note+1];

if(kbhit()) break;

if(fre)

{ /*若频率值fre非0*/

outportb(0x43,0xb6); /*初始化2号定时器*/

fre=(unsigned)(1193180L/fre); /*计算计数初值*/

outportb(0x42,(char)fre); /*先写计数初值的低8位*/

outportb(0x42,(char)(fre>>8)); /*再写计数初值的高8位*/

control=inportb(0x61); /*读0x61的状态*/

outportb(0x61,control|0x03); /*将第0位,第1位置1,使喇叭发声*/

}

goal=(clock_t)dur+clock( );

while(goal>clock( ));

if(dur)

outportb(0x61,control);

note+=2;

}

}else

{

while(song2[note]!=END)

{

fre=*c*song2[note];

dur=song2[note+1];

if(kbhit()) break;

if(fre)

{ /*若频率值fre非0*/

outportb(0x43,0xb6); /*初始化2号定时器*/

fre=(unsigned)(1193180L/fre); /*计算计数初值*/

outportb(0x42,(char)fre); /*先写计数初值的低8位*/

outportb(0x42,(char)(fre>>8)); /*再写计数初值的高8位*/

control=inportb(0x61); /*读0x61的状态*/

outportb(0x61,control|0x03); /*将第0位,第1位置1,使喇叭发声*/

}

goal=(clock_t)dur+clock( );

while(goal>clock( ));

if(dur)

outportb(0x61,control);

note+=2;

}

}

getchar();

printf("Do you want to raise/lower the frequency? Press r/l\nIf you do not want press n\n");

scanf("%c",&d);

if(d=='r')

*c*=2;

else if(d=='l')

*c*=0.5;

else if(d=='n')

*c=*c;

}

void typemusic()

{

char ch;

clock_t goal;

int fre=0,control,dur=2;

printf("Play your own music!\n(You can play on the keyboard by pressing Z-M,A-J,Q-U,1-7)\n");

printf("If you are bored press /\n");

do

{

ch=getch();

if(ch=='/');

else

{

switch(ch)

{

case 'z':fre=C10;break;

case 'x':fre=D10;break;

case 'c':fre=E10;break;

case 'b':fre=G10;break; case 'n':fre=A10;break; case 'm':fre=B10;break; case 'a':fre=C0;break; case 's':fre=D0;break; case 'd':fre=E0;break; case 'f':fre=F0;break; case 'g':fre=G0;break; case 'h':fre=A0;break; case 'j':fre=B0;break; case 'q':fre=C1;break; case 'w':fre=D1;break; case 'e':fre=E1;break; case 'r':fre=F1;break; case 't':fre=G1;break;

case 'u':fre=B1;break;

case '1':fre=C2;break;

case '2':fre=D2;break;

case '3':fre=E2;break;

case '4':fre=F2;break;

case '5':fre=G2;break;

case '6':fre=A2;break;

case '7':fre=B2;break;

default:printf("You typed wrong!Do not push me around.:(\n");

}

}

if(fre){ /*若频率值fre非0*/ outportb(0x43,0xb6); /*初始化2号定时器*/

fre=(unsigned)(1193180L/fre); /*计算计数初值*/

outportb(0x42,(char)fre); /*先写计数初值的低8位*/

outportb(0x42,(char)(fre>>8)); /*再写计数初值的高8位*/

control=inportb(0x61); /*读0x61的状态*/

outportb(0x61,control|0x03); /*将第0位,第1位置1,使喇叭发声*/

}

goal=(clock_t)dur+clock( ); /* clock()是计时函数,而与其相关的数据类型是clock_t,返回当前程序占用的CPU时间,用clock()返回的值除于CLOCK_PER_SEC常量可以得到当前程序的运行时间,单位是秒*/

while(goal>clock( ));

if(dur)

outportb(0x61,control);

}while (ch!='/');

}

1.4程序运行结果及自评:

1.5程序调试中遇到过的问题及解决办法

在编辑弹奏的程序时,没有弄明白延时函数,无法让按键发声,后来明白了延时函数的原理,把时长设成4,就可以了,还有就是按/时直接退出,后来把if放到前面,就解决了。

题目二2.1题目详细描述:

2.2程序设计思路及流程图:

2.3程序清单及注释:

#include

#include

#include

#include

float data1(float k,float m);

float data2(float k,float m);

void drawpic1();

void drawpic2();

void drawpic3();

void h1(float z,float x1,int m);

void h2(float z,float x1,int m);

int main()

{

int a;

char c='y';

while(c=='y') /*重复选择*/

{

printf("G(jw)=1/(1-w^2*T^2+2ζjwT\n");

printf("Choose the Bode Diagram:\n");

printf("1.Magnitude(dB)\n");

printf("2.Phase(deg)\n");

printf("3.Both\n");

scanf("%d",&a); /*选择画图*/

while(a!=1&&a!=2&&a!=3) /*试错*/ {

printf("Do not push me around.:(");

scanf("%d",&a);

}

if(a==1)

drawpic1(); /*画第一个*/ else if(a==2)

drawpic2(); /*画第二个*/ else

{

drawpic3(); /*画两个*/

}

getch();

closegraph();

clrscr();

getchar();

printf("Do you want to continue?(y/n)\n");

scanf("%c%*c",&c);

}

return 0;

}

float data1(float k,float m) /*计算第一个函数*/

{

float s,w;

s=sqrt((1/((1-k*k)*(1-k*k)+4*m*m*k*k)));

w=20*log10(s);

return w;

}

float data2(float k,float m) /*第二个*/

{

float s,w,a;

哈工大c语言 练习题

求用户输入得两个数得商,程序运行时,以如下格式输入数据: Input twointegers:42↙ 请改正程序中得错误,使它能得出正确得结果。 #include<stdio、h> main() { inta, b, c; printf("Input two integers:"); scanf("%d,%d",&a, &b); c= a\b; printf("Thequotient ofaandbis:%d", c); } #include〈stdio.h> int main() { ?inta,b,c; printf("Inputtwointegers:"); scanf ("%d%d",&a,&b); ?c=a/b; printf(”The quotient of a and b is:%d\n”,c); ?return 0; } 使用const常量定义圆周率pi=3、14159,编程从键盘输入圆得半径r,计算并输出圆得周长与面积。输出得数据保留两位小数点。输入格式要求:”%lf" 提示信息:”Input r:” 输出格式要求: "printf WITHOUT width or precision specifications:\n" "circumference = %f, area= %f\n”"printf WITHwidth and precision specifications:\n" "circumference=%7、2f, area = %7。2f\n” 程序运行示例如下: Input r:5。3 printf WITHOUT width or precision specifications: circumference =33、300854,are a=88.247263 printf WITHwidthand precision specifications: circumference = 33。30, area = 88、25 #include〈stdio。h> int main() { const double PI=3.14159; double r; printf(”Inputr:"); scanf("%lf”, &r); printf("printf WITHOUT width orprecision specification s:\n"); printf("circumference = %f, area= %f\n",2*PI*r,PI*r*r); printf("printf WITHwidth and precisionspecifications:\n”); ?printf("circumference=%7.2f, area =%7、2f\n",2*PI*r,PI*r*r); return 0; } 写一个程序,将接收得华氏温度转换为对应得摄氏温度。程序应显示如下得提示信息: Please inputfahr: 然后输入一个十进制数并回车,然后程序以合适得消息形式输出转换后得华氏温度。程序使用如下得公式完成转换:摄氏温度= 5.0 *(华氏温度–32.0)/ 9.0 输入格式要求:"%lf" 提示信息:"Pleaseinput fahr: ” 输出格式要求:"Thecelsis: %.2f" #include <stdio。h〉 #include<stdlib.h> int main() { doublef; double c; printf(”Please input fahr: "); scanf("%lf",&f); c=5、0*(f-32.0)/9.0; printf("Thecels is: %、2f”,c);

《综合课程设计》教学大纲(完整资料).doc

此文档下载后即可编辑 《综合课程设计》教学大纲 课程名称:综合课程设计 英文名称:Integrated Course Project for Communication Systems 总学时:3周,理论学时:实验学时:学分:3 先修课程要求: 电路分析、模拟电子技术、数字电子技术、高频电子线路、通信原理、FPGA原理与应用、Matlab与通信仿真技术、微机原理与接口技术、单片机技术及应用、计算机网络等 适用专业:通信工程 教学参考书: 樊昌信等编,《通信原理(第六版)》,国防工业出版社,2006年 马淑华等编,《单片机原理及应用》,北京航空航天大学出版社,第1版 褚振勇等编,《FPGA原理与应用》,西安电子科技大学出版社,第2版 谢希仁等编,《计算机网络》,电子工业出版社,第4版 1课程设计在培养方案中的地位、目的和任务 《综合课程设计》是配合本科通信工程专业的专业基础课程《通信原理》、《FPGA原理与应用》、《Matlab与通信仿真分析》、《单片机技术及应用》、《计算机网络》而开设的重要专业实践环节。目的是培养学生科学理论结合实际工程的能力,通

过该课程设计,要求学生在掌握通信基本理论的基础上,运用Matlab、FPGA、NS-2等工具对通信子系统或计算机网络进行仿真与设计,并计算基本性能指标,从而提高学生的综合设计实践能力。 另一方面,也可通过课程设计使学生深入理解单片机的基本原理,硬件结构和工作原理。掌握程序的编制方法和程序调试的方法,掌握常用接口的设计及使用。掌握一般接口的扩展方法及接口的调试过程。为学生将来在通信工程、电子信息工程、测试计量技术及仪器、电子科学与技术及其它领域应用单片机技术打下良好基础及应用实践能力。 2 课程设计的基本要求 1. 学习基本设计方法;加深对课堂知识的理解和应用。 2. 完成指定的设计任务和实验任务,理论联系实际,实现书本知识到工程实践的过渡。 3. 学会设计报告的撰写方法。 3 课程设计的内容 1. 无线收发信机部件设计 2. 数字调制与解调器的设计 3. 特殊信号产生器的设计 4. 同步信号提取 5. 编码译码器

哈工大机械原理课程设计

Harbin Institute of Technology 机械原理课程设计说明书 课程名称:机械原理 设计题目:产品包装生产线(方案1) 院系:机电学院 班级: 设计者: 学号: 指导教师: 设计时间:

一、绪论 机械原理课程设计是在我们学习了机械原理之后的实践项目,通过老师和书本的传授,我们了解了机构的结构,掌握了机构的简化方式与运动规律,理论知识需要与实践相结合,这便是课程设计的重要性。我们每个人都需要独立完成一个简单机构的设计,计算各机构的尺寸,同时还需要编写符合规范的设计说明书,正确绘制相关图纸。 通过这个项目,我们应学会如何收集与分析资料,如何正确阅读与书写说明书,如何利用现代化的设备辅助工作。这种真正动手动脑的设计有效的增强我们对该课程的理解与领会,同时培养了我们的创新能力,为以后机械设计课程打下了坚实的基础。 二、设计题目 产品包装生产线使用功能描述 图中所示,输送线1上为小包装产品,其尺寸为长?宽?高=600?200?200,小包装产品送至A处达到2包时,被送到下一个工位进行包装。原动机转速为1430rpm,每分钟向下一工位可以分别输送14,22,30件小包装产品。 产品包装生产线(方案一)功能简图 三、设计机械系统运动循环图 由设计题目可以看出,推动产品在输送线1上运动的是执行构件1,在A处把产品推到下一工位的是执行构件2,这两个执行构件的运动协调关系如图所示。 ?1?1 执行构件一 执行构件二 ?01?02 运动循环图

图中?1 是执行构件1的工作周期,?01 是执行构件2的工作周期,?02是执行构件2的动作周期。因此,执行构件1是做连续往复运动,执行构件2是间歇运动,执行构件2的工作周期?01 是执行构件1的工作周期T1的2倍。执行构件2的动作周期?02则只有执行构件1的工作周期T1的二分之一左右。 四、 设计机械系统运动功能系统图 根据分析,驱动执行构件1工作的执行机构应该具有的运动功能如图所示。运动功能单元把一个连续的单向传动转换为连续的往复运动,主动件每转动一周,从动件(执行构件1)往复运动一次,主动件转速分别为14,22,30rpm 14,22,30rpm 执行机构1的运动功能 由于电动机的转速为1430rpm ,为了在执行机构1的主动件上分别得到14、22、30rpm 的转速,则由电动机到执行机构1之间的总传动比i z 有3种,分别为 i z1= 141430 =102.14 i z2=221430=65.00 i z3=30 1430=47.67 总传动比由定传动比i c 和变传动比i v 两部分构成,即 i z1=i c i v1 i z2=i c i v2 i z3=i c i v3 3种总传动比中i z1最大,i z3最小。由于定传动比i c 是常数,因此,3种变传动比中i v1最大,i v3最小。为满足最大传动比不超过4,选择i v1 =4 。 定传动比为 i c = v1 z1i i =4102.14=25.54 变传动比为 i v2= c z2i i =54.2565=2.55 i v3= c z3i i =54 .2547.67=1.87 传动系统的有级变速功能单元如图所示。 i=4,2.55,1.87 有级变速运动功能单元

C语言程序设计苏小红版答案

C语言程序设计苏小红 版答案 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

#include<> main() { float x=,y=,z=; printf("x=%f\n",x); printf("y=%f\n",y); printf("z=%f\n",z); } (1) #include<> main() { int a=12,b=3; float x=,y=; printf("%d\n",(float)(a*b)/2); printf("%d\n",(int)x%(int)y); } #include<> main() { int x,b0,b1,b2,s; printf("Inputx:"); scanf("%d",&x); b2=x/100; b1=(x-b2*100)/10; b0=x%10; s=b0*100+b1*10+b2; printf("s=%d\n",s); } #include<> #include<> main() { float rate=; float n,capital,deposit; printf("Input n,capital:"); scanf("%f,%f",&n,&capital); deposit=capital*pow(1+rate,n); printf("deposit=%f\n",deposit); } #include<> #include<> main() { float a,b,c;

double x,y; printf("Inputa,b,c:"); scanf("%f,%f,%f",&a,&b,&c); x=(-b+sqrt(b*b-4*a*c))/(2*a); y=(-b-sqrt(b*b-4*a*c))/(2*a); printf("x=%f,y=%f\n",x,y); } (1) #include<> main() { char c1='a',c2='b',c3='c'; printf("a%cb%cc%c\n",c1,c2,c3); } (2) #include<> main() { int a=12,b=15; printf("a=%d%%,b=%d%%\n",a,b); } (3) #include<> main() { int a,b; scanf("%2d%*2s%2d",&a,&b); printf("%d,%d\n",a,b); } #include<> main() { long a,b; float x,y; scanf("%d,%d\n",&a,&b); scanf("%f,%f\n",&x,&y); printf("a=%d,b=%d\n",a,b); printf("x=%f,b=%f\n",x,y); } #include<> main() { float a; printf("Innputa:"); scanf("%f",&a); if(a>=0) { a=a;

哈工大C语言实验题

Q308.(10分)第5章实验2:体型判断。 医务工作者经广泛的调查和统计分析,根据身高与体重因素给出了以下按“体指数”进行体型判断的方法。体指数计算公式是: t = w /(h*h) 其中:t是体指数;w是体重,其单位为千克;h是身高,其单位为米。根据给定的体指数t计算公式,可判断你的体重属于何种类型: 当t<18 时,为低体重; 当18≤t<25 时,为正常体重; 当25≤t<27 时,为超重体重; 当t≥27 时,为肥胖。 ****输入提示信息格式:"Please enter h,w:\n" ****输入数据格式要求:"%f,%f"(先读入身高,再读入体重,身高以米读入,体重以千克读入) ****输出数据格式要求: 当t<18 时,输出:"Lower weight!\n" 当18≤t<25 时,输出:"Standard weight!\n"

当25≤t<27 时,输出:"Higher weight!\n" 当t≥27 时,输出:"Too fat!\n" #include #include main() { float t,w,h; printf("Please enter h,w:\n"); scanf("%f,%f",&h,&w); t = w/(h*h); if(t<18) printf("Lower weight!\n"); else if(t>=18&&t<25) printf("Standard weight!\n"); else if(t>=25&&t<27) printf("Higher weight!\n");

综合课程设计

可用C++(Visual C++ 6.0),JA V A(JSP,STRUTS),C#(https://www.360docs.net/doc/b410986003.html, ,Visual Studio 2005),试题目而定。 1、综合购物频道(限最多3人选) 项目描述:是一个在线销售系统,是一个B-C模式的电子商务系统,由前台的B/S模式购物系统和后台的C/S模式的管理系统两部分组成。该电子商务系统可以实现会员注册、浏览商品、查看商品详细信息、选购商品、取消订单和查看订单等功能,前台系统的详细功能。目的:了解项目开发的一个基本流程以及如何运用现行的框架搭建一个大型的综合型系统2、某大型企业内部OA(限最多3人选) 项目描述:采用网络办公自动化系统,不仅能快速提高企业的运作效率,节省大量的办公费用,能全面提升企业的核心竞争力和生产力以及提高工作效率。该企业内部OA系统采用模型组件与WEB技术结合的方式,具有强大的功能,广泛的适用性、可靠安全性和可扩展性。目的:学习运用当前热门的前台技术。 3、产品展示厅(限最多3人选) 项目描述: 在互联网发达的今天,当您想客户宣传自己的产品时,最好的方式是拥有自己的网站,通过网络来传播和展示您的产品信息。产品展示系统,为客户详细介绍自己的产品,提供了一个功能强大的平台。 系统界面友好、功能强大、操作简便,用户可以方便迅速掌握系统的操作。 4人事管理系统(限最多3人选) 项目描述:人事档案完整资料、人事分类管理(员工户口状况、员工政治面貌、员工生理状况、员工婚姻状况、员工合同管理、员工投保情况、员工担保情况)、考勤管理、加班管理、出差管理、人事变动管理(新进员工登记、员工离职登记、人员变更记录)、员工培训管理(员工培训、员工学历)、考核奖惩、养老保险等几大模块。系统具有人事档案资料完备,打印灵活,多样、专业的报表设计,灵活的查询功能等特点。 主要技能:掌握项目的开发流程:需求分析、详细设计、测试等;熟悉VC的多文档的开发技能和技巧;利用ADO技术操作SQL Server数据库;掌握数据库的开发和操作技能。 5、即时通讯系统(限最多3人选) 项目描述:系统采用UDP协议,具有:收发在线和离线消息、添加/删除好友、服务器端存储好友列表、在客户端存储好友资料和聊天记录、添加/删除好友组、可以群发消息、收发文件等功能。 主要技能:掌握项目的开发流程:需求分析、详细设计、测试等;熟悉VC的网络通信的开发技能和技巧,包括:TCP和UDP协议、线程等;利用ADO技术操作SQL Server数据库; 6、推箱子(限最多3人选) 【规则】本游戏的目的就是把所有的箱子都推到目标位置上。箱子只能推动而不能拉动。一次只能推动一个箱子。 经典的推箱子是一个来自日本的古老游戏,目的是在训练你的逻辑思考能力。在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道~! 7、贪吃蛇(限最多3人选) 【规则】: A 用键盘的方向键控制蛇的上下左右移动。 B 游戏分为三种难度,SLUG为慢速,每吃一朵花得1分;WORM 为中速,每吃一朵花得2分;PYTHON为快速,每吃一朵花得3分。 C 游戏目标:操纵屏幕上那条可爱的小蛇,在黑框中不停吃花,而每吃一朵

最新哈工大机械设计课程设计

一、传动装置的总体设计 1.1 电动机的选择 1.1.1 选择电动机类型 根据设计要求和工作条件选用Y系列三相鼠笼型异步电动机,其结构为全封闭自扇冷式结构,电压为380 V。 1.1.2 选择电动机容量 根据设计数据,工作机的有效功率为 从电动机到工作机输送带之间的总效率为: 式中,、、、分别为联轴器、轴承、齿轮传动和卷筒的传递效率。由表9.1取=0.99、=0.99、=0.97、=0.97,则 所以电动机所需工作功率为 1.1.3 确定电动机转速 按表2.1推荐的传动比合理范围,二级圆柱齿轮减速器传动比,而工作机卷筒轴的转速为 所以电动机转速的可选范围为 符合这一范围的同步转速有750r/min、1000r/min和1500r/min三种。综合考虑电动机和传动装置的尺寸、质量、及价格等因素,为使传动装置结构紧凑,决定选用同步转速为1000 r/min的电动机。 根据电动机类型、容量和转速,查表15.1选定电动型号为Y132S-6,其主要性能如下表: 电动机型号 额定功率 /Kw 满载转速 /(r/min) Y132S-6 3 90 2.0 2.0

型号H A B C D E FxGD G K b b1b2AA HA L1 Y132S 132 216 140 89 38 80 10x8 33 12 280 210 135 60 18 475 1.2 计算传动装置总传动比并分配传动比 总传动比为 分配传动比 考虑润滑条件,为使结构紧凑,各级传动比均在推荐值范围内,取,故 1.3 计算传动装置各轴的运动及动力参数 1.3.1 各轴的转速 I轴: II轴: III轴: 卷筒轴: 1.3.2 各轴的输入功率 I轴: II轴: III轴: 卷筒轴: 1.3.3 各轴的输入转矩 电动机的输出转矩T d为

哈工大C语言课程设计

H a r b i n I n s t i t u t e o f T e c h n o l o g y 课程设计说明书(论文) 课程名称:C语言课程设计 设计题目:音乐程序与波特图 院系:航天学院控制科学与工程系 班级: 设计者: 学号: 指导教师: 设计时间: 哈尔滨工业大学教务处 哈尔滨工业大学课程设计任务书

题目一 1.1题目详细描述: 播放音乐程序,实现了自选音乐曲目和直接使用键盘弹奏,而且可以在曲目播放结束后循环选择乐曲。 1.2程序设计思路及流程图: 1.3 #include #include #include #include #include #include #define N1 16 #define N2 8 #define N4 4 #define N8 2 #define N16 1 #define END 0 void playmusic(int n,int *c); void typemusic(); enum NOTES{ C10=131,D10=147,E10=165,F10=175,G10=196,A10=220,B10=247,

C0=262,D0=296,E0=330,F0=349,G0=392,A0=440,B0=494, C1=523,D1=587,E1=659,F1=698,G1=784,A1=880,B1=988, C2=1047,D2=1175,E2=1319,F2=1397,G2=1568,A2=1760,B2=1976,S=10 }; typedef enum NOTES SONG; SONG song1[]={C0,N4+N2,E0,N4,G0,N2,G0,N2,A0,N1,G0,N1,E0,N4+N2, C0,N4,G0,N1/3,G0,N1/3,G0,N1/3,E0,N1,C0,N1,G10,N1/3,G10,N1/3, G10,N1/3,G10,N1/3,G10,N1/3,G10,N1/3,C0,N1,END,END}; SONG song2[]={A0,N2,B0,N2,C1,N1+N2,B0,N2,C1,N1,E1,N1,B0,N1+N1,S,N1,E0,N1, A0,N1+N2,G0,N2,A0,N1,C1,N1,G0,N1+N1,S,N1,E0,N2,E0,N2,F0, N1+N2,E0,N2,F0,N1,C0,N1,E0,N1+N1,S,N1,C1,N2,C1,N2,B0,N1+N2,370, N2,F0,N1,B0,N1,B0,N1+N2,S,N1,A0,N2,B0,N2,C1,N1+N2,B0,N2,C1,N1, E1,N1,B0,N1+N2,END,END}; int main() { int m,n,c=1; char b='y'; while(b=='y') { printf("Hello,what do you want to do by this program?\n"); printf("1.Listen to music.-------Press 1\n"); printf("2.Play music by yourself.-------Press 2\n"); scanf("%d",&m); while(m!=1&&m!=2&&m!=3) /*选择方式*/ { printf("You typed wrong!Do not push me around.:(\n"); scanf("%d",&m); } if(m==1) { printf("I have two musics,choose one!(Press 1/2)\n"); scanf("%d",&n); while(n!=1&&n!=2) { printf("You typed wrong!Do not push me around.:(\n"); scanf("%d",&n); } playmusic(n,&c); } else if(m==2) { typemusic(); } getchar(); printf("Do you want to continue?(y/n)\n"); scanf("%c",&b);

综合课程设计报告

综合课程设计报告

摘要 本报告介绍了一个运用c++设计一个个人的记账软件具体过程。实现了添加、查询、删除、修改等功能。能够大致的记录个人的收入支出情况。 开发背景 个人理财在中国得到大众的认可和金融机构的重视是近几年的事情。人们对个人理财的重视程度,与我过市场经济制度不断完善、资本市场的长足发展、金融产品的日趋丰富以及居民总体收入水平的上升等等是分不开的。可是比起发达国家我们的理财观念还远远不足。 可是理财并不困难,并非非要靠个人理财专业人士的建议才能身体力行。只要了解收支状况、设定财务目标、拟定策略、编列预算、执行预算到分析成果这六大步骤,便能够轻松的达成个人的财务管理。至于要如何预估收入掌握支出进而检讨进则有赖于平日的财务记录,也就是需要一款便于记账的软件。 最近越来越多的人具有记账的习惯。家庭、个人的收入支出结构在日益变化,单纯的靠本子记录收入支出无法满足对于收入支出结构的统计分析,因此以个人用户为目标的记账软件应运而生。相应的各种面向家庭以及个人的理财软件也越来越多。可是众多个人理财软件操作专业,对于个人用户而言功能过于强大,分析

数据用语也不易理解。因此开发一个操作简便、统计结果直观并对个人用户理财有参考价值的记账软件无疑能为广大个人用户提供方便。 总而言之,在不久的将来家庭使用理财软件也将成为国内家庭的必须品。能提供简单明了的功能以及操作的记账软件更是被广泛需要。这种软件也会为提升人们的胜过品质发挥它最大的作用。 技术背景 C语言是国内广泛使用的一种计算机语言,学会使用c语言进行程序设计是计算机工作者的一项基本功。对于我们大学生来说,学习这样一门c程序课程更是有必要。此次课程设计我所采用的环境是vc++,使用基本控制结构,如循环和选择,着重实现管理系统的增删改以及查询等典型的功能。程序设计是一门实践性很强的课程,既要掌握概念又要动手编译,更多的是要上机去调试,虽然初学时很麻烦,可是养成习惯后我相信受益匪浅。 开发环境 Vc++,win7. 设计目标 为了满足用户的需要,本系统将实现以下功能: 记录日常收支情况,查找某天的收支情况,插入忘记的收支功

哈工大机械原理课程设计齿轮传动设计大作业20无错版

机械原理课程设计大作业 ——齿轮传动系统20 课程名称:机械原理课程设计 设计题目:齿轮传动系统分析 院系:机电工程学院 班级: 15 设计者: 学号: 115 指导教师:陈 设计时间: 2017年6月

1、设计题目 1.1机构运动简图 1 序号 电机转速(r/min ) 输出轴转速(r/min ) 带传动最大传动比 滑移齿轮传动 定轴齿轮传动 最大传动比 模数 圆柱齿轮 圆锥齿轮 一对齿 轮最大 传动比 模 数 一对齿轮最大传动比 模数 20 970 30 35 40 ≤2.5 ≤4 2 ≤4 3 ≤4 3 2、传动比的分配计算 电动机转速,输出转速min /30=n /35=min /40r n =带传动的最大传动比,滑移齿轮传动的最大传动比 根据传动系统的原始参数可知,传动系统的总传动比为: 333.3230970 1=== n i 714.2735 022=== n i 250.2440 3=== n i

传动系统的总传动比由带传动、滑移齿轮传动和定轴齿轮传动三部分实现。设带传动的传动比为,定轴齿轮传动的传动比为f ,则总传动比 f v p f v p f v p 令则可得定轴齿轮传动部分的传动比为 425.24 *5.2250 .24max max 3=== f i i i 滑移齿轮传动的传动比为 333.5425 .2*5.2max 11== = f p v i i i 571.4425 .2*5.2714 .27max 22== = f p v i i i 设定轴齿轮传动由3对齿轮传动组成,则每对齿轮的传动比为 3、齿轮齿数的确定 根据滑移齿轮变速传动系统中对齿轮齿数的要求,可大致选择齿轮5、6、7、8、9和1042,8,41,9,40,10======1=h ,径向间隙系数25.0=c ,分度圆压力角20=α,实际中心距 mm a 50'=。 根据定轴齿轮变速传动系统中对齿轮齿数的要求,可大致选择齿轮11、12、13和14为高度变位齿轮,其齿数:。它们的齿顶高系数1=h 间隙系数25.0=c ,分度圆压力角20=α,实际中心距mm a 51'=。圆锥齿轮15和16 29,17==1=h ,径向间隙系数,分度 圆压力角为(等于啮合角α)。

哈工大C语言程序设计习题ex6

习题6 6.3 阅读程序,按要求在空白处填写适当地表达式或语句,使程序完整并符合题目要求. (1)下面程序模拟了骰子地6000次投掷,用rand函数产生1~6之间地随机数face,然后统计1~6每一面出现地机会(概率)存放到数组frequency中. (2)从键盘输入10个整型数据,放入数组a 中,求其最大值、最小值及其所在元素地下标位置,并输出. (3)下面程序地功能是从键盘输入一行字符,统计其中有多少单词.假设单词之间以空格分开. (4)下面地函数Squeeze(char s[],char c)地功能是删除字符串s中所出现地与变量c相同地字符. (5)下面地函数MyStrcmp()用于实现函数strcmp()地功能,将两个字符串s和t进行比较,然后将两个字符串中第一个不相同字符地ASCII码值之差作为函数值返回. 6.4 编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和. 6.5 从键盘任意输入10个整数,用函数编程实现将其中最大数与最小数地位置对换后,再输出调整后地数组. 6.6 输入5×5阶地矩阵,编程实现: (1)求两条对角线上地各元素之和. (2)求两条对角线上行、列下标均为偶数地各元素之积. 6.7 编程打印如下形式地杨辉三角形. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 6.8 编程将下列矩阵中地元素向右移动一列,最右一列移至第一列. 1 4 6 8 10 12 6.9 利用公式c ij=a ij+b ij计算m×n阶矩阵A和m×n阶矩阵B之和.已知a ij为矩阵A地元素,

b ij 为矩阵B 地元素, c ij 为矩阵C 地元素(i =1,2,…,m ;j =1,2,…,n ).*6.10 利用公式c ij =∑=n k ik a 1 *b kj 计算矩阵A 和矩阵B 之积.已知a ij 为m ×n 阶矩阵A 地元素 (i =1,2,…,m ;j =1,2,…,n ),b ij 为n ×m 阶矩阵B 地元素(i =1,2,…,n ;j =1,2,…,m ),c ij 为m ×m 阶矩阵C 地元素(i =1,2,…,m ;j =1,2,…,m ).6.11 输入一行字符,统计其中地英文字符、数字字符、空格和其他字符地个数. 6.12 编写一个函数Inverse(),实现将字符数组中地字符串逆序存放地功能. 6.13 不用函数strcat(),编程实现字符串连接函数strcat()地功能,将字符串srcStr 连接到字符串dstStr 地尾部.

哈工大c语言 练习题

求用户输入的两个数的商,程序运行时,以如下格式输入数据: Input two integers:4 2↙ 请改正程序中的错误,使它能得出正确的结果。 #include <> main() { int a, b, c; printf("Input two integers:"); scanf("%d,%d", &a, &b); c = a\b; 、 printf("The quotient of a and b is :%d", c); } # include <> int main () { int a,b,c; printf ("Input two integers:"); scanf ("%d %d",&a,&b); c=a/b; printf ("The quotient of a and b is :%d\n",c); > return 0; } 使用const常量定义圆周率pi=,编程从键盘输入圆的半径r,计算并输出圆的周长和面积。输出的数据保留两位小数点。 输入格式要求:"%lf" 提示信息:"Input r:" 输出格式要求: "printf WITHOUT width or precision specifications:\n" "circumference = %f, area = %f\n" "printf WITH width and precision specifications:\n" ~ "circumference = %, area = %\n" 程序运行示例如下: Input r:printf WITHOUT width or precision specifications: circumference = , area = printf WITH width and precision specifications: circumference = , area = #include <> int main() ~ { const double PI=; double r; printf("Input r:"); scanf("%lf", &r); printf("printf WITHOUT width or precision specifications:\n"); printf("circumference = %f, area = %f\n",2*PI*r,PI*r*r); printf("printf WITH width and precision specifications:\n"); printf("circumference = %, area = %\n",2*PI*r,PI*r*r); return 0; | } 写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息: Please input fahr: 然后输入一个十进制数并回车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度= *(华氏温度–)/ 输入格式要求:"%lf" 提示信息:"Please input fahr: " 输出格式要求:"The cels is: %.2f" #include <> | #include <> int main() { double f; double c;

哈工大机械设计课程设计-带式运输机-二级齿轮

一、传动装置的总体设计 (一)设计题目 课程设计题目:带式运输机传送装置 1.设计数据及要求: 设计的原始数据要求: F=2200N ; d=250mm ; v=s 机器年产量:小批量; 机器工作环境:清洁; 机器载荷特性:平稳; 机器最短工作年限:6年2班。 2.传动装置简图: (二)选择电动机 1.选择电动机的类型 根据参考文献[2],按工作要求和工作条件选用Y 系列三相笼型异步电动机。全封闭自扇冷式结构,电压为380V 。 2.选择电动机的容量 工作机的有效功率为: KW kW Fv W 98.11000 9 .000221000 P =?= = 从电动机到工作机传送带间的总效率为:

2421234ηηηηη∑ = 式中:1234ηηηη、、、分别为联轴器、轴承、齿轮传动、卷筒的传动效率。联轴器选用弹性联轴器,轴承为角接触球轴承,齿轮为8级精度齿轮,由参考文献[2]表取 。则: 所以电动机所需要的工作功率为: 3.确定电动机转速 按参考文献[2]表推荐的传动比合理范围,二级圆柱齿轮减速器传动比, 而工作机卷筒轴的转速为: 所 以 电 动 机 转 速 的 可选范围为 : 符合这一范围的同步转速有750 r/min 、1000 r/min 、1500 r/min 三种。综合考虑电动机和传动装置的尺寸、质量及价格等因素,为使传动装置结构紧凑,决定选用同步转速为1000r/min 的电动机,另需要其中电机工作所需额定功率:ed d P P ≥。 根据电动机类型、容量和转速,由参考文献[2]表以及有关手册选定电动机型号为Y132S-6。其主要性能如下表: 电动机型号 额定功率/kW 满载转速 /(r/min) 起动转矩 额定转矩 最大转矩 额定转矩 Y132S-6 3 960 由参考文献[2]表查得电动机的主要安装尺寸及外形尺寸如下: 型号 H A B C D E F ×GD G K Y132S 132 216 140 70 38 80 10×8 33 12 --- b b b h A BB H L

大学MOOC哈工大C语言程序设计精髓第六周编程题答案

大学M O O C哈工大C语言程序设计精髓第六周 编程题答案 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出?Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。 #include<> #include <> int main() { char score[100]; int flag = 0, i, s; char grade; printf("Please input score:\n"); while (1) { flag=0; scanf("%s", score); for (i = 0; i < strlen(score); i++) { if (score[i] >= '0' && score[i] <= '9') { continue;

} else { flag = 1; break; } } s = atoi(score); if (s < 0 || s > 100 || flag == 1) { printf("Input error!\n"); printf("Please input score:\n"); continue; } else{ break; } } s = atoi(score); if (s >= 90) {

哈工大综合课程设计2

哈尔滨工业大学“综合课程设计II”任务书

综合课程设计II 项目总结报告 题目:卧式升降台铣床主传动系统设计 院(系)机电工程学院 专业机械设计制造及其自动化 学生 学号 班号1208108 指导教师 填报日期2015年12月16日 哈尔滨工业大学机电工程学院制 2014年11月

目录1.项目背景分析4 2.研究计划要点与执行情况4 3.项目关键技术的解决4 3.1确定转速系列4 3.2确定结构式4 3.3绘制转速图、传动系统图及核算误差5 4.具体研究内容与技术实现5 4.1确定转速系列5 4.2绘制转速图6 4.3确定变速组齿轮传动副的齿数及定比传动副带轮直径8 4.4绘制传动系统图10 4.5核算主轴转速误差10 4.6传动轴的直径的确定11 4.7齿轮模数的初步计算12 4.8选择带轮传动带型及根数13 5.技术指标分析14 5.1第2扩大组的验证计算14 5.2传动轴2的验算16 5.3主轴组件的静刚度验算18 6.存在的问题与建议21

参考文献22 1.项目背景分析 铣床系指主要用铣刀在工件上加工各种表面的机床。通常铣刀旋转运动为主运动,工件(和)铣刀的移动为进给运动。它可以加工平面、沟槽,也可以加工各种曲面、齿轮等。铣床是用铣刀对工件进行铣削加工的机床。铣床除能铣削平面、沟槽、轮齿、螺纹和花键轴外,还能加工比较复杂的型面,效率较刨床高,在机械制造和修理部门得到广泛应用。 铣床是一种用途广泛的机床,在铣床上可以加工平面(水平面、垂直面)、沟槽(键槽、T 形槽、燕尾槽等)、分齿零件(齿轮、花键轴、链轮、螺旋形表面(螺纹、螺旋槽)及各种曲面。此外,还可用于对回转体表面、内孔加工及进行切断工作等。铣床在工作时,工件装在工作台上或分度头等附件上,铣刀旋转为主运动,辅以工作台或铣头的进给运动,工件即可获得所需的加工表面。由于是多刃断续切削,因而铣床的生产率较高。简单来说,铣床可以对工件进行铣削、钻削和镗孔加工的机床。 2.研究计划要点与执行情况 本设计机床为卧式铣床,其级数12Z =,最小转数 min 28/min n r =,转速公比为 41.1=?,驱动电动机功率 5.5N kW =。主要用于加工钢以及铸铁有色金属;采用高速钢、硬质合金、陶瓷材料做成的刀具。 第一周:准备图版等工具,齿轮和轴的计算完成,进行初步计算并开始画展开草图。 第二周:完成截面草图,验算、加粗。 第三周:撰写项目总结报告。 3.项目关键技术的解决 3.1确定转速系列 根据已知要求的公比,查表得到系统转速系列: 28 40 56 80 112 160 224 315 450 630 900 1250 r/min 3.2确定结构式 13612322=??

哈工大综合课程设计:卧式升降台铣床

机械制造装备课程设计项目总结报告题目:工作台面积320×1250mm2 卧式升降台铣 床主传动系统设计 院(系)机电工程学院 专业机械设计制造及其自动化 学生 学号 班号 指导教师韩振宇 填报日期2014年12月10 哈尔滨工业大学机电工程学院制

2014年4月 哈尔滨工业大学机械制造装备课程设计任务书

目录1.项目背景分析 1.1. 综合课程设计II的目的 1.2. 金属切削机床在国内外发展趋势 2. 研究计划要点与执行情况 2.1. 设计任务 2.2. 进度安排 3. 项目关键技术的解决 4. 具体研究内容与技术实现 4.1.机床的规格及用途 4.2.运动设计 1.确定极限转速: 2.确定结构网或结构式: 3.绘制转速图: 4.绘制传动系统图 1)确定变速组齿轮传动副的齿数 2)核算主轴转速误差 4.3.动力设计 1.传动件的计算转速 2.传动轴直径初定 3.主轴轴颈直径的确定 4.齿轮模数的初步计算 4.4.结构设计 4.5.零件的验算 1直齿圆柱齿轮的应力计算 2齿轮精度的确定 3传动轴的弯曲刚度验算 4主轴主件静刚度验算 5. 存在的问题与分析 6. 技术指标分析 参考文献

1. 项目背景分析 1.1.综合课程设计II的目的 机床课程设计,是在金属切削机床课程之后进行的实践性教学环节。其目的在于通过机床主运动机械变速传动系统的结构设计,使学生在拟定传送和变速的结构方案中,得到设计构思、方案分析、结构工艺性、机械制图、零件计算、编写技术文件和查阅技术资料等方面的综合训练,树立正确的设计思想,掌握基本的设计方法,并培养学生具有初步的结构分析、结构设计和计算能力。 1.2.金属切削机床在国内外发展趋势 机床作为加工的母机,总是要保证和提高加工质量和生产率,随着科技的不断进步,各种机床也相应地不断发展与更新,如性能参数的提高、功能的扩大、切削功率的加大,自动化程度的提高,机床动态性能的不断改善,加工精度的不断提高,基础元件的不断创新,控制系统的更新等等。 我国机床工业的发展趋势:根据机床工具工业局对振兴我国机床工业的设想,要在以后相当长时期内限制和压缩落后机床的生产,要化大力气发展高性能、高效率、高水平的适合国民经济需要的“高档”产品,改善机床品种的构成比。重点发展机、电、仪结合的产品。注意在冲压、电加工、激光、等离子加工中应用数控技术。 国外机床工业的发展,特别讲究机床的精度、效率,讲究机床制造工艺技术水平,试验分析与理论研究。从七十年代以来,国外已普遍推广使用数控机床。日本和美国已建成柔性自动化生产车间和柔性自动化工厂,整个机床制造的技术水平和自动检测控制技术已有大幅度提高。 2. 研究计划要点与执行情况 2.1.设计任务 机械制造及其自动化专业的“综合课程设计II”,是以车床和铣床主传动系统

相关文档
最新文档