实验六 字符串类
C语言实验

实验一C语言的运行环境和运行过程实验目的1.掌握c程序设计编程环境visual c++,掌握运行一个c语言程序的基本步骤,包括编辑、编译、连接和运行。
2.掌握c语言程序设计的基本框架,能够编写简单的c程序。
3.了解程序调试的思想,能找出并改正c程序中的语法错误。
4.通过编程进一步理解和掌握运算符的确切含义和功能。
实验内容1.在d盘新建一个文件夹,用于存放c程序,文件夹名字可以是学号姓名。
2.调试示例,在屏幕上显示一个短句“Hello World!”。
源程序#include <stdio.h>void main(){printf(”Hello World!\n”);}运行结果:Hello World!提示:请复习教材P9页1.4.2节内容。
基本步骤:(要求熟练掌握)1)启动VC++“开始”->“程序”->“Microsoft Visual Studio 6.0”->“MicrosoftVisual C++6.0”进入VC++编程环境。
2)单击“文件”->“新建”新建一个C语言的源文件(*.c),新建对话框中,选择文件标签,在列表框中选择C++Source File项,然后在对话框右半部分的位置文本框中输入准备编辑的源程序的存储路径(如d:\work文件夹),在文件名文本框中输入文件名(如:eg.c)。
单击“确定”按钮关闭新建对话框,回到VC++主窗口,可以看到光标在编辑窗口闪烁,表示程序编辑窗口已激活,可以输入和编辑源程序。
#include <stdio.h>void main(){printf(”Hello World!\n”);}3)单击文件->保存,保存源程序。
4)单击组建->编译[eg.c]或Ctrl+F7将源文件编译成目标文件(eg.obj)。
编译用来检查语法错误。
由于刚才编辑的源程序的文件名为eg.c,故组建项中大家看到的是:编译[eg.c]。
四川大学教案

四川大学教案
【理、工科】 周次 章节 名称 授课 方 式
教 学 目 的 及 要 求
第 10 周
,
第 3 次 实验
备
注
实验三 多字节十进制数加法/减法 教学 时数
理论课() ;实验课(√) ;实习()
3
进
方法 方法 加法/减法
十进制
教学
时
1 2
多字节 十进制加法 多字节 十进制减法
授 25’ 实验 110’
教 学
多媒体演示 同学动手实验
同实验一
四川大学教案
【理、工科】 周次 章节 名称 授课 方 式
教 学 目 的 及 要 求
第 16 周
,
第 9 次 实验
备
注
实验九 基本输入/输出接口 教学 时数
理论课() ;实验课(√) ;实习()
3
输入 口 输出 口 口数 接 方 DIP LED I/O 口 数 输入/输出
理论课() ;实验课(√) ;实习()
教学 时数
3
1 2
8255A 并行输入/输出接口 8255A 并行输入/输出接口 入 输出 数 方 数
方
教学
时
1 2 3 4
接实验
( 、数 ) ,A 口输入 B 口输出 A 口 入 DIP 数 ,输出 LED ( ) DIP LED
授 20’ B 口, 实验 115’
教 学
多媒体演示 学生动手实验
同实验一
四川大学教案
【理、工科】 周次 章节 名称 授课 方 式
教 学 目 的 及 要 求
第 12 周
,
第 5 次 实验
备
注
实验四 实现字符显示 教学 时数
实验六 力控组态软件中Windows控件的应用

实验六力控组态软件中Windows控件的应用一、实验目的熟悉力控组态软件中Windows控件的应用,主要控件包括文本编辑框、复选框、多选按钮、下拉框、列表框、起始时间、时间范围。
二、实验任务1、以三级液位系统为对象,在监控软件中添加相应的Windows控件;2、对主要的Windows控件分别举例应用(Windows控件主要指文本编辑框、复选框、多选按钮、下拉框、列表框、起始时间、时间范围)。
三、预习及实验要求1、参考教材及力控组态软件随机帮助文件及FAQ文件,预习相关内容;2、分别设计应用Windows主要控件,包括文本编辑框、复选框、多选按钮、下拉框、列表框、起始时间、时间范围的应用。
四、主要参考实验步骤1、文本编辑框。
点击菜单中的“工具/windows控件/文本编辑框”,加入到界面中。
能够显示多行文本,用于信息提示。
相关函数注意:相关函数是与WINDOWS控件相关的一组函数,在动作脚本程序中调用时要指明WINDOWS控件的对象名称,具体格式为:“对象名称.相关函数(参数)”。
1、TextLoad (FileName )说明此函数将指定的文本文件调入到文本编辑框中加以显示。
参数FileName:文本文件名称,类型为字符串。
示例#text1. TextLoad ("C:\abc\a.txt");//向编辑框装载a.TXT文本文件并显示。
//text1为用户定义的编辑框控件名称。
2、复选框。
在菜单中选择“工具/Window控件/复选框”,可在窗口中加入一复选框。
3、多选按钮。
在菜单中选择“工具/Window控件/多选按钮”,可在窗口中加入一复选框。
属性如下:标签颜色:标签文字颜色。
竖排:选中竖排复选框,成员项将按垂直方向排列。
在标签输入框输入复选框标题。
增加:单击“增加“按钮,将加入新的成员。
删除:选择列表中的项,单击“删除“按钮将删除选中的项。
修改:选择列表中的项,单击“修改“按钮将修改选中的项。
《C语言与程序设计》实验06---函数

实验六函数一、实验目的1. 熟练掌握函数的定义、函数的类型和返回值。
2. 熟练掌握形式参数与实际参数、参数值的传递。
3. 掌握函数的嵌套调用与递归调用。
4.学会使用指向函数的指针变量。
5.了解指向指针的指针的概念及带参数的main函数。
6. 掌握局部变量和全局变量。
7. 掌握变量的存储类型。
8. 了解内部函数和外部函数。
二、实验学时:8课时三、预习知识1.标准库函数标准库函数是C系统提供的,这些库函数定义了一些基本的、常用的功能,用户可以使用这些库函数,但是在使用库函数之前需要用预编译命令# include将该库函数所在的头文件包含进来。
2.自定义函数定义函数一般有两种形式形式1:存储类型类型符函数名(类型符形参1,类型符形参2 ,… ) { 说明语句执行语句}形式2:存储类型类型符函数名(形参1,形参2 ,……)形参类型说明{ 说明语句执行语句}说明:①形参表中即使没有参数,函数名后的一对圆括号也不能省略。
②函数名前的类型符是用来说明函数返回值的数据类型(也作为函数的数据类型) 。
当函数值为整型时,类型符可以省略。
③当函数只完成某一特定操作不需要返回值时,可用类型标识符 void 说明,将函数定义成空类型。
④C 规定:不允许在一个函数内部再定义另外一个函数,即函数不允许嵌套定义。
⑤函数的存储类型:函数的存储类型有 extern 和 static 两种。
extern 型的函数除了可以被本程序中其它函数调用外,还可以被其它文件中的函数调用,这种函数称为外部函数,如果定义函数时省略 extern ,则隐含为外部函数。
static 型的函数只能被本源程序文件中的函数调用,称为内部函数(静态函数)。
3.函数的参数(1)在定义函数时函数名后面括号中的变量称为形参(形式参数),如果有两个以上形参,形参之间以逗号分隔。
形参是函数的内部变量,只在函数内部才有意义。
在未出现函数调用时,形参不占内存。
对每个形参必须指明其名字和数据类型。
实验六、SHA-1算法的实现

#endif
#define SHA1HashSize 20
typedef struct SHA1Context
...{
DWORD Intermediate_Hash[SHA1HashSize/4]; // Message Digest
DWORD Length_Low; // Message length in bits
message_array++;
}
return shaSuccess;
}
void SHA1ProcessMessageBlock(SHA1Context *context)
...{
const DWORD K[] = ...{ 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xCA62C1D6 };
D = C;
C = SHA1CircularShift(30,B);
B = A;
A = temp;
}
context->Intermediate_Hash[0] += A;
context->Intermediate_Hash[1] += B;
context->Intermediate_Hash[2] += C;
D = context->Intermediate_Hash[3];
E = context->Intermediate_Hash[4];
for(t = 0; t < 20; t++)
...{
temp = SHA1CircularShift(5,A) +
((B & C) | ((~B) & D)) + E + W[t] + K[0];
实验六 子程序实验

实验六子程序实验(一)1.实验目的(1)掌握主程序与子程序之间的调用关系及其调用方法。
(2)掌握子程序调用过程中近程调用与远程调用的区别。
(3)掌握通过堆栈传送参数的方法。
2.实验内容(1)将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCⅡ码,并在屏幕上显示出来。
要求码型转换通过子程序HEXASC实现,在转换过程中,通过子程序DISP 实现显示。
(2)编写一个主程序,从键盘接收若干个字符,然后用远调用方法,调用子程序统计字符串字符“b”的个数。
子程序的参数是字符串的首地址TABLE、字符长度N及字符“b”。
子程序返回字符“b”的个数。
参数传送采用堆栈实现。
主程序在子程序返回后,显示字符“b”及其个数(设为一位十六进制数)。
3. 实验准备(1)预习子程序设计的基本方法,根据实验内容要求,画出主程序及子程序的流程图。
(2)熟悉键盘输入字符串及用堆栈传送参数的程序段编制方法。
4. 编程提示(1)第一个实验程序用子程序的近程调用实现。
由于在调用HEXASC子程序时,子程序又调用了DISP子程序,这叫做子程序的嵌套调用。
实验过程中可以从堆栈的内容看到两个子程序的返回地址值。
由于是近调用,地址值只包括返回地址的段内偏移量。
在每个子程序的执行中,检查CS值是不变的。
(2)第二个程序是利用远调用的方法调用子程序的。
在远调用情况下,主程序与子程序处在不同的逻辑代码中,可在子程序执行中查看CS值是不同的。
子程序调用后,堆栈中保留了返回地址的段地址及段内偏移量。
(3)第二个程序中,主程序与子程序之间参数的传送是由堆栈实现的。
一段是将参数(此处是串首址TABLE,串的长度N及待统计的字符“b”)顺序压入堆栈,在子程序调用后,通过BP指针肆堆栈中的参数访问,并将统计的结果通过椎栈返回。
有关该方法的原理此处不再介绍。
5.实验步骤(1)编辑、汇编两个源程序,生成相应的可执行文件(.EXE)。
(2)有DEBUG的R命令、T命令或G命令检查远程调用及近程调用时堆栈的变化。
《C语言程序设计》实验报告实验六

《C语言程序设计》实验报告实验六使用指针的程序设计学号姓名一、实验目的1、掌握指针的概念,会定义和使用指针变量;2、能正确使用数组的指针和指向数组的指针变量;3、熟悉指针作为函数参数的定义和调用方法;4、能正确使用字符串的指针和指向字符串的指针变量。
二、实验内容1.分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。
#include <stdio.h>void main(){int *p1,*p2,*p;int a,b;printf("Input a b please");scanf("%d%d",&a,&b);p1=&a;p2=&b;if(a>b){ p=p1;p1=p2;p2=p;}printf("*p1=%d, *p2=%d\n",*p1,*p2);printf("a=%d, b=%d\n",a,b);}『运行结果:』输入1,2得:*p1=1,*p2=2a=1,b=2输入2,1得:*p1=1,*p2=2a=2,b=1输入56,123得:*p1=56,*p2=123a=56,b=1232.下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。
形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even 返回偶数之和。
请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。
#include <stdio.h>#define N 10void fun(int *a,int n,int *odd,int *even){int m;*odd=0; *even=0;for(m=0;m<n;m++)if(*(a+m)%2==0)*even+=*(a+m);else*odd+=*(a+m);}void main(){int a[N]={1,10,2,3,19,6},i,n=6,odd,even;printf("The original data is:\n");for(i=0;i<n;i++)printf("%5d",*(a+i));printf("\n\n");fun(a,n,&odd,&even);printf("The sum of odd numbers:%d\n",odd);printf("The sum of even number:%d\n",even);}『运行结果:』3.编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现删除字符串str中和字符ch相等所有字符,然后输出字符串str。
实验六 数据库的完整性定义与检查 (2)

实验六数据库的完整性定义与检查实验目的:1.充分理解关系数据库中关于数据库完整性的概念。
2.掌握实体完整性的定义和检查方法。
3.掌握参照完整性的定义和检查方法。
4.掌握用户自定义完整性的定义和检查方法。
实验内容:一、在企业管理器中定义以下数据表中各字段的完整性约束(包括实体完整性、参照完整性和用户定义完整性)。
1.Student表。
记录学生基本信息。
表1-1 Student 表结构[Sno] [char](9)PRIMARY KEY,[Sname] [char](8)NOT NULL,[Ssex] [char](2)CHECK(Ssex IN('女','男')),[Sage] SMALLINT CHECK(Sage>=15 AND Sage<=45),[Sdept] [char](20)default('计算机'))2.Course表。
记录课程信息。
表1-2 Course 表结构[Cno] [char](10)PRIMARY KEY,[Cname] [char](20)NOT NULL,[Ccredit] SMALLINT CHECK(Ccredit>0),[Semester] SMALLINT CHECK(Semester>0),[Period] SMALLINT CHECK(Period>0),)3.Sc表。
记录学生选修课程的信息。
表1-3 Sc 表结构[Sno] [char](9)NOT NULL,[Cno] [char](10)NOT NULL,[Grade]SMALLINT CHECK(Grade>=0 and Grade<=100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno))二、在查询编辑器中,写出创建表的语句同时写出设置实体完整性、参照完整性和用户自定义完整性的语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六字符串类
专业班级学号姓名
实验学时 2 实验类型验证性实验地点
实验时间指导老师
实验成绩
年月日一、实验目的:
理解字符串类的作用,理解String类与StringBuffer类的区别与各自的运用范围。
掌握
String类与StringBuffer类中的常用方法。
二、实验内容:
编写程序,输入两个字符串,完成以下几个功能:
(1)求出两个字符串的长度。
(2)检测第一个字符串是否为第二个字符串的子串。
(3)把第一个串转换为byte类型并输出。
三、实验要求:
1.完成程序的编写工作。
2.写出实验报告。
四、实验步骤与结果:(由学生按照实验内容完成)
Apackage zxl;
import java.util.Arrays;
public class ZXL {
public static void main (String args[])
{
String s1 = "java Application";
String s2 = "zxl";
int len = s1.length();
int len2 = s2.length();
System.out.println("s1的长度为"+len);
System.out.println("s2的长度为"+len2);
byte m[] = s1.getBytes();
byte n[] = s2.getBytes();
System.out.println(Arrays.toString(m));
System.out.println(Arrays.toString(n));
if(s1.indexOf(s2) != -1) {
System.out.println(s2 + "是" + s1 + "的字串");
} else {
System.out.println(s2 + "不是" + s1 + "的字串");
}
}
}
五、总结
通过本次实验,我了解了String对象传递的时候是值传递,StringBuffer是引用传递。
String是一种强不变类型,它的值一旦被赋予之后,在内存中的相应位置上的值就不会变化了。
StringBuffer是种可变类型,对内存的消耗要小的多。