当前位置:文档之家› 实验三 文件与数据流 实验报告

实验三 文件与数据流 实验报告

实验三 文件与数据流 实验报告
实验三 文件与数据流 实验报告

实验三文件与数据流实验报告

一、实验目的

1. 掌握输入输出流类的层次关系和类中的方法及输入输出流的编程方法。

2. 理解对象序列化。

二、实验要求

1. 利用InputStream(抽象类)的子类FileInputStream以及BufferedInputStream类对文件进行读入操作。BufferedInputStream相对于FileInputStream类而言增加了缓存,减少了IO 操作,在一定程序上提升了程序的性能。同理,利用OutputStream的子类FileOutputStream 和BufferedOutputStream类进行文件的输出操作。

2. 通过DataInputStream和DataOutputStream对象进行基本数据类型的写入文件和从文件读出的操作。

3. 通过ObjectInputStream和ObjectOutputStream可以直接把对象写入到文件或者从文件中读出。同时,如果要使对象能够通过这个类写入到文件中,这个类需要实现Serializable 接口。

三、实验内容

1. 将文件f1.txt的内容加密(字母’A’ 变为’C’,字母’B’ 变为字母‘D’,…,字母‘Z’ 变为’B’)后存放到f

2.txt中。读出f2.txt文件的内容,并显示解密后的内容。

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

public class FileExperiment00 {

public static void main(String[] args) {

try {

encrypt();

decrypt();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void encrypt() throws Exception {

File f1 = new File("f1.txt");

File f2 = new File("f2.txt");

if (!f1.exists()) {

System.out.println("文件不存在");

return;

}

if (!f2.exists()) {

f2.createNewFile();

}

FileInputStream in = new FileInputStream(f1);

BufferedInputStream bis = new BufferedInputStream(in);

FileOutputStream out = new FileOutputStream(f2);

BufferedOutputStream bos = new BufferedOutputStream(out);

int b;

while ((b = bis.read()) != -1) {

bos.write(Encrypt.encrypt((byte) b));

}

bos.close();

bis.close();

}

public static void decrypt() throws Exception {

File file = new File("f2.txt");

if (!file.exists()) {

System.out.println("文件不存在!");

return;

}

FileInputStream in = new FileInputStream(file);

BufferedInputStream bis = new BufferedInputStream(in);

byte[] buffer = new byte[2];

while (bis.read(buffer) > 0) {

buffer[0] = Encrypt.decrypt(buffer[0]);

buffer[1] = Encrypt.decrypt(buffer[1]);

System.out.print(new String(buffer));

}

bis.close();

}

}

class Encrypt {

public static byte encrypt(byte b) {

if ((b >= 65 && b <= 88) || (b >= 97 && b <= 120)) {

return (byte) (b + 2);

} else if ((b >= 89 && b <= 90) || (b >= 121 && b <= 122)) { return (byte) (b - 24);

} else {

return b;

}

}

public static byte decrypt(byte b) {

if ((b >= 67 && b <= 90) || (b >= 99 && b <= 122)) {

return (byte) (b - 2);

} else if ((b >= 65 && b <= 66) || (b >= 97 && b <= 98)) { return (byte) (b + 24);

} else {

return b;

}

}

}

2. 从键盘中输入若干个实数(以-999999.999结束),按大小顺序存放到d1.txt,并从该文件中读取数据,在屏幕上显示(每行输出5个数)

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.EOFException;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.util.Arrays;

import java.util.LinkedList;

import java.util.Scanner;

public class FileExperiment01 {

public static void main(String[] args) {

try {

getData();

readData();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void readData() throws Exception {

File file = new File("d1.txt");

DataInputStream in =

new DataInputStream(new FileInputStream(file));

double d = 0;

while (true) {

try {

d = in.readDouble();

System.out.println(d);

} catch (EOFException e) {

break;

}

}

in.close();

}

public static void getData() throws Exception {

LinkedList numbers = new LinkedList();

Scanner s = new Scanner(System.in);

while (true) {

try {

double value = s.nextDouble();

if (value == -999999.999) {

break;

}

numbers.add(value);

} catch (Exception e) {

throw new RuntimeException(e);

}

}

double[] array = new double[numbers.size()];

for (int i = 0; i < array.length; i++) {

array[i] = numbers.get(i);

}

Arrays.sort(array); // 系统自带的 sort 方法进行排序

DataOutputStream out =

new DataOutputStream(new FileOutputStream(

new File("d1.txt")));

for (double d : array) {

out.writeDouble(d);

}

if (out != null) {

out.close();

}

}

}

3. 定义一个学生类(成员变量有学号、姓名和成绩),从键盘输入若干学生的信息(学号为’000’结束),并将学生信息存入到文件stu.txt中。输入一个需要查找学号,从文件stu.txt 中查找学生的成绩。(通过把一个HashMap对象写入到文件之中,并且把这个对象从文件中读入内存,再进行查找操作)

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.Serializable;

import java.util.HashMap;

import java.util.Scanner;

public class FileExperiment02 {

public static void main(String[] args) {

try {

inputData();

readData();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void inputData() throws Exception {

ObjectOutputStream out =

new ObjectOutputStream(

new FileOutputStream(new File("stu.txt")));

HashMap datas =

new HashMap();

int count = 1;

Scanner s = new Scanner(System.in);

while (true) {

System.out.println();

System.out.println("现在输入第 " + count + " 个学生的信息");

System.out.print("请输入学号:");

String id = s.next();

if (id.equals("000")) {

break;

}

System.out.print("请输入姓名:");

String name = s.next();

System.out.print("请输入成绩:");

double mark = s.nextDouble();

if (datas.get(id) != null) {

System.out.println("该学号已经存在!请重新输入");

continue;

}

Student student = new Student(id, name, mark);

datas.put(id, student);

count++;

}

out.writeObject(datas);

out.close();

}

public static void readData() throws Exception {

HashMap datas = null;

ObjectInputStream in =

new ObjectInputStream(new FileInputStream(

new File("stu.txt")));

datas = (HashMap) in.readObject();

Scanner s = new Scanner(System.in);

while (true) {

System.out.print("请输入要查询的学号(输入 000 退出程序):");

String id = s.next();

if (id.equals("000")) {

break;

}

Student student = datas.get(id);

if (student == null) {

System.out.println("没有找到学号为 " + id + " 的学生信息");

continue;

}

System.out.println(student.toString());

}

in.close();

}

}

class Student implements Serializable{

private static final long serialVersionUID = 1L;

private String id;

private String name;

private double mark;

public Student(String id, String name, double mark) {

this.id = id;

https://www.doczj.com/doc/bf11459029.html, = name;

this.mark = mark;

}

public String getId() {

return id;

}

public String getName() {

return name;

}

public double getMark() {

return mark;

}

@Override

public String toString() {

return "学号:" + this.id + ";姓名:" + https://www.doczj.com/doc/bf11459029.html, + ";成绩:"

+ this.mark;

}

}

四、实验结果

1. 文件加密解密实验:

f1.txt 文件内容:

public class BufferedReader extends Reader

Reads text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines.

The buffer size may be specified, or the default size may be used. The default is large enough for most purposes.

In general, each read request made of a Reader causes a corresponding read request to be made of the underlying character or byte stream. It is therefore advisable to wrap a BufferedReader around any Reader whose read() operations may be costly, such as FileReaders and InputStreamReaders. For example,

加密后f2.txt文件内容:

rwdnke encuu DwhhgtgfTgcfgt gzvgpfu Tgcfgt

Tgcfu vgzv htqo c ejctcevgt-kprwv uvtgco, dwhhgtkpi ejctcevgtu uq cu vq rtqxkfg hqt vjg ghhkekgpv tgcfkpi qh ejctcevgtu, cttcau, cpf nkpgu.

Vjg dwhhgt ukbg oca dg urgekhkgf, qt vjg fghcwnv ukbg oca dg wugf. Vjg fghcwnv ku nctig gpqwij hqt oquv rwtrqugu.

Kp igpgtcn, gcej tgcf tgswguv ocfg qh c Tgcfgt ecwugu c eqttgurqpfkpi tgcf tgswguv vq dg ocfg qh vjg wpfgtnakpi ejctcevgt qt davg uvtgco. Kv ku vjgtghqtg cfxkucdng vq ytcr c DwhhgtgfTgcfgt ctqwpf cpa Tgcfgt yjqug tgcf() qrgtcvkqpu oca dg equvna, uwej cu HkngTgcfgtu cpf KprwvUvtgcoTgcfgtu. Hqt gzcorng,

程序运行结果:

2. 实验(2)的运行结果:

d1.txt文件(因为DataInputStream和DataOutputStream采用的是字节流方式,所以写入和读取的文件是二进制文件,使用记事本打开乱码属于正常现象):

3. 学生信息实验的运行结果

人事管理系统-软件工程实验报告

软件工程实验报告 课题:人事管理系统学生姓名: 学号: 专业班级: 指导教师: 同组成员:

需求分析 一、实验目的 掌握软件需求的结构化分析方法。 二、实验任务与实验要求 导出系统详细的逻辑模型,这里用数据流图来表示。 三、实验内容 (1)功能分析 经过初步分析“人事管理系统”应该具备以下主要功能。 1、职员个人信息资料的增加、修改和删除; 2、职员的考勤录入和查询; 3、职员工资结算和查询; 4、人事管理人员的变化和操作授权; 由于是使用计算机管理,就带来了新的功能:用户登陆、操作人员的管理、基本数据的维护、由数据安全产生的数据备份与恢复。 (2)、关系模式 在满足函数依赖和无损连接的基础上,使数据的设计更加合理。在本系统中只有3个实体,那就是普通员工、管理员、超级管理员,他们权限的不听通过角色来区分。在整个系统中超级管理员只有一人,管理员二人。一个人只可以在普通员工、管理员、超级管理员中处于一个角色,而不可以兼任。其具体的关系模式如下: 普通员工(员工号,密码,姓名,性别,出生年月,身份证号,联系电话,就职时间) 管理员(管理员号,密码,姓名,性别,出生年月,身份证号,联系电话,就职时间) 超级管理员(超级管理员号,密码,姓名,性别,出生年月,身份证号,联系电话,就职时间) 工资(员工号,时间,基本工资,提成,奖金) 考勤(员工号,时间,迟到,早退,管理员号) 注意:“”表示主码,“”表示既是主码又是外码。 E-R图如下所示

数据字典设计: 为了方便数据库的管理和维护,本系统只设计一个数据库workers.mdb,其中包含worker(员工信息表)、manager(考勤信息表)、booklist(工资信息表) 表1-1 worker(员工信息表)各字段设计 表1-2 monit (考勤信息表)各字段设计

SQL 数据库实验报告3

一、实验内容 (1)掌握在SQL Server管理平台中对表进行插入、修改和删除数据操作的方法。 (2)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。 二、实验器材(设备、元器件) Window7操作系统,SQL Server软件 三、实验步骤 (1)启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。 (2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示 (3)在SQL Server管理平台中创建student_info、curriculum表。 学生基本情况表student_info 课程信息表curriculum

①启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。 ②在SQL Server管理平台中创建student_info表。 ③在SQL Server管理平台中创建curriculum表。 (4)使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建表 学生成绩表grade

①新建查询,输入Transact-SQL语句,点击执行 ②出现如下界面,学生成绩表grade建立成功 (5)在SQL Server管理平台中,将student_info表的学号列设置为主键,非空。

(6)student_info、curriculum、grade表中的数据如图所示。 student_info的数据 curriculum的数据 grade的数据 (7)在SQL Server管理平台中为student_info表添加数据

实验报告格式范文

实验报告格式范文 实验一撰写可行性研究报告 一、实验目的 1、掌握可行性研究步骤; 2、学习编制可行性研究报告。 二、实验要求 硬件:Intel Pentium 120 或以上级别的CPU,大于16MB的内存。 软件:Win dows 95/98/2000 操作系统,Office 97/2000 软件 学时:2学时 写岀此项实验报告 三、实验内容 1、可行性研究(结构化分析)方法; 2、绘制数据流图,使用Word写实验报告。 四、实验步骤 1 ?引言 1.1 编写目的 可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解。 经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经济效益。本报告经审核后,交软件经理审查。 1 . 2 项目背景 (1 )待开发的软件产品名称:旅行社机票预定系统。 (2)本项目的提岀者:冯剑。开发者:李翀。用户:旅行社 (3)本软件产品将用于旅行社的机票预定和费用的记录。

1 . 3术语说明 DFD (数据流图):一种描述书记变换的图形工具,是结构化分析方法最普遍采用的表示手段,但数据流图并不是结构化分析模型的全部,数据字典和小说明为数据流图提供了补充,并用以验证图形表示的正确性、一致性和完整性,三者共同构成了被建系统的模型。 1 . 4.系统参考文献 参考文献见附录 2?可行性研究的前提 2.1基本要求 ⑴功能 本软件实现的功能有:为游客提供机票预定服务,提高旅游局的服务质量和服务效率。 对航班数据库的查询和修改,对机票费用记帐数据库的查询和修改,记录旅客信息(姓名、性别、年龄、身份证号、单位、旅行时间、目的地)、航班时间和班次,打印机票和帐单。 (2) 性能 时间:提供的信息必须及时的反映在工作平台上。售票系统的定单必须无差错的存 储在机场的主服务器上。对服务器上的数据必须进行及时正确的刷新。一笔业务在一分钟内完成。空间:运行空间 2M。 (3) 系统的输入和输岀 输入:旅行社定票单。数据完整,详实。 输岀:机票、帐单。简捷,快速,实时。 (4) 处理流程 旅行社将定票信息输入定票系统,系统输岀机票和帐单给旅客。 5 )安全保密要求

数据库系统实验报告 实验三 数据控制(安全性)..

《数据库系统概论》实验报告 题目:实验三数据控制(安全性) 班级姓名学号日期2014年6月6日 一、实验目的 1.通过SQL对数据库进行安全性控制 2.完成教材中例题的上机练习 二、实验平台 微软SQL Server 2000或以上版本。 对于SQL Server 2000,使用查询分析器运行SQL语句,对于SQL Server 2005以上的版本,使用SQL Server Management Studio运行SQL语句。 三、实验内容和要求 使用SQL对数据进行安全性控制,包括授权和权力回收。 操作完成后,查看授权用户是否真正具有所授予的数据操作权利,在权力回收操作之后,用户是否确实丧失了所回收的数据操作权力。 在前几次实验中已经建立了实验数据库,继续在此数据库上进行实验所要求的各项操作。认真填写实验报告,记录所有的实验用例。 四、实验步骤 1.以管理员sa登录数据库,新建DB数据库,然后运行如下SQL语句,创建 我们前几次实验所建立的表。 CREATE TABLE course ( Cno char(4) NOT NULL, Cname char(40) DEFAULT NULL, Cpno char(4) DEFAULT NULL, Ccredit smallint DEFAULT NULL, PRIMARY KEY (Cno) ) ; -- -- 转存表中的数据'course' -- INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('1', '数据库', '5', 4); INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('2', '数学', NULL, 2);

数据流图实验报告

数据流图实验报告 篇一:软件工程实验报告 篇二:需求分析实验报告 软件工程实践报告 计科12—1班 杨光敏 08123234 (一)软件需求分析 1.实验目的 学习图形工具软件VISIO,掌握结构化需求分析方法,熟练绘制数据流图;学习快速原型工具的使用。 2.基本要求 (1)针对银行ATM系统进行需求分析工作,了解银行ATM系统的功能、流程;(2)安装VISIOXX以上版本软件,熟练应用Visio绘制DFD图,绘制银行ATM系统数据流图,完成系统的软件逻辑模型; (3)安装Axure RP Pro 或者Balsamiq Mockups快速原型软件,学习绘制软件原型,完成银行ATM系统的软件原型。 3.系统概述 (1)ATM系统为银行提供一套高效稳定可靠的终端服务平台,为储户登录,

存款,取款,查询,打印凭条,转账,修改密码等操作提供便利。 图1 ATM工作流程 (2).用户特点 本软件的用户主要是银行的广大持卡人,大多都具有使用ATM经验。另外,我们的系统要实现的一个重要目标就是当储户取钱出现故障时能在下笔业务进行之前自动恢复。以此来方便用户和保障用户的利益。本系统还为用户提供了足够的界面友好性和易操作性。即使是一个对ATM系统完全陌生的客户,也可以在交易界面的提示下顺利完成交易。 另外一部分的用户是银行工作人员,本系统不予考虑。 4需求说明 (1) 基本描述 ATM终端可以接受一张可识别的银行储蓄卡,通过储户身份验证后,同储户进行各种交互,例如:查询、存款、取款、打印凭条等;处理储户相应的要求,执行对应操作,为储户服务。该系统要求须保持一定时间内的交易记录,系统应每天自动汇总各种交易数据与服务器进行对账。同时,在通讯失败或其他交易结果不确定的情况下,ATM要自动发起冲正交易,以保证账务的完整性。 本系统的实现需要记录一些相关信息,其中包括的信息有:用户信息和交易信息。

数据库原理实验报告(3)实验三数据表的创建与管理实验

数据库原理实验报告(3)实验三数据表的创建与 管理实验 南京晓庄学院 《数据库原理与应用》 课程实验报告 实验三数据表的创建与管理实验 所在院(系): 数学与信息技术学院班级: 学号: 姓名: 1.实验目的 (1) 理解SQL Server 20xx常用数据类型和表结构的设计方法。理解主键、外键含义,掌握 建立各表相关属性间参照关系的方法。 (2) 熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构,插入及更新数据的方法。 (3) 熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方 法。 2.实验要求 基本实验:

(1) 在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构: 学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号) 课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时) 学习信息(学号,课程号,考试成绩,平时成绩) 院系信息(院系号,院系名称) 要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。 (2) 依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据 库中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。 (3) 依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验 使用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。 (4) 找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。 (5) 按要求完成实验报告。 扩展实验: (1) 在“TM”数据库中补充设计以下各表结构:

实验分析数据流和绘制数据流图

实验报告课程名称_软件工程导论__________ 学院____计算机工程学院_________班级14软件1班 学号2014144141 姓名秦川 2016年11月8日

批阅教师时间实验成绩 课程名称软件工程 学号2014144141姓名秦川实验日期2016.11.8实验名称实验2分析数据流和绘制数据流图 实验目的: 1、掌握数据流的分析方法 2、掌握数据流图的绘制 实验内容: 任务一绘制数据流图 任务二分析数据流和绘制数据流图 案例一:总务办公管理系统 案例二:火车票预订系统 实验原理: 数据流图(DFD)是软件系统系统的逻辑模型,仅仅描绘数据在软件中流动(从输入移动到输出)的过程中所经受的变换(即加工处理)。 数据流图的绘制方法:根据数据流图的四种成分:源点或终点,处理,数据存储和数据流,从问题描述中提取数据流图的四种成分;然后依据“自顶向下、从左到右、由粗到细、逐步求精”的基本原则进行绘制。 基本符号如下:

实验过程与结果: 1.运行Microsoft Office Visio2007 运行Microsoft Office Visio2007 2.选择“软件和数据库”中的“数据流模型图”模板 选中数据流模型图模板

3.用鼠标选拉图标进行绘图 任务一绘制数据流图 试绘制工资管理系统的数据流图,根据数据流图的符号说明仔细理解下图含义: 这是学校教职工工资管理系统,教师根据课时表,职工根据任务表来确定个人工资情况,数据按以下方向传递: 首先,对课时表或任务表进行审核,审核后的数据经排序形成专用表格; 再进行一系列额外计算,包括个人所得说、住房公积金、保险费得出具体所发工资,并将工资表发给银行; 然后,向教职工展示工资所得明细; 最后,形成编制报表,更新分类表后,交于会计。 其中,人事科负责人事数据,教师与职工的工资由银行发放,会计做好报表的统计。

数据库系统设计实验报告

数据库系统设计实验报告 ――教务管理系统 学院:计算机科学与技术 专业:软件工程 班级: 学号: 姓名: 指导老师:

一、概述 项目背景:数据库课程设计 系统名称:教务管理系统 开发环境:SQL Server 2008 二、需求分析 1、系统的概述 ?一个学校由很多个学院组成,每个学院有多个专业,每个专业有1个或 者多个班级。一个学生只属于1个班级,学生有姓名、学号、性别、身 份证号、入学时间等属性。 ?每个专业的每个年级都有对应的教学计划。教学计划指定了这个专业这 个年级的某门课程在那个学期上,学分、学时是多少。每个学院都设置 有1个教务秘书,这些信息都由教务秘书进行输入。每个院系的课程都 有自己的唯一编码,比如计算机系上的C语言,和电子系上的C语言, 虽然都是同一门课,但是编码是不同的。但是同一个院系中的相同的课 程,课程代码是唯一的。比如计算机学院的07计算机软件专业和计算机 学院的07计算机科学专业都有C语言课程,这两门课程的课程代码是相 同的。 ?教务秘书在每个学期的中间时刻,为下一个学期进行排课,排课的内容 根据教学计划,比如08计算机软件专业的学生,在2009-2010年第2 学期上的课程,可以通过教学计划得知要上什么课程,然后对这些课程 安排上课教师(比如陈越)、上课时间(比如星期2,第1-2节)和地点 (理工楼234),有的课程是单周上,有的双周,也有是每周都上的。 ?在每个学期期末,学生登录到网站上选择下一个学期需要上的课,选择 的时刻,可以选择是否需要教材,如果某门课程的人数选满了,则不能 给任何学生选择了。 ?学生根据选择的课程进行上课,参加考试。每个老师可以用自己的用户 名和密码登陆网站,选择这个学期自己所教的课程(一个老师可以上多 个班级的课程),输入这个班级的成绩,成绩分为期末考试成绩、期中考 试成绩、平时成绩、实验成绩以及总评成绩。这些成绩都需要进行存储。 ?为了保证安全性,老师输入的成绩并不是直接放到最终的成绩表中,而 是放在一个临时的表中,只有当教务秘书审核过后,才导入到最终的成 绩表中。

数据库道理实验报告3

实验三数据表的创建与管理实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)理解SQL Server 2005常用数据类型和表结构的设计方法。理解主键、外键含义,掌握 建立各表相关属性间参照关系的方法。 (2)熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构, 插入及更新数据的方法。 (3)熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方 法。 2.实验要求 基本实验: (1)在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构: 学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号) 课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时) 学习信息(学号,课程号,考试成绩,平时成绩) 院系信息(院系号,院系名称) 要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。 (2)依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据 库中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。 (3)依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验 使用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。 (4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。 (5)按要求完成实验报告。 扩展实验: (1)在“TM”数据库中补充设计以下各表结构: 教师信息(教师号,姓名,性别,出生日期,学历,学位,入职时间,职称,院系号) 授课信息(教师号,课程号,学期) 班级信息(班级号,班级名称,专业号) 专业信息(专业号,专业名称,学制,学位) 图书信息(图书号,书名,作者,出版社,出版日期,册数,价格,分类) 借书偏息(学号,图书号,借出时间,归还时间) 奖励信息(学号,奖励类型,奖励金额) (2)设计并实现各表之间相关属性的参照关系。 (3)使用SQL Management Studio图形界面或Transact-SQL在“TM”数据库中创建前述各 表,并插入部分数据,要求所插入数据合理有效。 3.实验步骤、结果和总结实验步骤/结果

华南农业大学大数据库系统概念实验报告材料五

实用文档 《数据库系统》实验报告五

实用文档 salary表中表具有查询权限,A.course对A.instructor对设置同学同学2. AB 使用命令检查授权是否成功。B字段具有更新权限;同学grant select on course to cs113; 实用文档

表具有插入数据、删除数据的权限,同对B. instructorB3. 同学授权同学A 用命令试验能否完成相应操作。学Aselect * from cs113.instructor; insert into cs113.instructor values(21313,'JDY','Comp. Sci.',745363); select * from cs113.instructor; cs113.instructor where salary = 92000; delete from select * from cs113.instructor; 实用文档

表具有增、删、改、查的权限,并允许他对B. studentB5. 同学授权同学A并试验能否将权限授予A将权限授权给其它同学。同学验证授权是否成功,。C其它同学(例如同学) 实用文档select * from cs113.student; insert into cs113.student values(13221,'KJDFH','Comp. Sci.',123); update cs113.student set tot_cred = 456 where ID = 13221; select * from cs113.student; delete from cs113.student where ID = 13221; select * from cs113.student;

数据库原理实验报告_实验三_数据完整性与安全性控制

实验内容、步骤以及结果 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1) 非空约束:为出生日期添加非空约束。 非空约束:取消表S中sbirth的勾。可能需要重建表。 (2) 主键约束:将学号(sno)设置为主键,主键名为pk_sno。 设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择修改命令-->对话框中右击sno-->选择设置主键'>修改主键名为pk_sno '-->保存

(3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname 。 唯一约束:单击数据库Student-->单击表--> 单击S-->右击sname-->选择修改’ 命令T右击 sname-->选择索引和键命令--> 打开索引和键框图--> 添加--> 是否唯一改为是--> 名称改为us sname '-->关闭。

(4)缺省约束:为性别(ssex)添加默认值,其值为男 设默认约束:单击数据库Student宀单击表宀单击右击sno^选择修改命令宀单击cno-->在默认值栏输入男’保存

D62.s1udent - Diagram_0* D62.sludent - dbo.S* SQLQuery5.sql - D... (D62\A^m i n (52J)* 列容 埶据类型 允祥值 Q 5TI0 Ctiar(lO) n sname nvarchar (20) a 卜:S5SX nchai ■⑵ 團 sbirtti date □ adept nv ar char (20) sPhoneNo ctiar(LQ) @] 数捐类型 允傑Mdl 值 曰表设计器 RowGuid E 标识魁 不用于复制 大小 (5) CHECK 约束:为SC 表的成绩(grade)添加CHECK 约束,约束名为ck grade ,其 检查条件为:成绩应该在0-100之间。 ffin har 妊 2 Nnrh 昙否否否二

软件工程实验报告

软 件 工 程 实 验 报 告 班级:计算机科学与技术1102班 学号:1108030209 姓名:蒙雨茹

实验一:使用Microsoft Visio 1.1实验目的: (1)熟悉Visio的工作环境及组成。 (2)掌握Visio软件绘制图表的基本操作。 (3)掌握基本流程图的设计方法。 1.2实验内容: 绘制基本流程图 1.3实验步骤: (1)打开一个模板,,在主菜单中依次选择【文件】->【新建】->【选 择绘图类型】,出现“选择绘图类型”窗口,在【类别】下,单击 【流程图】,在【模板】下,单击【基本流程图】。 (2)添加形状,将【形状】窗口中模具上的自己需要的形状拖到绘图页 面中合适的位置。并添加文本、连接不同形状,使流程图完整的显 现出来。 1.4实验结果:

实验二:数据流图 2.1 实验目的 (1)熟悉Visio的工作环境及组成。 ⑵掌握Visio软件绘制图表的基本操作。 ⑶掌握数据流图的设计方法。 2.2 实验内容 习题3-3,3-4,3-5 2.3 实验步骤 (1)打开模板 ①在主菜单中,依次选择【文件】——【新建】——【选择绘图类型】,出现“选择绘图类型”窗口。 ②在左侧【类别】下,单击【软件】。 ③在右侧【模板】下,单击【数据流模型图】。 (2)绘制顶层图 ①在顶层进程页面中添加、移动图形元素并调整其大小。将所需要元素用鼠标拖动到模板里,添加所需的元素符号。 接口:输入源点或输出终点,其中注明源点或终点的名称。 进程:即处理,输入数据在此进行变换产生输出数据,其中注明进程的名称。数据存储:用于代表系统中存储的信息,其中注明信息的名称。 数据流:被加工的数据及其流向。流线上注明数据名称,箭头代表数据流动方向。 ②向图形元素中添加文本,并修改数据流图中的文字和格式。 连接图形元素。 ③使用“数据流”连接线将“接口”、“进程”和“数据存储”等形状互相连接起来。 逻辑连接:将数据流起点、终点拖拽到进程或接口中央位置,进程或接口被红色框包围时松开鼠标,这时可看到数据流符号相应端点为红色方框。拖动进程或接口,可看到流据流的端点随着进程或接口的移动而移动。

数据库系统实验报告 触发器

实验4 触发器 1、通过序列和触发器实现借阅表中借阅流水号字段的自动递增。 Create or replace sequence bwnum_id Minvalue 1 Maxvalue 1.0E28 Start with 1 Increment by 1 Cache 20; Create or Replace Trigger tri_bwnum_id Before Insert On borrow For Each Row Begin Select bwnum_id.Nextval Into :new.bwnum From DUAL; End;

2、通过序列和触发器实现预约表中预约流水号字段的自动递增 Create sequence pnum_id Minvalue 1 Maxvalue 1.0E28 Start with 1 Increment by 1 Cache 20; Create or Replace Trigger tri_pnum_id Before Insert On preborrow For Each Row Begin Select pnum_id.Nextval Into :new.pnum From DUAL; End;

3、修改实验三借书功能的存储过程。 该存储过程要求: (1)借书时输入借书证号,图书编号。(即该函数有2个输入参数) (2)借书时,借书日期为系统时间。 *该存储过程主体部分只有insert into语句。 create or replace Procedure p_borrow (P_BNUM IN BORROW.BNUM%TYPE, P_RNUM IN BORROW.RNUM%TYPE) as begin insert into BORROW (BNUM,RNUM,BDATE) values(P_BNUM,P_RNUM,TO_CHAR(SYSDATE(),'YY/MM/DD')); commit; end; 4、建立与借书存储过程相对应的触发器,当借阅表中加入借阅信息时,该触发器触发,自动修改所借图书的是否借出改为‘是’。 Create or Replace Trigger tri_borrow_insert

软件工程实验报告_学生成绩管理系统

软件工程实验报告 学生成绩管理系统的设计与实现 学生姓名 学号 班级 成绩 指导教师 年月日

目录 1 课题描述 (3) 2 可行性研究 (4) 2.1 编写目的 (4) 2.2 项目背景 (4) 2.3 定义(术语) (4) 2.4 数据流程和处理流程 (4) 2.5 可行性分析的前提 (5) 2.6 可行性分析 (5) 3 需求分析 (7) 3.1 学生成绩管理系统功能需求 (7) 3.2 学生成绩管理系统性能要求 (8) 3.3 数据流图 (8) 3.4 数据字典 (9) 3.5 学生信息管理系统逻辑结构图 (12) 3.6 用户信息实体关系图 (12) 4 概要设计 (13) 4.1 编写目的 (13) 4.2 项目背景 (13) 4.3 任务概述 (13) 4.4 总体设计 (13) 4.5接口设计 (17) 4.6数据结构设计 (17) 5 详细设计 (19) 5.1 系统程序流程图 (19) 5.2 界面设计 (21) 5.3 程序界面截图 (22) 5.4 程序源代码 (27) 6 软件测试 (58) 7 总结 (62)

1 课题描述 随着互联网的发展,利用INTERNET 技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。服务教学、提高教学水平和效果是校园网建设的核心目标和核心价值,本系统立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高高校的现代化管理水平,实现信息资源的共享。该项目主要是服务于教学方面,进一步方便教师的工作和学生的学习,从而从侧面达到提高学校的教学方面‘软件’质量。可以说它适用于每一所高校,因此很有开发价值。我们不敢说该产品是所有该系列产品中最好的,但是我们这里要强调的是它具有使用范围广,实用性强,使用简单,所花经费少等优点。我们可以肯定的说它将在高校的使用过程中其优点将得到最充分的体现。 主要功能有三方面: 管理员,登陆,进入系统,可以进行管理员操作,进行学生信息、教师信息、课程信息的编辑、查询、删除、修改、添加、打印等操作。 学生,登陆,进入系统,可以进行查询、修改、打印等操作。 教师,登陆,进入系统,可以进行查询、学生成绩录入、修改、打印等操作。 软件系统目标: (1)本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,规定各种权限。 (2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。 (3)本系统操作方便、灵活、简单。 (4)本系统可高效、快速的查询到学生的基本信息。

《数据库系统概论》实验报告

《数据库系统概论》实验报告 题目:实验三存储过程/触发器/ODBC编程 姓名班级学号日期 郭智超10010507 052626 2007-10-14 一. 实验内容和步骤结果 1.在查询分析器中使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) 源程序:create view V_SPJ as select jno,sno from spj where jno='j2' exec sp_rename 'V_SPJ','V_SPJ_三建' 执行结果: 变为 2.存储过程的创建与使用:(45分) (1)使用SPJ数据库中的S表、P表、J表、SPJ表,创建一个带参数的存储过程—jsearch。 该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME) 源程序:create procedure jsearch @jno char(4) as select sname,pname,jname from spj,s,p,j where j.jno=@jno and spj.jno=j.jno

and spj.sno=s.sno and spj.pno=p.pno (2) 执行jsearch存储过程,查询“J1”对应的JNAME,SNAME和PNAME。 源程序:exec jsearch j1 执行结果: (3)使用系统存储过程sp_helptext查看存储过程jsearch的文本信息。 源程序:sp_helptext jsearch 执行结果: (4)使用SPJ数据库中的S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。 源程序:create procedure jmsearch with encryption as select sno,sname,status,city from s where s.city='北京' (5)执行jmsearch存储过程,查看北京供应商的情况。 源程序:exec jmsearch. 执行结果:

数据库实验报告(一)

滨江学院 题目数据库实验报告(一) 学生姓名 学号 系部电子工程系 专业通信工程 指导教师林美华 二O一三年十二月十八日

实验一数据库的定义实验 本实验需要2学时。 一、实验目的 要求学生熟练掌握和使用SQL、SQL Server企业管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server 查询分析器接收语句和进行结果分析。 二、实验内容 1 创建数据库和查看数据库属性。 2 创建表、确定表的主码和约束条件。为主码建索引。 3 查看和修改表结构。 4 熟悉SQL Server企业管理器和查询分析器工具的使用方法。 三、实验步骤 1 基本操作实验 (1) 使用企业管理器按教材中的内容建立图书读者数据库。 (2)在企业管理器中查看图书读者数据库的属性,并进行修改,使之符合要求。 (3)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为; 图书(书号,类别,,作者,书名,定价,作者). 读者(编号,,单位,性别,). 借阅(书号,读者编号,借阅日期) 要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。 (4)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。 2 提高操作实验 (一) 将教材中用SQL描述的建立学生--课程操作.在SQL Server企业管理器中实现。库中表结构为: 学生(学号,,年龄,性别,所在系). 课程(课程号,课程名,先行课). 选课(学号,课程号,成绩) 要求: 1)建库、建表和建立表间联系。, 2)选择合适的数据类型。 3)定义必要的索引、列级约束和表级约束. 四、实验方法 l创建数据库 (1)使用企业管理器创建数据库的步骤 1)从“开始”菜单中选择;“程序”“Microsoft SQL2000”“企业管理器”.

教科版三年级上册科学实验报告单

教科版三年级上册科学实验报告单白马小学科学实验报告单 学校班级实验者时间实验名称观察一棵大树实验目的用各种方法观察一棵树,并描述出来。 实验器材一支蜡笔、一个放大镜、一把尺子 我的猜测:树的外形差不多,树皮都是粗糙的,树冠大小都相同 实我的实验步骤: 1、我们观察了柏树树。 2、从远处看,一棵大树的形状。 3、从近处看。 验 观察到的现象:1、我们观察了柏树。 2、树冠像一把伞。程 3、树干是直的,用手摸感觉很粗糙。 4、树叶叶细小鳞片形,先端锐尖。 实验树都生长在泥土里,都需要水、阳光,都有树干、树冠和树根。但树冠小,树干结论粗细,树皮摸起来有的光滑有的粗糙,结的果实不一样,叶片不一样。疑问树的形状为什么各不相同 指导教师评定等级(含日期) 白马小学科学实验报告单学校班级实验者时间实验名称观察一棵大树实验目的用各种方法观察一棵树,并描述出来。 实验器材一支蜡笔、一个放大镜、一把尺子 我的猜测:树的外形差不多,树皮都是粗糙的,树冠大小都相同 我的实验步骤: 1、我们观察了雪松实

。 2、从远处看,一棵大树的形状。 3、从近处看。 验 观察到的现象:1、我们观察了雪松。 2、树冠圆锥形。。程 3、树干是直的,用手摸感觉很粗糙。 4、树皮灰褐色,裂成鳞片 实验树都生长在泥土里,都需要水、阳光,都有树干、树冠和树根。但树冠小,树干粗结论细,树皮摸起来有的光滑有的粗糙,结的果实不一样,叶片不一样。疑问树的形状为什么各不相同 指导教师评定等级(含日期) 白马小学科学实验报告单学校班级实验者时间实验名称观察水生植物实验目的水葫芦浮在水面上的原因 实验器材水葫芦和金鱼藻,一个水槽,一张记录纸 我的猜测:水葫芦和金鱼藻都能浮在水面上 实我的实验步骤: 1、把塑料袋中的水葫芦和金鱼藻要放入水槽中,观察它们在水中的样 子,并画出简图。 2、剖开水葫芦的叶柄,我们会看到叶柄部位膨大的海绵体 验 观察到的现象:水葫芦海绵状气囊结构很轻,能浮在水面上 程 实验水葫芦叶柄部位膨大的海绵体充满空气是浮在水面上的原因结论

实验一 软件结构化分析实验报告

实验一软件结构化分析 实验目的: 1) 熟练使用Visio的图形模板绘制出专业图表 2)掌握系统的功能描述、性能描述方法; 3) 掌握需求分析工具数据流图、数据字典等; 4) 掌握系统需求分析的步骤和方法。 实验要求: 要求做到使用结构化数据流分析技术分析课题需求,写出详细的数据流图和数据字典,编写 实验内容: 用结构化数据流分析技术进行软件系统需求分析,得出系统得数据流图和数据字典。实验步骤: 1) 到相关单位进行需求分析。 2) 综合利用Internet网和相关书籍整理并完善需求分析。 3) 画出系统数据流图。 4) 得出系统数据字典。 1.软件系统需求描述:(从功能,性能上进行描述) 本系统可细化为两个子系统:销售系统和采购系统。 销售系统的主要工作过程为:首先由教师及学生提交购书单,经教材发行人员审核是有效购书单后,开发票,登记并返还给教师和学生领书单,教师和学生即可去书库领书。 采购系统的主要工作过程为:若是脱销教材,则登记缺书单给书库采购人员,一旦新书入库后,即发进书通知给教材发行人员。

本系统是学校教材订购系统,希望通过计算机能实现对教材采购自动化管理,达到节省人力和提高工作效率的目的。凡书库中的书的数量发生变化(包括领书或进书)时,都应修改相关的书库记录,例如库存表或进/出库表 所以在本次实验中我们应注意教师(学生)与教材发行人员与书库采购员之间的联系;两个子系统:销售系统与采购系统之间的联系,两个子系统合为一个教材订购系统,而与销售系统和采购系统都有关系的是教材发行人员,教师(学生)、图书采购员都需要与教材发行人员联系凡书库中的书的数量发生变化(包括领书或进书)时,都应修改相关的书库记录,例如库存表或进/出库表。 2.软件系统数据流图(由加工、数据流、文件、源点和终点四种元素组成): 3.软件系统数据字典: 1.数据流条目 2.加工条目 3.文件条目 4. 实验小结 本次实验我主要思考了两个子系统之间的关系,以及它们的基本实现方法,教师发书单给教材发行人员后,教材发行人员通过审核销售系统的库存表如教材充足,则返回书单去领书,如缺书书库采购人员进书后将教材的数量输入采购系统库存表反馈给教材发行人员。

数据库系统实验报告

竭诚为您提供优质文档/双击可除数据库系统实验报告 篇一:数据库应用系统设计报告 数据库应用系统设计报告 工资管理系统 专业:计算机科学与技术 班级:08级计算机x班 组员:xxx 指导老师:xxx 一.简介 1.1开发小组人员组成: 组长:xxxx。 各自担负任务 整体设计: 资料搜索: 数据库的设计: 建立数据库: 数据库分析:

需求分析撰写: 设计报告撰写: Java设计: Java代码及界面实现: 1.2运行环境: 开发环境:sQLservermanagementstudio与myeclipseforspring8.6 操作系统:windows20XX 1.3开发意图: 为了检验数据库课程学习情况,我们模拟设计了一份给某公司的工资管理系统。如下:管理信息系统(mIs)不仅是一个技术系统,而且也是一个社会系统。这从另一个方面可看出,任何企事业单位的管理信息系统都是基于自己单位的实际情况而建立,即使是同行企业建立的相同系统都会由于企业的实际情况而有所不同。 工资管理是任何企事业单位都面临的问题,由于各个公司的工资处理方式总是有所区别,因此目前还没有一个通用的工资管理系统,只能针对公司情况去开发适合本公司需求的工资管理系统。早期的工资管理是人工化的,工作量大时,出现错误的机率也会随之升高,这会导致会计人员花费更多的时间去改正错误,延误工资发放的时间,或出现工资发放错误的现象。而企业工资管理系统就是使用电脑代替大量的

人工统计和计算,完成企业工资信息的处理,而且还可以用电脑安全完整地保存企业工资记录。 系统初步调查的内容主要是了解公司组织的整体信息,包括员工信息和员工工资信息。通过对系统特点进行调查和分析,可以得到本系统的关键部分如下: (1)员工职务工资的设定,是工资管理系统的基础,可以实现工资的基本管理。这样可 以减少出错,提高效率。 (2)其他工资的设置,是对员工基本工资的补充。 (3)系统应该可以输出工资报表,可以通过报表侧面反映员工工作的好坏。 (4)系统还应包括员工基本信息的录入、修改和删除。 (5)系统还应该提供强大的数据统计、查询功能。 (6)系统应有比较好的可操作性、稳定性和可扩展性。 1.4完成状况 由于时间关系等原因,本小组实验结果部分完成(数据库设计部分已完成,系统功能模块也已完成,仅仅是未联机测试)。 二.相关资料 2.1需求文档: 需求文档请见同一目录下的《需求分析书》 2.2参考资料:

数据库实验报告

实验一 SQL Server基本使用与数据定义一.实验目的 1.掌握“服务管理器”、“企业管理器”及“查询分析器”基本使用方法;2.熟悉数据库建模及E/R图的画法; 3.掌握SQL Server 中数据库、及数据表的建立与管理方法; 4.掌握数据的导入/导出及数据库备份/还原方法。 二.实验内容 一、SQL Server 基本使用 1.启动SQL SERVER。 2.注册服务器 3.企业管理器属性 4.查询分析器介绍 5.查看数据库及浏览表中记录 二、数据库的建立与管理 1.数据库建模 2.启动、并打开SQL Server 3.使用图形界面创建数据库和表 4.使用查询分析器创建表 5.数据库的备份与还原

实验二 SQL查询 一.实验目的: 1.掌握SQL语言中SELECT语句的多种查询方式。 2.掌握对表建立与删除索引的方法。 3.掌握聚焦函数的使用方法。 4.掌握集合查询方法。 二.实验内容: 1.建立与删除[索引]的方法。 在各表中,分别按代理商编号、客户编号、产品编号及订单编号建立索引。 CREATE INDEX 代理商No ON 代理商(代理商编号) CREATE INDEX 客户No ON 客户(客户编号) CREATEINDEX产品No ON产品(产品编号) CREATEINDEX订单No ON订单(订单编号) 2.单表查询, ①从产品表中查询现有产品的库存量。 SELECT COUNT(*) FROM产品 ②从客户表中查询“王五”的地址及代理商编号。 SELECT地址,代理商编号 FROM客户 WHERE姓名='王五' ③从代理商表中查询代理商“惠普”的提成金额。 SELECT提成金额 FROM代理商 WHERE姓名='惠普' ④从订货项目表中查询编号为“444”的订单所订购的商品编号及数量。 SELECT产品编号,订购数量 FROM订货项目 WHERE订单编号='444' ⑤分别求代理商和客户的总数。 SELECT COUNT(*)代理商数 FROM代理商 SELECT COUNT(*)客户数 FROM客户 ⑥从订货项目表中,查询编号为0033的产品定货总数量。 SELECT COUNT(*)订货总数量 FROM订货项目 WHERE订单编号='0033' 3.多表查询 ①查询编号为300的客户通过的代理商的姓名和地址。 SELECT代理商.姓名,代理商.地址

相关主题
文本预览
相关文档 最新文档