C语言通讯录4.docx
- 文档编号:26991014
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:16
- 大小:190.74KB
C语言通讯录4.docx
《C语言通讯录4.docx》由会员分享,可在线阅读,更多相关《C语言通讯录4.docx(16页珍藏版)》请在冰豆网上搜索。
C语言通讯录4
目录
1问题定义…………………………………………………………………………..1
2系统设计……………………………………………………………………1
2.1总体设计………………………………………………………………………………2
2.2功能描述……………………………………………………………………………。
。
2
2.3数据结构设计………………………………………………………。
。
2
3主控流程…………………………………………………………………………3
4主函数………………………………………………………………………4
5测试与调试………………………………………………………………………。
6
5.1概述………….……………………………………………………………6
5.2程序测试………….……………………………………………………………7
6系统维护………………………………………………………………………9
7归纳总结………………………………………………………………………10
7.1开发经验………………………………………………………………………10
7.2实训中遇到的问题及解决方法………………………………………………10
7.3设计中的不足之处……………………………………………………………………11
7.4感想和心得体会……………………………………………………………………11
8参考资料………………………………………………………………………11
公交卡管理系统
本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和数组的各种基本操作。
本程序中涉及结构体、文件及各种语句的运用方面的知识。
通过本程序的训练,使我能对C语言的文件操作有一个更深刻的了解,初步掌握数组的一些结构及构成。
掌握利用数组存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。
1、问题定义
创建一个公交卡管理系统,假设系统中每一张卡的记录包括名字,编号,初始金额等信息。
及充值、注销、挂失、查询等运行效果如下图所示,选择任何菜单后,实现相应功能。
在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。
2、系统设计
2.1总体设计
图2.1公交卡管理系统功能模块图
2.2功能描述
本通公交卡采用数组实现,如图2.1所示,它由如下四大功能模块组成:
●输入记录模块。
完成将数据存入的工作。
记录可以从以二进制形式存储的数据文件中读入,也可从键盘逐个输入个人记录。
个人记录由个人的基本信息字段构成。
当从数据文件中读入记录时,也就是把在以记录为单位存储的数据文件中,将记录逐条记入。
●充值记录模块。
可以查阅里面的全部的记录。
更新记录模块。
完成对个人记录的完善。
在此系统中,它实现了对公交卡金额不足的充值,并将数据存入源数据文件。
●查询记录模块。
一是实现对个人记录的存盘,即将记录写入数据文件中;二是实现将已录入的信息在屏幕上显示出来。
2.3数据结构设计while
(1){
printf("***********操作菜单***********\n");
printf("1公交IC卡录入\n");
printf("2公交IC卡充值\n");
printf("3公交IC卡注销\n");
printf("4公交IC卡挂失\n");
printf("5公交IC卡查询\n");
printf("0退出系统\n");
scanf("%d",&op);
3.主控函数执行流程
图2.2主控函数执行流程图
4.函数功能描述
#include
#include
typedefstruct{
charNO[10];
charname[20];
doublemoney;
intok;
}IC;
ICa[1000];
intmain()
{
intn=0,i;
intop;
chars[20];
doublep;
printf("欢迎进入公交卡管理系统\n");
while
(1){
printf("***********操作菜单***********\n");
printf("1公交IC卡录入\n");
printf("2公交IC卡充值\n");
printf("3公交IC卡注销\n");
printf("4公交IC卡挂失\n");
printf("5公交IC卡查询\n");
printf("0退出系统\n");
scanf("%d",&op);
if(op==1){
printf("请输入新录入公交IC卡信息:
\n");
printf("编号:
");
scanf("%s",a[n].NO);
printf("姓名:
");
scanf("%s",a[n].name);
printf("初始金额:
");
scanf("%lf",&a[n].money);
a[n].ok=1;
n++;
printf("新卡录入成功,当前共有%d个公交IC卡\n",n);
}
elseif(op==2){
printf("请输入需要充值的公交IC卡的编号以及金额\n");
printf("公交IC卡的编号:
");
scanf("%s",s);
printf("金额:
");
scanf("%lf",&p);
for(i=0;i if(strcmp(s,a[i].NO)==0)break; if(i==n)printf("查无此卡\n"); else{ if(a[i].ok==1){ printf("充值成功! \n"); printf("公交IC卡的编号: %s\n姓名: %s\n初始金额: %.2lf当前金额: %.2lf\n",a[i].NO,a[i].name,a[i].money,a[i].money+p); a[i].money+=p; } else{ printf("此卡挂失中,无法操作! \n"); } } } elseif(op==3){ printf("请输入需要注销的公交IC卡的编号: "); scanf("%s",s); for(i=0;i if(strcmp(s,a[i].NO)==0)break; if(i==n)printf("查无此卡\n"); else{ for(;i n--; printf("注销成功,还剩余%d公交IC卡\n",n); } } elseif(op==4){ printf("请输入需要挂失的公交IC卡的编号: "); scanf("%s",s); for(i=0;i if(strcmp(s,a[i].NO)==0)break; if(i==n)printf("查无此卡\n"); else{ a[i].ok=0; printf("挂失成功\n"); } } elseif(op==5){ printf("请输入需要挂失的公交IC卡的编号: "); scanf("%s",s); for(i=0;i if(strcmp(s,a[i].NO)==0)break; if(i==n)printf("查无此卡\n"); else{ printf("公交IC卡的编号: %s\n姓名: %s\n当前金额: %.2f\n",a[i].NO,a[i].name,a[i].money,a[i].money); if(a[i].ok==0)printf("备注: 此卡挂失中\n"); } } else{ printf("退出系统成功\n"); printf("欢迎下次使用\n"); break; } } return0; } 5测试与调试 5.1概述 一般情况下,为解决一个问题所编写的程序代码较长,可能包括几百条甚至成千上万条语句。 在检查并排除所有语法错误后,还会有不易发现的逻辑错误,因此要对程序进行认真仔细的测试与调试。 测试是通过运行程序发现错误的过程,常见的错误有数据溢出、数组越界、进入死循环、语句顺序颠倒、多加“;”或少加“{}”等等。 调试则是确定测试中找到的错误性质并改正错误的过程。 测试与调试通常交替进行,即测试——调试——再测试——再调试。 能检查出尚未发现的、各种不同类型错误的测试才是成功的测试。 测试程序需要测试用例,测试用例可用如下公式表示: 测试用例=测试数据+预期结果。 好的测试用例应该是用尽可能少的测试数据发现尽可能多的错误,即发现错误的概率要大。 要选择合适的测试数据,使系统在运行时尽量能执行到每条语句,以测试各指令是否正确。 还应分别测试输入合法数据与非法数据时,程序的运行情况,。 对于合法数据,还要考虑数据的一般性与特殊性,如求添加记录后要不要继续,退出时要不要保存等一些情况。 测试可按模块测试、组装测试和确认测试的步骤进行。 (1)模块测试就是分别对各模块进行测试的过程。 在编写一个模块后应立即对其进行测试,因为这时对模块记忆深刻,而且单个模块相对较小,所以容易构造测试数据,能方便地检查和改正错误。 (2)组装测试就是把所有模块(应该是通过模块测试的模块)按预先制定的计划逐步组装和测试的过程。 一般情况下,各模块之间要相互传递数据和控制信息,因此组装测试的主要任务是发现模块接口中的错误。 (3)确认测试是最后一个步骤,一般在将软件交付用户之前,应确认软件是否确实满足用户的要求,通常使用接近实际的用例进行测试。 测试程序时,用监视窗口可以随时查看变量或表达式的值,有时还可以将部分程序代码用注释符暂时括起来,缩短程序,以便压缩出错代码的范围。 5.2程序测试 主菜单 选择菜单 录入 当用户输入1时并按回车键后,即可录入,其中包括: 编号、姓名、初始金额等功能。 充值 当用户输入2时并按回车键后,即可充值。 它会显示卡的编号、姓名、初始金额、充值金额、当前金额等功能。 查询 当用户输入5时并按回车键后,即可查询,它会显示此卡目前的状态。 其中包括卡的编号、姓名、初始金额等功能。 挂失 当用户输入4时并按回车键后,即可挂失,它会显示此卡的编号以及告诉你挂失成功。 注销 当用户输入3时并按回车键后,即可注销,它会显示此卡的编号以及告诉你注销成功。 退出 当用户输入0时并按回车键后,它即可返回系统。 6、系统维护 经测试与调试确认软件无错时,开发就告一段落,这时可以交付软件供用户使用,但是在软件的使用过程中还会面临更加漫长的工作,即软件维护。 一般维护的工作有: 更改使用中发现的错误;为适应实际环境而对程序进行修改;为满足新的需求而对程序作必要的改进等等。 7、归纳总结 7.1开发经验 通过对本题目的开发,体会到要掌握以下几点内容。 ●大程序的设计风格。 按“自顶向下,逐步细化,模块化”的方法进行程序设计。 ●编写主函数,并进行测试与调试。 当被调函数又需要调用其他函数时,也要遵循逐步细化的原则。 C语言提供丰富的库函数,编程序时要善于使用库函数,避免不必要的劳动。 ●定义函数时,应选好参数的个数和数据类型。 ●文件使用方法。 文件使用完毕后应及时关闭。 7.2实训中遇到的问题及解决方法 在实训过程中,我遇到许多的问题,比如有些语句有语法错误,表达式不正确,或缺少}或;等。 或者是没有宏定义,申明某些变量。 这些都比较容易解决。 通过查阅课本和请教同学,在经过WIN-Tc编译,知道哪有错误就改一下就行。 有些语句的错误要不断的去修改,从而来解决问题。 对于通讯录的大体框架向成熟的作品进行了借鉴,给程序的编写指引了明晰的方向。 通过借鉴别人的框架,自己完成其中内容的编写,从而完成了整个通讯录的编写。 7.3设计中尚存的不足之处 关于这次的程序,也有挺多不足的地方。 首先,我觉得程序还不够完善,比如没有乘车方式。 查询时没有很好的显示,程序现有的功能运行时也会有少些的错误。 最后,本通公交卡不够实用,没有很好的人机互动界面。 7.4感想和心得体会 通过这次实训,我感触甚深,要把所学的理论知识运用于解决实际问题不仅要付出艰辛的劳动,还得要有科学的方法和坚持不懈的努力。 加上我们只是学了一个学期的c语言,我们所学的知识还不足以独立编写程序代码。 但是我认为只要我们认真的去学去做,我们会受益非浅。 这次实训让我进一步理解了“编程是什么”,“如何去编程”,“编程的目的又是什么”,……发现自己的知识竟是如此贫乏,顿时感到了压力的存在,从而也激发了我的学习热情。 它会成为我今后不断进取、永不懈怠的动力。 实训中,上网去查找资料,去寻找类似的程序,从而去不的修改和完善,让其变成自己的东西,让自己去学会里面的东西,还要了解几种函数的应用。 在次过程中,和同学多讨论,把程序中出现的问题解决掉,通过对这次通讯录的编写体会了编写一个最简单程序的过程,知道了一个程序的大体框架对一整个程序的重要性,知道了一个个小的函数如何搭建出一个具有一点功能的程序,也感受到了调试程序的繁琐以及艰辛。 更加深刻理解了结构体以及数组在函数如何表达以及使用,再次温故了几种语句的使用,也体会出了这几种函数的灵活,对于各个函数的使用再次产生出浓烈的兴趣以及好奇之心。 在实训过程中,老师帮我解决了程序中出现的一个小问题,让我的程序更好了点。 同时同学对我的帮助也不少,帮我修改一些东西,如添加时不能退出的问题,名字的输入与查看时不相同等问题。 这使我明白了虚心好学的重要性,更让我懂得了如何跟老师同学去相处、去沟通。 没有老师和同学们的无私帮助,我不可能圆满完成这次实训任务。 非常感谢帮助过我的 老师和同学们,在此,谨向他们一并表示感谢! 我开始喜欢这个程序设计了,尤其觉得它是很有挑战性的,是对知识点扎实程度的考察,也是对个人能力的考察,还是对个人化毅力的考验。 它让我明白做任何事都不应该轻易放弃。 这样的实训,既有利于教学,又可以教会学生书本以外的很多知识。 现在我对它越来越感兴趣,今后我会更加关注C语言程序,把C语言学好。 希望老师以后多多指导,给予一定的帮助! 总之,我觉得入门还是多看些书,多实践,养成良好的编程习惯,在实践的同时多思考问题,多看别人优秀的解题思路与方法,多看别人优秀的代码,尝试自己去实现或者说模仿着去实现,让别人对你的代码多提意见,探究别人的思维过程,增强自己的思维能力,拓展视野,经常看看自己以前写的东西,有空拿出来改良改良,我想每隔一段时间,都会有意想不到的收获。 C语言是这样,其他的同样也是,抓住最最基本的开始入手,不要好高骛远。 8、参考资料 谭浩强.C程序设计(第三版).清华大学出版社,2005 蔡启先C语言程序设计与应用教程。 电子工业出版社,2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 通讯录