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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言计费系统报告.docx

1、C语言计费系统报告学号 0121510880212 计算机基础与综合编程实验报告学 院计算机科学与技术学院专 业计算机类班 级m1502班姓 名韩龙指导教师张蕊日期 2016-4-25 1. 实验目的-12. 系统功能描述-1添加卡信息-1查询卡信息-2上机操作-2下机操作-2充值操作-3退费操作-3注销卡操作-43典型算法分析-44.开发难点与体会-75.实验总结-81 实验目的了解迭代式软件开发的一般过程,领会需求分析、系统设计、系统实现以及系统测试等阶段的任务要点;深入理解和熟练应用C/C+语言的基本概念和基本原理,如数据类型、顺序选择和循环结构程序设计、函数等;熟练理解和掌握C/C+语

2、言的高级知识,如字符串、结构体、文件读写、动态内存管理、链表等技术;熟练掌握在C/C+语言环境下,模块化开发的具体实现方法,深入领会和分析一些C/C+程序设计实用开发方法和技术;综合应用所学知识去分析需求,能够把所学的C/C+语言技术应用到具体的实践中去,并迭代式开发出一个软件系统,从而培养学生分析和解决问题的能力。通过迭代式开发,深入掌握C语言的文件、链表、结构体、动态内存管等技术,开发实现一个计费管理软件。2 系统功能与描述实验流程:1.添加卡与查询卡的操作添加卡信息。在数据结构的基础上进行迭代开发,添加一张新卡,将卡信息保存到结构体变量中。卡信息包括:卡号、密码、开卡金额、卡状态、开卡时

3、间、截止时间、最后使用时间、使用次数、累积金额。在输入后程序自动显示本次添加的卡信息内容。查询卡信息:精确查询,要求输入正确格式的卡号,若不存在输入的卡号则提示用户无此卡,若存在卡号,则输出此卡的信息。若找到相对应符合条件的卡,则按照结构所存储的内容输出卡信息。:模糊查询,要求输入卡号的关键字符串,若存在包含此关键字符串,则输出这些卡的信息。不存在则提示用户。2.上机:提示用户输入正确格式的上机的卡号及密码,若不存在此卡,则提示用户卡号不存在,若存在,则判断卡的状态,若未上机状态则提示上机成功,更新上机信息,否则提示卡的状态以及上机失败。同时程序更改卡的状态,记录下当前上机时间保存在链表中。3

4、.下机:提示用户输入正确格式的下机的卡号及密码,若不存在此卡,则提示卡号不存在,若存在,则判断卡的状态,若上机状态则提示下机成功,更新下机信息,否则提示卡的状态及下机失败。同时把上下机的时间,和扣除消费金额的余额输出。4.充值:提示用户输入正确格式的充值的卡号及密码和充值金额,若不存在此卡,则提示用户卡号不存在,若存在,则判断卡的状态,若已注销或失效则提示已注销或失效及充值失败,否则更新卡余额,提示用户充值成功,输出充值信息。同时程序更改卡的余额,以原来的金额加上充值金额,保存在链表中。6.退费:提示用户输入正确格式的退费的卡号及密码和退费金额,若不存在此卡,则提示用户卡号不存在,若存在,则判

5、断卡的状态,若已注销或失效则提示已注销或失效及退费失败,否则判断卡余额,若余额大于退费金额,则更新卡余额,提示用户退费成功,否则提示用户余额不足。7.注销卡信息:提示用户输入正确的要注销的卡号以及密码,若不存在此卡,则提示用户卡号不存在,若存在,则判断卡的状态,并提示用户注销成功。8.自己添加的部分特色功能:(1)按使用次数排序(2)充值送费3 典型算法分析(完整源代码请见光盘)(1)搭建程序框架在主界面功能的基础上进行迭代开发。 程序按照三层结构进行构建:表示层、逻辑层、存储层。 编写相应预处理指令:文件包含、条件编译以及宏定义。#include #include #include menu

6、.h#include data.h#include card_file.h#define _CRT_SECURE_NO_WARNINGint main(void) int num_selection = -1; printf(您好,欢迎进入计费管理系统n); printf(n); go on然后通过分解与重组,将程序分为几个模块,方便以后查看,修改,完善以及维 接下来是宏定义部分#ifndef MENU_H#define MENU_Hvoid outputMenu();void add(); /添加卡操作void query(); /查询卡操作void logon(); /上机操作void l

7、ogoff(); /下机操作void addMoney(); /充值操作void refundMoney(); /退费操作/void queryStatistics(); /查询统计操作void annul(); /注销卡操作void exitApp(); /退出通过使用宏定义,可以有效防止程序过于繁杂,也能够使同一个语句能够在多次使用时不需要重复编写,从而不影响整个程序的运行,减少了工作量,提高了效率。(2)文件的处理直接到卡文件中查找卡,通过循环读取卡,当卡的卡号正确时返回1,否则返回0tips:fseek(fp,sizeof(Card)-sizeof(aName),1); /将位置指针移

8、到下一个结构代码部分:int isExist(const char* pName, const char* pPath) FILE* fp = NULL; char aName18=0; /保存读取的卡号信息 if(fp=fopen(pPath,rb)=NULL) printf(The function of isExsit cant open file!n); exit(-1); while(!feof(fp) if(fread(aName,sizeof(aName),1,fp)=1) if(strcmp(aName,pName)=0) fclose(fp); return 1; else

9、fseek(fp,sizeof(Card)-sizeof(aName),1); /将位置指针移到下一个结构体 fclose(fp); return 0;关闭文件用fclose函数,可以使文件指针变量不再指向该文件,及时关闭文件,可以防止误操作(3)创建链表用来添加,查询卡信息,将链表中的数据保存到文件中部分代码:int addCard(Card card)/复制新添加的卡信息到链表 lpCardNode cur=NULL; if(cardList=NULL) initCardList(); /将卡信息添加到当前位置 cur = (lpCardNode)malloc(sizeof(CardNod

10、e); if(cur!=NULL) cur-data =card; cur-next =NULL; while(cardList-next!=NULL)/提高循环在链表找到最后一个结点 cardList=cardList-next; cardList-next=cur; return TRUE; return FALSE; 一:从文件中读取信息(1)用一个指针p指向链表的头结点(2)判断读取是否有错误,如果没有执行下一步,否则提示错误(3)while(!feof (fp)(4)判断需要的值,如果是则执行4,如果不是则执行5(5)再次判断是否读出,如果满足则输出或者返回,如果不满足则提示用户(6

11、)p指向下一个节点(7)关闭文件第二:更新文件中的信息(1)创建文件指针,(2)while(!feof (fp)(3)判断fread(&card,sizeof(Card),1,fp)是否为空,如果是,获取文件位置,如果不是,继续循环。(4)指针移到标记的位置(5)更新卡中的信息(6)输出更新的信息(7)关闭文件第三:将数据保存到文件中去(1)创建文件指针(2)判断文件打开是否有错误,如果有,提示用户,如果没有,则执行下一步(3)每一一个card的长度的向文件中输入数据。(4)关闭文件(5)结束第四:获取当地的时间(虽然不是很难但是用的很多很典型)(1)用某某等于time(NULL)来获取当地的

12、时间(2)编写tinetostring函数将time的类型转化为%Y-%m-%d %H:%M的类型(3)以字符串的类型输出 4 开发难点与体会刚开始的时候自己连VS2010都不会用,以前一直用的是DEVC+,然后边开始在XX上面不断搜索怎样使用VS2010,慢慢地终于知道并开始熟悉VS2010的环境,也知道了如何创建文件,以前都只是写点小程序,还没写过这么大的程序,开始挺高兴的,但是当真正去做的时候,却茫然不知所措,不断地看书与实践。这次实验比上学期难的多,并且要求各个方面知识都要学好,但是上学期没有认真听讲,导致落下很多,所以只能一点点去充实自己。第一次实验并不是特别难,但是不知道怎么创建文

13、件,最后在软酷上看学习资料慢慢会了。添加卡和查询卡要用文件和数组知识。但是自己这方面并没有掌握的很好。所以只能一边写,遇到不会的再问老师和同学,就这样最终还是成功了。然后是对链表的单独操作,链表是我最头痛的地方,关键是一点都不会,然后又把上学期的书翻出来好好地补习了一下。最后还是完成任务了。到后来越来越难,但是有了前面的铺垫,自己慢慢地得心应手,所以遇到困难也不怕,能够一一克服,通过我们的导师张蕊老师和寝室的大神韩飞翔,好多问题都得到了解决。通过这次实验,我学习到了如何将卡信息保存到文本文件,如何读取文件,掌握了FILE类型结构体,并且知道了如何打开文件以及读取数据以及关闭文件,等等好多以前不

14、知道的知识。有一下一些难点:链表的形式:插入操作:在链表中查找节点:我们这次计费管理系统分三步.一是对要写成的计费管理系统做全面的分析,即对计费管理系统要使用的编写方法,管理功用,运行方式进行分析,并作出明确的解决方案.针对这次的计费管理系统,它的流程是:以管理员和用户方式进入,要有密码认证.实现添加、查询、上机、下机、充值、退费、查询统计、注销等功能。二是程序的编写.由于计费管理系统的功能十分強大,程序的编写也十分的复杂,所以我们花了两个多月,每个星期完成一部分程序.程序的编写是一项困难的任务,完成此程序必需运用书中的大部分知识,而且要有清晰的思路,有较強的语言组织能力.由于每个星期完成一部

15、分,所以程序能衔接得十分完整,所以每个星期编写程序的基础上考虑以前的程序结构.编写程序就是一项十分困难的事,所以一定要细心,不能有一丝的马虎,否则会前功尽弃.三是程序的检查和系统的调用.程序写完后并不能保证它一定能运行,所以要对它进行调试,发现其中的弊端,并作出相应的修改,以完善程序,使其逻辑性,运算能力都符合题目要求,使计费管理系统的运行能力达到课程的目的。5 实验总结实验框架:本次实验难度较大,需要考察学生的多方面能力:对基础编程知识的掌握,在开始阶段,大部分的代码都是利用我们的已有知识进行实验,通过实验让我们对知识的掌握更加熟练对整个系统的功能以及实现的认识,在后期的实验中,我们不断的向

16、初始工程中添加代码,这时由于工程变大,我们就需要了解到整个工程的各个部分,以便我们的工程能够有效快速的进行。对新知识的吸收能力。在工程进行的过程中,我们将会遇到许多我们现有知识无法解决的问题,这就需要我们通过各种方法来解决,如上网查阅资料,向老师提问等。对实验中发现的问题要有耐心去解决它,只有通过一次又一次的错误,并从中吸取经验,我们才能让自己做的更好。这次实验让我们知道了如何使用函数,链表和文件的操作。也让我们对我们所学的有了更加一步的了解,也终于有了学以致用的感觉,虽然自己写的程序并不完美无瑕,可以说丑陋无比,但是我相信以后会越来越优化与美好。更加重要的是我们知道了什么叫迭代,它对于我们来

17、说不再难以理解,而是深入我们的内心。但是我觉得这次实验也有许多与实际生活不符的地方,如输密码的时候不能隐藏,可能会造成信息的泄露。经过两个多月的课程实训,完成了对计费管理系统代码的设计,收获颇多。也明白了自己在C语言上存在的一些问题,尤其在用C语言编程方面存在的缺点与不足。经过课程实训使我明白做一个完整的系统要用到我们学到的很多方面的知识,一个完整的系统包含的C语言知识很多,要有好强的综合运用能力才能开发一个完整的系统。在程序操作过程中要有耐心,更要细心。同时,也体会到学软件专业要有好强的动手能力,而实训操作完成小系统锻炼了我的动手能力,今后,在动手操作方面要加强,毕竟熟能生巧,练多了才能提高

18、自己的编写程序的能力。毕竟,对于软件专业的初学者来说,起初的编程还属于经验编程,靠自己的学习及动手操作获得经验,以便为今后开发出新的程序打下基础。通过这次实验,学到了很多,也坚定了我学习计算机的决心,我相信以后会越做越好的。通过这次课程设计,我把书本的理论和实践联系起来,有利于巩固所学理我感觉收益匪浅,同时也为我以后走向工作岗位打下一个初步的基础。尽管时间有限,我们做的设计不是很完善,但是仍然给了我很多启示。在这次课程设计中,我觉得组员之间的合作很重要,组员之间的沟通能够给我带来很多帮助,我自己的想法是很多局限性,通过讨论可以完善我的设计,也让我的书本上的理论有了新的理解。通过这次实训,增加了

19、我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语言这门课程开始,已发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。 这次实训是老师给了范例程序,经过自己的改写,实现要求。先做简单的输出,一步步的再做其它复制部分,在实际操作过程中犯的一些错误还会有意外的收获,感觉实训很有意思。在具体操作中对上学期所学的C语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。 通过实

20、际操作,学会 C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,“不耻下问”的寓意。 计时在此希望以后应多进行这样的实训,加长设间,培养学生独立思考问题的能力,提高实际操作水平。 计算机基础与综合编程实验成绩评定表班级:m1502 姓名:韩龙 学号:0121510880212序号评分项目满分实得1学习态度认真、遵守纪律102迭代开发进度合理,提交结果正确403代码规范、注释清晰、可读性好104软件功能完善、运行正确205验收情况良好106报告规范、描述清晰准确10总得分评语:指导教师签名: 2016 年4月29日

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

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