c语言课程设计.docx
- 文档编号:4689921
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:17
- 大小:351KB
c语言课程设计.docx
《c语言课程设计.docx》由会员分享,可在线阅读,更多相关《c语言课程设计.docx(17页珍藏版)》请在冰点文库上搜索。
c语言课程设计
《C语言课程设计》报告
题目:
任意位数人民币的拆分;万年历
班级:
风能1241
学号:
1203441137
姓名:
张士礼
指导老师:
王妍
成绩:
目录
一、课程设计目的和意义1
二、(1/)总体设计思路(功能模块图)2
三、详细设计2
1模块功能介绍2
2界面设计3
3流程图4
4程序清单6
5、系统运行结果7
二、
(2)总体设计思路(功能模块图)8
三详细设计8
1模块功能介绍8
2界面设计9
3流程图10
4程序清单13
5、系统运行结果14
四、课程设计总结体会15
五、教师评语16
1、课程设计目的和意义
●掌握利用C语言进行程序设计的思想和方法。
●掌握结构化程序设计的基本方法。
●学会调试一个较长程序的基本方法。
●掌握程序设计文档的书写。
●培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程
●巩固了以前所学过的知识,把所学的理论知识与实践相结合起来
●发现了自己的不足之处,对以前所学过的知识理解得不够深刻
㈠任意位数人民币的拆分
二、总体设计思路(功能模块图)
三、详细设计
1模块功能介绍
printf("inputnumberofmoney:
\n");
实现数据的录入为下一步提供数据
a=money/100;/*求面值100$的张数a
通过求出十位上的数字为进行下一步与数字5、2及1的大小比较提供数据
通过求出个位上的数字为进行下一步与数字5、2及1的大小比较提供数据
printf("%ld$->",money)$
通过十位数字上的数与5、2、1的大小比较判断出50、20、10元的张数并同时输出数据
通过个位数字上的数与5、2、1的大小比较判断出5、2、1元的张数并同时输出数据
2界面设计
Ⅰ钱数输入printf("inputnumberofmoney:
\n");
Ⅱ求各个面值的最大张数;㈠求一百元及各位十位数字。
㈡通过if及else语句分析面值为50元20元10元5元2元的各个最大数量
Ⅲ分部打印最大数字输出结果
Ⅳ退出
3流程图
4程序清单
#include"stdio.h"
main()
{
longmoney,a,b,c;
printf("inputnumberofmoney:
\n");
scanf("%ld",&money);
a=money/100;/*求面值100$的张数a*/
b=money%100/10;/*求面值十位上的数字b*/
c=money%10;/*求面值个位上的数字c*/
printf("%ld$->",money);/*输出标题头*/
if(a>0)
printf("%ld100$\t",a);
if(b>=5)
{
printf("150$\t");
if((b-5)%2==0)
printf("%ld20$\t",(c-5)/2);
elseif(c-5>1)
printf("120$\t110$\t");
else
printf("110$\t");
}
else
{
if(b%2==0)
printf("%ld20$\t",c/2);
elseif(b>1)
printf("120$\t110$\t");
else
printf("110$\t");
}
if(c>=5)
{
printf("15$\t");
if((c-5)%2==0)
printf("%ld2$\t",(c-5)/2);
elseif(c-5>1)
printf("12$\t11$\t");
else
printf("11$\t");
}
else
{
if(c%2==0)
printf("%ld2$\t",c/2);
elseif(c>1)
printf("12$\t11$\t");
else
printf("11$\t");
}
printf("\n");
getch();
}
5、系统运行结果
㈡万年历
二、总体设计思路(功能模块图)
三详细设计
1模块功能介绍
printf("\ninputmonthandyear:
\n");为步骤提供所需数据
scanf("%d%d",&month,&year)
b=days_month(month,year);b类函数调用
首先在程序头定义一个新的函数类型b=days_month(month,year)
根据月份规律1、3、5、7、、10、12枚月31天4、6、9、11每月30天
2月份时启用intleap调用,后输出当月天数28或29
{if(year%4==0&&year%100!
=0||year%400==0)//判断是否是闰年
return1;
elsereturn0;
在主函数之前定义函数intfirstday(intmonth,intyear)
通过w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1;//判断每个月开始的第一天是星期几
计算第一天的打印之前有几个空格
计算后通过{for(i=1;i<=b;i++){printf("%4d",i);输出单月的月历
2界面设计
Ⅰ月份和年份录入
Ⅱ相关子函数调用
Ⅲ当月月份月历输出
Ⅳ退出
3流程图:
4程序清单
#include
intleap(intyear)
{if(year%4==0&&year%100!
=0||year%400==0)//判断是否是闰年
return1;
elsereturn0;
}
intdays_month(intmonth,intyear)//判断大月和小月
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)//找出大月
return31;
if(month==4||month==6||month==9||month==11)//找出小月
return30;
if(month==2&&leap(year)==1)return29;//判断二月是29天还是29天
elsereturn28;
}
intfirstday(intmonth,intyear)
{intw;
w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1;//判断每个月开始的第一天是星期几
returnw;
}
main()
{inti,j=1,k=1,a,b,month,year;
printf("\ninputmonthandyear:
\n");
scanf("%d%d",&month,&year);//输入月和年
b=days_month(month,year);
a=firstday(month,year);
printf("SunMonTueWedThuFriSat\n");//输出对应当月的日历
if(a==7)
{for(i=1;i<=b;i++)
{printf("%4d",i);
if(i%7==0)
{printf("\n");
}
}
}
if(a!
=7)
{while(j<=4*a)
{printf("");
j++;
}
for(i=1;i<=b;i++)
{printf("%4d",i);
if(i==7*k-a)
{printf("\n");
k++;
}
}
}
}
printf("\n");
getch();
}
5、系统运行结果
四、课程设计总结体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。
C语言课程设计的真正用意——培养自学能力,养成程序编辑的好习惯。
理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢通过这次课程设计之后,一定把以前所学过的知识重新温故。
我们的课程设计结束了,但是它留给我的印象是不可磨灭的。
无论我以后会不会涉及到C语言程序编译的研究,我想,我至少掌握了一种系统的研究方法,我们学习的目的就在于运用,我们运用这种研究方法的时候会很多,我最后要感谢课程设计,它的确教会我很多
五、教师评语
评阅教师:
评阅日期:
201年月
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计