排队叫号系统软件设计毕业设计论文(编辑修改稿)内容摘要:

域,因此医生不要无原因的使用该权限修改看诊顺序,避免造成候诊区域的混乱。 沈阳理工大学学士学位论文 沈阳理工大学学士学位论文 第 3 章 排队叫号系统的实现与测试 本章首先对医院的业务流程进行分析,提取出智能医导系统的基本需求,然后依据需求分析结果 分别完成系统的前台和后台的软件设计。 前台软件功能介绍 程序中,分别实现了客户端和服务器的排号功能和叫号功能,客户端排号功能表现为,显示排序号,排队剩余人数。 服务器端实现对不同队列的叫号功能,并在界面显示对应提示。 客户端排号功能实现过程 定义初始人数和排队剩余人数,按初始界面提示的不同功能,对排队人数 进行累加操作,然后显示出排队序号和队伍中人数。 int counter = 0。 int first_person = 0。 int vip_counter = 0。 int vip_first_person = 0。 初始值都赋值为 0。 分为正常队伍,和 vip 队伍。 printf(————————————————— \n)。 printf(|序号 B%d 排队人数 %d|\n, vip_counter, vip_countervip_first_person1)。 printf(—————————— ——————— \n)。 排队序号的显示格式和对应数据的具体操作。 服务器叫号功能实现过程 接收客户端数据,首先进行正常用户和 vip 客户的判断,然后输出对应数据,并显示沈阳理工大学学士学位论文 相应友好提示。 printf(请 %s,buf_ret)。 //write(1, buf_ret, read_ret)。 printf(号,到服务窗口 \n)。 界面设计过程 用 printf 构建简单界面,给出对应提示。 如图 所示: 界面显示示意图。 主要实现代码 主要包块客户端和服务 区两个模块的代码,并解释代码实现的功能。 客户端主要实现代码 include include include sys/ include sys/ include include include arpa/ 沈阳理工大学学士学位论文 注释:导入对应头文件。 define myperr(x) perror(x)。 exit(0) 注释:预定义错误判断。 void main() { int sockfd, ret。 sockfd = socket(AF_INET, SOCK_STREAM, 0)。 if(sockfd == 1) { myperr(socket)。 } struct sockaddr_in servaddr。 memset(amp。 servaddr, 0, sizeof(servaddr))。 = AF_INET。 = htons((short)4008)。 注释 : IPV4 地址结构,并转换成 16 位网络字节序 struct hostent* server。 server = gethostbyname()。 沈阳理工大学学士学位论文 if(server == NULL) { herror(gethostbyname)。 exit(0)。 } = *(uint32_t*)serverh_addr。 //i_pton(AF_INET, , amp。 )。 ret = connect(sockfd, (struct sockaddr*)amp。 servaddr, sizeof(servaddr))。 注释: 给出固定地址结构参数。 if(ret == 1) { myperr(connect)。 } char buf[128]。 char buf_ret[1024]。 注释: 定义传递数组。 int read_ret。 while(1) { 沈阳理工大学学士学位论文 //scanf(%s, buf)。 //write(sockfd, buf, strlen(buf))。 printf(****************\n)。 printf(按回车开始下一个 \n)。 printf(****************\n)。 注释: 客户端给出提示界面。 getchar()。 注释: 接收回车。 memset(buf_ret, 0, sizeof(buf_ret))。 注释: 读写前,清空数组。 read_ret = read(sockfd, buf_ret, sizeof(buf_ret))。 printf(请 %s,buf_ret)。 //write(1, buf_ret, read_ret)。 printf(号,到服务窗口 \n)。 注释: 显示对应友好提示。 fflush(stdout)。 注释: 释放空间。 } 沈阳理工大学学士学位论文 } 服务器主要实现代码 include include include arpa/ //include include include sys/ include sys/ include include define myperr(x) perror(x)。 exit(0) 注释:头文件导入。 int counter = 0。 int first_person = 0。 int vip_counter = 0。 int vip_first_person = 0。 沈阳理工大学学士学位论文 int flg = 0。 注释:定义全局变量。 void main() { int sockfd,sel。 pid_t pid_s。 pid_s = fork()。 注释:创建子进程。 if(pid_s == 0) { while(1) { printf(\t\t\t\t*********************** 沈阳盛京医院*************************\n)。 printf(\t\t\t\t\t\t\t 请选择所需服务 \n)。 printf(\t\t\t\ /出院 会员 \n)。 printf(\t\t\t\t*********************** 沈阳盛京医院*************************\n)。 注释:完成界面显示功能。 沈阳理工大学学士学位论文 scanf(%d,amp。 sel)。 注释:接收选择选号。 if(sel 2) { //超级选项 flg = 1。 getchar()。 vip_counter++。 printf(\n)。 printf(\n)。 printf(——— —————————————— \n)。 printf(| 序号 B%d 排 队 人 数 %d|\n, vip_counter, vip_countervip_first_person1)。 printf(————————————————— \n)。 printf(\n)。 printf(\n)。 沈阳理工大学学士学位论文 } 注释: vip 数据处理过程。 else { getchar()。 counter++。 printf(\n)。 printf(\n)。 printf(————————————————— \n)。 printf(|序号 A%d 排队人数 %d|\n, counter, counterfirst_person1)。 printf(————————————————— \n)。 printf(\n)。 printf(\n)。 } 注释:正常数据处理过程。 } } else if(pid_s 0) 沈阳理工大学学士学位论文 { int sockfd, nsock。 int ret。 struct sockaddr_in servaddr, cliaddr。 // struct hostent* hostall。 sockfd = socket(AF_INET, SOCK_STREAM, 0)。 if(sockfd == 1) { myperr(socket)。 } memset(amp。 servaddr, 0, sizeof(servaddr))。 = AF_INET。 = htons((short)4008)。 // hostall = gethostbyname()。 = INADDR_ANY。 ret = bind(sockfd, (struct sockaddr*)amp。 servaddr, sizeof(servaddr))。 注释:与客户端构架连接。 if(ret == 1) 沈阳理工大学学士学位论文 { myperr(bind)。 } ret = listen(sockfd, 100)。 if(ret == 1) { myperr(listen)。 } int len。 pthread_t tid。 注释:创建线程,以及实现要球功能。 //while(1) //{ len = sizeof(cliaddr)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。