JSP在线投票实验报告

JSP在线投票实验报告
JSP在线投票实验报告

第1部分概述

在线投票系统主要用来统计网站用户对某个主题或热门话题的意见。决策者通过这些统计数据做出相应的决策。在线投票系统是一般网站必备的程序之一,如果网站开发者想了解用户对该网站的意见和建议。他可以设计这样一个投票主题:你认为该网站如何?(A.很好B.一般C.不好)然后提供给用户进行投票。

我的投票系统具有极大的灵活性,投票类型分为单选投票和多选投票。

术语列表:

JSP:(Java Server Pages),JSP是一种基于Java的技术,用来产生跨平台和跨Web服务器的动态页面。

JDBC:(Java DataBase Connectivity),Java数据库连接。它主要是一套让你访问数据库的API,程序人员可以利用JDBC API来执行SQL语句。

Servlet:Servlet可以称之为“服务器小程序”,与Java application 不同,它没有main方法,而是用一些特定的方法用于启动、执行和退出。通过使用Servlet,可以与运行与客户端的Applet进行交互,也可以直接与HTML 页进行交互。

JavaBeans: JavaBeans是可复用的平台中立的软件组件,可以在软件开发工具中被直观地操作。应用程序开发者可以通过支持JavaBeans的开发工具,直接使用现成的JavaBeans,也可以在开发工具容器中,对组件进行必要的修改、测试而不必编写和编译程序。在Java模型中,组件可以修改或与其他组件组合以生成新组件或完整的应用程序。

HTML:(Hypertext Markup Language)超文本标记语言,它是组织多媒体文档的重要语言,它不仅用来编写Web网页,而且可以使用它来制作光盘上的多媒体节目。HTML可用来编排文档、创建列表、建立链接等等。

XML:(eXtensible Markup Language)可扩展标记语言,它是一种具有数据描述功能(Meta-language)、高度结构性及可验证性的语言。

SQL:(Structured Query Language),结构化查询语言。SQL语言地任务就是与各种数据库建立关系,SQL语言是关系型数据库的标准语言,大多数关系型数据库管理系统都支持SQL语言并采用了SQL的语言标准。

MySQL:MySQL是一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统。按照使用又可以分为DML(Data Manipulation Language),即数据操作语言和DDL(Data Definition Language)。

第2部分分析部分

2.1.功能需求

通过对用户的需求调查分析,可以概括出用户的功能需求如下:单选投票、多选投票、查看投票。

◆单选投票:用户可以从多个选项中选取一项进行投票。

◆多选投票:用户可以从多个选项中选取多项进行投票。

◆查看投票:提供用户查看当前投票情况,投票结果以条形图显示。

第3部分系统设计

3.1.功能模块设计

通过对功能需求进行分析和概括得到如图所示的系统功能模块图:

3.2.数据库的设计

该系统的数据库采用MySQL ,根据投票系统功能设计的要求,可以列出以下数据项和数据结构:

tb_temp 表:id 、voteIp 、toteMSEL 、votetime 、。 tb_vote 表:Id 、vote_title 、vote_num 、vote_order 。

参与投票 返回首页

返回投票

返回首页

查看结果

重新选择

提交投票

查看结果

查看结果

返回投票

返回首页

第4部分系统开发4.1.数据库

4.1.1.创建数据库

4.1.2.创建表

4.1.3.连接数据库

package com.yxq.toolbean;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.Statement;

import java.sql.ResultSet;

import java.util.ArrayList;

import java.util.List;

4.2.功能的实现

投票流程图:

开始

该流程图已经包含了在线投票系统的制作的主要方法。下面的工作实际上就是按照该流程图,写出具体的代码。 设计代码中有我开发的代码,并附有注释。所以在这里我就不展开介绍每一个功能的开发过程。

第5部分 运行部分

5.1.系统的使用

为了直观,在这里我将主要通过程序运行截图来介绍该投票系统的使用。

进入在线投票系统的首页,在首页中显示了该系统的操作。

结 束

显示投票表单

取得投票的参数

累加投票数

将结果写入数据库 显示投票结果

是否取得参数

链接即可打开投票页面。

?点击“提交投票”链接。

点击“查看结果“链接后,可以查看在线投票的结果。

第6部分设计代码

1.vote.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%@ page import="java.util.List" %>

<%@ page import="com.yxq.valuebean.V oteSingle" %>

·····

····

···

2.doV ote.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%@ page import="com.yxq.valuebean.TempSingle" %>

<%@ page import="com.yxq.toolbean.MyTools" %>

<%@ page import="java.util.Date" %>

···

····

3.index.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

在线投票

background="images/bg.jpg">

4.Messages.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%

String message=(String)session.getAttribute("mess");

if(message==null)

message="";

session.invalidate();

%>

友情提示

<%=message%>

src="images/indexB.jpg" style="border:0">

   

   

5.showVote.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%@ page import="java.util.List" %>

<%@ page import="com.yxq.valuebean.V oteSingle" %>

<%

float numAll=0;

String sql="select * from tb_vote order by vote_order";

List showlist=myDb.selectV ote(sql);

%>

在线投票

<% if(showlist==null||showlist.size()==0){ %>

}

else{

int i=0;

while(i

V oteSingle single=(V oteSingle)showlist.get(i);

numAll+=Integer.parseInt(single.getNum());

%>

<%

i++;

}

}

%>

没有选项可显示!
<%=single.getTitle() %><%=single.getNum() %> 票  

<% if(showlist==null||showlist.equals("")){ %>

<%

}

else{

int i=0;

while(i

V oteSingle single=(V oteSingle)showlist.get(i);

int numOne=Integer.parseInt(single.getNum());

float picLen=numOne*145/numAll;

//计算图片长度

float per=numOne*100/numAll;

//计算票数所占的百分比

float doPer=((int)((per+0.05f)*10))/10f;

//保留百分比后的一位小数,并进行四舍五入

<%

i++;

}

}

%>

没有选项可显示!
影片:<%=single.getTitle()%><%=doPer%>%

6、MyTools.java

package com.yxq.toolbean;

import java.text.SimpleDateFormat;

import java.util.Date;

public class MyTools {

/**

* @功能将int型数据转换为String型数据

* @参数num为要转换的int型数据

* @返回值String类型

*/

public static String intToStr(int num){

return String.valueOf(num);

}

/**

* @功能比较时间。

* @参数today当前时间,temp为上次投票时间。这两个参数都是以毫秒显示的时间

* @返回值String类型

*/

/**

* @功能格式化时间为指定格式。首先通过Date类的构造方法根据给出的毫秒数获取一个时间,然后将该时间转换为指定格式,如"年-月-日时:分:秒"

* @参数ms为毫秒数

* @返回值String类型

*/

public static String formatDate(long ms){

Date date=new Date(ms);

SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String strDate=format.format(date);

return strDate;

}

}

7、DB.java

package com.yxq.toolbean;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.Statement;

import java.sql.ResultSet;

import java.util.ArrayList;

import java.util.List;

import com.yxq.valuebean.TempSingle;

import com.yxq.valuebean.V oteSingle;

public class DB {

private String className;

private String url;

private String username;

private String password;

private Connection con;

private Statement stm;

private ResultSet rs;

public DB() {

className = "com.microsoft.jdbc.sqlserver.SQLServerDriver";

url = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=db_vote";

username = "sa";

password = "123";

}

/**

* @功能加载数据库驱动程序

*/

public void loadDrive() {

try {

Class.forName(className);

} catch (ClassNotFoundException e) {

System.out.println("加载数据库驱动程序失败!");

e.printStackTrace();

}

}

/**

* @功能获取数据库连接

*/

public void getCon() {

loadDrive();

try {

con = DriverManager.getConnection(url, username, password);

} catch (Exception e) {

System.out.println("连接数据库失败!");

e.printStackTrace();

}

}

/**

* @功能获取Statement对象

*/

public void getStm() {

getCon();

try {

stm = con.createStatement();

} catch (Exception e) {

System.out.println("获取Statement对象失败!");

e.printStackTrace();

}

}

/**

* @功能查询数据表,获取结果集

*/

public void getRs(String sql) {

getStm();

try {

rs = stm.executeQuery(sql);

} catch (Exception e) {

System.out.println("查询数据库失败!");

e.printStackTrace();

}

}

/**

* @功能查询数据表,获取投票选项

*/

/**

* @功能查询数据表,获取指定IP最后一次投票的记录*/

/**

* @功能更新数据表

*/

/**

* @功能关闭数据库连接

*/

8、TempSingle.java

package com.yxq.valuebean;

public class TempSingle {

private String id;

private String voteIp;

private long voteMSEL;

private String voteTime;

public long getV oteMSEL() {

return voteMSEL;

}

public void setV oteMSEL(long voteMSEL) {

this.voteMSEL = voteMSEL;

}

public String getV oteTime() {

return voteTime;

}

public void setV oteTime(String voteTime) { this.voteTime = voteTime;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getV oteIp() {

return voteIp;

}

public void setV oteIp(String voteIp) {

this.voteIp = voteIp;

}

}

9、V oteSingle.java

package com.yxq.valuebean;

public class V oteSingle {

private String id;

private String title;

private String num;

private String order;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getNum() {

return num;

}

public void setNum(String num) {

this.num = num;

}

public String getOrder() {

return order;

}

public void setOrder(String order) { this.order = order;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

}

网上投票系统—投票结果与界面的设计和实现(正文)

目录 第1章绪论 (3) 1.1 课题研发背景 (3) 1.2 课题的目的和意义 (3) 1.3 系统的主要工作 (4) 1.4论文结构 (4) 第2章投票系统开发的可行性 (6) 2.1技术可行性 (6) 2.2经济可行性 (6) 2.3 操作可行性 (6) 第3章课题相关技术介绍 (8) 3.1数据库管理系统:SQL Server 2005概述 (8) 3.2服务器:Tomcat 概述 (8) 3.3 JSP简介 (8) 3.4编程软件:MyEclipse6.5概述 (9) 第4章系统需求分析 (10) 4.1系统所涉及用户及需求量分析 (10) 4.2 系统功能需求 (10) 4.2.1普通用户模块 (10) 4.2.2 管理员模块 (11) 4.2.3 在线投票系统流程图 (12) 4.3 系统性能需求 (13) 4.4数据流图 (13) 4.4.1符号定义 (14) 4.4.2数据流图的组成元素 (14) 4.5数据字典......................................................................... 错误!未定义书签。第5章数据库设计.. (17) 5.1 数据库设计的需求分析 (17) 5.2数据库的概念设计 (17) 5.3数据库逻辑结构设计 (19) 5.4数据库的功能及约束 (20) 第6章主要功能模块的设计与实现 (22) 6.1普通用户模块 (22) 6.2 管理员模块 (24)

第7章系统测试与维护 (28) 7.1 测试环境 (28) 7.2 系统调试 (28) 7.3调试结果 (28) 7.4系统维护 (29) 结束语 (30) 参考文献 (31) 谢辞 (32)

操作系统实验心得

1-1:通过这次小实验,是我更加了解Linux一些常用指令的操作以及其作用,对于一个刚开始接触lniux操作系统的初学者来说非常有用,助于以后能够更进一步学习Linux操作系统。 1-2:在实验过程中,使用VI编辑器虽然不能像window操作系统那样对文本进行熟练度编辑,但是,VI编辑器使用命令来操作,将可以锻炼我的记忆力、对键盘的熟练读,还能帮助我们尽快适应linux操作系统的操作。 1-3:原本对liunx下的编译和调试环境不是很熟悉,但通过这次的实验,让我熟悉了linux 下的编译器和调试器的使用。 实验中使用了gcc命令,gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(#include)、预编译语句(如宏定义#define等)进行分析。 当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是链接。在链接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的库中链接到合适的地方。 1-4:API 接口属于一种操作系统或程序接口。通过实验,我了解了Windows的这种机制,加深了对API函数的理解。 2-1:通过本次实验了解了一些常用进程管理命令的使用,例如ps、kill命令,了解到换个kill与killall的不同,对于linux操作系统下的进程的学习打下基础,更好的学习进程。 2-2:本次实验是熟悉掌握Linux 系统常用进程创建与管理的系统调用,linux下使用fork()创建子进程,与windows下CreateProcess()创建子进程完全不同,通过比较小组更好的理解和掌握了进程的创建,对于进程的管理的理解也有了清晰地认识。 实验中遇到fork函数返回2次结果,经过分析结果如下: 由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因为fork函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。 调用fork之后,数据、堆栈有两份,代码仍然为一份但是这个代码段成为两个进程的共享代码段都从fork函数中返回,箭头表示各自的执行处。当父子进程有一个想要修改数据或者堆栈时,两个进程真正分裂。 2-3:通过这次实验对熟悉掌握和了解windows平台常用进线程控制API,有了更深刻的认识,认识到API函数对windows编程的重要性,了解进程线程在内存中的执行,特别认识互斥体Mutex对象,API函数一定要多用,才能记得。 3-1:该程序的输入变量具有限制,若输入除0和1的数据,则将视为0处理.改进的方法为修改if 语句中的条件为:1,即只要输入为非零,则有效。即逻辑表达式的值为真。(在逻辑数学里非零则表示为真!) 为了能较好的实现进程的同步,可以另外设一个标志量,标志临界资源是否正被访问,当a,b,c

web WEB JSP实验报告书

实验1 网页程序设计-JavaScript 一、实验目的 1. 掌握JavaScript技术,基本掌握JavaScript的开发技巧; 2. 利用文本编辑器建立JavaScript脚本语言进行简单编程。 二、实验要求: 1. 根据以下实验内容书写实验准备报告。 2. 独立完成实验。 三、实验内容 1.显示一个动态的时钟 在文本编辑器“记事本”中输入如下代码程序,请仔细阅读下列程序语句,理解每条语句的作用。源程序清单如下:

现在是北京时间:
运行结果:

网上在线投票系统的设计与实现毕业设计论文

目录 摘要 (1) ABSTRACT (2) 前言 (3) 第1章绪论 (4) 课题背景 (4) 课题目的和意义 (4) 系统结构 (5) 课题主要工作 (5) 第2章系统的需求分析 (6) 系统总体分析 (7) 系统的功能分析 (7) 数据库需求分析 (7) 系统可行性分析 (7) 系统安全性分析 (8) 第3章系统概要设计 (8) 软件运行环境设计 (9) 系统设计目标 (9) 系统模块设计 (9) 系统数据库设计 (10) 3.4.1 管理员信息表 (10) 3.4.2投票主题表 (11) 3.4.3投票选项表 (11) 3.4.4投票者信息表 (12) 3.4.5系统配置表 (12) 3.4.6创建触发器 (13) 系统文件说明 (13) 第4章系统详细设计与实现 (13) 系统设计的相关技术 (14) 4.1.1 A动态网页技术 (14) 4.1.2 A对象概述 (14) 4.1.3 A常用对象 (15)

4.1.4 A概述 (19) 4.1.5 SQL Server 2000 (20) 系统设计总体思路 (22) 系统总流程图 (23) 系统主页面 (24) 系统管理模块 (25) 投票管理模块 (26) 4.6.1投票信息管理界面的实现 (26) 4.6.2投票主题的添加 (27) 4.6.3投票主题的修改 (27) 4.6.4投票主题的删除 (28) 4.6.5投票选项的管理 (29) 4.6.6投票选项的添加 (30) 4.6.8投票选项的删除 (31) 4.6.9投票系统的配置 (31) 4.6.10管理员密码的修改 (32) 投票结果显示页面 (32) 第5章系统调试与扩充 (33) 测试环境 (33) 调试中遇到的问题和解决方法 (33) 系统扩充 (34) 结束语 (34) 参考文献 (36) 致谢 (37) 部分程序的核心源代码 (38)

管理信息系统实验报告

实验一认识计算机硬件和网络结构 一、实验题目 认识计算机硬件和网络结构。 二、实验课时 2课时。 三、实验目的 认识计算机的主要构成部件、功能、型号、在计算机机箱内的位置、网络结构等。 四、实验内容和要求 1、利用多媒体演示计算机的主要组成部件:机箱、主板、CPU、内存条、硬盘、软驱、光驱、插槽、BUS总线、串行接口、并行接口、USB接口等; 2、打开机箱,实物展示并讲解个部件的功能及其连接; 3、机箱、主板、CPU、CPU风扇、内存条、显卡、网卡等分别如下所示。 机箱主板

内存条显卡网卡无线网卡 CPU CPU风扇硬盘 机箱背面并行接口串行接口USB接口 4、观察每个部件在机箱的位置,并掌握每个部件的功能和基本知识。 5、观察实验室网络结构图。 6、结合某网吧的例子更好地理解网络结构。 Parallel port Serial port USB port Keyboard and mouse ports

7、独立完成上述内容,并提交书面实验报告。 五、实验体会 通过本次实验,我了解了计算机的各种硬件和网络结构。知道了各种硬件的形状、功能、特征等。还知道了网络结构的流程、大体构造。这使我对计算机有了初步的认识,为以后更进一步的学习打下了坚实的基础。也为我以后的学习和生活提供了方便。 1、cpu——中央处理器,是一台计算机的运算核心和控制核心。 2、硬盘——是电脑的主要存储媒介之一。 3、主板——又叫主机板、系统板或母板,安装在机箱内,是微机最基本也是最重要的部件之一。 4、机箱——作为电脑配件的一部分,它起的主要作用是放置和固定各电脑配件,起到一个承托和保护作 用。 5、内存条——是连接CPU和其他设备的通道,起到缓冲和数据交换作用。

jsp实验报告49775

Jsp实验报告 课程设计名称:兼职网站 系:交通运输管理学院学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间:2013学年第2 学期

一.设计题目 兼职网站 二.主要内容 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。 (1)用户的登录判定 (2)录入兼职的信息,并保存到数据库中 (3)根据用户的需求选择查询方式,查询相关兼职信息 (4)将信息从数据库中删除 三.具体要求 (1)建立数据库表格存储用户数据(用户名及密码)。 (2)建立数据库表格存储兼职信息,主要包括ID、兼职名称、地点、工资和联系方式。 (3)编写jsp 语句连接数据库 (4)利用request函数提交表单,获取输入信息 (5)以SQL语句对数据库进行操作,完成信息的添加,查询及删除等功能。四.进度安排 五.成绩评定 正文 1、系统的需求分析和功能设计 随着电子信息在人们生活中的的使用比重不断增加,人们越来越习惯在网站上查找自己所需

要的信息不仅仅只是因其快捷,更因其接触的面更加广泛,信息的基础量足够大,足以满足人们更加细化的需求。在寻找兼职体验工作生活或赚取生活费用时,可以减少时间的浪费及其他不必要的消耗。 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。用户登录后可以根据自己的需要对信息进行添加、查询和删除的操作 2、源程序及注释 主页:<%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> xxx兼职网站 登录:login.jsp主要内容:

七人表决器实验报告

七人表决器 一.实验目的 1.掌握Quartus II软件安装,熟悉Quartus II操作环境。 2.初步了解VHDL语言。 3.学习使用行为级描述方法设计电路。 二.实验原理 七人表决器 使用7个电平开关作为表决器的7个输入变量,输入为电平“1”时表示表决者“赞同”,输入为电平“0”时表示表决者“不赞同”。当表决器的7个输入变量中有不少于4个输入变量输入“1”,那么表决结果输出逻辑高电平,表示表决“通过”,否则,输出逻辑低电平,表示表决“不通过”。 七人表决器的可选设计方案非常多,可以采用使用全加器的组合逻辑。使用VHDL 进行设计的时候,可以选择行为级描述、寄存器级描述,结等方法。 当采用行为级描述的时候,采用一个变量记载选举通过的总人数。当这个变量的数值大于等于4时,表决通过,绿灯亮;否则表决不通过,黄灯亮。因此,设计时,需要检查每一个输入的电平,并且将逻辑高电平的输入数目进行相加,并且进行判断,从而决定表决是否通过。 二.实验内容 1.安装Quartus II软件,熟悉Quartus II操作环境。 2.使用VHDL实现上述描述。 3.波形仿真。 4.生成元件以及RTL 四.设计提示 1.初次接触VHDL应该注意程序的框架结构,数据类型和运算操作符。 2.了解变量和信号的区别。 3.了解进程内外语句的顺序和并行执行的区别。 4.设计文本的端口可如下:

《VHDL 语言与数字逻辑电路设计》实验指导书 - 2 – 设计文本: LIBRARY IEEE; library ieee; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_unsigned.ALL; ENTITY vote7 IS PORT( men:in std_logic_vector(6 downto 0); LedPass,LedFail:OUT std_logic ); END vote7; ARCHITECTURE behave OF vote7 IS signal pass:std_logic; BEGIN PROCESS(men) variable temp:std_logic_vector(2 downto 0); BEGIN temp:="000"; for i in 0 to 6 loop if(men(i)='1')then temp:=temp+1; else temp:=temp+0; end if; end loop; pass<=temp(2); END PROCESS; LedPass<='1' WHEN pass='1'ELSE '0'; LedFail<='1' WHEN pass='0'ELSE '0'; --库和程序包 --实体 --结构体 --结束

操作系统文件管理实验报告

操作系统实验报告实验名称:文件管理 专业班级:网络工程1301 学号: 姓名: 2015 年6 月16 日

实验一文件管理 一、实验目的 文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、预备知识 1.VS2010的使用 2.C#的学习 3.文件主目录与子目录的理解 三、实验容与步骤 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10 个用户的文件系统,每次用户可保存10 个文件,一次运行用户可以打开5 个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write 等命令。 所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 程序流程图:

逻辑设计: 使用线性数组表表示MFD,泛型数组表示UFD,每个元素包括用户ID、保存的文件数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码),文件的状态等信息。 物理设计: //主目录 private FileUser[] mfd; //当前用户 private FileUser currentuser; ///

/// 文件 /// public class FileObject { public string filename; public int size=20; public int read=0; public int write = 0; public string author; } /// /// 文件系统用户 /// public class FileUser { public string username;

操作系统实验报告

操作系统实验报告 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

实验二进程调度1.目的和要求 通过这次实验,理解进程调度的过程,进一步掌握进程状态的转变、进程调度的策略,进一步体会多道程序并发执行的特点,并分析具体的调度算法的特点,掌握对系统性能的评价方法。 2.实验内容 阅读教材《计算机操作系统》第二章和第三章,掌握进程管理及调度相关概念和原理。 编写程序模拟实现进程的轮转法调度过程,模拟程序只对PCB进行相应的调度模拟操作,不需要实际程序。假设初始状态为:有n个进程处于就绪状态,有m个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞),且每过t个时间片系统释放资源,唤醒处于阻塞队列队首的进程。 程序要求如下: 1)输出系统中进程的调度次序; 2)计算CPU利用率。 3.实验环境 Windows操作系统、VC++6.0 C语言 4设计思想: (1)程序中进程可用PCB表示,其类型描述如下:

structPCB_type { intpid;//进程名 intstate;//进程状态 2——表示“执行”状态 1——表示“就绪”状态 0——表示“阻塞”状态 intcpu_time;//运行需要的CPU时间(需运行的时间片个数) } 用PCB来模拟进程; (2)设置两个队列,将处于“就绪”状态的进程PCB挂在队列ready中;将处于“阻塞”状态的进程PCB挂在队列blocked中。队列类型描述如下: structQueueNode{ structPCB_typePCB; StructQueueNode*next; } 并设全程量: structQueueNode*ready_head=NULL,//ready队列队首指针 *ready_tail=NULL,//ready队列队尾指 针

在线投票系统的设计与实现

在线投票系统的设计与实现 摘要 在积极建立科学管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,管理部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。投票管理者的决策只能依据手工表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。因此,先进的管理思想就成为了一个可望而不可及的目标。投票非常急需一套既有先进管理思想的系统,作为实现目标和提高现有投票管理水平的一种重要手段。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,在先进的计算机技术、通信技术、控制技术及IC 卡技术基础上,采用系统集成方法,逐步建立一个智能化的投票系统。编写在线投票系统,最重要的一点就是如何从烦琐的投票结果中,导出全部投票项目的票数,然后根据投票项目的各个票数,进行票数百分比计算,最后编辑出在线投票系统. 关键词: ASP 投票 ACCESS 设计

Abstract Be building up vote to manage today of mechanism actively, only depend originality of the handicraft manage or the simple single machine manage,management Dept. public appearance to a great deal of information, can't efficiently will among them of importance part withdraw, and do a judgment and the processing for corresponding.Decision which votes governor can according to the statement data,at waste a great deal of manpower, material resources can't in the meantime attain actually supervise and control, the accuracy of hard assurance data with in time sex.Therefore, the forerunner's management thought carried out and then becamed an inaccessible target in the vote.The vote needs the management information that a set of current forerunner manages thought system urgently very much, is a kind of important means which carries out a target and raises an existing vote a management level.The technical along with science of raise continuously, the calculator science is gradually mature, the its strong function has already been people's deep understanding, it has already entered each realm of the society of

操作系统实验报告心得体会

操作系统实验报告心得体会 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。 不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,

慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域

jsp实验报告

中南民族大学管理学院学生实验报告 课程名称: JSP程序设计 年级: 2010级 专业:信息管理与信息系统 姓名: 学号: 指导教师: 实验地点:管理学院综合实验室 20 学年至 20 学年度第 2 学期

第一章 JSP简介 实验 Tomcat服务器的安装与配置 一、实验目的 本实验的目的是让学生掌握怎样设置Web服务目录、怎样访问Web服务目录下的JSP 页面、怎样修改Tomcat服务器的端口号。 二、实验要求 1、将下载的6.0.13解压到D盘中,并进行调试。 2、用文本编辑器编写一个简单的JSP页面,并保存到Web服务目录中。 三、实验结果 所运行的代码如下; <%@ page contentType="text/html;charset=GB2312"%>

乘法表

<% for(int j=1;j<=9;j++) { for(int i=1;i<=j;i++) { int n=i*j; (i+"×"+j+"="+n+" "); } ("
"); } %>
页面 四、实验结果分析

1、默认的端口号为8080,若修改,在conf目录下的文件中修改端口号。 2、设置虚拟目录。在conf目录下的中前加入: 3、Tomcat服务器必须保持启动。

第二章 JSP页面与JSP标记 实验1 JSP页面的基本结构 一、实验目的 本实验的目的是让学生掌握怎样在JSP页面中使用成员变量,怎样使用Java程序片、Java表达式。 二、实验要求 本实验将用户输入的单词按字典顺序排序。需要编写两个JSP页面,名字分别为和。 三、实验内容 1)页面有一个表单,用户通过该表单输入若干个单词,并提交给页面。 2)负责排序单词,并将排序的全部单词显示给用户。 四、实验结果 实验所用代码如下: <%@ page contentType="text/html;charset=GB2312"%> 请输入单词(用空格分隔):
<%@ page contentType="text/html;charset=GB2312"%> <%@ page import=".*"%> <%! TreeSetdictionary=new TreeSet(); public void addWord(String s) { String word[] = (" "); for(int i=0;i<;i++) { (word[i]); } } %> <%

停车场管理系统实验报告汇总

华北水利水电学院数据结构实验报告 2011~2012学年第二学期2011级计算机专业 班级:**** 学号:***** 姓名:**** - 实验二栈和队列及其应用 一、实验目的: 1.掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。 2.掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活运用。 二、实验内容: 1.链栈的建立、入栈、出栈操作。 2.环形队列的建立、入队、出队操作。 3.停车场管理。设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 实现提示:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表(带头结点)实现。 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结束。 三、实验要求: 1.C/ C++完成算法设计和程序设计并上机调试通过。 2.撰写实验报告,提供实验结果和数据。 3.写出算法设计小结和心得。 四、程序源代码: 1.#include #include typedef struct stnode { int data; stnode *next;

操作系统实验报告16487

西安邮电大学 (计算机学院) 课实验报告 实验名称:进程管理 专业名称:计算机科学与技术 班级: 学生: 学号(8位): 指导教师: 实验日期:*****年**月**日

一. 实验目的及实验环境 目的:(1)加深对进程概念的理解,明确进程和程序的区别。 (2)进一步认识并发执行的实质。 (3)分析进程竞争资源现象,学习解决进程互斥的方法。 (4)了解Linux系统中进程通信的基本原理。 环境:Linux操作系统环境: 二. 实验容 (1)阅读Linux的sched.h源文件,加深对进程管理概念的理解。 (2)阅读Linux的fork.c源文件,分析进程的创建过程。 三.方案设计 (1)进程的创建 编写一段源程序,使系统调用fork()创建两个子进程,当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。试观察纪录屏幕上的显示结果,并分析原因。(2)进程的控制 修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕出现的现象,并分析原因。 如果在程序中使用调用lockf()来给每一个子进程加锁,可以实现进程之间的互斥,观察并分析出现的现象。 (3)①编写一段程序,使其现实进程的软中断通信。 要求:使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child Processll is Killed by Parent! Child Processl2 is Killed by Parent! 父进程等待两个子进程终止后,输出如下的信息后终止 Parent Process is Killed! 程序流程图如下:

JSP技术的运用实验报告

南昌大学实验报告 学生姓名:XXX 学号:xxxxxxxxxx 专业班级:xxxxxxx 实验类型:■验证□综合□设计□创新实验日期:xxxx.xx.xx 实验成绩: 一、实验项目名称: JSP技术的运用 二、实验目的 掌握JSP的基本语法、JSP指令和JSP动作以及JSP的内置对象,每种对象的使用方法与使用技巧,会简单的web应用程序的开发设计。 三、主要仪器设备及耗材 1.Myeclipse开发环境 2.Tomcat服务器 3.联想电脑一台 四、实验内容 1、运用Date函数读取系统当前时间,根据不同的时间段,在浏览器输出不同的问 候语 2、加载文件,制作一个jsp文件,计算一个数的平方,然后再制作一个jsp文件。 在客户端显示出来 3、设计表单。制作读者选购图书的界面,当读者选中一本图书后,单击“确定” 按钮,用”jsp:forward page=”语句将页面跳转到介绍该图书信息页面 4、设计求任意两个整数和的web程序,要求用户通过提交页面输入两整书,并提 交给一个jsp程序,再改程序中计算两个整数和。如果结果为正,跳出“结果为正” 页面,如果结果为负,跳出“结果为负”界面 5、设计一个用户注册表单,提交页面信息后,会输出用户填写的信息 五、实验步骤 1.应用Date函数读取系统当前时间,根据不同的时间段输出不同的问候,主要代码 如下: <%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> 读取系统当前时间 <% Date date=new Date();%>

当前时间是:<%= date.toLocaleString()%>

ERP系统模拟实验报告

一、实验目的 通过本次实验使学生学会理论联系实际,让同学们了解企业的运营流程,了解各个角色在企业中的工作责任,学会根据市场预测去规划企业未来的发展,制定自己的运营策略。 二、实验地点 三、实验时间 2014年6月23日—2014年7月4日 四、实习组成员 CEO及助理 财务总监及助理 营销总监及助理 生产总监及助理 采购总监及助理 间谍 五、我的职责 我在我们企业中担任的是采购总监这个角色,负责根据生产产能和市场需求情况决定什么时候下原材料订单,要下多少订单,保证生产顺利进行的同时也不能积压原材料库存。 六、实验步骤 第一天,老师给我们介绍了一下沙盘模拟的操作规则,企业的初始状况、股东期望以及企业的财务状况,然后给我们进行了分组,每组大概12人,我们是U4组。 我们组的发展一直都采取的是主动进攻的策略,不管是在新产品研发还是市场开拓上,第一年为了成为P1产品的市场老大投放了9个广告,虽然广告费用并不是最多但由于另一个企业决策失误最终成功取得了P1产品的市场老大的地位,同时我们开始开拓区域、国内、亚洲三个市场,考虑到国际市场的产品利润空间并不是很大并且市场需求也不是很多就主动放弃了国际市场的开拓,并开始研发P2产品。为了保证足够的产能,我们在第二个季度开始筹建两条全自动生产线。由于投入较多,资金周转不开,所以我们在这一年贷了一桶短贷,虽然第二年有沉

重的还贷负担,但也正是这一桶短贷使我们在第一第二年的现金流始终没有中断,使企业能够持续经营下去。筹集资金在整个六年运作中至为重要。 第二年,我们P2产品研发成功,区域市场开拓完成,并在投放广告、选取订单时又取得了P2产品的本地市场老大,我们开始考虑要不要再研发P3产品,我们企业首次出现了意见不一的情况,由于近几年P3市场价格并不是很大,需求也不是很大,又需要很大的投资,并且已经有其他的企业开始在研发P3产品了,所以最终由CEO拍板决定只做P2,以产能优势取胜,虽然我们又贷了贷款,但这一年我们已经开始盈利了。 第三年,国内市场开拓完成,两条全自动生产线也开始投入生产,由于我们的主打产品已经转移到了P2,并且国内市场的P2价格与需求都良好,所以我们投入了较多的广告费来取得P2产品的国内市场老大以求获得足够的订单。第二季度,我们开始租赁小厂房,筹建三条全自动生产线,扩大产能。这一年,我们两条手工线和一条半自动线用于生产P1产品,另一条手工线和两条全自动生产线都用于生产我们的主打产品P2,虽然我们一直在贷款还款,但企业的发展态势良好,正一步步走上正轨。 第四年,由于资金问题,小产房的三条全自动生产线在第三年第四个季度暂停了一个季度筹建,所以到第四年的第二季度才可以投入生产,但这并没有影响到我们的生产进度。在这一年,我们又继续投入广告成为了P2产品的亚洲市场的老大,保证了我们企业能够获得足够的订单。 由于另一个企业U6小组的发展迅猛,让我们意识到我们企业之后发展的后劲不足,但要研发P3产品,获得利润的周期又太长,所以我们只能依靠获取更多的订单生产足够的P2产品来维持企业的发展。 第五年,最后一条全自动生产线也开始投入生产,此时生产产量已经达到最大化,但由于市场需求不足,导致最后剩余4个产品,所以在第六年我们企业选择了与其他的企业U3小组进行合作,互相帮助拿到自己所需要的订单,这是一个思维的突破。最终我们企业成功拿到了第一的好成绩。 最后,老师给了我们一个下午的时间进行每个组的总结报告,由每个组的代表依次进行上台发言,总结自己企业的具体操作步骤,以及财务状况。 七、实验感悟 在这为期两个周的ERP沙盘模拟实验里,我在游戏的氛围中学到了很多课本上没有的知识,体验了一个制造型企业管理的完整流程,包括物流、资金流和信

操作系统实验报告(进程的创建)

实验题目进程的创建小组合作否姓名班级学号 一、实验目的 1、了解进程的创建。 2、了解进程间的调用以及实现。 3、分析进程竞争资源的现象,学习解决互斥的方法。 4、加深对进程概念的理解,认识并发执行的本质。 二.实验环境 Windows 系统的计算机一台,安装了Linux虚拟机 三、实验内容与步骤 1、fork()系统调用的使用例子 程序代码: #include #include #include int glob=3; int main(void) { pid_t pid;int loc=3; printf("before fork();glod=%d,loc=%d.\n",glob,loc); if((pid=fork())<0) { printf("fork() error. \n"); exit(0); } else if(pid==0) { glob++; loc--; printf("child process changes glob and loc: \n"); } else

wait(0); printf("parent process doesn't change the glob and loc:\n"); printf("glob=%d,loc=%d\n",glob,loc); exit(0); } 运行结果: 2、理解vofork()调用: 程序代码: #include #include #include int glob=3; int main(void) { pid_t pid; int loc=3; if((pid=vfork())<0) { printf("vfork() error\n"); exit(0); } else if(pid==0) { glob++; loc--; printf("child process changes the glob and loc\n"); exit(0); } else printf ("parent process doesn't change the glob and loc\n"); printf("glob=%d,val=%d\n",glob,loc);

相关文档
最新文档
欢迎登录xxx兼职网站
用户名:
密码: