LINUX下的银行小系统(C语言)(进程间通信,多进程)

该项目是一个基于Linux的银行系统,采用C语言编写,包含客户端和服务器。客户端接收用户操作,通过进程间通信将请求发送给服务器,服务器通过多个子进程处理不同功能,如开户、销户、登录、转账等。用户可以在两个独立的终端中运行服务器和客户端进行交互。提供码云下载地址和部分代码展示。
摘要由CSDN通过智能技术生成

项目需求

主要分为两人大模块:

客户端
	1、进入时的功能开户、销户、登录、解锁
		开户:输入姓名、身份证号、设置密码,如果开户成功,则服务器上保存一个账号信号(一个账号存一个文件,文件名建议是账号)。
		销户:输入帐号、密码,服务器询问是否确认销户,如果确认则服务器删除帐号文件,并记录帐号。
		登录:输入账号、密码,三次错误账号锁定。
		解锁:输入账号、身份证号解锁。
	2、登录成功:存钱、取钱、转账、查询、修改密码
		存钱:输入存钱金额
		取钱:输入取钱金额
		转账:目标帐号和要转的金额
		查询:不需要输入数据
		修改密码:原密码和新密码
服务器
	如果识别功能:根据消息的类型识别客户端请求的功能。
	开启服务各项功能的子进程
		各进程按照消息类型接收消息
	
头文件

#define key 123456

帐号结构体
{
   
	帐号
	身份证号
	密码
	金额
}

消息结构体
{
   
	消息类型
	帐号结构体
}

系统实现方法

系统分为客户端和服务器,客户端用于接收用户输入的信息,服务器创建多个子进程,用于实现各项功能
用户在客户端输入信息,通过进程间通信传给服务器,服务器接收后,用相应的子进程实现功能,并将实现的情况返回给客户端

码云:下载地址

代码使用:下载后解压放到linux中,打开两个终端,都进入到xxbank/server文件夹中,输入make,产生相应文件,先在一个终端中输入./server,运行服务器,在另一个终端输入./client运行客户端,然后就可以开始使用了(如果出错可能是消息队列没有清除,请清除后再运行)

功能展示

开户
在这里插入图片描述

销户
在这里插入图片描述

登录
在这里插入图片描述

解锁
在这里插入图片描述

存钱
在这里插入图片描述

取钱
在这里插入图片描述

转账
在这里插入图片描述

查询余额
在这里插入图片描述

修改密码
在这里插入图片描述

部分代码展示

//client.c 代码

#include <stdio.h>
#include <unistd.h>
#include <msg.h>
#include <bank.h>
#include <getch.h>
#include <string.h>
#include <stdlib.h>

#define STDIN_CLEAR stdin ->_IO_read_ptr = stdin -> _IO_read_end

//按任意按键继续
void anykey_continue(void)
{
   
	puts("按任意按键继续...");
	//防止输入缓冲区中有残留的字符,会导致getch直接返回
	//因此清理输入缓冲区
	STDIN_CLEAR;
	getch();
}

//接受数据并去除fgets()末尾的\n
void fgets_n(char* str,int n)
{
   
	STDIN_CLEAR;
	memset(str, 0, strlen(str));
	fgets(str,n,stdin);
	if(str[n-1]=='\n')
	{
   
		str[n-1]='\0';
	}
	STDIN_CLEAR;
}

int msgid;
MsgCTOS ctos = {
   };
MsgSTOC stoc = {
   };

void menu(void)
{
   
	puts("欢迎使用XX银行");
	puts("1 开户");
	puts("2 销户");
	puts("3 登陆");
	puts("4 解锁");
	puts("0 退出");
}

voi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值