一、课程设计概述:
人工输入是个1—9的数字。计算机输出所有的算法。并输出计算机运算出这些算法索花费
的时间。
使用语言:C++
编译环境:TC3.0 / VC6.0
二、课程设计题目一
[实验内容]
计算四个数如何变成二十四的所有算法
[问题描述]
输入四个数、给出能算成二十四的所有算式。
并输出程序计算这些算式所用的时间。
[需求分析]
1、输出能算出二十四点的所有算法
2、输出运算时间
3、界面美观 void count4( int a, int b, int c, int d )
//计算第一步
void count3( int a, int b, int c )
//计算第二步
void count2( int a, int b )
//计算第三步
[存储结构]
随机存储、
[流程图]
[详细设计]
#include
#include
#include
int c24;
char expr3[80];
char expr4[80];
void count2( int a, int b )
{
if ( a + b == 24 ) { } c24 ++; printf( "%s\t%s\t%d+%d=24\n", expr4, expr3, a, b ); if ( a * b == 24 ) { c24 ++; printf( "%s\t%s\t%d*%d=24\n", expr4, expr3, a, b ); } if ( a * b == 24 ) { c24 ++; printf( "%s\t%s\t%d*%d=24\n", expr4, expr3, a, b ); } if ( a - b == 24 ) { c24 ++; } printf( "%s\t%s\t%d-%d=24\n", expr4, expr3, a, b ); if ( b - a == 24 ) { c24 ++; } printf( "%s\t%s\t%d-%d=24\n", expr4, expr3, b, a ); if ( (b!=0) && (a==24*b) ) { } c24 ++; printf( "%s\t%s\t%d/%d=24\n", expr4, expr3, a, b ); if ( (a!=0) && (b==24*a) ) { c24 ++; printf( "%s\t%s\t%d/%d=24\n", expr4, expr3, b, a );
}
}
void count3( int a, int b, int c )
}
void count4( int a, int b, int c, int d )
{
int dd[4]; int dd[3]; int i,j,k,nd; dd[0] = a; dd[1] = b; dd[2] = c; for ( i = 0; i dd[j] ) { nd = dd[i] - dd[j]; } sprintf( expr3, " %d-%d=%d ", dd[i], dd[j], nd ); else { nd = dd[j] - dd[i]; sprintf( expr3, " %d-%d=%d ", dd[j], dd[i], nd ); } count2( nd, dd[k] ); if ( (dd[j]!=0) && (dd[i]%dd[j]==0) ) { nd = dd[i] / dd[j]; sprintf( expr3, " %d/%d=%d ", dd[i], dd[j], nd ); count2( nd, dd[k] ); } else if ( (dd[i]!=0) && (dd[j]%dd[i]==0) ) { } nd = dd[j] / dd[i]; count2( nd, dd[k] ); sprintf( expr3, " %d/%d=%d ", dd[j], dd[i], nd );
dd[0] = a; dd[1] = b; dd[2] = c; dd[3] = d; } for ( i = 0; i dd[j] ) { nd = dd[i] - dd[j]; } sprintf( expr4, " %d-%d=%d ", dd[i], dd[j], nd ); else { nd = dd[j] - dd[i]; sprintf( expr4, " %d-%d=%d ", dd[j], dd[i], nd ); } count3( nd, dd[k], dd[m] ); if ( (dd[j]!=0) && (dd[i]%dd[j]==0) ) { nd = dd[j] / dd[i]; } sprintf( expr4, " %d/%d=%d ", dd[j], dd[i], nd ); count3( nd, dd[k], dd[m] );
}
int main()
{
printf("||=================================================||\n"); printf("||===================二十四点算法==================||\n"); printf("|| ||\n"); printf("|| 请输入您要计算的四个数 ||\n"); printf("|| ||\n"); printf("||=================================================||\n"); struct tm sttime,fitime;
int a[4],i=0,x; do { printf("|| ||\n"); } printf("|| 第%d个数:",i+1); scanf("%d", &a[i]); if(a[i]9) { } i=-1; printf("|| 输入数字有误、请重新输入\n"); i++; while(i
}
printf("程序结束、按回车键\n"); getchar(); getchar(); _getsystime(&fitime); printf("开始运行时间: %d:%d\n",sttime.tm_min,sttime.tm_sec); printf("结束运行时间:%d:%d\n",fitime.tm_min,fitime.tm_sec); return 0;
[调试分析]
本程序主要是考虑如何用写成四个数字算出二十四点的算法、还有如何输出计算时间、 问题:
现象:输出的时间不知道是分是秒更或是其他、
原因:对C语言中很多内部函数不明白。
三、参考文献:
[1].《C程序设计》第二版,谭浩强著。北京:清华大学出版社,2004年。
[2].《数据结构》 严蔚敏、吴伟民。北京:清华大学出版社,2005年。
C++面向对象程序设计 谭浩强。 北京:清华大学出版社,2005年。
一、课程设计概述:
人工输入是个1—9的数字。计算机输出所有的算法。并输出计算机运算出这些算法索花费
的时间。
使用语言:C++
编译环境:TC3.0 / VC6.0
二、课程设计题目一
[实验内容]
计算四个数如何变成二十四的所有算法
[问题描述]
输入四个数、给出能算成二十四的所有算式。
并输出程序计算这些算式所用的时间。
[需求分析]
1、输出能算出二十四点的所有算法
2、输出运算时间
3、界面美观 void count4( int a, int b, int c, int d )
//计算第一步
void count3( int a, int b, int c )
//计算第二步
void count2( int a, int b )
//计算第三步
[存储结构]
随机存储、
[流程图]
[详细设计]
#include
#include
#include
int c24;
char expr3[80];
char expr4[80];
void count2( int a, int b )
{
if ( a + b == 24 ) { } c24 ++; printf( "%s\t%s\t%d+%d=24\n", expr4, expr3, a, b ); if ( a * b == 24 ) { c24 ++; printf( "%s\t%s\t%d*%d=24\n", expr4, expr3, a, b ); } if ( a * b == 24 ) { c24 ++; printf( "%s\t%s\t%d*%d=24\n", expr4, expr3, a, b ); } if ( a - b == 24 ) { c24 ++; } printf( "%s\t%s\t%d-%d=24\n", expr4, expr3, a, b ); if ( b - a == 24 ) { c24 ++; } printf( "%s\t%s\t%d-%d=24\n", expr4, expr3, b, a ); if ( (b!=0) && (a==24*b) ) { } c24 ++; printf( "%s\t%s\t%d/%d=24\n", expr4, expr3, a, b ); if ( (a!=0) && (b==24*a) ) { c24 ++; printf( "%s\t%s\t%d/%d=24\n", expr4, expr3, b, a );
}
}
void count3( int a, int b, int c )
}
void count4( int a, int b, int c, int d )
{
int dd[4]; int dd[3]; int i,j,k,nd; dd[0] = a; dd[1] = b; dd[2] = c; for ( i = 0; i dd[j] ) { nd = dd[i] - dd[j]; } sprintf( expr3, " %d-%d=%d ", dd[i], dd[j], nd ); else { nd = dd[j] - dd[i]; sprintf( expr3, " %d-%d=%d ", dd[j], dd[i], nd ); } count2( nd, dd[k] ); if ( (dd[j]!=0) && (dd[i]%dd[j]==0) ) { nd = dd[i] / dd[j]; sprintf( expr3, " %d/%d=%d ", dd[i], dd[j], nd ); count2( nd, dd[k] ); } else if ( (dd[i]!=0) && (dd[j]%dd[i]==0) ) { } nd = dd[j] / dd[i]; count2( nd, dd[k] ); sprintf( expr3, " %d/%d=%d ", dd[j], dd[i], nd );
dd[0] = a; dd[1] = b; dd[2] = c; dd[3] = d; } for ( i = 0; i dd[j] ) { nd = dd[i] - dd[j]; } sprintf( expr4, " %d-%d=%d ", dd[i], dd[j], nd ); else { nd = dd[j] - dd[i]; sprintf( expr4, " %d-%d=%d ", dd[j], dd[i], nd ); } count3( nd, dd[k], dd[m] ); if ( (dd[j]!=0) && (dd[i]%dd[j]==0) ) { nd = dd[j] / dd[i]; } sprintf( expr4, " %d/%d=%d ", dd[j], dd[i], nd ); count3( nd, dd[k], dd[m] );
}
int main()
{
printf("||=================================================||\n"); printf("||===================二十四点算法==================||\n"); printf("|| ||\n"); printf("|| 请输入您要计算的四个数 ||\n"); printf("|| ||\n"); printf("||=================================================||\n"); struct tm sttime,fitime;
int a[4],i=0,x; do { printf("|| ||\n"); } printf("|| 第%d个数:",i+1); scanf("%d", &a[i]); if(a[i]9) { } i=-1; printf("|| 输入数字有误、请重新输入\n"); i++; while(i
}
printf("程序结束、按回车键\n"); getchar(); getchar(); _getsystime(&fitime); printf("开始运行时间: %d:%d\n",sttime.tm_min,sttime.tm_sec); printf("结束运行时间:%d:%d\n",fitime.tm_min,fitime.tm_sec); return 0;
[调试分析]
本程序主要是考虑如何用写成四个数字算出二十四点的算法、还有如何输出计算时间、 问题:
现象:输出的时间不知道是分是秒更或是其他、
原因:对C语言中很多内部函数不明白。
三、参考文献:
[1].《C程序设计》第二版,谭浩强著。北京:清华大学出版社,2004年。
[2].《数据结构》 严蔚敏、吴伟民。北京:清华大学出版社,2005年。
C++面向对象程序设计 谭浩强。 北京:清华大学出版社,2005年。