机房机位预约模拟管理系统设计源代码.docx

合集下载

会议室预定系统报告

会议室预定系统报告

计算机与通信工程学院实验报告(软件实验用)一、实验目的掌握对复杂系统的建模和编码能力,能在正确建模的基础上编写Java程序实现系统功能。

二、实验内容实现会议室预定系统的建模和编码。

三、实验平台Windows操作系统,四、设计流程1、系统分析会议室预定系统的参与者为公司员工、A/V设备中心;用例图如下所示://设备类public class Device//属性public String deviceName;六、调试和测试结果1、登陆界面员工可先输入姓名,再选择用户类型为员工即可进入员工操作界面,如图1和图2:图1 登陆窗口图2 员工操作窗口2、如果选择预定会议室按钮,会出现调查表的界面,并且其中的员工信息由系统自动写入,用户不需输入。

在其中输入有关的会议室参数,输入完后点击查找即可弹出合适的会议室清单,若点击取消,调查表就会消失,如图3、图4所示:图3 调查表图4 显示可用的会议室列表3、在弹出的可用的会议室列表中选择其中任一个,点击选择按钮,会弹出指定日期和时间窗体,先在左边指定日期,单击选中按钮,右边会出现相应日期中可用的时间范围,选择其中一个,然后在指定会议主题文本域中输入会议的主题,最后点击预定即可按照我们输入选择的这些信息预定我们需要的会议室,如图5:图5 指定日期和时间4、如果在员工操作窗口中点击查询会议室按钮,会弹出图6所示的窗口,在此窗口中输入相应的信息,即可查询出谁在指定的日期和时间预定了特定的会议室,如图7所示:图6 查询窗口图7 查询的指定会议室安排者的信息5、如果在员工操作窗口中点击取消会议室预定按钮,会弹出当前登陆的员工准备参加的所有会议列表,选中其中一个,点击取消预定了按钮即可取消这个会议。

如图8所示:图8 取消会议室预定6、如果是A/V设备中心登陆,只需在用户类型中选择A/V设备中心,点击确定按钮就会弹出一个报表,报表指明12个月周期内特定设备被使用了多少次,如图9、图10:图 9 A/V设备中心登陆图10 设备使用报表七、教师批语与成绩评定1、评分指标评分项目等级(1) 是否遵循建模原则(模型、数据、表示层分离)(2) Java代码编写是否规范(3) 模型评价(4) 程序功能是否完整、细致(5) 系统运行情况(6) 系统难度(7) 完成系统的工作量(8) 编写系统的努力程度(9) 数据库或文件访问功能(10)用户界面。

计算机机房机房管理系统源程序(C++)

计算机机房机房管理系统源程序(C++)

#include<stdio.h>#include<string.h>#include<time.h>#include<stdlib.h> /*颜色控制*/#define MaxSize 100/*定义1符号常量*/FILE *fp;struct student_info{ int seat; //机号char name[10]; //姓名char zhuangtai[30];long stu_num; //学号int time;char kaishi[10];}StudentList[MaxSize];void denglu();void Search();void Show();void xiugai();void xiaji();void satutation();void luru();void exiit();//主菜单void main(){int i,j;system("color 4D"); //字体和背景颜色for(j=1;j<=100;j++){StudentList[j].time=0; //给所有机子上机时间赋值为0,代表空机 StudentList[j].seat=j; //给所有机子编号 }do{printf("\t\t\t★★★★★★★★★★★★★★★★★\n\n");//显示一个简易菜单printf("\t\t\t ◆◆欢迎使用机房管理系统◆◆ \n\n");printf("\t\t\t★★★★★★★★★★★★★★★★★\n\n");printf("\n");printf("☆¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤☆\n");printf("☆\t\t\t1-- -登陆计算机(denglu)☆\n"); printf("☆\t\t\t2----查询单个上机信息(Search)☆\n");printf("☆\t\t\t3----显示所有使用者信息(Show)☆\n");printf("☆\t\t\t4----修改电脑使用者信息(xiugai)☆\n");printf("☆\t\t\t5----下机(xiaji)☆\n");printf("☆\t\t\t6----查询某计算机位置(satutation) ☆\n");printf("☆\t\t\t7----计算机信息录入 (luru) ☆\n");printf("☆\t\t\t8----退出(Exiit)☆\n");printf("☆¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤☆\n");printf("请输入要选择功能的代码:\n");scanf("%d",&i); //接受用户的选择switch(i){case 1:denglu(); //调用学生信息输入函数break;case 2:Search(); //调用上机信息查询函数break ;case 3:Show(); //调用上机信息全显示函数break;case 4:xiugai(); //调用上机信息修改函数break;case 5:xiaji(); //调用计费函数break;case 6:satutation();break;case 7:luru();break;case 8: exiit();break;default:printf("错误选择!请重选");break;}}while(i!=8);}/*模块一登陆计算机*/void denglu(){int i,k=0; /*全局变量*/for(i=1;i<=100;i++){if(StudentList[i].time==0) //检测机房是否有空机位 k=0;elsek=1;}if(k!=0){printf("机房已满!");return;}elseprintf("请输入机号:");scanf("%d",&i);if(i>100){printf("请输入小于等于100的数");return;}if(StudentList[i].time!=0){printf("已经有人正在操作此机:");return;}elseprintf("请输入上机者姓名:");scanf("%s",StudentList[i].name);printf("请输入上机者学号:");scanf("%ld",&StudentList[i].stu_num);printf("请输入上机时刻:");scanf("%s",&StudentList[i].kaishi);printf("请输入上机时间:");scanf("%d",&StudentList[i].time);printf("\n\n");FILE *fp;fp=fopen("c:\\上机信息.doc","w");for (i=0;i<100;i++){ if (fwrite(&StudentList[i],sizeof(struct student_info),1,fp)!=1)printf("file write error\n");}fclose(fp);}//模块二查询单个上机信息void Search(){int i;printf("请输入要查询的机号:");scanf("%d",&i);if(StudentList[i].time!=0) //是否上机{printf("姓名:%s\t\t",StudentList[i].name);printf("学号:%ld\t\t",StudentList[i].stu_num);printf("上机时刻:%s\t\t",StudentList[i].kaishi);printf("上机时间:%d\t\t",StudentList[i].time);printf("状态:计算机正在使用");}elseprintf("计算机未使用");printf("\n\n");}//模块三显示所有使用者信息void Show(){int i;printf("\n");printf("机号\t姓名\t学号\t上机时刻\t上机时间\t计算机状态\n");for(i=1;i<=100;i++)if(StudentList[i].time!=0) //判断标准,检索到则输出 {printf("%d\t",StudentList[i].seat);printf("%s\t",StudentList[i].name);printf("%ld\t",StudentList[i].stu_num);printf("%s\t",StudentList[i].kaishi);printf("%d\t\t",StudentList[i].time);printf(" 计算机正在使用\n");}else{printf("%d\t",i);printf("无\t");printf("无\t");printf("无\t\t");printf("无\t\t");printf(" 计算机未使用\n");} printf("\n\n");}//模块四修改上机信息void xiugai(){int i;printf("请输入要修改数据的机号:");scanf("%d",&i);if(StudentList[i].time!=0){printf("请输入姓名:");scanf("%s",StudentList[i].name);printf("请输入学号:");scanf("%d",&StudentList[i].stu_num);printf("请输入上机时刻:");scanf("%s",&StudentList[i].kaishi);("请输入上机时间:");scanf("%d",&StudentList[i].time);}elseprintf("计算机未使用");printf("\n\n");}//模块五下机void xiaji(){int j,m; char a;printf("您是否要下机?\n");L1:;printf("请输入输入y下机,输入其他返回\n");scanf("%s",&a);if(a=='y'||a=='Y'){printf("\n\t请输入您所使用的计算机的序号(1--100):");scanf("%d",&m);for(j=1;j<=100;j++){if(j==m)StudentList[j].time=0; }printf("\n\n");}elsegoto L1;printf("\n\n");}//模块六查询计算机位置void satutation(){ int i,j,k,m=1;char a[20][5];for (i=0;i<20;i++)for (j=0;j<5;j++){a[i][j]=m;m=++m;}printf("请输入查询的机号:");scanf("%d",&k);if(k>100)printf("请输入小于等于100的数");else{ for (i=0;i<20;i++)for (j=0;j<5;j++)if(a[i][j]==k)printf ("该机号对应的计算机在第%d行,第%d列",i+1,j+1);} printf("\n\n");}//模块七计算机信息录入与显示void luru(){int i;int a;printf("\n您是要重新录入计算机信息,还是要查询计算机信息?\t\n"); printf("1: 重新录入计算机信息,\n2: 查询计算机信息\n");scanf("%d",&a);switch(a){case 1:for(i=1;i<=100;i++){ StudentList[i].seat=i;printf("计算机序号:%d",StudentList[i].seat);printf("\n请输入上机者姓名:\n");scanf("%s",StudentList[i].name);printf("请输入上机者学号:\n");scanf("%ld",&StudentList[i].stu_num);printf("请输入上机时刻:\n");scanf("%s",&StudentList[i].kaishi);printf("请输入上机时间:\n");scanf("%d",&StudentList[i].time);printf("输入计算机状态:\n");scanf("%s",&StudentList[i].zhuangtai);printf("\n");}FILE *fp;fp=fopen("c:\\上机信息.doc","w");for (i=1;i<=100;i++){ if (fwrite(&StudentList[i],sizeof(structstudent_info),1,fp)!=1)printf("file write error\n");}fclose(fp);printf("\n\t\t\t\t数据已成功写入\n\t\t\t请按任意键返回主菜单!\n\n\n\n");getchar();break;case 2: fp=fopen("c:\\上机信息.txt","r");printf("\n\n\n\t序号\t姓名\t学号\t上机时刻\t上机时间\t\t\n\n");break;default:printf("请输入1或2 选择相应功能\n");luru();}printf("\n\n\n\n");}//模块八退出系统void exiit(){ char k;printf("您真的要退出本程序吗?\n");printf("输入 n或N将重新进入本程序,输入其他将退出该程序 !\n");printf("请输入: \n");scanf("%s",&k);switch(k){case 'n':main() ;break;default: printf("\n\n\n\n\n=================================感谢您的使用===================================\n 设计者:西安理工大学自动化学院\n\n\n\n\n ");}}。

机房管理系统设计方案

机房管理系统设计方案

目录1需求分析 (2)2 概要分析 (2)2.1 上机管理 (2)2.2 排课管理 (2)2.3 帐务管理 (3)2.4 设备管理 (3)2.5 系统功能 (4)2.6 查询统计 (4)2.7 远程监控 (5)3 概要设计 (5)3.1系统拓扑图 (5)3.2 系统结构流程图 (7)4 详细设计 (10)4.1 数据库定义 (10)1需求分析机房管理系统是一套基于图形用户界面(GUI)、下拉菜单以及导航功能相结合模式下的友好操作界面,易学易用。

系统采用服务器/客户机(C/S)方式,方便地实现多用户端、多机房统一管理。

系统功能齐全,可基本实现机房管理规范化、自动化以及信息化。

该系统主要包括:上机管理(教学任务外的业余上机)、排课管理(教学大纲任务、毕业设计、选修课)、帐务管理、设备管理、档案日志管理、查询统计、系统功能、远程监控等几大子系统,具有稳定、实用、操作简便等特点。

2 概要分析2.1 上机管理主要针对业余自由开放机房,提高机房资源利用,方便学生上机,减轻机房老师管理工作量。

实现网络管理与控制,实时辨别及处理上机、下机情况,实时计费,实时处理各种异常情况。

实现业余上机管理规范自动化、流程化。

主要功能如下:1、上机实时计费(上/下机实时辨别、计费)2、上机情况监控(机器使用情况/登陆情况/最近登陆情况/网络监控等)3、异常数据处理(处理非正常下机,断电等异常情况)4、异常上课处理(处理非正常上/下课,断电等异常情况)5、查询统计(查看及统计上机情况:流水帐/上机情况查询/登陆情况查询)6、机房机器使用统计(已登陆机器、未登陆机器、正常通过机器、非正常通过机器)7、监控日志(监控操作人员操作系统软件系统的日志)2.2 排课管理实现机房上机智能、动态排课及上课,满足正规机房教学任务,实现机房正规上课上机课时量化及细化管理。

集中规划教学任务规定上机实习课时,动态安排上机课程、上机地点、上机时间以及上机实习内容,自动管理识别业余上机和正课上机。

管理信息系统课程设计程序代码完整版

管理信息系统课程设计程序代码完整版

1、Program.csusing System;using System.Collections.Generic;using System.Windows.Forms;using xyq20091204;using System.Data.SqlClient;static class Program{///<summary>///应用程序的主入口点。

///</summary>[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new用户登录());if (SQL_Class.LoginState == 1)data.data.ConnStr = "Data Source=CAE47;Initial Catalog=xyq20091204;Integrated Security=True";Application.Run(new供应商管理信息系统());}}Property_Class.csusing System;using System.Collections.Generic;using System.Text;using ponentModel;namespace xyq20091204{class Property_Class{private string Id;private string Manager;private string Tel;private string Email;private string Addr;[CategoryAttribute("供应商基本信息"), DescriptionAttribute("显示供应商编号")] public string供应商编号{get { return Id; }set { Id = value; }}[CategoryAttribute("供应商基本信息"), DescriptionAttribute("显示负责人")] public string负责人{get { return Manager; }set { Manager = value; }}[CategoryAttribute("供应商基本信息"), DescriptionAttribute("显示联系电话")] public string联系电话{get { return Tel; }set { Tel = value; }}[CategoryAttribute("供应商基本信息"), DescriptionAttribute("显示电子邮箱")] public string电子邮箱{get { return Email; }set { Email = value; }}[CategoryAttribute("供应商基本信息"), DescriptionAttribute("显示通讯地址")] public string通讯地址{get { return Addr; }set { Addr = value; }}}}2、SQL_Class.csusing System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;namespace xyq20091204{public class SQL_Class{public static int LoginState = 0;public static SqlConnection xyq_con;public static string xyq_sqlcon = "Data Source=CAE47;InitialCatalog=xyq20091204;Integrated Security=True";public static SqlConnection getcon(){xyq_con = new SqlConnection(xyq_sqlcon); //用SqlConnection对象与指定的数据库相连接 xyq_con.Open(); //打开数据库连接return xyq_con; //返回SqlConnection对象的信息}public void con_close(){if (xyq_con.State == ConnectionState.Open) //判断是否打开与数据库的连接{xyq_con.Close(); //关闭数据库的连接xyq_con.Dispose(); //释放xyq_con变量的所用空间}}public SqlDataReader getcom(string SQLstr){getcon(); //打开与数据库的连接SqlCommand xyq_com = xyq_con.CreateCommand(); //创建一个SqlCommand对象,用于执行SQL语句xyq_mandText = SQLstr; //获取指定的SQL语句SqlDataReader xyq_read = xyq_com.ExecuteReader(); //执行SQL语句,生成一个SqlDataReader结果return xyq_read; //返回读取结果}public void getsqlcom(string SQLstr){getcon(); //打开与数据库的连接SqlCommand SQLcom = new SqlCommand(SQLstr, xyq_con);//创建一个SqlCommand对象,用于执行SQL语句SQLcom.ExecuteNonQuery(); //执行SQL语句SQLcom.Dispose(); //释放SQLcom变量的所有空间con_close(); //调用con_close()方法,关闭与数据库的连接}public DataSet getDataSet(string SQLstr, string tableName){getcon(); //打开与数据库的连接SqlDataAdapter SQLda = new SqlDataAdapter(SQLstr,xyq_con);//创建SqlDataAdapter对象,以读取数据库中的信息DataSet xyq_DataSet = new DataSet(); //创建dataset对象SQLda.Fill(xyq_DataSet, tableName); //把读取的数据写入指定的数据表中return xyq_DataSet; //返回DataSet对象的信息}}}3、供应商管理信息系统.csusing System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using xyq20091204;using System.Collections;namespace xyq20091204{public partial class供应商管理信息系统 : Form{SQL_Class SQLClass = new SQL_Class(); //创建一个SQL_Class对象SQLClass,用以调用SQL_Class类中的函数TreeNode SelectNode = new TreeNode(); //创建一个TreeNode对象SelectNode,用以存储被选中的树节点///<summary>///定义一个全局变量,表示左侧的树结构选择的是哪一个///</summary>private string _treeNode = "";public供应商管理信息系统(){InitializeComponent();}private void供应商管理信息系统_Load(object sender, EventArgs e){TreeNode rootnode = new TreeNode("供应商列表", 1, 2); //创建一个TreeNode对象rootnodetreeView1.Nodes.Add(rootnode); //把创建的rootnode添加为treeview1的根节点}private void UpdateTreeview1() // 加载treeview1根节点下面的子节点{treeView1.Nodes[0].Nodes.Clear(); //把根节点下面的子节点全部清除listView1.Items.Clear(); //清除listView1中的数据//创建一个DataSet对象,并把SQL的查询结果赋值给DSetDataSet DSet = SQLClass.getDataSet("select * from 供应商类别表","供应商类别表");DataTable dt = DSet.Tables["供应商类别表"]; //创建一个DataTable对象if (dt.Rows.Count > 0) //如果查询结果表中有数据for (int i = 0; i < dt.Rows.Count; i++){TreeNode node = new TreeNode(dt.Rows[i]["供应商类别名称"].ToString(), 1, 2);//创建一个TreeNode对象,并对node的属性进行赋值 = dt.Rows[i]["供应商类别编号"].ToString();node.Tag = "供应商类别";treeView1.Nodes[0].Nodes.Add(node); //把node添加到根节点上DataSet DS = SQLClass.getDataSet("select 供应商编号, 供应商名称from 供应商信息表where 供应商类别='"+dt.Rows[i][1].ToString ()+"'", "供应商信息表");DataTable dt1 = DS.Tables["供应商信息表"]; //创建一个DataTable对象if (dt1.Rows.Count > 0)for (int j = 0; j < dt1.Rows.Count; j++){TreeNode node1 = new TreeNode(dt1.Rows[j][1].ToString(), 1, 1);//创建一个TreeNode对象,并对node的属性进行赋值 = dt1.Rows[j][0].ToString();node1.Tag = "供应商";node.Nodes.Add(node1);}} SQLClass.con_close(); //关闭数据库连接,释放资源}private void UpdateListview1(string sql) //加载listview1中的数据,其中sql参数表示传递的SQL语句。

c语言课程设计--机房机位预定系统-绝对正确-附源代码解析

c语言课程设计--机房机位预定系统-绝对正确-附源代码解析

1 设计目的机房机位预定系统2 任务概述20台机器,编号1到20,从早八点到晚八点。

两小时一个时间段,每次可预定一个时间段。

功能要求:(1)系统以菜单方式工作(2)查询,根据输入时间,输出机位信息。

(3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。

(4)退出预定,根据输入的时间,机器号撤销该事件的预定!(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。

.........3 模块划分4 主要函数说明及其N-S图1. 主函数:int main(){Menu(); /*当前状态函数*/}void Menu() /*主界面*/{int n,w;do{puts("\t\t****************机房机位预约系统*******************\n");puts("\t\t*************************菜单***************************\n");puts("\t\t\t 1.查询某时间段机位状态"); /*查询某时间段机位状态*/puts("\t\t\t 2.预定空机位"); /*预定空机位*/puts("\t\t\t 3.取消预订"); /*取消预订*/puts("\t\t\t 4.查询等待信息"); /*查询等待信息*/puts("\t\t\t 5.退出"); /*退出*/puts("\t\t********************************************************\n");printf("选择菜单号(1-5):");scanf("%d",&n);if(n<1||n>5){w=1;getchar();}elsew=0;}while(w==1);switch(n){case 1:Situation();break;case 2:Book();break;case 3:Cancel();break;case 4:SearchWaiting();break;case 5:exit(0);break;}getch();}2.机位查询:void Situation(){int time;printf("输在(8-20)范围内的时间:");scanf("%d",&time);if(time<8||time>20){printf("\t时间输入错误!\n");printf("输入在(8-20)范围内的时间:");scanf("%d",&time);}detail(time); /*函数调用*/getchar();Menu();}3.机位预定:void Book(){int time,i=0,x,y;FILE *fp;char c;printf("在(8-20)时间范围内输入你想要预定的时间:");scanf("%d",&time);if(time<8||time>20){printf("\t时间输入错误!\n");printf("\t在(8-20)时间范围内输入你想要预定的时间:");scanf("%d",&time);}detail(time); /*函数调用*/if(sum[T]>0){ if((fp=fopen("waitlist.txt","a"))==NULL){printf("\n无法打开文件!\n");exit(0);}printf("\n\t请输入你想要预定的机号,并且留下你的电话号码!:\n");scanf("%s %s",wait[i].number,wait[i].telephonenumber);for(i=0;i<1;i++)fwrite(&wait[i],sizeof(struct waitlist),1,fp);fclose(fp);/*向文本文档添加一个结构体单元*/printf("\t再次输入你想要预定的时间!\n");scanf("%d",&x);/*sum[T]--; / *预定后该时间段空机位数减1*//*computer[T][x]=1; / *预定后该机状态变为1*/printf("\t预订成功!\n");getchar();Menu();}else{printf("这是在这个时间段内未预定的电脑!\n");for(i=T+1;i<6;i++){ time=9+2*i;detail(time); /*函数调用*/if(sum[T]>0)printf("\tThe latest free time is %d,%d\n",2*i+8,2*i+10);break;}printf("\t你想要预定吗?:y/n?");scanf("%s",&c);getchar();if(c=='Y'||c=='y'){if((fp=fopen("waitlist.txt","r"))==NULL){printf("\n无法打开文件!\n");exit(0);}else{ printf("waitlist:number telephonenumber\n");for(i=0;!feof(fp);i++){fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);}fclose(fp);}for(i=0;i<10;i++){ prione(i);}printf("\n\t请输入你想要预定的机号,并且留下你的电话号码!:\n");if((fp=fopen("waitlist.txt","a"))==NULL){printf("\n无法打开文件!\n");exit(0);}scanf("%s %s",wait[i].number,wait[i].telephonenumber);for(i=0;i<1;i++)fwrite(&wait[i],sizeof(struct waitlist),1,fp);fclose(fp); /*若等待,就用文件的方式列出当时的等待列表并提示输入你的等待序号和联系方式*/printf("再次输入电脑的序号!\n");scanf("%d",&y);sum[T]--;computer[T][y]=1;printf("\t好了,请等待我们的电话!\n");Menu();}else Menu();}}N4.取消预定:void Cancel(){int time,number;printf("在(8-20)时间范围内输入你已经预定的时间:");scanf("%d",&time);if(time<8||time>20){printf("\t输入时间错误!\n");printf("\t在(8-20)时间范围内输入你已经预定的时间:");scanf("%d",&time);}else{printf("\t输入你预定的机号:");scanf("%d",&number);}detail(time);/* sum[T]++; / *预定后该时间段空机位数加1*//*computer[T][number]=0; / *预定后该机状态变为0*/printf("\t取消成功!\n");getchar();Menu();}5.查询等待信息:void SearchWaiting(){int time,i;FILE *fp;printf("\tInput time you want to search between(8-20):");scanf("%d",&time);if(time<8||time>20){printf("\tWrong time!\n");printf("\tInput time you want to search between(8-20):");scanf("%d",&time);}else;if((fp=fopen("waitlist.txt","r"))==NULL){printf("\nCannot open file!\n");exit(0);}else{ printf("waitlist:number telephonenumber\n");for(i=0;!feof(fp);i++){fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);}fclose(fp);}for(i=0;i<10;i++){ prione(i);}Menu();}5 程序运行数据及其结果1.主菜单:2.机位查询:3.机位预定:4.查询等待信息:6 课程设计心得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。

机房预约系统课程设计报告

机房预约系统课程设计报告

机房预约系统课程设计报告Last updated on the afternoon of January 3, 2021课程设计(论文)任务书软件学院软件+ 信控专业 1 班一、课程设计(论文)题目机房机位预约模拟系统的设计与实现二、课程设计(论文)工作自 2017 年 1月 2日起至2017 年 1月6 日止。

三、课程设计(论文) 地点: 南区创新大楼东楼406四、课程设计(论文)内容要求:1.课程设计的目的《数据结构》课程设计是计算机科学与技术专业集中实践性环节之一,是学习完《数据结构》课程后进行的一次全面的综合练习。

目的是要达到理论与实际应用相结合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养良好的程序设计技能。

要求能从实际应用问题出发,合理地选择数据结构,设计相应的数据处理算法,并对算法进行必要的分析;合理选择编程工具,实现数据的物理结构和相应的数据处理算法;对算法进行调试和测试,并对调试及测试结果进行分析;针对数据结构及算法的设计、调试及测试过程认真写出设计分析报告。

2.课程设计的要求及任务(1)基本要求1)初步掌握软件开发过程的问题分析、系统设计、程序编码、调试等基本方法和技能。

2)要求从问题需求入手,完成系统的分析与设计,独立完成系统的数据和功能分析,应用《数据结构》知识,设计抽象数据类型、构思算法、完成系统的设计。

3)结合《数据结构》理论知识,编写程序求解指定问题,程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释。

4)认真完成系统的调试与测试工作,测试数据要完备,详细记录测试结果。

5)规范撰写课程设计报告。

(2)课程设计论文撰写要求1)按照书稿的规格撰写打印课程设计论文;2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等;3)正文中要有问题描述与分析、数据结构的设计、算法的设计、算法的实现、调试分析与结果;4)课程设计论文装订按学校的统一要求完成(3)课设考核1)考勤和态度;2)任务的难易程度及设计思路;3)编码及调试能力;4)论文撰写的水平、格式的规范性。

航空管理系统课程设计实验报告+源代码

航空管理系统课程设计实验报告+源代码

一、实验名称:航空客运定票系统二、实验内容描述:航空客运订票的业务活动包括:查询航线、客票预定和办理退票等。

试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。

三、程序设计指导思想:本系统是利用VB6.0作为开发语言,Microsoft access作为后台数据库的航空预订票系统。

主要掌握VB与数据库的连接,从而来完成系统。

四、程序设计1、系统软件总体设计(1)数据库表设计系统数据库中有航班信息表、乘客信息表。

(2)软件结构设计系统软件设计遵循模块化程序设计的思想。

系统程序由订票管理模块、退票管理模块和退出系统模块组成。

(3)功能结构图2、程序框图及必要的说明3、程序总体设计:(1)、新建工程根据需要添加窗体:在界面添加各类控件特别地,添加用来连接数据库的控件1、首先,在“工程”中“部件”中添加Adodc控件和Datagrid控件2、将控件放入窗体设计界面中3、进行Adodc控件主要属性设置点击“下一步”则:选择数据库测试连接记录源设置:3、进行Datagrid控件主要属性设置:将它的DataSource设置为如图示对相关控件进行属性设置(2)、数据库的建立(3)、程序编写五、设计过程(界面)登录系统界面:首页:查询界面:订票界面:退票界面:六、主要程序代码1.登录系统:Private Sub Command1_Click()If Text1.Text = 1 And Text2.Text = 123 Then 用户登录system.Show 调用首页Else 输入不成功时重新清空MsgBox "用户名或密码错误!请重新输入!", , "提示"Text1.Text = ""Text2.Text = ""Text1.SetFocusEnd IfMe.Hide 隐藏窗体End SubPrivate Sub Command2_Click()Me.HideEnd Sub2.首页:Private Sub mnuback_Click() 调用退票窗体back.ShowMe.HideEnd SubPrivate Sub mnubookfind_Click() 调用查询窗体find.ShowMe.HideEnd SubPrivate Sub mnudingpiao_Click() 调用订票窗体book.ShowMe.HideEnd SubPrivate Sub mnuoutme_Click() 退出系统Unload MeEnd Sub3.查询:Dim cnn As New ADODB.ConnectionDim rst As New ADODB.RecordsetPrivate Sub Calendar1_Click() 日历txt_date.Text = Me.Calendar1.ValueEnd SubPrivate Sub cmdfind_Click() 查询程序Dim sQSql As StringIf (Trim(Combo1(0)) = "") Or (Trim(Combo1(1)) = "") ThenMsgBox "请设置查询条件!", vbOKOnly + vbExclamation, "警告"Exit Sub 根据出发地和目的地查询ElsesQSql = "select * from find where fplace = '" & Trim(Combo1(0).Text) & "' and fdes = '" & Trim(Combo1(1).Text) & "'" 查询语句Adodc1.RecordSource = sQSql 显示查询结果Adodc1.RefreshDataGrid1.ReBindEnd IfEnd SubPrivate Sub Cmdout_Click() 退出Me.Hidesystem.Show 重新显示首页End SubPrivate Sub Command1_Click() 调用订票窗体book.Showfind.HideEnd SubPrivate Sub Command2_Click() 显示全部航班Dim s As Strings = "select * from find"Adodc1.RecordSource = sAdodc1.RefreshDataGrid1.ReBindEnd SubPrivate Sub Form_Load() 初始化combobox控件 Dim sSql As StringDim txtSQL As StringDim MsgText As StringDim mrc As ADODB.RecordsetFor i = 0 To 1Combo1(i).ClearNext itxtSQL = "select DISTINCT fplace from find"Set mrc = ExecuteSQL(txtSQL, MsgText)If Not mrc.EOF ThenDo While Not mrc.EOFCombo1(0).AddItem Trim(mrc.Fields(0))mrc.MoveNextLoopElseMsgBox "请先进行航线信息设置!", vbOKOnly + vbExclamation, "警告"Exit SubEnd Ifmrc.ClosetxtSQL = "select DISTINCT fdes from find"Set mrc = ExecuteSQL(txtSQL, MsgText)If Not mrc.EOF ThenDo While Not mrc.EOFCombo1(1).AddItem Trim(mrc.Fields(0))mrc.MoveNextLoopElseMsgBox "请先进行航线信息设置!", vbOKOnly + vbExclamation, "警告"Exit SubEnd Ifmrc.CloseEnd SubPrivate Sub txt_date_GotFocus()Me.Calendar1.Visible = TrueMe.Calendar1.Top = 480Me.Calendar1.Left = 2760End SubPrivate Sub txt_date_LostFocus()Me.Calendar1.Visible = FalseEnd SubPublic Function ExecuteSQL(ByVal SQL As String, MsgString As String) 初始化ExecuteSQLAs ADODB.RecordsetDim cnn As ADODB.ConnectionDim rst As ADODB.RecordsetDim sTokens() As StringOn Error GoTo ExecuteSQL_ErrorsTokens = Split(SQL)Set cnn = New ADODB.Connectioncnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\数据库.mdb;Persist Security Info=False"If InStr("INSERT,DELETE,UPDATE", _UCase$(sTokens(0))) Thencnn.Execute SQLMsgString = sTokens(0) & _" query successful"ElseSet rst = New ADODB.Recordsetrst.Open Trim$(SQL), cnn, _adOpenKeyset, _adLockOptimisticSet ExecuteSQL = rstMsgString = "查询到" & rst.RecordCount & _" 条记录 "End IfExecuteSQL_Exit:Set rst = NothingSet cnn = NothingExit FunctionExecuteSQL_Error:MsgString = "查询错误: " & _Err.DescriptionResume ExecuteSQL_ExitEnd Function4.订票:Dim cnn As New ADODB.ConnectionDim rst As New ADODB.RecordsetPrivate Sub init_ado() 初始化cnn和rstDim strcnnSet cnn = New ADODB.Connectionstrcnn = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\数据库.mdb;Persist Security Info=False"cnn.Open strcnnSet rst = New ADODB.Recordsetrst.CursorType = adOpenKeysetrst.LockType = adLockOptimisticEnd SubPrivate Sub cmd_insert_Click() 订票,即添加Dim xin As Stringinit_adoxin = "select * from book where fdate='" & Val(txtdate.Text) & "' and fname='" & Val(txtname.Text) & "' and fline='" & Val(txtline.Text) & "'and password='" & Val(pass.Text) & "'"rst.Open xin, cnn, , , adCmdTextrst.AddNewrst!fdate = txtdaterst!fline = txtlinerst!fname = txtnamerst!Password = passrst.UpdateAdodc1.RefreshDataGrid1.ReBindtxtdate.Text = ""txtline.Text = ""txtname.Text = ""pass.Text = ""txtdate.SetFocusMsgBox "预订成功!", , "提示"End SubPrivate Sub cmd_refresh_Click() 更新数据Adodc1.RefreshEnd SubPrivate Sub Cmdout_Click() 退出Unload Mesystem.ShowEnd SubPrivate Sub Form_Load()MsgBox "输入提示:每一项为必填内容(格式说明:航班:1 姓名和身份证不能为空)!", , "提示"End SubPrivate Sub Calendar1_Click()txtdate.Text = Me.Calendar1.ValueEnd SubPrivate Sub txtdate_GotFocus()Me.Calendar1.Visible = TrueMe.Calendar1.Top = 120Me.Calendar1.Left = 2640End SubPrivate Sub txtdate_LostFocus()Me.Calendar1.Visible = FalseEnd Sub5.退票:Dim cnn As New ADODB.ConnectionPrivate Sub Calendar1_Click()tdate.Text = Me.Calendar1.ValueEnd SubPrivate Sub cmdback_Click() 退票,即删除Dim s As Strings = "delete * from book where password ='" & Val(tpass.Text) & "'"cnn.Execute sAdodc1.RefreshDataGrid1.ReBindMsgBox "成功退票!", , "提示"End SubPrivate Sub Command2_Click()Unload Mesystem.ShowEnd SubPrivate Sub Form_Load()cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\数据库.mdb;Persist Security Info=False"MsgBox "请输入您的退票信息(格式说明:航班:1 姓名和身份证不能为空)!", , "提示"End SubPrivate Sub tdate_GotFocus()Me.Calendar1.Visible = TrueMe.Calendar1.Top = 240Me.Calendar1.Left = 2280End SubPrivate Sub tdate_LostFocus()Me.Calendar1.Visible = FalseEnd Sub七、设计总结1、设计心得通过将近两周的时间来实现这个“航空预订票系统”,我学习到了很多知识,同时也对我的专业有了更进一步的认识和了解。

实验室预约系统的设计开题报告

实验室预约系统的设计开题报告

二、课题关键问题及难点 本课题有三个关键问题: (1) 数据建模 (E/R)、面向对象建模 (UML)、业务处理模型 (BPM)在软件开发生命周期的各个阶段中有 着特殊的用处。而PowerDesigner则是以上三个建模工具的整合,如何使用PowerDesigner这个最新的全 方位电子化建模工具进行系统整体分析和设计,这是个关键问题,良好的设计会使系统的开发更简洁, 更有效,是应用成功的基石。 (2) 基于客户/服务器(C/S)模式的管理软件,因其适合在具有局域网运行且网络通信量低、速度快而 得到了采用。C/S模式是将显示逻辑和事务处理逻辑均放在客户端,数据出来逻辑和数据库放在服务器 端,系统灵活性不高,不易于升级,系统的安全性也不易保证,而且还需开发出客户端软件,使得开发 成本提高。采用浏览器/服务器(B/S)结构,弥补了C/S结构的不足,其客户端只需安装配置少量的客户 端软件,降低了开发成本;而且系统中的表示层、功能层和数据层之间相互独立,便于系统升级和维护, 提高了系统安全性;并且用户界面都统一在浏览器,易于使用。 (3) 完全基于模块与组件,具有更好的可扩展性与可定制性,数据处理方面更是引入了许多激 动人心的新技术,正是这些具有革新意义的新特性,让远远超越了ASP,同时也提供给web开发 人员更好的灵活性,有效缩短了web应用程序的开发周期。所以精通对于开发系统来说也是比较 重要的。 在.NET Framework中进行开发最大的特色便是面向对象程序设计的概念,它具有剪切-粘贴的程序部署 方式、自动资源管理、数据类型检查、跨平台、新的安全模式、JIT即时编译的特性。C#是完全面向对 象的语言,并且通过PowerDesigner可将面向对象模型中的类生成对应的C#源代码。所以用C#是进行开 发式可行的。
三、调研报告(或文献综述) 在文献[1]中探讨分析设计信息系统的几种建模方法,数据建模 (E/R)、面向对象建模 (UML)和业务处 理模型(BPM)方法。 数据建模提供了一种表示数据实体间关系的精确的语言和语法。数据建模的另一个主要的目的是用来定 义数据实体和数据实体之间的关系,这种定义的方法能够用来保存底层的业务数据。 面向对象的技术的出现给MIS软件的开发带来新的希望, 它以对象作为描述信息实体的统一概念, 将现

《数据结构_课程设计》航班查询系统实验报告

《数据结构_课程设计》航班查询系统实验报告

目录一、概述 (1)二、系统分析 (1)1.航班信息的查询与检索 (1)2.航班信息查询与检索数据结构理论 (1)三、概要设计 (2)1.系统的功能 (2)2.系统模块分析及其流程图 (3)四、详细设计 (6)1.各函数说明 (6)2.定义相关数据类型 (8)3.航班信息的查询 (9)五、运行由于测试 (11)六、总结与心得 (16)参考文献 (16)附录 (16)一、概述随着信息产业的飞速发展, 信息化管理及查询已经进入并应用到各行各业, 影响着人们的价值观念和生活方式。

因此, 要提高企业信息化建设, 利用先进的办公自动化系统来实现企业内部信息管理、共享及交流, 从而提高企业综合实力。

本次设计是针对航班的查询系统, 该设计要求对飞机航班信息进行排序和查询。

可按航班的航班号、起点站、终点站等信息进行航班信息的查询。

二、系统分析1.航班信息的查询与检索进入系统后, 首先提示输入航班的信息, 包括: 航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号及票价等, 票价为整型, 其他为字符型。

当输入完一个信息后会提示是否继续输入, 重复以上步骤输入全部的信息。

进入主菜单后会给出用户操作的界面, 根据提示进行航班信息的查询。

2.航班信息查询与检索数据结构理论针对在本该类系统中的数据的处理情况, 本系统采用二分查找法、基数排序法、最高位优先法。

二分查找法也称为折半查找法, 它充分利用了元素间的次序关系, 采用分治策略, 可在最坏的情况下用O(log n)完成搜索任务。

它的基本思想是, 将n 个元素分成个数大致相同的两半, 取a[n/2]与欲查找的x作比较, 如果x=a[n/2]则找到x, 算法终止。

如果x<a[n/2], 则我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。

如果x>a[n/2], 则我们只要在数组a的右半部继续搜索x。

对航班号的排序是采用的基数排序法。

基数排序法又称“桶子法”(bucket sort)或bin sort, 顾名思义, 它是透过键值的部份资讯, 将要排序的元素分配至某些“桶”中, 藉以达到排序的作用, 基数排序法是属于稳定性的排序, 其时间复杂度为O (nlog(r)m), 其中r为所采取的基数, 而m为堆数, 在某些时候, 基数排序法的效率高于其它的比较性排序法。

机房预订系统_代码

机房预订系统_代码

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<iostream.h>#define MAX 2 //机房电脑总数#define S(r) (r-8)/2#define shijian(g) g*2+8typedef struct Cell{int CNum; //CNum表示这个时间段已预订的机器数struct Student *head;//这是表示这个时间段预订的机器的链表的第一个节点指针struct Student *last;}Cell;Cell TimeQueue_yuding[7][6];//七天,每天分为六个时间段,预订到电脑的队列Cell TimeQueue_paidui[7][6];//七天,每天分为六个时间段,排队队列typedef struct Student{// int times;//次数char number[10];//学号int locat;//机器号int day;//星期几int time;//时间struct Student *next;}Student;char *change(int n){char c[5];switch(n){case 0:strcpy(c,"日");break;case 1:strcpy(c,"一");break;case 2:strcpy(c,"二");break;case 3:strcpy(c,"三");break;case 4:strcpy(c,"四");break;case 5:strcpy(c,"五");break;case 6:strcpy(c,"六");break;}return c;}int Ture(int m,int n){if(m<0||m>6){printf("输入的时间(星期几)非法!请重新输入:\n");return 0;}else if(n<8||n>20){printf("您输入的时间(几点钟)不在上班时间内,请重新输入:\n");return 0;}elsereturn 1;}void waiting(int m,int n){char Infor[10];struct Student *Rem;printf("请输入你的学号\n");scanf("%s",Infor);if(TimeQueue_yuding[m][n].CNum+1<MAX){printf("此时间段有空余电脑,不需要排队!\n");return;}else if(TimeQueue_paidui[m][n].head==NULL){Rem=(Student *)malloc(sizeof(struct Student));strcpy(Rem->number,Infor);Rem->locat=1;Rem->day=m;Rem->time=n;Rem->next=NULL;TimeQueue_paidui[m][n].head=Rem;TimeQueue_paidui[m][n].last=Rem;TimeQueue_paidui[m][n].CNum++;printf("成功排队,在你之前有%d人在排队\n",Rem->locat-1);}else{Rem=(Student *)malloc(sizeof(struct Student));strcpy(Rem->number,Infor);Rem->locat=TimeQueue_yuding[m][n].CNum+1;Rem->day=m;Rem->time=n;Rem->next=NULL;TimeQueue_paidui[m][n].last->next=Rem;TimeQueue_paidui[m][n].last=Rem;TimeQueue_paidui[m][n].CNum++;printf("成功排队,在你之前有%d人在排队\n",TimeQueue_paidui[m][n].CNum-1);}}void inquir_waiting() //查询等待信息{Student *p;int m,n,t,k;char c1[5],c2[5];printf("查找全部请输入1;查找部分请输入2\n");scanf("%d",&t);switch(t){case 1:for(m=0;m<7;m++)for(n=0;n<6;n++){strcpy(c1,change(m));if(TimeQueue_yuding[m][n].CNum<MAX){printf("星期%s在%d到%d时间段内有%d台未被预订的电脑\n",c1,shijian(n),shijian(n)+2,MAX-TimeQueue_yuding[m][n].CNum);}else{printf("星期%s在%d到%d时间段内预订已经满,有%d人在排队\n",c1,shijian(n),shijian(n)+2,TimeQueue_paidui[m][n].CNum);printf("排队学生学号为:\n");p=TimeQueue_paidui[m][n].head;for(k=0;k<TimeQueue_paidui[m][n].CNum;k++){printf("%s\t",p->number );p=p->next ;}}}break;case 2:printf("输入想要查询的时间(0代表星期日;1代表星期一.......6代表星期六)\n");scanf("%d",&m);printf("输入想要查询的时间(24 hours 8~20o'clock,include 8 o'clock)\n");scanf("%d",&n);n=S(n);strcpy(c2,change(m));if(TimeQueue_yuding[m][n].CNum<MAX)printf("星期%s在%d到%d时间段有%d台未被预订的电脑\n",c2,shijian(n),shijian(n)+2,MAX-TimeQueue_yuding[m][n].CNum);elseprintf("星期%s在%d到%d时间段预订已经满,有%d人在排队\n",c2,shijian(n),shijian(n)+2,TimeQueue_paidui[m][n].CNum);break;}}void booking(int m,int n) //预订机位{int k,i,j;char c1,c3,c2,c4,c5[5],c6;char Infor[10];//学号Student *Rem;if(TimeQueue_yuding[m][n].CNum>=MAX){printf("此时间段没有空余电脑!你是否愿意在此时间段排队?,(输入y表排队,输入其他字符表退出)\n");printf("警告!如果你要排队,在没有足够人取消预订定的情况下,你可能不能预订到机位\n");k=m;for(i=k;i<7;i++)for(j=0;j<6;j++){if(TimeQueue_yuding[i][j].CNum<MAX){strcpy(c5,change(i));printf("星期%s在%d到%d时间段有%d个空机位,是否愿意更改预定时间,y/n?\n",c5,shijian(j),shijian(j)+2,MAX-TimeQueue_yuding[i][j].CNum);scanf("%c",&c2);scanf("%c",&c2);if(c2=='y')booking(i,j);if(TimeQueue_yuding[i][j].CNum<MAX){printf("还有%d台电脑,是否想继续在这个时间段预订,是输入y,退出输入t,否输入其他字符,/n?\n",MAX-TimeQueue_yuding[i][j].CNum);scanf("%c",&c6);scanf("%c",&c6);if(c6=='y')booking(i,j);if(c6=='t')return;}}printf("退出自动查询请输入y,否则输入其他字符:\n");scanf("%c",&c4);if(c4=='y')return;}scanf("%c",&c1);scanf("%c",&c1);if(c1=='y')waiting(m,n);else{printf("是否愿意查看预订时间表,y/n?\n");scanf("%c",&c3);scanf("%c",&c3);if(c3=='y')inquir_waiting();}}else{printf("请输入你的学号:\n");scanf("%s",Infor);if(TimeQueue_yuding[m][n].head==NULL){Rem=(Student *)malloc(sizeof(struct Student));strcpy(Rem->number,Infor);Rem->locat=1;Rem->day=m;Rem->time=n;Rem->next=NULL;TimeQueue_yuding[m][n].head=Rem;TimeQueue_yuding[m][n].last=Rem;TimeQueue_yuding[m][n].CNum++;printf("成功预定,机号为%d\n",TimeQueue_yuding[m][n].CNum);}else{Rem=(Student *)malloc(sizeof(struct Student));strcpy(Rem->number,Infor);Rem->locat=TimeQueue_yuding[m][n].CNum+1;Rem->day=m;Rem->time=n;Rem->next=NULL;TimeQueue_yuding[m][n].last->next=Rem;TimeQueue_yuding[m][n].last=Rem;TimeQueue_yuding[m][n].CNum++;printf("成功预定,机号为%d\n",Rem->locat);}}}void inquir(int m,int n)//查询空机位{char c1,c2,c3;if(TimeQueue_yuding[m][n].CNum<=MAX){printf("有%d个空机位,你是否想预订(输入y表预订,输入其他的字符表退出)\n",MAX-TimeQueue_yuding[m][n].CNum);scanf("%c",&c1); scanf("%c",&c1);if(c1=='y')booking(m,n);elsereturn;}else{printf("没有空机位,当前时间段有%d人在排队",TimeQueue_paidui[m][n].CNum);printf("你是否想在这个时间段排队?,(输入y表排队,输入其他字符表退出)\n");printf("警告!如果你要排队,在没有足够人取消预订定的情况下,你可能不能预订到机位\n");scanf("%d",&c2);scanf("%d",&c2);if(c2=='y')waiting(m,n);else{printf("是否愿意查看预订时间表,y/n?\n");scanf("%c",&c3);scanf("%c",&c3);if(c3=='y')inquir_waiting();}}}void Inquir() //查询已预订机位{char a[10],c[5];int m,n,t=0;Student *p;printf("请输入学号:\n");scanf("%s",a);for(m=0;m<7;m++)for(n=0;n<6;n++){p=TimeQueue_yuding[m][n].head;while(p!=NULL){if(!strcmp(p->number,a)){if(t==0){printf("预订的机位信息为:\n");t=1;}strcpy(c,change(p->day));printf("星期%s在%d到%d时间段\n",c,shijian(p->time),shijian(p->time));}p=p->next;}}if(t==0)printf("你没有成功预订的机位!\n");}void cancel(int m,int n) //取消预订{char c;int t=0,i;char Infor[10];struct Student *Rem;struct Student *q;loop:printf("Please input your Nobel!\n");scanf("%s",Infor);Rem=TimeQueue_yuding[m][n].head;q=Rem;for(i=1;Rem!=NULL;q=Rem,Rem=Rem->next,i++){if(!strcmp(Rem->number,Infor)){if(TimeQueue_paidui[Rem->day][Rem->time].head!=NULL){strcmp(Rem->number,TimeQueue_paidui[Rem->day][Rem->time].head->number);TimeQueue_paidui[Rem->day][Rem->time].head=TimeQueue_paidui[Rem->day][Rem->tim e].head->next;TimeQueue_paidui[Rem->day][Rem->time].CNum--;}else{TimeQueue_yuding[Rem->day][Rem->time].head=TimeQueue_yuding[Rem->day ][Rem->t ime].head->next;TimeQueue_yuding[Rem->day][Rem->time].CNum--;}t=1;}}if(t==0){printf("输入学号没有预订,是否再次输入:y/n?\n");scanf("%c",&c);scanf("%c",&c);if(c=='y')goto loop;return;}elseprintf("已取消预订!\n");}void newline(int n) /*此函数的作用是空行,若输入n就输出n行*/ {int i;for(i=1;i<=n;i++)printf("\n");}void space(int n) /*此函数的作用是留空白,输入n就输出n个空白*/ {int i;for(i=1;i<=n;i++){printf(" ");}}void main(){char c;int n,m,i,j,k;for(i=0;i<7;i++)for(j=0;j<6;j++){TimeQueue_paidui[i][j].CNum=0;TimeQueue_paidui[i][j].head=NULL;TimeQueue_paidui[i][j].last=NULL;TimeQueue_yuding[i][j].CNum=0;TimeQueue_yuding[i][j].head=NULL;TimeQueue_yuding[i][j].last=NULL;}while(1){space(20);printf("*********Menu*********\n");printf("1. 查询预定的机位\n2. 查询空机位\n3. 预定\n4. 取消预定\n5. 排队\n6. 查询等待者时间列表\n0. 退出\n");printf("请输入序号!:\n");space(20);printf("**********************\n");printf("请选择:\n");scanf("%d",&k);switch(k){case 1:Inquir();break;case 2:loop1:printf("输入想要查询的时间(0代表星期日;1代表星期一.......6代表星期六)\n");scanf("%d",&m);printf("输入想要查询的时间(24 hours 8~20o'clock,include 8 o'clock)\n");scanf("%d",&n);if(Ture(m,n)){n=S(n);inquir(m,n);}else{goto loop1;}break;case 3:loop2:printf("输入想要预订的时间(0代表星期日;1代表星期一.......6代表星期六)\n");scanf("%d",&m);printf("输入想要预订的时间(24 hours 8~20o'clock,include 8 o'clock)\n");scanf("%d",&n);if(Ture(m,n)){n=S(n);booking(m,n);}else{goto loop2;}break;case 4:loop3:printf("输入想要取消的时间(0代表星期日;1代表星期一.......6代表星期六)\n");scanf("%d",&m);printf("输入想要取消的时间(24 hours 8~20o'clock,include 8 o'clock)\n");scanf("%d",&n);if(Ture(m,n)){n=S(n);cancel(m,n);}elsegoto loop3;break;case 5:loop4:printf("输入想要排队的时间(0代表星期日;1代表星期一.......6代表星期六)\n");scanf("%d",&m);printf("输入想要排队的时间(24 hours 8~20o'clock,include 8 o'clock)\n");scanf("%d",&n);if(Ture(m,n)){n=S(n);waiting(m,n);;}elsegoto loop4;break;case 6:inquir_waiting();break;case 0:exit(0);default:printf("error\n");}printf("按Eeter继续:\n");scanf("%c",&c);scanf("%c",&c);system("cls");}}。

操作系统课程设计报告题目及代码

操作系统课程设计报告题目及代码

题目一模拟操作系统设计设计一个模拟操作系统管理程序,实现以下管理功能:1.内存管理功能2.文件管理功能3.磁盘管理功能题目二虚拟存储器各页面置换算法的实现与比较内容:设计一个虚拟存储区和内存工作区,通过产生一个随机数的方法得到一个页面序列,假设内存给定的页面数由键盘输入,分别计算使用下述各方法时的内存命中率:先进先出算法〔FIFO〕、最近最少使用算法〔LRU〕、最正确淘汰算法〔OPT〕、最少页面算法〔LFU〕等。

题目三文件系统设计通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。

内容:为Linu*系统设计一个简单的二级文件系统,以实现以下功能:1.可以实现以下几条命令(1)login 用户登录(2)dir 文件目录列表(3)creat 创立文件(4)delete 删除文件(5)open 翻开文件(6)close 关闭文件(7)read 读文件(8)write 写文件2.实验提示〔1〕首先确定文件系统的数据构造:主目录、子目录及活动文件等。

主目录和子目录都以文件的形式存放在磁盘,这样便于查找和修改。

〔2〕用户创立的文件,可以编号存储于磁盘上。

如file0、file1、file2……等,并以编号作为物理地址,在目录中进展登记。

[清华大学?操作系统教程? *丽芬编著题目四设计一个按时间片轮转法进程CPU调度的程序。

提示:〔1〕假设系统有5个进程,每个进程用一个进程控制块PCB来代表,PCB中包含进程名、指针、到达时间、估计运行时间、进程状态表。

其中,进程名即为进程进标识。

〔2〕为每一个进程设计一个要示运行时间和到达时间。

〔3〕按照进程到达的先后顺序排成一个循环队列,再设一个队首指针指向第一个到达的进程首址。

〔4〕执行处理机调度时,开场选择队首的第一个进程运行。

另外再设一个当前运行进程指针,指向当前正运行的进程。

〔5〕由于本实验是模拟实验,所以对被选中进程并不实际启运运行,只是执行:a.估计驼行时间减1b.输出当前运行进程的名字。

机房预约系统课程设计报告

机房预约系统课程设计报告
(3)将程序模块化处理方便修改并且比较有条理,用函数来实现菜单的各种功能;
(4)利用结构体构造所需的要的数组以及线性表,线性表采用顺序储存。
3.系统设计
3.1 数据结构
程序主要是用一维数组以及二维数组作为程序的样本库,用顺序表顺序储存所有的信息,然后用文本转换函数将其转换成文本文档存储。其中信息包括预定的机位、预定的时间段、以及预定所用的电话号码。

int n,w;
do
{
printf("\t\t\t\t机房机位预约系统\n");
printf("\t\t\t\t菜单\n");
printf("\t\t\t 1.查询某时间段机位状态\n"); /*查询某时间段机位状态*/
printf("\t\t\t 2.预定空机位\n"); /*预定空机位*/
printf("\t\t\t 3.取消预订\n"); /*取消预订*/
4)论文撰写的水平、格式的规范性。
(4)课程设计进度安排
内容 天数 地点
构思及收集资料 1 图书馆
程序设计与调试 3 计算机房
撰写论文 1 图书馆
具体任务:20台机器,从早8点到晚8点,每两个小时一个时间段。实现如下功能:
(1)机位空闲查询,查询空闲机位;
(2)机位预定,根据输入的日期和时间段查询是否有空机位,若有则预约,若无则提供最近时间段的空机信息。另外,如果用户要求在非空时间上机,则将用户信息插入该时间段的等待列表。
1)按照书稿的规格撰写打印课程设计论文;
2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等;
3)正文中要有问题描述与分析、数据结构的设计、算法的设计、算法的实现、调

图书馆座位预约管理信息系统的设计

图书馆座位预约管理信息系统的设计

管理信息系统课程设计报告系统名称:图书馆座位预约管理系统专业年级:电子商务专业2013级2015年 7月 2日目录CONTENT图书馆座位预约管理信息系统的设计1.问题提出1.1开发背景西南石油大学图书馆成都校区馆建于2002年,现有馆舍面积21399平方米,2516个阅览座位,但是成都校区目前学生人数将近20000人,图书馆的座位完全不能保证学生的学习要求,所以在我校图书馆出现了冬季和夏季图书馆占位学习的情况,而且,我校图书馆现有座位管理实行的是先到先得的管理原则,很多学生很早去图书馆仍然不能找到一个座位;还有,部分学生因为临时外出或者其他原因,图书馆的座位占着不使用,导致部分学生无座位可使用。

1.2项目目标图书馆座位管理系统是为了解决我校图书馆座位预约管理不方便的问题,提高图书馆座位的使用效率,更加方便图书馆管理员的管理和学生的使用,所以开发该系统来解决这一问题。

1.3可行性研究经济可行性分析在做这方面的信息管理系统的开发时,必须要考虑投资效益,也就是能否投资后达到相应的效果,具体的原则是能够在尽量少的投资情况下,获得最大的效益,这就是经济可行性分析。

图书馆座位管理系统利用电脑系统操作,投资只是在电脑、数据库、相应管理软件以及座位签等方面进行投资,而且目前我校图书馆在电脑等方面可以利用现有电脑,额外投资相对较少,但是达到的效果将会很好,图书馆的座位将会得到更加有效率的利用。

具体的效益如下:(1)提高图书馆座位管理效率,有效的节约成本。

(2)提高管理工作人员的工作效率,通过计算机进行座位管理,将大大减少人力的管理。

(3)为学生提供个性化服务,减少图书馆占座而带来的不必要的麻烦。

技术可行性分析图书馆座位管理系统主要需要包括电子预约平台和数据库等软件以及电脑、数据库存储器、座位签等硬件设施,就目前图书馆的相关软硬件来说,大多数都可以实现该管理系统的加入,只是在相关操作系统等方面需要投入,而且图书馆工作人员一般都具备计算机操作的基础知识,能够熟练运用windows 操作系统,该管理系统的操作也非常简单,有相关的使用说明和提示,就图书馆层面来说,该技术是可以实现的。

计算机机房管理系统

计算机机房管理系统
return 0;
else
return 1;
}
}*/
void save()
{
FILE *fp;
int i;
if((fp=fopen("com_list.txt","r+"))==NULL)
{
printf("\n\n对不起无法打开源文件!!\n");
{
printf("\n\n\n\n\t对不起!!源文件遭到破坏,读取文件出错!!\n\n\n");
printf("\t请在主菜单中选择1,重新录入计算机信息!!\n\n\t按任意键返回……");
getch();
system("cls");
return;
for(i=0; i<39;i++)//表示循环40次
{
printf("==");
}
printf("=\r");
for(i=0; i<40;i++)//表示循环40次
{
_sleep(20);//停止20毫秒
printf(">>");
fp=fopen("com_list.txt","r");
printf("\n\n\n\t序号 \t配置\t\t\t\t\t状态\n\n");
/*for(i=0;i<10;i++)
{
fread(&com[i],sizeof(struct computer),1,fp);//从文件中读取所有计算机的信息

课程设计论文

课程设计论文
DUILEI[n].last=R;
p->next=R;
DUILEI[n].middle=R; /*等待预订列表*/
DUILEI[n].RS++;
printf("成功排队\n");
}/*将刚输入学生信息拍到最后一名后,成最后一名*/
else
{
R=(struct xinxi *)malloc(sizeof(struct xinxi));
R->next=NULL;
p= DUILEI[n].last; /*将最后预订记录赋值给p*/
R->jihao= DUILEI[n].RS+1;
printf("%d",R->jihao); /*表示该时间段第几位预订*/
DUILEI[n].last=R; /*将当前的记录做为最后记录以便形成链表形式指向下一个*/
在当前的限制条件下,本系统的功能目标能够达到;利用现有的技术,本系统的功能能够实现;系统现阶段的发展过程中,利用现有人力和物力是完全具备的能力开发出来的,作为阶段性产品,日后的发展空间大,实现方法逐步简单容易,所以机房管理系统在技术上是完全可行的。小组开发人员的数量和质量完全能够满足开发本系统的要求,并且能够在规定的期限开发完成。
struct xinxi *middle; /*等待队列列表*/
struct xinxi *last; /*最后预订者记录*/
} DUILEI[SJD]; /*学生时间(SJD)段顺序:人数,第一名学生,排队的学生,最后一名学生*/
4.1
/***************************预定模块******************************/

机房管理系统

机房管理系统

课程设计说明书课程名称:高级语言程序设计设计题目:机房管理系统院部:计算机科学与信息工程学院学生姓名:学号:专业班级:物联网工程指导教师:**2015年6月课程设计任务书目录一前言 (1)二需求分析 (1)三概要设计 (2)四详细设计 (3)五改进或增加功能模块说明 (7)六程序测试 (8)七课程设计总结 (14)八致谢 (15)九参考文献 (15)十源程序 (15)机房管理系统一前言设计以菜单方式工作的机房管理系统,主要包括六个模块,分别是上机者信息输入模块,上机者信息查询模块,上机者信息修改模块,上机者信息删除模块,上机者上机费用计算模块,所有上机者信息显示模块。

每个模块由组员相应完成。

另外考虑到机房的特殊要求,新增一个上课模式,此模式功能是将所有机子开启,统一赋予上机者相关信息,避免管理员一个一个的给机子输入信息。

二需求分析1 要求(1)用C语言实现程序设计;(2)定义各个函数分别完成不同功能,如背景设计,判断等;(3)画出查询空机号模块的流程图;(4)系统的各个功能用函数调用的形式实现;(5)界面友好(良好的人机互交),程序要有注释。

2 任务(1)定义各类头文件,变量及宏定义;(2)写出详细设计过程;(3)改进或增加模块;(4)各个模块运行情况;(5)编写代码;(6)程序分析与调试。

3 运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境(3)WINDOWS8/8.1系统4 开发工具C语言三概要设计1 模块组成图。

主要包括8个模块,分别是学生信息输入模块,空机号查询模块,查询上机情况模块,上机者信息修改模块,上机者信息删除模块,上机者上机费用计算模块,所有上机者信息显示模块,上课模式模块。

如图3-1所示。

图3-1 功能模块图2 空机号查询函数流程图。

空机号检索是本程序的核心,本程序的其它几个模块皆是通过先对空机号的判断然后进行下去的(及先对StudentList[time]的值进行0或1的判断)。

基于JavaWeb的图书馆座位预约系统设计与实现

基于JavaWeb的图书馆座位预约系统设计与实现

基于JavaWeb的图书馆座位预约系统设计与实现一、本文概述基于JavaWeb的图书馆座位预约系统设计与实现是一篇探讨如何利用JavaWeb技术构建高效、便捷图书馆座位预约平台的研究文章。

在“本文概述”这一部分,文章将对整个研究的背景、目的、主要内容和研究方法进行简要介绍。

文章将阐述图书馆座位预约系统的研究背景。

随着信息技术的快速发展和高校图书馆人流量的日益增加,传统的图书馆座位管理方式已经无法满足读者的需求。

设计一个基于JavaWeb的图书馆座位预约系统,能够有效提高座位利用率,减少读者等待时间,提升图书馆服务质量。

接着,文章将明确研究目的。

本研究旨在通过JavaWeb技术实现一个用户友好、操作简便、功能全面的图书馆座位预约系统。

该系统将为读者提供实时座位查询、在线预约、预约取消等服务,同时为图书馆管理者提供座位使用情况统计、数据分析等后台管理功能。

在主要内容方面,文章将详细介绍系统的需求分析、系统设计、功能实现以及测试与评估。

需求分析部分将从用户和管理员两个角度出发,分析系统应具备的基本功能和性能要求。

系统设计部分将重点介绍系统架构、数据库设计以及主要模块的设计思路。

功能实现部分将展示如何利用JavaWeb技术,包括Servlet、JSP、JavaBean等,来实现系统的各个功能模块。

在测试与评估部分,文章将说明如何对系统进行功能测试、性能测试以及用户反馈收集,以确保系统的稳定性和可用性。

研究方法方面,文章将采用软件工程的方法论,结合JavaWeb开发技术和图书馆管理的实际需求,通过需求调研、系统建模、编码实现和测试验证等步骤,系统地完成图书馆座位预约系统的设计与实现。

二、系统需求分析座位预约区域可图形化展示,用不同颜色实时展示当前座位使用情况。

提供读者通过身份证号、读者证号或人脸识别方式登录,支持移动端一键登录。

提供移动端人脸信息采集,并将人脸信息传递至统一人脸信息库。

支持读者通过微信进行预约功能,可提前预约(预约天数可后台配置,最多可提前7天)。

图书馆座位预约管理信息系统的设计

图书馆座位预约管理信息系统的设计

管理信息系统课程设计报告1系统名称:图书馆座位预约管理系统专业年级:电子商务专业2013级2015年 7月 2日目录CONTENT1.问题提出 (2)1.1 开发背景 (2)1.2 项目目标 (2)1.3 可行性研究 (2)1.3.1经济可行性分析 (2)1.3.2技术可行性分析 (3)1.3.3社会可行性分析 (3)2.系统分析报告 (3)2.1需求调查 (4)2.1.1我校图书馆座位管理信息现行情况 (4)2.1.2图书馆座位管理系统方面的需求 (4)2.2业务流程分析 (5)2.2.1现有流程分析 (5)2.2.2优化流程分析 (5)2.3数据流程分析 (8)2.3.1数据流程图 (8)2.3.2数据字典 (11)3.系统设计报告 (15)3.1总体结构设计 (15)3.1.1总体功能结构设计 (15)3.1.2软硬件平台设计 (16)3.2代码设计 (16)3.3数据库设计 (18)3.3.1概念结构设计 (18)3.3.2逻辑结构设计 (18)3.3.3物理结构设计 (19)3.4输入/输出设计 (20)3.5模块功能及处理过程设计 (23)4.课程设计总结 (24)图书馆座位预约管理信息系统的设计1.问题提出1.1开发背景西南石油大学图书馆成都校区馆建于2002年,现有馆舍面积21399平方米,2516个阅览座位,但是成都校区目前学生人数将近20000人,图书馆的座位完全不能保证学生的学习要求,所以在我校图书馆出现了冬季和夏季图书馆占位学习的情况,而且,我校图书馆现有座位管理实行的是先到先得的管理原则,很多学生很早去图书馆仍然不能找到一个座位;还有,部分学生因为临时外出或者其他原因,图书馆的座位占着不使用,导致部分学生无座位可使用。

1.2项目目标图书馆座位管理系统是为了解决我校图书馆座位预约管理不方便的问题,提高图书馆座位的使用效率,更加方便图书馆管理员的管理和学生的使用,所以开发该系统来解决这一问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.#include<stdio.h>#include<stdlib.h>#include<string.h>#define SJD 6 /*宏定义定义SJD Z NULL D(r)*/#define Z 20#define D(s) (s-8)/2 /*将输入的时间划分时间段;分别为0,1,2,3,4,5时间段*/ #define NULL 0struct xinxi{int jihao;char xuehao[20];struct xinxi *next;}; /*结构函数包含学生信息:机位,学号,还有下名学生信息*/struct cell{int RS; /*RS 表示总人数 */struct xinxi *first; /* struct xinxi *middle; /* struct xinxi *last; /*} DUILEI[SJD]; /* 学生时间(生*/ /*************************** void yuding(){int n;char m[20]; /*学号*/ struct xinxi *R;struct xinxi *p;第一个预订者记录*/等待队列列表*/最后预订者记录*/SJD)段顺序:人数,第一名学生,排队的学生,最后一名学预定模块 ******************************/printf("输入想要预定的时间\n");scanf("%d",&n);if(n>=8&&n<20){n=D(n); /*将输入的时间划分时间段*/if(DUILEI[n].RS<Z) /*还有机位可供预订*/{printf("请输入你的学号\n");scanf("%s",m);if(DUILEI[n].first==NULL) /*还没有人预订*/{R=(struct xinxi *)malloc(sizeof(struct xinxi));/*给R划分适当的内存*/ R->jihao=1;strcpy(R->xuehao,m); /*将输入的学号复制到R->xuehao */R->next=NULL;DUILEI[n].first=R;DUILEI[n].last=R;DUILEI[n].RS++;printf("成功预定 \n");}else{R=(struct xinxi *)malloc(sizeof(struct xinxi));strcpy(R->xuehao,m); /*将输入的学号复制到R->xuehao */R->next=NULL;p= DUILEI[n].last; /*将最后预订记录赋值给p*/R->jihao= DUILEI[n].RS+1;printf("%d",R->jihao); /*表示该时间段第几位预订*/DUILEI[n].last=R; /*将当前的记录做为最后记录以便形成链表形式指向下一个 */p->next=R;DUILEI[n].RS++; /*记录人数*/printf("预定成功 \n");}}else printf("没有空余机位!\n");}else printf("错误.请输入8~19,再次输入.\n");}/*********************************查询空位模块***********************************/void chaxunkongwei(){int n;printf("输入想要查询的时间(8~19 点,包括8 点)\n");scanf("%d",&n);if(n>=8&&n<20){n=D(n);if(DUILEI[n].RS<Z)printf("这里还有 %d台空电脑 !\n",Z-DUILEI[n].RS);else printf("对不起.没有空余机位!\n");}else printf("错误,请输入8~19,再次输入.\n");}/*********************查询预定机位模块*************************************/void chaxunyuding(){int n;char m[20];struct xinxi *R;printf("输入查询时间 (8~19 点,包括8 点 )\n");scanf("%d",&n);if(n>=8&&n<20){n=D(n);printf("请输入学号 \n");scanf("%s",m);R= DUILEI[n].first; /*将第一名学生的信息赋予R*/if(DUILEI[n].first==0) printf("还没有人预定\n"); /*判断有没有人预订,如果还没有人预订,则输出还没有人预定*/else{for(;R->next!=NULL;R=R->next)/*从第一名学生开始查询直到找到符合的学号,以便确认是否预订*/if(strcmp(R->xuehao,m)==0)break;if(R->jihao!=0) /*已预订,输出相应的信息*/printf("你的机位是 %d\n",R->jihao);else printf("对不起.你依旧在等待列表中或者没有预定");}}else printf("错误,请再次输入.\n");}/*****************************排队系统模块**************************************/void paiduixitong(){int n;char m[20];struct xinxi *R; struct xinxi *p;printf("请输入想要排队的时间\n");scanf("%d",&n);if(n>=8&&n<20){n=D(n);if(DUILEI[n].RS>=Z) /*该时间段没有空位机,需要预订等待*/{printf("请输入你的学号\n"); scanf("%s",m);if((DUILEI[n].RS)==Z){R=(struct xinxi *)malloc(sizeof(struct xinxi));strcpy(R->xuehao,m);R->next=NULL;R->jihao=0;p= DUILEI[n].last;DUILEI[n].last=R;p->next=R;DUILEI[n].middle=R; /*等待预订列表*/DUILEI[n].RS++;printf("成功排队 \n");}/* 将刚输入学生信息拍到最后一名后,成最后一名*/else{R=(struct xinxi *)malloc(sizeof(struct xinxi));strcpy(R->xuehao,m);R->next=NULL;R->jihao=0;p= DUILEI[n].last;DUILEI[n].last=R;p->next=R;DUILEI[n].RS++;printf("成功排队 \n");}}else printf("有空余机位,无须等待\n");}else printf("错误 . 再次输入 .\n");}/******************************取消预订模块****************************************/void cancel(){int n;int i;char m[20];struct xinxi *R;struct xinxi *q;struct xinxi *p;printf("请输入预定的时间 \n");scanf("%d",&n);if(n>=8&&n<20){printf("请输入你的学号 !\n");scanf("%s",m);n=D(n);R= DUILEI[n].first;q=R;for(i=1;;q=R,R=R->next,i++) /*查找符合信息 */if(strcmp(R->xuehao,m)==0)break;if(i>Z)/*i>z表示在等待列表中 */{if(R->next==NULL){q->next=NULL;DUILEI[n].last=q;free(R);DUILEI[n].RS--;printf("取消成功 !\n"); /*如果是排在20 名后,且是最后一名*/}else{q->next=R->next;free(R);DUILEI[n].RS--;printf("取消成功 !\n"); /*如果排在20名后,但不是最后*/}}else /*正在上机者取消预订*/{if(DUILEI[n].RS>Z){DUILEI[n].middle->jihao=R->jihao;DUILEI[n].middle= DUILEI[n].middle->next;} /*如果排在20名内,但总人数(包括等待列表人数)大于20 */if(i==1) DUILEI[n].first=R->next;else q->next=R->next;free(R);DUILEI[n].RS--;printf("成功取消预定 !\n");}}else printf("错误,请再次输入.\n");}/********************************待机者列表模块****************************/ void daijizheliebiao(){int n;struct xinxi *q;printf("查询其他等待者的预定时间\n");scanf("%d",&n);if(n>=8&&n<20){n=D(n);if(DUILEI[n].RS>Z) /*表示有等待上机者*/{printf("等待列表 :\n");q=DUILEI[n].middle;for(;q->next!=NULL;q=q->next)printf("%s\n",q->xuehao);/* 逐个输出等待列表者信息*/printf("%s\n", DUILEI[n].last->xuehao);}else printf("这个时间段没有预定者\n");}else printf("错误。

相关文档
最新文档