java实验报告实验2答案

2024-06-10 版权声明 我要投稿

java实验报告实验2答案(通用6篇)

java实验报告实验2答案 篇1

实验二 熟悉Applet,GUI编程

实验目的:

本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。

实验内容:

 创建一个java项目,命名为experiment2。(如何创建项目参考《实验一》的项目创建方法。)

(一)创建图形用户界面

图形用户界面(Graphic User Interface,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。通过容器的add方法把组件加入到容器中。

1. 在Applet中添加标签、按钮并使用网格布局(1)程序功能

在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。(2)编写LX6_1.java 程序文件,源代码如下:

import java.awt.*;import java.applet.Applet;public class LX6_1 extends Applet { Label l1;Button b1, b2, b3, b4, b5, b6;public void init(){

互联网软件应用与开发实验指导书

setLayout(new GridLayout(3,3));// 设置网格布局(3 行3 列共9 个网格)l1=new Label(“标签1”);b1 = new Button(“按钮1”);b2 = new Button(“按钮2”);b3 = new Button(“按钮3”);b4 = new Button(“按钮4”);add(l1);add(b1);add(b2);add(b3);add(new Label());add(b4);add(new Button(“按钮5”));add(new Button(“按钮6”));add(new Label(“标签2”));} }(3)编译程序LX6_1.java。

(4)编写显示Applet 的页面文件LX6_1.html,在浏览器显示结果如图2.1 所示。

图2.1

2. 在面板中添加组件

(1)程序功能:在Applet 中添加面板容器,并分别在Applet、面板容器中添加组件并使用不同的布局管理方式。

(2)编写LX6_2.java 程序文件,源代码如下。

import java.awt.*;import java.awt.Color;import java.applet.Applet;public class LX6_2 extends Applet { public void init()

互联网软件应用与开发实验指导书

{ //设置最底层的 Applet 容器为顺序布局 setFont(new Font(“Arial”,Font.PLAIN,20));Label l=new Label(“这是最底层的 Applet 容器中的标签”,Label.CENTER);add(l);Panel panel1=new Panel();add(panel1);panel1.setBackground(Color.blue);panel1.setForeground(Color.red);panel1.setLayout(new BorderLayout());//设置边界布局 panel1.add(“North”, new Button(“北”));panel1.add(“South”, new Button(“南”));panel1.add(“East”, new Button(“东”));panel1.add(“West”, new Button(“西”));panel1.add(“Center”, new Label(“这是在 Panel1 面板 中部添加的标签”));Panel panel2=new Panel();add(panel2);panel2.setLayout(new GridLayout(3,1));//设置网格布局 Choice c=new Choice();//创建下拉式列表 c.addItem(“北京”);c.addItem(“上海”);c.addItem(“天津”);Label l1=new Label(“这是在 Panel2 面板中的标签”);Button b1=new Button(“Panel2 中的按钮”);panel2.setBackground(Color.green);panel2.add(l1);panel2.add(b1);panel2.add(c);} }(3)编译程序LX6_2.java。

(4)编写显示Applet 的页面文件LX6_2.html,在浏览器显示结果如图6.2 所示。

互联网软件应用与开发实验指导书

图2.2

3、编写程序实现下图功能。

(二)了解事件处理机制

在图形用户界面中,程序和用户的交互是通过组件响应各种事件来实现的。例如,用户单击了一个按钮,意味着发生了按钮的单击事件;选中下拉框中的一个选项,意味着发生了一个选项事件。在Java中能产生事件的组件叫做事件源,如按钮。如果希望对单击按钮事件进行处理,可给事件源(按钮)注册一个事件监听器(如包含按钮的容器),如同签订了一个委托合同,当事件源发生事件时,事件监听器就代替事件源对发生的事件进行处理,这就是所谓的委托事件处理机制。

1.单击按钮的事件处理程序

(1)程序功能:使用手工布局设置组件标签、按钮的位置,为按钮编写单击事件处理方法。当用户用鼠标单击按钮时,会听到一声响声。

(2)编写LX6_3.java程序文件,源代码如下。

import java.awt.*;import java.awt.event.*;import java.applet.Applet;public class LX6_3 extends Applet implements ActionListener { // 实现动作事件监听接口

互联网软件应用与开发实验指导书

public void init(){ setLayout(null);//关闭默认的顺序管理布局

Label l=new Label(“按一下按钮可听到响声!”, Label.CENTER);add(l);l.setBounds(40,10,150,30);Button b=new Button(“按钮”);add(b);b.setBounds(60,50,60,40);b.addActionListener(this);// 注册事件源的动作监听者 } public void actionPerformed(ActionEvent e){ //实现单击事件接口的方法

Toolkit.getDefaultToolkit().beep();//单击事件发生时作出的反应 } }(3)编译程序LX6_3.java。

(4)编写显示Applet的页面文件LX6_3.html,在浏览器显示结果如图3.3所示。

图2.3 2.选择复选框和单选框按钮的事件处理程序

(1)程序功能:在Applte 上创建复选框、单选框、文本区域、单行文本框等组件,并实现根据用户输入的10进制数,选择不同选项可转换为2、8、16进制数。(2)编写LX6_4.java 程序文件,源代码如下。

import java.applet.Applet;import java.awt.*;import java.awt.event.*;public class LX6_4 extends Applet implements ItemListener { TextArea area=new TextArea(6,30);//创建文本区

互联网软件应用与开发实验指导书

String Item[]={“2 进制”,“8 进制”,“16 进制”,“10 进制”};Checkbox cb[]=new Checkbox[5];Checkbox radio[]=new Checkbox[5];Label l=new Label(“输入10 进制数”);TextField TF=new TextField(6);//创建单行文本框 public void init(){ add(l);add(TF);add(area);add(new Label(“ 请选择进制:”));for(int i=0;i<4;i++){ cb[i]=new Checkbox(Item[i]);add(cb[i]);cb[i].addItemListener(this);} CheckboxGroup cbGroup=new CheckboxGroup();//创建单选框 add(new Label(“请选择进制:”));for(int i=0;i<4;i++){ radio[i]=new Checkbox(Item[i],cbGroup,false);add(radio[i]);radio[i].addItemListener(this);} } public void itemStateChanged(ItemEvent e){ int x=Integer.parseInt(TF.getText());if(e.getItem()==“2 进制”)area.append(“你选择的是”+e.getItem()+ Integer.toBinaryString(x)+“n”);if(e.getItem()==“8 进制”)area.append(“你选择的是”+e.getItem()+ Integer.toOctalString(x)+“n”);if(e.getItem()==“16 进制”)area.append(“你选择的是”+e.getItem()+Integer.toHexString(x)+“n”);if(e.getItem()==“10 进制”)area.append(“你选择的是”+e.getItem()+x+“n”);} }(3)编译程序LX6_4.java。

(4)编写显示Applet 的页面文件LX6_4.html,在浏览器显示结果如图3.4 所示。

互联网软件应用与开发实验指导书

图2.4

(三)在Experiment2下创建自己的JApplet.效果类似于下图。

图2.5 下面是实验二的JApplet代码: import javax.swing.*;import java.awt.*;import java.awt.event.*;public class drawpicture extends JApplet implements ActionListener { int x=30,y=30;JButton jb1,jb2;JLabel jl1;JTextField jt1;JPanel jp;

互联网软件应用与开发实验指导书

Container c;public void init(){ c=getContentPane();c.setLayout(new BorderLayout());jb1=new JButton(“点击”);jb2=new JButton(“Reset”);jl1=new JLabel(“增加半径值:”);jp=new JPanel();jt1=new JTextField(“20”);jp.add(jl1);jp.add(jt1);jp.add(jb1);jp.add(jb2);c.add(jp,BorderLayout.SOUTH);jb1.addActionListener(this);jb2.addActionListener(this);setSize(600,600);setVisible(true);} public void actionPerformed(ActionEvent evt){ if(evt.getSource()==jb1){ x=x+Integer.parseInt(jt1.getText());y=y+Integer.parseInt(jt1.getText());repaint();} if(evt.getSource()==jb2){ x=30;y=30;repaint();} } public void paint(Graphics g){ super.paint(g);g.drawOval(x, y, x, y);} }

(四)编辑一个程序,并用异常处理技术来处理它,比如被代码:

import java.awt.*;

0除,数组下标溢出等。

互联网软件应用与开发实验指导书

import java.awt.Color;import java.applet.Applet;public class LX6_5 extends Frame{ Label label1=new Label(“Name :”);TextField txt1=new TextField(20);

Label label2=new Label(“Favourates sports :”);Checkbox box1=new Checkbox(“Cricket”);Checkbox box2=new Checkbox(“Badmiton”);Checkbox box3=new Checkbox(“Golf”);

Label label3=new Label(“Gender”);CheckboxGroup cg=new CheckboxGroup();Checkbox r1=new Checkbox(“Male”,cg,false);Checkbox r2=new Checkbox(“Femal”,cg,false);

Label label4=new Label(“Comments :”);TextField field1=new TextField();

Button b1=new Button(“Submit”);Button b2=new Button(“Reset”);public LX6_5(String s){ super(s);setLayout(new GridLayout(10,1));Panel panel1=new Panel();add(panel1);panel1.setBackground(Color.blue);panel1.add(label1);panel1.add(txt1);Panel panel2=new Panel();add(panel2);panel2.setBackground(Color.red);panel2.add(label2);panel2.add(box1);panel2.add(box2);panel2.add(box3);Panel panel3=new Panel();add(panel3);panel3.setBackground(Color.green);panel3.add(label3);panel3.add(r1);panel3.add(r2);Panel panel4=new Panel();add(panel4);panel4.setBackground(Color.white);panel4.add(label4);panel4.add(field1);Panel panel5=new Panel();add(panel5);panel5.setBackground(Color.black);panel5.add(b1);panel5.add(b2);} public static void main(String args[]){ LX6_5 m=new LX6_5("");m.setSize(500,400);m.show();}

互联网软件应用与开发实验指导书

实验小结

所谓API包就是应用程序接口。通过学习我们知道包是类和接口的集合。利用包我们可以把常用的类或功能相似的类放在一个包中。Java 语言所提供的系统包,其中包含了大量的类,我们可以在编写Java 程序时直接引用它们。API 包—方面提供丰富的类与方法供我们使用,例如画图形、播放声音等,另一方面又负责和系统软硬件打交道,圆满实现用户程序的功能。所有Java API 包都以“java.”开头,以区别用户创建的包。

Java不支持多重继承,接口成功的解决了这个问题,我们可以通过实现多个接口达到与多重继承相同的功能。

Java程序设计实验报告 篇2

实验一

实验题目:从键盘上读入10个字符串存入数组a中,然后输出这10个字符串中最大字符串和最小字符串。

实验代码:

public class StrPro {

public static void main(String[] args){

String str[] = new String[5];System.out.println(“Please input 10 strings:”);int i;String max,min;for(i=0;i<5;i++){

} max = str[0];min = str[0];for(i=0;i

}

}

} } if(min.compareTo(str[i])>0){ } min = str[i];System.out.println(“最大的字符串为:”+max);System.out.println(“最小的字符串为:”+min);实验结果:

实验心得体会:

掌握了java的基本语法,数组的定义与使用,做这个实验要了解字符串数组的定义及字符串数组的输入方法,还有比较字符串数组的大小的调用方法等。

实验二

实验题目:

自定义一个矩形类(Rectangle),包含的属性有:长(length),宽(width),包含的方法有:关于属性的setter和getter方法,即setLength,getLength,setWidth,getWidth,计算矩形面积的方法(getArea)。

定义矩形类的子类正方形类(Square),包含的属性和方法自行确定,要求完成的功能是,能计算正方形的面积。

定义一个测试类(Test),测试矩形类和正方形类能否正确的计算面积。

以上类中属性和方法的访问权限自行确定,方法和构造方法若有参数,也自行确定。

实验代码:

public class Rectangle {

int Length;int Width;public int getLength(){ } public void setLength(int length){ } public int getWidth(){ return Width;Length = length;return Length;} public void setWidth(int width){

Width = width;} int getArea(){

return Length * Width;} }

public class Square extends Rectangle{ Square(int border){

super.setLength(border);

super.setWidth(border);} }

public class Test { public void test(){

System.out.println(“请选择计算的形状的序号:1.矩形

Scanner sc = new Scanner(System.in);

int i = sc.nextInt();int len,wid;2.正方形”);

} if(i==1){

} else if(i==2){

} System.out.print(“请输入正方形的边长:”);Scanner s = new Scanner(System.in);len = s.nextInt();Square sq = new Square(len);System.out.println(“正方形面积为:”+sq.getArea());System.out.print(“请输入矩形的长:”);Scanner s = new Scanner(System.in);len = s.nextInt();System.out.print(“请输入矩形的宽:”);wid = s.nextInt();Rectangle re = new Rectangle();re.setLength(len);re.setWidth(wid);System.out.println(“矩形面积为:”+re.getArea());else{ } System.out.println(“输入错误!”);

} public static void main(String[] args){ } new Test().test();实验结果:

实验心得体会:

做这个实验要掌握如何定义类以及类的成员变量、类的方法,学会对象的创建、对象属性的引用和方法的调用以及如何定义和使用构造方法。掌握this的使用以及派生子类的方法,理解关键字super的含义。理解继承中属性的隐藏和方法的覆盖机制,理解在继承关系中构造方法的调用过程。

实验三

实验题目:定义一个Student类,包含姓名(name)、身高(height)、体重(weight),以及talk()方法,该方法的功能是,输出自己的身高和体重信息。

Student类实现Comparable接口,实现按照体重的大小比较两个Student对象的大小。最后,定义一个测试类,生成一个数组,该数组有6个元素,每个元素类型是Student,调用Arrays.sort方法对该数组排序。

实验代码:

public class Student implements Comparable {

public void setName(String name){ } this.name = name;public String getName(){ } return name;public Student(String name, float height, float weight){

} super();this.name = name;this.height = height;this.weight = weight;private String name;private float height, weight;

public float getHeight(){ } return height;public void setHeight(float height){ } this.height = height;public float getWeight(){ } return weight;public void setWeight(float weight){ } this.weight = weight;public void speak(){ System.out.println(“我是” + name + “,我的身高是” + height + “,我的体重是” + weight);

@Override }

} public int compareTo(Student o){

} int flag;if(this.weight

public String toString(){

} return “Person [name=” + name + “, height=” + height + “, weight=” + weight + “]”;public class Test { public static void main(String[] args){

}

} int i;Student ps[] = new Student[6];ps[0] = new Student(“张三”, 170, 110);ps[1] = new Student(“李四”, 168, 120);ps[2] = new Student(“王五”, 165, 115);ps[3] = new Student(“赵六”, 172, 121);ps[4] = new Student(“周七”, 160, 100);ps[5] = new Student(“郑八”, 166, 119);System.out.println(“排序前数组元素的序列是:”);for(i = 0;i < ps.length;i++){ } Arrays.sort(ps);//调用Java系统类中的排序方法对ps数组排序 System.out.println(“n排序后数组元素的序列是:”);for(i = 0;i < ps.length;i++){ } System.out.println(ps[i]);ps[i].speak();实验结果:

实验心得体会:

java实验报告实验2答案 篇3

班级:

学号:

姓名:

实验题目:猜拳小游戏

实验要求:

用java编写一个人机对战的猜拳小游戏。人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。有简单的操作界面。

实验内容:

1、问题分析过程:

(1)首先分析猜拳游戏本身的玩法:

人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。(2)用面向对象的思想来分析:

在游戏过程中有几个对象组成人

电脑

游戏规则

抽象出3个类:Person、Computer、Game Person类有哪些属性和行为呢?

属性:名字name,输赢次数(比分)score 行为:出拳ShowFirst()

选择性

Computer类有哪些属性和行为呢?

属性:名字name,输赢次数(比分)score 行为:出拳showFist()

随机

Game类有哪些属性和行为呢?

属性:游戏的双方(person、computer)、对战局数count 行为:产生角色initial()、游戏规则startGame()、显示比赛结果showResult()、统计

比赛结果calcResul()

2、主要实现代码:

import java.util.*;public class StartGame { public static void main(String[]args){

Game start = new Game();//实例化游戏类

start.initial();//调用初始化方法

start.startGame();//调用游戏开始方法

start.showResult();//调用游戏结果显示方法

} } import java.util.*;public class Person { String name;//名字属性

int score;//积分属性

//出拳方法

public int showFist(){

System.out.print(“n请出拳:1.剪刀2.石头3.布(输入相应数字):”);

Scanner input = new Scanner(System.in);

int num = input.nextInt();

String fist = “";//保存出拳

switch(num){ case 1:

fist = ”剪刀“;

break;

case 2:

fist = ”石头“;

break;

case 3:

fist = ”布“;

break;

}

System.out.println(name + ”出拳:“ + fist);

return num;} } import java.util.*;public class Game { //Person person;

//甲方

//Computer computer;//乙方

int count;

//对战次数

Person person = new Person();//实例化用户类

Computer computer = new Computer();//实例化计算机类

//初始化方法

public int initial(){

count = 0;

return count;} //游戏开始方法

public void startGame(){

//显示游戏开始界面

System.out.println(”---------------欢

System.out.println(“tt******************************”);

System.out.println(“tt**

^_^ 猜拳,Start ^_^

**”);

System.out.println(“tt*****************************”);

界--------------n“);

System.out.println(”nn出拳规则:1.剪刀 2.石头 3.布“);//选择计算机角色

System.out.print(”请选择对方角色:1.刘备 2.孙权 3.曹操:“);Scanner input = new Scanner(System.in);int num = input.nextInt();switch(num){ case 1: computer.name = ”刘备“;break;case 2: computer.name = ”孙权“;break;case 3:

} computer.name = ”曹操“;break;//输入用户角色名

System.out.print(”请输入你的姓名:“);person.name = input.next();

//显示对战双方

System.out.print(person.name + ” VS “ + computer.name + ” 对战n“);//开始游戏

System.out.print(”n要开始吗?(y/n)“);String con = input.next();int perFist;//用户出的拳 int compFist;//计算机出的拳

if(con.equals(”y“)){//判断是否开始

String answer = ”y“;

while(”y“.equals(answer)){//循环条件是是否开始下一轮

//出拳

perFist = person.showFist();//调用用户出拳方法

compFist = computer.showFist();//调用计算机出拳方法

//裁决

if((perFist == 1 && compFist == 1)||

(perFist == 2 && compFist == 2)||

(perFist == 3 && compFist == 3)){

System.out.println(”结果:和局,真衰!n“);//平局

}

else if((perFist == 1 && compFist == 3)||

(perFist == 2 && compFist == 1)||

(perFist == 3 && compFist == 2)){

System.out.println(”结果:恭喜, 你赢了!n“);//用户赢

person.score++;

//累计用户积分

}

else{

}

} System.out.println(”结果说:^_^,你输了,真笨!n“);//计算机赢

computer.score++;

//累计计算机积分 } count++;//累计对战次数

System.out.print(”是否开始下一轮(y/n):“);answer = input.next();}

//比较得分情况的方法 public void showResult(){ System.out.println(”-----------------------“);System.out.println(computer.name + ” VS “ + person.name);

System.out.println(”对战次数:“ + count);System.out.println(”n姓名t得分n“ + person.name + ”t“ + person.score

+ ”n“ + computer.name + ”t“ + computer.score + ”n“);

//比较积分

if(computer.score == person.score){

System.out.println(”结果:打成平手,下次再和你一分高下!“);

}

else if(computer.score < person.score){

System.out.println(”结果:你果然是高手,“ + computer.name + ”佩服!“);

}

else{

System.out.println(”结果:呵呵,笨笨,下次加油哦!“);

}

System.out.println(”-----------------------“);} } public class Computer {

String name;//名字属性 int score;//积分属性 //出拳方法

public int showFist(){ int num =(int)(Math.random()*3)+ 1;String fist = ”“;switch(num){ case 1:

fist = ”剪刀“;

break;case 2:

fist = ”石头“;

break;case 3:

fist = ”布“;

break;

}

System.out.println(name + ”出拳:" + fist);

return num;} } 运行界面:

3、实验心得体会:

从本次课程设计的完成中,我发现我有很多不足的地方,最突出的是所掌握的知识太少,学到的知识应用不到实践中。后来通过看书查找相关资料,完成课程设计任务。

实验报告2 篇4

课程名称: TCP/IP协议栈分析与实现

实验项目名称:Linux内核通用哈希链表的使用 学生姓名:苟伟

专业:信息工程

学号:201005010710

同组学生姓名:

指导老师:刘飚

实验地点:6c601

实验日期:2013年3 月28日

一、实验目的和要求:

学习Linux内核的通用哈希链表的设计原理,熟练掌握Linux内核通用哈希链表的使用。

二、实验内容

1.掌握Linux通用哈希链表的创建

2.掌握通用哈希表增加元素、查找元素的方法。

三、实验要求

1.待创建的哈希表头数组为structhlist_headuser_hash[16],要求对哈希表宿主元素的 name成员的值进行散列,并将散列值作为哈希表宿主元素的key。

2.作为哈希表元素的宿主节点类型定义如下:

structusermap{

structhlist_nodehlist;

unsignedcharname[8];

};

3.针对上述user_hash哈希表,要求向其中添加3个类型为structusermap的宿主元素,并要求这3个宿主元素的name成员分别为“smith”,“john”,“bob”。

4.向哈希表user_hash中添加第4个宿主元素。若新宿主元素的name成员已经存在(例如“john”),则提示已经存在该用户,否则向哈希表中添加该宿主元素。

四、实现原理

Linux的内核源文件list.h提供了哈希表各类操作接口及其实现。其中创建具有16

个key值的哈希表的方法如下:

structhlist_headuser_hash[16];

在上述user_hash数组的16个元素中存放的哈希表头元素定义如下:

structhlist_head{

structhlist_node*first;

};

哈希表节点元素定义如下:

structhlist_node{

structhlist_node*next,**pprev;

};

本实验对哈希表宿主元素节点的name值进行散列的算法如下:

unsignedintBKDRHash(unsignedchar*str)

{

unsignedintseed=131;

unsignedinthash=0;

while(*str){

hash=hash*seed+(*str++);

}

return(hash&0x7FFFFFFF);// 返回此*str所对应的哈希值

}

于是,本实验中对一个字符串name求最终哈希值hash的方法如下:

unsignedinthash=BKDRHash(name)&15

内核源文件list.h中定义了以下若干接口,用于对哈希表进行各类操作:

1)在指定的哈希表头h所指向的链表头插入新节点

//@n:要添加的新哈希表节点

//@h:在此哈希表头节点后添加

hlist_add_head(structhlist_node*n,structhlist_head*h);

2)根据当前哈希表节点指针ptr获得哈希表宿主节点指针

//*@ptr: structhlist_node类型的指针

//*@type:哈希表节点所在的宿主节点的类型

//*@member:嵌入宿主的哈希表节点的变量名

hlist_entry(ptr,type,member)

3)遍历哈希表中某个key所对应的链表

//@tpos: 哈希表宿主节点指针

//@pos: 哈希表节点指针

//@head: 哈希表中某key所对应的链表的头指针

//@member:嵌在哈希表宿主节点中哈希表节点的变量名

hlist_for_each_entry(tpos,pos,head,member)

五、实现代码和运行结果

请打印本实验的程序代码和程序运行截图,并作为附件附在本实验报告后。#include28 for(i=0;i<3;i++){#include29hash=BKDRHash(name[i])&15;3 #include“list.h”30printf(“name is %s ,and hash4 #include code is %d.n”,name[i],hash);

531strcpy(a[i].name,name[i]);unsigned intBKDRHash(unsigned char32structhlist_head *ph;

*str){33ph=&user_hash[hash];

7unsigned int seed=131;34hlist_add_head(&(a[i].hlist),ph);8unsigned int hash=0;35

9while(*str){ p=hlist_entry(&(a[i].hlist),typeof(*p),hlist);10hash=hash*seed+(*str++);36printf(“is%sn”,p->name);11}37}

12return(hash&0x7FFFFFFF);38structhlist_node *pp;

13}39char addname[8];intmain(){40printf(“printnameaddn”);15inti;41scanf(“%s”,addname);

16structhlist_headuser_hash[16];42int frag=1;

17structusermap{ 43hash=BKDRHash(addname)&15;18structhlist_nodehlist;44

19unsigned char name[8];hlist_for_each_entry(p,pp,&user_hash[hash], 20}a[100];hlist){

21for(i=0;i<16;i++){45printf(“addname 22INIT_HLIST_HEAD(&user_hash[i]);is%sn”,addname);

23INIT_HLIST_NODE(&a[i].hlist);46

24} if(strcmp(addname,p->name)==0){

25char47frag=0;

name[3][8]={“smith”,“jhon”,“bob”};48printf(“%s26structusermap *p;yicunzain”,addname);

27unsigned int hash;49}}

50if(frag)59

51{ hlist_for_each_entry(p,pp,&user_hash[i],hlist 52)

hash=BKDRHash(addname)&15;60printf(“ hash code %d all53is%sn”,i,p->name);

strcpy(a[3].name,addname);61hlist_for_each(pp,&user_hash[i])5462{

hlist_add_head(&(a[3].hlist),&user_hash[hash 63

]);p=hlist_entry(pp,typeof(*p),hlist);

5564

p=hlist_entry(&(a[3].hlist),typeof(*p),hlist);is%sn“,p->name);

5665}

printf(”is%sn“,p->name);66}

57}67return 0;

58for(i=0;i<16;i++){ 68 }

运行结果:

root@gouwei-virtual-machine://home/gouwei/shiyan#./shiyan2

name is smith ,and hash code is 7.issmith

name is jhon ,and hash code is 1.isjhon

name is bob ,and hash code is 1.isbob

printnameadd

gouwei

isgouwei

hash code 1 allisbob

hash code 1 allisjhon

***isbob

***isjhon

hash code 2 allisgouwei

***isgouwei

hash code 7 allissmith

***issmith

大学物理实验报告答案 篇5

1.伏 安 法 测 电 阻

实 验 目 的(1)利 用 伏 安 法 测 电 阻。(2)验 证 欧 姆 定 律。(3)学 会 间 接 测 量 量 不 确 定 度 的 计 算 ; 进 一 步 掌 握 有 效 数 字 的 概 念。

实 验 方 法 原 理 根 据 欧 姆 定 律,I U R =,如 测 得 U 和 I 则 可 计 算 出 R。值 得 注 意 的 是,本 实 验 待 测 电 阻 有 两 只,一 个 阻 值 相 对 较 大,一 个 较 小,因 此 测 量 时 必 须 采 用 安 培 表 内 接 和 外 接 两 个 方 式,以 减 小 测 量 误 差。实 验 装 置 待 测 电 阻 两 只,0 ~ 5 m A 电 流 表 1 只,0 - 5 V 电 压 表 1 只,0 ~ 5 0 m A 电 流 表 1 只,0 ~ 1 0 V 电 压 表 一只,滑 线 变 阻 器 1 只,D F 1 7 3 0 S B 3 A 稳 压 源 1 台。实 验 步 骤 本 实 验 为 简 单 设 计 性 实 验,实 验 线 路、数 据 记 录 表 格 和 具 体 实 验 步 骤 应 由 学 生 自 行 设 计。必 要 时,可 提 示 学生 参 照 第 2 章 中 的 第 2.4 一 节 的 有 关 内 容。分 压 电 路 是 必 须 要 使 用 的,并 作 具 体 提 示。(1)根 据 相 应 的 电 路 图 对 电 阻 进 行 测 量,记 录 U 值 和 I 值。对 每一 个 电 阻 测 量 3 次。(2)计 算 各 次 测 量 结 果。如 多 次 测 量 值 相 差 不 大,可 取 其平均 值 作 为 测 量 结 果。(3)如 果 同 一 电 阻 多 次 测 量 结 果 相 差 很 大,应 分 析 原 因 并 重 新 测 量。数 据 处 理测 量 次 数 1 2 3 U 1 / V 5.4 6.9 8.5 I 1 / m A 2.0 0 2.6 0 3.2 0 R 1 / Ω 2 7 0 0 2 6 5 4 2 6 5 6 测 量 次 数 1 2 3 U 2 / V 2.0 8 2.2 2 2.5 0 I 2 / m A 3 8.0 4 2.0 4 7.0 R 2 / Ω 5 4.7 5 2.9 5 3.2(1)由 %.m a x 5555 1111 ×××× ==== U U ∆,得 到 ,.V U 1 5 1 5 1 5 1 5 0000 1111 ==== ∆ V U 0 7 5 0 7 5 0 7 5 0 7 5 0000 2222.==== ∆ ;(2)由 %.m a x 5555 1111 ×××× ==== I I ∆,得 到 ,.m A I 0 7 5 0 7 5 0 7 5 0 7 5 0000 1111 ==== ∆ m A I 7 5 7 5 7 5 7 5 0000 2222.==== ∆ ;(3)再 由 2222 2222 33 33 33 33)()(I I V U R u R ∆ ∆ ++++ ====,求 得 Ω Ω 1111 1 0 1 0 1 0 1 0 9999 2222 1111 1111 ==== ×××× ==== R R u u , ;(4)结 果 表 示 Ω ± = Ω × ± =)1 4 4(, 1 0)0 9.0 9 2.2(2 3 1 R R 实 验 目 的(1)了 解 分 光 计 的 原 理 和 构 造。(2)学 会 分 光 计 的 调 节 和 使 用 方 法。(3)观 测 汞 灯 在 可 见 光 范 围 内 几 条 光 谱 线 的 波 长实 验 方 法 原 理若 以 单 色平行 光 垂 直 照 射 在 光 栅 面 上,按 照 光 栅 衍 射 理 论,衍 射 光 谱 中 明 条 纹 的 位 置 由 下 式 决 定 :(a + b)s i n ψ k = d s i n ψ k = ± k λ 如 果 人 射 光 不 是 单 色,则 由 上 式 可 以 看 出,光 的 波 长 不 同,其 衍 射 角 也 各 不 相 同,于 是 复 色 光 将 被 分 解,而 在 中 央 k = 0、ψ = 0 处,各 色 光 仍 重 叠 在 一 起,形 成 中 央 明 条 纹。在 中 央 明 条 纹 两 侧 对 称 地 分 布 着 k = 1,2,3,… 级 光 谱,各 级 光 谱线 都 按 波 长 大 小 的 顺 序 依 次 排 列 成 一 组 彩 色 谱 线,这 样 就 把 复 色 光 分 解 为 单 色 光。如 果 已 知 光 栅 常 数,用 分 光 计 测 出 k 级 光 谱 中 某 一 明 条 纹 的 衍 射 角 ψ,即 可 算 出 该 明 条 纹 所 对 应 的 单 色 光 的 波 长 λ。实 验 步 骤(1)调 整 分 光 计 的 工 作 状 态,使 其 满 足 测 量 条 件。(2)利 用 光 栅 衍 射 测 量 汞 灯 在 可 见 光 范 围 内 几 条 谱 线 的 波 长。① 由 于 衍 射 光 谱 在 中 央 明 条 纹 两 侧 对 称 地 分 布,为 了 提 高 测 量 的 准 确 度,测 量 第 k 级 光 谱 时,应 测 出 + k 级 和l 级 到 + 1 级 依 次 测 量,以 免 漏 测 数 据。数 据 处 理(1)与 公 认 值 比 较计 算 出 各 条 谱 线 的 相 对 误差 λ λ λ 0 0 x E − = 其 中 λ 0 为 公 认 值。(2)计 算 出 紫 色 谱 线 波 长 的 不 确 定 度 u(λ)=(((()))))(| c o s |)()(s i n)(ϕ ϕ ϕ ϕ ϕ u b a u b a ++++ ==== ⎥⎥⎥⎥ ⎦⎦⎦⎦ ⎤⎤⎤⎤ ⎢⎢ ⎢ ⎢ ⎣⎣ ⎣ ⎣ ⎡⎡ ⎡ ⎡ ∂∂∂∂ ++++ ∂∂∂∂ 2222 = 1 8 0 1 8 0 1 8 0 1 8 0 6 0 6 0 6 0 6 0 0 9 2 0 9 2 0 9 2 0 9 2 1 5 1 5 1 5 1 5 6 0 0 6 0 0 6 0 0 6 0 0 1111 ×××× ×××× ×××× π �.c o s = 0.4 6 7 n m;U = 2 × u(λ)= 0.9 n m 最 后 结 果 为 : λ =(4 3 3.9 ± 0.9)n m 1.当 用 钠 光(波 长 λ = 5 8 9.0 n m)垂 直 入 射 到 1 m m 内 有 5 0 0 条 刻 痕 的平面 透 射 光 栅 上 时,试 问 最 多 能 看 到 第 几 级 光 谱 ? 并请 说 明 理 由。答 : 由(a + b)s i n φ = k λ 得 k = {(a + b)/ λ } s i n φ ∵ φ 最 大 为 9 0 º 所 以 s i n φ = 1 又 ∵ a + b = 1 / 5 0 0 m m = 2 * 1 09 m ∴ k = 2 * 1 09 = 3.4 最 多 只 能 看 到 三 级 光 谱。2.当 狭 缝 太 宽、太 窄 时 将 会 出 现 什 么 现 象 ? 为 什 么 ? 答 : 狭 缝 太 宽,则 分 辨 本 领 将 下 降,如 两 条 黄 色 光 谱 线 分 不 开。狭 缝 太 窄,透 光 太 少,光 线 太 弱,视 场 太 暗 不 利 于 测 量。3.为 什 么 采 用 左 右 两 个 游 标 读 数 ? 左 右 游 标 在 安 装 位 置 上 有 何 要 求 ? 答 : 采 用 左 右 游 标 读 数 是 为 了 消 除 偏 心 差,安 装 时 左 右 应 差 1 8 0 º。谱 线 游 标左 1 级(k =1 0 0 1 0 2 0 3 0 4 0 5 0 实 验 目 的(1)观 察 光 电 效 现 象 , 测 定 光 电 管 的 伏 安 特 性 曲 线 和 光 照 度 与 光 电 流 关 系 曲 线;测 定 截 止 电 压 , 并 通 过 现 象 了 解 其 物理 意 义。(2)练习电 路 的 连 接 方 法 及 仪 器 的 使 用;学习用 图 像 总 结 物 理 律。实 验 方 法 原 理(1)光 子 打 到 阴 极 上 , 若 电 子 获 得 的 能 量 大 于 逸 出 功 时 则 会 逸 出,在 电 场 力 的 作 用 下 向 阳 极 运 动 而 形 成 正 向电 流。在 没 达 到 饱 和 前,光 电 流 与 电 压 成 线 性 关 系 , 接近饱 和 时 呈 非 线 性 关 系 , 饱 和 后 电 流 不 再 增 加。(2)电 光 源 发 光 后 , 其 照 度 随 距 光 源 的 距 离 的平方 成(r 2)反 比 即 光 电 管 得 到 的 光 子 数 与 r 2 成 反 比 , 因 此 打 出 的 电 子数 也 与 r 2 成 反 比 , 形 成 的 饱 和 光 电 流 也 与 r 2 成 反 比 , 即 I ∝ r0.6 4 0 1.0 2.0 4.0 6.0 8.0 1 0.0 2 0.0 3 0.0 4 0.0 I / m A 0 2.9 6 5.6 8 1 0.3 4 1 6.8 5 1 8.7 8 1 9.9 0 1 9.9 2 1 9.9 4 1 9.9 5 1 9.9 7(2)照 度 与 光 电 流 的 关 系 L / c m 2 0.0 2 5.0 3 0.0 3 5.0 4 0.0 5 0.0 6 0.0 7 0.0 8 0.0 1 / L 2 0.0 0 2 5 0.0 0 1 6 0.0 0 1 1 0.0 0 0 8 0.0 0 0 6 0.0 0 0 4 0.0 0 0 3 0.0 0 0 2 0.0 0 0 1 5 I / µ A 1 9.9 7 1 2.5 4 6.8 5 4.2 7 2.8 8 1.5 1 0.8 7 0.5 3 0.3 2 伏 安 特 性 曲 线 照 度 与 光 电流 曲 线(3)零 电 压 下 的 光 电 流 及 截 止 电 压 与 照 度 的 关 系 L / c m 2 0.0 2 5.0 3 0.0 3 5.0 4 0.0 5 0.0 6 0.0 7 0.0 I 0 / µ A 1.9 6 1.8 5 1.0 6 0.8 5 0.6 4 0.6 1 0.5 8 0.5 5 U S / V 0.6 4 0.6 3 0.6 5 0.6 6 0.6 2 0.6 4 0.6 5 0.6 3 1.临 界 截 止 电 压 与 照 度 有 什 么 关 系 ? 从 实 验 中 所 得 的 结 论 是 否 同 理 论 一 致 ? 如 何 解 释 光 的 波 粒 二 象 性 ? 答 : 临 界 截 止电 压 与 照 度 无 关,实 验 结 果 与 理 论 相 符。光 具 有 干 涉、衍 射 的 特 性,说 明 光 具 有 拨 动 性。从 光 电 效 应 现 象 上 分 析,光 又 具 有 粒 子 性,由 爱 因 斯 坦 方 程 来 描述 : h ν =(1 / 2)m v 2 m a x + A。2.可 否 由 U s ′ν 曲 线 求 出 阴 极 材 料 的 逸 出 功 ? 答 : 可 以。由 爱 因 斯 坦 方 程 h υ = e | u s | + h υ o 可 求 出 斜 率 Δ u s / Δ υ = h / e 和 普 朗 克 常 数,还 可 以 求 出 截 距(h / e)υ o,再 由 截 距 求 出 光 电 管 阴 极 材 料 的 红 限 υ o,从 而 求 出 逸 出 功 A = h υ o。实 验 目 的(1)观 察 等 厚 干 涉 现 象 及 其 特 点。(2)学 会 用 干 涉 法 测 量 透 镜 的 曲 率 半 径 与 微 小 厚 度。实 验 方 法 原 理利 用 透 明 薄 膜(空 气 层)上 下 表 面 对 人 射 光 的 依 次 反 射,人 射 光 的 振 幅 将 分 成 振 幅 不 同 且 有 一 定 光 程 差 的 两 部 分,这 是 一 种 获 得 相 干 光 的 重 要 途 径。由 于 两 束 反 射 光 在 相 遇 时 的 光 程 差 取 决 于 产 生 反 射 光 的 薄 膜 厚 度,同 一 条 干 涉 条 纹 所对 应 的 薄 膜 厚 度 相 同,这 就 是 等 厚 干 涉。将 一 块 曲 率 半 径 R 较 大 的平凸 透 镜 的 凸 面 置 于 光 学平板 玻 璃 上,在 透 镜 的 凸面 和平板 玻 璃 的 上 表 面 间 就 形 成 一 层 空 气 薄 膜,其 厚 度 从 中 心 接 触 点 到 边 缘 逐 渐 增 加。当平行 的 单 色 光 垂 直 入 射 时,入 射 光 将 在 此 薄 膜 上 下 两 表 面 依 次 反 射,产 生 具 有 一 定 光 程 差 的 两 束 相 干 光。因 此 形 成 以 接 触 点 为 中 心 的 一 系 列 明 暗 交替 的 同 心 圆 环 — — 牛 顿 环。透 镜 的 曲 率 半 径 为 : λ λ)(4)(4 2 2 n m y n m D n D m R − = − − = 实 验 步 骤(1)转 动 读 数 显 微 镜 的 测 微 鼓 轮,熟 悉 其 读 数 方 法 ; 调 整 目 镜,使 十 字 叉 丝 清 晰,并 使 其 水平线 与 主 尺平行(判 断 的方 法 是 : 转 动 读 数 显 微 镜 的 测 微 鼓 轮,观 察 目 镜 中 的 十 字 叉 丝 竖 线 与 牛 顿 环 相 切 的 切 点 连 线 是 否 始 终 与 移 动 方 向平行)。(2)为 了 避 免 测 微 鼓 轮 的 网 程(空 转)误 差,在 整 个 测 量 过 程 中,鼓 轮 只 能 向 一 个 方 向 旋 转。应 尽 量 使 叉 丝 的 竖 线 对 准 暗干 涉 条 纹 中 央 时 才 读 数。(3)应 尽 量 使 叉 丝 的 竖 线 对 准 暗 干 涉 条 纹 中 央 时 才 读 数。(4)测 量 时,隔 一 个 暗 环 记 录 一 次 数 据。(5)

由 于 计 算 R 时 只 需 要 知 道 环 数 差 ma ′ | x ∆ 起 始 位 置 a 终 了 位 置 a ′ 1 8.0 9 5 3.5 7 5 1 0 4.5 2 0 0.4 5 2 0 2 3.5 5 4 8.0 3 5 1 0 4.4 8 1 0.4 4 8 1 3 8.0 3 0 3.5 7 3 1 0 4.4 5 7 0.4 4 5 7 4 3.5 5 0 8.1 0 0 1 0 4.5 5 0 0.4 5 5 0 5 8.1 8 4 3.6 8 0 1 0 4.5 0 4 0.4 5 0 4 6 3.5 9 3 8.0 8 0 1 0 4.4 8 7 0.4 4 8 7 = ∆ x 0.4 4 9 9 8 m m 测 d 数 据 记 录 m m 次 数放 大 像 间 距 d 1 缩 小 像 间 距 d 2 a 1 a 1 ′ | a 1a 2 ′ | 1 7.5 6 0 5.7 7 4 1.7 8 6 7.3 5 7 6.9 6 5 0.4 1 0 2 5.7 7 1 7.5 6 1 1.7 9 0 6.9 3 3 7.3 6 0 0.4 2 8 3 7.5 3 8 5.7 6 6 1.7 7 2 7.3 8 1 6.9 6 8 0.4 1 3 4 5.7 5 5 7.5 4 9 1.7 9 4 6.9 1 0 7.3 3 0 0.4 2 0 5 7.5 2 0 5.7 5 3 1.7 6 7 7.3 5 5 6.9 4 0 0.4 1 5 6 5.7 3 5 7.5 1 5 1.7 8 0 6.9 5 1 7.3 6 0 0.4 0 9 = 1 d 1.7 9 1 5 m m ; = 2 d 0.4 1 5 8 m m 测 D 数 据 记 录 m m 狭 缝 位 置 b 测 微 目 镜 差 丝 位 置 b ′ D = | b4 1 0 5.8 7 7 3 1 × = λ m m。2()7 1 0 4 2 7.2 − × = λ c u m m ; 包 含 因 子 k = 2 时,λ 的 扩 展 不 确 定 度()λ c u U 2 = 结 果 表 达 式 为 4 1 0)0 0 5.0 8 7 7.5(− × ± = + = U λ λ m m。1.测 量 前 仪 器 调 节 应 达 到 什 么 要 求 ? 怎 样 才 能 调 节 出 清 晰 的 干 涉 条 纹 ? 2.答 : 共 轴,狭 逢 和 棱 背平行 与 测 微 目 镜 共 轴,并 适 当 调 节 狭 逢 的宽 度。2.本 实 验 如 何 测 得 两 虚 光 源 的 距 离 d ? 还 有 其 他 办 法 吗 ? 答 : d =(d 1 * d 2)1 / 2 或 利 用 波 长 λ 已 知 的 激 光 作 光 源,则 d =(D / Δ x)λ 3.狭 缝 与 测 微 目 镜 的 距 离 及 与 双 棱 镜 的 距 离 改 变 时,条 纹 的 间 距 和数 量 有 何 变 化 ? 答 : 狭 缝 和 测 微 目 镜 的 距 离 越近,条 纹 的 间 距 越 窄,数 量 不 变,狭 缝和 双 棱 镜 的 距 离 越近,条 纹 间 距 越 宽,数 量 越 小。4.在 同 一 图 内 画 出 相 距 为 d 虚 光 源 的 S 1 和 S 2 所 成 的 像 d 1 和 d 2 的 光 路 图。实 验 目 的(1)掌 握 测 薄 透 镜 焦 距 的 几 种 方 法 ;(2)掌 握 简 单 光 路 的 分 析 和 调 整 的 方 法 ;(3)了 解 透 镜 成 像 原 理,掌 握 透 镜 成 像 规 律 ;(4)进 一 步 学习不 确 定 度 的 计 算 方 法。实 验 方 法 原 理(1)自 准 法当 光(物)点 在 凸 透 镜 的 焦平面 上 时,光 点 发 出 的 光 线 经 过 透 镜 变 成平行 光 束,再 经 过 在 透 镜 另 一 侧 的平面 镜 反 射 后又 汇 聚 在 原 焦平面 上 且 与 发 光 点(物 点)对 称。(2)物 距 像 距 法测 出 物 距(u)与 相 距(v)代 入 公 式 : 1 / u + 1 / v = 1 / f 可 求 f(3)共 轭 法保 持 物 与 屏 的 距 离(L)不 变 , 移 动 透 镜,移 动 的 距 离 为(e),其 中 一 次 成 放 大 像 另 一 次 成 缩 小 像 , 放 大 像 1 / u + 1 / v = 1 / f , 缩 小 像 1 /(u + e)+ 1 /(ve 2)/ 4 L。(4)凹 透 镜 焦 距 的 测 量利 用 光 路 可 逆 原 理,将 凸 透 镜 所 成 的 实 像 作 为 凹 透 镜 的 物,即 可 测 出 凹 透 镜 成 实 像 的 物 距 和 像

距,代 入 公 式 1 / u + 1 / v = 1 / f 可 求 出 焦 距 f。实 验 步 骤本 实 验 为 简 单 设 计 性 实 验,具 体 实 验 步 骤 由 学 生 自 行 确 定,必 要 时 课 建 议 学 生 按 照 实 验 原 理 及 方 法 中 的 顺 序 作 试 验。要 求 学 生 自 行 设 计 的 能 直 接 反 映 出 测 量 结 果 的 数 据 记 录 表 格。数 据 处 理(1)自 准 法,物 距 像 距 法,则 凹 透 镜 焦 距 三 个 试 验 将 所 测 数 据 及 计 算 结 果 填 写 在 自 行 设 计 的 表 格 中。(2)对 共 轭 法 的 测 量 数 据 及 处 理 实 例测 量 数 据 记 录 表 O 1 O 2 e = o 2e 2)/ 4 L f O 1 左 O 1 右 O 1 O 2 左 O 2 右 O 2 5 2.4 3 5 2.9 0 5 2.6 7 9 8.0 0 9 9.0 0 9 8.5 0 4 5.8 3 1 9.8 2 1 9.6 9 5 3.5 0 5 2.7 0 5 3.1 0 9 7.9 8 9 9.2 0 9 8.5 9 4 5.4 9 1 9.9 2 5 1.6 7 5 2.8 9 5 2.2 8 9 9.0 0 9 9.5 0 9 9.2 5 4 6.9 7 1 9.5 2 5 2.7 0 5 2.9 0 5 2.8 0 9 8.8 0 9 9.2 1 9 9.0 1 4 6.2 1 1 9.6 4 5 1.3 0 5 2.8 0 5 2.0 5 9 8.6 0 9 8.9 0 9 8.7 5 4 6.7 0 1 9.5 9 5 2.3 4 5 2.8 0 5 2.5 7 9 8.3 4 9 9.1 0 9 8.7 2 4 6.1 5 1 9.7 0 ① 不 确 定 度 的 计 算 过 程 : u A(e)=()

管理信息系统实验报告及答案 篇6

实验项目:考试管理系统项目规划

班级:国贸1301

学号:***

姓名:吕任希 郭波

时间:2015.5.27

第一章

学校考试管理信息系统项目规划

一、开发背景介绍

随着现代信息技术和通讯工具的不断更新,基于网络化和数字化的电子文化发展给传统的书本文化带来巨大的冲击,更使得教育领域的教学手段、课堂模式、学习方法、课程教材等面临严峻的挑战。在错综复杂的网络与信息技术面前,如何高效、便捷的利用现代信息技术和网络技术成为一个应用者、管理者应该思考的问题。为了统计学生考试信息,学校通过开发考试管理信息系统可以给出学生在校期间的各种信息及其变化,以及对这些信息的各种统计分析,使管理者能从不同角度对学生个体和群体的成绩情况做出快速准确的分析判断。同时考试也是教学工作的重要组成部分,通过对学生学习质量的分析,还可以为综合评价教师的教学质量,提供依据及时提供所需资料,并以此带动学校信息化管理的步伐,提高教师素质;从学生角度来讲,也可以及时的了解自己的学习情况。

二、项目概况:系统的目标(功能、服务范围和质量)

功能:教学管理人员可以通过该系统添加学院、专业、科目信息、查询修改信息、查询学生成绩;普通教师录入、修改、查询学生成绩;学生只能查询自己的成绩。该系统可以实现包括教学管理人员登陆信息、班级信息、学生信息、老师信息的录入、修改、删除等,考试成绩查询、分析功能等。

服务范围:教务处管理人员、班主任、任课老师、学生、家长

质量:该系统操作简单,使用灵活方便,可以从很大程度上节约学生信息管理的所需的人力、财力,降低管理成本,使学校的学生信息管理更加科学化,提高管理的效率,同时为学校考核学生的综合素质提供必要的、及时的数据支持。

三、可行性分析(从技术、时间、资源、人员方面进行分析)

人员方面:本系统简单易懂,伴随着电脑的普及,普通职员所掌握的高级办公自动化、VB等电脑知识足以应对,日常使用中并不需要专业性很强的人员。技术方面:本系统采用Microsoft Office Access和Microsoft Office Visio软件进行开发,这两个软件是微软公司推出的开发环境,是目前流行的Windows平台应用程序开发环境。

资源方面:系统开发部不需要很多的资金投入,硬件依靠学校的计算机设备即可,开发人员可由学校内相关技术人员担任,只需支付相关人员工资,不许再耗费其他费用。所以在资源上完全可行。

时间方面:该系统的开发必然需要一定的时间,并且后期的调试运行也会延迟系统的交付使用,可以通过加强系统开发人员与使用者的交流,尽量一次性满足使用要求,减少返工。

综上所述,该信息系统的开发是必要和可行的,可以进行开发。

四、约束条件分析

本系统虽然简洁简单,但依然有部分数据存在冗余,信息更新不及时等不足之处,而且界面不能使用户随时能够掌握任务的进展情况,容错功能一般,容易造成误操作、按键连击等导致数据误录。成绩录入时没有成绩的批量录入,使得考试阅卷后的成绩录入工作量十分庞大,而且单一录入的错误率高。由于技术开发人员资质有限,所以开发的系统出来可能不够完善。

五、说明单位的目前的现状,从业务流程面临的问题来说明如何通过信息技术如何进行流程改造。目前单位现状:

学院考试管理包括学生信息管理和成绩管理两部分的工作。学生信息管理的过程是:当学生人员发生变动时,负责管理学生信息人员应对变动人员进行添加或修改。每年新生入学时,由学生工作办公室提供新学生信息,并由教务科存档以备用。学生毕业前,应将学生信息删除。其他学生的变动信息应及时更新,经过检查的变动名单由学生信息处理人员进行整理,并存入学生库中。学生成绩管理的过程是,每当考试完毕后,任课教师把成绩单一式三份分别送教务科、各系部和学生工作办公室,成绩录入人员将整理的成绩输入到学生成绩库中。录入成绩完毕后,统计分析人员应根据学生库文件和学生成绩库文件汇总出各班总成绩、各科总成绩和学生总成绩等资料,并把这些累计汇总后的资料报送有关人员。业务流程面临的问题及流程改造:

1、没有必要建立整理后的学生人员名单,可以将该单据删除。

2、不需要单独设立成绩录入员录入学生成绩,由任课老师在批改完成绩后,直接将每位学生的成绩录入到学生成绩档案。

3、没有必要将成绩分成三份,分别发放给教学管理人员,班主任和学生。应生成各种成绩报表,各方数据需求者根据自己的要求在生成的报表中提取相应的数据。

第二章

管理信息系统项目分析

一、组织结构分析

对该系统涉及到得组织部门及其之间的功能关系进行分析,绘制出组织结构图。

院长学生工作办公室教务科任课老师学生信息处理人员成绩统计人员成绩录入人员

二、系统需求分析

1、系统现有系统业务流程分析:

学生信息管理的过程是:当学生人员发生变动时,负责管理学生信息人员应对变动人员进行添加或修改。每年新生入学时,由学生工作办公室提供新学生信息,并由教务科存档以备用。学生毕业前,应将学生信息删除。其他学生的变动信息应及时更新,经过检查的变动名单由学生信息处理人员进行整理,并存入学生库中。

学生成绩管理的过程是,每当考试完毕后,任课教师把成绩单一式三份分别送教务科、各系部和学生工作办公室,成绩录入人员将整理后的成绩输入到学生成绩库中。录入成绩完毕后,统计分析人员应根据学生库文件和学生成绩库文件汇总出各班总成绩、各科总成绩和学生总成绩等资料,并把这些累计汇总后的资料报送有关人员。

2、做出系统业务流程图:

学生工作办公室任课教师学生人员名单学生人员变动名单成绩单学生信息管理人员成绩录入人员学生人员档案整理后的学生人员名单学生成绩档案统计分析人员单科汇总成绩表多科成绩单成绩条教学管理人员班主任学生

3、系统的改进思路:

(1)原系统数据过于繁琐,可以将“整理后的学生人员名单”删去。(2)可以将“成绩录入人员”去掉。

(3)可以将“单科汇总成绩表”、“多科成绩单”、“成绩条”合并为“学生成绩汇总表”。

三、系统新的逻辑方案设计

1、设计出系统功能结构图:

学校考试管理系统资资资资报料料料料表录修删查输入改除询出

2、新系统业务流程设计,绘制新系统业务流程图:

退出系统

学生工作办公室任课老师学生人员名单学生人员变动名单成绩单学生信息管理人员学生人员档案学生成绩档案统计分析人员学生成绩汇总表教学管理人员班主任学生

3、新系统数据流程分析,绘制新系统数据流程图:

学生工作办公室学生信息变动表学生信息表任课教师录入录入学生信息库学生成绩库处理统计分析各各班成绩表各成科绩表学生成绩教学管理人员

班主任成绩单录入后的成绩单

4、根据数据流程图,编制数据字典;(1)数据项的定义

数据项编号:I01 更改后的学生信息表表学生

数据项名称:学生姓名(2)数据结构的定义

数据结构编号:DS01

数据结构名称:学生档案及各科成绩汇总表

简述:学生在校基本档案及各科成绩

数据结构组成:学生姓名+学号+成绩(3)数据流的定义

数据流编号:D01

数据流名称:学生档案表

简述:学生基本信息

数据流来源:学生工作办公室

数据流去向:学生信息管理人员

数据流组成:学生姓名+学号+性别+毕业学校

数据流编号:D02

数据流名称:学生成绩单

简述:学生各科的成绩

数据流来源:任课老师

数据流去向:信息管理系统分析人员

数据流组成:学生姓名+学号+课程+成绩(4)处理逻辑的定义

处理逻辑编号:P01

处理逻辑名称:整理学生信息

简述:更新学生档案汇总学生成绩

输入的数据流:整理后的学生档案表,来源于学生信息管理人员;各科成绩单,来源于任课老师

处理:根据学生档案输入每个学生成绩,汇总所有学生的成绩并分类排序

输出的数据流:学生汇总成绩单(5)数据存储的定义

数据存储编号:F01 10

数据存储名称:学生库档案

简述:存储学生的基础信息档案

数据存储组成:学生姓名+学生在校表现(6)外部实体的定义

外部实体编号:S01

外部实体名称:教务处

简述:管理查询学生基本信息的单位

输入的数据流:D01-02

输出的数据流:F01

外部实体编号:S02

外部实体名称:老师

简述:查询了解学生成绩

输入的数据流:D01-02

上一篇:致退伍军人慰问信下一篇:应用文的内容与结构