linux c 小项目:模拟银行ATM

看到下面这篇博文,毕业半年了,发现自己学习的东西还是比较碎片化,因此,尝试自己独立做一个综合性的小项目,将自己所学的知识加以巩固。

原文链接:https://blog.csdn.net/Robot__Man/article/details/52089923

一 前言
程序员的发展道路:
  外行->菜鸟->准程序员->程序员->核心程序员(高级)->系统分析师/系统架构师/项目经理–>部门经理/总监(管理职位)–>CTO技术方面的总裁–>自己搞公司

从菜鸟到准程序员就是至少要自己独立完成一个小项目。

做项目、软件的流程:
1 需求 (要写什么)
2 系统分析 (把客户的要求转成计算机软件系统)
3 系统设计 (设计计算机的软件系统)
4 编码 (把设计用代码实现)
5 测试 (保证软件的质量,是否遵循需求)
6 安装、调试和维护

二 模拟银行ATM
2.1 要求:
1 一定自己动手,不要不写,也不要去抄。
2 尽可能的完成,不懂的要问。

2.2 写一个模拟银行ATM的案例
  银行包括:开户、销户、存取、取钱、转账、查询余额 6 个基本功能,重点实现开户。
分析:
  系统包括服务端和客户端,暂时做单机版。客户端和服务端数据交互用 消息队列,创建两个消息队列:一个是用于服务端发给客户端,另一个用于客户端发给服务端。

服务端的功能:
1. 启动时创建两个消息队列,关闭时删除。用信号关闭,在信号处理函数中删除。
2. 服务端要根据客户端发送的数据,判断是何种请求,再根据各种请求作出相应的处理。
  数据封存在struct msg{
    long mtype;
    struct account acc;
    };
  struct account 是账户类型的结构体,包括成员账号、用户名、密码、金额。
3. 分析开户的流程。
  客户端输入用户名、密码和金额,把数据封在msg中,通过消息队列发送给服务端,服务端生成一个账号,然后把account信息写入文件中,并把处理结果返回给客户端。
  账号怎么生成?(保证不重复)
  先建一个账号的生成文件,写入初值。每次开户都先读文件,然后把读到的数加1,并作为新的账号,再把新的账号写回文件中。账户信息写入文件,一个账户对应文件,以账号+.dat做文件名。
4. 服务端用多进程完成各种功能。(vfork+exec)

客户端的代码:
1. 提供选择的界面,打印各种功能的选择。
2. 提交相应数据(用struct msg),并等待处理结果

猜你喜欢

转载自www.cnblogs.com/cdy0626/p/12481900.html