实验二Step1-有序顺序表

 1 #include<stdio.h>
 2
 3 struct job
 4 {
 5     char name[10];//作业名称
 6     char status;//当前状态
 7     int arrtime;//到达时间
 8     int reqtime;//要求服务时间
 9     int startime;//调度时间
10     int finitme;//完成时间
11     float TAtime,TAWtime;//周转时间,带权周转时间
12     float prio;
13 }jobarr[24],jobfin[24],job[24];//到达作业数组,完成作业数组,未到达作业数组
14 int systime=0;
15 int intarr,intfin,intjob;  //到达作业个数,完成作业个数,未到达作业个数
16
17 main()
18 {
19     int num;
20     int i,j;
21     printf("\n请输入作业个数:");
22     scanf("%d",&num);
23     printf("\n");
24     for(i=0;i<num;i++)
25     {
26         printf("第%d个作业:\n",i+1);
27         printf("输入作业名称:");
28         scanf("%s",job[i].name);
29         printf("到达时间:");
30         scanf("%d",&job[i].arrtime);
31         printf("要求服务时间:");
32         scanf("%d",&job[i].reqtime);
33         printf("\n");
34     }
35     for(j=0;j<num;j++)
36     {
37         for(i=0;i<num-j;i++)
38         {
39             if(job[i].arrtime<job[i+1].arrtime)
40             {
41                 job[num]=job[i];
42                 job[i]=job[i+1];
43                 job[i+1]=job[num];
44             }
45         }
46     }
47
48     printf("经按到达时间排序后,未到达队列的是\n");
49     printf("\t作业名称\t到达时间\t要求服务时间\n");
50     for(i=0;i<num;i++)
51     {
52         printf("N%d\t%s\t\t%d\t\t%d\n",i+1,job[i].name,job[i].arrtime,job[i].reqtime);
53     }
54     printf("\n");
55     printf("\t\t\t\t现在系统时间  0:\n");
56 }

时间: 2024-10-17 05:38:19

实验二Step1-有序顺序表的相关文章

操作系统之实验二Step1-有序顺序表

实验二作业调度模拟程序 一.目的和要求 1. 实验目的 (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 2.实验要求 用高级语言编写一个或多个作业调度的模拟程序. 单道批处理系统的作业调度程序.作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时间等因素.      作业调度算法: 1)        采用先来先服务(FCFS)调度算法,即按作业到达的先后次序进行调度.总是首先调度在系统中等待时间最长的作业. 2)

将两个有序顺序表合并成一个新的有序顺序表

#include <stdio.h> #include <malloc.h> #include <stdlib.h> #define MaxSize 50 typedef struct { int data[MaxSize]; int length; }SqList; void ListInsert(SqList *L,int i,int e) { int j; if(i<1||i>L->length+1) exit(-1); if(L->len

数据库表的查询操作(实验二),数据库表查询实验

[实验目的]:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识.[实验要求]:掌握利用Select语句进行各种查询操作:单表查询.多表连接及查询.嵌套查询.集合查询等.[实验内容]一.单表查询1.简单查询打开查询分析器,根建立teacher表,并加入数据.从teacher表中分别检索出教师的所有信息,以及仅查询教工号.姓名和职称.语句如下: select * from teacher select tno, tname from teacher 如要查询时改变列标题的显示,则从te

数据库实验二 数据库和数据表的创建

实验环境: SQL Service 2014 一.数据库的创建 有三种类型的文件用来存储数据库: 主文件包含数据库的启动信息.主文件还可以用来存储数据.每个数据库都包含一个主文件. 次要文件保存所有主要数据文件中容纳不下的数据.如果主文件大到足以容纳数据库中的所有数据,就不需要有次要数据文件.而另一些数据库可能非常大,需要多个次要数据文件,也可能使用多个独立磁盘驱动器上的次要文件,以将数据分布在多个磁盘上. 事务日志文件保存用来恢复数据库的日志信息.每个数据库必须至少有一个事务日志文件(尽管可以

顺序表实验2

<数据结构> 实验报告 题目:_顺序表的实现 学号:___________ 姓名:___________ 东南大学计算机系 实验题目 一.    实验目的 1.    掌握顺序表的基本操作,实现顺序表的插入.删除.查找等基本运算. 二.    实验内容 1.                       完善顺序表的定义,并运用其实现线性表的操作. 2.                       (课上任务) 选题一:集合的交.并.差运算 [问题描述]         编制一个能演示执行集合的

数据结构实验报告-实验一 顺序表、单链表基本操作的实现

实验一    顺序表.单链表基本操作的实现   l  实验目的 1.顺序表 (1)掌握线性表的基本运算. (2)掌握顺序存储的概念,学会对顺序存储数据结构进行操作. (3)加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能力. l  实验内容 1. 顺序表 1.编写线性表基本操作函数: (1)InitList(LIST *L,int ms)初始化线性表: (2)InsertList(LIST *L,int item,int rc)向线性表的指定位置插入元素: (3)DeleteList1

顺序表应用举例

例一:将顺序表La=(a1,a2,a3,-..an)逆置. 解:要想将La逆置,只需要将第一个元素与最后一个交换,第二个和倒数第二个交换,以此类推,直到没有元素发生交换.算法描述如下: void contrary_Sq(SqList &la){ int temp; for(i=0;i<La.length/2;i++){ temp=La.elem[i]; La.elem[i]=La.elem[La.length-1-i]; La.elem[La.elem-1-i]=temp; } } 例二:设

顺序表编程考点

1.顺序表删除算法 //顺序表删除算法 typedef struct{ Elemtype *elem; int length; int listsize; }Sqlist; int ListDelete_sq(Sqlist *L,int i) //删除顺序表L中的第i个元素 { int k; if(i<1 || i>L->length) //删除位置出错 return 0; for(k = i;k< L->length; k++) //从第i+1个位置开始,每个元素前移一个位

线性表之顺序表实现

1 #ifndef __SEQ_LIST_H__ 2 #define __SEQ_LIST_H__ 3 4 #include <stdio.h> 5 #include <stdlib.h> 6 #include <assert.h> 7 8 9 #define SEQLIST_INIT_SIZE 8 //顺序表初始化大小 10 #define INCSIZE 3 //顺序表每次增容大小 11 typedef int ElemType; //顺序表中数据的类型 12 13