- 博客(1)
- 资源 (6)
- 收藏
- 关注
原创 Spring 的简单的介绍
Spring是一个开源框架,是为简化企业级应用开发而出现的。使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能,比如事务处理,日志记录,持久化服务和JMS服务等等。听到对Spring描述最多的一句话是:它是一个 DI和AOP容器框架。具体描述Spring如下: 1.轻量级。 整个大小可以打成一个2.5 MB 的jar包,而且 Spring 的处理开支也很小。
2013-07-05 09:35:02 598
课程设计报告网上书店系统
1.1 背景
随着Internet国际互联网的发展,越来越多的企业开始建造自己的网站。基于Internet的信息服务,商务服务已经成为现代企业一项不可缺少的内容。很多企业都已不满足于建立一个简单的仅仅能够发布信息的静态网站。现代企业需要的是一个功能强大的,能提供完善的电子商务服务的动态商务网站。同时人们的生活方式也在随着发生改变,传统的购物方式已不能满足人们的需求。
2013-06-05
网上书店系统需求说明书
网上书店系统需求说明书1 引言
随着网络的普及,网络支付手段的逐步完善,越来越多的人习惯于网上购物,选择鼠标点击下订单,送货上门的快捷便利的购物方式。网络为改变传统的商业运作模式提供了一种技术上的可行性的方案
2013-06-05
操作系统复习题
非常不错,适合应考#include<stdio.h>
struct liang //定义结构体
{
char fork[10];
int times;
int cpu;
int pp;
int rr;
int num;
char state;
int pm;
}data[100];
//声明函数及全局变量
int i;
void init();
void p();
void r();
int main()
{
while(1)
{
char a;
printf("选择算法 - P/R(优先级算法/时间片轮转算法):");
scanf("%s",&a);
init();
if(a=='p')
{
p();//优先级算法
}
else if(a=='r')
{
r();//时间轮转算法
}
}
}
void init() //初始化
{
int j;
printf("输入进程数:");
scanf("%d",&i);
printf("输入进程号和运行时间:\n");
for(j=0;j<i;j++)
{
scanf("%s %d",data[j].fork,&data;[j].times);
}
}
void p()
{
int j,k,temp1;int flag=0,flag1=0;
printf("优先级算法输出\n************************************\n");
printf("进程号 cpu时间 所需时间 优先级 状态\n");
//初始化数据
for(j=0;j<i;j++)
{
data[j].cpu=0;
data[j].state='w';
data[j].pp=100-data[j].times;
}
//以优先级高低进行冒泡排序
for(j=0;j<i;j++)
{
for (k=0;k<i-1-j;k++)
{
if (data[k].times>data[k+1].times)
{
data[i]=data[k];
data[k]=data[k+1];
data[k+1]=data[i];
}
}
}
for(;getchar() == '\n';)
{
data[0].state='r';
for(j=0;j<i;j++)
{
printf(" %s %d %d %d %s\n",
&data;[j].fork,data[j].cpu,data[j].times,data[j].pp,&data;[j].state);
}
//对首进程进行数据处理
data[0].times--;
data[0].cpu++;
data[0].pp=data[0].pp-5;
if(data[0].times>0)
data[0].state='w';
if(data[0].times==0)
{
data[0].state='f';
}
//判断是否所有进程执行完毕
for(j=0;j<i;j++)
{
if(data[j].times==0)
flag1++;
}
if(flag1==i)
{
printf("\n");
for(j=0;j<i;j++)
{
printf(" %s %d %d %d %s\n",
&data;[j].fork,data[j].cpu,data[j].times,data[j].pp,&data;[j].state);
}break; //执行完跳出
}
//首进程插入就绪队列末尾
data[i]=data[0];
for(j=0;j<i-flag;j++)
{
if(data[j+1].times!=0)
{
data[j]=data[j+1];
}
else
{
flag++;break;
}
}
data[i-flag]=data[i];
data[0].state='r' ;
flag1=0;
}
}
void r()
{
int j,k,temp1;int flag=0,flag1=0;
printf("时间片轮转算法输出\n************************************\n");
printf("进程号 cpu时间 所需时间 记数 时间片 状态\n");
//初始化数据
for(j=0;j<i;j++)
{
data[j].cpu=0;
data[j].state='w';
data[j].rr=2;
data[j].num=0;
}
for(;getchar() == '\n';)
{
data[0].state='r';
for(j=0;j<i;j++)
{
printf(" %s %d %d %d %d %s\n",
&data;[j].fork,data[j].cpu,data[j].times,data[j].num,data[j].rr,&data;[j].state);
}
//对首进程进行数据处理
data[0].times-=2;
data[0].num++;
data[0].cpu+=2;
if(data[0].times<0)
{
data[0].times=0;
data[0].cpu--;
}
if(data[0].times>0)
data[0].state='w';
if(data[0].times==0)
{
data[0].state='f';
}
//判断是否所有进程执行完毕
for(j=0;j<i;j++)
{
if(data[j].times==0)
{
flag1++;
}
}
if(flag1==i)
{
printf("\n");
for(j=0;j<i;j++)
{
printf(" %s %d %d %d %d %s\n",
&data;[j].fork,data[j].cpu,data[j].times,data[j].num,data[j].rr,&data;[j].state);
}break; //执行完跳出
}
//首进程插入就绪队列末尾
data[i]=data[0];
for(j=0;j<i-flag;j++)
{
if(data[j+1].times!=0)
{
data[j]=data[j+1];
}
else
{
flag++;break;
}
}
data[i-flag]=data[i];
data[0].state='r';
flag1=0;
}
}
2012-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人