C语言程序设计综合训练(3题)[2024-03-20]
总体设计目标和要求
1. 课程概述
本课程是继 C 语言程序设计后开设的一门实训课程。通过综合型和研究型两个层次的实验提高学生的主动性和动手实践能力,激发学生的学习兴趣。要求学生综合运用程序设计的基础知识来分析、解决实践问题,培养学生综合运用所学理论知识求解问题的能力。
2. 课程要求
本课程解决复杂工程问题实践能力的基础支撑。本课程通过项目实践,训练学生抽象问题能力,培养学生运用面向过程的程序设计语言开发复杂软件系统的能力。
3. 设计目标
通过布置具有一定难度、一定编程量的 C 语言综合性实验设计题目,进一步加深、巩固学生所学专业课程《高级语言程序设计》的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决实际问题的能力。掌握运用 C语言独立地编写、调试应用程序和进行其它相关设计的技能,充分发挥广大同学的潜力,使他们通过本次综合性实验设计而得到全面的锻炼。
4. 报告要求
1)要求学生通过查阅参考资料、手册,自学实验设计还需要掌握的相关知识,通过独立思考深入钻研有关问题,学会自己分析和解决问题;
2)要求学生通过对所选题目进行分析比较,确立方案,编制程序与调试程序,掌握 C 语言综合性实验设计的方法;
3)要求学生能熟练调试程序,在教师的指导下,完成综合性实验设计任务;
4)根据个人的程序设计过程,撰写实验报告。实验报告要求包括如下内容:
① 实验内容
实验名称、目的与要求。
② 算法说明
用文字或流程图说明程序的主要函数功能、主要数据含义。
浙江师范大学数理与信息工程学院―《程序设计综合训练》课程设计实验指导书
③ 有详尽注释的程序清单
④ 运行结果
包括测试数据、相应的运行结果和必要的说明。
⑤ 分析与思考
调试过程及调试中遇到的问题及解决办法;调试程序的心得与体会;若最终未完成调试,则要认真找出错误并分析原因等。
5. 参考题目
请学生根据自己的实际情况在以下给定的参考题目中选择要求个数的题目进行设计,除此之外,学生也可自行选择经指导教师审题的所感兴趣的课题进行设计,对于大型项目可进行团队开发,但应制定详细的项目分工说明。学生应按所选课题的具体要求完成设计,一般要求程序运行后用户界面要友好,操作要简单,并写出实验报告。有能力的学生可以综合运用链表、指针、文件、结构体、动态分配空间开发一个小型数据库管理程序,在内存中用链表记录,在硬盘上用文件保存,实现能够以菜单形式增加、删除、修改和查询数据库的内容。
1)公交线路管理系统;
2)移动客服信息系统
3)炫彩界面版 ATM 自动取款机
源码联系UP主 -> https://space.bilibili.com/329101171
综合项目一 公交线路管理系统
-
项目说明
随着公交公司业务量逐渐扩大,迫切需要提高工作效率,减轻工作人员的工作量。
本项目通过对 C 语言中数组、结构体,链表,文件处理等技术的应用,实现公交管理
系统的业务功能,使相关重要数据信息,保存于文件中。 -
项目要求
(一)程序运行时,首先显示主菜单如下:
1.显示全部站点信息
2.新增公交站点
3.修改公交站点
4.新增公交线路
5.调整公交线路
6. 查询公交线路
7.退出
屏幕提示:请输入序号选择相应操作。
要求当用户输入任一序号后,程序都能进行相应操作。
(二)菜单界面管理:
显示项目的功能菜单,提供用户选择。
(a)界面信息显示
(b)采取循环结构,重复接受用户输入的操作选择
(c)采用条件分支结构,判断用户输入的操作类型,根据不同类型调用相应的函数
(三)公交站点管理:完成对站点的增加、修改,以及显示全部站点的业务功能
(四)新增站点功能需求:
1.输入公交站点名称,和站点编号一起保存
2.公交站点的编号是从 1 开始,自动递增的;公交站点数量有限制,由程序设置,添加站点超出最大值时会提示错误信息。
实现业务流程:
(a)定义站点结构体类型,并创建站点数组
(b)获取当前站点的最大编号
(c)人机交互获取站点名称
(d)设置站点数组中的站点编号和站点名称
(五)修改站点功能需求:
1.输入需要修改的公交站点编号,并判断是否存在,如果不存在时提示错误信息;存在公交站点编号时,显示当前站点名称。
2.输入修改后的公交站点名称,并实现修改站点名称的功能。
实现业务流程:
(a)人机交互获取修改站点的编号
(b)通过编号获取并显示站点名称
(c)人机交互获取修改站点的新名称
(d)在站点数组中,修改指定编号的站点名称
(六)显示全部站点信息需求:
1.显示全部站点信息(站点编号、站点名称)。
实现业务流程:
(1)循环遍历站点数组
(2)显示每个站点的编号和名称
(七)公交线路管理需求:
(1)新增线路
1.输入公交线路名称,和线路编号、起点站、终点站等信息一起保存。
2.公交线路的编号是从 1 开始,自动递增的;线路的数量有限制,由程序设置,添加线路超出最大值时会提示错误信息。
3.输入起点站和终点站的编号,并检验是否有效
实现业务流程:
(a)定义公交线路结构体类型,并创建线路数组
(b)人机交互获取线路名称
(c)获取当前线路数组中最大的编号,并验证是否超出最大值
(d)人机交互获取线路起始站编号,并验证有效性
(e)人机交互获取线路终点站编号,并验证有效性
(f)在线路数组中,设置线路的编号、名称和站次。
(2)调整线路:
1.输入需要调整的公交线路编号,并判断是否存在,不存在时提示错误信息。
2.输入新增站点的编号,并判断是否存在,不存在时提示错误信息。
3.输入新站点在线路中所处的位置,并判断是否有效,无效时提示错误信息。(提示:从第一个开始,到现有最后一个站点的后面一个都是有效的)
4.以上检验都正确时,将新站点加入线路中
实现业务流程:
(a)人机交互,获取调整的线路编号
(b)人机交互,获取新增站点的编号以及设置的站次位置
(c)判断新增站点编号和站次位置是否合法
(d)根据线路的编号,确定线路数组中的位置,修改该线路中的站点数组,将新增站点的编号插入站点数组中的指定位置
(3)显示全部线路
显示全部线路信息(线路编号、线路名称和线路包含的总站点数)。
实现业务流程:
(a)遍历公交线路数组
(b)获取数组中每个线路成员,显示线路的编号、名称和总站次数
(4)查询线路输入需要查询的公交线路编号,查询显示该线路的全部站点信息(站点编号、站点名称)。
实现业务流程:
(a)人机交互,获取需要查询的线路编号
(b)获取线路数组中指定位置的线路,并获取其中的站点数组
(c)遍历该站点数组,获取每个站点的编号,并根据站点的编号,获取站点的名称,将站点的站次和名称显示出来
综合项目二 移动客服信息系统
- 项目说明
移动公司的通信业务量逐渐扩大,迫切需要提高工作效率,减轻工作人员的工作量。
本项目通过对 C 语言中数组、结构体,链表,文件处理等技术的应用,实现移动公司管理系统的业务功能,使相关重要数据信息,保存于文件中。 - 项目要求
(一)程序运行时,首先显示主菜单如下:
1.新增用户
2.修改用户
3.显示全部客户信息
4.添加消息记录
5.增加充值记录
6. 查看个人消息记录
7. 显示月度收支账务报表
8.退出
屏幕提示:请输入序号选择相应操作。
要求当用户输入任一序号后,程序都能进行相应操作。
(二)菜单界面管理:
显示项目的功能菜单,提供用户选择。
(1)界面信息显示
(2)采取循环结构,重复接受用户输入的操作选择
(3)采用条件分支结构,判断用户输入的操作类型,根据不同的类型调用相应的函数
(三) 用户管理
1).新增用户
a.定义用户结构体类型(用户编号、姓名、家庭地址、联系电话和套餐类型),并创建结构体数组
b.获取新增加的自动增长的用户编号,并判断当前用户数量是否超出容量,超出时提示退出
c.人机交互,接受该用户的姓名、地址等参数
d.针对结构体数组中的指定单元进行赋值
e.提示用户操作结果
2)修改用户信息
a.人机交互接受需要修改的用户编号
b.判断输入的编号是否存在,不存在时提示退出
c.人机交互,接受用户的名称、地址和电话等参数
d.针对用户结构体数组的指定单元重新赋值
e.提示操作结果
3)显示所有用户
a.循环遍历用户结构体数组
b.判断数组中是否存在用户数据,不存在时退出
c.存在数据时,按规定样式显示输出相应的数据
(四)业务管理,实现对用户的消费和充值业务记录和查询功能
1)添加消费记录
a.定义业务记录结构体类型(记录编号、用户编号、话费或者充值金额、记录日期和记录类型),并创建结构体数组
b.获取新增加的自动增长的记录编号,并判断当前记录数量是否超出容量,超出时提示退出
c.人机交互接受用户编号,并判断是否存在,不存在时提示退出;
d.循环遍历当前的记录数组,检查是否存在当前用户本月的消费记录。存在时提示错误并退出。
e.人机交互接受记录的相关信息
f.修改记录数组指定单元的数据
g.提示操作结果
2)添加充值记录
a.使用上一模块创建的业务记录结构体数组
b.获取新增加的自动增长的记录编号,并判断当前记录数量是否超出容量,超出时提示退出
c.人机交互接受用户编号,并判断是否存在,不存在时提示退出;
d.人机交互接受充值记录的相关信息
e.修改记录数组指定单元的数据
f.提示操作结果
3)查看个人业务记录
a. 人机交互,获取查询的个人编号
b.循环遍历业务记录结构体数组,判断数组中个人编号记录是否匹配。
c.匹配时获取记录成员,按规定样式显示输出相应的数据
(五)每月报表
a.创建报表结构体数组,包含月份、所有套餐的消费金额和充值金额
b 人机交互,接受需要查询的报表年份
c.初始化报表数组,添加月份数据
d.循环遍历业务记录结构体数组,判断是否存在记录,不存在时退出循环
e.在循环内部筛选出符合年份的记录,并根据类型,分别统计消费金额和充值金额
f.循环遍历报表结构体数组,显示每月的统计数据,最后,显示年度财务结算余额
综合项目三 炫彩界面版 ATM 自动取款机
- 项目说明
炫彩界面版 ATM 自动取款机模拟银行 ATM 取款机功能,我们平时存钱或者取款时,需要插入银行卡并输入密码,为了模拟此功能,我们要求用户使用前需要注册一个账户,注册后即可登录首页,进行一系列的操作。
(1)注册后的用户默认存款金额为 0,用户可以进行存钱功能,输入存入金额,总金额就会相应增加。
(2)本 ATM 取款机具有取款功能,输入取款金额,取款成功,总金额就会扣除相应款项,如果余额不足,系统就会提示。
(3)本 ATM 取款机具有转账功能,用户输入转账账号,转账金额,就会模拟转账功能,总金额就会扣除相应款项,如果余额不足,系统就会提示。
(4)用户可以实时查看个人信息,如:卡号,姓名,余额等。
(5)用户可以修改密码,需要输入原密码和两次新密码才能修改成功。
(6)本 ATM 取款机采用炫彩界面,即用户互动方式为窗口界面,用户只要点击鼠标选择相应菜单,在对应输入框中输入数据,在点击对应按钮,就可以完成所有操作 - 项目要求
- 用户登陆
a) 用户输入卡号和密码,点击登陆按钮,进入主菜单页面
b) 用户输入的卡号或密码为空,提示输入为空
c) 用户输入的卡号或密码错误,提示登陆信息错误。
- 用户注册
a) 点击登陆页的注册按钮,显示注册界面。
b) 用户输入卡号,姓名,密码,注册。注册后,即可通过该用户登陆。
c) 如果未输入信息,则提示为输入数据。
d) 如果卡号已存在,则提示卡号已存在。 - 菜单页面
a) 用户正确登陆后,显示主菜单页面(上图)
b) 系统显示欢迎您:用户名
c) 菜单包括存款,取款,转账,查看,修改,退出。
d) 点击菜单,进入对应页面。 - 存款
a) 如果输入的存款金额为空,提示用户输入
b) 点击确定按钮,提示存款成功。
c) 存款的金额自动增加到用户的余额中去,
d) 点击返回按钮,跳转到主菜单 - 取款
a) 如果输入的取款金额为空,提示用户输入
b) 如果输入的取款金额大于余额,提示余额不足。
c) 点击确定按钮,提示取款成功。
d) 取款的金额自动从余额中扣除。
e) 点击返回按钮,跳转到主菜单。 - 转账
a) 如果输入的转账金额为空,提示用户输入
b) 如果输入的转账金额大于余额,提示余额不足。
c) 点击确定按钮,提示转账成功。
d) 转账的金额自动从余额中扣除。
e) 点击返回按钮,跳转到主菜单。 - 查看
a) 详细页面显示卡号,姓名,余额
b) 点击返回按钮,跳转到主菜单。 - 修改
a) 输入框为空,提示用户输入
b) 密码输入少于 4 位,多于 20 位,提示用户应输入 4~20 位密码。
c) 原密码错误,提示用户密码错误。
d) 输入的两次新密码不一致,提示用户密码不一致。
e) 点击确定按钮,提示密码修改成功。
f) 点击返回按钮,返回到主菜单 - 退出
a) 点击主菜单中退出按钮,保存数据,关闭应用。