课程设计报告.docx
- 文档编号:2998984
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:16
- 大小:164.81KB
课程设计报告.docx
《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
课程设计报告
《C语言程序设计》课程设计报告
题目数学趣味闯关题
专业通信工程
班级07通信工程
(2)班
学号200741302201
姓名曹燕芳
同组人员李文通200741302202
李文春200741302203
彭文娟200741302204
张荣200741302205
李加雄200741302206
一、课程设计的内容、要求
我们设计的是一组趣味数学闯关题,做题者依据自己的喜好选择不同的出题人,按照题目的要求输入答案,然后看参考答案,进入下一环节。
二、所采用的数据结构
switch语句及其循环
break语句、if语句、goto语句
printf函数、scanf函数
形式参数和实际参数
三、主要模块(或函数)及其功能
主题程序:
voidmain()
{inta,i,j,k;
begin:
printf("\t****************************\n");
printf("\t&&欢迎进入数学趣味闯关乐园&&\n");
printf("\t############################\n");
printf("请选择出题人答题(1-5)\n");
printf("1.李文通\n2.李文春\n3.彭文娟\n4.张荣\n5.李加雄\n6.曹燕芳\n");
scanf("%d",&a);
switch(a)
{case1:
f1();break;
case2:
f2();break;
case3:
f3();break;
case4:
f4();break;
case5:
f5();break;
case6:
功能:
提供出题人,供选择用,不同题号后对应不同的趣味数学题目。
四、主要模块(或函数)的算法思想和程序框图
源程序:
#include
#include
#include
voidf1()
{intsum_day(int,int);
intleap(intyear);
intyear,month,day,days;
printf("\t给出年月日,计算该日是该年的第几天?
");
putchar('\n');
printf("inputdate(year,month,day):
");
scanf("%d,%d,%d",&year,&month,&day);
printf("%d/%d/%d",year,month,day);
days=sum_day(month,day);
if(leap(year)&&month>=3);
days=days+1;
printf("isthe%dthdayinthisyear.\n",days);
}
intsum_day(intmonth,intday)
{intday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
inti;
for(i=1;i day+=day_tab[i]; return(day); } intleap(intyear) {intleap; leap=year%4==0&&year%100! =0||year%400==0; return(leap); } voidf2() {intx,y,z,count=0,man,woman,children; printf("\t马克思手稿中有一道趣味数学问题: 有30个人,其中有男人、女人和小孩,在一家饭馆吃饭花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人? "); putchar('\n'); printf("man=,woman=,children=\n"); scanf("%10d,%10d,%10d",&man,&woman,&children); printf("请看参考答案,并检验您的回答是否正确"); putchar('\n'); printf("MenWomenChildren\n"); printf("........................................\n"); for(x=0;x<=10;x++) { y=20-2*x; z=30-x-y; if(3*x+2*y+z==50) printf("%2d: %10d%10d%10d\n",++count,x,y,z); } } voidf3() { inta,b,c,e,f; b=816357492; c=618753294; e=294753618; f=492357816; printf("\t用1--9的数排列,使数列无论横竖撇捺的和都是15,\n"); printf("请输入您的答案: \n"); printf("a="); scanf("%d",&a); if(a==b||a==c||a==e||a==f) printf("welldone,youareright,\n"); elseprintf("whatapity,youarewrong,\n"); printf("请看标准答案: \n"); printf("\t第一种: \n"); printf("\t816\n\t357\n\t492\n"); printf("\t第二种: \n"); printf("\t618\n\t753\n\t294\n"); printf("\t第三种: \n"); printf("\t294\n\t753\n\t618\n"); printf("\t第四种: \n"); printf("\t492\n\t357\n\t816\n"); } inta,b; voidPlay_game() { intchoice; voidGuess_count(); srand(time(NULL)); a=rand()%10; b=rand()%10; printf("欢迎进入: \n\n"); printf("\t\t**8**\t\t\n"); printf("\t**8**猜数字游戏**8**\n"); printf("\t\t**8**\t\t\n\n"); printf("1.开始游戏\n"); printf("2.退出游戏\n"); putchar('\n'); printf("请选择数字: 1or2: "); scanf("%d",&choice); switch(choice) { case1: Guess_count();break; case2: exit(0); } } voidGuess_count() { intm,n,choice,answer,c=0; printf("请输入两个一位数(不考虑顺序): "); scanf("%d",&m);scanf("%d",&n); if(m==a&&n==b||m==b&&n==a) printf("\t\tCongratulations! ! \n\t\tYou'vedoneagoodjob! \n"); else { if(m==a||m==b||n==b||n==a) { printf("\tGoodluck! ! \n\t猜对了一个数字~~继续努力! ! \n"); printf("Replaygame? 1.YES2.NO\n"); scanf("%d",&choice); switch(choice) { case1: Play_game();break; case2: exit(0); } c++; } else { printf("\twhatapity! \n\tGameover! \n"); c++; } } printf("Ifyouwanttoknowtherightnumber,pleasescanf9\nelseprseeangkeytoexit! : \n"); scanf("%d",&answer); if(answer==9)printf("a=%d,b=%d\n",a,b); if(c>5) printf("I'msorrytosay: Yourfortuneissobad! "); } voidf4() { Play_game(); } voidf5() { intnum; printf("\t欢迎进入NBA总冠军获得次数查询系统\n"); printf("请输入你想查询的获得总冠军次数: "); scanf("%d",&num); switch(num) { case1: printf("萨克拉门托国王1950-1951\n亚特兰大老鹰1957-1958\n密尔沃基雄鹿1970-1971\n新泽西篮网队1975-1976\n波特兰开拓者1976-1977\n华盛顿奇才1977-1978\n西雅图超音速1978-1979\n迈阿密热火2005-2006\n");break; case2: printf("休斯顿火箭1993-1994,1994-1995\n纽约尼克斯1969-1970,1972-1973\n");break; case3: printf("底特律活塞1988-1989,1989-1990,2003-2004\n金州勇士1946-1947,1955-1956,1974-1975\n费城76人1954-1955,1966-1967,1982-1983\n");break; case4: printf("圣安东尼奥马刺1998-1999,2002-2003,2004-2005,2006-2007\n");break; case6: printf("芝加哥公牛1990-1993,1995-1998\n");break; case14: printf("洛杉矶湖人1948-1950,1951-1954,1971-1972,1979-1980,1981-1982,1984-1985,1986-1988,1999-2002\n");break; case16: printf("波士顿凯尔特人1956-1957,1958-1966,1967-1969,1973-1974,1975-1976,1980-1981,1983-1984,1985-1986\n");break; default: printf("很抱歉,无球队获得过该次数的总冠军\n"); } printf("\t谢谢参与\n"); } voidf6() { } voidmain() {inta,i,j,k; begin: printf("\t****************************\n"); printf("\t&&欢迎进入数学趣味闯关乐园&&\n"); printf("\t#####
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告