2024年5月4日发(作者:)
一、 课程设计的目的...........................................2
二、 设计的内容与要求.........................................2
三、 总体设计.................................................2
四、 详细设计.................................................3
五、 调试与测试...............................................9
六、 课程设计的总结...........................................12
七、 附录.....................................................13
1
在本次的课程设计中,由我和肖玉闫合作完成,我主要负责编写程序。
对于流程图我主要负责:产生随机数函数,成绩判断函数,用户输入函数,排序函数,比较
函数。
一、 课程设计的目的
1. 巩固和加深学生对C语言课程的基本知识的理解和掌握
2. 掌握C语言编程和程序调试的基本技能
3. 利用C语言进行基础的软件设计
4. 提高运用C语言解决实际问题的能力
二、 设计的内容与要求
1. 随机产生一个五位数,且没有重复数字
2. 猜数是给出大小提示
3. 记录猜数的次数,最后给出评分
三.总体设计
(1)整个猜数游戏分为3个模块:
1.开始游戏;
2.帮助界面,介如何进行游戏;
3.退出游戏。
(2)算法描述:
1.主函数main():清屏之后运行fun函数;
2.随机数函数rn():产生一个没有重复数字的五位随机数;
3.排序函数choise():对数组进行排序;
4.用户输入函数input():用户可以输入一个五位数;
5.比较函数compare():对用户输入的五位数与系统产生的五位数进行比较;
6.成绩函数grade():根据用户输入的次数进行打分;
7.欢迎界面函数welcome():打印出一个欢迎界面;
8.选择执行函数fun():根据用户的选择来执行对应的功能;
2
四.详细设计
数据的组织描述,系统控制流程图,程序的代码的对应解释。
main()函数
清屏
打印欢迎界面
getch()
fun()
结束
3
rn函数
int b,d;long int c;
unsigned long int a;int array[5]
是
a接收产生的随机数;c=a
将c的各个位上的数字
放入数组array[5]中
用choise函数对array进行排序
判断array数组的各个数是否相同
否
return a
结束
4
choise函数(int *num,int n)
int j,k;
i=1
k=num[i];j=i-1
否
j>0&&num[i]>k?
是
num[j+1]=num[j];
j--;
num[j+1]=k
结束
5
input函数(long int a)
int c=0;long int b
输出打印相应提示
否
输出打印次数:c+1;
用户输入五位数,用b接收;
c++;
是
给出失败
c>67?
提示;
gc();
否
是
b=0?
fun函数
compare(a,b)=1?
是
retun c
结束
6
compare函数(long int a,long int b)
int c
是 给出大
a>b?
于提示;
c=0
否
是 给出小
a
于提示;
c=0
否
是
a=b?
给出等
于提示;
否
c=1
return c
结束
7
grade函数(int num)
int grade=o
否
num<4?
是
grade=100-10*(num-1)
否
num<8?
是
grade=80-5*(num-4)
num<68?
是
grade=60-(num-7)
根据用户输入次数给出提示
结束
8
五,调试与测试
调试
1. 在编程当中,由于要书写大量的程序,所以经常出现一些小错误;
2. 对变量的定义有时会出现错误,比如将long int型写成int型;
3. 最重要的是函数的应用,函数应该应用得当,否则会出现很大的错误。
测试
开始界面:
9
菜单:
10
11
六.课程设计的总结
通过这个课程设计,我们更加牢固的掌握了书本上的知识,并对于以前并不熟悉的知识
有了更加深刻的了解。在完成此次课程设计的过程中,虽然花费了大量的精力,但带给我更
多的收获。C语言是一门实践课,可以说只有自己亲手操作,才能感受到他的魅力。
此次编程设计中,涉及到许多书上没有的知识,而我通过此次设计掌握了这些知识。输
入与调试程序是相当枯燥的,但构思和完善程序的过程是相当有趣的,无论怎么样,当你亲
手完成了一个程序时,还是相当有成就感的。
此次任务的完成,也体现了同学之间的团结精神,实践是检验真理的唯一标准,没有实
践,就不会发现和深刻体会他的真实存在。只有通过检验的真理,在自己的心里,才会认可
他的真实性。理论与实际的相结合才能真正把握所学和所掌握的知识。同时培养了我们的团
队精神,使我们懂得了团队的重要性。在今后的学习工作中我们将会更好的发挥团队精神。
12
总的来说,C语言是一门非常有趣的学科,可以通过人为的设计而让电脑来辅助性的做
一些机械的东西。在今后的学习过程中,我也将更加的认真学习C语言,希望能在今后完成
设计出一个属于自己的有意思的程序。
参考书目
[1]《标准C语言基础教程英文版》<第四版>[M],(美)布朗森著出版社:电子工业出版社 2006
年
附录:
程序清单
#include
#include
#include
#include
int i;
long int rn();
void fun();
void gc();
int input(long int);
void grade(int);
int welcome();
int compare(long int,long int);
void choise(int *,int);
void main()
{
system("cls");
printf("nnntt* * * * * * * * welcome * * * * * * * *");
printf("nnn");
printf("tttmaker: xiachao xiaoyuyan");
printf("nnntttuse enter to be continue");
getch();
fun();
}
void fun()
{
int b,s,g;
long int a;
system("cls");
3 1
s=welcome();
if(s==1)
{
system("cls");
a=rn();
b=input(a);
grade(b);
gc();
}
if(s==2)
{
system("cls");
printf("nnnnn");
printf("t ---------------------------------------------------------n");
printf("t|game rules: |n");
printf("t| |n");
printf("t|input your number(10000--99999),it will compare to the |n");
printf("t| |n");
printf("t|system's number(10000--99999),and the number doesn't have|n");
printf("t| |n");
printf("t|same digit. |n");
printf("t| |n");
printf("t|if your number as same as system,your win,else ");
printf("t| |n");
printf("t ---------------------------------------------------------");
gc();
}
if(s==3)
{
printf("nntttThanks for your using.n");
printf("ttttBye Bye!");
getch();
exit(0);
}
}
long int rn()
{
int b,d;
long int c;
unsigned long int a;
int array[5];
time_t t;
time(&t);
4 1
srand(t);
loop1:a=10000+rand() % 90000;
c=a;
for(i=0;i<5;i++)
{
array[i]=c%10;
c=c/10;
}
choise(array,5);
b=array[0];
for(i=1;i<5;i++)
{
if(b==array[i])
goto loop1;
else
b=array[i];
}
return a;
}
void choise(int *num,int n)
{
int j,k;
for(i=1;i { k=num[i]; j=i-1; while((j>=0)&&(num[j]>k)) { num[j+1]=num[j]; j--; } num[j+1]=k; } } int compare(long int a,long int b) { int c; if(a>b) { printf("tttneed greater!"); printf("( >%ld )n",b); c=0; 5 1 } if(a { printf("tttneed less!"); printf("( <%ld )n",b); c=0; } if(a==b) { printf("tttIt's true!n"); c=1; } return c; } int input(long int a) { int c=0; long int b; printf("nnnnn"); printf("tttplease input your number:n"); printf("tttinput 0 back to main menu."); loop2:printf("nttttimes %d:",c+1); scanf("%ld",&b); c++; if(c>67) { printf("ttyou are lose!"); gc(); } if(b==0) fun(); else if(compare(a,b)!=1) goto loop2; return c; } void grade(int num) { int grade=0; printf("tttyou use %d timesn",num); if(num<4) grade=100-10*(num-1); else if(num<8) 6 1 grade=80-5*(num-3); else if(num<68) grade=60-(num-7); printf("tttyour grade is %d",grade); switch(num) { case 1:printf("tyou are so lucky"); break; case 2:case 3:case 4:printf("tlucky!"); break; case 5:case 6:case 7:case 8:case 9:printf("tgreat!"); break; case 10:case 11:case 12:case 13:case 14:case 15:case 16: printf("tgood!"); break; case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25: printf("tjust so so."); break; default: printf("tmaybe you can better."); } } int welcome() { int s; printf("nnnn"); printf("tt********************************************n"); printf("tt* *n"); printf("tt* welcome paly the game! *n"); printf("tt* *n"); printf("tt* input 1: start the game *n"); printf("tt* input 2: help information *n"); printf("tt* input 3: quit the game *n"); printf("tt********************************************n"); printf("ttplease select: "); scanf("%d",&s); return s; } void gc() { int a; printf("nnttinput 1: quit the game;tinput 2: back to menu.n"); printf("nttplease select : "); 7 1 scanf("%d",&a); if(a==1) exit(0); if(a==2) { system("cls"); fun(); } if(a!=1&&a!=2) { printf("ttinput error!check your input!nn"); gc(); } } 8 1
发布者:admin,转转请注明出处:http://www.yc00.com/news/1714816366a2521556.html
评论列表(0条)