搜档网
当前位置:搜档网 › 哈工大C语言课程设计

哈工大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 'v':fre=F10;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 'y':fre=A1;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;

s=-atan(2*m*k/(1-k*k));

w=s*(180/3.1415926);

if(w>0)

w=w-180;

w*=0.8;

return w;

}

void drawpic1()

{

int driver=DETECT,mode,x00,x11,y00,y11,m,y01,y02,y03;

float x1,x2,xstep,ystep,k;

char stt[10],str[]="0.1--blue 0.3--green 0.5--indigo 0.7--red 0.9--violet";

double value;

initgraph(&driver,&mode," ");

setbkcolor(9);

setcolor(63);

x00=100,y00=60,x11=x00+512,y11=y00+150;

setlinestyle(0,1,1);

rectangle(x00,y00,x11,y11); /*矩形框*/

m=y00+50;

x1=x00;

xstep=(x11-x00)/512;

ystep=(y11-y00)/3;

settextstyle(0,0,1);

for(k=0;k<=4;k++)/*横轴*/

{

value=0.01*pow(10,k);

gcvt(value,3,stt);

outtextxy(x00+xstep*128*k,y11+8,stt);

}

for(k=0;k<=3;k++)/*纵轴*/

{

value=50-50*k;

gcvt(value,3,stt);

outtextxy(x00-35,y00+ystep*k,stt);

}

x00=100,y00=60,x11=x00+512,y01=y00+150;

for(k=0;k<=9;k++) /*优化坐标系,标注刻度*/

{

line(x00+log10(k+1)*(x11-x00)/4,y00,x00+log10(k+1)*(x11-x00)/4,y00+3);

line(x00+log10(k+1)*(x11-x00)/4,y01,x00+log10(k+1)*(x11-x00)/4,y01-3);

line((x11-x00)/4+x00+log10(k+1)*(x11-x00)/4,y00,(x11-x00)/4+x00+log10(k+1)*(x11-x00)/4,y00+ 3);

line((x11-x00)/4+x00+log10(k+1)*(x11-x00)/4,y01,(x11-x00)/4+x00+log10(k+1)*(x11-x00)/4,y01-3);

line((x11-x00)/4*2+x00+log10(k+1)*(x11-x00)/4,y00,(x11-x00)/4*2+x00+log10(k+1)*(x11-x00)/4, y00+3);

line((x11-x00)/4*2+x00+log10(k+1)*(x11-x00)/4,y01,(x11-x00)/4*2+x00+log10(k+1)*(x11-x00)/4, y01-3);

line((x11-x00)/4*3+x00+log10(k+1)*(x11-x00)/4,y00,(x11-x00)/4*3+x00+log10(k+1)*(x11-x00)/4, y00+3);

line((x11-x00)/4*3+x00+log10(k+1)*(x11-x00)/4,y01,(x11-x00)/4*3+x00+log10(k+1)*(x11-x00)/4, y01-3);

}

setcolor(1); /*画图*/

setlinestyle(0,1,3);

h1(0.1,x1,m);

setcolor(2);

h1(0.3,x1,m);

setcolor(3);

h1(0.5,x1,m);

setcolor(4);

h1(0.7,x1,m);

setcolor(5);

h1(0.9,x1,m);

setcolor(63);

outtextxy(x00-70,y00-30,str);

}

void drawpic2()

{

int driver=DETECT,mode,x00,x11,y00,y11,m,y01,y02,y03;

float x1,x2,xstep,ystep,k;

char stt[10],str[]="0.1--blue 0.3--green 0.5--indigo 0.7--red 0.9--violet";

double value;

initgraph(&driver,&mode," ");

setbkcolor(9);

setcolor(63);

x00=100,y00=60,x11=x00+512,y11=y00+150;

setlinestyle(0,1,1);

rectangle(x00,y00,x11,y11);

m=y00;

x1=x00;

xstep=(x11-x00)/512;

ystep=(y11-y00)/4;

settextstyle(0,0,1);

for(k=0;k<=4;k++)/*横轴*/

{

value=0.01*pow(10,k);

gcvt(value,3,stt);

outtextxy(x00+xstep*128*k,y11+8,stt);

}

for(k=0;k<=4;k++)/*纵轴*/

{

value=-50*k;

gcvt(value,3,stt);

outtextxy(x00-35,y00+ystep*k,stt);

}

x00=100,y00=60,x11=x00+512,y01=y00+150;

for(k=0;k<=9;k++) /*优化坐标系,标注刻度*/

{

line(x00+log10(k+1)*(x11-x00)/4,y00,x00+log10(k+1)*(x11-x00)/4,y00+3);

line(x00+log10(k+1)*(x11-x00)/4,y01,x00+log10(k+1)*(x11-x00)/4,y01-3);

line((x11-x00)/4+x00+log10(k+1)*(x11-x00)/4,y00,(x11-x00)/4+x00+log10(k+1)*(x11-x00)/4,y00+ 3);

line((x11-x00)/4+x00+log10(k+1)*(x11-x00)/4,y01,(x11-x00)/4+x00+log10(k+1)*(x11-x00)/4,y01-3);

line((x11-x00)/4*2+x00+log10(k+1)*(x11-x00)/4,y00,(x11-x00)/4*2+x00+log10(k+1)*(x11-x00)/4, y00+3);

line((x11-x00)/4*2+x00+log10(k+1)*(x11-x00)/4,y01,(x11-x00)/4*2+x00+log10(k+1)*(x11-x00)/4,

哈工大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. 编码译码器

哈工大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语言程序设计苏小红 版答案 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.sodocs.net/doc/0811114591.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 游戏目标:操纵屏幕上那条可爱的小蛇,在黑框中不停吃花,而每吃一朵

哈工大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;

综合课程设计报告

综合课程设计报告

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

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

哈工大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 地尾部.

大学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”,是以车床和铣床主传动系统

《综合课程设计》教学大纲

《综合课程设计》教学大纲 课程名称:综合课程设计 英文名称: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. 无线收发信机部件设计

专业综合课程设计

西安欧亚学院信息工程学院 课程报告 课程名称:专业综合课程设计 专业班级:统本通信1403班 姓名:庞盟 学号:14611006150041 完成时间:2015年10月21日

一、课程实训目的 该课程安排LTE网络优化实训模块,通过该课程的学习,学生可掌握LTE的关键技术以及从事网络优化需要具备的实操能力。让学生利用MAPINFO将基站信息进行地图可视化的,并制作专题地图等相关图层,同时进行网络规划、网络优化等实际工作的应用。掌握路测软件的基本功能操作,并进行4G网络的实战测试,进一步加深网络优化测试工作的流程和方法,能够进行简单网络问题的分析判断,并撰写相应的优化方案。掌握EXCELL函数(VLOOKUP、MID、数据透视、分裂等)在网络优化工作中的实际应用,能够进行基站信息的整合,网络指标曲线走势图、对比柱状图的制作。 二、课程实训要求 1、实习期间要提高安全意识,自觉遵守国家法律、法规,遵守实习单位的各项规章制度,注意自身的人身和财物安全,防止各种事故发生。 2、实习期间应服从带队老师的管理。严格遵守纪律,每个学生必须遵守实训场所的相关规章制度,听从实习教师的安排。遵守实习场所纪律、不迟到、不早退、不旷课。 3、在实习地应听从实习单位老师的指导。在实习工作时严格按照规章和指导老师的要求进行工作,不得违规操作。 三、课程实训地点 通信工程专业实习实训基地——华为HALP 四、课程实训过程 本次实训课程主要针对4G无线网络优化进行安排。对LTE网络的空中接口原理、关键技术进行了介绍,对实际工作中LTE网络的射频优化方法、单站验证流程进行了介绍,并对日常工作中经常用到的EXCEL、MAPINFO、PIONEER等常用优化工具进行了着重介绍,使我们能够对LTE网络的优化方法、优化流程、优化工具有一个全面的掌握,具备基本的优化技能。其中,PIONEER是集成了多个网络进行同步测试的新一代无线网络测试及分析软件,是世纪鼎利公司结合长期无线络优化的经验和最新的研究成果,具备完善的GSM、CDMA、EVDO、WCDMA、TD-SCDMA、LTE网络测试功能。MAPINFO是美国MAPINFO公司推出的一个地理信息系统处理软件,它提供定位,制作和处理的电子地图,数据/信息的地理化标注等功能,是地理信息系 统的代表作之一。

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

6.1 下面代码的功能是将百分制成绩转换为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)

grade = 'A'; } else if (s >= 80) { grade = 'B'; } else if (s >= 70) { grade = 'C'; } else if (s >= 60) { grade = 'D'; } else { grade = 'E'; } printf("grade: %c\n", grade); return 0; } 6.2 编程计算a+aa+aaa+…+aa…a(n个a)的值(4分) 题目内容: 编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。例如,当n=4,a=2,表示计算2+22+222+2222的值。 #include #include int main() { int n,a,i,j; double p=0,q=0; printf("Input a,n:\n"); scanf( "%d,%d",&a,&n); for(i=1;i<=n;i++) { for(j=0,p=0;j

专业方向综合课程设计

专业方向综合课程设计基于CAN总线的直流电机速度组态监控系统设计 专业电气工程自动化 学生姓名 班级B电气101 学号 完成日期 盐城工学院电气学院

内容提要 随着高新技术的不断发展,各种功能强大、性能稳定可靠的新型多功能器件和一些先进的控制理论不断出现,使得控制领域发生了很大的变化。iCAN 教学实验开发平台涉及:CAN-bus 网络通信、iCAN 协议、基本的输入、出功能控制、PC 软件编程等技术内容;该实验开发平台涉及的范围广泛,合不同技术,体现分布式网络控制的优越性。典型的直流电机通过改变输入电压来改变电机在负载条件下的转动角速度。以iCAN 教学实验开发平台为基础,利用组态软件编写一上位机软件,实现以CAN总线为基础的直流电机调速系统设计。利用模块iCAN4400 输出电压变化,改变电机转速;电机的起、停控制由iCAN2404功能模块完成。 本设计是一个以AT89C51单片机为核心,由iCAN模块、电机驱动器模块、光电隔离模块、步进电机等多个模块组成的控制系统。本文通过单片机实现了对步进电机的控制检测,并根据所测的数据及时进行调整。本系统基本实现了设计要求,实现了通过CAN总线接收控制指令并将步进电机运动到指定位置的功能。采用CAN总线通信在可靠性、时实性和灵活性方面具有独特的技术优势。 关键字:单片机;步进电机;CAN总线

目录 1.概述 2.系统总体设计 2.1 信号采集电路 3.CAN总线接口电路 3.1 模拟量输出接线方式 3.2 主要技术指标 3.3 Ican-4400模块上线 4.程序代码及组态界面图 5.课程设计体会 6.参考文献

哈工大 C语言程序设计精髓 MOOC慕课 6-12周编程题答案

6.1 "/*下面代码的功能是将百分制成绩转换为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) { grade = 'A'; } else if (s >= 80) { grade = 'B'; } else if (s >= 70) { grade = 'C'; } else if (s >= 60) { grade = 'D'; } else { grade = 'E'; } printf(""grade: %c\n"", grade);

相关主题