操作系统实验报告之处理机管理

操作系统实验报告之处理机管理
操作系统实验报告之处理机管理

试验一:

时间:2013-11-29

计算机实验机房2

朱蓉蓉

第一题:先来先服务算法

#include

#include

#include

using namespace std;

struct PCB

{

string name;//进程名

float ta;//进程到达时间

float ts;//进程估计运行的时间

float tb;//进程开始运行时间

float tm;//进程仍需运行的时间

float to;//进程完成的时间

float rn;//进程运行的次数

float totalTime;//周转时间

double weightTotalTime;//带权周转时间(周转时间/估计运行时间)PCB *next;//定义指向下一个进程的指针

};

#define MAX_NUM 15

int pronum;//定义进程数为pronum

float total;//记录所有进程的总时间

double weight;//记录所有进程的带权周转时间

PCB *create(PCB *head);//创建进程队列

void deal(PCB *head);//FCFS记录处理

void sort(PCB *head);//将进程按到达的先后顺序排列

void fcfsrun(PCB *head);//先来先服务算法

PCB *create(PCB *head)

{

PCB *p1,*p2;

p1=p2=new PCB;

head=p1;

cout<<"请输入进程数:";

cin>>pronum;

for(int i=0;i

{

p2=p1;

p1=new PCB;

p1->next=NULL;

cout<<"请依次输入第"<

cin>>p1->name>>p1->ta>>p1->ts;

p1->tm=p1->ts;

p1->rn=1;

p2->next=p1;

}

return head;

}

void sort(PCB *head)//将进程按到达的先后顺序排列

{

PCB *p,*q,*r,*s;

if(head->next!=NULL)

{

p=head->next->next;

head->next->next=NULL;

}

while(p)

{

q=p;

p=p->next;

r=head;

s=head->next;

while(s&&s->ta<=q->ta)

{

r=s;

s=s->next;

}

r->next=q;

q->next=s;

}

}

void deal(PCB *head)//FCFS记录处理

{

sort(head);

PCB *p,*q;

q=head->next;

q->tb=q->ta;

q->to=q->tb+q->ts;

q->totalTime=q->to-q->ta;

q->weightTotalTime=q->totalTime/(double)q->ts;

total+=q->totalTime;

weight+=q->weightTotalTime;

p=q->next;

while(p!=NULL)

{

p->tb=q->to;

p->to=p->tb+p->ts;

p->totalTime=p->to-p->ta;

p->weightTotalTime=p->totalTime/(double)p->ts;

total+=p->totalTime;

weight+=p->weightTotalTime;

q=p;

p=p->next;

}

}

void fcfsrun(PCB *head)//先来先服务算法

{

deal(head);

PCB *p,*q,*s;

p=head->next;

cout<<"进程执行顺序为:";

while(p!=NULL)

{

cout<<"--"<name;

p=p->next;

}

cout<

cout<<"进程名提交时间开始时间结束时间周转时间带权周转时间\n";

s=head->next;

while(s!=NULL)

{

cout<name<ta<tb<to<totalTime<weightTotalTime<

s=s->next;

}

cout<

cout<<" 平均周转时间:"<

cout<<"平均带权周转时间:"<

cout<<"******************************************************"<

total=0;

weight=0;

}

void main()

{

cout<<"*E01114336-朱蓉蓉-先来先服务调度算法*"<

PCB *head=NULL;

head=create(head);

fcfsrun(head);

}

第二题:

//优先级调度算法

#include

#include

#include

#define getpch(type) (type*)malloc(sizeof(type)) #define NULL 0

struct pcb { /* 定义进程控制块PCB */

char name[10];

char state;

int super;

int ntime;

int rtime;

struct pcb* link;

}*ready=NULL,*p;

typedef struct pcb PCB;

void sort() /* 建立对进程进行优先级排列函数*/ {

PCB *first, *second;

int insert=0;

if((ready==NULL)||((p->super)>(ready->super))) /*优先级最大者,插入队首*/ {

p->link=ready;

ready=p;

}

else /* 进程比较优先级,插入适当的位置中*/

{

first=ready;

second=first->link;

while(second!=NULL)

{

if((p->super)>(second->super)) /*若插入进程比当前进程优先数大,*/

{ /*插入到当前进程前面*/

p->link=second;

first->link=p;

second=NULL;

insert=1;

}

else /* 插入进程优先数最低,则插入到队尾*/

{

first=first->link;

second=second->link;

}

}

if(insert==0) first->link=p;

}

}

void input() /* 建立进程控制块函数*/

{

int i,num;

system("cls"); /*清屏*/

printf("\n 请输入进程数: ");

scanf("%d",&num);

for(i=1;i<=num;i++)

{

printf("\n 进程号No.%d:\n",i);

p=getpch(PCB);

printf("\n 输入进程名:");

scanf("%s",p->name);

printf("\n 输入进程优先数:");

scanf("%d",&p->super);

printf("\n 输入进程运行时间:");

scanf("%d",&p->ntime);

printf("\n");

p->rtime=0;p->state='W';

p->link=NULL;

sort(); /* 调用sort函数*/

}

}

int space()

{

int l=0;

PCB* pr=ready;

while(pr!=NULL)

{

l++;

pr=pr->link;

}

return(l);

}

void disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/

{

printf("\n 进程名\t 状态\t 优先数\t 需要运行时间\t 已经运行时间\n"); printf("|%s\t",pr->name);

printf("|%c\t",pr->state);

printf("|%d\t",pr->super);

printf("|%d\t\t",pr->ntime);

printf("|%d\t",pr->rtime);

printf("\n");

}

void check() /* 建立进程查看函数*/

{

PCB* pr;

printf("\n **** 当前正在运行的进程是:\n"); /*显示当前运行进程*/ disp(p);

pr=ready;

printf("\n **** 当前就绪队列状态为:\n"); /*显示就绪队列状态*/

while(pr!=NULL)

{

disp(pr);

pr=pr->link;

}

}

void destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/

{

printf("\n 进程[%s] 已完成.\n",p->name);

free(p);

}

void running() /* 建立进程就绪函数(进程运行时间到,置就绪状态*/ {

(p->rtime)++;

if(p->rtime==p->ntime)

destroy(); /* 调用destroy函数*/

else

{

(p->super)--;

p->state='W';

sort(); /*调用sort函数*/

}

}

void main() /*主函数*/

{

int len,h=0;

char ch;

input();

len=space();

while((len!=0)&&(ready!=NULL))

{

ch=getchar();

h++;

printf("-----------------------------------------------------");

printf("\n 现在是第%d次运行:\n",h);

p=ready;

ready=p->link;

p->link=NULL;

p->state='R';

check();

running();

printf("\n 按任意键继续......\n"); }

printf("\n\n 进程已经完成.\n"); }

第三题:

按时间片轮法调度

#define N 10

#include

#include typedef struct pcb {

char pname[N];

int runtime;

int arrivetime;

char state;

struct pcb*next; }PCB;

PCB head_input;

PCB head_run;

PCB *pcb_input;

static char R='r',C='c';

unsigned long current;

void inputprocess();

int readydata();

int runprocess();

int readyprocess();

FILE * f;

/*检查就绪队列并准备运行进程的函数*/ int readyprocess()

{

while(1)

{

if(readydata()==0)

return 1;

else

runprocess();

}

}

/*判断就绪队列是否为空的函数*/

int readydata()

{

if(head_input.next==NULL)

{

if(head_run.next==NULL)

return 0;

else

return 1;

}

PCB *p1,*p2,*p3;

p1=head_run.next;

p2=&head_run;

while(p1!=NULL)

{

p2=p1;

p1=p2->next;

}

p1=p2;

p3=head_input.next;

p2=&head_input;

while(p3!=NULL)

{

if(((unsigned long)p3->arrivetime<=current)&&(p3->state==R))

{

printf("Time is %4d ; Process %s start,\n",\

(current+500)/1000,p3->pname);

fprintf(f,"Time is %4d ; Process %s start,\n",\

(current+500)/1000,p3->pname);

p2->next=p3->next;

p3->next=p1->next;

p1->next=p3;

p3=p2;

}

p2=p3;

p3=p3->next;

}

return 1;

}

int runprocess()

{

PCB *p1,*p2;

if(head_run.next==NULL)

{

current++;

return 1;

}

else

{

p1=head_run.next;

p2=&head_run;

while(p1!=NULL)

{

p1->runtime--;

current++;

if(p1->runtime<=0)

{

printf("Time is %4d;Process %s end.\n",(current+500)/1000,p1->pname);

fprintf(f,"Time is %4d;Process %s end.\n",(current+500)/1000,p1->pname);

p1->state=C;

p2->next=p1->next;

delete p1;

p1=NULL;

}

else

{

p2=p1;

p1=p2->next;

}

}

return 1;

}

}

void inputprocess()

{

PCB *p1,*p2;

int num;

printf("How many processes do you want to run:");

fprintf(f,"How many processes do you want to run:");

scanf("%d",&num);

fprintf(f,"%d\n",&num);

p1=&head_input;

p2=p1;

p1->next=new PCB;

p1=p1->next;

for(int i=0;i

{

printf("Input NO.%3d process pname:",i+1);

fprintf(f,"Input NO.%3d process pname:",i+1);

scanf("%s",p1->pname);

fprintf(f,"%s\n",p1->pname);

printf(" runtime:");

fprintf(f," runtime:");

scanf("%d",&(p1->runtime));

fprintf(f,"%d\n",&(p1->runtime));

printf(" arrivetime:");

fprintf(f," arrivetime:");

scanf("%d",&(p1->arrivetime));

fprintf(f,"%d\n",&(p1->arrivetime));

p1->runtime=(p1->runtime)*1000;

p1->arrivetime=(p1->arrivetime)*1000;

p1->state=R;

p1->next=new PCB;

p2=p1;

p1=p1->next;

}

delete p1;

p1=NULL;

p2->next=NULL;

}

/* 主函数*/

void main()

{

f=fopen("result.txt","w");

printf("\n time l=1000 time slice\n");

fprintf(f,"\n time l=1000 time slice\n");

current=0;

inputprocess();

readyprocess();

getch();

fclose(f);

}

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

《实用操作系统》实验报告五linux设备管理

《实用操作系统》实验报告 实验报告: 5 实验项目名称:设备管理 班级:学号:姓名: 地点:时间:2013 年11 月13 日 一、实验内容 1、添加硬盘,创建二个主分区、一个扩展分区,二个逻辑分区 注意:ide、scsi 提示:分区、格式化、挂载(fdisk,mkfs,mount) 2、查看常见的设备文件有哪些?(ls /dev ) 常见的设备文件:/dev/hd* IDE接口的硬盘(IDE接口的设备) /dev/sd* SCSI/USB设备/dev/cua* 串口设备/dev/lp* 并口设备/dev/tty* 终端设备/dev/consol 控制台设备/dev/eth* 以太网设备/dev/cdrom IDE光驱/dev/fd* 软驱/dev/audio 音频设备/dev/scd SCSI的光驱/dev/ppp PPP设备/dev/isdn* ISDN设备 3、挂载光盘,查看光盘内容创建挂载点要求:以本人姓名缩写为目录mkdir / 目录/设备挂载mount 空格源设备空格挂载点 4、显示管理System-config-display 5、声卡管理System-config-soundcard 6、打印机管理System-config-printer 7、网卡管理System-config-network 二、实验步骤及结果 1.添加硬盘,创建分区; 在启动虚拟机前,在工具栏中点击“虚拟机”,找到“设置”选项,在左面的硬件中找到硬盘,进行硬盘设备添加,这里有IDE和SCSI两种硬盘类型可供选择添加。完成硬盘添加后即可启动虚拟机进入linux系统。在这我添加了容量相同的硬盘设备类型各一;

实验室设备管理系统的设计与实现开题报告

辽宁工程技术大学 本科毕业设计(论文)开题报告 题目大学生实验室设备管理系统设计与实现指导教师孙宁 院(系、部) 软件学院 专业班级计HR 07-6 学号0720010602 姓名韩冰 日期2011年3月28日教务处印制

一、选题的目的、意义和研究现状 (一)选题的目的和意义 在学校实验室的设备管理工作中,设备的编排是一项十分复杂、棘手的工作。在编排过程中,由于数量多容易出错。利用计算机辅助进行设备编排工作,既提高了编排的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而教学设备管理现代化迈上了一个新台阶。又因为现在各个高校内教学设备众多但自动管理水平相比过低,很多高校管理设备都采用在设备购进以后将设备的基本情况和相关信息登记存档。存档以后档案基本就没人记录与维护,至于以后设备的变迁或损坏都不会记录在设备档案中,即不能体现设备的即时状态。而有些即使有设备管理系统的单位,就算是能把设备的即时信息体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个学校教学设备管理信息化仍处于较低水平。将管理任务分成小块,落实到个人并能随时查询设备当前情况和历史情况,对设备的可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来。 (二)选题的研究现状 实验室设备管理系统是一个学校教学系统中不可缺少的部分,它的内容对于实验室的管理者来说都至关重要,所以设备管理系统应该能够为师生提供充足的信息和快捷的查询手段。该系统还可以帮助学校实验室系统进行有效的设备管理,对设备的维护,教学质量的估计有很大的帮助,提高学生对的可持续发展能力与市场竞争力。 目前国内学校教学设备自动化管理水平不是很高。大多数学校设备管理办法是设备采购进来以后,将设备的基本情况和相关信息登记存档,然后将档案存档。以后档案基本就没人维护,如设备位置出库、检修情况、设备当前运行状态等信息根本不会体现在设备台帐上,即设备跟踪信息不能及时体现在设备档案上。某些使用设备管理系统学校,对设备的跟踪信息即使能体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个学校设备管理信息化仍处于较低水平。本信息管理系统合理的借鉴国际领先的设备管理思想并结合国内学校设备管理现状,可以完全能满足国内学校设备管理的需要。并通过对各行业设备管理情况的长期研究探索,以灵活、通用为主要设计思想,可提高学校的办公效率和设备可靠性,减少工作人员的劳动强度,减少办公耗材,提高学校的现代化管理水平。 二、研究方案及预期结果 (一)研究内容 作为计算机应用的一部分,使用计算机对实验室设备信息进行管理,有着人工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、维护性能强、寿命长、学生使用便捷等。这些优点能够极大地提高教学质量与教学效率,也是学校规模化管理、正规化管理,提高学生实验效率的重要条件。 实验室设备管理系统主要任务是对设备进行综合管理,做到全面规划、合理选购、正确维护、科学检修、适时更新,使设备达到最佳状态,充分发挥设备的效能和利用效率。提高教育质量,加大管理人员对实验室设备的管理力度。 (1)设备出/入库管理 功能描述:有操作员核对出/入库设备的基本信息,包括配件的基本属性。核对无误后,将要出/入库单信息提交信息库。 (2)计划管理

操作系统实验六_设备管理

操作系统课程报告实验六设备管理 学号 姓名 班级 教师 华侨大学电子工程系

实验目的 1、理解设备管理的概念和任务。 2、掌握独占设备的分配、回收等主要算法的原理并编程实现。 实验内容与基本要求 1、在Windows系统中,编写程序实现对独占设备的分配和回收的模拟, 该程序中包括:建立设备类表和设备表、分配设备和回收设备的函数。实验报告内容 1、独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下图: (2)设备分配 当进程申请某类设备时,系统先查“设备类表”如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未分配”的设备分配给进程。分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。然后,

把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。

处理机管理复习_1

《计算机操作系统》练习题 第一部分:处理机管理 1. 什么是进程控制块?试从进程管理、进程通信、中断处理、文件管理、存储管理、设备管理的角度设计进程控制块应包含的项目。 2. 在创建和撤销一个进程时所要完成的主要工作分别是什么?当进程A由于所分配的时间片到,由运行状态转入就绪状态;而进程B被调度程序选中由就绪态转为运行状态时,系统所要做的主要工作是什么? 3. 某系统采用以下措施对资源进行管理:进程在使用资源时提出资源申请,当一个已经保持了某些资源的进程再提出新的资源要求而不能立即得到满足时,必须释放它已经保持的所有资源,待以后需要时再提出申请。问这种措施为什么能够预防死锁?它有什么不足之处? 4. 理发师问题描述如下:理发店包含一间接待室和一间工作室,接待室内有n(n>0)把椅子,而工作室只有1把椅子。如果没有顾客,理发师就去睡觉;如果顾客到来时所有椅子都有人,那么顾客离去;如果理发师在忙而接待室有空闲的椅子,那么顾客会坐在其中一把椅子上等待;如果理发师在睡觉,则顾客会唤醒他。请采用信号量机制解决该位理发师问题(用代码描述) 5. 在一个批处理系统中,有两个作业进程。有一作业序列,其到达时间及估计运行时间列表如表所示。 作业到达时间估计运行时间 1 10:00 35 2 10:10 30 3 10:15 45 4 10:20 20 5 10:30 30 系统采用最高相应比优先的作业调度算法(相应比=等待时间/估计运行时间)。作业进程的调度采用短作业优先的抢占式调度算法。 (1)列出各作业的执行时间(即列出每个作业运行的时间片段,例如作业i的运行时间序列为10:00~10:40,11:00~11:20,11:30~11:50(结束))。 (2)计算这批作业的平均周转时间。 6. 假设一个CPU算法会优先考虑在近期占用CPU时间最少的进程,分析为什么这样的调度算法有利于受I/O约束的进程,但又不会使受CPU约束的进程饥饿。 7. 某系统如此定义P、V操作: P(S) S=S-1:

实验室设备管理系统

实验室设备管理系统 第一章系统概述 1.1系统开发背景 一个现代化的实验室设备系统在正常运行中总是面对大量的使用者,仪器以及两者相互作用产生的借用仪器。人工管理既浪费人力物力财力,又容易导致各种错误的发生。为了方便实验室管理,得开发一个更好更高效的软件来管理。实验室管理系统,是为了实现实验室管理而设计的,它也是现在各个部门的一个重要环节。 实验室是所有高校、研究机构必不可少的基本构成单位。特别是高校,实验室的设备管理需要一套稳定、高效的管理办法。就我校情况看来,目前我校的实验室设备管理还处于较原始的手工阶段,缺少一套实用可靠的管理系统软件。随着电气化教学和无纸化办公的一步步完善,利用计算机管理系统管理我校的实验室设备势在必行。因此,本项目拟开发一个实验室设备管理系统。 本系统将建立一个实验室设备管理平台,记录实验室所有的实验设备,并及时反应设备的运转状况,使用情况,以供本科生和研究生及其他试验人员合理的安排实验,达到工作效率的最优。 1.2项目设计基本原理 软件工程是一门从技术和组织管理两个角度研究如何用系统化、规范化和数量化等工程原理也方法去进行软件开发和维护的学科。软件工程学研究的范围非常广泛,包括技术方法、工具和管理等许多方面。软件生命周期的各个阶段可分为:采用软件工程的技术方法开发本系统,通过以上八个阶段组成软件的生存期,它是指从提出开发要求开始直到该软件报废为止的整个时期。分阶段进行,就把规模庞大、结构复杂和管理复杂的软件变的容易控制和管理。基于此思想,本系统开发实际可行的软件,方便毕业时信息的管理。

1.3数据库系统设计及范式分析 数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。 数据库设计的步骤是; 1数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP (负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有的联机分析处理CLAP(指为支持决策的制度对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的,有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。 2数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、效验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程序应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。 3存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。 4数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。 5数据字典设计:用数据字典描述数据库的设计,便于维护和修改。

操作系统实验七设备管理实验(广西师大)

操作系统课程实验 年级2012级 专业计算机科学与技术(应用型)姓名 学号 指导教师黄玲 日期2013年12月26日

实验七、设备管理实验 一、关键问题 1、实验目的 观察Linux下U盘的访问;理解设备虚拟分配技术。 2、实验环境 Ubuntu8.0或者以上,Eclipse集成开发环境 3、实验内容 3.1观察Linux下的U盘访问 从键盘获得符号串,写入磁盘文件,然后读取该文件。 3.2设备管理模拟实验要求:设计一个SPOOLing输入模拟系统。提示:输入井设计成结构体数组,每块存放一个输入文件内容。三个用户进程与一个后台输入进程并发执行,后台输入进程接受用户键盘输入的文件到输入井,每个用户进程从输入井获取输入数据。 老师所给的例子为为利用内存SPOOLing输入模拟系统,而问题的关键就是如何参考spoolout()设计spoolin()以及修改用户进程usepro()和输入#进程spoolsever()。 二、设计修改思路 spoolout()进程:键入要输入的用户id,如果用户输入文件未完成则键入文件内容,将文件内容mybuf发到输入井。 spoolsever()输入#进程:登记输入请求块,将缓冲区mybuf的数据送入输入井well。若成功送入,返回TRUE,否则返回FALSE。 usepro()用户进程:遍历输入请求块如找到该用户的输入请求,将输入请求块的数据送入用户缓冲区userbuf,并在屏幕输出userbuf。 三、实现修改的关键代码 #include #define WELLSIZE500//输入井的大小 #define FALSE0 #define TRUE1 //进程控制块 struct { int id;//进程标识数 char status;//进程状态,'e'为执行态,'c'为完成态。 int bufflag;//用户缓冲区userbuf空闲标志:FALSE为无数据,TRUE为有数据。 int filec;//本进程需要输出的文件数(用户指定) }pcb[4];//pcb[0]为SPOOLing进程,pcb[1]、pcb[2]、pcb[3]为3个用户进程

操作系统实验 设备管理汇总

操作系统实验 名称实验六设备管理 姓名 专业 学号 日期 2015年12月01日指导老师

一、实验目的 1.理解设备管理的概念和任务。 2.掌握独占设备的分配、回收等主要算法的原理并编程实现。 二、实验内容与要求 1.在Windows系统中,编写程序实现对独占设备的分配和回收的模拟,该程序中包括:建立设备类表和设备表、分配设备和回收设备的函数。 三、实验原理 1.独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。 为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下 设备类表设备表 控制器表通道表 设备队列队首指针。凡因请求本设备而未得到满足的进程,其PCB都应按照一定的策略排成一个队列,称该队列为设备请求队列或简称设备队列。其队首指针指向队首PCB。在有的系统中还设置了队尾指针。 设备状态。当设备自身正处于使用状态时,应将设备的忙/闲标志置“1”。若与该设备相连接的控制器或通道正忙,也不能启动该设备,此时则应将设备的等待标志置“1”。

与设备连接的控制器表指针。该指针指向该设备所连接的控制器的控制表。在设备到主机之间具有多条通路的情况下,一个设备将与多个控制器相连接。此时,在DCT中还应设置多个控制器表指针。 (2)设备分配 1)当进程申请某类设备时,系统先查“设备类表”。 2)如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未分配”的设备分配给进程。 3)分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。 4)然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。 设备分配程序的改进 增加设备的独立性:为了获得设备的独立性,进程应使用逻辑设备名I/O。这样,系统首先从SDT中找出第一个该类设备的DCT。若该设备忙,又查找第二个该类设备的DCT,仅当所有该类设备都忙时,才把进程挂在该类设备的等待队列上,而只要有一个该类设备可用,系统便进一歩计算分配该设备的安全性。 四、程序流程图

操作系统课后习题答案第四章存储器管理习题.doc

第四章存储器管理 1.在存储管理中,采用覆盖和交换技术的目的是 A.节省内存空间B.物理上扩充内存容量C.提高CPU效率D.实现内存共享 2.采用不会产生内部碎片 A.分页式存储管理B.分段式存储管理 C.固定分区式存储管理D.段页式存储管理 3.某虚拟存储器系统采用页式内存管理,使用LRU页面替换算法,考虑下面的页面地址访问流: 1,8,1,7,8,2,7,2,1,8,3,8,2,1,3,1,7,1,3 假定内存容量为4个页面,开始时是空的,则缺页中断的次数A.4 B.5 C.6 D.7 4.最佳适应算法的空闲块链表是 A.按大小递减顺序连在一起B.按大小递增顺序连在一起C.按地址由小到大排列D.按地址由大到小排列5.在可变分区存储管理中的紧凑技术可以 A.集中空闲区B.增加内存容量 C.缩短访问周期D.加速地址转换 6.在固定分区分配中,每个分区的大小是 A.相同B.随作业长度变化 C.可以不同但预先固定D.可以不同但根据作业长度固定7.实现虚拟存储管理的目的是

A.实现存储保护B.实现程序浮动 C.扩充辅存容量D.扩充内存容量 8.采用分段存储管理的系统中,若地址是24位表示,其中8位表示段号,则允许每段的最大长度是 A.224B.216C.28 D.232 9.把作业地址空间使用的逻辑地址变成内存的物理地址称为A.加载B.重定位C.物理化D.逻辑化10.在段页式存储管理系统中,内存等分成程序按逻辑模块划分成若干 A.块B.基址C.分区D.段E.页号F.段长11.虚拟存储管理系统的基础是程序的理论 A.局部性B.全局性C.动态性D.虚拟性12.以下存储管理方式中,不适用于多道程序设计系统的是A.单用户连续分配B.固定式分区分配 C.可变式分区分配D.页式存储管理 13.在可变分区分配方案中,某一道作业完成后,系统收回其在内存空间并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是 A.无上邻空闲区也无下邻空闲区 B.有上邻空闲区但无下邻空闲区 C.无上邻空闲区但有下邻空闲区 D.有上邻空闲区也有下邻空闲区

管理信息系统实验报告

《管理信息系统》实验报告 实验项目:教务处排课系统分析 实验学时:18学时 姓名: 学号: 专业班级: 实验时间: 实验成绩:

东北财经大学 《管理信息系统》实验报告实验项目名称:

管理系统实验报告 实验小组成员: 实验对象:教务处排课信息系统 实验对象背景介绍:教务管理系统是一个庞大而复杂的系统,它包括:学生学籍管理 系统、排课系统、教师管理系统、学生成绩系统、系统设置、班级信息系统、教学培养计划管理系统、教学资源管理系统、招生系统教务信息发布系统和事务处理系统。随着科学技术的进步与相应的管理信息系统的升级,教务系统管理平台充分利用互联网络B/S管理信息模式,以网络为平台,为各个学校教务系统的管理提供一个平台,帮助学校管理教务系统,用一个帐号解决学校教务教学管理,并且学校可以自由选择学校需要的教务管理系统,灵活地定制符合学校自己实际情况的教务系统。教务管理系统内部子系统多样庞杂,今天我们主要讨论的研究对象是排课管理信息系统。 排课管理系统是每个学校必不可少的内容,它的优劣直接学校教学工作质量和学校的正常教学活动秩序。随着现在生源数量的不断增长以及各行业竞争日益激烈,为了满足中国社会主义事业发展对高素质人才的需求,各大高校都在尽自己努力,以本校现状及需求作为基础,以科技发展进步作为依托,发展完善一个功能完整,操作简单快捷,高效率,与本校其他教务管理系统良好适应的排课系统与之配套,使教师等教学资源利用达到最大化,为学生提供优良的教育环境。因此,东北财经大学作为一个知名的财经类高校,要达到适应教育现状及提高自身教育层次的目标,完善教务排课管理系统显得尤为重要。 系统功能简述 排课管理系统需要合理调配各个班级专业所需的专业课程选修必修课程,相应教师,教师及上课班级,尽可能全面的考虑到教师的身体状况,工作条件,家庭状况甚至与学校距离,教师及学生时间,各种课程按重要程度以及学生兴奋点和接受能力合理排序,教师的容量用途,学校集体活动或教师会议等多方面因素,以计算机安排为主,手工调整为辅的方式做出各个院系各个专业各个班级的课程安排。 排课管理系统的目标不仅是对于原有系统进行改进提高,还使课程管理科学化系统化准确化,减少手工录入的误差可能性,方便操作者的随时添加、查询、修改,是统计表格格式规范化统一化,提高工作效率,降低人工成本,提高处理数据能力与速度,提高教学质量,优化学校教务管理系统,为学校的进一步发展提供技术支持与可能性。 系统分析 (1)系统分析任务:根据系统设计任务书所确定的范围,并在充分认识原有系统的基础上进行详细的调查分析,通过问题识别、可行性分析、详细调查、系统化分析,进而确定新系统的基本目标和逻辑功能结构,最后完成新系统的逻辑方案设计。 (2)可行性分析和详细调查概述:由于实验的限制,假定建立排课管理信息系统在管理上、技术上、经济上都是可行的。而详细调查采用一定的调查方法发现了现行系统有以下优缺点: 现有系统优缺点分析 1.选课分为预选、正选、补退选,一定程度上完善了选课系统。 2.在选课中,按年级差异区分次序,一定程度上缓解短时间内系统压力,保证了高年级学生顺利完成课业。

实验室设备管理系统

实验室设备管理系 统 1

实验室设备管理系统 实验室设备管理系统 2

一、需求分析 ........................................................ 错误!未定义书签。 二、概要设计 (5) 三、详细设计 (13) 四、调试分析 (37) 五、用户手册 (37) 六、附录 (38) 一、需求分析 3

1.1需求背景 实验室设备管理系统是为了方便学校对实验室以及实验室里的设备进行管理而设计一款系统,它能在科学技术飞速发展的同时,使得我们的实验室紧跟时代得潮流,与科学技术紧接,更加的方便于大家的应用,更好得方便了老师合和学生们。 故提高学校实验室设备管理水平,更好的也更大的发挥了实验室仪器设备的功能,更加好的完善了学科的教学体系,提高了教学质量;与此同时也探索了新的实验方法和手段,完善完备了学科实验教材,使得实验室设备成为相对独立得教学实体。 1.2课设要求 a、能够对设备类型(2级)进行管理 b、.能够对设备名称、数量、属性进行管理 c、部分设备可能会由多个部件构成,能够对设备部件进行管理(*) d、能够对实验室进行管理 e、能够对设备进行借还管理 1.3功能需求 (1)实验室设备管理系统的用户分为:管理员,老师,学生。不同身份之间的用户具有不同的使用特权; 4

(2)管理员:管理员能够对设备类型(2级)、设备名称、数量、属性、设备部件、实验室、设备的行借还进行管理,是三个用户中权利最大的用户,对其管理的实验室及设备具有增、删、改的大权;(3)老师:老师能够查看实验室以及其的设备,具有实验室设备的借还权利; (4)学生:学生能够查看实验室以及其的设备,具有实验室设备的借还权利; 1.3.1 管理员功能的详述 管理员经过登录后进入管理员的主页面,主页面显示管理员具备的三大管理权利:设备管理、实验室管理、借还管理。 a .设备管理分为物理设备管理、化学设备管理和软件设备管理,每个不同类型设备中又具有不同类型的设备,例如化学设备,化学设备又分为物理化学设备、分析化学设备,二级设备里具有不同的仪器,不同的仪器中有不同的设备部件,管理员能够进行增、删、改操作 5

微处理器实验报告

《微处理器实验》实验报告 一、实验目的与任务 1、掌握80C51单片机程序的调试与下载方法。 2、掌握80C51单片机并口的工作原理及输入输出控制方法。 3、理解和学会单片机外部中断的使用; 4、学习单片机定时器/计数器的应用。 二、实验原理介绍 80C51单片机包括P0~P3共4个并口,除可作为普通I/O口使用外,P0口还可用作8位数据总线口和低8位地址口,P2可用作高8位地址口,P3.6、P3.7可用作外部RAM或I/O接口的读、写控制引脚,P3.0~P3.5可用作串口、外部中断、计数器的功能引脚。 ZSC-1实验箱包括4个单片机,其中1#单片机(MCU1)和2#单片机(MCU2)的型号都是STC12C5A60S2,只是封装不同。STC12C5A60S2采用80C51内核,片内资源和性能较标准80C51单片机增强了许多。本课程的全部实验只用到MCU1。 图3-1为本实验对应的硬件电路。P0口用于控制发光管L101~L108,口线输出0(低电平)时,对应的发光管点亮,口线输出1(高电平)时,对应的发光管熄灭。P3口的4根口线连接独立按键KX0~KX3,由于P3口内部上拉电阻的作用,按键松开时,对应的口线表现为1状态(高电平),按键按下时,对应的口线表现为0状态(低电平)。 中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件。待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。引起突发事件的来源称为中断源,中断源要求服务的请求称为中断请求,对中断请求提供的服务称为中断服务,中断管理系统处理事件的过程称为中断响应过程。51类单片机至少包括5个中断源: INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。(本实验用) INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 T0:定时器/计数器0中断,由T0计满回零引起。(本实验用) T1:定时器/计数器l中断,由T1计满回零引起。 TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。 与实验三相同,图3-1为本实验对应的硬件电路。P0口用于控制发光管L101~L108,口线输出0(低电平)时,对应的发光管点亮,口线输出1(高电平)时,对应的发光管熄灭。P3口的4根口线连接独立按键KX0~KX3,其中KX0对应外部中断0,进行KX0按键动作的时候可以触发外部中断。 三、实验内容与结果 1、设计程序,控制发光管L101~L108以一定的时间间隔轮流点亮。 ①在Keil中编写源程序。参考程序如下(请将下划线部分补充完整): ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV A, #11111110B ;准备点亮第一只发光管 NEXT: MOV ,A ACALL DELAY ;软件延时1s左右 A ;准备点亮下一只发光管 SJMP NEXT

实验10 操作系统设备管理

实验10 操作系统设备管理 一、按课本第139页【实例分析4-7】内容熟悉设备管理器界面。(若课本没带,打开我的电脑-右键-管理-设备管理-查看相应设备。)记录你使用的电脑的处理器、磁盘存储器等的型号分别是什么。二、学习如何在Microsoft Windows XP 中如何使用设备管理器管 理设备。 使用设备管理器管理设备 设备管理器提供一个图形视图,可显示计算机上安装的硬件以及与硬件关联的设备驱动程序和资源。在设备管理器上,可以集中更改配置硬件的方式以及更改硬件与计算机微处理器交互的方式。 使用设备管理器管理设备及其驱动程序需要拥有下列权限,系统管理员被授予了所有这些权限:?加载/卸载驱动程序权限。 ?向system32\drivers 目录复制文件所需的权限。 ?向注册表写入设置所需的权限。 设备管理器具有下列功能: ?确定计算机上的硬件是否工作正常。 ?更改硬件配置设置。 ?标识为每个设备加载的设备驱动程序,并获取每个设备驱动程序的有关信息。 ?更改设备的高级设置和属性。 ?安装更新的设备驱动程序。 ?禁用、启用和卸载设备。 ?重新安装驱动程序的前一版本。 ?找出设备冲突并手动配置资源设置。 ?打印计算机上所安装设备的概要信息。 通常,设备管理器用于检查计算机硬件的状态以及更新计算机上的设备驱动程序。如果您是高级用户并且通晓计算机硬件知识,则可以使用设备管理器的诊断功能来消除设备冲突和更改资源设置。 要访问设备管理器,请使用下列任一方法: ?单击开始,单击运行,然后键入devmgmt.msc。 ?右键单击我的电脑,单击管理,然后单击设备管理器。 ?右键单击我的电脑,单击属性,单击硬件选项卡,然后单击设备管理器。

操作系统实验六设备管理

操作系统课程报告 实验六设备管理 学号 姓名 班级 教师 华侨大学电子工程系

实验目的 1、理解设备管理的概念和任务。 2、掌握独占设备的分配、回收等主要算法的原理并编程实现。 实验内容与基本要求 1、在Windows系统中,编写程序实现对独占设备的分配和回收的模拟,该程序中包括: 建立设备类表和设备表、分配设备和回收设备的函数。 实验报告内容 1、独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下图:(2)设备分配 当进程申请某类设备时,系统先查“设备类表”如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未

分配”的设备分配给进程。分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。 2、程序流程图。 主程序流程图: 设备分配: 设备回收: 3、程序及注释。 #include #include #include #define false 0 #define true 1

操作系统复习提纲与要点

《操作系统》复习提纲与要求 一、《操作系统》试题类型 二、《操作系统》重点和难点 三、《操作系统》各章节复习 一、《操作系统》试题类型 计算机专业: 1.填空题 2.选择题 3 判断题 4.简答题 5应用题 二、《操作系统》重点和难点 第1章操作系统引论 内容概要: 1. 操作系统的目标 2. 操作系统的发展过程 3. 操作系统的特征和服务 4. 操作系统的功能 5. 操作系统的进一步发展 重点: 1. 操作系统的目标

2. 操作系统的特征和服务第2章进程管理 内容概要: 1.前趋图和程序执行 2.进程的描述 3.进程的控制 4.线程的基本概念 重点: 1.进程的描述 2.进程的控制 3.线程的基本概念 进程的同步与通信 内容概述: 1.进程同步的基本概念 2.信号量机制 3.经典进程同步问题 4 .进程通信 重点: 1.进程同步的基本概念 2.信号量机制 3.经典进程同步问题 4.进程通信

第2章处理机调度和死锁 内容概要: 1.调度的类型和模型 2.调度算法 3.死锁的基本概念 4.死锁的预防和避免 5.死锁的检测和解除 重点: 1.调度的类型和模型 2.调度算法 3.死锁的基本概念 4.死锁的预防和避免 5.死锁的检测和解除 第3章存储器管理 内容概要: 1.程序的装入和链接 2.连续分配存储管理方式 3.分页存储管理方式 4.分段存储管理方式 重点: 1.连续分配存储管理方式 2.分页、分段存储管理方式

第3章虚拟存储器 内容概要: 1.虚拟存储器的基本概念 2.请求分页式存储管理方式 3.页面置换算法 4.请求分段存储管理方式 重点: 1. 虚拟存储器的基本概念 2.请求分页式存储管理方式 3.页面置换算法 4磁盘存储器管理 第4章文件管理 内容概要: 1.文件和文件系统 2.文件逻辑结构 3.目录管理 4.文件共享 5.文件保护 重点: 1.文件和文件系统有关概念 2.文件逻辑结构的类型和文件的检索

实验室设备管理系统实验报告1讲解

本科实验报告 课程名称:软件工程导论 实验项目:实验室设备管理系统 实验地点:实验楼210 专业班级:软件1319 学号:2013005655 学生姓名:张卫东 指导教师:王会青 2015年05 月21 日

一、实验目的和要求 1.系统简介 某大学每学年都需要对实验室设备使用情况进行统计、更新。 其中: (1)对于已彻底损坏的实验设备做报废处理,同时详细记录有关信息。 (2)对于有严重问题(故障)的需要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。 (3)对于急需使用但实验室目前又缺乏的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、编号、 型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同 时更新申请表的内容。 (4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等条件进行查询。 2.技术要求及限制条件 (1)所有工作由专门人员负责完成,其他人不得任意使用。 (2)每件设备在做入库登记时均由系统按类别加自动顺序号编号,形成设备号;设备报废时要及时修改相应的设备记录,且有领导认可。 (3)本系统的数据存储至少包括:设备记录、修理记录、报废记录、申请购买记录。 (4)本系统的输入项至少包括:新设备信息、修理信息、申请购买信息、具体查询统计要求。 (5)本系统的输出项至少包括:设备购买申请表、修理/报废设备资金统计表。 二、实验内容和原理 可行性分析报告 可行性研究主要是初步确定项目的规模和目标,确定项目的约束和限制。对于项目的功能和性能方面的要求进行简要的概述。详见组长田彦博的实验报告。 需求规格说明书 需求规格说明书主要是进一步定制实验室设备管理系统软件开发的细节问题,便于用户与开发商协调工作。在此主要绘制了系统的数据流图、相应的数据字典、E-R图、以及系统的功能图,对于各个方面的需求进行了详细的阐述。详见组长田彦博的实验报告。 概要设计说明书 概要设计说明书是为了说明整个实验室设备管理系统的体系架构,以及需求用例的各个功能点在架构中的体现。在此主要绘制了系统流程图、总体结构和模块的外部设计,而且对于数据库中逻辑结构方面也进行了详细的设计。详见组长田彦博的实验报告。

JAVAEE课程设计 之实验室设备管理系统

软件学院 课程设计报告书 课程名称 Java高级框架应用开发 设计题目实验室设备管理系统 专业班级软件工程10-6班 学号1020010627 姓名萧翎 指导教师郭鹏飞 2013 年 1 月

目录 1 设计时间.............................................................. 错误!未定义书签。 2 设计目的.............................................................. 错误!未定义书签。3设计任务............................................................... 错误!未定义书签。 4 设计内容.............................................................. 错误!未定义书签。 4.1需求分析............................................................ 错误!未定义书签。 4.1.1总体目标 ...................................................... 错误!未定义书签。 4.1.2具体目标 ...................................................... 错误!未定义书签。 4.1.3系统数据建模 .............................................. 错误!未定义书签。 4.1.4系统功能建模 .............................................. 错误!未定义书签。 4.1.5数据字典 ...................................................... 错误!未定义书签。 4.2总体设计............................................................ 错误!未定义书签。 4.3详细设计........................................................... 错误!未定义书签。 4.4运行与测试 ...................................................... 错误!未定义书签。 5 总结与展望.......................................................... 错误!未定义书签。附:系统程序主要代码 ......................................... 错误!未定义书签。参考文献.................................................................. 错误!未定义书签。成绩评定.................................................................. 错误!未定义书签。

相关文档
最新文档