| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 411 人关注过本帖
标题:求完善啊,大神帮我把这个程序完善一下啊!
只看楼主 加入收藏
昵称
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2013-6-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
求完善啊,大神帮我把这个程序完善一下啊!
要求采用先来先就诊的排队方式(就诊顺序与挂号单编号无关),假设挂号时编码是连续的,但由于同一个门诊科目有3个诊室,其中35(含35)岁以上的在第一诊室,35岁以下男患者进第二诊室,其它的进第三诊室,程序启动后显示下列菜单:
【实现提示】
1--挂号
2--叫号
3--分诊室
4--显示各诊室队列信息
5--统计当天就诊的患者情况(要求按性别进行统计和按任意年龄区段进行统计)
6--结束程序
选1时,提示用户在一行内输入姓名及挂号单编号;
选2时,显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除
选3时,进行诊室分配
选4时,按队列顺序显示个诊室排队人的姓名、挂号单编号及所在诊室
选5时,进行两种统计方法的选择,并进行必要的统计计算
选6时,退出程序的运行
要求1~5中每一个步骤完成后都能重新显示此选择菜单。

#include "stdio.h"
typedef HuanZhe
{
    char name[20],sex[10];
    int num,age;
    char zs[20];
}Huanzhe;
void main()
{
    int choice;
    Menu();
    while(88)
    {
        scanf("%d",&choice);
        switch(choice)
       {
           case 1:Guahao();break;
           case 2:Diyi();break;
           case 3:zhenshi();break;
           case 4:Xinxi();break;
           case 5:Qingkuang();break;
           case 6:exit(1);
       }
    }
 }
void Menu()
{
    puts("    1--挂号    ");
    puts("    2--叫号    ");
    puts("    3--分诊室    ");
    puts("    4--显示各诊室队列信息    ");
    puts("    5--统计当天就诊的患者情况");
    puts("    6--结束程序    ");

}
void Guahao()    //提示用户在一行内输入姓名及挂号单编号
{
    char name[20];
    int num;
    puts("请在一行内输入姓名及挂号单编号");
    scanf("%s%d",name,&num);
}
void Diyi()   //显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除
{
    FILE *p;
    HuanZhe zh[100];
    p=fopen("患者信息.txt","r+");
    fprintf(p,"%s\t%d\t%d\t%s\n!",zh[1].name,zh[1].num);
}
void zhenshi()    //进行诊室分配
{
    char zs1[20]={在第一诊室就诊!};
    char zs2[20]={在第二诊室就诊!};
    char zs3[20]={在第三诊室就诊!};
    FILE *p,*q;
    p=fopen("患者信息.txt","r+");
    q=fopen("诊室分配.txt","a+");
    int i;
    HuanZhe zh[100];
    for(i=0;i++;i<6)
        fscanf(p,"%d",zh[i].age);
    for(i=0;i++;i<6)
    {
        if(zh[i].age>=35)
            fprintf(q,"%s\t%d\t%d\t%s\n!",zh[i].name,zh[i].num,zs1);
        if(zh[i].age<35)
            fprintf(q,"%s\t%d\t%d\t%s\n!",zh[i].name,zh[i].num,zs2);
        else
            fprintf(q,"%s\t%d\t%d\t%s\n!",zh[i].name,zh[i].num,zs3);
    }
}
void Xinxi()   //按队列顺序显示个诊室排队人的姓名、挂号单编号及所在诊室
{
    HuanZhe zh[100];
    FILE *q;
    int i;
    q=fopen("诊室分配.txt","r+");
    for(i=0;i++;i<6)
        fprintf(q,"%s\t%d\t%d\t%s\n!",zh[i].name,zh[i].num,zh[i].zs);
}
void Qingkuang()   //进行两种统计方法的选择,并进行必要的统计计算     要求按性别进行统计和按任意年龄区段进行统计
{
    FILE *p;
    int num1=0,num2=0,num3=0,num4=0;
    HuanZhe zh[100];
    p=fopen("患者信息.txt","r+");
    for(i=0;i++;i<6)
        fscanf(p,"%d",zh[i].age);
    for(i=0;i++;i<6)
    {
        if(zh[i].sex==男)
            num1++;
        if(zh[i].sex==女)
            num2++;
        if(zh[i].age<=20)
            num3++;
        if(zh[i].age<=60)
            num4++;
        if(zh[i].age<200)
            num5++;
    }
    printf("男性患者有%d人\n",num1);
    printf("女性患者有%d人\n",num2);
    printf("少年患者有%d人\n",num3);
    printf("中年患者有%d人\n",num4);
    printf("老年患者有%d人\n",num5);

}
搜索更多相关主题的帖子: 统计 先来 信息 姓名 
2013-06-20 14:15
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:20 
代码里面没有队列结构,没有队列的基本操作

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-06-21 05:23
快速回复:求完善啊,大神帮我把这个程序完善一下啊!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.068563 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved