C语言课程设计输出水仙花数Word文档格式.docx
- 文档编号:21976144
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:32
- 大小:395KB
C语言课程设计输出水仙花数Word文档格式.docx
《C语言课程设计输出水仙花数Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计输出水仙花数Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
intg,s,b,i;
//定义g,s,b,i为整型变量
for(i=100;
i<
1000;
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);
//执行循环体,输出水仙花数
}
\n"
);
//换行
return0;
//返回函数值为0
}//主函数结束画出流程图
2.5运行结果
执行以上程序,所得的结果如图2.2所示。
图2.2基础题的运行结果
3改错
3.1改错题目
下列给定的程序中,函数fun的功能是:
为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
请改正函数fun中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
源程序
#include<
math.h>
voidfun(inta,int*b,int*c)
{inti,j,d,y;
for(i=3;
=a/2;
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;
=sqrt((double)d);
if(d%j==0)y=0;
{*b=i;
*c=d;
}
}
voidmain()
{inta,b,c;
do
{printf("
\nInputa:
"
scanf("
%d"
&
a);
while(a%2);
fun(a,&
b,&
c);
\n\n%d=%d+%d\n"
a,b,c);
3.2错误分析
⑴在第九行中y=0逻辑判断为假,操作停止,应改为y=0逻辑判断为真,操作继续执行。
⑵另一个素数因是d=a-i.如果是d=i-a则取得是他的相反数,在执行次过程中计算机输出取它的反码。
改正后的源程序
//编译预处理指令
#include<
//程序中要调用求平方sqrt
voidfun(inta,int*b,int*c)//对fun函数的声明
//定义整型变量
i=i+2)//从i=3用递增的方式找到一
个奇数,且这个数小于a/2
{//循环体开始
y=1;
//y为逻辑判断值,y=1为真,
执行下列语句
j++)//判别i是否为素数
//如果i不为素数,y=0逻辑
判断为假
if(y==1)//逻辑判断值y==1则i为素
数
{//嵌套内循环
d=a-i;
//找偶数的另一个数
j++)//判断另一数d是否为素数
//如果d不为素数,逻辑判
断值y=0为假
if(y==1)//如果d为素数,y==1
{*b=i;
}//将两目标素数i,d的值分
别赋给指针*b,*c
voidmain()//定义主函数
{printf("
//向用户提示,输入一个
a值
scanf("
//输入a值
c)
printf("
//输出a=b+c
3.3运行结果
执行以上程序,所得结果如图3.1所示
图3.1改错题的运行结果
3.4流程图
main函数流程图3.2,fun函数流程图3.3
4综合题
4.1题目
飞机订票管理系统
4.2问题描述
假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。
通过该系统来实现机票的订购问题。
4.3功能要求
一.本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
起飞地、目的地航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。
⑴本系统显示这样的菜单
①输入航班信息
②输出航班信息
③查找航班信息
a.显示空座的数量
b.显示空座的信息
c.显示已订座的信息
d.起飞时间
④订票预约
⑤删除定票预约
⑥退出系统
⑵本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。
⑶查找航班信息既可按线路查,也可按目的地查。
⑷在两次运行之间,数据被保存于一个文件里,当本程序重新开始的时候,它首先从该文件读入数据.
二.算法提示
⑴数据结构:
结构体类型数组;
⑵数据库结构:
下表构成该系统的基本数据库。
航班号
起飞时间
目的地
座次号
座次订出与
否的标记
订票者名
订票者身份证号码
int
char
4.4设计思路
订票函数(voidbook())
⑴定义局部变量i
⑵调用voidsearch()函数并把输入变量值赋给i
⑶判断i的值并输出相关提示信息
4.5流程图
图4.1book()函数的流程图
图4.2search()函数流程图
4.6源程序
⑴book()函数
voidbook()
inti;
system("
cls"
);
欢迎进入售票窗口!
i=search();
if(i!
=-1)
{
if(ti[i].num>
=ti[i].max)
printf("
\n该趟航班票已售完!
"
else
ti[i].num++;
printf("
\n订票成功!
else
该航班不存在!
getchar();
//按任意健
menu();
⑵search()函数
intsearch()//查找模块
inti,k;
structplanes;
k=-1;
\n\n请输入要订票的起飞地点:
scanf("
%s"
s.BePlace);
//输入要到达的地方
\n\n请输入要订票的降落地点:
s.EnPlace);
\n\n请输入要订票的起飞时间:
)
s.data);
//输入出发的时间
puts("
\n-------------------------------------------------------------------------------"
\n\t航班代号飞行路线起飞地点降落地点起飞时间票价最大乘客已售票数\n"
for(i=0;
n;
i++)//查找要修改的数据
if(strcmp(s.BePlace,ti[i].BePlace)==0&
&
strcmp(s.EnPlace,ti[i].EnPlace)==0&
strcmp(s.data,ti[i].data)==0)
{
k=i;
//找到要修改的记录
printf_one(k);
break;
//调用显示一个记录的函数
}
if(k==-1)
\n\nNOexist!
return-1;
returnk;
4.7运行结果
执行上述子函数程序的运行结果如图4.1所示
图4.1订票系统运行结果
4.8总结
通过本次课程设计让我加深了对《C程序设计》的学习,认真的设计画出流程图,编写源程序,进行调试,不断改错,最后得出正确的运行结果。
通过这一系列的操作让我更好的初步掌握了计算机编程的能力。
以及对C程序的设计思路,提高自己动手和动脑的能力。
同时也让自己更细心,认真注意自己所编译的每个字符.。
其次,也让我更好的掌握了用Word画流程图,以及许多我之前所不知道的
关于Word的一些用法及用途。
这次课程设计锻炼了我的上机能力,也加强了我的实践能力。
一次次的失败,一次次的修改与重新再来。
列如页眉页脚的修改,在这过程中每一次对段落的修改,页脚的页码都会出错,让我很纠结。
经过我努力以及同学的帮助终于将错误排除,这次努力也加强了我毅力,让我更好的学习。
在用Word的过程中对于一些行距的要求经常出错,主要是在标题与正文的行距搞错还有英文经常新罗马与宋体搞错。
以及字体宋体与黑体经常出错。
等等这些方面,让我知道这其中有很多细节需要我仔细注意。
这其中最让我费劲的是用Word画流程图,这其中主要是线头的对齐,这让我佷纠结,最后我将每条线段的长度都调成一样,有的甚至精确到小数点3位。
还好经过自己的努力,最后还是成功了。
在计算机前一爬就是三,四个小时,说实话真的很累,尤其对我来说,来自农村,对计算机本来就不熟悉,对于Word也就是高中上过的几堂课的认识,对其只知道最简单几种操作。
现在让我熟练运用Word是很大的挑战,但经过我的努力我相信我会成功。
总而言之,衷心的感谢老师的指导以及同学帮助,让我在这次课程设计中学到了很多,让我取得了很大的进步。
5附录
5.1飞机订票系统总源程序
string.h>
stdlib.h>
#defineN1000
typedefstructplane
charID[10];
//航班代号
charBePlace[10];
//飞机起飞地点
charEnPlace[10];
//飞机降落终点
chardata[15];
//飞机起飞时间
charline[10];
//飞机飞行路线
intmax;
//飞机最大乘客人数
intprice;
//飞机票价
intnum;
//飞机已售票数
PLANE;
PLANEti[N];
intn;
//当前的航班数目
voidmenu();
voidmenu1();
voidinput(inti)
请输入航班代号:
ti[i].ID);
请输入航班飞行路线:
ti[i].line);
请输入起飞地点:
ti[i].BePlace);
请输入降落地点:
ti[i].EnPlace);
请输入起飞时间:
ti[i].data);
请输入航班的最大载客人数:
ti[i].max);
请输入航班的票价:
ti[i].price);
ti[i].num=0;
voidenter()
inti;
请输入航班的数目(0-%d)?
:
N);
n);
//要输入的记录个数
\n请输入数据\n\n"
for(i=0;
i++)
\n请输入第%d航班记录.\n"
i+1);
input(i);
//调用输入函数
getchar();
menu();
voidprintf_one(inti)//记录的函数
%11s%8s%6s%8s%6s%6d%6d%6d"
ti[i].ID,ti[i].line,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);
voidsearch_way()
inti,m=0;
structplanes;
system("
\n\n请输入飞行路线:
s.line);
//输入路线
puts("
\n--------------------------------------------------------------------------------"
if(strcmp(s.line,ti[i].line)==0)
{
m++;
if((m!
=0)&
(m%10==0))//目的是分屏显示
{
printf("
\n\nPressanykeytocontiune..."
getchar();
puts("
\n\n"
}
printf_one(i);
printf("
)//调用显示一个记录的函数
menu1();
voidsearch_end()
\n\n请输入目的地:
if(strcmp(ti[i].EnPlace,s.EnPlace)==0)
(m%10==0))//目的是分屏显示{
printf_one(i);
}
}puts("
\n-----------------------------------------------------------------------------"
voidmenu1()
intn,w1;
//清屏
puts("
\n\t\t\t\t*航班查询*\n\n"
\t\t*********************MENU*********************\n\n"
\t\t\t\t1.按照路线查找航班"
\t\t\t\t2.按照目的地查找航班"
\t\t\t\t3.返回主菜单"
\n\n\t\t**********************************************\n"
Choiceyournumber(1-3):
[]\b\b"
if(n<
1||n>
3)//对选择的数字作判断
w1=1;
yourchoiceisnotbetween1and3,Pleaseinputagain:
getchar();
elsew1=0;
}
while(w1==1);
switch(n)//选择功能
{
case1:
search_way();
case2:
search_end();
case3:
menu();
intsearch()//查找模块
inti,k;
k=-1;
{
if(strcmp(s.BePlace,ti[i].BePlace)==0&
k=i;
printf_one(k);
break;
if(k==-1)
return-1;
else
returnk;
inti;
i=search();
if(ti[i].num>
ti[i].num++;
printf("
voidback()
inti,k=-1;
欢迎进入退票窗口!
\n\n输入航班代号:
s.ID);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 输出 水仙花