IC饭卡模拟系统课程设计报告_第1页
IC饭卡模拟系统课程设计报告_第2页
IC饭卡模拟系统课程设计报告_第3页
IC饭卡模拟系统课程设计报告_第4页
IC饭卡模拟系统课程设计报告_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘摘要要 通过软件工程课程设计, 锻炼了对整个软件开发过程的能力,能切实体会到 软件工程在实践中的指导作用, 并按软件工程的要求完成规范的各项软件开发文 档,为参加大型软件开发项目打下坚实的理论基础。 IC 饭卡模拟系统是一个完整的企业管理信息系统,由多个模块有机结合而 成,包括增加管理员、增加用户、查询管理员、查询用户、查询用户续费记录、 查询用户消费记录、查余、须费、消费和退出软件模块。本系统能够模拟学校食 堂总管理系统及终端消费系统, 实现学校食堂 IC 饭卡的使用周期内的所有功能。 所本设计是产品管理子系统,说明传统生命周期法在软件开发中的应用,内容包 括:需求分析、概要设计、详细设计、实现与调试分析、测试分析,用户手册, 最后是心得体会。 关键词:关键词:软件工程; 管理系统; 模块;分析设计; 1 目目录录 1. 1.引言引言 . .1 1 2. 2.需求分析需求分析 . .1 1 2.1 系统现状 .1 2.2 用户需求.2 2.3 系统功能需求.2 2.4 数据描述.4 2.4 数据采集5 3 3概要设计概要设计5 5 3.1 总体设计5 3.2 接口设计7 3.3 数据结构设计8 3.4 运行设计9 3.5 出错处理设计9 3.6 安全设计10 3.7 维护设计10 4 4 详细设计详细设计1010 4.1 程序设计说明10 4.2 主要模块内部设计13 5 5 实验于调试分析实验于调试分析2222 5.1 实现环境22 5.2 语言选择22 5.3 调试分析22 6 6 测试分析测试分析2424 6.1 测试用例24 6.2 测试结果24 7 7 用户手册用户手册2727 8 8 总结总结2828 参考文献参考文献2929 1. 1.引言引言 随着生产规模的扩大、自动化技术的应用,以及市场经济体系的培育,使得我 校食堂管理的性质和环境都发生了巨大的变化。食堂的组织机构更加庞大,管理 功能更为复杂,食堂及用户之间的联系越来越紧密,所采用的决策对总体运营的 影响越来越复杂,因而管理决策问题不仅数量多,而且复杂程度高,难度大。管 理信息系统在企业生产、管理中的应用越来越广泛和重要,一套好的管理信息系 统直接影响到企业的生存和发展。IC 饭卡模拟系统,就是针对学校食堂的管理实 际开发的软件系统,以期对食堂的生产、管理等活动进行科学、高效的管理。 IC 饭卡模拟系统是一个完整的管理信息系统,由多个模块有机结合而成,包 括增加管理员、增加用户、查询管理员、查询用户、查询用户续费记录、查询用 户消费记录、查余、须费、消费和退出等软件模块。本说明书介绍的是IC 饭卡模 拟系统中的管理子系统的开发过程。 2. 2.需求分析需求分析 2.12.1 系统现状系统现状 通过对学校食堂进行深入的调查, 我们发现原系统产品管理过程中主要存在以 下几方面的问题。1.由于没有系统化的充值、消费记录,食堂的资金管理很成问 题,由于管理不规范,食堂的的收入和支出与统计值并不一致,非常不易于食糖 的 管理和发展; 2.由于由于没有严格的资金管理规范, 资金出现小额不明的现象, 甚至被充值管理员私自带走的现象发生; 3.没有定期的充值、消费报表,食堂的 运营领导人不能清晰的掌握具体的数据,不利于进一步的决策。这些问题或多或 少地长期存在于食堂的管理过程中,直接影响食堂的效益和正常运行,是管理者 们所面临的棘手问题。随着现代信息技术的发展,传统的管理模式已经不适应现 代管理的实际。必须通过建立现代的信息管理制度,采用现代管理手段参与管理, 才可能通过各种措施降低成本,提高质量,使食堂能够取得进一步的发展。 2.22.2 用户需求用户需求 为了将资金管理纳入规范化、现代化管理的轨道,针对食堂资金管理中存在的 1 问题和管理的实际需要,我们将理顺管理体制、建立各种管理规范与开发信息系 统有机地结合起来。通过建立专门的资金管理系统来实施对食堂进行统一管理, 要求成品管理子系统满足以下几个方面的要求: 1.从根本上理顺食堂管理体系, 明晰管理员操作子系统和终端消费子系统各模 块在系统中的功能; 2.食堂管理要求按照现代管理的要求进行管理,从饭卡的申请建立、正常的消 费使用、必要的充值记录和最终的信息统计要求作到帐帐相符; 4.规范资金管理过程的信息流。根据管理的实际需要规范充值记录和消费记 录。通过资金管理子系统的开发,实现对资金的动态管理,及时提供管理过程中 所需的各种信息。 总之,希望通过系统的开发,解决资金遗失、被盗、成本不实等内部管理中存 在的问题。 2.32.3 系统功能需求系统功能需求 1.待开发软件的功能需求 产成品管理信息系统必须能够完成对公司产成品入库、 出库数据的录入、 更新、 统计、查询、打印等工作,进行高效、准确的管理。产生以下信息: (1)产品须费记录表:随时(定期/不定期)报告饭卡充值情况; (2)产品消费记录表:按要求定期/不定期报告饭卡使用消费情况; 以上二表,满足了食堂资金的笼集和使用等各方面管理的需要。 2.待开发软件的功能 按照用户需求,要满足以上功能,我们设计出了管理系统的结构。见图 1 。 2 图 1 饭卡管理系统层次方框图 结合系统需求,对图 1 所示的系统功能解释如下: 增加管理员:提供增设管理员的功能,在实际利于食堂的人事管理。 增加用户:提供增设用户的功能,在实际使用中即饭卡的办理功能。 查询管理员:提供管理员查询功能,可对管理员的基本信息进行查询。 查询用户:提供用户查询功能,可对用户的基本信息进行查询,实际中可用于 对挂失时的信息核对过程。 查询用户须费记录: 提供即时生成须费记录报表的功能, 可供管理者随时查阅。 查询用户消费记录: 提供即时生成消费记录报表的功能, 可供管理者随时查阅。 查余:提供给用户的查询余额的功能。 须费:提供给用户的饭卡充值功能,用户通过管理员将实际的钱币充值到系统 的记录中,以便正常的使用。 消费:提供饭卡的最基本的正常消费使用功能,用户通过扣除记录中的数额购 买饭菜。 退出:提供系统的正常使用功能。 同时,通过分析,我们给出了饭卡管理系统的顶层数据流图。见图 2。 使用请求 用户 反馈信息 管理请求 管理员 反馈信息 记录数据 处理 记录 报表 打印机 图 2 饭卡管理系统顶层数据流图 2.42.4 数据描述数据描述 1.静态数据及其数据字典 待开发软件的功能已经用层次方框图和顶层数据流图表示出来了, 其中涉及到 的静态数据及其数据字典如下: 表 1 用户须费记录(或产成品临时入库单) 字段名中文描述类型长度是否可以为空是否作为主键 3 CP-01 CP-02 CP-03 CP-04 CP-05 账号 姓名 余额 时间 须费金额 D C C C D 8 6 4 2 5 N N N N N Primary key 表 2 用户消费记录(或产成品临时出库单) 字段名 CP-01 CP-02 CP-03 CP-04 CP-05 CP-06 中文描述 账号 姓名 余额 时间 消费金额 等级 类型 D C C C C C 长度 8 6 8 2 5 1 是否可以为空 N N N N N N 是否作为主键 Primary key 2.动态数据 输入数据:菜单命令、查询条件、统计条件、记录等。 输出数据:查询结果、统计结果、生成报表等。 内部数据:操作所产生的中间数据。 2.52.5 数据采集数据采集 通过键盘向软件系统输入数据。 3 3概要设计概要设计 本软件将辅助管理人员完成全食堂产成品须费、消费等方面的管理,可以进行 查询、打印报表等工作,提高食堂对资金的管理效率。在分析阶段,我们已经提 出了系统的结构、顶层数据流图和数据字典。本节我们将对系统的硬件环境作简 要介绍,并对待开发系统作概要设计。 3.13.1 总体设计总体设计 1.处理流程 (1)系统启动。 (2)初始化系统,读入记录。 4 (3)进入消息循环状态,通过事件驱动激活各模块,执行各任务。 (4)一任务执行完毕后重新进入消息循环状态。 (5)通过事件驱动退出系统。 2.系统总体结构和模块设计。 通过以上分析,我们进一步设计出了产成品管理系统的总体结构模块图(见图 3) 。 数 据 添 加 ( ) 启动系统(M10) 初始化(M1) 消息循环 重新启动 非正常退出(M2) 数 据 查 询 ( M5 查 询 统 计 ( M6 打 印 报 表 ( M7 消 费 管 理 ( M8 须 费 管 理 ( M9 查 余 ( M11 退 出 ( M2 ) 各模块设计如下: 模块编号 M1 M2 M3 M4.1 M4.2 M5.1 M5.2 M6 M7.1 M7.2 M8 M9 M10 M11 表 3 系统模块结构表 模块名称 初始化模块 关闭系统模块 系统功能模块 管理员数据添加模块 用户数据添加模块 管理员数据查询模块 用户数据查询模块 数据情况统计模块 用户须费报表打印模块 用户消费报表打印模块 消费管理模块 须费管理模块 系统启动模块 用户查余模块 各模块功能分配如下: 5 M4 ) 正 常 退 出 图 3系统总体结构图 (1) 系统控制功能: 初始化模块 (M1) 、 关闭系统模块 (M2) 、 系统功能模块 (M3) 。 (2) 数据维护功能:管理员数据添加模块(M4.1) 、出用户数据添加模块 (M4.2) 、消费管理模块(M8) 、须费管理模块(M9) 、用户查余模块(M11) 。 (3) 查询统计功能: 管理员数据查询模块 (M5.1) 、 用户数据查询模块 (M6.2) 。 (5) 打印功能: 用户须费报表打印模块 (M7.1) 、 用户消费报表打印模块 (M7.2) 。 (6)数据情况统计功能:数据情况统计模块(M6) 。 3程序流图: 程序入口 操作界面 管理员入口 管理员/用户入口/ 退出 退出程序 添加添加/查询查询 用户 添加管理员/用户 管理员用户 基本信息 查询基本信息/记 录报表 记录报表 输入工号/姓名输入账号/姓名 查询管理员/用户 基本信息 管理员用户 须费 查询须费/消费记 录报表 消费 显示所有管理员信 息 显示所有用户信息显示须费记录报表显示消费记录报表 查余查余/须费/消费 消费 须费 输入账号、须费金 额 输入账号、消费金 额 输入账号 显示余额 图 4 :程序流图 6 3.23.2 接口设计接口设计 1.外部接口 (1) 用户界面 采用控制台窗口界面。 (2) 软件接口 软件运行于 windows 操作系统上。 (3) 硬件接口 运行于 IBM PC386 及兼容机以上。 2.内部接口 (1) 初始化模块(M1) :系统初始时由操作系统调用,之后进入消息循环状态。 (2) 关闭系统模块(M2) :由系统功能模块调用,之后退出系统。 (3) 系统功能模块(M3) :接受各事件驱动消息,启动管理员数据添加模块、用户 数据添加模块、消费管理模块、须费管理模块、用户查余模块等模块。 (4) 管理员数据添加模块(M4.1) :由相应事件驱动消息激活,完成添加管理 员基本信息功能,之后进入消息循环状态。 (5) 用户数据添加模块(M4.2) :由相应事件驱动消息激活,完成添加用户基 本信息功能,之后进入消息循环状态。 (6) 管理员数据查询模块(M5.1) :由相应事件驱动消息激活,完成管理员基 本信息查询功能,之后进入消息循环状态。 (7) 用户数据查询模块(M5.2) :由相应事件驱动消息激活,完成用户基本信 息查询功能,之后进入消息循环状态。 (8) 数据情况统计模块(M6) :由相应事件驱动消息激活,完成查询统计入库 情况功能,之后进入消息循环状态。 (9) 用户须费报表打印模块(M7.1) :由相应事件驱动消息激活,完成打印 用户须费情况记录功能,之后进入消息循环状态。 (10) 用户消费报表打印模块(M7.2) :由相应事件驱动消息激活,完成打印 用户消费情况记录功能,之后进入消息循环状态。 (11) 消费管理模块(M8) :由相应事件驱动消息激活,完成消费管理功能, 之后进入消息循环状态。 (12) 须费管理模块(M9) :由系统功能模块调用,完成须费管理功能。 (13) 系统启动模块(M10) :由初始化模块调用。 (14) 用户查余模块(M11) :由相应事件驱动消息激活,完成用户查余功能, 之后进入消息循环状态。 3.33.3 数据结构设计数据结构设计 1.逻辑结构设计 7 在重新设计了用户消费/须费情况记录单,并对两单的结构、所用数据类型、 总长、数长、显长等方面进行全面的分析后,我们设计出了系统所用到的数据库 的数据字典如下。 表 4 用户消费情况记录单(或产成品临时入库单)数据字典 字段名 CP-01 CP-02 CP-03 CP-04 CP-05 表 5 产成品出库单(或产成品临时出库单)数据字典 字段名 CP-01 CP-02 CP-03 CP-04 CP-05 中文描述 账号 姓名 余额 时间 消费金额 类型 D C C C C 长度 8 6 8 2 5 是否可以为空 N N N N N 是否作为主键 Primary key 中文描述 账号 姓名 余额 时间 须费金额 类型 D C C C D 长度 8 6 4 2 5 是否可以为空 N N N N N 是否作为主键 Primary key 2.物理结构设计 数据库中各表的文件物理结构采用顺序的记录文件。 3.43.4 运行设计运行设计 1.运行模块的命名 模块命名为 Mx.y,x 相同则为同一功能的模块。 2.运行模块控制 (1) 操作系统启动 M1。 (2) M1 启动 M10。 (3) M10 启动 M3。 (4) 进入消息驱动状态,M3 通过事件驱动启动相应的功能模块,包括 M9 和 M11。 (5) 在消息驱动状态下,M3 通过事件驱动启动 M2,退出系统。 3.运行模块时间响应 8 各模块运行时间控制在 1 至 2 秒内。 3.53.5 出错处理设计出错处理设计 1.系统应具有相当健壮性,避免或降低由系统错误所造成的数据库损坏。 2.对关键性操作,如查询失败等提供警告和确认机制。 3.63.6 安全设计安全设计 系统提供严格的管理员身份验证机制, 在每个时间段的事物的记录都有相应的 记载,做到专人定时管理。 3.73.7 维护设计维护设计 系统严格按照设计规范进行设计,并保持各阶段文档的完整性,为以后对软件 的维护打好基础。 4 4 详细设计详细设计 在以上工作的基础上, 我们对有输出要求的全部数据进行属性分析、 存储分析、 关联分析、查询统计分析、数据分类与处理功能分析,进一步研究了整个系统的 人机接口,提出了系统细化后的数据流图和系统的层次方框图。见图 5、图 6。 4.14.1 程序设计说明程序设计说明 1.模块描述 (1)系统详细功能模块如图 7、图 8。 (2)模块设计如下: 表 6 产成品库存数据数据字典 模块编号 M1 M2 M3 M4.1 M4.2 9 模块名称 初始化模块 关闭系统模块 系统功能模块 管理员数据添加模块 用户数据添加模块 M5.1 M5.2 M6 M7.1 M7.2 M8 M9 M10 M11 管理员数据查询模块 用户数据查询模块 数据情况统计模块 用户须费报表打印模块 用户消费报表打印模块 消费管理模块 须费管理模块 系统启动模块 用户查余模块 (3)功能分配: (1) 初始化模块(M1) :系统初始时由操作系统调用,之后进入消息循环状态。 (2) 关闭系统模块(M2) :由系统功能模块调用,之后退出系统。 (3) 系统功能模块(M3) :接受各事件驱动消息,启动管理员数据添加模块、用户 数据添加模块、消费管理模块、须费管理模块、用户查余模块等模块。 (4) 管理员数据添加模块(M4.1) :由相应事件驱动消息激活,完成添加管理 员基本信息功能,之后进入消息循环状态。 (5) 用户数据添加模块(M4.2) :由相应事件驱动消息激活,完成添加用户基 本信息功能,之后进入消息循环状态。 (6) 管理员数据查询模块(M5.1) :由相应事件驱动消息激活,完成管理员基 本信息查询功能,之后进入消息循环状态。 (7) 用户数据查询模块(M5.2) :由相应事件驱动消息激活,完成用户基本信 息查询功能,之后进入消息循环状态。 (8) 数据情况统计模块(M6) :由相应事件驱动消息激活,完成查询统计入库 情况功能,之后进入消息循环状态。 (9) 用户须费报表打印模块(M7.1) :由相应事件驱动消息激活,完成打印 用户须费情况记录功能,之后进入消息循环状态。 (10) 用户消费报表打印模块(M7.2) :由相应事件驱动消息激活,完成打印 用户消费情况记录功能,之后进入消息循环状态。 (11) 消费管理模块(M8) :由相应事件驱动消息激活,完成消费管理功能, 之后进入消息循环状态。 (12) 须费管理模块(M9) :由系统功能模块调用,完成须费管理功能。 (13) 系统启动模块(M10) :由初始化模块调用。 (14) 用户查余模块(M11) :由相应事件驱动消息激活,完成用户查余功能, 之后进入消息循环状态。 10 管理员 请求反馈 进入系统 操作功能 功能选择 选择 选择选择 添加信息查询信息选择消费/须费 选择选择输入 添加管理员/用户信查询管理员/用户信 息息 查询须费/消费记录输入账号、金额 输入输入 存储 输入要添加的信息输入要查询的信息显示信息显示记录信息 存储 调用 显示显示 管理员/用户信息文 档 须费/消费记录文档 图 5 :细化后的 IC 饭卡模拟系统数据流图 11 用户 请求反馈 进入系统 操作功能 功能选择 选择 查余 输入 输入账号 显示 显示余额信息 4.24.2 主要模块内部设计主要模块内部设计 4.2.1 模块 M3 设计 模块 M3 的设计主要是实现饭卡信息管理的基本功能, 包括对管理员和用户的基本信息的查 询以及用户的消费与须费功能。通过对每个功能模块化设计,方便实现整个系统的管理。 4.2.1.1 模块算法 (1)对管理员和用户的基本信息的添加 class user *user:creat1(void)/构建链表及用户信息的添加 class user *head1; class user *p1,*p2; int n,bal=100; time_t it; struct tm *st; n=0; int m,b,h; ifstream calfile(d:rjgccalculate.txt,ios:in); if(!calfile) system(cls);/清屏 coutnnnnnnnnnttttOpen for read error!m; calfileb; calfileh; calfile.close(); system(cls);/清屏 p1=p2=(class user *)malloc(LEN2); coutp1-no1; coutp1-name1; p1-balance=bal; time( st=localtime( 12 p1-year1=1900+st-tm_year; p1-mon1=1+st-tm_mon; p1-day1=st-tm_mday; p1-hour1=st-tm_hour; head1=NULL; while(p1-no1!=0) n=n+1; if(n=1) head1=p1; else p2-next=p1; p2=p1; p2-next=0; p1=(class user *)malloc(LEN2); coutp1-no1; if(p1-no1=0) goto hg;/如果输入为 0,就不再输入个后面的了 p1-min1=st-tm_min; p1-sec1=st-tm_sec; h+; coutp1-name1; p1-balance=bal; time( st=localtime( p1-year1=1900+st-tm_year; p1-mon1=1+st-tm_mon; p1-day1=st-tm_mday; p1-hour1=st-tm_hour; p1-min1=st-tm_min; p1-sec1=st-tm_sec; h+; hg: p2-next=NULL; ofstream callfile(d:rjgccalculate.txt,ios:trunc); 13 if(!callfile) system(cls);/清屏 coutnnnnnnnnnttttOpen for write error!endl; getch(); exit(1); callfilem ; callfileb ; callfileh ; callfile.close(); void admin:add1(class admin *head)/增加管理员到链表里, 做成系统后可调用 store 把新信息 存入文件 class admin *p0,*p1; system(cls);/清屏 p0=(class admin *)malloc(LEN1); coutp0-no; coutp0-name; p1=head; while(p1-next!=NULL) p1=p1-next; return(head1); p1-next=p0; p0-next=NULL; void admin:store(class admin *head)/把链表内容存入到文件里 class admin *p; ofstream jhfile(d:rjgcadmin.txt,ios:trunc); if(!jhfile) system(cls);/清屏 coutnnnnnnnnnttttOpen for write error!endl; getch(); exit(1); p=head; do 14 jhfileno ; jhfilenamenext; while(p!=NULL); jhfile0; jhfile.close(); (2)对管理员和用户基本信息的查询 void admin:display1(class admin *head)/显示链表管理员信息 class admin *p1; p1=head; while(p1) cout管理员的工号:noendl; cout管理员的姓名:nameendl; void admin:display11()/显示文件里内容 int num; char nam20; system(cls);/清屏 ifstream jhfile(d:rjgcadmin.txt,ios:in); if(!jhfile) system(cls);/清屏 coutnnnnnnnnnttttOpen for read error!num; if(num=0) goto dsd; jhfilenam; coutnnttt工号:num; cout姓名:namendl; 15 while(num!=NULL); dsd: jhfile.close(); getch(); (3)用户的消费和须费 void user:addmoney(class user *head1)/用户须费函数,执行完此函数后再调用store_balance 函数,更新余额 class user *p,*p1; int number,bal,k=0,m,n,h; time_t it; struct tm *st; system(cls);/清屏 coutnumber; p=head1; do if(p-no1=number) coutbal; p-balance=p-balance+bal; p1=p; k=1; p=p-next; while(p!=NULL); if(k=0) system(cls);/清屏 coutnnnnnnnnntttt对不起!该用户不存在!endl; getch(); exit(1); ifstream calfile(d:rjgccalculate.txt,ios:in); if(!calfile) system(cls);/清屏 coutnnnnnnnnnttttOpen for read error!m; 16 calfilen; calfileh; calfile.close(); m=m+1;/用于指导读记录须费的文件 ofstream usaddfile(d:rjgcuseraddmoney.txt,ios:app); if(!usaddfile) system(cls);/清屏 coutnnnnnnnnnttttOpen for write error!tm_year; p1-mon1=1+st-tm_mon; p1-day1=st-tm_mday; p1-hour1=st-tm_hour; p1-min1=st-tm_min; p1-sec1=st-tm_sec; usaddfileno1 ; usaddfilename1 ; usaddfilebalance ; usaddfileyear1 ; usaddfilemon1 ; usaddfileday1 ; usaddfilehour1 ; usaddfilemin1 ; usaddfilesec1 ; usaddfilebal ;/只是记录须费的金额和时间 usaddfile.close(); ofstream callfile(d:rjgccalculate.txt,ios:trunc); if(!callfile) system(cls);/清屏 coutnnnnnnnnnttttOpen for write error!endl; getch(); exit(1); callfilem ; 17 callfilen ; callfileh ; callfile.close(); void user:spend(class user *head1)/用户消费函数, 执行完此函数后再调用store_balance函数, 更新余额 class user *p,*p1; int number,bal,k=0,m,n,h; time_t it; struct tm *st; system(cls);/清屏 coutnumber; p=head1; do if(p-no1=number) coutbal; p-balance=p-balance-bal; p1=p; k=1; p=p-next; while(p!=NULL); if(k=0) system(cls);/清屏 coutnnnnnnnnntttt对不起!该用户不存在!endl; getch(); exit(1); ifstream calfile(d:rjgccalculate.txt,ios:in); if(!calfile) system(cls);/清屏 coutnnnnnnnnnttttOpen for read error!m; calfilen; calfileh; calfile.close(); 18 n=n+1;/用于指导读记录消费的文件 ofstream usspendfile(d:rjgcuserspendmoney.txt,ios:app); if(!usspendfile) system(cls);/清屏 coutnnnnnnnnnttttOpen for write error!tm_year; p1-mon1=1+st-tm_mon; p1-day1=st-tm_mday; p1-hour1=st-tm_hour; p1-min1=st-tm_min; p1-sec1=st-tm_sec; usspendfileno1 ; usspendfilename1 ; usspendfilebalance ; usspendfileyear1 ; usspendfilemon1 ; usspendfileday1 ; usspendfilehour1 ; usspendfilemin1 ; usspendfilesec1 ; usspendfilebal ;/只是记录消费的金额和时间 usspendfile.close(); ofstream callfile(d:rjgccalculate.txt,ios:trunc); if(!callfile) system(cls);/清屏 coutnnnnnnnnnttttOpen for write error!endl; getch(); exit(1); callfilem ; callfilen ; callfileh ; callfile.close(); 19 void user:store_balance(class user *head1) class user *p; ofstream usfile(d:rjgcuserbalance.txt,ios:trunc); if(!usfile) system(cls);/清屏 coutnnnnnnnnnttttOpen for write error!endl; getch(); exit(1); p=head1; do usfileno1 ; usfilename1 ; usfilebalancenext; while(p!=NULL); usfile0; usfile.close(); 20 5 5实现与调试分析实现与调试分析 5.15.1实现环境实现环境 以 Microsoft VC+6.0 为平台编写代码 用 txt 文档存储/提取信息和记录报表 5.25.2语言选择语言选择 计算机高级编译语言:C+ 5.35.3调试分析调试分析 程序总体运转良好,不过因为涉及到文本文件的读写,路径的确定与程序的正常运 行直接相关,因而程序在运行时可能会经常遇见下图问题: 图 6 :程序运行出错图 经过单步调试分析,可以清楚的看见文件存放的位置: ifstream jhfile(d:rjgcadmin.txt,ios:in); 21 if(!jhfile) system(cls);/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论