您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 2012级计算机专业《C语言程序设计》实践课程第一阶段任务书
12012级计算机专业《C语言程序设计》实践课程第一阶段任务:仿造一个电话簿管理系统,实现一个“商品信息管理系统”(12学时,3次课)一、目的通过仿照理论串讲课上介绍过的《电话簿管理系统》样例来实现一个小型的“商品信息管理系统”,了解用C语言开发一个小型管理系统的方法和步骤,理解利用结构体类型数组以及文件实现信息管理的原理,全面复习和巩固所学过的包括函数、结构体数组、指针、文件等在内的C语言的常用知识点及查找、排序等经典算法,进一步提高程序调试的能力,为第二阶段的实训以及后续课程《数据结构》的学习打下良好的基础。二、对样例系统---“电话簿管理系统”设计方法、步骤的分析和介绍(一)功能需求分析“电话簿管理系统”主要功能是管理学生电话号码等相关信息,要求能实现电话簿记录的添加、删除、修改、查询、排序、输出、保存等功能。主要利用结构体数组、函数、指针和文件来实现。具体功能要求如下:1、输入记录模块:主要完成将数据存入结构体数组中。数据可以从文件中读入,可以直接从键盘输入。2、查询记录模块:主要完成在结构体数组中查找满足相关条件的记录,如可以按照联系人的姓名、联系人的电话号码等项目进行查询,查到了,将相关信息显示在屏幕上,否则显示没找到。3、更新记录模块:主要完成对记录的维护,主要包括对记录的修改、删除、插入和排序。系统进行以上更新操作后,需要提醒用户是否要将这些修改的数据存入文件。4、输出记录模块:1)将相关记录存盘,保存到文件2)将相关记录输出到屏幕上,如:编号姓名电话宿舍1李四13560909999H栋-3332王五18911203325A栋-2018赵六18604545447A栋-110…………(二)总体设计1、系统功能模块划分根据系统功能需求分析,“电话簿管理系统”总体功能模块划分如下:22、功能模块设计⑴主函数main()的执行流程程序运行后,首先打开存放电话簿的文件(如果该文件不存在,则创建该文件),读取文件中的记录,并报告记录的个数;然后显现出如下图所示的系统主菜单:电话簿管理系统输入记录查询记录更新记录输出记录从键盘读入从文件读入按姓名查按电话查修改记录删除记录插入记录排序记录输出至文件输出至屏幕以可读写的方式打开一个数据文件开始读取数据文件的内容存入一个结构体数组中待处理调用menu()显示系统主菜单进入while(1)主循环输入0~8中的一个数,选择相应操作①①输入是否为0判断键值,调用相应函数是否对修改进行了存盘调用save函数将数据写入数据文件结束是是否否3根据用户输入的功能选项编号(0~8),分别调用不同功能模块(通过各个自定义函数)来实现相应的功能。若输入为0~8之外的值,则调用一个Wrong()函数给出输入错误的提示。功能编号与函数调用的对应关系如下:编号调用的函数嵌套调用的主要函数1Add()Disp、stringinput2Disp()printheader、printdata3Del()Disp、stringinput、Locate、Nofind4Qur()stringinput、Locate、printheader、printdata、Nofind、Wrong()5Modify()Disp、stringinput、Locate、Nofind6Insert()Disp、stringinput、Locate、Nofind7SelectSort()Disp、Wrong()8Save()0Save()(当需要保存修改时才调用)非0~8Wrong()⑵各功能模块的设计根据前面给出的各个功能模块的具体要求并结合下面给出的源代码,自行分析各功能模块的工作流程并设计。3、核心数据结构设计电话簿中联系人的基本信息至少应该包括编号、姓名、电话号码、地址等,因此需定义一个能至少包含以上四项信息的结构体。typedefstructtelebook{charnum[4];/*编号*/charname[10];/*姓名*/charphonenum[15];/*电话号码*/charaddress[20];/*住址*/}TELEBOOK;在具体设计时,可以根据需要自行扩展相关字段。4、函数功能描述(略)根据前面给出的具体功能要求,并结合下面给出的源代码进行理解和设计。4(三)电话簿管理系统的代码实现以下给出的是《电话簿管理系统》样例的源代码截图。在全面读懂源代码的基础上,根据后面关于“商品信息管理系统”的功能和要求,设计并实现一个小型商品信息管理系统的基本功能。在此基础上对系统代码进行必要的优化、完善,对功能进行必要的扩充。(注意:用红色标注的是在完成基本功能后,需完善的功能或必须修改的代码)1、预处理命令及相关类型声明代码(为打印表头设置了几个符号常量)2、几个辅助性的函数3、主函数各二级子菜单也仿照此主菜单设计5}}}64、其他主要功能函数改写Disp函数,用指针代替原来的数组形参78修改Qur函数:一旦查询,先显示一个查询子菜单,查询方式可以精确查,也可模糊查910完善修改功能:找到需修改的那条记录后,凡该条记录中不需要修改的字段值,不必重新输入一遍,直接按回车或选择序号进行相应项目的修改1112完善修改功能:(以下方案三选一)1、提供排序子菜单(类似主菜单形式,按”0”返回主菜单),且增加排序方式2、用指针替换函数原来的数组形参13三、“商品信息管理系统”的设计要求1、功能需求及模块划分在原电话簿管理系统的基础上增加一个“统计信息”功能,将统计的结果保存到相应的文件中。具体功能模块划分如下图。商品信息管理系统输入信息查询信息更新信息输出信息从键盘读入从文件读入按名称查按单价查修改记录删除记录插入记录排序记录输出至文件输出至屏幕按数量查统计信息按名称统计按单价统计按数量统计142、系统主菜单商品信息管理系统主菜单3、核心数据结构商品的基本信息至少应该包括商品编号、商品名称、商品单价、商品数量、同一商品总金额等,因此需定义一个能至少包含以上五项信息的结构体。typedefstructcommdity{charnum[10];//商品编号charname[15];//商品名称doubleprice;//商品单价doubleamount;//商品数量doubletotal;//同一商品的总金额(通过单价*数量获得!)}COMMDITY;在具体设计时,可以根据需要自行扩展结构体成员(供多种查询、排序等)。4、设计目标及评价标准⑴参照样例代码实现了“商品信息管理系统”的基本功能,程序能够正确运行(基本分);⑵根据要求,对原样例代码中的不足进行必要的修改调整(加分项);⑶对功能进行适当扩充和完善(提供必要的二级菜单,加分项);⑷操作合理、方便、友好(加分项)⑸对代码熟悉(加分项)主菜单中增加“统计信息”1、要求提供“统计信息”子菜单(功能项参照模块划分),按“0”返回主菜单;2、统计功能对应的函数名统一定义为count(),类型及参数自行设定3、统计的结果要保存到相应的磁盘文件中(可能不止一个文件)
本文标题:2012级计算机专业《C语言程序设计》实践课程第一阶段任务书
链接地址:https://www.777doc.com/doc-4036880 .html