实验八 综合程序设计(5篇)

时间:2019-05-12 06:51:48下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《实验八 综合程序设计》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《实验八 综合程序设计》。

第一篇:实验八 综合程序设计

实验八综合程序设计

一、实验目的1.掌握文件以及缓冲文件系统、文件指针的概念。

2.学会使用文件打开、关闭、读、写等文件操作函数。

3.通过一个综合程序,使学生对综合运用C语言程序设计语言有初步的认识。

二、实验内容

1.运行下面程序,给出执行结果。

#include

#include

voidmain(void)

{FILE *fp;

char ch,filename[10];

scanf(“%s”,filename);

if((fp=fopen(filename,“w”))==NULL){

printf(“cannot open filen”);

exit(0);/*终止程序*/}

ch=getchar();/*接收执行scanf语句时最后输入的回车符 */

ch=getchar();/* 接收输入的第一个字符 */

while(ch!='#‘)

{fputc(ch,fp);putchar(ch);

ch=getchar();}

fclose(fp);

}

2.请编写程序:从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,输出到磁盘文件“upper.txt”中保存。输入的字符串以“!”结束。然后再将文件upper.txt中的内容读出显示在屏幕上。

3.教材P349上机实验题16的1、2。

注:本次实验报告内容为实验内容的3.

第二篇:《Web应用程序设计实验》实验指导书-实验八

实验八

Servlet技术的应用

一、实验目的

(1)、掌握怎样编写和使用Servlet。(2)、掌握编写和配置和Servlet有关的web.xml文件。(3)、掌握在Servlet中使用session的方法;熟悉把用户对某JSP页面或Servlet的请求转发给另一个JSP页面或Servlet的方法。

二、实验工具

(1)JDK1.4、JDK1.5或JDK1.6,可以从SUN公司的网站免费下载(2)编辑工具:记事本或Dreamweaver MX 2004、FrontPage 2003(3)Tomcat服务器,也可以从网上免费下载(4)Netbeans 4.1或Jcreator

三、实验原理与内容

(1)、有些Web应用可能需要JSP+JavaBean+Servlet来完成,需要服务器再创建一些Servlet对象,配合JSP页面来完成整个Web应用程序的工作。本小节实验将介绍怎样编写创建Servlet对象的类,怎样在Tomcat服务器上保存编译后的字节码、编写部署文件,怎样请求Tomcat服务器创建一个Servlet对象。

① 复制需要的jar文件:为了编译Servlet源文件,需要HttpServlet、HttpServletRequest等类,JDK内置包中并不包含这些类文件,用户需要将Tomcat服务器中commonlib目录下的servlet-api.jar文件复制到JDK安装目录的jrelibext子目录中。

② 添加Servlet类的字节码文件:编写如下的Servlet类:Computer.java,保存在D:盘根目录下,编译该类,形成starmoonComputer.class,将此文件夹保存到Tomcat当前Web目录(如:ROOT目录)下的WEB-INFclasses子目录中,重新启动Tomcat。Computer.java:

package star.moon;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class Computer extends HttpServlet { public void init(ServletConfig config)throws ServletException

{ super.init(config);

}

public void service(HttpServletRequest request,HttpServletResponse response)

throws IOException

{ response.setContentType(“text/html;charset=GB2312”);

PrintWriter out=response.getWriter();

out.println(“”);

String number=request.getParameter(“number”);

//获取客户提交的信息。

double n=0;

try{ n=Double.parseDouble(number);

out.print(“
”+number+“的平方根是:”);

out.print(“
”+Math.sqrt(n));

}

catch(NumberFormatException e)

{ out.print(“

请输入数字字符!

”);

}

out.println("

第三篇:《Java面向对象程序设计》实验-实验八(输入输出流)

广西科技大学

计通学院

《Java面向对象程序设计》实验

实验八

输入输出流

学生姓名:×××

号:×××

级:×××

指导老师:×××

业:计算机科学与技术

提交日期:×××年×× 月××日

实验报告内容

1. 实验目的

掌握字符输入、输出流用法; 掌握使用Scanner类解析文件; 掌握Console流的使用。

2. 实验内容

实验教材-第12章实验1、2、3 字符输入输出流;Scanner类和Console类。

要求: 完善程序,给出实验结果截图;

完成试验后练习。

3. 程序代码及运行结果:

实验1 举重成绩单

// AnalysisResult.java import java.io.*;import java.util.*;public class AnalysisResult { public static void main(String[] args){ File fRead=new File(“score.txt”);File fWrite=new File(“scoreAnalysis.txt”);try{ Writer out=new FileWriter(fWrite);BufferedWriter bufferWrite=new BufferedWriter(out);Reader in=new FileReader(fRead);BufferedReader bufferRead=new BufferedReader(in);String str=null;

while((str=bufferRead.readLine())!=null){

double totalScore=Fenxi.getTotalScore(str);str=str+“总成绩:”+totalScore;System.out.println(str);bufferWrite.write(str);bufferWrite.newLine();} bufferRead.close();bufferWrite.close();} catch(IOException e){ System.out.println(e.toString());} } }

// Fenxi.java

import java.util.*;public class Fenxi { public static double getTotalScore(String s){ String regex = “[^0123456789.]”;String digitMess = s.replaceAll(regex,“*”);StringTokenizer fenxi = new StringTokenizer(digitMess,“*”);double totalScore=0;while(fenxi.hasMoreTokens()){ double score=Double.parseDouble(fenxi.nextToken());totalScore=totalScore+score;} return totalScore;

} }

// score.txt

姓名:张三,抓举成绩 106kg,挺举 189kg。姓名:李四,抓举成绩 108kg,挺举 186kg。姓名:周五,抓举成绩 112kg,挺举 190kg。

运行结果如图1所示

图1

实验2 统计英文单词 // WordStatistic.java import java.io.*;import java.util.*;public class WordStatistic { Vector allWord,noSameWord;File file=new File(“english.txt”);Scanner sc=null;String regex;WordStatistic(){ allWord=new Vector();noSameWord=new Vector();regex=“[sdp{Punct}]+”;//正则表达式 try{ sc=new Scanner(file);sc.useDelimiter(regex);

} catch(IOException exp){ System.out.println(exp.toString());} } void setFileName(String name){ file=new File(name);try{ sc=new Scanner(file);sc.useDelimiter(regex);} catch(IOException exp){ System.out.println(exp.toString());} } void WordStatistic(){ try{ while(sc.hasNext()){ String word=sc.next();allWord.add(word);if(!noSameWord.contains(word))noSameWord.add(word);} } catch(Exception e){} } public VectorgetAllWord(){ return allWord;} public VectorgetNoSameWord(){ return noSameWord;

} }

// OutputWordMess.java import java.util.*;public class OutputWordMess { public static void main(String[] args){ Vector allWord,noSameWord;WordStatistic statistic=new WordStatistic();statistic.setFileName(“hello.txt”);statistic.WordStatistic();allWord=statistic.getAllWord();noSameWord=statistic.getNoSameWord();System.out.println(“共有”+allWord.size()+“个英文单词”);System.out.println(“有”+noSameWord.size()+“个互不相同英文单词”);System.out.println(“按出现的频率排列:”);int count[]=new int[noSameWord.size()];for(int i=0;i

if(count[n]>count[m]){ String temp=noSameWord.elementAt(m);

noSameWord.setElementAt(noSameWord.elementAt(n), m);noSameWord.setElementAt(temp, n);int t=count[m];count[m]=count[n];count[n]=t;} } } for(int m=0;m

运行结果如图2所示

图2

实验3 密码流

// PassWord.java import java.io.*;public class PassWord { public static void main(String[] args){ boolean success=false;int count=0;Console cons;char[] passwd;cons=System.console();while(true){

System.out.print(“输入密码:”);

passwd=cons.readPassword();

count++;

String password= new String(passwd);

if(password.equals(“tiger123”)){

success=true;

System.out.println(“您第”+count+“次输入的密码正确!”);

break;

}else{

System.out.println(“您第”+count+“次输入的密码”+password+“不正确!”);

}if(count==3){

System.out.println(“您”+count+“次输入的密码都不正确!”);

System.exit(0);

} } if(success){

File file=new File(“score1.txt”);

try{

FileReader inOne=new FileReader(file);

BufferedReader inTow=new BufferedReader(inOne);

String s=null;

while((s=inTow.readLine())!=null){

System.out.println(s);

}

inOne.close();

inTow.close();

}catch(IOException ioe){} } } }

// score.txt

姓名:张三,抓举成绩 106kg,挺举 189kg。姓名:李四,抓举成绩 108kg,挺举 186kg。姓名:周五,抓举成绩 112kg,挺举 190kg。

运行结果如图3所示

图3

4. 实验后的练习:

实验1

有如下格式的成绩单(文本格式)score.txt。姓名:张三,数学72分,物理67分,英语70分。姓名:李四,数学92分,物理98分,英语88分。

姓名:周五,数学68分,物理80分,英语77分。要求按行读入取成绩单,并在该行的后面尾加上该同学的总成绩,然后再将该行写入到一个名字为scoreAnalysis.txt的文件中。// AnalysisResult.java import java.io.*;import java.util.*;public class AnalysisResult { public static void main(String[] args){ File fRead=new File(“score.txt”);File fWrite=new File(“scoreAnalysis.txt”);try{ Writer out=new FileWriter(fWrite,true);BufferedWriter bufferWrite=new BufferedWriter(out);Reader in=new FileReader(fRead);BufferedReader bufferRead=new BufferedReader(in);String str=null;

while((str=bufferRead.readLine())!=null){ double totalScore=Fenxi.getTotalScore(str);str=str+“总分:”+totalScore;System.out.println(str);bufferWrite.write(str);bufferWrite.newLine();} bufferRead.close();bufferWrite.close();

} catch(IOException e){ System.out.println(e.toString());} } }

// Fenxi.java

import java.util.*;public class Fenxi { public static double getTotalScore(String s){ Scanner scanner=new Scanner(s);scanner.useDelimiter(“[^0123456789.]+”);double totalScore=0;while(scanner.hasNext()){ try{ double score=scanner.nextDouble();totalScore=totalScore+score;} catch(InputMismatchException exp){ String t=scanner.next();} } return totalScore;} }

// score.txt 姓名:张三,数学72分,物理67分,英语70分。姓名:李四,数学92分,物理98分,英语88分。姓名:周五,数学68分,物理80分,英语77分。

运行结果如图4所示

图4

实验2 按字典序输出全部不相同的单词。// Dictionary.java import java.util.*;public class Dictionary { public static void main(String args[]){

Vector allWord,noSameWord;

WordStatistic statistic=new WordStatistic();

statistic.setFileName(“hello.txt”);

statistic.WordStatistic();//statistic调用WordStatistic()方法

allWord=statistic.getAllWord();

noSameWord=statistic.getNoSameWord();

System.out.println(“共有”+allWord.size()+“个英文单词”);

System.out.println(“有”+noSameWord.size()+“个互不相同英文单词”);

System.out.println(“按字典顺序排列:”);

String s[]=new String [noSameWord.size()];

for(int i=0;i

s[i]=noSameWord.elementAt(i);

}

Arrays.sort(s);

for(int i=0;i

System.out.println(s[i]+“ ”);

} } }

运行结果如图5所示

图5

实验3 编写一个程序,程序运行时,要求用户输入的密码是:hello。如果用户输入了正确的密码。程序将输出“你好,欢迎你!”。程序允许用户2次输入的密码不正确,一旦超过2次,程序将立刻退出。// PassWord.java import java.io.*;import java.util.Scanner;public class PassWord{ public static void main(String args[]){ int count=0;Console cons;String passwd;Scanner sc=new Scanner(System.in);//cons=System.console();

while(true){

System.out.print(“输入密码:”);

passwd=sc.next();//

count++;

String password=new String(passwd);

if(password.equals(“hello”)){

System.out.println(“你好,欢迎你!”);

break;

}

else{

System.out.println(“您第”+count+“次输入的密”+password+“不正确”);

}

if(count==3){

System.out.println(“您”+count+“次输入的密码都不正确”);

System.exit(0);

} } } }

运行结果如图6所示

图6

5. 实验心得和体会

这次实验中,我感觉比较难理解和掌握的就是Console类

了,在实验3 密码流的代码在eclipse中运行出错如下图所示:

就是输入不了密码,后来通过找寻解决方法,才知道了在JDK 6中java.io.Console类专用来访问基于字符的控制台设备,然后使用cmd命令提示符来运行就可以输入密码和显示结果了。

通过这次实验,大概了解了字符输入、输出流用法,如何去使用Scanner类解析文件,对Console类的使用有个大概的认知。总而言之,这次实验收获蛮大的,敲代码的效率比以往提高了,出错率也少了。

第四篇:实验八

课程名称:

SQL

Server

数据库基础

任课教师:

池宗琳

实验名称:

存储过程

年级、专业:

2018级电子信息工程

号:

20181060093

名:

日期:

2019

云南大学

信息学院

一、实验目的1、掌握使用SELECT语句实现对数据库的简单查询

2、掌握使用SELECT语句实现对数据库的多表链接查询和子查询

二、实验内容、方法、步骤、结果与分析

完成以下各题功能,保存或记录实现各题功能的Transact-SQL语句。

1.在数据库HrSystem中创建存储过程avg._wage,用于求所有员工的平均工资,并通过输出参数返回该平均工资。要求在创建存储过程之前要首先判断该存储过程是否已经存在,如果存在,则将其删除。

USE

Hrsystem

GO

IF

EXISTS

(SELECT

name

FROM

sysobjects

WHERE

name

=

'avg_wage')

DROP

PROC

avg_wage

GO

CREATE

PROC

avg_wage

@AVWAGE

AS

FLOAT

AS

SELECT

@AVWAGE

=

AVG(Wage)

FROM

Employees

PRINT

@AVWAGE

GO

2.执行第1题创建的存储过程avg_

wage,打印员工平均工资。

USE

Hrsystem

GO

DECLARE

@avg

AS

FLOAT

EXEC

avg_wage

@avg

3.在数据库HrSystem中创建存储过程max_

wage,根据指定的部门名称(输人参数)返回该部门的最高工资(输出参数)。要求在创建存储过程之前要首先判断该存储过程是否已经存在,如果存在,则将其删除。

USE

Hrsystem

GO

IF

EXISTS

(SELECT

name

FROM

sysobjects

WHERE

name

=

'max_wage')

DROP

PROC

avg_wage

GO

CREATE

PROC

max_wage

@Dename

varchar(20),@MAX_wage

FLOAT

OUTPUT

AS

SELECT

@MAX_wage

=

MAX(Wage)

FROM

Employees

WHERE

Dep_id

IN(SELECT

Dep_id

FROM

Departments

WHERE

Dep_name

=

@Dename)

GROUP

BY

Dep_id

4.执行第3题创建的存储过程max

wage,指定部门为“财务部”,打印该类部门的最高工资。

USE

Hrsystem

GO

DECLARE

@MAX_wage

FLOAT

EXEC

max_wage

'财务部',@MAX_wage

OUTPUT

PRINT

@MAX_wage

5.删除存储过程avg_

wage和I

max_

wage。

USE

Hrsystem

GO

DROP

PROCEDURE

max_wage

GO

DROP

PROCEDURE

avg_wage

(二)触发器

创建一个“学生信息”数据库,包含“学生基本信息”表、“专业”表和“系”表,各表包含的字段如下。

“学生基本信息”表:学号;姓名;性别;班级;出生日期;专业编号。

“专业”表:专业编号;专业名称;系编号。

“系”

表:系编号;系名称;系简介。

各字段类型按其实际含义自行定义,输人-

-些数据,要求数据要有代表性。

以下操作要求全部在SQL

Server

Management

Studio

中完成,保存或记录实现各题功能的Transcat-SQL语句(包括测试相应触发器是否生效的相关语句及测试结果)。

1.在“专业”表上创建一个INSERT触发器“TRG1”。当发生插入专业表操作时,将显示插入的记录。

USE

学生信息

GO

CREATE

TRIGGER

TRG1

ON

专业

FOR

INSERT

AS

DECLARE

@depid

INT

DECLARE

@depname

varchar(50)

DECLARE

@number

INT

SELECT

@depid

=

专业编号

FROM

inserted

SELECT

@number

=

系编号

FROM

inserted

SELECT

@depname

=

专业名称

FROM

inserted

PRINT('系名:'+STR(@depid)+'专业名:'+STR(@depname)+'系的编号:'+str(@number))

INSERT

INTO

专业

(专业编号,专业名称,系编号)

VALUES(@depid,@depname,@number)

2.在“专业”表上创建一个DELETE触发器“TRG2”,当发生删除操作时,将给出警告、列出删除的记录并撤销删除。

USE

学生信息

GO

CREATE

TRIGGER

TRG2

ON

专业

FOR

DELETE

AS

PRINT('警告!禁止删除')

ROLLBACK

TRANSACTION

3.在“专业”表上创建一个UPDTAE触发器“TRG3”,当发生更新“专业名称”字段的操作时,给出警告并撤销更新

USE

学生信息

GO

CREATE

TRIGGER

TRG3

ON

专业

FOR

UPDATE

AS

DECLARE

@temp_proid

INT

DECLARE

@temp_xiid

INT

DECLARE

@temp_porna

varchar(50)

SELECT

@temp_porna

=

专业名称

FROM

inserted

IF

@temp_porna

IS

not

NULL

BEGIN

PRINT('禁止修改专业名称')

ROLLBACK

TRANSACTION

END

ELSE

BEGIN

SELECT

@temp_porna

=

专业名称

FROM

deleted

SELECT

@temp_xiid

=

系编号

FROM

deleted

SELECT

@temp_proid

=

专业编号

FROM

deleted

UPDATE

专业

SET

专业编号

=

@temp_proid,系编号

=

@temp_xiid

WHERE

专业名称

=

@temp_porna

END

4.在“学生基本信息”表上创建一

一个更新触发器“TRG4“,当发生更新“学号”或“姓名”字段的操作时给出警告,并撤销更新。

USE

学生信息

GO

CREATE

TRIGGER

TRG4

ON

学生基本信息

FOR

UPDATE

AS

DECLARE

@temp_stunum

char(11)

DECLARE

@temp_name

char(10)

DECLARE

@temp_gender

BIT

DECLARE

@temp_class

varchar(10)

DECLARE

@temp_date

DATETIME

DECLARE

@temp_proID

INT

SELECT

@temp_name

=

姓名

FROM

inserted

SELECT

@temp_stunum

=

学号

FROM

inserted

IF

@temp_name

IS

NOT

NULL

OR

@temp_stunum

IS

NOT

NULL

BEGIN

PRINT('禁止修改学号或者姓名')

ROLLBACK

TRANSACTION

END

ELSE

BEGIN

SELECT

@temp_stunum

=

学号

FROM

deleted

SELECT

@temp_name

=

姓名

FROM

deleted

SELECT

@temp_gender

=

性别

FROM

inserted

SELECT

@temp_class

=

班级

FROM

inserted

SELECT

@temp_date

=

出生日期

FROM

inserted

SELECT

@temp_proID

=

专业编号

FROM

inserted

UPDATE

学生基本信息

SET

性别

=

@temp_gender,班级

=

@temp_class,出生日期

=

@temp_date,专业编号

=

@temp_proID

WHERE

学号

=

@temp_stunum

END

5.删除以

上各题创建的所有触发器。做好“学生信息”数据库的备份,以备第10章、第章上机操作时使用。

USE

学生信息

GO

DROP

TRIGGER

TRG1

DROP

TRIGGER

TRG2

DROP

TRIGGER

TRG3

DROP

TRIGGER

TRG4

三、实验小结【对自己而言,通过实验学到的关键技术方法】

掌握了触发器的一些基本方法:

1.创建触发器

2.分清了触发器的种类,但是还是需要深入了解dml触发器中三个种类触发器的不同。

3.了解了触发器在我们实际操作中的作用

4.

第五篇:实验二 定时器程序设计121

一、实验目的学会使用单片机定时器产生定时中断,并利用定时中断产生更长时间延时。

二、实验设备及器件

IBM PC机

一台

DP-51PRO.NET单片机仿真器、编程器、实验仪三合一综合开发平台

三、实验内容

1.实验二 定时器程序设计

2.编写程序,使P10端口来控制LED闪烁 3.C语言程序

//1ms定时中断实现100ms发光管闪烁 #include“REG51.h” sbit LED=P1^0;void main(void){ TMOD = 0x01;//设置定时器模式 16位定时器

TL0 = 0x18;//设置定时初值

TH0 = 0xFC;//设置定时初值

TR0 = 1;//定时器T0开始计时

ET0=1;//开定时器中断

EA=1;

//开总中断

while(1);}

//******************** //1ms void pit0(void)interrupt 1(中断程序){ static unsigned char ms_cnt=0;//16 ffff TL0 = 0x18;//设置定时初值

TH0 = 0xFC;//设置定时初值

if(++ms_cnt==100){

ms_cnt=0;

LED=!LED;} } 定时器的由程序

直接汇编语言 ORG 0 AJMP MAIN ORG 0BH AJMP PIT0 MAIN: MOV TMOD,#01H MOV TH0,#18H MOV TL0,#0FCH SETB TR0 SETB ET0 SETB EA SJMP $

生成;********************************** PIT0: MOV TH0,#18H MOV TL0,#0FCH INC R7 CJNE R7,#100,PIT0_R MOV R7,#0 CPL P1.0 PIT0_R: RETI END

四 实验要求

学会使用并掌握单片机定时器中断来实现LED100ms闪烁。

五 实验步骤

1.调试运行本节实验程序。若程序无错误,编译并进行二进制转换,下载程序。

2.连接线路,将A2区的P10端口连接到D1区的任意LED接口。3.观察LED灯闪烁情况

下载实验八 综合程序设计(5篇)word格式文档
下载实验八 综合程序设计(5篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    UML程序设计实验指导书

    《UML程序设计》 实验指导教程 适合专业:计算机类专业 浙江树人大学信息科技学院 2016.02 课程与实验综述 第一部分实验综述 一.课程简介及实践要求: 《UML程序设计》是以介绍......

    UML程序设计实验指导书

    《UML程序设计》 实验指导教程 适合专业:计算机科学技术09 浙江树人大学信息科技学院 2012.02 课程与实验综述 第一部分实验综述 一.课程简介及实践要求: 《UML程序设计》是以......

    vb程序设计实验心得(大全)

    vb程序设计实验心得 vb程序设计实验心得一:数据库VB课程设计心得体会 数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的......

    Java程序设计实验2

    学 生 实 验 报 告 册 课程名称: 学生学号: 所属院部: (理工类) 专业班级: 学生姓名: 指导教师: 20 ——20 学年 第 学期 金陵科技学院教务处制 实验报告书写要求 实验报告......

    Java程序设计实验5篇

    学 生 实 验 报 告 册 课程名称: 学生学号: 所属院部: (理工类) 专业班级: 学生姓名: 指导教师: 20 ——20 学年 第 学期 金陵科技学院教务处制 实验报告书写要求 实验报告......

    上机实验八

    实验八 折半查找 一、 实验目的 1、熟悉visual C++上机环境,进一步掌握C语言的结构特点。 2、 进一步掌握图的基本概念及其含义。 3、掌握查找的结构特征,以及各种存储结构的......

    C语言程序设计实验四(本站推荐)

    C语言程序设计实验(四)[实验1] scanf、printf函数的使用。 1.实验题目 输入1个学生学号和4门课程成绩,输出这个学生的学号、4门课程成绩和平均成绩。 2.实验要求 (1)按表格的形......

    C语言程序设计实验安排

    C语言实验指导 实验一 顺序结构程序设计(2学时) 一、实验目的熟悉在VC运行环境下,编辑调试C语言程序的一般步骤。掌握顺序结构程序设计的基本思想和基本方法。二、实验要求1. 仔......