C语言作业.docx
- 文档编号:27866457
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:8
- 大小:40.24KB
C语言作业.docx
《C语言作业.docx》由会员分享,可在线阅读,更多相关《C语言作业.docx(8页珍藏版)》请在冰豆网上搜索。
C语言作业
一、课程设计任务
本组的课程设计题目是《电话费管理系统》,我们要求所涉及到的内容有:
(1)添加记录;
(2)累计通话时间(市话与长途分开);计算某位用户费用;(3)根据日期查询历史记录;(4)修改记录;本人主要负责搞的是第二点——累计通话时间(市话与长途分开);计算某位用户费用。
然后和刘帅同学共同做第一点添加记录。
二、程序介绍及想法
我参与了两个程序的编写,先说一下对于第二点【累计通话时间(市话与长途分开);计算某位用户费用】本人的设计思路以及想法吧!
对长途与市话时间的统计,我用的比较简单,因为在添加记录中应已有了一些数据,我仅仅用了一个判断语句和一个循环语句来做这个通话时间的统计,我想的是如果把那些变量都定义在主函数中,那么我对那些添加的数据就可以直接用,首先我就判断一下,该次通话是否是市话,如果是就进行一个累加的循环语句,把所有市话的时间加起来,如果不是市话,则进行另外一个累加的循环语句,把所有的长话时间加起来。
在分别统计好市话和长话的总时间后,再用通话的总时间乘以他们每分钟的单价,就分别可以得到市话和长话的通话话费,再把两者加起来,便得到了通话的总花费。
第二点【累计通话时间(市话与长途分开);计算某位用户费用】算法的步骤:
第一步:
程序开始;执行下一步;
第二步:
调用添加记录中的一组数据;执行下一步;
第三步:
判断本次通话是否为市话,如果是,执行第四步,如果不是,则执行第五步;
第四步:
市话的总时间加上本次通话时长再赋值给市话的总时间;
第五步:
长途的总时间加上本次通话时长再赋值给长途的总时间;
第六步:
判断是否已经统计完成,如果统计完成,执行下一步,如果未完成,则返回到第二步;
第七部:
输出市话总时间和长途总时间;执行下一步;
第八步:
用市话的总时间乘以市话的单价;执行下一步;
第九步:
用长途的总时间乘以长途的单价;执行下一步;
第十步:
输出市话和长途的总费用;执行下一步;
第十一步:
用市话的总费用加上长途的总费用;执行下一步;
第十二步:
输出通话的总费用;执行下一步;
第十三步:
程序结束。
第二点【累计通话时间(市话与长途分开);计算某位用户费用】算法的NS图为:
由于在编写主函数时,没有把第二点编写进去,后来又来不及了,本程序是单独调试的,在调试时没有用那个判断语句,本计划是再添加记录中,定义N=0时是市话通话,N=1时时长途通话,所以用了以下一个判断语句。
还有,由于是单独调试,所以以下数据是在自己调试的时候随即添加的。
具体程序如下:
#include
intmain()
{
inti,j;*//定义二个所要用到的变量
intshorttime,longtime;*//定义市话总时间和长途总时间
intshortcost,longcost,sum;
*//定义市话总费用和长途总费用以及通话总费用
intcost1,cost2;*//定义市话和长途的单价
inttime1[5]={1,2,3,4,5},time2[5]={1,2,3,4,5};
*//定义了五次通话及每次通话时间shorttime=0;*//赋值市话最开始的通话时间
longtime=0;*//赋值长途最开始的通话时间sum=0;*//对初始的总通话费用赋值
cost1=1;*//赋值市话的单价
cost2=3;*//赋值长途的单价
if(N=0)*//判断本次通话是否是市话
for(i=0;i<5;i++)
shorttime=shorttime+time1[i];*//统计市话的总时间
printf("市话总时间shorttime=%d\n",shorttime);
*//输出市话的总时间
else
for(j=0;j<5;j++)
longtime=longtime+time2[j];*//统计长途的总时间
printf("长话总时间longtime=%d\n",longtime);
*//输出长途的总时间
shortcost=shorttime*cost1;*//计算市话的总费用
longcost=longtime*cost2;*//计算长途的总费用
printf("市话总费用shortcost=%d\n",shortcost);
*//输出市话的总费用
printf("长话总费用longcost=%d\n",longcost);
*//输出长途的总费用
sum=shortcost+longcost;*//计算通话的总费用
printf("通话总费用sum=%d\n",sum);*//输出通话的总费用
return0;
}
该程序运行的结果为:
此程序在单独调试的时候还是比较完美的,在各方面的统计也做得比较到位的,不过程序变得比较简单,没用到什么复杂的语句,不过最大的欠缺的就是在最后的检查时还没放到主函数中调试。
对于添加记录,主要是刘帅同学做的,我只是起到了辅助作用,在编写此程序的时候,我们使用了很多的输入与输出语句,添加记录嘛,主要起到的作用是添加作用,把用户通话的一些基本信息添加到我们的程序中,以方便客户的查询与修改,以及我们对客户通话的统计,因为本程序是放在主函数中调试的,所以为了方便我们返回到主菜单,我们用到了一的do语句,在主函数中的具体程序如下:
{inty;
do{
printf("请输入日期:
");
scanf("%d",&guestList[q].sj);*//输入通话的时间
printf("请输入您要拨打的号码:
");
scanf("%s",guestList[q].dh);*//输入所添加记录的电话号码
printf("请输入您拨打的是长途还是短途:
");
scanf("%d",&guestList[q].lx);*//输入本次通话是否是市话
printf("请输入您今日拨打的次数:
");
scanf("%d",&guestList[q].cs);*//输入通话的次数
printf("\n\n");
printf("~~~日期:
%5d",guestList[q].sj);
printf("号码:
%s",guestList[q].dh);
printf("类型:
%5d",guestList[q].lx);
printf("次数:
%5d~~~~~",guestList[q].cs);
*//显示出我所添加的记录
printf("\n\n");
printf("\n");
printf("######^^继续请输入:
1输任意数返回主菜单\n\n");
scanf("%d",&y);
q++;
}while(y==1);
}
由于时间的问题,此添加记录也许还不是太完整,所以也导致了第二点[累计通话时间(市话与长途分开);计算某位用户费用]不能在主函数中运行,在本人的考虑中,添加记录还需要添加每次通话的时间,以及用代码来代替本次通话是否为市话或者长途。
本程序虽然在某些方面还有待完善,不过总的来说,此程序还是编得比较好。
三、本程序所涉及的知识点
变量的定义、输入和输出函数、if语句、for语句、do语句等等。
四、调试过程中遇到的问题及解决方法
初次学习C语言,初次接触到编写程序,初次做课程设计,第一次编写出来的程序难免会有一些粗糙,会有一些错误,不过在调试的过程中就可以慢慢的发现错误,然后改正错误,在小组同学的讨论中改正一些错,最终得到一个好的程序。
我在编写以上两个程序时所遇到的错误以及解决办法如下:
在那个“累计通话时间(市话与长途分开);计算某位用户费用。
”的程序编写中:
1、由于所涉及到的变量比较多,在一开始编写程序的时候就忘记了对总通话费用sum的定义,在调试过程中通过提示才发现错误,并改正过来定义上去了。
2、在加上对sum的定以后调试又发现没对sum的初始值进行赋值,于是又对sum进行赋值为零。
3、由于是单独调试,对每次通话的时间,以及是否为市话或者长途,还有通话的次数都要具体化,不能用代码,根据在调试过程中的错误提示以及同组人的帮助以及自己的努力下一一改正过来。
对于那个添加记录的程序,由于是放在主函数中调试的,遇到的主要问题是变量的符号的不统一,主函数定义的变量与本人当时编写时所用的变量符号不一样,在本组同学的讨论后,得到了一致的变量符号,并改正了;还有一些小的细节问题,在调试的过程中通过下面的错误提示,然后问同学以及通过自己的思考慢慢的改正了,之后这个程序在主函数中就可以正常的运行了。
五、心得体会
初次学习C语言,初次接触到编写程序,初次做课程设计,第一次编写出来的程序难免会有一些粗糙,会有一些错误,不过在调试的过程中就可以慢慢的发现错误,然后改正错误,在小组同学的讨论中以及通过自己的认真思考可以改正一些错,最终得到一个好的程序。
在这次设计过程中,不仅复习课本上所学知识,还通过查资料、问同学学到了课本上没有的知识。
从而启发我,要想写好程序,在写好课本知识的同时还需要多读和专业有关的一些书籍,同时还需要多动脑子,尽量把所学的知识综合起来应用,力争写出完美的程序。
除此之外,我还得到了一些有用的教训:
写程序时必须要细心,不能输错一个字符标点,就连全角半角也得注意。
在修改时要有耐心,编译出错后必须逐个错误去改正,绝不能心急浮躁,否则修改之后还会有新的错误。
过而能改,善莫大焉。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,以及同学的讨论下,终于迎刃而解。
在今后学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!
课程设计诚然是一门专业基础课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。
同时,设计让我感触很深。
使我对抽象的理论有了具体的认识。
在刚开始的几次调试中曾经出现过不能运行、不会正确输出结果、进行的循环为死循环、不能进行循环练习等等问题。
经过我的努力及同学的帮助,这些问题得到克服,并且使程序的功能也得到了一定的完善。
我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在实验课上,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。
果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。
此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 作业