目录
16.1.9 实现代码版本 2-使用结构体+函数封装, 提供软件模块化编程,便于维护
16.2.10 项目功能实现-完成修改客户的功能(课后作业)
16.2.11 项目功能实现-完成根据 id 查找客户的功能(课后作业)
前言
家庭收支记账软件和客户信息管理系统均采用文本界面,以简洁直观的方式提供给用户强大的功能,帮助用户更好地管理财务和客户信息。
16.1 项目-家庭收支记账软件
16.1.1 实现基本功能
编写文件 myAccount.c 完成功能
16.1.2 菜单显示
16.1.3 登记收入
16.1.4 登记支出
16.1.5 显示明细
16.1.6 退出系统
16.1.7 项目代码实现改进
1) 用户输入 4 退出时,给出提示"你确定要退出吗? y/n",必须输入正确的 y/n ,否则循环输入指令,直到输入 y 或者 n。
2) 当没有任何收支明细时,提示 "当前没有收支明细... 来一笔吧!"
3) 在支出时,判断余额是否够,并给出相应的提示。
4) 改成使用结构体完成 => 并且使用函数来提高项目的模块化编程, 利用今后项目的维护和扩展
16.1.8 实现代码版本 1-没有使用结构体和函数封装
|
16.1.9 实现代码版本 2-使用结构体+函数封装, 提供软件模块化编程,便于维护
|
16.2 项目-客户信息管理系统
16.2.1 项目需求说明
模拟实现基于文本界面的《客户信息管理软件》。
该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表。
16.2.2 项目界面(看项目需求 PPT)
16.2.3 项目设计-程序框架图
程序框架图: 描述该项目包含多少个文件/函数,明确文件与文件之间的调用关系。
16.2.4 项目功能实现-完成 Customer 结构体
Ø 思路:
1) Customer 结构体含有的成员,应该从给出的界面来分析
2) 分析出有 6 个成员, 数据类型有可以分析
3) 编写一个函数,输出给出的某个 Customer 变量的信息
Ø 代码
|
16.2.5 项目功能实现-显示主菜单和完成退出软件功能
Ø 功能说明:
用户打开软件, 可以看到主菜单,输入 5 退出软件。
Ø 思路分析:
在 customerManage.c 中,编写一个函数 mainMenu,显示菜单, 在 main 函数中调用
Ø 代码实现:
|
16.2.6 项目功能实现-完成显示客户列表的功能
Ø 功能说明
Ø 思路分析
1) 因为我们需要将多个客户保存起来,因此我们需要使用结构体数组-Customer 结构体数组
2) 编写一个函数 listCustomers 来显示客户信息
3) 在主菜单调用 listCustomers 函数即可
Ø 代码实现
|
16.2.7 项目功能实现-添加客户的功能
Ø 功能说明:
Ø 思路分析:
1) 编写一个 add 函数,在该函数中完成添加客户的功能
2) 在 mainMenu 调用即可
Ø 代码实现:
|
16.2.8 项目功能实现-完成删除客户的功能
Ø 功能说明:
Ø 思路分析:
1) 先编写一个函数 findIndex , 根据用户输入的 id ,去查找 该 id 是否存在 customers 结构体数组中,如果存在,就返回该 id 对应的 index , 因为 id 和 index 不是对应的关系, 如果 id 存在,则返回对应的 index, 否则返回 -1
2) 编写一个函数 del , 该函数根据接收的 index 来判断是否可以删除, 如果接收到的 index 是 -1 ,就不删除,否则就删除该 index 对应的客户
3) 编写 delView 函数,让用户可以输入要删除的 id ,并再 mainMenu 函数中调用
Ø 代码实现
|
16.2.9 项目功能实现-完善退出确认功能(课后作业)
Ø 功能说明:
要求用户在退出时提示 " 确认是否退出(Y/N):",用户必须输入 Y/N, 否则循环提示。
Ø 思路分析:
1) 使用 do-while 循环,提示用户输入 Y/N ,如果输入的不是 Y/N ,就反复提示
2) 需要在增加一个全局变量 choice ,表示用户的一个选择
Ø 代码实现:
|
16.2.10 项目功能实现-完成修改客户的功能(课后作业)
16.2.11 项目功能实现-完成根据 id 查找客户的功能(课后作业)
Ø 功能说明:
Ø 思路分析:
提示:修改客户时,需要先查找该用户 , 如果该用户不存在,就需要提示,并结束修改.
,如果找到该用户,就先显示该用户信息,然后提示输入新的信息, id 不能修改
Ø 代码实现:
16.2.12 项目 2-客户关系系统的整体代码
|
总结
随着本项目文档的结束,我们希望大家能够学会并实际应用。
附录
参考:【尚硅谷C语言零基础快速入门教程-哔哩哔哩】 https://b23.tv/vS3vTDp