迷你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 ……


0 0
原创粉丝点击