综合实验:文件操作与字符处理
- 格式:docx
- 大小:45.18 KB
- 文档页数:6
《操作系统》课程实验指导书一.实验总学时(课外学时/课内学时):4/8 总学分:8/44必开实验个数: 4 选开实验个数:0二.适用专业:网络工程、计算机科学与技术2007级三.考核方式及办法:在规定实验时间内完成实验要求,依据实验过程及实验结果在实验现场逐一检查考核。
四.配套的实验教材或指导书:自编实验指导书五. 实验项目:实验1 SHELL命令的使用1、实验目的通过对LINUX的系统启动、注销、关闭和关机,帐号管理,文件系统的日常管理,文件系统的权限控制等常用基本命令的使用及与Windows下DOS SHELL的比较,了解现代操作系统SHELL的特点和功能。
了解编辑器vi的使用方法。
2、实验工具及环境LINUX系统网络环境或单机,Windows系统网络环境或单机。
3、实验计划学时2学时上机实际操作。
4、实验内容及操作步骤⑴系统启动和关闭①使用自己的账户登录UNIX系统,查看系统提示符确定自己使用的shell程序类型别。
◎开机后,系统自检启动后提示login:(输入:root↙)password:(输入:用户口令↙,root用户为redhat)◎查看/etc/passwd文件可以获得用户使用的shell#grep $LOGNAME /etc/passwd↙可能的显示为:user001:*:200:50::/usr/user001:/bin/sh请思考上述命令怎样得到了当前使用的shell类型的?使用下面的命令也可以查看当前shell:#echo $SHELL②注销和关机命令。
◎用户注销使用:$exit↙或$<ctrl>+<D>↙或$logout↙◎超级用户关机使用:#shutdown↙该命令将结束所有的进程,当执行此命令后系统提示“Safe to Power off or Press Any Keyto Reboot”时可以关闭电源或按任一键重启系统。
◎haltsys(halt),reboot只能由超级用户在单用户模式下使用。
实验1、C语言编程环境和运行C程序的方法一、实验目的1、熟悉Visual C++6.0集成开发环境的使用方法;2、熟悉C语言程序从编辑、编译、连接到最后运行得到结果的全过程及每一步骤的作用;3、了解C语言程序的结构特征与书写规则,能够编写简单的C程序;4、初步理解程序调试的思想,能找出并改正C程序中的典型语法错误。
二、实验内容1、熟悉上机环境⑴参照教材附录A(P370~376)或实验指导书前言中的内容,熟悉VC++6.0集成环境,重点是其中常用菜单、工具按钮的功能;⑵在D盘建立一个自己的工作文件夹,文件夹以班名+学号后两位+姓名来命名(例如:动漫班75号张三的工作文件夹命名为dm75zhangsan 注意:文件夹及文件的命名尽量不要用汉字!);⑶参照教材第1章中的3个例题的源代码,在自己的工作文件夹中分别创建并运行三个C源程序,初步熟悉C 程序的结构特点和运行方式。
注意:①每个例题对应一个C源程序(新建C源文件时,文件时务必要加扩展名.c);②一个源程序成功运行后,要关闭工作区后再新建下一个例题的源程序(否则会出错);2、编程参照教材例题1.1编写一个程序实现分两行输出自己的姓名及联系电话。
3、程序改错调试以下给定程序的功能是在屏幕上显示“Welcome to Y ou!”,其中存在3处语法错误,请根据编译给出的出错提示,依次指出错误所在行并进行修改,调试程序使其能运行得到正确结果。
#include<stdio.h>mian() //1{printf(Welcome to You!\n") //2}三、实验要求1、将每次实验所编辑的C 源程序调试通过后分别保存在D 盘上自己的文件夹中(备查!)及自己的U 盘中;2、对调试过程中出现的问题和解决方法进行必要的记录,并予以简要分析四、实验小结1、结合本次实验,简述C 程序从编写到最终运行的一般过程,并简要说明其中每个步骤的作用及其生成的文件类型。
第1篇一、实验目的本次实验旨在通过编程实现一个数字日历系统,提高对日期管理的效率,同时加深对Java编程语言中字符输入输出流、缓冲输入输出流以及文件操作等知识点的理解。
通过实验,培养学生独立思考、编程解决问题的能力。
二、实验原理本实验主要运用Java编程语言,通过使用RandomAccessFile类实现日历的显示和操作,以及使用字符输入输出流和缓冲输入输出流进行数据的读写。
具体原理如下:1. RandomAccessFile类:用于对文件进行随机访问,支持读写操作。
在本实验中,用于读取和写入日期信息。
2. 字符输入输出流:用于对字符进行输入输出操作,包括BufferedReader和BufferedWriter。
在本实验中,用于读取用户输入的年份和月份,以及将日志信息写入文件。
3. 缓冲输入输出流:用于提高数据读写效率,包括BufferedReader和BufferedWriter。
在本实验中,用于读取和写入日志信息。
三、实验内容1. 界面设计:使用Java Swing库设计日历界面,包括年份、月份、日期显示区域以及记事本编辑区域。
2. 日期显示:通过读取文件中的日期信息,实现日历的显示。
用户可以通过输入年份和月份设置日期,或通过点击“上一年”和“下一年”按钮切换年份,点击“上一个月”和“下一个月”按钮切换月份。
3. 日志编辑:用户可以通过点击日历上的日期进入记事本编辑区域,编辑和保存相关日志信息。
保存时,将日志信息写入以当前日期命名的文件中。
4. 日志管理:用户可以读取、删除和添加日志信息。
在读取、删除和添加日志时,会弹出一个确认对话框,以确保操作的正确性。
四、实验步骤1. 创建项目:在Java开发环境中创建一个新项目,命名为“数字日历”。
2. 设计界面:使用Java Swing库设计日历界面,包括年份、月份、日期显示区域以及记事本编辑区域。
3. 读取文件:使用RandomAccessFile类读取文件中的日期信息,实现日历的显示。
c语言实训课课程设计一、教学目标本课程旨在通过C语言实训,使学生掌握C语言的基本语法、编程技巧和相关概念,培养学生独立编程和解决问题的能力。
具体目标如下:1.知识目标:–掌握C语言的基本语法和数据类型。
–理解函数、数组、指针、结构体等基本概念。
–学习C语言的输入输出、文件操作和库函数的使用。
2.技能目标:–能够使用C语言编写简单的程序,解决实际问题。
–熟练使用C语言的调试工具,分析并解决编程中的问题。
–掌握C语言编程的规范和技巧,编写结构清晰、可读性强的代码。
3.情感态度价值观目标:–培养学生的创新意识和解决问题的能力,激发学生对计算机科学的兴趣。
–培养学生团队合作的精神,提高学生的沟通能力和协作能力。
–培养学生的自主学习能力,养成良好学习习惯。
二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.C语言基本语法和数据类型。
2.函数、数组、指针、结构体等基本概念。
3.C语言的输入输出、文件操作和库函数的使用。
4.编程实践,包括简单的数学计算、字符串处理、数据结构实现等。
教学大纲将按照以下顺序进行:1.第一周:C语言基本语法和数据类型。
2.第二周:函数、数组、指针、结构体等基本概念。
3.第三周:C语言的输入输出、文件操作和库函数的使用。
4.第四周:编程实践,包括简单的数学计算、字符串处理、数据结构实现等。
三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法:1.讲授法:通过讲解C语言的基本语法、概念和编程技巧,使学生掌握基础知识。
2.案例分析法:通过分析典型的编程案例,使学生理解并掌握C语言的应用。
3.实验法:安排上机实验,让学生亲自动手编写代码,培养学生的实际编程能力。
4.小组讨论法:学生进行小组讨论,分享学习心得和解决问题的方法,提高学生的团队合作能力。
四、教学资源为了支持教学内容和教学方法的实施,将准备以下教学资源:1.教材:《C程序设计语言》(K&R)或《C Primer Plus》。
中南民族大学管理学院学生实验报告课程名称: JSP程序设计年级: 2010专业:姓名:学号:指导教师:实验地点:管理学院综合实验室学年至学年度第学期第一章 JSP简介实验 Tomcat服务器的安装与配置一、实验目的本实验的目的是让学生掌握怎样设置Web服务目录、怎样访问Web服务目录下的JSP 页面、怎样修改Tomcat服务器的端口号。
二、实验要求1、将下载的apache-tomcat-6.0.13.zip解压到硬盘某个分区,比如D。
2、在硬盘分区D下新建一个目录,名字为student,见stuent设置为Web服务目录,并为该Web服务目录指定名字为good的虚拟目录。
3、修改端口号为5678.在server.xml文件中找到修改端口号的部分,将端口号修改为5678.4、启动Tomcat服务器。
5、用文本编辑器编写一个简单的JSP页面biao.jsp,并保存到Web服务目录student中。
6、用浏览器访问Web服务目录student中的jsp页面biao.jsp。
三、实验内容1、Tomcat安装成功并运行2、编码实现乘法表3.代码四、实验结果biao.jsp页面五、实验结果分析1、默认的端口号为8080,若修改,在conf目录下的server.xml文件中修改端口号。
2、设置虚拟目录。
在conf目录下的server.xml中</Host>前加入:<Context path=”/**” docBase=”路径” debug=”0” reloadable=”true/”>3、Tomcat服务器必须保持启动。
第二章 JSP页面与JSP标记实验1 JSP页面的基本结构一、实验目的本实验的目的是让学生掌握怎样在JSP页面中使用成员变量,怎样使用Java程序片、Java表达式。
二、实验要求本实验将用户输入的单词按字典顺序。
需要编写两个JSP页面,名字分别为inputWord.jsp和showDictionary.jsp。
┊┊实训报告书计算机基础实训任务书一、实训目的通过计算机基础实训使学生掌握计算机的基本操作,掌握OFFICE办公自动化系列软件的使用,掌握计算机网络的基础知识以及Internet的应用,提高学生运用计算机处理实际问题的能力。
二、实训要求1、认真查阅教材、资料2、遵守实训时间安排3、按时上机、认真完成实训任务4、认真书写实训报告5、不得从事与实训无关的内容三、实训内容1、Windows XP操作系统2、文字处理软件Word 20033、电子表格软件Excel 20034、演示文稿制作软件PowerPoint 20035、计算机网络6、网页设计基础7、计算机系统的安全与保护四、时间安排(二周)1、上机练习(8天)2、成绩考核(0.5天)3、书写报告(1.5天)五、成绩评定评定成绩根据实训表现、成绩测验、实训报告等进行综合评定。
评定等级:不及格、及格、中、良好、优秀。
六、教材及参考书目1、《大学计算机基础应用教程》孙连科主编中国水利水电出版社2、《计算机应用基础》(实训)李淑华编著辽海出版社目录第一部分:Windows XP操作系统 (1)实验2 文件及文件夹操作 (1)实验3 Windows XP桌面操作 (3)第二部分:文字处理软件Word 2003 (4)实验2 编辑文档 (4)实验3 文档格式的编排 (5)实验5 表格的制作 (6)自选创新作品 (7)第三部分:电子表格软件Excel2003 (8)实验4公式与函数的使用 (8)实验5图表的创建与编辑 (10)第四部分:演示文稿制作软件PowerPoint 2003 (11)实验3 编辑幻灯片 (11)实验4 创建超级链接 (12)自选创新作品 (13)第五部分:计算机网络 (14)实验3 浏览器IE的使用 (14)第六部分:网页设计基础 (16)实验2 给照片合影 (16)实训总结 (17)实训成绩评定表第一部分:Windows XP操作系统实验2 文件及文件夹操作一、实验目的学习在Windows XP资源管理器中对文件及文件夹的操作。
《大学计算机基础》课程实验报告手册学院年级专业姓名学号任课教师上机地点(以上由学生填写)实验教师(签字)西南大学计算机与信息科学学院计算机基础教育系年月日《大学计算机基础》课程实验报告一《大学计算机基础》课程实验报告二《大学计算机基础》课程实验报告三《大学计算机基础》课程实验报告四(综合设计)学期总结这个学期,我们学习了《大学计算机基础实践》和《大学计算机——计算思维的视角》两本书。
实践教程主要讲解了windows7及office 2013版,在讲Windows7时,老师不仅讲了win7,同时也讲了微软公司一系列的Windows产品,在什么时候出了什么操作系统,其特点又是什么。
改变了不少人认为最新操作系统就是好系统的错误观点。
而office则是一套经典的、常用的办公软件,就word 而言,简单的输入文字,或许大家都会,但细致的处理则未必人人都会。
在当今社会,office已经成为很多行业必备的能力。
在今后的学习过程中,应当多与他人交流,作为非计算机专业的学生,难免有很多知识不懂。
更重要的是要知道,计算机并不是简单的娱乐工具,运用别人设计好的程序并不能算是懂计算机。
计算机在科技研究上有这极其重要作用,能自主根据需求设计需要的程序才是真正的计算机能手。
对一些常用的软件,如office,要经常使用,才能发现问题,同时包括电脑操作上的问题都可以上网查答案,养成自行解决疑难的好习惯,在运用中找到不足,弥补不足。
此外最好能够掌握一门高级语言,通过编程可以大大发散个人思维能力。
通过这次学习我真正体会到了计算机知识的更新是很快的,随着教育体制的改革和教育理念的更新,以及信息技术的飞速发展,如何接受新的教育理念,转变我们传统的教育观念,来充实我们的计算机技能,已经成为我们每一个人必须要解决的第一个问题.只有不断地学习,才能掌握最新的知识,才能在以后把工作做得更好。
我们也渴望能够多学关于计算机方面的知识.。
我相信在更多的学习机会中,我们懂的也会越来越多。
实验六流式输入输出处理一、实验目的1、理解流的概念,流的划分2、掌握文件描述,顺序处理,随机访问处理的方法;3、能够熟练的使用过滤流;掌握字符流处理的方法;4、理解对象串行化的概念和方法。
二、实验内容与要求1、仔细读下面的JA V A语言源程序,自己给出程序的运行结果,理解File类的使用。
package Test03;import java.awt.BorderLayout;import java.awt.Choice;import java.awt.Container;import java.awt.Frame;import java.awt.ItemSelectable;import java.awt.TextField;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.JFrame;public class Ch71 extends JFrame{int n;String dirname="/jdk1.4";File file=new File(dirname);String[] flist=new String[100];Choice choice=new Choice();TextField tf=new TextField();private Container listFile;private InputMethodListener[] filst;public Ch71(){s etLayout(new BorderLayout(10,10));flist=file.list();for (n=0;n<flist.length;n++) {listFile.addInputMethodListener(filst[n]);}add("North",listFile);add("South",tf);setSize(250,200);setVisible(true);((ItemSelectable) listFile).addItemListener(new koListener());addWindowListener(new koWindowListener());}public static void main(String args[]) {new Ch71();}class koListener implements ItemListener {public void itemStateChanged(ItemEvent e) {String ko=(String)e.getItem();for (n=0;n<flist.length;n++)if (ko==flist[n]) {File f=newFile(file+System.getProperty("file.separator")+ko);if (f.isFile()==true)tf.setText(ko+"是个文件!");i f (f.isDirectory()==true)tf.setText(ko+"是个目录!");}}}class koWindowListener extends WindowAdapter {public void windowClosing(WindowEvent e) {dispose();System.exit(0);}}}运行结果如下:2、仔细读下面的JA V A语言源程序,自己给出程序的运行结果package Test03;import java.io.*;public class testRandom2 {public static void main(String args[]){try{RandomAccessFile rf=new RandomAccessFile("rtest.dat", "rw");for(int i = 0; i < 10; i++){rf.writeInt(i);rf.writeDouble(i*1.414);}rf.close();rf = new RandomAccessFile("rtest.dat", "rw");rf.seek(5*(4+8));rf.writeInt(47);rf.writeDouble(47.00021);rf.close();rf = new RandomAccessFile("rtest.dat", "r");for(int i = 0; i < 10; i++){;System.out.println("Value " + rf.readInt() + ": " +rf.readDouble());}rf.close();}catch(IOException e){System.out.println(e.toString());}}}运行结果如下:Value 0: 0.0Value 1: 1.414Value 2: 2.828Value 3: 4.242Value 4: 5.656Value 47: 47.00021Value 6: 8.484Value 7: 9.898Value 8: 11.312Value 9: 12.7259999999999993、定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"、”显示帐号”以及存储功能。
《C语言程序设计》实验教学大纲第一章引言在计算机科学与技术专业的教学中,C语言作为一门基础而重要的编程语言被广泛应用。
为了提高学生在C语言程序设计方面的应用能力,我们特制定了本实验教学大纲。
该大纲旨在培养学生的编程思维和问题解决能力,以及加深他们对计算机程序设计的理解。
第二章实验目标本实验教学大纲的主要目标如下:1. 帮助学生掌握C语言的基本语法和编程风格。
2. 通过实验训练,培养学生的逻辑思维和问题解决能力。
3. 提高学生对计算机程序设计的实际运用能力。
4. 培养学生的团队协作和沟通能力。
第三章实验内容3.1 实验一:C语言程序基础在此实验中,学生将学习基本的C语言程序结构、变量和数据类型、运算符和表达式、控制语句等知识。
他们将通过编写简单的程序来熟悉C语言的基础用法,并理解程序的执行流程。
3.2 实验二:数组和字符串处理本实验旨在帮助学生理解数组和字符串等数据结构的概念,并能熟练运用它们来解决实际问题。
学生将通过编写有关数组和字符串处理的程序,加深对这些概念的理解,并提高他们的编程技巧。
3.3 实验三:函数和指针在此实验中,学生将深入学习函数和指针的概念及其应用。
他们将通过实践掌握函数的定义、调用和参数传递的方法,并能够灵活地使用指针来解决各种问题。
3.4 实验四:文件操作通过这个实验,学生将学会使用C语言中的文件操作函数,包括打开、读写、关闭文件等。
学生将能够编写程序来处理文件,读取和写入文件中的数据,以及实现文件的复制、排序和查找等功能。
第四章实验要求4.1 实验环境学生需要在计算机实验室或自己的电脑上安装适当的C语言编译器和开发环境,以便他们能够编写、调试和运行C语言程序。
4.2 实验过程学生需要按照实验指导书中的要求,完成每个实验的设计与编码工作。
他们还需要进行适当的调试和测试,确保程序能够正确运行并满足实验要求。
4.3 实验报告每个实验结束后,学生需要撰写相应的实验报告。
报告应包括实验目的、实验内容、设计思路、代码注释、运行结果和实验总结等内容。
高级语言程序设计综合性试验
文件操作与字符处理
一、题目与运行说明
Description
在当前目录中存在文件名为"case1.in"(其中case后为数字1,不是字母l,写错提交后会判错)的文本文件,
其内容为一篇英文文章(以EOF作为结束标志)。
现要求读取该文本文件内容,统计文章中每个单词出现的次数,
并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出,
不足5个单词时,按序输出全部单词)。
程序中注意如下细节:
(1)空格、标点符号与回车符起到分隔单词的作用。
(2)文章一行的末尾可能有连字符,出现连字符时,该行最末的字符串与下行最先出现的字符串构一个单词;
(3)名词缩写算一个单词;
(4)数字不算单词;
(5)单词不区分大小写;
(6)输出时单词全使用小写;
(1)使用变量:
struct word
{
char b[21];
int num;
}a[10000];
char ch;
int i=0,j=0,t,m,n;
struct word temp;
FILE *fp;
(2)输入形式和输入范围:
无
(3)数据输出形式:
x num
(4)程序能达到的功能以及出错处理:
统计文章中每个单词出现的次数,
并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出,
不足5个单词时,按序输出全部单词)。
二、程序设计思路:
三、程序清单
#include<stdio.h>
#include<string.h>
struct word
{
char b[21];
int num;
}a[10000];
int main()
{
char ch;
int i=0,j=0,t,m,n;
struct word temp;
FILE *fp;
fp=fopen("case1.in","r");
while((ch=fgetc(fp))!=EOF) /*将文本中的单词读入结构体中,连接有连字符的单词,将大写改小写*/
{
if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
{
a[i].b[j]=ch;
if(ch>='A'&&ch<='Z')
{ch=ch+32;
a[i].b[j]=ch;
}
j++;
}
else if(ch=='-')
if((ch=fgetc(fp))!='\n')
{i++;
j=0;
a[i].b[j]=ch;
if('A'<=ch&&ch<='Z')
a[i].b[j]=ch+32;}
else
continue;
else
{
i++;
j=0;
}
}
for(;i>=0;)
if(a[i].b[0]>'z'||'a'>a[i].b[0])
i--;
else
break;
i++;
for(m=0,n=0;m<i;m++)
{
while(a[m].b[0]>'z'||'a'>a[m].b[0])
m++;
a[n]=a[m];
n++;
}
for(i=0;i<n-1;i++) /*按字典顺序排序*/
for(j=0;j<n-1-i;j++)
if(strcmp(a[j].b,a[j+1].b)>0)
{strcpy(temp.b,a[j].b);
strcpy(a[j].b,a[j+1].b);
strcpy(a[j+1].b,temp.b);
}
for(i=0;i<n;i++)
a[i].num=1;
for(i=1,j=0;i<n;i++)
if(strcmp(a[j].b,a[i].b)==0)
a[j].num++;
else
{
j++;
a[j]=a[i];
}
for(i=0;i<j;i++) /*判断出现次数,从大到小排序*/
for(t=0;t<j-i;t++)
if(a[t].num<a[t+1].num)
{
temp=a[t];
a[t]=a[t+1];
a[t+1]=temp;
}
j++;
if(j<5) /*判断单词总数,大于或等于5,输出前5个,小于5,输出所有单词*/ for(i=0;i<j;i++)
printf("%s %d\n",a[i].b,a[i].num);
else
for(i=0;i<5;i++)
printf("%s %d\n",a[i].b,a[i].num);
fclose(fp);
return 0;
}
四、小结(收货和体会)
思路虽然较为清晰,但题目中的要求比较多也比较细,代码量较大,经常写到一半就思路乱了导致要重写。
出错时候大多是因为for循环中的跳出条件错误,自己检查时候很难注意到。
将所有错误改正,重新梳理思路后,编译通过,测试运行结果无误,提交至OJ耗时1543ms,虽然仍比不上标程的500-600ms。