一、实验目的
1.掌握在查询分析器中使用SELECT语句进行简单查询。
2.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
3.熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
4.观察查询结果, 体会SELECT语句实际应用
二、实验用软件和工具
1.计算机。实验软件 VC++ 6.0
2.SQL Server2005软件。
三、实验步骤
1 简单查询操作
此部分查询包括投影、选择条件表达、数据排序、使用临时表等。
对EDUC(shiyan6)数据库实现以下查询:
(1)求信电学院的学生学号和姓名;
(2)求选修了课程的学生学号;
(3)求选修C1 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;
(4)求选修课程C1 且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;
(5)求计算机系和数学系的姓张的学生的信息;
(6)求缺少了成绩的学生的学号和课程号。
2 连接查询操作
对EDUC(shiyan6)数据库实现以下查询:
(1)查询每个学生的情况以及他(她)所选修的课程;
(2)求学生的学号、姓名、选修的课程名及成绩;
(3)求选修C1 课程且成绩在90 分以上的学生学号、姓名及成绩;
(4)查询每一门课的间接先行课。
3.子查询操作,在数据库EDUC(shiyan6)中实现查询:
(1)求选修了高等数学的学生学号和姓名;
(2)求C1 课程的成绩高于张三的学生学号和成绩;
(3)求其他系中比计算机系某一学生年龄小的学生信息(即求其它系中年龄小于计算机系年龄最大者的学生);
(4)求其他系中比计算机系学生年龄都小的学生信息;
(5)求选修了C2 课程的学生姓名;
(6)求没有选修C2 课程的学生姓名;
(7)查询选修了全部课程的学生的姓名;
(8)求至少选修了学号为“S2”的学生所选修的全部课程的学生学号和姓名。
4.使用子句的查询操作,在数据库EDUC(shiyan6)中实现查询:
(1)求学生的总人数。
(2)求选修了课程的学生人数。
(3)求课程的课程号和选修该课程的人数。
(4)求选修课超过3 门课的学生学号
四、实验程序与程序运行结果
1实验准备 建立基本表,打开基本表,添加如下数据。
实验数据
2 查询操作实现参考
1 简单查询操作
此部分查询包括投影、选择条件表达、数据排序、使用临时表等。
对EDUC(shiyan6)数据库实现以下查询:
(1)求信电学院 (IS)的学生学号和姓名;
select sno,sname
from student
where sdept='IS'
(2)求选修了课程的学生学号;
select sno
from student_course
where cno IS NOT NULL
(3)求选修101 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;
select sno,score
from student_course
where cno='101'
ORDER BY score DESC,sno
(4)求选修课程101 且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;
select sno,score*0.75
from student_course
where cno='101' AND (score<=90 AND score>=80)
(5)求计算机系(CS)和数学系(MS)的姓张的学生的信息;代码如下:
SELECT *
FROM student
where (sdept='CS' OR sdept='MS' )AND sname LIKE '张%'
(6)求缺少了成绩的学生的学号和课程号。
SELECT sno,cno
FROM student_course
where score IS NULL
2连接查询操作
(1)查询每个学生的情况以及他(她)所选修的课程;
SELECT student.sno,sname,sex,sage,sdept
FROM student, student_course
where student_course.sno=student.sno
(2)求学生的学号、姓名、选修的课程名及成绩;
SELECT student.sno,sname,course.cname,student_course.score
FROM student,course,student_course
where student_course.sno=student.sno and student_course.cno= course.cno
(3)求选修102 课程且成绩在90 分以上的学生学号、姓名及成绩;
SELECT student.sno,sname,score
FROM student, student_course
WHERE cno='102' AND score>90 and student_course.sno=student.sno
(4)查询间接先行课。
SELECT first.cno,second.spno
FROM course first, course second
WHERE first.spno= second.cno and second.spno is not NULL
4.使用子查询操作,在数据库EDUC(shiyan6)中实现查询:
(1)求选修了高等数学的学生学号和姓名;代码如下:
SELECT student.sno,sname
from student,course,student_course
where student.sno=student_course.sno AND student_course.cno=course.cno
AND course.cname='高等数学'
(2)求101 课程的成绩高于张楠的学生学号和成绩;代码如下:
SELECT DISTINCT student_course.sno,score
from course,student_course,student
where student_course.cno = '101' AND score > SOME( SELECT score
from student_course
where student.sname='张楠')
(3)求其他系中比计算机系某一学生年龄小的学生信息(即求其它系中年龄小于计算机系年龄最大者的学生)
SELECT *
FROM student
where sage<some(select max(sage)
from student
where sdept='CS'
)
(4) 求选修了102 课程的学生姓名;
select sname
from student
where sno in (select sno from student_course where cno='102')
五、实验心得与体会
通过本次上机实验,我掌握简单表的数据查询、数据排序和数据连接查询的操作方法,以及数据查询中的分组、统计、计算和组合的操作方法,对数据库的基础操作加深理解,应用上面只是尚有不足的地方,今后需要更加努力。
学 院 管理学院
班 级 工业工程
姓 名 肖航
学 号 3009209022
20##年4月6日
实验一 C++简单程序设计
一、 实验目的
1. 熟悉用Visual C++6.0的开发环境。
2. 练习用Visual C++6.0编写简单的C++程序。
3. 练习基本数据类型的使用。
4. 练习表达式和运算符的应用。
5. 练习简单的输入/输出。
二、 程序源代码
U1t7(4)
#include <iostream.h>
int main(){
int a,b,c,d;
a=10000;
b=a/3600;
c=a/60%60;
d=a%60;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
return 0;
}
U1t7(5)
#include <iostream.h>
int main(){
int a,b,c,d;
cin>>a;
b=a%10;
c=a/10%10;
d=a/100;
cout<<"b="<<b<<endl;
cout<<"c="<<c<<endl;
cout<<"d="<<d<<endl;
return 0;
}
实验二 选择语句和循环语句的使用
一、 实验目的
1. 能够使用if语句和if/else语句来选择动作。
2. 能够使用switch选择语句的多重选择。
3. 能够使用while循环语句、do-while循环语句和fore循环语句完成重复的动作。
4. 能够使用break和continue程序控制语句。
5. 理解结构化程序设计
二、 程序源代码
U2t3
#include <iostream.h>
int main(){
int n,y;
cin>>n;
if(n>0)
y=n+1;
else
if(n<0)
y=n*n;
else
y=0;
cout<<y<<endl;
return 0;
}
U2t4
#include <iostream.h>
int main(){
float score;
cout<<"输入成绩(0-100)";
cin>>score;
if(score<0||score>100)
cout<<"输入错!\n";
else
if(score>=90)
cout<<"A\n";
else
if(score>=80)
cout<<"B\n";
else
if(score>=60)
cout<<"C\n";
else
cout<<"D\n";
return 0;
}
U2t5
#include <iostream.h>
void main(){
int x;
cout<<"输入一个字符:";
cin>>x;
if(x>=0&&x<=9)
cout<<"数字"<<endl;
else
if(x>='a'&&x<='z')
cout<<"小写字母"<<endl;
else
if(x>='A'&&x<='Z')
cout<<"大写字母"<<endl;
else
cout<<"其他字符"<<endl;
}
U2t6
#include <iostream.h>
int main(){
int n,i;
double x,u,pi;
n=i=1;
x=0.0;
u=1.0;
do{
u=i/n;
x=x+u;
i=i*(-1);
n=n+2;
}while(u<1.0e-6&&u>-1.0e-6);
pi=4*x;
cout<<"pi="<<pi<<endl;
return 0;
}
U2t8
#include <iostream.h>
void main(){
int x,y,z,m,n,sum;
char a,e,i,o,u,p;
x=y=z=m=n=0;
cout<<"输入一串字符:";
cin>>p;
switch(p){
case a:x++;
case e:y++;
case i:z++;
case o:m++;
case u:n++;
case #;break;
}
sum=x+y+z+m+n;
cout<<x<<y<<z<<m<<n<<endl;
cout<<"sum="<<sum<<endl;
}
U2t10
#include <iostream.h>
void main(){
for(int a=1,long p=1;a<=5;a++)
p*=a;
for(int b=1,long q=1;b<=6;b++)
q*=b;
for(int c=1,long r=1;c<=7;c++)
r*=c;
int d;
d=p+q+r;
cout<<d<<endl;
}
U2t11
#include <iostream.h>
void main(){
int count=1;
for(int i=3;count<=100;i++)
for(int m=2;m<i;m++)
if(i%m!=0){
cout<<i<<" ";
count++;
}
}
U2t12
#include <iostream.h>
void main(){
for(int x=0;x<=20;x++)
for(int y=0;y<=33;y++)
for(int z=0;z<=300;z++)
x+y+z=100&&5x+3y+z/3=100;
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
cout<<"z="<<z<<endl;
}
三、 个人小结
简述你认为最有收获的几道编程题的解题算法的设计思路。
以及任何你想说明的其他问题。
多注意循环语句的嵌套,分清外循环和内循环的次序,在编程过程中缕清思路。对于switch语句的运用,语法部分要记清楚,以免出现错误导致程序紊乱。
实验三 数组与指针的使用
一、 实验目的
1. 掌握如何定义数组,初始化数组以及引用数组中的单个元素。
2. 掌握字符串数组的组织和处理。
3. 能够定义和使用多维数组。
4. 掌握指针的使用方法。
5. 理解指针、数组和字符串之间的密切关系。
6. 练习动态内存分配实现动态数组,并体会指针在其中的作用
二、 程序源代码
U3t1
#include <iostream.h>
void main(){
int a[10],amax,amin,sum(0);
cout<<"输入10个整数";
for(int i=0;i<10;i++){
cin>>a[i];
sum+=a[i];
}
i=0;
amax=amin=a[0];
while(i++<9){
if(a[i]>amax) amax=a[i];
if(a[i]<amin) amin=a[i];
}
double average;
average=sum/10;
cout<<"最大值=:"<<amax<<endl;
cout<<"最小值=:"<<amin<<endl;
cout<<"算数平均值=:"<<average<<endl;
}
U3t3
#include <iostream.h>
void main(){
char str[100];
int m(0),na(0),ni(0);
cout<<"输入一个字符串:";
cin>>str;
while(str[m]!='\0'){
if(str[m]=='a') na++;
if(str[m]=='i') ni++;
m++;
}
cout<<"字符串:"<<str<<endl;
cout<<"a字符个数:"<<na<<endl;
cout<<"i字符个数:"<<ni<<endl;
}
U3t5
#include <iostream.h>
void main(){
int a[11]={2,4,5,8,12,14,16,18,20,30},x,*p;
cout<<"输入一个整数:";
cin>>x;
p=a; p=x;
int i,j,temp;
for(i=0;i<11;i++){
for(j=0;j<11-i-1;j++)
if(a[j]>a[j+1]){
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
cout<<"插入后数组:";
for(i=0;i<11;i++)
cout<<a[i]<<" ";
cout<<endl;
}
U3t6
#include <iostream.h>
void main(){
int array[5][3]={{1,9,6},{5,14,12},{0,56,12},{20,30,40},{50,11,12}},x,y,z,m,n,temp;
for(int j=0;j<3;j++){
x+=array[0][j];
y+=array[1][j];
z+=array[2][j];
m+=array[3][j];
n+=array[4][j];
}
int data[]={x,y,z,m,n};
for(int i=0;i<5;i++){
for(int a=0;a<5-1-i;a++)
if(data[a]>data[a+1]){
temp=data[a];
data[a]=data[a+1];
data[a+1]=temp;
}
}
cout<<"排序结果:";
cout<<"每行之和:"<<x<<" "<<y<<" "<<z<<" "<<m<<" "<<n<<" ";
for(i=0;i<5;i++)
cout<<data[i]<<" ";
cout<<endl;
}
三、 个人小结
注意数组和指针的运用区别以及指针的灵活性,对于求特定数值的方法要记牢并熟练掌握,为今后更深入的学习打下基础。
计算机软件技术基础实验报告姓名班级0801105学号日期20xx125班级0801105学号姓名第5周星期三910节成绩一实验目的…
山东建筑大学实验报告学院信电学院班级姓名课程计算机软件技术基础实验日期20xx年11月22日成绩实验八数据库应用系统开发一实验目的…
计算机软件基础实验报告实验一一元多项式的相加一实验的目的与要求1熟悉单链表的一些操作2掌握采用链表结构实现一元多项式的相加的算法二…
计算机软件技术基础实验报告专业年级学号学生姓名指导老师南华大学计算机学院编I实验要求1每次实验中有若干习题每个学生至少应该完成其中…
石家庄铁道大学实验报告课程名称计算机软件基础建筑与艺术学院系11021班试验者姓名学号实验日期年月日评分教师签名123456789…
大学计算机基础课程实验报告手册学院年级专业姓名学号2220xx319xx20xx任课教师上机地点以上由学生填写实验教师签字西南大学…
太原理工大学现代科技学院计算机软件技术基础课程实验报告专业班级学号姓名指导教师太原理工大学现代科技学院实验报告装订线实验名称顺序表…
上海建桥学院本科实验报告课程名称学号姓名专业班级计算机应用基础1222534单国原物流管理B121指导教师朱凯伦课内实验目录及成绩…
计算机软件基础实践报告题目C语言程序上机操作专业学生姓名准考证号指导教师20xx年5月1一单链表实验内容单链表的定义创建插入和删除…
软件开发技术基础实验报告姓名XXXXX学号XXXXXXXx班级XXXXXXX指导教师实验名称实验一线性表的操作班级学号姓名第周星期…
计算机软件技术基础实验报告实验一代码编写于VC60环境下includequotiostreamquotincludeltconio…