admin 管理员组文章数量: 1086019
2024年3月6日发(作者:织梦模板后台左侧没有导航栏)
#include
#include
#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); } }
版权声明:本文标题:医院管理系统源代码 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1709686610a543622.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论