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