迷你ATM
来源:互联网 发布:淘宝流量互刷 编辑:程序博客网 时间:2024/04/28 06:31
1)项目名称
银行账户管理系统
2)项目功能
开户 销户 存钱 取钱 转账 查询余额 退出
3)项目分析
- 采用c/s架构设计
客户端:
给用户提供一个界面,让用户选择相应的功能,然后将用户的操作反馈给服务器进行处理,处理完毕之后将结果显示到客户端。
服务器:接受客户端的选择,实现真正的功能,然后将结果返回给客户端。服务器端本质对数据的增删改查
- 客户端和服务器数据的交换
采用消息队列进行数据的交换
消息队列一:客户端向服务器发送数据
消息队列二:服务器向客户端发送数据
-不同的业务我们采用消息类型区分:
6种业务类型 + 成功的消息类型 + 失败消息类型
4)账户的信息和消息信息
账户信息:
帐号(系统自动生成),账户名称,密码,余额
如:struct account{
int id;
char user[20];
char pass[20];
double money;
};
消息信息:
struct msg{
long mtype;
struct account acc;
};
5)项目执行流程
启动服务器 ->启动客户端—>根据客户端的界面选择开户功能,输入相关的信息->通过消息队列一将信息发送给服务器->服务器进行开户的功能->通过消息队> 列二将结果送给客户端显示
注意事项:
1. 如何让系统自动生成一个不重复的帐号并且一次递增?
:
第一个用户:int id=10000;把id存到文件中(access)
其他用户:读取文件,+1给新用户,新id存起来(覆盖)
2.每个账户信息单独存放呢?还是存放到同一个文件中?
采用一个账户信息存放一个独立的文件中,销户的时候直接删除文件即可(remove)
4 采用账户id作为存放账户信息的文件名(sprintf)
3.服务器采用多进程
vfork +execl系列的函数
消息队列的创建/删除放在服务器端,可以通过死循环让服务器不断的工作,关闭服务器采用信号,对信号采用自定义处理方式,在关闭时删除消息队
列
2.5 项目的要求
1.采用多文件的方式编写代码,支持Makefile文件
xxx.h xxxx.c ……
Makefile()文件规则:
目标文件规则:依赖文件
具体的生成指令
:
vi Makefile
main:main.o
cc/gcc main.o -o main
main.o:main.c
cc -c main.c
编写完毕后保存退出,make 回车即可
2.每个文件中采用多个函数去实现不同的功能
init();
start();
3.要求实现开户的功能,有时间me/tarena/桌面/项目(银行)的同学考虑并且实现其他功能
项目提示:
(1)vi bank.h
(2)vi server.c
创建消息队列 和删除消息队列
msgget ……
- 迷你ATM
- ATM
- ATM
- ATM
- ATM
- ATM
- ATM
- ATM
- ATM
- ATM
- ATM
- ATm
- ATM
- ATM
- ATM
- ATM
- ATM
- ATM
- Unity3d打开文件选择对话框
- 1sting
- NSString函数使用
- SPI、I2C、UART三种串行总线协议的区别
- 《编程之美: 求二叉树中节点的最大距离》的另一个解法
- 迷你ATM
- 李滔搜狐大数据之Spark广告和新闻推荐
- PAT (Advanced Level) 1089. Insert or Merge (25) 插入和归并
- spring 手工实现AOP编程
- iBatis开发详解(2)----------增删改查
- 二叉树思想小结
- [leetcode-58]Length of Last Word(c)
- git 远程操作常用命令
- JSP学习笔记(一)---JSP基础