C语言做的一个简单的系统

2023-11-03

这个适合初学者去学习!!

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//1、确定数据类型信息 
typedef struct patient
{
	char ID[10];     //编号  
	char name[10];    //姓名 
	char details[300];  //具体信息 
	int cost[3];      //话费金额 
	struct patient * next;
}node1;
typedef struct storage
{
		int amount[3];   //药品数量 
	int price[3];    //价格 
}node2;
node2 init(node2 temp)
{	
	temp.amount[0]=20;
    temp.amount[1]=20;
	temp.amount[2]=10;
	temp.price[0]=5;
	temp.price[1]=9;
	temp.price[2]=16;
	return temp;
} 
void mainmeun()
{
	//2、选择输入项 
	printf("\n");
	printf("*************欢迎使用医疗管理系统*******************\n");
	printf("1.注册学生信息\n");
	printf("2.查询学生信息\n");  //4、输出项
	printf("3.填写详细信息\n");
	printf("4.学生购买消费\n");//3、用于计算项 
	printf("5.列出所有学生信息\n");    //5、输出所以学生信息 
	printf("6.查询药品库存\n");
		printf("7.退出系统\n");
	printf("**************请选择操作项******************\n");
}
node1 * create(node1 *p1)  //注册学生信息 
{
	node1 *p;
	p=(node1 *)malloc(sizeof(node1));
	printf("请输入学生编号\n");
    scanf("%s",p->ID);
    while(p1->ID&&strcmp(p1->ID,p->ID))
	{
		p1=p1->next;
	}
    if(p1==NULL)
	{
	    printf("请输入学生姓名\n");
	    scanf("%s",p->name);
	    strcpy(p->details,"0");
	    p->cost[0]=0;
	    p->cost[1]=0; 
	    p->cost[2]=0;
    	p->next=NULL;
    	printf("已注入您的信息!\n");
	return p;
	}
	else 
{
		printf("输入学生编号以存在,注册失败!\n");
		return p;
	}
}
node1 * insert(node1 * head,node1 *p)	//检查是否存在信息 
{
    node1 *p1; 
	if(head==NULL)
	{
		head=p;
		p->next=NULL; 
	}
	else
	{
		p1=head;
		while(p1->next)
		{
			p1=p1->next; 
		}
		p1->next=p;
		p->next=NULL; 
	}
	return(head);
}
void search(node1 *p1) //查询信息 
{
	int sum;
	char a[10];
	printf("请输入学生编号\n");
	scanf("%s",a);
	while(p1->ID&&strcmp(p1->ID,a))
	{
		p1=p1->next;
	}
	if(p1)
	{
	printf("编号:%s\n",p1->ID);
		printf("姓名:%s\n",p1->name);
		printf("详细信息:%s\n",p1->details);
		printf("消费记录:\n");
		if(p1->cost[0])
			printf("阿莫西林胶囊\t%d\n",p1->cost[0]);
        if(p1->cost[1])
			printf("连花清瘟胶囊\t%d\n",p1->cost[1]);
		if(p1->cost[2])
			printf("板蓝根\t%d\n",p1->cost[2]);
				sum=p1->cost[0]*5+p1->cost[1]*9+p1->cost[2]*16;
		printf("总费用\t%d\n",sum);
	}
		else
			printf("该学生没有注册!\n");
	
}
void details(node1 *p)   //详细信息
{
	char a[10];
	char details[300];
	char enter[5]=":\n";
    printf("请输入学生编号\n");
    scanf("%s",a);
	while(p->ID&&strcmp(p->ID,a))
	{
		p=p->next;
	}
	if(p==NULL)
	{
		printf("无该学生信息!\n");
	}
	else
	{
		printf("请写详细信息:\n");
		scanf("%s",details);
		strcpy(p->details,details);
		strcat(p->details,enter);
	}
}
node2 buy(node1 *p,node2 temp)  //消费记录 
{
		char i[10];
	printf("请输入学生编号\n");
	scanf("%s",i);
	while(p->ID&&strcmp(p->ID,i))
	{
		p=p->next;
	}
	while(1)
	{
		int a,b,c,d;
		printf("1.购买阿莫西林胶囊\n");
		printf("2.购买连花清瘟胶囊 \n");
		printf("3.购买板蓝根\n");
		printf("0.退出\n");
		scanf("%d",&a);
		switch(a)
			{
			case 1:
				do
				{
					printf("现有库存%d\n",temp.amount[0]);
					printf("购买阿莫西林胶囊数量:");
					scanf("%d",&b);
					temp.amount[0]=temp.amount[0]-b;
					p->cost[0]+=b*5; 
				}while(b>20);
				break;
			case 2:
					do
				{
					printf("现有库存%d\n",temp.amount[1]);
					printf("购买连花清瘟胶囊数量:");
					scanf("%d",&c);
					temp.amount[1]=temp.amount[1]-c;
					p->cost[1]+=c*9;
				}while(c>20);
				break;
			case 3:
				do
				{
					printf("现有库存%d\n",temp.amount[2]);
					printf("购买板蓝根数量:");
						scanf("%d",&d);
					temp.amount[2]=temp.amount[2]-d;
					p->cost[2]+=d*16;
				}while(d>=10);
				break;
			case 0:
				return temp;
		}
	}	
}
void list(node1 *p)   //输出学生信息 
{	
	if(p==NULL)
		printf("尚无学生信息!\n");
	else
	{	
		do{
			printf("学生编号:%s\n",p->ID);
			printf("学生姓名:%s\n",p->name);
			printf("学生详细信息:%s\n",p->details);
			printf("购买阿莫西林胶囊费用:%d\n",p->cost[0]);
			printf("购买连花清瘟胶囊费用:%d\n",p->cost[1]);
				printf("购买板蓝根费用:%d\n",p->cost[2]);
			printf("\n");
			p=p->next; 
		}while(p!=NULL);
	}
}
void liststock(node2 temp)  //药品信息 
{
	printf("药品\t数量\t价格\t\n");
	printf("阿莫西林胶囊\t%d\t%d\t\n",temp.amount[0],temp.price[0]);
	printf("连花清瘟胶囊\t%d\t%d\t\n",temp.amount[1],temp.price[1]);
    printf("板蓝根\t%d\t%d\t\n",temp.amount[2],temp.price[2]);
				
}
chose()  //菜单选项 
{
	node1 *head=NULL,*p;
	node2 temp;
	while(1)
	{
		mainmeun();
		int a;
	    scanf("%d",&a);
		switch(a)
		{
		case 1:
		    p=create(head);
			head=insert(head,p);
			break;
		case 2:
			search(head);
			break;
		case 3:
			details(head);
			break;
		case 4:
			temp=buy(head,temp);
			break;
		case 5:
			list(head);
			break;
		case 6:
			liststock(temp);
			break;
		case 7:
			printf("谢谢使用!!\n");
			return(0);
		default:
			printf("输入有误!重新输入\n");
			break;
		}
	}
}
//主函数main 
int main()
{
	chose();
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言做的一个简单的系统 的相关文章

随机推荐

  • python 深度学习 解决遇到的报错问题

    目录 一 解决报错ModuleNotFoundError No module named tensorflow examples 二 解决报错ModuleNotFoundError No module named tensorflow co
  • node.js + 企业微信实现定时推送消息

    一 注册企业微信及配置 进入官网 https work weixin qq com 按要求填写资料开通企业微信 1 查看企业 ID 2 创建应用 3 查看应用 AgentId Secret 下拉到页面底部还要配置IP白名单 配置IP白名单
  • 睿瞳车牌识别测试总结

    摄像头型号 睿瞳科技 IVS 通讯 通过网线 功能 当有车牌识别时 将主动向IP 端口推送数据包 重要内容 准确率和车牌号 识别ID 配置 第一步 连接摄像头 默认 192 168 1 100 第二步 更改合适的IP 第三步 配置仪表网络推
  • VBA:同时修改工作薄中以日期命名的sheet名称

    修改逻辑如下 一个月的数据放在同一个工作薄中 每天的数据为一个sheet sheet名称为当天的日期 每天的数据模版一样 只是数据更新变化 现需要把上月的sheet名称日期改为当月的 只需要把月份改为当月月份 比如7 1 7 31改为8 1
  • 基于Flowable 6.x 的工作流管理平台源码 在线流程设计器 在线流程表单设

    基于Flowable 6 x 的工作流管理平台源码 在线流程设计器 在线流程表单设计器 单节点配置表单 多实例会签任务 任务节点配置任务 执行监听器 动态配置任务候选人 其它流程相关功能点
  • Unable to find resource t64.exe in package pip._vendor.distlib报错问题解决

    Unable to find resource t64 exe in package pip vendor distlib报错问题解决 问题报错具体内容 具体解决方案 解决方法一 解决方法二 问题报错具体内容 想要对python的版本进行一
  • win7下metasploit-framework安装及使用笔记

    1 去官网下载最新版本的metasploit framework 2 下载好后 退出电脑的杀毒软件 因为安装的时候里面好多文件会被当做病毒删除 3 点击安装 下一步下一步依次即可 4 安装完成后启动 这个启动的地方我找了好久 具体启动的地方
  • FPGA实现inout的两种方法

    第一种就是使用assign语句 这种会根据代码逻辑进行综合 也会综合成三态门 但不一定是使用IOBUF这种资源 assign a in or oout 1 dz out 第二种就是使用原语 以xilinx的IOBUF为例 OBUFT为一个三
  • 再聊聊财务自由

    前段时间有人在我星球讨论财务自由 说自由的本质是选择权 有读者觉得大受启发 我就翻了一下旧文 我2017年就说过了啊 谈谈财务自由 但时过境迁 其实我想改变一下之前的说法 所谓财务自由 你虽然拥有了选择权 但并不是无限选择的权力 坦白说 这
  • 电影知识图谱和基于模板的问答系统构建

    目录 前言 一 知识图谱的构建 二 问答系统的构建 1 数据准备 1 1数据获取 1 2数据处理 1 3数据读入 1 4代码 2 问答系统设计 2 1整体流程 2 2实体识别和问题分类 2 3 问题结果查询 2 4问答模板的匹配 三 优化方
  • requests.post 小坑: 默认无超时,会阻塞

    一 遇到问题 最近遇到一个小问题 发现我的进程在调某个 API 的时候 不能正常 work 了 马上一顿 strace p pid 操作 定睛一看 发现我的进程卡在了 recvfrom 23 不动了 一直不会进入 accept 或者 epo
  • 论文笔记 Spectral Regularization Algorithms for Learning Large IncompleteMatrices (soft-impute)

    2010 JMLR 0 摘要 使用凸松弛技术为大规模矩阵完成问题提供一系列正则化低秩解决方案 论文算法 SOFT IMPUTE 迭代地用从软阈值 SVD 获得的元素替换缺失的元素 通过热启动 这使算法能够有效地计算正则化参数值网格上解决方案
  • iOS架构-组件化(Carthage管理工具)

    一 Carthage项目管理工具使用 Step 1 安装 更新Homebrew工具 1 usr bin ruby e curl fsSL https raw githubusercontent com Homebrew install ma
  • 遍历列表中的字典并取出其中的值报错string indices must be integers

    今天写爬虫的时候遇到一个问题 为了方便看我截取出其中的一部分放到测试文件中测试 我想要的是使用for循环遍历列表中的每一个字典然后取出其中某个key对应的value值 但是却报错了 报错显示string indices must be in
  • Python 数据降噪处理的四种方法——均值滤波、小波变换、奇异值分解、改变binSize

    Python 数据降噪处理的四种方法 均值滤波 小波变换 奇异值分解 改变binSize github主页 https github com Taot chen 一 均值滤波 1 算法思想 给定均值滤波窗口长度 对窗口内数据求均值 作为窗口
  • 三基色配色表java_【调色】颜色配色表 适合重彩搭配用

    三基色是指红 绿 蓝三色 各自对应的波长分别为700nm 546 1nm 435 8nm 原色 又称为基色 即用以调配其他色彩的基本色 原色的色纯度最高 最纯净 最鲜艳 可以调配出绝大多数色彩 而其他颜色不能调配出三原色 三原色通常分为两类
  • mysql怎么更新单一值_MySQL 如何快速全表更新某个字段值

    这个问题似乎没有什么好的解决方法 有个朋友提示 能否将1千万条记录拆分成多个部分 并发更新 这种比单纯的一条SQL全表更新要快一些 真的是这样吗 我做了一个实验 1 环境配置 机器配置 16核 32G MySQL 版本 5 7 19 1主2
  • 2-蛇形矩阵

    蛇形矩阵 首先我们来看问题 上面这个矩阵我们要怎么将它输出呢 我们仔细观察这个矩阵 不难发现它是有一定规律的 它的数字沿着一条蛇一样弯曲排布 那么问题来了 我们在电脑中输出都是以一行一行这样来输出的 这个矩阵的顺序明显不符合以行为参考时的输
  • 利用MMPose进行姿态估计(训练、测试全流程)

    前言 MMPose是一款基于PyTorch的姿态分析开源工具箱 是OpenMMLab项目成员之一 主要特性 支持多种人体姿态分析相关任务 2D多人姿态估计 2D手部姿态估计 动物关键点检测等等 更高的精度和更快的速度 包括 自顶向下 和 自
  • C语言做的一个简单的系统

    这个适合初学者去学习 include