ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:395KB ,
资源ID:8839983      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8839983.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计输出水仙花数.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计输出水仙花数.docx

1、C语言课程设计输出水仙花数C语言程序设计课程设计评语:考勤(10)纪律(10)过程(40)设计报告(30)答辩(10)总成绩(100)1 引言1.1 设计目的通过该课程设计来深化对C程序设计的学习,深入了解结构循环体,数组,指针以及动态分布内存等技术,熟练掌握对C程序的调试,培养自身的编程习惯,初步掌握程序设计的算法,熟练Word的用法。进一步培养学生结构化程序设计的思想。1.2 设计要求 问题分析及解决方案框架确定:充分地分析和理解问题本身,弄清要求做什么。在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或

2、函数)之间的调用关系。 详细设计和编码:确定算法的主要流程,在此基础上进行代码设计。 上机前程序静态检查:上机前对程序进行静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。 上机调试程序:在运行环境中执行编写好的程序代码,以便进一步检查程序设计中出现的错误。1.3 设计方法 拟出设计思路 表示出每个函数或过程的作用画出流程图 写出源程序 运行程序2 基础题2.1 题目要求 打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为:153=13+53+33 。2.2 设计思路本题利用一个for循环语句,求出100到1000以内

3、的三位数,再用if语句找出符合各个位数的立方和等于该数本身的书,即输出水仙花数。2.3 画出流程2.4 编写源程序#include /主函数int main() /定义主函数 /主函数体开始 int g,s,b,i; /定义g,s,b,i为整型变量 for(i=100;i1000;i+) /控制循环次数,共循环999次 b=i/100; /表示百位数字 s=i/10-b*10; /表示十位数字 g=i-b*100-s*10; /表示个位数字 if(i=b*b*b+s*s*s+g*g*g) /判断各个数位数字的立方和为该数本身 printf(水仙花数是:%-6d,i); /执行循环体,输出水仙花

4、数 printf(n); /换行 return 0; /返回函数值为0 /主函数结束画出流程图2.5 运行结果执行以上程序,所得的结果如图2.2所示。图2.2基础题的运行结果3 改错3.1 改错题目下列给定的程序中,函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!源程序#include #include void fun(int a, int *b, int *c) int i,j,d,y; for (i=3;i=a/2;

5、i=i+2) y=0; for (j=2;j=sqrt(double)i );j+) if (i%j=0) y=0; if (y=1) d=i-a; for (j=2;j=sqrt(double)d );j+) if (d%j=0) y=0; if (y=1) *b=i; *c=d; void main() int a,b,c; do printf(nInput a: ); scanf(%d,&a); while(a%2); fun(a,&b,&c); printf(nn%d=%d+%dn,a,b,c);3.2 错误分析 在第九行中y=0逻辑判断为假,操作停止,应改为y=0逻辑判断为真,操作继

6、续执行。 另一个素数因是d=a-i.如果是d=i-a则取得是他的相反数,在执行次过程中计算机输出取它的反码。改正后的源程序#include /编译预处理指令 #include /程序中要调用求平方sqrtvoid fun(int a, int *b, int *c) /对fun函数的声明 int i,j,d,y; /定义整型变量 for (i=3;i=a/2;i=i+2) /从i=3用递增的方式找到一个奇数,且这个数小于a/2 /循环体开始 y=1; /y为逻辑判断值,y=1为真,执行下列语句 for (j=2;j=sqrt(double)i );j+) /判别i是否为素数 if (i%j=0

7、) y=0; /如果i不为素数,y=0逻辑 判断为假 if (y=1) /逻辑判断值y=1则i为素 数 /嵌套内循环 d=a-i; /找偶数的另一个数 for (j=2;j=tii.max) printf(n该趟航班票已售完!); else tii.num+; printf(n订票成功!n); else printf(该航班不存在!n); getchar(); getchar(); /按任意健 menu(); search( )函数int search() /查找模块int i,k;struct plane s;k=-1;system( cls ); printf(nn请输入要订票的起飞地点:

8、);scanf(%s,s.BePlace); /输入要到达的地方printf(nn请输入要订票的降落地点:);scanf(%s,s.EnPlace); printf(nn请输入要订票的起飞时间:)scanf(%s,s.data); /输入出发的时间puts(n-);printf(nt航班代号 飞行路线 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n); for(i=0;in;i+) /查找要修改的数据 if(strcmp(s.BePlace,tii.BePlace)=0&strcmp(s.EnPlace,tii.EnPlace)=0&strcmp(s.data,tii.data)=0

9、) k=i; /找到要修改的记录printf_one(k);break; /调用显示一个记录的函数 if(k=-1) printf(nnNO exist!); return -1; else return k;4.7 运行结果执行上述子函数程序的运行结果如图4.1所示图4.1订票系统运行结果4.8总结 通过本次课程设计让我加深了对C程序设计的学习,认真的设计画出流程图,编写源程序,进行调试,不断改错,最后得出正确的运行结果。通过这一系列的操作让我更好的初步掌握了计算机编程的能力。以及对C程序的设计思路,提高自己动手和动脑的能力。同时也让自己更细心,认真注意自己所编译的每个字符.。其次,也让我更

10、好的掌握了用Word画流程图,以及许多我之前所不知道的关于Word的一些用法及用途。这次课程设计锻炼了我的上机能力,也加强了我的实践能力。一次次的失败,一次次的修改与重新再来。列如页眉页脚的修改,在这过程中每一次对段落的修改,页脚的页码都会出错,让我很纠结。经过我努力以及同学的帮助终于将错误排除,这次努力也加强了我毅力,让我更好的学习。在用Word的过程中对于一些行距的要求经常出错,主要是在标题与正文的行距搞错还有英文经常新罗马与宋体搞错。以及字体宋体与黑体经常出错。等等这些方面,让我知道这其中有很多细节需要我仔细注意。这其中最让我费劲的是用Word画流程图,这其中主要是线头的对齐,这让我佷纠

11、结,最后我将每条线段的长度都调成一样,有的甚至精确到小数点3位。还好经过自己的努力,最后还是成功了。在计算机前一爬就是三,四个小时,说实话真的很累,尤其对我来说,来自农村,对计算机本来就不熟悉,对于Word也就是高中上过的几堂课的认识,对其只知道最简单几种操作。现在让我熟练运用Word是很大的挑战,但经过我的努力我相信我会成功。总而言之,衷心的感谢老师的指导以及同学帮助,让我在这次课程设计中学到了很多,让我取得了很大的进步。5 附录5.1飞机订票系统总源程序#include #include #include #define N 1000typedef struct planechar ID1

12、0; /航班代号char BePlace10; /飞机起飞地点char EnPlace10; /飞机降落终点char data15; /飞机起飞时间char line10; /飞机飞行路线int max; /飞机最大乘客人数int price; /飞机票价int num; /飞机已售票数PLANE;PLANE tiN;int n;/当前的航班数目void menu();void menu1();void input(int i) printf(请输入航班代号:n); scanf(%s,tii.ID); printf(请输入航班飞行路线:n); scanf(%s,tii.line); print

13、f(请输入起飞地点:n); scanf(%s,tii.BePlace); printf(请输入降落地点:n); scanf(%s,tii.EnPlace); printf(请输入起飞时间:n); scanf(%s,tii.data); printf(请输入航班的最大载客人数:n); scanf(%d,&tii.max); printf(请输入航班的票价:n); scanf(%d,&tii.price); tii.num=0; void enter() int i;system( cls );printf(请输入航班的数目(0-%d)?:,N); scanf(%d,&n); /要输入的记录个数

14、printf(n请输入数据nn); for(i=0;in;i+) printf(n请输入第 %d 航班记录.n,i+1); input(i); /调用输入函数 getchar(); menu(); void printf_one(int i) /记录的函数 printf(%11s %8s %6s %8s %6s %6d %6d %6d,tii.ID,tii.line,tii.BePlace,tii.EnPlace,tii.data,tii.price,tii.max,tii.num); void search_way() int i,m=0; struct plane s; system( c

15、ls ); printf(nn请输入飞行路线:); scanf(%s,s.line); /输入路线 puts(n-); printf(nt航班代号 飞行路线 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n); for(i=0;in;i+) if(strcmp(s.line,tii.line)=0) m+; if(m!=0)&(m%10=0) /目的是分屏显示 printf(nnPress any key to contiune . . .); getchar(); puts(nn); printf_one(i); printf(n) /调用显示一个记录的函数 puts(n-); ge

16、tchar(); /按任意健 getchar(); menu1(); void search_end() int i,m=0; struct plane s; system( cls ); printf(nn请输入目的地:); scanf(%s,s.EnPlace); /输入要到达的地方 puts(n-); printf(nt航班代号 飞行路线 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n); for(i=0;in;i+) if(strcmp(tii.EnPlace,s.EnPlace)=0) m+; if(m!=0)&(m%10=0) /目的是分屏显示 printf(nnPres

17、s any key to contiune . . .); getchar(); puts(nn); printf_one(i); /调用显示一个记录的函数 printf(n); puts(n-); getchar(); /按任意健 getchar(); menu1(); void menu1() int n,w1; do system( cls ); /清屏 puts(ntttt *航班查询*nn);puts(tt*MENU*nn);puts(tttt1.按照路线查找航班);puts(tttt2.按照目的地查找航班);puts(tttt3.返回主菜单); puts(nntt*n);print

18、f(Choice your number(1-3): bb);scanf(%d,&n);if(n3) /对选择的数字作判断 w1=1; printf(your choice is not between 1 and 3,Please input again:); getchar(); getchar(); else w1=0; while(w1=1);switch(n) /选择功能 case 1:search_way();break; case 2:search_end();break; case 3:menu();break; int search() /查找模块 int i,k; stru

19、ct plane s; k=-1; system( cls ); printf(nn请输入要订票的起飞地点:); scanf(%s,s.BePlace); /输入要到达的地方 printf(nn请输入要订票的降落地点:); scanf(%s,s.EnPlace); printf(nn请输入要订票的起飞时间:); scanf(%s,s.data); /输入出发的时间 puts(n-); printf(nt航班代号 飞行路线 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n); for(i=0;i=tii.max) printf(n该趟航班票已售完!); else tii.num+; printf(n订票成功!n); else printf(该航班不存在!n); getchar(); getchar(); /按任意健 menu(); void back() int i,k=-1; struct plane s; system( cls ); printf(欢迎进入退票窗口!n); printf(nn输入航班代号:); scanf(%s,s.ID); /输入要到达的地方puts(n-); printf(nt航班代号 飞行路线 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n); for(i=0;in;i+) /查找要修改的数据

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1