📄 医疗信息管理系统.c
字号:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define N 100
#define KEY 111111 /*密码*/
typedef struct
{
int num;
char name[20];
char sex[5];
int age;
char ID[20];
char cellphone[14];
long int time;
}student;
void mainmenu();
void managermenu(student *a,int *n);
void vistormenu(student *a,int n);
void openfile(student *a,int *n);
void savefile(student *a,int n);
void add(student *a,int *n);
void delate(student *a,int *n);
void modify(student *a,int n);
void findall(student *a,int n);
void findone(student *a,int n);
void sort(student *a,int n);
void exitmenu();
void mainmenu2();
void managermenu2(student *a,int *n);
void vistormenu2(student *a,int n);
void openfile2(student *a,int *n);
void savefile2(student *a,int n);
void add2(student *a,int *n);
void delate2(student *a,int *n);
void modify2(student *a,int n);
void findall2(student *a,int n);
void findone2(student *a,int n);
void sort2(student *a,int n);
void exitmenu2();
void findall3(student *a,int n);
void findone3(student *a,int n);
void sort3(student *a,int n);
void findall4(student *a,int n);
void findone4(student *a,int n);
void sort4(student *a,int n);
static order;
void main()
{
char choice='\0';
student a[N]={0};
int n=0,m=0,language=0;
openfile(a,&n);
printf("what kind of language would you like to chose?\n");
printf("for Chinese:1\n");
printf("for English:2\n");
scanf("%d",&language);
if(language==2)
{
do
{
mainmenu();
scanf(" %c",&choice);
switch(choice)
{
case '1': managermenu(a,&n);break;
case '2': vistormenu(a,n);break;
case '0': exitmenu();break;
default: printf("please input the right number again.");
}
}while(a);
}
if(language==1)
{
do
{
mainmenu2();
scanf(" %c",&choice);
switch(choice)
{
case '1': managermenu2(a,&n);break;
case '2': vistormenu2(a,n);break;
case '0': exitmenu2();break;
default: printf("请输入正确选项:");
}
}while(a);
}
}
void mainmenu() /* 显示主菜单*/
{
system("cls"); /*清屏*/
printf("\n\n\n\n\n\n\n\n\n");
printf(" ******************************************\n");
printf(" Medical Information Management System \n");
printf(" ******************************************\n");
printf(" 1-manager entrance \n");
printf(" 2-vistor entrance \n");
printf(" 0-exit \n");
printf(" ******************************************\n");
printf("please input your choice(0-2): ");
}
void mainmenu2() /* 显示主菜单*/
{
system("cls"); /*清屏*/
printf("\n\n\n\n\n\n\n\n\n");
printf(" ******************************************\n");
printf(" 医疗信息管理系统 \n");
printf(" ******************************************\n");
printf(" 1-管理员入口 \n");
printf(" 2-访问者入口 \n");
printf(" 0-退出 \n");
printf(" ******************************************\n");
printf("请输入选择(0-2): ");
}
void managermenu(student *a,int *n)
{
char choice='\0',chose; /*管理员菜单*/
int password;
do
{
printf("please input password(6 numbers): "); /*验证密码*/
scanf("%d",&password);
if(password==KEY)
{
do
{
system("cls");
printf("\n\n\n\n\n\n\n\n");
printf(" *******************************\n");
printf(" welcome to our system \n");
printf(" *******************************\n");
printf(" 1-add record \n");
printf(" 2-delate record \n");
printf(" 3-modify record \n");
printf(" 4-all the patients \n");
printf(" 5-search for one \n");
printf(" 6-sort of the score \n");
printf(" 0-renturn mainmenu \n");
printf(" *******************************\n");
printf("please input your choice: ");
scanf(" %c",&choice);
switch(choice)
{
case '1': add(a,n);break;
case '2': delate(a,n);break;
case '3': modify(a,*n);break;
case '4': findall(a,*n);break;
case '5': findone(a,*n);break;
case '6': sort(a,*n);break;
case '0': return;
default: printf("please input the the right number again.");
}
}while(a);
}
if(password!=KEY)
{
printf("you enter the wrong password.\n");
printf("would you want to try again(y/n)?");
scanf(" %c",&chose);
}
}while(chose=='Y'||chose=='y');
}
void managermenu2(student *a,int *n)
{
char choice='\0',chose; /*管理员菜单*/
int password;
do
{
printf("请输入6位密码: "); /*验证密码*/
scanf("%d",&password);
if(password==KEY)
{
do
{
system("cls");
printf("\n\n\n\n\n\n\n\n");
printf(" *******************************\n");
printf(" 欢迎光临本系统 \n");
printf(" *******************************\n");
printf(" 1-添加记录 \n");
printf(" 2-删除记录 \n");
printf(" 3-修改记录 \n");
printf(" 4-查找全部记录 \n");
printf(" 5-查找个人 \n");
printf(" 6-按预约时间排序 \n");
printf(" 0-返回主菜单 \n");
printf(" *******************************\n");
printf("请输入选择: ");
scanf(" %c",&choice);
switch(choice)
{
case '1': add2(a,n);break;
case '2': delate2(a,n);break;
case '3': modify2(a,*n);break;
case '4': findall2(a,*n);break;
case '5': findone2(a,*n);break;
case '6': sort2(a,*n);break;
case '0': return;
default: printf("请选择正确的选项.");
}
}while(a);
}
if(password!=KEY)
{
printf("密码输入错误.\n");
printf("您想重新输入密码吗(y/n)?");
scanf(" %c",&chose);
}
}while(chose=='Y'||chose=='y');
}
void vistormenu(student *a,int n) /*访问者菜单*/
{
char choice='\0';
do
{
system("cls");
printf("\n\n\n\n\n\n\n\n");
printf(" *******************************\n");
printf(" welcome to our system \n");
printf(" *******************************\n");
printf(" 1-all the patients \n");
printf(" 2-search for one \n");
printf(" 3-sort of the time \n");
printf(" 0-return mainmenu \n");
printf(" *******************************\n");
printf("please input your choice: ");
scanf(" %c",&choice);
switch(choice)
{
case '1': findall3(a,n);break;
case '2': findone3(a,n);break;
case '3': sort3(a,n);break;
case '0':return;
default: printf("please input the right number again.");
}
}while(a);
}
void vistormenu2(student *a,int n) /*访问者菜单*/
{
char choice='\0';
do
{
system("cls");
printf("\n\n\n\n\n\n\n\n");
printf(" *******************************\n");
printf(" 欢迎光临本系统 \n");
printf(" *******************************\n");
printf(" 1-全部记录 \n");
printf(" 2-查找个人 \n");
printf(" 3-预约时间排序 \n");
printf(" 0-返回主菜单 \n");
printf(" *******************************\n");
printf("请输入选项:");
scanf(" %c",&choice);
switch(choice)
{
case '1': findall4(a,n);break;
case '2': findone4(a,n);break;
case '3': sort4(a,n);break;
case '0':return;
default: printf("请输入正确选项.");
}
}while(a);
}
void openfile(student *a,int *n) /*打开文件*/
{
FILE *fp=NULL;
int i=0,j=0;
float temp=0;
fp=fopen("date.txt","r");
if(fp==NULL) /*判断文件能否打开*/
{
printf("can't open the file");
getch();
exit(0);
}
fscanf(fp,"%d %s %d %s %s %s %ld",&a[i].num,a[i].name,&a[i].age,a[i].sex,a[i].ID,a[i].cellphone,&a[i].time);
while(!feof(fp))
{
i++;
fscanf(fp,"%d %s %d %s %s %s %ld",&a[i].num,a[i].name,&a[i].age,a[i].sex,a[i].ID,a[i].cellphone,&a[i].time); /*将文件数据写入数组*/
}
*n=i;
order=*n;
fclose(fp);
}
void savefile(student *a,int n) /*保存修改数据*/
{
FILE *fp=NULL;
int i=0,j=0;
fp=fopen("date.txt","w");
if(fp==NULL)
{
printf("can't save file");
getch();
exit(0);
}
for(i=0;i<n;i++)
{
fprintf(fp,"%5d %10s",a[i].num,a[i].name);
fprintf(fp,"%3d %5s %18s %11s %8d",a[i].age,a[i].sex,a[i].ID,a[i].cellphone,a[i].time);
fprintf(fp,"\n");
}
fclose(fp);
printf("you have saved successfully!");
}
void add(student *a,int *n) /*添家学生数据*/
{
char decide='\0',chose;
float t0=0,t1=0;
do
{
a[*n].num=++order;
printf("please enter the name:");
scanf("%s",a[*n].name);
printf("please enter the sex:");
scanf("%s",&a[*n].sex);
printf("please enter the age:");
scanf("%d",&a[*n].age);
printf("please enter the ID number:");
scanf("%s",a[*n].ID);
printf("please enter the contact way:");
scanf("%s",a[*n].cellphone);
printf("please enter the time(according to 20080210):");
scanf("%ld",&a[*n].time);
*n=*n+1;
printf("will you continue to add(y/n)? ");
scanf(" %c",&decide);
}while(decide=='Y'||decide=='y');
findall(a,*n);
printf("\n");
printf("would you save your changing(y/n)?");
scanf(" %c",&chose);
if(chose=='y'||chose=='Y')
savefile(a,*n);
else printf("you will not save your changing.");
printf("\n");
printf("press any key to continue.");
getch(); /*按任意键退出*/
}
void add2(student *a,int *n) /*添家学生数据*/
{
char decide='\0',chose;
float t0=0,t1=0;
do
{
a[*n].num=++order;
printf("请输入姓名:");
scanf("%s",a[*n].name);
printf("请输入性别:");
scanf("%s",&a[*n].sex);
printf("请输入年龄:");
scanf("%d",&a[*n].age);
printf("请输入身份证号:");
scanf("%s",a[*n].ID);
printf("请输入联系方式:");
scanf("%s",a[*n].cellphone);
printf("请输入预约时间(以以下格式20080210):");
scanf("%ld",&a[*n].time);
*n=*n+1;
printf("您是否需要继续添加(y/n)? ");
scanf(" %c",&decide);
}while(decide=='Y'||decide=='y');
findall2(a,*n);
printf("\n");
printf("您要保存修改的信息吗(y/n)?");
scanf(" %c",&chose);
if(chose=='y'||chose=='Y')
savefile(a,*n);
else printf("抱歉,无法保存.");
printf("\n");
printf("请按任意键继续.");
getch(); /*按任意键退出*/
}
void delate(student *a,int *n) /*删除数据*/
{
char decide='\0',chose;
char str[10];
int i=0,j=0;
do
{
printf("please input the name to delate: ");
scanf("%s",str);
for(i=0;i<*n;i++)
if(strcmp(a[i].name,str)==0)
{
for(j=i;j<*n-1;j++)
{
a[j]=a[j+1];
a[j].num--;
}
*n=*n-1;
break;
}
if(i==*n)
printf("there is no this person!\n");
printf("will you continue to delete(y/n)?");
scanf(" %c",&decide);
}while(decide=='Y'||decide=='y');
findall(a,*n);
printf("\n");
printf("would you save your changing(y/n)?");
scanf(" %c",&chose);
if(chose=='y'||chose=='Y')
savefile(a,*n);
else printf("you will not save your changing.");
printf("\n");
printf("press any key to continue.");
getch();
}
void delate2(student *a,int *n) /*删除数据*/
{
char decide='\0',chose;
char str[10];
int i=0,j=0;
do
{
printf("请输入删除的姓名: ");
scanf("%s",str);
for(i=0;i<*n;i++)
if(strcmp(a[i].name,str)==0)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -