C程序设计课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

西安科技大学《C语言程序设计》课程设计报告题目C程序设计课程设计报告院、系(部)电气与控制工程学院专业及班级微电子1001班姓名李治刘源韩枝宏日期2011年7月7号11题目要求一级标题小三黑体,二级标题四号黑体,正文小四宋体,行间距20磅2功能需求(分析系统应具有哪些功能)(1)圆圈循环报数有100个小朋友按编号顺序1,2,。。。,100逆时针方向围成一圈。从1号开始按逆时针方向1,2,。。。,9报数,凡报数9者出列,问:最后剩下一个未出圈者的编号是多少?第50个出圈者的编号是多少?(2)年历显示功能要求:A输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。B输入年月,输出该月的日历。C输入年月日,输出距今天还有多少天,星期几,是否是公历节日。(3)图形时钟功能要求:在屏幕上显示一个图形时钟(用程序绘制一个与时钟样式相似即可),时间与系统时间一致,且要随着时间的走动准确的走动。(4)猜数字游戏首先输入要猜的数字的位数,这样计算机可以根据输入的位数随机地分配一个符合要求的数据,计算机输出guess后便可以输入数字,计算机会根据输入信息给出相应的提示信息:A表示位置于数字均正确的个数,B表示位置不正确但数字正确的个数,这样便可以根据提示信息进行下次输入,知道正确为止。(5)保龄球计分程序要求:A使用C语言写一个程序可以方便的对保龄球运动项目进行记分;界面布局合理,能直观的显示每次得分,每轮得分和累计得分的情况B分值录入操作合理,需要有必要的无效值判断处理(比如每次击球得分不会10等等)C每场比赛结束后将本次比赛数据保存下来。(选择文件或者数据库均可)3总体设计2系统业务处理流程(1)圆圈循环报数Ni=-1i=i+1j=j+1b[j]=i+1a[i]=0s=0i=0i=0s=s+a[i]i=i+1a[i]=1j=100i=99S=9i=1000i,j,s,a[100],b[100]输出b[50]b[100]开始结束YNYNNNYNYNN3(2)年历显示a.主体循环P=BP=CP=A输出某年年历输出某年某月日历输出某年某月某日详细信息Y输出某年某月某日详细信息Y输出某年某月某日详细信息Y输出某年某月某日详细信息q=Y退出程序YN输入pq4b.分步流程图d=d+1k=k+1i=i+1k=0a[1]=29i=0w=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7da[i]k=6j=6(j*10+k)=(10+w)i=12y%4==0&&y%100!=0)||y%400==0输入y,m,d,w,k,s,i,j;a[12]输出i+1月j=1j=j+1输出YYYYYNNNNN5(4)猜数字游戏j=0i=i+1j=j+1i=0i=i+1i=0b[i]=xsum1=sum+1i=i+1b[j]=a[i]i=ki=kb[i]=a[i]i=ksum1=0,sum2=0,k,i=0,a[i]开始sum2=sum2+1sum2=sum2-sum1j=kYYYYYNNNNNNYsum1,sum26(5)保龄球计分A.输入部分i=i+1pb++=0a[18]=10a[18]+a[19])==10(*pb+*(pb-1)10i11pb=10pb10Pb0开始a[22]={0}*pb=a,i=1,s[10]={0},sum=0输入pb输入pb++输入附加球1、2输出部分输入附加球1开始YYYYYYYNNNNNNN74详细设计根据功能模块,详细论述设计过程,给出主要实现代码。(1)圆圈循环报数#includestdio.hmain(){inti,j=0,s=0,a[100],b[100];for(i=0;i100;i++)a[i]=1;/***给所有a[i]赋初值1***/for(i=0;i100;i++){s=s+a[i];/***从1开始报数***/if(s==9)/***报数为9的出圈***/{j=j+1;/***出圈人数加1***/b[j]=i+1;a[i]=0;/***与前面相对应,可使出圈者以后的报数都为前一位所报数***/s=0;/***重新从1开始报数***/}if(i==99)i=-1;/***第100个人报完后又从第1个开始报数*****/if(j==100)/***100个人都报完了输出结果***/break;}printf(第50个出圈者的编号是:%d\n,b[50]);printf(最后未出圈者编号是:%d\n,b[100]);}(2)年历显示#includestdio.hmain(){inty,m,d,w,k,s,i,j;8inta[12]={31,28,31,30,31,30,31,31,30,31,30,31};charp,q;printf(查询项目A:查询1940-2040年的年历表.\n);printf(查询项目B:查询某年某月的日历表.\n);printf(查询项目C:输入年月日查询当天信息.\n\n);do{printf(请输入你所要查询的项目(输入A或者B或者C));scanf(%c,&p);if(p=='A')/*打印某年的年历表**************************************************************/{printf(请输入你想知道的年份:);scanf(%d,&y);printf(\n);printf(============%d年公历表============\n\n,y);w=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7;if((y%4==0&&y%100!=0)||y%400==0)a[1]=29;for(i=0;i12;i++){d=0;printf(================%2d月================\n,i+1);printf(SUNMONTUEWEDTHUFRISAT\n);for(j=1;j=6;j++)for(k=0;k=6;k++){if((j*10+k)=(10+w))/***当j大于1时此不等式必为真,只有月初的前几日此不等式才可能为假,此时输出空格***/{d=d+1;if(da[i]){printf(\n);break;/***日期大于某月天数时跳到下一个月***/}elseprintf(%5d,d);w=k+1;if(w==7){w=0;printf(\n);/***星期天时换行并从9星期一开始新的循环***/}}elseprintf();}}printf(===================================\n);}/*打印某年某月的日历表********************************************************/if(p=='B'){printf(请输入你想知道的年月:);scanf(%d%d,&y,&m);printf(\n);printf(=============%d年%d月=============\n\n,y,m);if((y%4==0&&y%100!=0)||y%400==0)a[1]=29;s=0;for(i=0;im-1;i++)s=s+a[i];/***s为y年中m月前的天数***/w=(y+(y-1)/4-(y-1)/100+(y-1)/400+s)%7;/***y年m月1号为星期w***/printf(SUNMONTUEWEDTHUFRISAT\n);d=0;for(j=1;j=6;j++)for(k=0;k=6;k++){if((j*10+k)=(10+w)){d=d+1;if(da[i]){printf(\n);break;}elseprintf(%5d,d);w=k+1;if(w==7){w=0;printf(\n);}}elseprintf();/***这些和上面年历差不多***/10}printf(===================================\n);}/*某年某月某日的信息查询**********************************************************/if(p=='C'){inty1,m1,d1,i1,j1,s=0,s1=0,x=0,x1=0,sum[3000],sum1[3000],t,t1,b,z=0;printf(请输入今天的日期年月日);scanf(%d%d%d,&y,&m,&d);printf(请输入你所要查询的年月日);scanf(%d%d%d,&y1,&m1,&d1);for(i=0;iy;i++){if((i%4==0&&i%100!=0)||i%400==0)sum[i]=366;elsesum[i]=365;s=s+sum[i];}/***s为y年元旦与公元0年元旦所差的天数***/for(j=0;jm-1;j++){if((y%4==0&&y%100!=0)||y%400==0)a[1]=29;x=x+a[i];}/***x为m-1个月的天数***/for(i1=0;i1y1;i1++){if((i1%4==0&&i1%100!=0)||i1%400==0)sum1[i]=366;elsesum1[i]=365;s1=s1+sum1[i];}/***s1为y1年元旦与公元0年元旦所差的天数***/for(j1=0;j1m1-1;j1++){if((y1%4==0&&y1%100!=0)||y1%400==0)a[1]=29;x1=x1+a[i];}/***x1为m1-1个月的天数***/t=s+x+d;/***t为y年m月d日与公元0年元旦所差的天数***/t1=s1+x1+d1;/***t1为y1年m1月d1日与公元0年元旦所差的天数***/b=t1-t;/***b为今天和所查询日期所差的天数***/printf(===============================\n);if(b0)printf(所查询日期还有%d天\n,b);elseb=-1*b;printf(所查询日期已过%d天\n,b);/*计算要查询的这一天是星期几11*******************************************/for(i=0;im1-1;i++)z=z+a[i1];/***z为y1年中前m1-1个月的天数***/z=z+d1;/***z为y1年中m1月d1号之前的天数***/w=(y1-1+(y1-1)/4-(y1-1)/100+(y1-1)/400+z)%7;/***y1年m1月d1是星期w***/switch(w){case1:printf(|星期一|\n);break;case2:printf(|星期二|\n);break;case3:printf(|星期三|\n);break;case4:printf(|星期四|\n);break;case5:printf(|星期五|\n);break;case6:printf(|星期六|\n);break;case0:printf(|星期天|\n);break;}/*查看改日是否有节日**************************************************/if(m1==1&&d1==1)printf(|元旦节|\n);if(m1==2&&d1==2)printf(|世界湿地日|\n);if(m1==2&&d1==14)printf(|情人节了|\n);if(m1==3&&d1==1)printf(|国际海豹日|\n);if(m1==3&&d1==3)printf(|全国爱耳日|\n);if(m1==3&&d1==8)printf(|3.8妇女节|\n);if(m1==3&&d1==12)printf(|植树节|\n);if(m1==3&&d1==14)printf(|国际警察日|\n);if(m1==

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功