天津理工大学计算机专业数据库实验二
- 格式:doc
- 大小:565.00 KB
- 文档页数:8
实验报告学院(系)名称:计算机与通信工程学院姓名范学号2009 专业计算机科学与技术班级中加4班实验项目数据库控制与编程课程名称数据库系统概论课程代码实验时间2011年11月29日实验地点主校区7—219批改意见成绩教师签字:一.实验目的以一种开发环境为例,使学生初步掌握通过编程的方式对数据库进行操作,为进行数据库课程设计做准备。
二.实验工具软硬件环境编写访问数据库的应用程序来对数据库进行各种数据操作,编程工具由导师指定,学生可以使用指导老师指定的工具,也可自己选择编程工具。
软件环境:Windows 2000MS SQL Server硬件环境:P4 2.4GHz 256内存三.实验内容和要求所有的SQL操作均在自己建立的TEMP数据库里进行,根据以下要求认真填写实验报告,并且提交源程序,保证可正确编译运行。
使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。
熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。
I.使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。
II.熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。
a)查询学生表中的所有学生,并实现调用。
b)修改学号为@sno学生的姓名,性别,年龄,系别,并实现调用。
c)向学生表中插入学生,并实现调用。
d)查询姓名为@sname选修的数据库课程的成绩,并实现调用。
e)查询选修了课程名为@cname并且成绩高于该门课程平均分的学生学号和成绩,并实现调用。
III.利用指定的编程语言完成一个简单程序,要求具有对数据的增加、修改和删除操作;基于一个给定的java应用程序,熟悉掌握建立ODBC和利用ODBC来凝结数据库的编程方法,建立一个应用程序,具有向学生、课程、选课表增加修改删除记录的功能,选取其中一个功能用存储过程实现。
需要接取程序运行界面。
天津理工大学C#实验二实验报告学院(系)名称:计算机科学与工程学院textBox3.Text = (x * y).ToString();}}private void Form1_Load(object sender, EventArgs e) {}}}运行结果:2、Timer 组件的使用,要求利用 Timer 组件实现一时钟。
代码实现:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace _2._2{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){timer1.Tick += new EventHandler(timer1_Tick);timer1.Interval = 1000;timer1.Start();}private void timer1_Tick(object sender, EventArgs e){textBox1.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");}}}运行结果:3、ComboBox 控件的使用已知数组 data 中存放政治面貌的值,试将 data 中的值初始化到 ComboBox控件中,并实现当选中某个值时将其显示在一个 TextBox 控件中。
代码实现:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace _2._3{public partial class Form1 : Form{string[] data = {"中共党员","共青团员","群众","民主党派","无党人士","其他"};public Form1(){InitializeComponent();}private void label2_Click(object sender, EventArgs e){}private void Form1_Load(object sender, EventArgs e){for (int i = 0; i < data.Length; i++){comboBox1.Items.Add(data[i]);}}private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){textBox1.Text = comboBox1.Text;}}}运行结果:4、ListView 控件的使用将二维数组中的信息在 ListView 控件中。
理工大学学生实验报告一.数据定义(一)基本表的操作1.建立基本表例如,建立一个学生表:create table Student(Sno char(9) primary key,Sname char(20) unique,Ssex char(2),Sage smallint,Sdept char(20))建立一个课程表:create table Course(Cno char(4) primary key,Cname char(40),Cpno char(4),Ccredit smallint,foreign key (Cpno) references Course(Cno))create table sc(Sno char(9),Cno char(4),Grade smallint,primary key(Sno,Cno),foreign key (Sno) references student(Sno), foreign key (Cno) references course(Cno));2.修改基本表例如,像student表加一个入学时间列:alter table Student add S_entrance datetimealter table Student alter column Sage intalter table Course add unique(Cname)3.删除基本表例如,删除已经建立的学生表:drop table Studentdrop table Course(二)索引操作1.建立索引例如,为学生课程数据库中的student, course, sc 三个表建立索引。
其中student表按学号升序建唯一索引,course表按课程号升序建唯一索引,sc表按学生升序和课程号升序建唯一索引:create unique index Stusno on Student(Sno);create unique index Coucno on Course(Cno);create unique index SCno on SC(Sno ASC,Cno DESC)2.删除索引例如,删除student表的Stusno索引:drop index Stusname(三)数据操作一.更新操作1.插入数据例如,在student表中插入下列数据:200215125,张立,男,19,IS代码如下insert into student(Sno,Sname,Ssex,Sage,Sdept)values('200215125','张立','男',19,'IS')插入后,结果如下:在Course表中插入以下数据:1,数据库,5,42,数学,null,26,数据处理,null,24,操作系统,6,37,PASCAL语言,6,45,数据结构,7,41,数据库,5,43,信息系统,1,4insert into course(Cno,Cname,Cpno,Ccredit)values('1','数据库','5',4); insert into course(Cno,Cname,Ccredit)values('2','数学',2);insert into course(Cno,Cname,Ccredit)values('6','数据处理',2);insert into course(Cno,Cname,Cpno,Ccredit)values('4','操作系统','6',3);insert into course(Cno,Cname,Cpno,Ccredit)values('7','PASCAL语言','6',4);insert into course(Cno,Cname,Cpno,Ccredit)values('5','数据结构','7',4);insert into course(Cno,Cname,Cpno,Ccredit)values('1','数据库','5',4); insert into course(Cno,Cname,Cpno,Ccredit)values('3','信息系统','1',4);2.修改数据例如,将学生200215121的年龄改为22岁:update student set Sage=22 where Sno='200215121'修改前:修改后:3.删除数据例如,删除学号为200215128的学生记录:delete from student where Sno='200215128'删除所有学生的选课记录:delete from sc删除计算机科学系所有学生的选课记录:delete from sc where 'CS'=(select Sdept from student where student.Sno=SC.Sno )二.查询操作1.单表查询再例如,查询全体学生的详细记录select * from student;查询所有年龄在20岁以下的学生姓名及其年龄。
院系:计算机学院实验课程:数据库实验实验项目:数据操作实验指导老师:XXX开课时间:XXXX ~ XXXX年度第 2学期专业:XXXX班级:XXXX级本X班学生:XXX学号:XXXXXXXX实验二数据操作实验一、实验任务及目的1. 实验任务:上机完成实验内容,主要是编写、运行和分析SQL,请预先自行判断SQL 的运行结果(例如:查询结果包含哪些数据;更新后关系数据如何变化),然后与实际的运行结果比较,以此发现和修正SQL编写中的错误。
2. 实验目的:能够熟练使用MS SQL Server的Query Analyzer工具,联机运行SQL并观察分析SQL的执行结果。
掌握SQL的数据定义、数据查询和数据修改功能,能独立用SQL表述问题,解决较复杂的应用需求。
二、实验的主要硬件软件环境MS SQL Server、计算机磁盘三、实验主要数据结构线性表四、实验的主要算法1.至少向北京或天津的工程提供了零件的供应商名,供应的零件名、工程名和供应数量。
SELECT PNAME,JNAME,SNAME,QTYFROM S,P,J,SPJWHERE SPJ.SNO=S.SNOAND SPJ.JNO=J.JNOAND SPJ.PNO=P.PNOAND (J.CITY=’上海’ OR J.CITY=’天津’)2.供应红色零件给工程J1的供应商名SELECT SNAMEFROM S,P,SPJWHERE SPJ.JNO=’J1’AND SPJ.SNO=S.SNOAND SPJ.PNO=P.PNOAND COLOR=’红’3. 没有使用天津产的零件的工程号SELECT JNOFROM JWHERE JNO NOT IN(SELECT JNOFROM SPJ,SWHERE SPJ.SNO=S.SNOAND CITY=’天津’)4.没有向位于相同城市的工程供应零件的供应商名SELECT SNAMEFROM SWHERE SNAME NOT IN( SELECT SNAMEFROM S,J,SPJWHERE SPJ.JNO=J.JNOAND SPJ.SNO=S.SNOAND S.CITY=J.CITY)5. 和工程J3位于同一城市且使用过至少一种相同零件的其它工程名SELECT DISTINCT(JNAME)FROM J,SPJWHERE SPJ.JNO=J.JNOAND CITY IN(SELECT CITYFROM JWHERE J.JNO=’J3’)AND JNAME NOT IN(SELECT JNAMEFROM JWHERE J.JNO=’J3’)6. 每种颜色零件的总重量SELECT COLOR,SUM(WEIGHT)FROM PGROUP BY (COLOR)7.红色零件的平均重量SELECT AVG(WEIGHT)FROM PWHERE COLOR=’红’8.供应商最集中的城市(意即,哪个城市的供应商最多?)SELECT S.CITYFROM SGROUP BY (CITY)HAVING COUNT(CITY)>=ALL(SELECT COUNT(CITY)FROM SGROUP BY (CITY))9.对上海和天津,统计该城市的供应商一共供应了多少数量的零件。
天津理工大学计算机科学与技术学院实验报告2015 至2016 学年第二学期源代码:#include<osg/Geode>#include<osgDB/ReadFile>#include<osgUtil/SmoothingVisitor>#include<osgViewer/Viewer>#include<osg/Matrixd>#include<osg/MatrixTransform>#include<osg/ShapeDrawable>#include<osg/Texture2D>#include<osgGA/GUIEventHandler>#include<vector>#include<osgText/Text>#include <osg/PositionAttitudeTransform>#include<stdlib.h>#include<time.h>#define MIN 0 //随机数产生的范围#define MAX 1osg::Group* createLight2(osg::Node*);class UseEventHandler:public osgGA::GUIEventHandler{private:float angle;float move;float scale;public :UseEventHandler(){angle=0;move=0;scale=1;}virtual bool handle (const osgGA::GUIEventAdapter&ea,osgGA::GUIActionAdapter& aa){osgViewer::Viewer *viewer =dynamic_cast<osgViewer::Viewer*>(&aa);if(!viewer)return false;osg::ref_ptr<osg::MatrixTransform> root =dynamic_cast<osg::MatrixTransform*>(viewer ->getSceneData());if(!root)return false;switch(ea.getEventType()){case osgGA::GUIEventAdapter::KEYDOWN:{if(ea.getKey()=='w'){angle +=osg::PI_2/90;root->setMatrix(osg::Matrix::translate(-5,-5,0)*osg::Matrix::rota te(angle,osg::Vec3(0,0,1)*osg::Matrix::translate(5,5,0)));}else if(ea.getKey()=='s'){angle -=osg::PI_2/90;root->setMatrix(osg::Matrix::translate(-5,-5,0)*osg::Matrix::rota te(angle,osg::Vec3(0,0,1)*osg::Matrix::translate(5,5,0)));}else if(ea.getKey()=='q'){scale+=0.1;root->setMatrix(osg::Matrix::scale(scale,scale,scale));}else if(ea.getKey()=='a'){scale-=0.1;root->setMatrix(osg::Matrix::scale(scale,scale,scale));}else if(ea.getKey()=='e'){move+=1;root->setMatrix(osg::Matrix::translate(0,0,move));}else if(ea.getKey()=='d'){move-=1;root->setMatrix(osg::Matrix::translate(0,0,move));}return true ;}break;default:break;}return false;}};osg::Group* PaintMountainImprove(){osg::ref_ptr<osg::Node> node = new osg::Node;osg::ref_ptr<osg::Group> group = new osg::Group;osg::ref_ptr<osg::Geode> geode =new osg::Geode;osg::ref_ptr<osg::Geometry> geometry = new osg::Geometry;osg::ref_ptr<osg::MatrixTransform> transform =newosg::MatrixTransform;osg::ref_ptr<osg::MatrixTransform> childTransform[10];osg::ref_ptr<osg::Geometry> geometry1[10];osg::ref_ptr<osg::Geode> geode1[10];osg::ref_ptr<osg::Vec3Array> point[10];osg::ref_ptr<osg::Vec3Array> colors[10];osg::ref_ptr<osg::Vec3Array>normals=new osg::Vec3Array;srand((unsigned)time(0));double hight=0;int trans=0;for(int i=0;i<10;i++){childTransform[i]=new osg::MatrixTransform;geometry1[i] = new osg::Geometry;geode1[i] = new osg::Geode;point[i]=new osg::Vec3Array;colors[i]=new osg::Vec3Array;geometry1[i]->setVertexArray(point[i].get());geode1[i]->addDrawable(geometry1[i].get());childTransform[i]->addChild(geode1[i].get());transform->addChild(childTransform[i]);for(int j=0;j<10;j++){if(i==0||j==0||j==9||i==9){hight=0;}else{hight=MIN + 5*(int)MAX * rand() / (RAND_MAX);}trans=int(hight*4096/5);point[i]->push_back (osg::Vec3(j,i,hight));colors[i]->push_back(osg::Vec3(0,((trans/16)%16)/16.0,0));}}normals->push_back(osg::Vec3(0,0,1));osg::ref_ptr<osg::Vec3Array> point1=new osg::Vec3Array;osg::ref_ptr<osg::Vec3Array>colors1=new osg::Vec3Array;osg::ref_ptr<osg::Vec2Array> texCoord =new osg::Vec2Array;for(int i=0;i<9;i++){for(int j=0;j<9;j++){point1->push_back(point[i]->at(j));point1->push_back(point[i]->at(j+1));point1->push_back(point[i+1]->at(j));point1->push_back(point[i+1]->at(j+1));colors1->push_back(colors[i]->at(j));colors1->push_back(colors[i]->at(j+1));colors1->push_back(colors[i+1]->at(j));colors1->push_back(colors[i+1]->at(j+1));texCoord->push_back(osg::Vec2(0.1*j,0.1*i));texCoord->push_back(osg::Vec2(0.1*(j+1),0.1*i));texCoord->push_back(osg::Vec2(0.1*j,0.1*(i+1)));texCoord->push_back(osg::Vec2(0.1*(j+1),0.1*(i+1)));geometry->addPrimitiveSet(newosg::DrawArrays(osg::DrawArrays::TRIANGLE_STRIP,i*36+j*4,4));}}point1->push_back(osg::Vec3(0,0,0));point1->push_back(osg::Vec3(9,0,0));point1->push_back(osg::Vec3(9,9,0));point1->push_back(osg::Vec3(0,9,0));colors1->push_back(osg::Vec3(0,0,0));colors1->push_back(osg::Vec3(0,0,0));colors1->push_back(osg::Vec3(0,0,0));colors1->push_back(osg::Vec3(0,0,0));texCoord->push_back(osg::Vec2(0,0));texCoord->push_back(osg::Vec2(0,1));texCoord->push_back(osg::Vec2(1,0));texCoord->push_back(osg::Vec2(1,1));geometry->setVertexArray(point1.get());//geometry->setTexCoordArray(0,texCoord.get());geometry->setColorArray(colors1.get());geometry->setColorBinding(osg::Geometry::BIND_PER_VERTEX);geometry->setNormalArray(normals.get());geometry->setNormalBinding(osg::Geometry::BIND_OVERALL);geometry->addPrimitiveSet(newosg::DrawArrays(osg::DrawArrays::QUADS,9*36,4));//geometry->getOrCreateStateSet()->setTextureAttributeAndModes(0, new osg::Texture2D(osgDB::readImageFile("map.png")));geode->addDrawable(geometry);group->addChild(geode.get());group->addChild(createLight2(group.get()));return group.release();}osg::Group* createLight2(osg::Node* pNode){osg::Group* lightGroup = new osg::Group;osg::BoundingSphere bs = pNode->getBound();osg::ref_ptr<osg::Light> light = new osg::Light();light->setLightNum(0);light->setDirection(osg::Vec3(0.0f, 0.0f, -1.0f));light->setPosition(osg::Vec4(bs.center().x(), bs.center().y(), bs.center().z() + bs.radius(), 0.0f));light->setAmbient(osg::Vec4(1.0f, 1.0f, 1.0f, 1.0f));light->setDiffuse(osg::Vec4(1.0f, 1.0f, 1.0f, 1.0f));light->setConstantAttenuation(1.0f);light->setLinearAttenuation(0.0f);osg::ref_ptr<osg::LightSource> lightSource = newosg::LightSource();lightSource->setLight(light.get());return lightSource.release();}int main(int argc,char **argv){osg::ref_ptr<osg::MatrixTransform> root = new osg::MatrixTransform;root->addChild(PaintMountainImprove());osgViewer::Viewer viewer;viewer .setSceneData(root.get());viewer.addEventHandler(new UseEventHandler());//viewer.setSceneData(createHouseWall());//while(1){return viewer.run();//}}。
学号:031202534 姓名:张逸君EMAIL:455852025 学院:数计专业:计算机类《数据库应用实践》实验二:数据库管理系统的维护与管理实验目的:掌握DBMS 提供的数据完整性功能;理解数据库安全性,掌握DBMS 的用户和权限管理;理解存储过程概念,掌握存储过程的使用方法;掌握触发器的使用;掌握备份、还原的基本技术。
实验环境:操作系统:Windows 7 SP1 X64数据库管理系统:Micrsoft SQL Server 2012实验内容:(一)数据库安全性:1、添加登陆账号与数据库用户。
1)创建登录名并设定账号密码CREATE LOGIN SQLTESTWITH PASSWORD='sqltest123'新创建的用户可以登录数据库,但是无访问该数据库的权限。
2)添加用户USE仓库库存CREATE USER SQLUSERFOR LOGIN SQLTEST2、对用户授予权限、收回权限1)授予权限授予对“仓库库存”数据库中“管理员表”的SELECT权限USE仓库库存GRANT SELECTON管理员表TO SQLUSER2)收回权限收回对“仓库库存”数据库中“管理员表”的SELECT权限USE仓库库存REVOKE SELECTON管理员表TO SQLUSER(二)触发器、存储过程的使用1、创建存储过程1)创建存储过程完成对仓库库存数据库中商品表所有商品的编号、单价、生产商的查询USE仓库库存GOCREATE PROCEDURE select_allASSELECT*FROM商品表执行存储过程select_all2)创建带参数的存储过程,完成对仓库表中指定编号仓库信息的查询USE仓库库存GOCREATE PROCEDURE select_cangku@number char(3)ASSELECT*FROM仓库表WHERE仓库编号=@number执行该存储过程:USE仓库库存GOEXECUTE select_cangku'002'3)创建具有返回值的存储过程完成对“管理员表”中籍贯为给定地区的管理员的人数USE仓库库存GOCREATE PROCEDURE select_jiguan@area varchar(10),@number int OUTPUTASSELECT COUNT(籍贯)FROM管理员表WHERE籍贯=@area执行所创建的存储过程USE仓库库存GODECLARE@number intEXECUTE select_jiguan'福建',@number2、修改存储过程修改上例中的存储过程,改为查找“管理员表”中职位为给定职务的管理员的总人数USE仓库库存GOALTER PROCEDURE select_jiguan@job char(10),@number int OUTPUTASSELECT COUNT(职务)AS总人数FROM管理员表WHERE职务=@job执行存储过程:USE仓库库存GODECLARE@number intEXECUTE select_jiguan'干事',@number3、删除存储过程USE仓库库存GODROP PROC select_jiguan4、创建触发器1)创建DML型触发器a)创建INSERT和DELETE触发器,在对“商品表”进行INSERT和DELETE操作时将触发提示操作USE仓库库存GOCREATE TRIGGER insert_deleteON商品表FOR INSERT,DELETEASPRINT'你正在对商品表进行插入或删除操作'执行对商品表插入一条商品记录的操作时:b)使用INSTEAD OF关键字USE仓库库存GOCREATE TRIGGER instead_ofON仓库表INSTEAD OF DELETE,UPDATEASPRINT'你对仓库表的修改或删除操作无效!'对“仓库表”进行删除操作时,系统显示:c)创建UPDATE触发器,不允许修改管理员籍贯一栏,一旦触发将提示。
天津理工大学计算机专业微机硬件组成原理实验2实验报告学院(系)名称:计算机与通信工程姓名范** 学号2009**** 专业计算机科学与技术班级4班实验项目实验二:项目资源和成本管理课程名称计算机项目管理课程代码实验时间2012年12月11日实验地点7-215批改意见:成绩教师签字:实验目的:掌握项目规划和进度管理,熟练运用Microsoft Project软件进行项目规划和进度管理。
实验环境:硬件环境:IBM-PC或兼容机软件环境:Windows操作系统Project实验内容:掌握资源的建立掌握资源的分配掌握成本的计算掌握“资源工作表”视图、“任务分配状况”视图、“资源使用状况”视图和“资源图表”视图的使用掌握资源的管理:包括资源的排序以及筛选等“报表”功能的使用掌握关键路径的使用直接压缩关键任务的工期使用重叠时间压缩工期分解关键任务压缩项目工期增加资源压缩项目工期更改日历压缩项目工期实验要求:按照实验内容的要求掌握项目资源和成本管理中各个功能的具体实现方法在实验报告中书写各功能实现的方法以及涉及到相关选项的含义和作用不要大量贴图,实验报告中只粘贴关键的截图就可以每个功能的实现过程中,需要有适当的文字说明实验报告中的各项信息需要填写齐全和准确在“资源的排序和筛选”以及“报表功能”中,列出几种主要方式的作用和用法就可以实验步骤:资源的建立1工时资源的建立1.1设置工作时间—资源日历的使用打开 project 定义资源的工作时间:1.2设置成本信息—标准费率、加班费率、每次使用成本、生效日期的作用双击项目中的空格弹出对话框:在资源名称中输入“工时管理”,将缩写设置为“GSGL ”,类型设置为“工时”在成本标签内设置:标准费率、加班费率、每次使用成本、生效日期的作用2.材料资源的建立 2.1设置材料标签和工时管理建立操作类似,建立一个“材料管理“的资源类型,将其类型设置为”材料“,将材料标签设置为“箱”2.2设置材料资源成本信息在对话框中点击“成本“标签,弹出对话框设置相应的成本信息二:掌握资源的分配1.为任务分配资源的方法在“视图”菜单上,单击“甘特图”;在“任务名称”域中,选择要为其分配资源的任务;单击“分配资源”;在“资源名称”域中,单击要分配的资源的名称;在“请求/要求”列中,单击“请求”或“要求”指定是否需要将此资源分配给该任务;此资源设置用于“资源置换向导”;如果您请求了该资源,向导将仅在该资源未过度分配的条件下分配资源。
天津理工大学计算机科学与技术学院实验报告至学年第学期课程名称C++程序设计应用学号学生姓名年级13级专业教学班号实验地点7-219 实验时间年月日第节至第节主讲教师辅导教师实验(二)实验名称复杂形式的对象软件环境Visual C++ 6.0硬件环境台式计算机实验目的(1)掌握对象数组、对象指针的使用方法;(2)掌握对象数组、对象指针和对象引用作为函数参数的使用方法;(3)掌握类对象作为成员的使用方法;(4)掌握友元的概念和使用方法;(5)掌握静态数据成员和静态成员函数的使用方法;(6)进一步了解C++面向对象程序设计的基本思想、基本方法和基本步骤;实验内容(应包括实验题目、实验要求、实验任务等)1.代码及注释;#include<iostream>using namespace std;class Time //声明Time类{public:Time(int a=0,int b=0,int c=0) // 带默认参数的构造函数{hour=a;minute=b;second=c;}// set functionsvoid setTime(int h,int m,int s) // 设置hour, minute, second{hour=h;minute=m;second=s;}void setHour(int a) // 设置hour (确保数据在合理范围){if(a<24&&a>=0)hour=a;实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)}void setMinute(int b) // 设置minute (确保数据在合理范围){if(b<60&&b>=0)minute=b;}void setSecond(int c) // 设置second (确保数据在合理范围){if(c<60&&c>=0)second=c;}int getHour() // 返回hour{return hour;}int getMinute() // 返回minute{return minute;}int getSecond() // 返回second{return second;}void printUniversal() // 按24小时格式输出时间:23:56:12{cout<<"24小时格式的时间为:"<<getHour()<<":"<<getMinute()<<":"<<getSecond()<<endl;}void printStandard() // 按12小时格式输出时间:11:56:12 (PM) 或9:23:55(AM) {if(hour>12)cout<<"12小时格式的时间为:"<<getHour()-12<<":"<<getMinute()<<":"<<getSecond()<<"(pm)"<<endl;elsecout<<"12小时格式的时间为:"<<getHour()<<":"<<getMinute()<<":"<<getSecond()<<"(am)"<<endl;}private:int hour; // 0 - 23 (24小时格式)int minute; // 0 - 59int second; // 0 - 59}; // Timel类定义结束int main(){int h1,m1,s1;int h2,m2,s2;int a;Time t1,t2;cout<<"请输入一个24小时格式的时间:"<<endl;cin>>h1>>m1>>s1;t1.setTime(h1,m1,s1);t1.printStandard();cout<<"请输入一个12小时格式的时间:(上午在最后用1表示,下午用2表示)"<<endl;cin>>h2>>m2>>s2>>a;t2.setMinute(m2);t2.setSecond(s2);if(a==1)t2.setHour(h2);elset2.setHour(h2+12);t2.printUniversal();return 0;}结果截图2.代码及注释#include<iostream>#include<cmath>using namespace std;class Location //声明类Location{public:Location(double a,double b) //构造函数{x=a;y=b;}double Getx() //成员函数,取x坐标的值{return x;}double Gety() //成员函数,取y坐标的值{return y;}double distance1(Location&a)//成员函数,求两坐标点之间的距离{double x1,y1;x1=a.Getx();y1=a.Gety();return sqrt((x1-x)*(x1-x)+(y1-y)*(y1-y));}friend double distance2(Location&, Location&);//友元函数,求两坐标点之间的距离private:double x,y;};double distance2(Location&a, Location&b){return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}int main(){Location A(-3.4,-6.8);Location B(-5.5,8);double d1,d2;cout<<"A("<<A.Getx()<<","<<A.Gety()<<")"<<endl;cout<<"B("<<B.Getx()<<","<<B.Gety()<<")"<<endl;cout<<"用成员函数计算"<<endl;d1=A.distance1(B);cout<<"Distance1="<<d1<<endl;cout<<"用友员函数计算"<<endl;d2=distance2(A,B);cout<<"Distance2="<<d2<<endl;return 0;}3. #include<iostream>#include<string>using namespace std;int main(){string s[20];int y=1,n=0,i=0;while(y){cout<<"请输入一个字符串(最多"<<20-n<<"个)"<<endl;cin>>s[i];cout<<"继续输入请输入1,否则输入0"<<endl;cin>>y;n++;i++;}for (;n>=0;n--)cout<<s[n]<<" ";4.设计一个模仿类magic来实现5*5的魔方阵。
实验报告学院(系)名称:计算机与通信工程学院⑥查询平均成绩80分以上的学生的学号。
⑦求计算机系没有选修数据库课程的学生姓名。
⑧求至少选修了学号为S1所选修的全部课程的学生学号。
⑨求各系的系的学生人数的,并将结果按学生人数的降序排序。
⑩查询选修了数据库课程并且成绩高于该门课程平均分的学生学号和成绩。
4. 实验过程记录(源程序、测试用例、测试结果及心得体会等)1.创建数据库学生2.创建表Student3创建表SC4创建表Coruse5创建关系图6 输入数据二:SQL查询语句①查询信息系和计算机系的学生,并按学生所在系和学号排序。
select sno,sname,Sdept from Studentwhere Sdept='CS'OR Sdept='IS'order by Sdept,sno ASC②查询学生表中最小的年龄。
select MIN(sage)from student③查询课程名中包含“设计”的课程名。
select cno,cname from coursewhere Cname like'%设计%'④查询先行课程为空值的课程号、课程名及学分。
select cno,cname,ccredit from Coursewhere Cpno is null⑤查询李勇选修的数据库课程的成绩。
select grade from SCwhere Sno=(select Sno from Studentwhere Sname='李勇')and Cno=(select Cno from Coursewhere cname='数据库')⑥查询平均成绩80分以上的学生的学号。
select distinct sno from SC scxwhere (select AVG(Grade)from SC scywhere scy.sno=scx.Sno)>80⑦求计算机系没有选修数据库课程的学生姓名。
《数据库原理与应用》实验报告实验名称:实验二班级:软件工程学号:姓名:一、实验目的1.掌握使用SQL语句创建和删除数据表,创建各种完整性约束。
2.掌握使用SQL语句修改表的结构。
3. 掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。
二、实验过程1.使用SQL语句建立4个关系,:供应商表S (Sno, Sname, City)零件表P(Pno, Pname, Color, Weight)工程项目表J(Jno, Jname, City)供应情况表SPJ(Sno, Pno, Jno, QTY)创建S表的语句为:create table s(sno varchar2(20) primary key,sname varchar2(40) unique,city varchar2(10));语句的执行结果为:create table p(pno varchar2(20) primary key,pname varchar2(40),color varchar2(10),weight number check(weight>=1 and weight<=50)); 语句的执行结果为:创建j表的语句为:create table j(jno varchar2(20) primary key,jname varchar2(40) unique not null,city varchar2(10));语句的执行结果为:create table spj(sno varchar2(20),pno varchar2(20),jno varchar(20),qty number(5),primary key(sno,pno,jno),foreign key (sno) references s(sno),foreign key (pno) references p(pno),foreign key (jno) references j(jno));语句的执行结果为:2.用SQL语句完成以下操作(1)给S表增加Sphone和Semail两个属性列,分别用来存放供应商的联系电话和电子信箱。
天津理工大学实验报告
【实验过程记录(源程序、测试用例、测试结果及心得体会等)】测试用例:自动出纳机
实验步骤:
1.准备脚本;
2.确定事件;
3.构造状态图;
测试结果如下
“分行”类的状态图
“分理处”类的状态图
测试结果及心得体会:
1.对类模型中的类建立状态图,反映对象接收和发送的事件,每个脚本都对应于状态图中一条路径。
2.首先为“正常”情况准备脚本,然后考虑“特殊”情况,最后考虑用户出错情况。
3.使用脚本可以发现正常事件,但不要遗漏条件和异常事件。
4.使用Microsoft V isio绘图要提高效率,应该注意步骤和各个对象的安排
大学啊不错啊,好好学习,不要耽误了青春,但是是这个专业坑爹啊,,找好自己的方向,不要被这个专业误导了啊,,
理工的学妹,学弟们,你说呢,,哈哈哈哈,嘿嘿联系/。
天津理工大学计算机科学与通信工程学院实验报告2014 至2015 学年第一学期课程名称J2EE程序设计学号20125552 学生姓名于涵年级2012级专业计算机科学与技术教学班号实验地点计算机专业实验室7-216实验时间2014 年12 月1 日第3 节至第 4 节2014 年12 月2 日第7 节至第8 节2014 年12 月8 日第3 节至第 4 节主讲教师董玉涛辅导教师董玉涛实验(二)实验名称Servelt计算二则运算以及字符串长度输出软件环境A、实现语言J2EEB、环境要求:JDK1.4或以上MyEclipse 8.5+TomCat 5.0+JDK Docs硬件环境PC机实验目的写一个servlet能够计算两个数字的和、差、积、商,以及能够输出一个字符串的长度。
实验内容(应包括实验题目、实验要求、实验任务等)写一个servlet能够计算两个数字的和、差、积、商,以及能够输出一个字符串的长度。
实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)实验代码:<%@ page language="java" import="java.util.*"pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort ()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script src="/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript">$(document).ready(function(){$("#add").click(function(){//alert("Value: " + $("#number1").val());var result =parseInt($("#number1").val())+parseInt($("#number2").val());$("#result").val(result);});$("#subtract").click(function(){//alert("Value: " + $("#number1").val());var result =parseInt($("#number1").val())-parseInt($("#number2").val());$("#result").val(result);});$("#multiply").click(function(){//alert("Value: " + $("#number1").val());var result =parseInt($("#number1").val())*parseInt($("#number2").val());$("#result").val(result);});$("#divide").click(function(){//alert("Value: " + $("#number1").val());var result =parseInt($("#number1").val())/parseInt($("#number2").val());$("#result").val(result);});$("#length").click(function(){//alert("Value: " + $("#number1").val());var result =parseInt($("#number1").val())/parseInt($("#number2").val());$("#result").val(result);});});</script></head><body><p>number1:<input type="text" id="number1"></p><p> number2:<input type="text" id="number2"></p><p>result: <input type="text" id="result"></p><button id="add">add</button><button id="subtract">subtract</button><button id="multiply">multiply</button><button id="divide">divide</button><p>enter a string:<input type="text" id="string"></p><button id="length">length</button><input type="text" id="length"> </body></html>验证。
实验报告学院(系)名称:计算机与通信工程学院姓名Touchkiss 学号20125577 专业计算机科学与技术班级2班实验项目实验二:复杂SQL数据操作课程名称数据库系统课程代码0668026实验时间2014/10/31 实验地点计算机软件实验室7-215 批改意见成绩教师签字:1.实验目的1) 熟悉各数据库的交互式SQL工具;2) 熟悉通过SQL语言对数据库进行操作3)熟悉通过SQL语言对数据进行控制(授权和权力回收)2.实验工具MS SQL server20083.实验内容1)表的创建:创建一数据库Temp,在数据库中创建教材中的Student 表、Course 表和SC 表,给出表中的主码、外码和约束关系。
2)基于以上创建的表,完成如下SQL语句。
(1) 将学习了数据库课程的学生成绩加5分。
(2) 将计算机系学习了2号课程的学生成绩置0。
(3) 将李勇的数据库成绩改为85。
(4) 将选修了2号课程且成绩为空的选课记录删除。
(5) 从课程表中删除在选课表中没有选课记录的课程记录。
(6) 删除计算机系学生选修了数据库课程的选课记录。
(7) 求各系的系名及男女生人数并将结果保存到另一个表中。
(8) 将平均成绩80分以上的学生的学号,选学的课程数和平均成绩保存到另一个表中。
(9) 创建一个视图,查询没有选修课程的学生学号、姓名和所在系,并利用该视图查询所有没有选修课程的学生信息。
(10) 创建一个给出学生的姓名、课程名和成绩的视图,并利用该视图查询某个学生学习的课程名和成绩。
(11)创建一个视图,求各门课程的课程号、选课人数、平均分、最高分,并利用该视图查询1号课程的选课人数、平均分、最高分。
(12) 创建一个视图,求选修了2号课程且成绩高于该门课程平均分的学生学号和成绩。
(13)创建用户user1,将学生表的select权限赋给用户user1,然后以user1登录,检查权限情况。
(14)收回用户user1的对学生表的select权限,然后以user1登录,检查权限情况。
实验报告
学院(系)名称:计算机与通信工程学院
姓名范学号2009 专业计算机科学与技术
班级中加4班实验项目数据库控制与编程
课程名称数据库系统概论课程代码
实验时间2011年11月29日实验地点主校区7—219
批改意见
成绩
教师签
字:
一.实验目的
以一种开发环境为例,使学生初步掌握通过编程的方式对数据库进行操作,为进行数据库课程设计做准备。
二.实验工具软硬件环境
编写访问数据库的应用程序来对数据库进行各种数据操作,编程工具由导师指定,学生可以使用指导老师指定的工具,也可自己选择编程工具。
软件环境:Windows 2000MS SQL Server
硬件环境:P4 2.4GHz 256内存
三.实验内容和要求
所有的SQL操作均在自己建立的TEMP数据库里进行,根据以下要求认真填写实验报告,并且提交源程序,保证可正确编译运行。
使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。
熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。
I.使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。
II.熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。
a)查询学生表中的所有学生,并实现调用。
b)修改学号为@sno学生的姓名,性别,年龄,系别,并实现调用。
c)向学生表中插入学生,并实现调用。
d)查询姓名为@sname选修的数据库课程的成绩,并实现调用。
e)查询选修了课程名为@cname并且成绩高于该门课程平均分的学生学号和成绩,并实现调用。
III.利用指定的编程语言完成一个简单程序,要求具有对数据的增加、修改和删除操作;基于一个给定的java应用程序,熟悉掌握建立ODBC和利用ODBC来凝结数据库的编程方法,建立一个应用程序,具有向学生、课程、选课表增加修改删除记录的功能,选取其中一个功能用存储过程实现。
需要接取程序运行界面。
四. 实验步骤
1.使用SQL对数据进行完整性控制和检验
完整性约束
如图所示,建立表是约束学生姓名不能为空,性别只能在男女之间二选一
下面进行完整性检验插入操作
违背约束条件导致错误
正常执行
姓名不能为空
以上说明当操作违反了完整性约束条件的时候,系统报将截断字符串或二进制数据。
错处理
2.存储过程的建立及使用带输入参数和输出参数的存储过程
创建存储过程并且带有参数入出
查询学生表中的所有学生,并实现调用。
新建存储过程getStudentList查询所有学生信息
执行存储过程getStudentList .修改学号为@sno的全部信息源代码:
CREATE PROCEDURE getStudentList as
begin
SELECT*FROM Student
end
go
存储过程建立完毕EXEC getStudentList;
源代码:
CREATE PROCEDURE upd(@sno CHAR(9))
AS
begin
UPDATE Student
SET sno='200956273',sname='徐梦佳',sex='女',age='21',dept='CS' WHERE sno=@sno
end
go
接下来执行该存储过程,修改学号为@sno=200215122
向学生表中插入学生,并实现调用
/*源代码:
inser (@sno CHAR (9),@sname CHAR (20),@sex CHAR (2),@age SMALLINT ,@dept CHAR (20)) AS
INSERT INTO
Student (sno ,sname ,sex ,age ,dept )
V ALUES (@sno ,@sname ,@sex ,@age ,@dept );*/ 调用存储过程
inser
调用成功!
信息成功插入!
.查询姓名为@sname 选修的数据库课程的成绩,并实现调用
调用checkgrade EXEC checkgrade '徐梦佳';
.查询选修了课程名为@cname 并且成绩高于该门课程平均分的学生学号和成绩,并实现调用。
源代码:
CREATE PROCEDURE
checkgrade (@sname name CHAR (20)) AS
SELECT @sname ,grade FROM Student ,SC
WHERE Student .sno =SC .sno AND cno = (SELECT cno FROM Course
WHERE cname ='数据库' );
源代码:
CREATE PROCEDURE larger_A VG(@cname CHAR(40))
AS
SELECT cname,sno,grade
FROM Course,SC
WHERE o=o AND cname=@cname AND grade> (SELECT A VG(grade)
FROM SC
WHERE cno=
(SELECT cno
FROM Course
WHERE cname=@cname
)
);
调用larger_A VG查询数据库课程数据库中建立的存储过程
成绩高于该门课程平均分的学生学号和成绩
III.基于一个给定的java应用程序
选取插入操作,调用存储过程inser来插入信息
查看插入结果
调用存储过程插入操作成功!
大学啊不错啊,好好学习,不要耽误了青春,但是是这个专业坑爹啊,,找好自己的方向,不要被这个专业误导了啊,,
理工的学妹,学弟们,你说呢,,哈哈哈哈,嘿嘿联系。