admin 管理员组

文章数量: 1086019


2024年3月6日发(作者:织梦模板后台左侧没有导航栏)

#include

#include //为以下system的函数的头文件

#define N 100 //宏定义,下面在主程序中对N进行了使用。N表示病人的个数,以后修改时可以直接修改这里。

int n;//整体变量,表示病人数

typedef struct bingren//病人信息 自己定义的结构体,建立所需要的数据类型

{ /*c语言中给的数据结构不能满足需要,所以自己建立组合型数据结构*/

char number[20];//定义number为整型数据,当number为0时退出。不能超过4位

char name[10];

int xiaofei;//消费信息为实型

int nianling;//年龄为整型数据

char bingli[200];//病例信息为字符型数组,能输入99个汉字(还有0)

}BINGREN;//定义一个结构体变量为 BINGREN

void xinghao()/*星号子函数模块,用于输出一排星号*/

{

int i;

for (i = 0; i < 80; i++)//输出一排******号

putchar('*');//输出*号

}

/*-----------输入信息子程序---------*/

void input(BINGREN *data, int *len)

{

int i;

system("cls");//清屏

system("title 病人信息录入菜单");

system("color 3f");//湖蓝色背景+亮白色字体

printf("n");//换行操作,目的是让下面显示的字的排布更好看

printf("n");//换行操作,目的是让下面显示的字的排布更好看

printf( " 请输入需要输入的病人人数

如果需要退出当前菜单请输入0.n");

scanf("%d",&n);

for(i=0;i

{

printf("n");//换行操作,目的是让下面显示的字的排布更好看

printf(" 请输入第%d个病人ID号 :",i+1);

scanf("%s", data[*len].number);//输入语句,输入的数字经过判断,如果是0则退回菜单页面。若不是0则进行以下操作

printf( " 请分别输入 姓名 消费信息 年龄 病例n");

printf("如:张三 56 31 感冒头痛呕吐");

putchar('n');

scanf("%s %d %d %s",

&data[*len].name,&data[*len].xiaofei,

&data[*len].nianling,

&data[*len].bingli);//输入的数据依次存到上述指针地址

(*len)++;

}

}

void output(BINGREN *data, int len)

{

system("cls");//清屏

system("title 病人信息输出菜单");

system("color 2f");//绿色背景+亮白色字体

int i,no;

printf("ID 姓名 消费信息

年龄 病例n");

xinghao();//对星号函数的调用

for (i = 0; i< len; i++)

{

printf("%8s",data[i].number);//只能对每个结构体内的变量进行输入和输出。

printf("%8s",data[i].name);//"."是成员运算符,优先级别最高

printf("%8d",data[i].xiaofei);

printf("%8d",data[i].nianling);

printf("%10s",data[i].bingli);//病例为汉字,所以用“s”输出字符串

putchar('n');

}

xinghao();//对星号函数的调用

printf("按回车键继续.");

getchar();

getchar();

}

/*--------------------搜索子程序-----------------------*/

void find(BINGREN*data, int len)

{

system("cls");//清屏

system("title 搜索信息菜单");

system("color 5f");//紫色背景+亮白色字体

int i ;

char no[20];

printf( "请输入需要查找的病人的ID号,退出当前菜单请输入 0,再键入ENTER.");

scanf("%s", no);//用户键入命令

for(i=0;i

{

if( strcmp(no,data[i].number)==0)//字符串比较函数,如果两个字符串相同则等于0

{

printf("n");

printf("%sn", "查询信息如下:");

xinghao();//对星号函数的调用

putchar('n');

printf("%8s", "ID");

printf("%8s", "姓名");

printf("%12s","消费信息");

printf("%10s", "年龄");

printf("%10s", "病例");

putchar('n');

printf("%8s", data[i].number);//输出存入的数据。

printf("%8s", data[i].name);

printf("%8d", data[i].xiaofei);

printf("%10d",data[i].nianling);

printf("%8s", data[i].bingli);

putchar('n');

xinghao();//对星号函数的调用

printf("按任意键继续n");

getchar();

}

else

printf("无相关病人信息 按任意键继续");

getchar();

}

}

/*-------------删除子程序--------------*/

void delete1(BINGREN*data,int *len)//删除信息

{ int c;

system("cls");//清屏

system("title 信息删除菜单");

system("color 4f");//红色背景+亮白色字体

int i,j;

i=0;

char no[20];

char m;

printf("%sn","输入需要删除的病人的ID号,退出请按0");

scanf("%s",&no);//用户键入的数字,到地址no中

for(i=0;i

{

if(strcmp(no,data[i].number)==0)//字符串比较函数

{

{

printf("%8s", "姓名");

printf("%8s", "ID");

printf("%12s","消费信息");

printf("%10s", "年龄");

printf("%10s", "病例");

putchar('n');

printf("%8s", data[i].name);

printf("%8s", data[i].number);//输出存入的数据。

printf("%8d", data[i].xiaofei);

printf("%10d",data[i].nianling);

printf("%8s", data[i].bingli);

putchar('n');

xinghao();

c=i;//对星号函数的调用

}

printf("请是否确认删除 YorNn");

getchar();

scanf("%c",&m);

if(m=='y'||m=='Y')

{

for(i=c;i

data[i]=data[i+1];

n=n-1; /*删除该学生信息后学生总数减一*/

printf("%sn","已经成功删除,请按任意键继续");

*len=*len-1;

getchar();

getchar();

break;

}

else

{

printf("%sn","删除的病人信息失败");

continue;

}

}

}

}

void paint()

{

int i;

system("cls");

system("title 医院管理系统主菜单 ");

system("color 6f");

printf("%sn", "

燕山大学14界学生n");

printf(" 制作者:n");

printf(" 队长 :朱子文n");

printf(" 队员 :王亚玲、徐世明n");

xinghao();//对星号函数的调用

putchar('n');

printf(" 1 输入病人信息

2 输出病人信息n");

printf(" 3 按ID删除

4 按ID查找n");

printf(" 5 保存到文件

6 按0退出 n");

putchar('n');

xinghao();//对星号函数的调用

putchar('n');

printf("请输入各操作对应的序号:");

}

void save(BINGREN *data,int len)//将数据保存到文件

{

system("cls");//清屏

system("title 病人信息输出菜单");

system("color 3f");//湖蓝色背景+亮白字体

int i;

FILE *fp;//文件指针

fp=fopen("D:病人信息统计表.txt","w");//将文件保存到电脑的D盘

fprintf(fp,"%8s", "姓名");

fprintf(fp,"%8s", "ID");

fprintf(fp,"%12s", "消费信息");

fprintf(fp,"%10s", "年龄");

fprintf(fp,"%8s", "病例");

fprintf(fp,"n");

for (i = 0; i

{

fprintf(fp,"%8s", data[i].number);

fprintf(fp,"%8s", data[i].name);

fprintf(fp,"%8d",data[i].xiaofei);

fprintf(fp,"%10d",data[i].nianling);

fprintf(fp,"%8s",data[i].bingli);

fprintf(fp,"n");

}

fprintf(fp,"========================================================================n");

fclose(fp);

printf("文件已保存到"病人信息统计表.txt"");

getchar();

getchar();

}

/*-----------主程序--------------*/

void main()

{

BINGREN data[N];//函数的调用

int len = 0;

char ctrl_ch;//字符型变量

paint();//对显示程序的调用

scanf("%c", &ctrl_ch);//键入“控制字符”,然后由开关switch控制。

while (ctrl_ch != '0')//当键入的 控制字符 不等于0时,执行以下操作,如果是0,跳出

{

switch(ctrl_ch)

{

case '1':

input(data, &len);//如果没有取地址符号,会显示int类型的实参与int*的形参不兼容

break;

case '2':

output(data, len);

break;

case '3':

delete1(data, &len);

break;

case '4':

find(data,len);

break;

case '5':

save(data, len);

break;

default://容错语句

if (ctrl_ch!= 'n') printf("%sn",

"输入错误!");

break;

}

if (ctrl_ch ='n')//如果用户按下回车键

paint();//返回界面时,再次对显示程序的调用。作用显示界面

scanf("%c", &ctrl_ch);

}

}


本文标签: 信息 输入 病人 菜单