实验报告一(指针)

实验报告一(指针)
实验报告一(指针)

实验报告一(指针)

指针实验一

指向变量得指针变量编程一.实验目得与要求 1、理解指针得概念。

2、掌握指针变量得定义与使用。

3、掌握指针变量作为函数参数得使用方法。

二二. 实验题目1、用指针变量编程,求数组中得最大元素与最小元素. #include "stdio、h”#define N 10 void

main() {

;)n tni,2tp* tni,1tp* tni,][rra tni(nimxamdiov?int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;

;b&=2p ;a&=1p?

;)N,2p,1p,yarra(nimxam? printf("max=%d,min=%d\n",a,b); }

void maxmin(int arr[],int *pt1,int *pt2,int n)

int i; *

;]0[rra=2tp*=1tp? for(i=1;i

{

;]i[rra=1tp* )1tp*>]i[rra(fi?

if(arr[i]〈*pt2) *pt2=arr[i];

}?}实验二

字符指针编程一一. 实验目得与要求 1、理解字符指针得概念。2、掌握字符指针得定义与使用。

二二. 实验题目2、用字符指针编程求出字符串中指定字符得个数。

例如:假设字符串为:“abcdaghckpamn”,指定字符为…a?,则结果为 3. 要求:从 main 函数输入字符串与指定字符,输出结果。

#include #define MAXLEN 20 int CountLetter(char *str, char ch)

{

;0 = emit tni? while(*str)

)hc == ++rts*(fi?

? time ++ ;

return time;} int main() {

; ]NELXAM[rts rahc?char ch;

; )"n\:gnirts a tupni esaelP"(ftnirp? scanf

(”%s”,str)

getchar()

; //get enter

printf("Input the a letter to count:")

scanf("%c", &ch)

; ))hc ,rts(retteLtnuoC ,"n\d%"(ftnirp?} 实验三

指向一维数组得指针变量编程一.实验目得与要求1、理解指针与数组之间得关系。

2、掌握用指针变量引用数组元素得方法。

3、掌握用指向一维数组得指针变量编程。

二二. 实验题目 3、已知一个整型数组,编程将其数组元素得值改为当前元素与相邻得下一个元素得乘积,数组得最后一个元素改为它与第 0 个元素得乘积,要求用指针变量实现。

例如:已知a[5]={1, 2, 3, 4, 5};

计算后 a[5]={2, 6, 12, 20, 10}。

#define N

5

#include”stdio、h”

void f(int *p,int n)

{

int i;

)++i;n〈i;0=i(rof?

*(p+i)=(*(p+i))*(*(p+(i+1)%n)); } int ma

in()

;i,]N[a tni?)++i;N〈i;0=i( rof?

;)]i[a&,”d%"(fnacs?

;)N,a(f? for (int j=0;j

;)]j[a,"

d%"(ftnirp??;1 nruter?} 实验四

指向二维数组得指针变量编程一一. 实验目得与要求 1、理解二维数组得地址表示方法。

2、掌握用指针变量表示二维数组得元素与元素得地址。

3、掌握用指向二维数组得指针变量得使用。

二。实验题目 4、用一个二维数组 score[4][3]来存放 4 个学生 3 门课得成绩,编程实现:

(1) 输入学生成绩;

(2)

求出每个学生得平均分,将其保存在数组 a[4]中;

(3) 求出每门课程得平均成绩,将其保存在数组 b[3]中; (4)输出数组 a、b 中成绩。

要求:用指向二维数组元素得指针变量实现。

#include "stdio、h" void

inputScore(float (*p)[3])//输入学生成绩{

int i,j;

;)"n\生学名4共,绩成程课门 3 生学个每,绩成生学入输请"(f tnirp?

for (i = 0;i<4; i++)

{

printf(”请输入学生%d 得3门课得成绩\n”,i+1);

)++j;3<j;0 = j(rof??

? scanf(”%f”,p[i]+j);

} } voidavstu(float *psco,float *pa)//求每个学生得平均成绩{

;j,i tni?;eva taolf?

for (i=0; i〈4;i++)

{

? ave=0;

for(j= 0;j〈3; j++)

ave+=(*(psco+3*i+j));//累计每门课得成绩(*

?;3/eva=)i+ap?

}

}?} voidavsco(float(*psco)[3],float *pb)//求每门课得平均成绩 {

;j,i tni? ;eva taolf?

for (j= 0; j<3;j++)

// j 表示列

ave=0;

for(i= 0;i<4;i++)

// i 表示行

{

ave+=(*(*(psco+i)+j));//累计每个学生得各科成绩

?(*

;4/eva=)i+bp?

}

} } void

outputScore(float *pa,float *pb)//输出a,b 中成绩{int i;

;)”n\:为绩成均平得生学个每”(ftnirp?

for (i = 0;i<4; i++,pa++)

;)ap*,"f2、6%"(ftnirp??

printf(”\n");

printf("每门课得平均成绩为:\n");

)++bp,++i ;3

? printf("%6、2f",*pb);

printf("\n”); } void main()

float score[4][3],a[4],b[3];

;)erocs(erocStupni?avstu(*score,a);//或avstu(&score[0][0],a);或;avstu(score[0],a);

avsco(score,b);//行指针

;)b,a(erocStuptuo?}

C语言实验报告《指针》.doc

C语言实验报告《指针》 学号:__________ 姓名:__________ 班级:__________ 日期:__________ 指导教师:__________ 成绩:__________ 实验五指针 一、实验目的 1、掌握指针的概念、会定义和使用指针变量 2、掌握指向数组的指针变量 3、掌握字符串指针的使用 二、实验内容2、写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。(习题10.6)#include #include long fun(char *p) { 填写程序 } void main() { char s[6]; long n; printf( enter a string:n gets(s); n=fun(s); printf( %ldn ,n); }

一、三、实验步骤与过程 四、程序调试记录 C语言实验报告《综合实验》 学号:__________ 姓名:__________ 班级:__________ 日期:__________ 指导教师:__________ 成绩:__________ 实验六综合实验 一、实验目的 1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。 2、掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。 3、掌握C程序的运行、调试方法等。 二、实验内容 编写一个学生信息排序程序。要求:

1、程序运行时可输入n个学生的信息和成绩(n预先定义)。 2、学生信息包括:学号、英文姓名、年龄;学生成绩包括:语文、数学、计算机。 3、给出一个排序选择列表,能够按照上述所列信息(学号、姓名、年龄、语文、数学、计算机)中的至少一个字段进行排序,并显示其结果。 1、使用函数方法定义各个模块。 三、实验步骤与过程 物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板 四、程序调试记录

数据库实验报告

合肥工业大学实验报告一 课程名称:数据库系统原理及应用学号: 20095382 姓名:魏泽民 专业班级:电子商务09-1班 指导教师:马华伟 二零一一年十月

一、实验目的: (1)熟练掌握数据更新语句,灵活地操作插入数据、修改数据和删除数据; (2)熟练掌握关系数据库中的完整性概念的应用; (3)了解数据录入的方法和过程。 (4)掌握单表查询的基本方法; (5)掌握连接查询的基本方法; (6)熟练掌握以下练习,并进行以下各类查询: ①选择表中的若干列、查询全部列、查询经过计算的值; ②选择表中的若干元组,即消除取值重复的行与查询满足指定条件的元组(包 括:比较大小、确定范围、确定集合、字符匹配、涉及空值和多种条件查询); ③对查询结果排序; ④使用集函数; ⑤对查询结果分组 (7)熟练掌握以下练习,并进行下列各类连接查询: ①等值与非等值连接查询; ②自身连接; ③外连接; ④复合条件连接; (8)掌握嵌套查询的基本方法; (9)掌握集合查询的基本方法; (10)熟练掌握查询视图操作 (11)熟练掌握更新视图操作 (12)熟练关系的完整性概念,领会视图的用途 (13)练习以下各类查询: ①带有IN谓词的子查询; ②带有比较运算符的子查询; ③带有ANY或ALL谓词的子查询; ④带有EXISTS谓词的子查询; ⑤视图查询与更新操作; 二、实验要求: (1)为了便于程序正确性测试,需要对自己建立起来的数据表录入一些模拟数据(模拟数据是指符合数据格式要求的假数据),然后按照教材中结构化查询语言SQL章节例题和习题自己组织SQL语句:

(2)设计的SQL程序应该涵盖数据更新操作的全部内容不,包括插入、修改、删除; (3)综合运用SQL语句实现数据插入、修改、删除等操作的综合运用能力。 (4)按照SQL语言编程要求,实现各类查询和检索操作; (5)利用后台的SQL平台环境,编程验证数据库的控制保护功能。 (6)将查询视图命令等价改写为对数据表的查询操作命令,利用SQL编程设计完成并进行效率分析。 三、实验内容: (1)根据以下给定的数据表信息分别对student, course, score, teacher, teching 表进行数据插入和修改,以完成给定的数据录入,同时要求输入班级同学名录模拟客观真实情况,给student、score表添加30条以上记录,以便以后查询应用方便。 Student表:

c语言实验报告6 指针

实验6 指针1.实验目的和要求 (1)掌握指针的概念、指针变量定义格式和引用。 (2)掌握指针的运算方法。 (3)掌握数组的指针和指向数组的指针变量。 (4)掌握指针与函数的关系。 (5)能正确使用字符串的指针和指向字符串的指针变量。(6)了解指向函数的指针。 (7)了解指向指针变量的指针。 2.实验内容:实验指导书中的实验九。 3.实验步骤 9.1 调试程序,找出程序的错误。 改正后的程序代码(贴图): 运行结果(帖图): 9.2 运行程序:

运行结果:; 9.3 修改程序错误,并运行。 改正后程序代码: 运行结果(帖图): 9.4. 程序填空:

运行结果(请帖图):9.5. 程序填空:

程序填空: #include main() { int a[5][5]={0},*p[5],i,j; for(i=0; i<5; i++) p[i]= &a[i][0] ; for(i=0; i<5; i++) { *(p[i]+ i )=1; *(p[i]+5- (i+1) )=1; } for(i=0; i<5; i++) { for(j=0; j<5; j++) printf("%2d", p[i][j]); Printf("\n") ; } } 运行结果(请帖图):

9.6 编程(选作) #include main() { int *p,a[20],i,k,m,n; p=a; printf("请输入人数n:"); scanf("%d",&n); for(i=0;i

数据库实验报告(6)-6100410179-孟红波

数据库系统实验报告 ----(6)-创建和执行存储过程学生姓名:孟红波学号:6100410179 专业班级:计算机(卓越)101班实验类型:■验证□综合□设计□创新实验日期:2012-12-3 实验成绩: 一、实验目的 1、掌握存储过程的创建 2、掌握存储过程的执行 3、掌握存储过程的删除 二、实验内容 1、创建一个存储过程proc_hub,用来查看“hub”商品的所有订货情况,包括订单号,订 货客户的姓名及订货数量等 2、执行存储过程proc_ hub 3、创建一个带参数的存储过程proc_ goods,参数为商品名称,通过该存储过程可查看任 何指定商品订单信息 4、带参数执行该存储过程proc_ goods 5、删除所有新建的存储过程 三、实验环境 1、个人计算机或局域网。 2、Win7操作系统。 3、SQL Server 2008数据库管理系统。 四、实验步骤及实验结果 1、利用企业管理器或查询分析器或查询分析器创建proc_ hub存储过程 create procedure proc_hub as begin select goods.goodsname as商品名称,orderid as订单编号,customername as客户名称,quantity as订单数量 from customer,goods,order1 where customer.customerid=order1.customerid and order1.goodsid=goods.goodsid and goods.goodsname='hub' end

2、使用EXECUTE语句执行存储过程并观察结果 3、利用企业管理器或查询分析器创建proc_goods存储过程 create procedure proc_goods(@goodsname varchar(20)) as begin select@goodsname as商品名,orderid as订单编号,customername as客户名称,quantity as 订单数量 from customer,goods,order1 where customer.customerid=order1.customerid and order1.goodsid=goods.goodsid and goodsname=@goodsname end 4、使用EXECUTE语句带参数执行该参数执行该存储过程并观察结果

C语言指针实验报告

C语言程序设计实验报告 1实验目的 (1)掌握指针的概念,会定义和使用指针变量; (2)能正确使用变量的指针和指向变量的指针变量; (3)能正确使用数组的指针和指向数组的指针变量; (4)能正确使用字符串的指针和指向字符串的指针变量; 2实验内容 将一个任意整数插入到已排序的整形数组中,插入后,数组中的数仍然保持有序;要求: (1)整形数组直接由赋值的方式初始化,要插入的整数有scanf()函数数入;(2)算法实现过程采用指针进行处理; (3)输入原始数据以及插入整数后的数据,并加以说明;

3算法描述流程图

4源程序 #include main() { int a[100],m,i,*p,n,w; printf("请输入要输入的数组的元素个数:\n"); scanf("%d",&n); printf("请输入已排好序的数组:\n"); for(i=0;i=w;i--) { a[i+1]=a[i]; } a[i+1]=m; for(i=0;i<=n;i++) { printf("%-4d",a[i]); } printf("\n"); } 5测试数据 “1,3,5,7,9,11,13,15,17,19······10” 6运行结果 7出现问题及解决方法 在编写过程中,

for(i=n-1;a[i]>=w;i--) { a[i+1]=a[i]; } a[i+1]=m; 这一步没有注意a[i++]=m和a[i+1]=m中i++和i+1不同,a[i++]=m是先将的值赋给a[i],然后在执行自增;而在实验过程中忽略了这一点,造成了不必要的麻烦; 8实验心得 通过这次指针实验掌握了指针的概念,会定义和使用指针变量,并且能利用指针来简单化一些问题,给以后的编程带来了很大的便利;

大数据库实验6触发器实验报告材料

淮海工学院计算机工程学院实验报告书 课程名:《数据库原理及应用》 题目:存储过程和触发器 班级:软件132 学号: 2013122907 姓名:孙莹莹 评语: 成绩:指导教师: 批阅时间:年月日

一.目的与要求 1.掌握存储过程的创建方法; 2.掌握存储过程的执行、修改和删除等操作; 3.掌握触发器的创建方法; 4.掌握触发器的使用、修改和删除等相关内容 二.实验内容 基于前面建立的factory数据库,使用T-SQL语句完成如下各小题的功能: 1.创建一个为worker表添加职工记录的存储过程Addworker; 2.创建一个存储过程Delworker删除worker表中指定职工号的记录。 3.显示存储过程Delworker; 4.删除存储过程Addworker和Delworker. 三.实验步骤 1 . (1)建立存储过程 USE factory GO CREATE PROCEDURE Addworker @no int=NULL, @name char(10)=NULL, @sex char(2)=NULL, @birthday datetime=NULL, @na char(2)=NULL, @wtime datetime=NULL, @depno int=NULL AS IF @no IS NULL OR @name IS NULL OR @sex IS NULL OR @birthday IS NULL OR @depno IS NULL BEGIN PRINT '请重新输入该职工信息!' PRINT '你必须提供职工号、姓名、性别、出生日期、部门号' RETURN END BEGIN TRANSACTION INSERT INTO worker VALUES(@no,@name,@sex,@birthday,@na,@wtime,@depno) IF @@error<>0 BEGIN ROLLBACK TRAN RETURN END

C语言指针实验报告

C语言程序设计实验报告 1实验目得 (1)掌握指针得概念,会定义与使用指针变量; (2)能正确使用变量得指针与指向变量得指针变量; (3)能正确使用数组得指针与指向数组得指针变量; (4)能正确使用字符串得指针与指向字符串得指针变量; 2实验内容 将一个任意整数插入到已排序得整形数组中,插入后,数组中得数仍然保持有序; 要求: (1)整形数组直接由赋值得方式初始化,要插入得整数有scanf()函数数入; (2)算法实现过程采用指针进行处理; (3)输入原始数据以及插入整数后得数据,并加以说明;

3算法描述流程图

4源程序 #include main() { int a[100],m,i,*p,n,w; printf("请输入要输入得数组得元素个数:\n"); scanf("%d",&n); printf("请输入已排好序得数组:\n"); for(i=0;i=w;i--) { a[i+1]=a[i]; } a[i+1]=m; for(i=0;i<=n;i++) { printf("%-4d",a[i]); } printf("\n"); } 5测试数据 “1,3,5,7,9,11,13,15,17,19······10” 6运行结果 7出现问题及解决方法 在编写过程中,

for(i=n-1;a[i]>=w;i--) { a[i+1]=a[i]; } a[i+1]=m; 这一步没有注意a[i++]=m与a[i+1]=m中i++与i+1不同,a[i++]=m就是先将得值赋给a[i],然后在执行自增;而在实验过程中忽略了这一点,造成了不必要得麻烦; 8实验心得 通过这次指针实验掌握了指针得概念,会定义与使用指针变量,并且能利用指针来简单化一些问题,给以后得编程带来了很大得便利;

数据库实验报告六_存储过程

HUNAN UNIVERSITY 数据库 实验报告 学生姓名 学生学号 专业班级 指导老师 2017 年5月24日

SELECT COUNT(*)INTO more90 FROM sc WHERE cno = countcno AND grade >= 90; /*将结果存入新表sumScore中*/ create table sumScore( scorestage char(10), number smallint); insert into sumScore values('x<60', less60); insert into sumScore values('60<=x<70', b60a70); insert into sumScore values('70<=x<80', b70a80); insert into sumScore values('80<=x<90', b80a90); insert into sumScore values('x>=90', more90); END$$ call sumScore(); /*调用上述存储过程*/ 首先创建存储过程,然后再调用存储过程。结果如下: (上述结果图截自Navicat软件) 可以看到,在stuinfo中新建了一个基本表sumscore,表中内容是数学课程成绩的各分数段的人数。 2、统计任意一门课的平均成绩。 代码如下: DELIMITER $$ CREATE PROCEDURE `scoreAvg`() BEGIN declare curname char(40) default null; /*临时存放课程名*/ declare curcno char(4) default null; /*临时存放课程号*/ declare curavg float; /*临时存放平均成绩*/ declare mycursor cursor for /*定义游标*/ select cno, cname from course;

SQL数据库实验报告 实验二

实验2 SQL Server数据库的管理 1.实验目的 (1)了解SQL Server 数据库的逻辑结构和物理结构的特点。 (2)掌握使用SQL Server管理平台对数据库进行管理的方法。 (3)掌握使用Transact-SQL语句对数据库进行管理的方法。 2.实验内容及步骤 (1)在SQL Server管理平台中创建数据库。 ①运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。 ②右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。在新建数据库对话框的数据库名称文本框中输入学生管理数据库名studentsdb,单击“确定”按钮。 (2)选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。 (3)打开studentsdb数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据文件的“分配的空间”大小为2MB。指定“最大文件大小”为5MB。修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。 (4)单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL 语句CREATE DA TABASE创建studb数据库。然后通过系统存储过程sp_helpdb查看系统中的数据库信息。 (5)在查询设计器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。 (6)在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。 (7)使用SQL Server管理平台将studb数据库的名称更改为student_db。 (8)使用Transact-SQL语句DROP DATABASE删除student_db数据库。 3.实验思考 (1)数据库中的日志文件是否属于某个文件组? (2)数据库中的主数据文件一定属于主文件组吗? (3)数据文件和日志文件可以在同一个文件组吗?为什么? (4)删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除数据库? (5)能够删除系统数据库吗?

数据库实验报告 (6)

一实验题目 1.存储过程的定义和使用 2.触发器的创建与使用 二实验目的 1.掌握存储过程的定义、执行和调用方法。 2.掌握触发器的创建与使用。 三实验内容 1.存储过程的定义和使用 (1)创建存储过程查找姓李的学生的选修课成绩信息。 (2)创建存储过程,统计每个学生的选修课的总成绩,显示成绩最好的前3名学生成绩。 (3)创建存储过程,查找某门课的最高分(带输入参数的存储过程)。 (4)创建存储过程,统计某个同学的平均分并返回统计结果。(带输入和输出参数的存储过程) (5)创建存储过程,统计某门课选修的人数,将人数返回。(带返回值的存储过程) (6)创建存储过程,统计选修课程最多的学生的基本信息。(存储过程的嵌套) 2.触发器的创建与使用 (1)定义一个BEFORE行级触发器credit_TRIGER,当为C表插入新的课程信息时,若学分大于5 分,自动修改为5分。 (2)定义一个AFTER行级触发器,当SC表的成绩发生变动时,就自动在成绩变化表sc_log中增 加一条新的纪录,该新纪录包括:操作者名称、操作日期、操作类型。 (3)建立一个DELETE触发器,针对于SC表,每次只能删除一条信息。 (4)建立一个UPDATE的触发器,不允许用户更改学生学号,若更改学号,给出提示信息:学号 不允许更改。 (5)执行相应的SQL语句,触发上述定义的触发器。 (6)删除触发器credit_TRIGER。 四实验步骤 1.存储过程的定义和使用 存储过程格式: CREATE PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ] 创建存储过程查找姓李的学生的选修课成绩信息。 (1)创建存储过程,统计每个学生的选修课的总成绩,显示成绩最好的前3名学生成绩。 SC表基本情况如图表1所示:

C语言程序设计—指针—实验报告

实验报告 专业软件工程班级X 班学号_ _ 姓名 实验日期:201X年X月X日报告退发(订正、重做) 课程C程序设计实验实验名称指针 一、实验目的 二、实验环境(描述实验的软件、硬件环境) ①软件环境:windows xp/win7等操作系统,Microsoft Visual C++ 6.0编译器; ②硬件环境:PC机一台 三、实验内容、步骤和结果分析 题目一:输入3个整数,按由小到大的顺序输出 要求: 使用指针方法实现; #include void function(int *a, int *b) { int temp; if (*a<*b) { temp = *a; *a = *b; *b = temp; } } int main() { int a, b, c; int *p1, *p2, *p3; p1 = &a; p2 = &b; p3 = &c; scanf("%d%d%d", &a, &b, &c); function(p1, p2); function(p1, p3); function(p2, p3); printf("%d %d %d\n", *p3, *p2, *p1); return 0;

题目二:将长度为10的整型数组arr中的元素按照从小到大排列并输出 要求: 使用指针方法实现; #include int main() { struct METRIC { float m; float cm; } m1, m2; struct BRITISH{ float foot; float inches; } b1, b2; printf("Enter the info of m1(米,厘米):"); scanf("%f%f", &m1.m, &m1.cm); printf("Enter the info of m2(米,厘米):"); scanf("%f%f", &m2.m, &m2.cm); printf("\nEnter the info of m2(英尺,英寸):"); scanf("%f%f", &b1.foot, &b1.inches); printf("Enter the info of m2(英尺,英寸):"); scanf("%f%f", &b2.foot, &b2.inches); printf("\nSum of m1 and m2 is:%.2f(厘米)\n", (m1.m + m2.m) * 100 + m1.cm + m2.cm); printf("Sum of b1 and b2 is:%.2f(厘米)\n\n", (b1.inches + b2.inches)*30.48 + (b1.foot + b2.foot)*2.54); return 0;

数据库实验报告4-5

实验4《存储过程》 实验学时: 4 每组人数: 1 实验类型: 2 (1:基础性2:综合性3:设计性4:研究性) 实验要求: 1 (1:必修2:选修3:其它) 实验类别: 3 (1:基础2:专业基础3:专业4:其它) 一、实验目的 理解存储过程的概念、建立和调用方法。进一步熟悉SQL语句对数据库进行完整性控制的方法。 二、实验内容 1、建立一个新的销售数据库,包含五张表,每张表至少需要10条记录。(1)/*员工人事表employee */

(2)/*客户表customer */ (3)/*销售主表sales */ (4)/*销货明细表sale_item */

(5)/*产品名称表product */ (1)为每张表建立主键约束。 (2)通过拖放操作加入外键。 (3)在表employee加入CHECK约束:输入的员工编号必须以E开头的5位数编号,性别只能为M/F。 (4)为销售主表sales中的发票编号字段建立UNIQUE约束。 3、利用存储过程,给employee表添加一条业务部门员工的信息。 4、利用存储过程从employee、sales、customer表的连接中返回所有业务员的姓名、客户姓名、销售金额。 5、利用存储过程查找“刘德华”的员工编号、订单编号、销售金额。 6、利用存储过程查找姓“李”并且职称为“职员”的员工的员工编号、订单编号、销售金额。 7、利用存储过程计算出订单编号为10003的订单的销售金额。 三、实验要求: 1.熟悉SQL SERVER 工作环境; 2.建立销售数据库

3.复习有关约束与存储过程的SQL语言命令。 4.备份数据库,作为实验5 的操作数据库。 四、实验步骤 1.创建销售数据库,并建表、修改,要求将自己的信息包含其中; 2、利用存储过程,给employee表添加一条业务部门员工的信息。 3、利用存储过程从employee、sales、customer表的连接中返回所有业务员的姓名、客户姓名、销售金额。 4、利用存储过程查找“刘德华”的员工编号、订单编号、销售金额。 5、利用存储过程查找姓“李”并且职称为“职员”的员工的员工编号、订单编号、销售金。 五、实验结果 1、建立一个新的销售数据库,包含五张表,每张表至少需要10条记录。(1)/*员工人事表employee */

c语言指针实验报告

C语言实习报告 题目:指针及其应用 系别: 专业: 姓名: 学号: 日期:

一实验名称:指针及其应用 二实验目的: (1)掌握变量的指针及其基本用法。 (2)掌握一维数组的指针及其基本用法。 (3)掌握指针变量作为函数的参数时,参数的传递过程及其用法。 三实验内容: (1)运行以下程序,并从中了解变量的指针和指针变量的概念。 (2)运行以下程序,观察&a[0]、&a[i]和p的变化,然后回答以下问题: 1.程序的功能是什么? 2.在开始进入循环体之前,p指向谁? 3.循环每增加一次,p的值(地址)增加多少?它指向谁? 4.退出循环后,p指向谁? 5.你是否初步掌握了通过指针变量引用数组元素的方法? (3)先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用数组元素的各种方法。

(4)编写函数,将n个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成: ①输入10个数; ②调用此函数进行重排; ③输出重排后的结果。 四分析与讨论: (1)指针的定义方法,指针和变量的关系。 定义方法: 数据类型 *指针变量名; 如定义一个指向int型变量的指针—— int *p;

则我们可以继续写如下代码—— int a = 4; p = &a; printf("%d", *p); 在这里,我们定义了一个变量a,我们把它理解为内存空间连续的4个字节(int型占用4字节),则这4个字节的空间保存着一个数4。&是取地址符号,即把变量a的地址(即这4个字节的首地址)赋给指针p (记住指针p的类型和变量a的类型要保持一致,否则的话,要进行类型转换)。这样子,指针p就保存着变量a的地址。我们如果把指针p当做内存空间里面另外一个连续的4个字节,那么这4个字节保存的数就是变量a的地址。printf("%d",*p)和printf("%d",a)的结果是一样的。这里的*是取变量符号(与&刚好作用相反,通过变量的地址找到变量),与定义时int *p的*号作用不同(定义时的*表示该变量是个 指针变量,而非是取它指向的变量)。 (2)数组和指针的关系。 指针与数组是C语言中很重要的两个概念,它们之间有着密切的关系,利用这种关系,可以增强处理数组的灵活性,加快运行速度,本文着重讨论指针与数组之间的联系及在编程中的应用。 1.指针与数组的关系 当一个指针变量被初始化成数组名时,就说该指针变量指向了数组。如: char str[20], *ptr; ptr=str; ptr被置为数组str的第一个元素的地址,因为数组名就是该数组的首地址,也是数组第一个元素的地址。此时可以认为指针ptr就是数组str(反之不成立),这样原来对数组的处理都可以用指针来实现。如对数组元素的访问,既可以用下标变量访问,也可以用指针访问。 2.指向数组元素的指针 若有如下定义: int a[10], *pa; pa=a; 则p=&a[0]是将数组第1个元素的地址赋给了指针变量p。 实际上,C语言中数组名就是数组的首地址,所以第一个元素的地址可以用两种方法获得:p=&a[0]或p=a。 这两种方法在形式上相像,其区别在于:pa是指针变量,a是数组名。值得注意的是:pa是一个可以变化的指针变量,而a是一个常数。因为数组一经被说明,数组的地址也就是固定的,因此a是不能变化的,不允许使用a++、++a或语句a+=10,而pa++、++pa、pa+=10则是正确的。由此可见,此时指针与数组融为一体。 3.指针与一维数组 理解指针与一维数组的关系,首先要了解在编译系统中,一维数组的存储组织形式和对数组元素的访问方法。 一维数组是一个线形表,它被存放在一片连续的内存单元中。C语言对数组的访问是通过数组名(数组的起始地址)加上相对于起始地址的相对量(由下标变量给出),得到要访问的数组元素的单元地址,然后再对计算出的单元地址的内容进行访问。通常把数据类型所占单元的字节个数称为扩大因子。 实际上编译系统将数组元素的形式a[i]转换成*(a+i),然后才进行运算。对于一般数组元素的形式:<数组名>[<下标表达式>],编译程序将其转换成:*(<数组名>+<下标表达式>),其中下标表达式为:下标表达式*扩大因子。整个式子计算结果是一个内存地址,最后的结果为:*<地址>=<地址所对应单元的地址的内容>。由此可见,C语言对数组的处理,实际上是转换成指针地址的运算。 数组与指针暗中结合在一起。因此,任何能由下标完成的操作,都可以用指针来实现,一个不带下标的数组名就是一个指向该数组的指针。

C语言实验六实验报告——指针

一、实验项目名称 指针 二、实验目的 1.掌握指针的基本概念和基本用法。包括:变量的地址和变量的值,指针变量的说明、指针变量的初始化、指针的内容与定义格式、指针的基本运算等; 2.掌握数组与指针的关系并能够利用指针解决数组的相关问题; 3.掌握字符串与指针的关系并能够利用指针处理字符串的问题; 4.掌握指针与函数的关系并能够利用指针处理函数问题; 5.了解指向指针的指针的概念及其使用方法; 6.能够使用指针进行程序设计。 三、实验内容 有关指针的程序设计 1.编程实现:任意输入的10个数,求其平均值。 要求: (1)10个数采用scanf语句读入。 (2)利用指针实现对这10个数的访问。 (3)要求平均值的精度为小数后面2位。 2.编程实现:将一个任意整数插入到一个已排序的整数数组中,插入后数组中的数仍然保持有序。 要求: (1)整数数组由初始化方式输入。任意整数由scanf函数输入; (2)实现过程采用指针处理; (3)输出原始数组数据以及插入数据后的数组数据并加以相应说明。 3.编写函数newcopy(char *new,char *old),它的功能是删除old所指向的字符串中的小写字母,并将所得到的新串存入new中。 要求: (1)在主函数中以初始化方式输入一个字符串; (2)调用newcopy()函数; (3)在主函数中输出处理后的结果。 4.编程实现:输入三个整数,按由大到小的顺序输出。

要求: (1)通过scanf函数输入三个数据并存入三个变量中; (2)利用指针实现从大到小输出; (3)修改程序,将三个整型数据改为字符型数据,输入三个字符,按从大到小数顺序输出; (4)修改程序,将三个字符型数据改为字符串数据,输入三个字符串,按从小到大顺序输出; (5)体会指针对不同数据处理的特点。 四、实验步骤及结果 一、 #include <> void main() { int a[10],n,sum=0; float aver;/* 定义平均数为浮点型*/ int *p=a;/*初始化*/ printf("Please input 10 numbers:\n"); for (n=0;n<10;++n) scanf("%d",&a[n]);/*输入十个数*/ for (n=0;n<10;++n) sum=sum+*(p+n);/*使用指针访问数据*/ aver=(float)sum/n; printf("Average is %.2f",aver);/*精确到小数点后两位*/ } 二、 #include <> void arr(int *a,int n);/*定义排序函数*/ void insert(int *a,int num);/*插入并排序函数*/ int n=10;/*定义数据个数,可修改*/ void main()

《数据库原理》实验报告6 SQL语言综合练习

《数据库原理》实验报告 专业: 班级: 学号: 姓名:

SQL语言综合练习 一、实验目的: SQL语言是数据库语言领域中的主流语言,对SQL语言的掌握程度直接关系到数据库学习的好坏。 本次实验通过一个SQL语言的综合练习,对前面的学习的内容进行复习,并加以巩固,希望大家对SQL语言有一个较好的掌握。 二、实验内容 1.启动数据库服务软件SQL Server 2000的查询分析器,用Create Table建表;2.用Insert Into向表中插入记录; 3.用Create Index在表上建立索引; 4.用Create View建立视图; 5.用SELECT语句进行各种查询操作。 三、实验任务 1.打开数据库SQL Server 2000的查询分析器,用Create Table建表Exam,表结构如下图所示: 字段名类型长度含义 Id(主码)varchar 17 学生编号 name varchar 10 姓名 sex varchar 2 性别 age integer 年龄 score decimal 6 总成绩 memo varchar 100 备注 2.用Insert Into语句向Exam表中添加6条记录,记录内容如下图所示: A0001 赵一男20 580.00 学习委员 B0002 钱二女19 540.00 班长

C0003 孙三男21 555.50 优秀共青团员 D0004 赵四男22 480.00 暂无相关信息 E0005 周五女20 495.50 暂无相关信息 F0006 吴六男19 435.00 暂无相关信息 3.对表Exam的Score字段建立一个名为IndexScore的升序索引。 4.查询所有姓赵的学生的基本信息。 5.建立总成绩超过500分的学生视图ViewExam,该视图有两个字段ViewExam1和ViewExam2分别对应表Exam的Name和score字段。 6. 查询总成绩超过500分的学生姓名和成绩。 四.实验结果 1. create table Exam (ID varchar(17) primary key, name varchar(10), sex varchar(2), age integer, score decimal(6), memo varchar(100) ); 2. insert into Exam values('A0001','赵一','男',20,580.00,'学习委员'); insert into Exam

数据库原理实验报告(6)(含答案)

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验六分组统计查询和集合查询设计 所在院(系):数学与信息技术学院 班级: 学号: 姓名: 1.实验目的

(1)熟练掌握数据查询中分组条件表达、选择组条件的表达方法。 (2)熟练使用统计函数和分组函数。 (3)熟练各类计算和分组计算的查询操作方法。 (4)掌握集合查询的实现方法。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下查询操作: a)查询各个院系学生的总人数,并按人数进行降序排列。 b)查询各系各门课程的平均成绩。 c)查询每个院系各种职称的教师人数,输出院系、职称、人数。 d)查询数学与信息技术学院学生的平均年龄。 e)查询07294003课程的最高分和最低分。 f)查询选修人数超过30人,且课程号以07开头的课程号、课程名称和选 修人数。按选修人数降序排列。 g)查询选修了5门以上课程的学生学号。 h)查询年龄大于女同学平均年龄的男同学姓名和年龄。 i)查询SC表中最高分与最低分之差大于20分的课程号。 j)查询平均成绩大于75分的课程的课程号、课程名、平均分。 k)查询期末考试平均分排名前10%的学生,输出学号和平均分。 l)查询教师人数最多的前3个院系,输出院系和教师人数。 m)查询全校老师和学生的姓名,输出姓名和类别两列(类别中显示教师或学生),结果按类别排序。 n)用集合查询实现同时讲授过07294003和07295007两门课的老师的工号。 o)用集合查询实现教师表中职称不是教授的老师的详情。 (2)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 将调试成功的T-SQL语句写在下方(标明题号)。 a)查询各个院系学生的总人数,并按人数进行降序排列。 select DEPT_ID, COUNT(*) 总人数 from dbo.Student group by DEPT_ID order by DEPT_ID desc b)查询各系各门课程的平均成绩。 select DEPT_ID, AVG(EXAM_Grade) as '平均成绩' from dbo.SC,dbo.Student

C语言实验报告

实验一进制转换一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。

五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制 的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n");

} else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c;

指针(C语言实验报告)

仲恺农业工程学院实验报告纸 信息学院(院、系)专业班C语言程序设计课 实验目的: (1)通过实验进一步掌握指针的概念,会定义和使用指针变量。 (2)能正确使用指针数组和指向数组的指针变量。 (3)能正确使用字符指针变量。 实验内容与总结: 编程练习-要求用指针方法处理。 1、写一个函数,求字符串的长度。在main函数中输入字符串,并输出其长度。 程序如下: #include void main() { int n; char str[100],*p; printf("请输入字符串:\n"); scanf("%s",&str); p=str; for(n=0;*p!='\0';n++,p++); printf("字符串长度为:%d\n",n); } (1)程序编制要点: ①输入字符串; ②使用指针。 (2)该题目涉及的知识点和难点: ①字符串; ②定义和使用指针变量; ③for语句的使用。 2、编程判断输入的一个字符串是否是回文。所谓回文,即顺读和倒读都是一样的。如eye,level,abba 等。 程序如下:

#include #include void main() { int i=0,j; char str[100],*p1,*p2; printf("请输入字符串:\n"); scanf("%s",&str); p1=str; p2=str; while(*p2!='\0') p2++; p2--; for(j=0;*p1==*p2 && *p2!='\0';p2--,p1++) i++; j=strlen(str); if(i==j) printf("该字符串是回文!\n"); else printf("该字符串不是回文!\n"); } (1)程序编制要点: ①字符串的判断; ②使用指针。 (2)该题目涉及的知识点和难点: ①字符串; ②while语句的输入与使用; ③if语句的输入与使用; ④定义和使用字符指针变量。 程序代码和运行情况描述: 在实验1中,当程序运行时,提示使用者输入字符串;用for语句实现字符串长度的统计。 在实验2中,先定义两个字符指针;当用户输入字符串后,用while和for语句实现字符串的读取;用if语句来判断字符串是不是回文。

相关文档
最新文档