- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子信息工程技术专业教学资源库Electronic information teaching resourceC 语言程序设计陕西工业职业技术学院主讲:田永毅电子信息工程技术专业课程项目化实施课程11.1 综合应用程序设计11.1.1 综合应用程序分析11.1.2 程序设计中常见错误分析11.1.1 综合应用程序分析 C语言的应用非常广泛。它可以应用在银行业、游戏业、自动控制等领域。下面我们通过一个例子来说明,如何将C语言的基本语法、程序的结构、数组、指针等内容有机的结合起来,处理较为复杂的问题。1.编程时的注意事项 为了后续能够有效地进行程序调试,编写程序时应注意以下几点: ① 应当采用结构化程序方法编程,以增加可读性; ② 尽可能多加注释,以帮助理解每段程序的作用; ③ 在编写复杂的程序时,不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。这样既易于阅读也便于调试,各函数之间除用参数传递数据这一渠道以外,数据间尽量少出现耦合关系,便于分别检查和处理。11.1.1 综合应用程序分析2.程序分析问题: 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是任何一个数位相同的号码都会被当做是合法的信用卡号,它必须通过Luhn算法来验证通过。Luhn算法的主要作用是为了计算信用卡等证件号码的合法性。 该算法的校验过程如下:从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。将奇数位总和加上偶数位总和,结果应该可以被10整除。11.1.1 综合应用程序分析 信用卡的卡号一般为16位整数,考虑到数据类型的存储范围和转换的便利性,本程序中使用字符串接收信用卡的卡号。 在解决类似于本例这样较为复杂的实际问题或编写较大程序时,程序一般显得繁琐、不简洁,缺乏可读性和可维护性。因此,本例通过两个不同的功能模块函数来实现。 模块(函数)名称功能描述intluhn (char *p)判断输入的字符串是否为合法卡号,如果是返回值为1,否则返回值为0.void main( ) 主函数; luhn (p)为1,输出“合法!”否则,输出“非法!”11.1.1 综合应用程序分析11.1.1 综合应用程序分析if((iS1+iS2)%10==0) //判断是否能被10整除 return 1; else return 0;}main(){ char p[20]; printf(please input credit card number:\n); gets(p); if (luhn(p)==1) printf(合法!); else printf(非法!); getch();}例程11-1:#include stdio.h#include string.hint luhn(char *p){ int i,t; int a[20]; //数组长度卡号长度 int iS1=0,iS2=0 ; t=strlen(p); //计算字符长度 for(i=0;p[i]!=\0;i++) a[i]=p[i]-48; //字符转换为数字 for(i=t-1;i=0;i--) if(i%2==1) iS1=iS1+a[i]; //奇数位值求和 else { a[i]=a[i]*2; if(a[i]9) a[i]=a[i]-9; iS2=iS2+a[i]; //偶数位值求和 }Thank YouDesigned by SXPI
您可能关注的文档
- bz21-三维材质灯光 纹理绘制 钢编织水管纹理绘制.ppt
- bz38-U3D动画 Canvas画布 UGUI用户界面_Canvas画布(PPT).pptx
- CADCAM应用 拓展资源 2-3工程制图.ppt
- CADCAM应用 项目ppt 项目2.2 截止阀压盖三维数字建模.ppt
- CADCAM应用 项目ppt 项目2.4 截止阀阀体三维数字建模.ppt
- CADCAM应用 项目ppt 项目7.5 固定轴曲面轮廓铣.ppt
- CAD工程设计 CAD工程设计 9 镜像、阵列.ppt
- CAD绘图 尺寸标注、尺寸标注样式的设置、尺寸标注 尺寸标注.pptx
- CAD绘图 图纸幅面、图线、制图标准 图纸图幅.pptx
- CAD技术 AutoCAD概述 1.3图形管理.ppt
文档评论(0)