可视化程序设计实验报告格式

可视化程序设计实验报告格式
可视化程序设计实验报告格式

说明

《可视化程序设计》实验报告要求按本材料指定的格式来写(标题、目的、器材、内容与步骤、体验五项),内容上在代码部分可根据个人情况,较大的程序可不必加上全部代码,将自己不熟悉的事件代码或自己认为更要的一部分加上即可。总体在20面即可,除个别实验外,每一个实验可控制在2-3面之内。本报告在总成绩中占百之十,无报告或报告不全者将视为本课程不及格论。

实验报告格式

实验一C#语言编程基础操作

实验目的:

1.掌握控制台应用程序设计的一般步骤

2.了解Windows窗体的属性、方法和事件

3.了解控件的属性、方法和事件

4.掌握Windows应用程序设计步骤和方法

实验设备仪器:

PC,要求:windows7/xp/2000/2003操作系统,配置Vc#2008/2010运行环境

实验内容与步骤:

一、在控制台上实现文本的输入与输出:

按照提示输入自己的姓名,程序输出你输入的名字,并欢迎使用C#语言。主要使用Console(控制台)对象的WriteLine和Write方法实现显示;使用ReadLine方法读入字符。参考步骤:

1.为解决方案创建一个控制台应用程序的项目“Example_1”。

2.将“Program.cs”类文件重命名为“Welcome.cs”。

3.将以下代码添加到“Welcome.cs”中。

using System; //给System名字空间加一个using指令,不再需要规定名字空间,就可以使用它们的方法和属性

using System.Collections.Generic;

using System.Text;

namespace Example_1

{

class Welcome

{

/*这种注释

跨越多行*/

static void Main(string[] args)

{

//这是单行注释

Console.Write("请输入你的姓名:"); //Write与WriteLine不同的地方在于它输出时不换行

string strName = Console.ReadLine();

Console.WriteLine("{0}+,你好!\n 欢迎使用C#语言!", strName);

//{0}代替WriteLine方法的参数表中紧随格式串后的第一个变量

}

}

}

4.选择“生成”→“生成解决方案”选项,以生成此项目。

5.选择“调试”→“开始执行(不调试)”选项来执行此应用程序。

此应用程序的输出结果如图1.1所示。

图1.1 Welcome.cs的输出结果

二、创建Windows应用程序项目

要求运行后窗体显示“你好!”,窗体名称为“Hello”,单击“退出”命令按钮可关闭窗体。参考步骤:

Windows应用程序设计的大致步骤是:

1.建立新项目

2.向项目加入窗体

3.向窗体添加控件:标签控件Label1和命令按钮控件Button1

4.为窗体和控件设置属性:

Form1的text属性设为“Hello”;

Label1的text属性设为“你好!”,font属性设为“宋体,26pt”

Button1的text属性设为“退出”,font属性设为“宋体,12pt”

5.为窗体和控件编写事件处理程序

Private void button_Click(object sender,System.EventArgs e)

{

This.Close();

}

实验体会:根据实验内容和步骤,写出实验体会。

实验二Windows窗体基础控件应用

实验目的:

1.加深了解Windows窗体和控件的属性、方法和事件

2.熟练掌握Windows应用程序设计步骤和方法

3.掌握Button控件和TextBox控件的应用

4.初步接触使用MessageBox.Show输出信息的方法

实验设备仪器:

PC,要求:windows7/xp/2000/2003操作系统,配置Vc#2010/2008运行环境

实验内容与步骤:

完成加法练习器的程序编写

参考步骤:

1.创建Windows应用程序项目,项目名称为“加法练习器实例”。

2.向默认窗体中拖入4个Label控件,控件名称为label1—label4。这些Label控件用来显示练习的题目。

3.向窗体中拖入一个TextBox控件,控件名称为textBox1,程序运行后供用户输入答案。4.向窗体中拖入一个Button控件,控件名称为button1,用户单击它可以退出程序。private void textBox1_KeyPress(object sender,

System.Windows.Forms.KeyPressEventArgs e)

{

//在文本框中只能输入数字

if(!(Char.IsDigit(e.KeyChar)==true || e.KeyChar==8))

e.Handled=true;

//如果按了回车键

if(e.KeyChar==13) //回车键的KeyChar为13

{

if(this.textBox1.Text=="")

{

MessageBox.Show("你未输入答案!");

return;

}

int a,b,c;

//将标签和文本框的Text转换成整型数

a=int.Parse(label1.Text);

b=int.Parse(label3.Text);

c=int.Parse(textBox1.Text);

if (c==a+b) //若答案正确

{

//调用消息框的Show方法显示信息

MessageBox.Show("恭喜,你答对了!");

//调用Form1_Load事件处理程序产生下一道题

Form1_Load(null,null);

//清空文本框

textBox1.Text="";

//置光标于文本框内

textBox1.Focus();

}

else //若答案不正确

{

MessageBox.Show("你答错了,再来一次!");

textBox1.Text="";

textBox1.Focus();

}

}

}

Private void button_Click(object sender,System.EventArgs e) {

This.Close();

}

实验体会:根据实验内容和步骤,写出实验体会。

实验三实验四Windows窗体控件操作

实验目的:

1.加深了解Windows窗体和控件的属性、方法和事件

2.掌握PictureBox控件的属性、事件和方法

3.掌握窗体键盘事件的应用

4.掌握具有复杂逻辑程序的代码编写

实验设备仪器:

PC,要求:windows7/xp/2000/2003操作系统,配置Vc#2010/2008运行环境,安装SQL Server2000/2005/2008数据库管理系统

实验内容与步骤:

编写字母练习器程序,程序运行后,窗体中有4个字母由顶部纷纷下落,用户敲击键盘的对应键来击打这些字母。若某个字母被击中,该字母被炸掉,又有一个新的字母从窗体顶部下落。若某字母一直未被击中,到达窗体底部后又从窗体的顶部换成另一个字母落下。这些字母都是随机的。

主要步骤:

1.新建一个Windows应用程序项目,项目名称为“英文字母练习器实例”。

2.向默认窗体中拖入4个Label控件,控件名称为label1—label4。这4个Label控件用来表示要被击打的字母。

3.向窗体中拖入1个PictureBox控件,控件名称为pictureBox1。将一幅预先准备好的表现爆炸景象的图片作为其Image图片来源。该控件的作用是当某个字母被击中时,用它来代替字母,表示该字母被炸掉了。

4.向窗体中拖入2个Timer控件,控件名称为timer1和timer2,其中timer1用来控制4个字母往下移动,timer2用来控制爆炸的延时

5.编写代码

在窗体加载时生成4个随机字母

private void Form1_Load(object sender, System.EventArgs e)

{

……

//初始化字母数组

c=new char[4];

Random randomNumber=new Random();

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

{

//由随机数生成的字母给标签的Text赋值

int rand=randomNumber.Next(26)+65;

c[i]=(char)rand;

Label l=(Label)labelList[i];

l.Text=c[i].ToString();

}

}

控件timer1发生Tick事件时使4个标签下移

private void timer1_Tick(object sender, System.EventArgs e)

{

p[0].Y=p[0].Y+10;

p[1].Y=p[1].Y+5;

p[2].Y=p[2].Y+8;

p[3].Y=p[3].Y+2;

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

{

Label l=(Label)labelList[i];

l.Location=p[i];

if(p[i].Y>=this.Height)

{

p[i].Y=0;

Random randomNumber=new Random();

int rand=randomNumber.Next(26)+65;

c[i]=(char)rand;

l.Text=c[i].ToString();

}

}

}

窗体内按下一键时判断窗体内的字母是否被击中

private void Form1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)

{

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

{

if(e.KeyChar==c[i]|| e.KeyChar-32==c[i])

{

n=i;

pictureBox1.Location=p[i];

pictureBox1.Visible=true;

Label l=(Label)labelList[i];

l.Visible=false;

timer2.Enabled=true;

p[i].Y=0;

l.Location=p[i];

Random randomNumber=new Random();

int rand=randomNumber.Next(26)+65;

c[i]=(char)rand;

l.Text=c[i].ToString();

break;

}

}

}

实验体会:根据实验内容和步骤,写出实验体会。

实验五菜单的应用

实验目的:

1.掌握主菜单的使用

2.掌握上下文菜单的使用

3.掌握工具栏和状态栏的应用

4.掌握通用对话框的使用方法

实验设备仪器:

PC,要求:windows7/xp/2000/2003操作系统,配置Vc#2010/2008运行环境

课时数:4

实验内容与步骤:

完成加法练习器的程序编写

主要步骤:

1.创建Windows应用程序项目,项目名称为“文本编辑器”。

2.向默认窗体中拖入一个MenuStrip控件作为主菜单,控件名MainMenu,编辑它的菜单项。3.向窗体中拖入一个ContextMenuStrip作为快捷菜单,名称ContextMenu,并编辑它的菜单项。

4.向窗体中拖入一个ImageList控件,为工具栏提供图片。

5.向窗体拖入一个ToolStrip控件作为工具栏

6.向窗体拖入一个StatusStrip控件作为状态栏

7.向窗体拖入一个Timer控件,控件状态栏窗格的走时。

8.向窗体拖入一个RichTextBox控件,作为编辑器文本处理的编辑区。

9.编写代码

private void mainMenuItemEdit_Popup(object sender, System.EventArgs e) {

//根据剪贴板中有无格式为Text的数据,

//决定mainMenuItemPaste菜单项是否可用

if(Clipboard.GetDataObject().GetDataPresent(DataFormats.Text))

mainMenuItemPaste.Enabled=true;

else

mainMenuItemPaste.Enabled=false;

//根据文本框中是否选择了文本,

//决定mainMenuItemCut,mainMenuItemCopy,mainMenuItemDelete是否可用

if(textBoxEditer.SelectionLength>0)

{

mainMenuItemCut.Enabled=true;

mainMenuItemCopy.Enabled=true;

mainMenuItemDelete.Enabled=true;

}

else

{

mainMenuItemCut.Enabled=false;

mainMenuItemCopy.Enabled=false;

mainMenuItemDelete.Enabled=false;

}

//根据文本框中是否可执行撤消操作

//决定mainMenuItemUndo是否可用

if(textBoxEditer.CanUndo==true)

mainMenuItemUndo.Enabled=true;

else

mainMenuItemUndo.Enabled=false;

}

private void mainMenuItemNew_Click(object sender, System.EventArgs e)

{

//如果textBoxEditer中有文本

if(textBoxEditer.Text!="")

{

//提示用户是否保存文件

DialogResult result=MessageBox.Show("要保存正在编辑的文件否?","保存文件",

MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);

if(result==DialogResult.Yes)

{ //回答“Yes”就保存文件

mainMenuItemSave_Click(null,null);

textBoxEditer.Clear();

}

if(result==DialogResult.No)

textBoxEditer.Clear();

}

//改写状态栏第一个窗格的文本

statusBarPanel1.Text="就绪";

}

private void mainMenuItemOpen_Click(object sender, System.EventArgs e)

{

//改写状态栏第一个窗格的文本

statusBarPanel1.Text="打开文件";

//如果textBoxEditer中有文本

if(textBoxEditer.Text!="")

{

//提示用户是否保存文件

DialogResult result=MessageBox.Show("要保存正在编辑的文件否?","保存文件",

MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);

//回答“Yes”就保存文件

if(result==DialogResult.Yes)

mainMenuItemSave_Click(null,null);

}

//创建一个OpenFileDialog实例

OpenFileDialog OpenFileDlg=new OpenFileDialog();

//设置文件类型过滤器

OpenFileDlg.Filter="文本文件(*.txt)|*.txt";

//不允许选择多个文件

OpenFileDlg.Multiselect=false;

//单击"OK",选择了要打开的文件

if(OpenFileDlg.ShowDialog()==DialogResult.OK)

{

try

{

//获取要打开的文件名

string fileName=OpenFileDlg.FileName;

//建立文件信息对象

FileInfo f=new FileInfo(fileName);

//打开文件,将文本读入流中

StreamReader reader=f.OpenText();

//将流中的文本输出到textBoxEditer中

textBoxEditer.Text=reader.ReadToEnd();

//关闭流

reader.Close();

}

catch(Exception Exc)

{

MessageBox.Show(Exc.Message);

}

}

//改写状态栏第一个窗格的文本

if(textBoxEditer.Text.Length==0)

{

statusBarPanel1.Text="就绪";

}

else

{

statusBarPanel1.Text="正在编辑";

}

}

private void mainMenuItemSave_Click(object sender, System.EventArgs e) {

//改写状态栏第一个窗格的文本

statusBarPanel1.Text="保存文件";

//创建SaveFileDialog实例

SaveFileDialog SaveFileDlg=new SaveFileDialog();

//设置文件类型过滤器

SaveFileDlg.Filter="文本文件(*.txt)|*.txt";

//创建文件时提示

SaveFileDlg.CreatePrompt=true;

//自动加上扩展名

SaveFileDlg.AddExtension=true;

//单击"OK",选择了要打开的文件

if(SaveFileDlg.ShowDialog()==DialogResult.OK)

{

try

{

//获取要保存的文件名

string fileName=SaveFileDlg.FileName;

//建立StreaWrite实例

StreamWriter writer=new StreamWriter(fileName);

//打开文件,将textBoxEditer中的文本写入文件

writer.Write(textBoxEditer.Text);

//关闭流

writer.Close();

}

catch(Exception Exc)

{

MessageBox.Show(Exc.Message);

}

}

//改写状态栏第一个窗格的文本

statusBarPanel1.Text="正在编辑";

}

private void mainMenuItemExit_Click(object sender, System.EventArgs e) {

this.Close();

}

private void mainMenuItemUndo_Click(object sender, System.EventArgs e) {

//当textBoxEditer可以进行撤消操作时

if(textBoxEditer.CanUndo==true)

{

//调用TextBox.Undo()方法,撤消上一次操作

textBoxEditer.Undo();

//清除缓冲区中有关撤消操作的信息

textBoxEditer.ClearUndo();

}

}

private void mainMenuItemCut_Click(object sender, System.EventArgs e) {

//如果textBoxEditer中选择的文本非空

if(textBoxEditer.SelectedText!="")

{

//调用TextBox.Cut()方法,剪切选中的文本

textBoxEditer.Cut();

}

}

private void mainMenuItemCopy_Click(object sender, System.EventArgs e) {

//如果textBoxEditer中选择的文本长度大于

if(textBoxEditer.SelectionLength>0)

{

//调用TextBox.Copy()方法,复制选中的文本

textBoxEditer.Copy();

}

}

private void mainMenuItemPaste_Click(object sender, System.EventArgs e) {

//如果剪贴板中有数据,并且该数据的格式是文本Text

if(Clipboard.GetDataObject().GetDataPresent(DataFormats.Text)==true) {

//调用TextBox.Paste()方法,将剪贴板的文本粘贴到文本框

textBoxEditer.Paste();

}

}

private void mainMenuItemDelete_Click(object sender, System.EventArgs e) { //移除字符的起点

int start=textBoxEditer.SelectionStart;

//移除字符的个数

int count=textBoxEditer.SelectionLength;

//移除选择的字符

textBoxEditer.Text=textBoxEditer.Text.Remove(start,count);

//将光标置于原先选择的字符初

textBoxEditer.SelectionStart=start;

}

private void mainMenuItemAll_Click(object sender, System.EventArgs e)

{

textBoxEditer.SelectAll();

}

private void mainMenuItemFont_Click(object sender, System.EventArgs e)

{

FontDialog FontDlg=new FontDialog();

//使字体对话框上显示颜色选择框

FontDlg.ShowColor=true;

if(FontDlg.ShowDialog()==DialogResult.OK)

{

//改变文本框中的字体和颜色

textBoxEditer.Font=FontDlg.Font;

textBoxEditer.ForeColor=FontDlg.Color;

}

}

private void mainMenuItemColor_Click(object sender, System.EventArgs e) {

ColorDialog ColorDlg=new ColorDialog();

if(ColorDlg.ShowDialog(this)==DialogResult.OK)

{

//改变文本框中文字的颜色

textBoxEditer.ForeColor=ColorDlg.Color;

}

}

private void contextMenu1_Popup(object sender, System.EventArgs e)

{

//根据剪贴板中有无格式为Text的数据,

//决定contextMenuItemPaste菜单项是否可用

if(Clipboard.GetDataObject().GetDataPresent(DataFormats.Text))

contextMenuItemPaste.Enabled=true;

else

contextMenuItemPaste.Enabled=false;

//根据文本框中是否选择了文本,

//决定contextMenuItemCut,contextMenuItemCopy,contextMenuItemDelete 是否可用

if(textBoxEditer.SelectionLength>0)

{

contextMenuItemCut.Enabled=true;

contextMenuItemCopy.Enabled=true;

contextMenuItemDelete.Enabled=true;

}

else

{

contextMenuItemCut.Enabled=false;

contextMenuItemCopy.Enabled=false;

contextMenuItemDelete.Enabled=false;

}

//根据文本框中是否可执行撤消操作

//决定contextMenuItemUndo是否可用

if(textBoxEditer.CanUndo==true)

contextMenuItemUndo.Enabled=true;

else

contextMenuItemUndo.Enabled=false;

}

private void textBoxEditer_MouseDown(object sender,

System.Windows.Forms.MouseEventArgs e)

{

//若按下鼠标右键

if(e.Button.ToString()=="Right")

{

Point pt=new Point(e.X,e.Y);

//显示快捷菜单

contextMenu1.Show(textBoxEditer,pt);

}

}

private void contextMenuItemUndo_Click(object sender, System.EventArgs e) {

mainMenuItemUndo_Click(null,null);

}

private void contextMenuItemCut_Click(object sender, System.EventArgs e) {

mainMenuItemCut_Click(null,null);

}

private void contextMenuItemCopy_Click(object sender, System.EventArgs e) {

mainMenuItemCopy_Click(null,null);

}

private void contextMenuItemPaste_Click(object sender, System.EventArgs e)

{

mainMenuItemPaste_Click(null,null);

}

private void contextMenuItemDelete_Click(object sender, System.EventArgs e)

{

mainMenuItemDelete_Click(null,null);

}

private void toolBar1_ButtonClick(object sender,

System.Windows.Forms.ToolBarButtonClickEventArgs e)

{

//调用相应的主菜单功能

switch(e.Button.ToolTipText)

{

case"新建":mainMenuItemNew_Click(null,null);

break;

case"打开":mainMenuItemOpen_Click(null,null);

break;

case"保存":mainMenuItemSave_Click(null,null);

break;

case"撤消":mainMenuItemUndo_Click(null,null);

break;

case"剪切":mainMenuItemCut_Click(null,null);

break;

case"复制":mainMenuItemCopy_Click(null,null);

break;

case"粘贴":mainMenuItemPaste_Click(null,null);

break;

case"删除":mainMenuItemDelete_Click(null,null);

break;

}

}

private void Form1_Closing(object sender,

https://www.360docs.net/doc/4f8988828.html,ponentModel.CancelEventArgs e)

{

//如果textBoxEditer中有文本

if(textBoxEditer.Text!="")

{

//提示用户是否保存文件

DialogResult result=MessageBox.Show("要保存正在编辑的文件否?","保存文件",

MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);

//回答“Yes”就保存文件

if(result==DialogResult.Yes)

mainMenuItemSave_Click(null,null);

}

}

private void textBoxEditer_KeyDown(object sender,

System.Windows.Forms.KeyEventArgs e)

{

//若按下了“Insert”键

if(e.KeyValue==45)

{

//若当前为插入状态

if(insert==true)

{

//插入标记改为false

insert=false;

//修改状态栏第二个窗格的文本

statusBarPanel2.Text="改写";

}

//若当前为改写状态

else

{

//插入标记改为true

insert=true;

//修改状态栏第二个窗格的文本

statusBarPanel2.Text="插入";

}

}

}

private void Form1_Load(object sender, System.EventArgs e)

{

//插入标记为true

insert=true;

//初始化状态栏

this.statusBarPanel1.Text="就绪";

this.statusBarPanel2.Text="插入";

this.statusBarPanel3.Text=DateTime.Now.ToLongTimeString();

}

private void timer1_Tick(object sender, System.EventArgs e)

{

//将系统当前时间显示在状态栏的第三个窗格中

this.statusBarPanel3.Text=DateTime.Now.ToLongTimeString();

}

private void textBoxEditer_TextChanged(object sender, System.EventArgs e) {

//修改状态栏第一个窗格的文本

if(textBoxEditer.Text.Length==0)

{

statusBarPanel1.Text="就绪";

}

else

{

statusBarPanel1.Text="正在编辑";

}

}

实验体会:根据实验内容和步骤,写出实验体会。

实验六数据查询窗体设计

实验目的:

1.掌握使用数据连接向导连接SQL Server数据库的方法

2.掌握在Windows应用程序中查询SQL Server数据库的方法

3.初步掌握tabControl控件的使用

实验设备仪器:

PC,要求:windows7/xp/2000/2003操作系统,配置Vc#2005/2008运行环境,安装SQL Server2000/2005/2008数据库管理系统

实验内容与步骤:

设计一个数据查询窗体,用户可以按照多种查询条件来查询数据库中的数据。

主要步骤:

1.创建Windows应用程序项目,项目名称为“数据查询窗体”。

2.向窗体中加入一个Label控件,标明窗体的功能。

3.向窗体中拖入一个TabControl控件,为它设计四个页面,分别对应“按学号查询”、“按姓名查询”、“按班级查询”和“按籍贯查询”。

4.在每个页面,加入一个GroupBox控件,然后在GroupBox控件内再加入一个Label控件、一个TextBox控件和一个DataGrid控件,用来表示查询的内容并显示查询的结果。

5.向窗体加入两个命令按钮控件,分别用来启动“查询”和“退出”功能。

6.将窗体连接到数据库XSGL

7.编写代码

private void Form1_Load(object sender, System.EventArgs e)

{

//提取所有行填充数据集

https://www.360docs.net/doc/4f8988828.html,mandText=

"SELECT 学号, 姓名, 性别, 班级, 出生日期, 政治面貌,籍贯FROM 学生信息表";

DataSet mySet=new DataSet();

sqlDataAdapter1.Fill(mySet,"学生信息表");

dataGrid1.DataSource=mySet.Tables["学生信息表"];

}

private void Form1_Activated(object sender, System.EventArgs e)

{

//设置光标到“学号”文本框

textBoxNumber.Focus();

}

private void buttonQuery_Click(object sender, System.EventArgs e)

{

DataSet mySet=new DataSet();

int n;

switch(this.tabControl1.SelectedIndex)

{

//按学号查询数据

case 0:string number=textBoxNumber.Text.Trim();

https://www.360docs.net/doc/4f8988828.html,mandText=

"SELECT 学号, 姓名, 性别, 班级, 出生日期, 政治面貌,籍贯FROM 学生信息表where 学号='"+number+"'";

n=sqlDataAdapter1.Fill(mySet,"学生信息表");

dataGrid1.DataSource=mySet.Tables["学生信息表"];

if (n==0)

{

MessageBox.Show("没有该学号的学生信息。","查询信息",MessageBoxButtons.OK,

https://www.360docs.net/doc/4f8988828.html,rmation);

}

textBoxNumber.Text="";

textBoxNumber.Focus();

break;

//按姓名查询数据

case 1:string name=textBoxName.Text.Trim();

https://www.360docs.net/doc/4f8988828.html,mandText=

"SELECT 学号, 姓名, 性别, 班级, 出生日期, 政治面貌,籍贯FROM 学生信息表where 姓名='"+name+"'";

n=sqlDataAdapter1.Fill(mySet,"学生信息表");

dataGrid2.DataSource=mySet.Tables["学生信息表"];

if (n==0)

{

MessageBox.Show("没有该姓名的学生信息。","查询信息",MessageBoxButtons.OK,

https://www.360docs.net/doc/4f8988828.html,rmation);

}

textBoxName.Text="";

textBoxName.Focus();

break;

//按班级查询数据

case 2:string Class=textBoxClass.Text.Trim();

https://www.360docs.net/doc/4f8988828.html,mandText=

"SELECT 学号, 姓名, 性别, 班级, 出生日期, 政治面貌,籍贯FROM 学生信息表where 班级='"+Class+"'";

n=sqlDataAdapter1.Fill(mySet,"学生信息表");

dataGrid3.DataSource=mySet.Tables["学生信息表"];

if (n==0)

{

MessageBox.Show("没有该班级的学生信息。","查询信息",MessageBoxButtons.OK,

https://www.360docs.net/doc/4f8988828.html,rmation);

C语言程序设计课程设计题目

1 一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2 成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式

进行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3 迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

程序设计实验报告

学生实验报告 院系:测绘学院 专业班级:测绘13级3班 学号:2013305517 学生姓名:王泽 指导教师:郭辉老师 2016年05月20日

安徽理工大学实验报告 实验课程名称:数据结构与软件开发上机实验 开课院系及实验室:测绘学院红楼二楼机房 实验1 编程基本知识练习 实验目的: 通过该实验课内容的练习,学生应掌握VB 编程的基本语法、变量的定义、数组(动态数组)的定义、VB 语言中子过程与函数的定义以及文本文件的读写等知识。 实验内容: 1)变量的定义动态数组的定义与应用; 2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现); 3)数据文件的建立、数据的读取与写入。 实验步骤: 1.编辑界面 1.1 打开VB 编程工具,进入编程主界面。

1.2 在窗体上新建“读入数据”和“输出数据”两个按钮。 1.3 双击“窗体”进入代码输入界面,进行代码编辑。 2.用VB 编写的源代码 2.1 矩阵基本运算源码详见附录一。 (1)两矩阵相加 (2)两矩阵相减 (3)矩阵转置 (4)两矩阵相乘 (5)矩阵求逆 2.2 文本文件(本实验中data.txt)的读取源代码 (1)建立文本文件并输入数据 在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\data.txt”)。输入以下内容: 6,7,4,0.005 A,35.418 B,45.712 C,25.270

D,24.678 在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\result.txt”)。(2)从文本文件中读数据 Dim linedata as string, m_GaochaN as integer,m_Pnumber as integer,m_knPnumber as integer,M as Double,k1 as integer 'linedata 为存储文本文件一行信息的字符串变量 Dim a() as String,H() as Double 'a()为存储点名,H()存储高程 Open“C:\Users\ WH\Desktop\练习\data.txt”For Input As #1 Line Input #1, linedata k = Split(linedata, ",") m_GaochaN = Val(k(0)) m_Pnumber = Val(k(1)) m_knPnumber = Val(k(2)) M = CDbl(k(3)) For k1 = 1 To m_knPnumber Line Input #1, linedata k = Split(linedata, ",") a(k1)= k(0) GetstationNumber (a) H(k1) = CDbl(k(1)) Next Close #1 (3)将读入点名存储到点名数组中,且返回该点名所对应编号 Function GetstationNumber(name As String) Dim i As Integer For i = 1 To m_Pnumber If P_Name(i) <> "" Then '将待查点名与已经存入点名数组的点比较 If P_Name(i) = name Then GetstationNumber = i Exit For End If Else '待查点是新的点名,将新点名放到P_Name 数组中 P_Name(i) = name GetstationNumber = i Exit For End If Next i End Function (4)从文本文件中写数据(将从data.txt 读入的数据,写入到result.txt 文件中) Open“C:\Users\ WH\Desktop\ 练习\result.txt” For Output As #1 outstring = outstring + str(m_GaochaN) +","

程序设计基础课程设计

设计题目:学生成绩管理系统班级:计0902 姓名:付乐颖 学号:20091221067 完成日期:2010.10.15

1. 课程设计目的和要求 随着科学的发展和社会的进步,许多过去有人工处理的繁杂事务开始交付计算机来完成。学生成绩管理系统可以说是一个得力助手,它利用计算机对学生成绩进行统一管理,实现学生成绩信息管理工作流程的系统化、规范化和自动化,提高了广大教师的工作效率。 本程序旨在训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件等的各种基本操作,使学生能对C语言的文件操作有一个更深的理解。为进一步开发出高质量的信息管理系统打下坚实的基础。 2. 课程设计任务内容 学生包含以下信息项:学号、姓名、学院、班级、高数成绩、英语成绩、C语言成绩、总分、平均分。系统的主要功能包括: 1. 创建学生成绩信息文件,根据提示输入学生的各项信息,计算出总分和平均分,然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。 2. 增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息,要求:增加后的学生信息仍按学号排序,并继续保存至原文件。 3. 删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。 4. 修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。 5. 按不同条件对学生信息进行查询操作,输出满足条件的学生信息。 (1) 按学号查询,输入一个学号,输出对应的学生信息。

C语言程序设计实验报告(实验大纲+过程)

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分:4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握 C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的? 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; pr intf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序:

程序设计基础课程设计报告 内容样例

第一章目的与要求 书上有。 第二章需求分析 软件设计的一个重要的环节就是需求分析。本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是ATM取款机管理系统所需要的需求分析。 ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。 ①登录: 输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面 ②挂失功能: 确认是否对银行卡进行挂失,挂失后账户无法操作 ③修改密码: 用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码 ④取款功能: 用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内 ⑤转账功能: 用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账

号 ⑥查询功能: 用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额 模拟ATM取款机的操作: 首先录入账户信息,格式如下 ㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、挂失功能:挂失后,该账户不能进行任何操作。 ㈤、修改密码:输入原密码和新设置密码。 ㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。

第三章设计分析 3.1、ATM系统管理 3.1.1系统基本功能 首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。 基本功能: 登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 查询功能---------查询账户余额。 取款功能---------取款,更新余额。 挂失功能---------挂失后,该账户不能进行任何操作。 修改密码---------输入原密码和新设置密码。 转账功能---------输入转账的转出账户以及转账金额,进行转账。、

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

浙江大学Linux程序设计实验报告

Linux程序设计实验报告1 ——操作系统基本命令使用 一、实验目的 1.通过对Emacs、vi、vim、gedit文本编辑器的使用,掌握在Linux环境下文本文件的编辑方法; 2.通过对常用命令mkdir、cp、cd、ls、mv、chmod、rm等文件命令的操作,掌握Linux操作系统中文件命令的用法。 二、实验任务与要求 1.emacs的使用,要求能新建、编辑、保存一个文本文件 2.vi或vim的使用,要求能新建、编辑、保存一个文本文件 3.gedit的使用,要求能新建、编辑、保存一个文本文件 4.掌握mkdir、cd命令的操作,要求能建立目录、进入与退出目录 5.掌握cp、ls、mv、chmod、rm命令的操作,要求能拷贝文件、新建文件、查看文件、文件重命名、删除文件等操作。 三、实验工具与准备 计算机PC机,Linux Redhat Fedora Core6操作系统 四、实验步骤与操作指导 任务1.学习emacs的使用,要求能新建、编辑、保存一个文本文件 (1)启动emacs (2)输入以下C程序 (3)保存文件为kk.c (4)用emacs打开文件kk.c (5)修改程序 (6)另存为文件aa.txt并退出。 任务2.vi或vim的使用,要求能新建、编辑、保存一个文本文件 (1)点击”应用程序”→ “附件”→“终端”,打开终端,在终端输入命令: [root@localhost root]#vi kk.c 按i键,进入插入状态。 (2)输入以下C程序 #include int main( ) {

printf(“Hello world!\n”); return 0; } 此时可以用Backspace、→、←、↑、↓键编辑文本。 (3)保存文件为kk.c 按Esc键,进入最后行状态,在最后行状态输入:wq保存文件,退出vi。 (4)用vi打开文件kk.c,输入命令: [root@localhost root]#vi kk.c (5)修改程序为: #include int main( ) { printf(" Hello world!\n"); printf("*****************\n"); return 0; } (6)按Esc键,进入最后行状态,在最后行状态输入:wq aa.txt保存文件,如图1所示,另存为文件aa.txt并退出vi。。 图1 程序编辑环境 任务3.gedit的使用,要求能新建、编辑、保存一个文本文件 (1)启动gedit,点击”应用程序”→ “附件”→“文本编辑器”,打开文本编辑器,如图所示。

Java程序设计-实验报告1-模板 (1)

实验报告 课程名称Java程序设计 实验项目实验一类和对象 系别_________计算机_________ 专业/班级_______计算机类/1402______ 姓名_____李馨雪________ 实验日期______2015.10.10______ 成绩_______________________ 指导教师

一、实验题目:实验一类和对象 二、实验内容: (1)用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。 1)PC类与CPU类和HardDisk类关联的UML图如图所示。 其中,CPU类要求getSpeed()返回speed的值,setSpeed(int m)方法 将参数m的值赋值给speed。 HardDisk类要求getAmount()返回amount的值,setAmount(int m)方 法将参数m的值赋值给amount。 PC类要求setCPU(CPU c)将参数c的值赋值给cpu,要求setHardDisk (HardDisk h)方法将参数h的值赋值给HD,要求show()方法能显示 cpu的速度和硬盘的容量。 2)主类Test的要求 main()方法中创建一个CPU对象cpu,其speed设置为2200; main()方法中创建一个HardDisk对象disk,其amount设置为200; main()方法中创建一个PC对象pc, pc调用setCPU方法,实参是cpu;调用setHardDisk方法,实参是 disk;调用show方法。 (2)设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,要求如下: 1)编写接口Animal,有2个抽象方法cry()和getAnimaName(); 2)编写模拟器类Simulator,该类有一个playSound(Animal animal)方法,其形参是Animal类型,可以调用实现Animal接口的类所重写的cry()方法播放具体动物的声音,调用重写方法显示动物种类的名称; 3)编写实现Animal接口的Dog类和Cat类。具体的UML图如下所示:4)编写主类Application,其main方法中至少包含如下代码: Simulator si=new Simulator();

程序设计基础课程设计

1 矩阵的操作(6人) 设有两个矩阵A=(a ij)m×n,B=(b ij)p×q 实现要求: ⑴编写矩阵输入函数INPUT_MAT,通过该函数完成矩阵的输入并返回保存矩阵的数组和对应矩阵的行数、列数。(不能使用全局变量) ⑵编写矩阵输出函数OUTPUT_MAT,通过该函数完成矩阵的输出。 ⑶求矩阵的转置,矩阵的转置A’=(a ji)n×m,转置前输出原矩阵,转置后输出转置矩阵。 ⑷求矩阵A、B的和。矩阵A和B能够相加的条件是:m=p,n=q;矩阵A和B如果不能相加,请给出提示信息;若能够相加,则求和矩阵C并输出C。 C=A+B=(c ij)m×n,其中c ij=a ij+b ij ⑸求矩阵A、B的积。矩阵A和B能够相乘的条件是:p=n;矩阵A和B 如果不能相乘,请给出提示信息;若能够相乘,则求积矩阵D并输出D。 D=A×B=(d ij)m×q,其中d ij=∑a ik×b kj,k=1,2,……,n ⑹设计一个菜单,具有求矩阵的转置、求矩阵的和、求矩阵的积、退出等基本的功能。在求矩阵的和或求矩阵的积时要求能够先提示输入两个矩阵的,然后再进行相应的操作。

2 数据汇总 (6人) 问题描述: 在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。 假设某超级市场销售有m种商品(假设商品的编号为1,2,3,┅┅,m),有n台前台收款机(假设收款机的编号为1,2,3,┅┅,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。实现要求: ⑴编写实现将数据记录插入到数据文件的最后的函数; ⑵编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表; ⑶统计每台收款机的销售总额; ⑷编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表; ⑸以商品为单位,统计每种商品的销售总额。 ⑹设计一个菜单,具有插入数据记录、按收款机统计销售总额、按商品统计销售总额、退出系统等最基本的功能。

实验二M精编B程序设计含实验报告

实验二M精编B程序设 计含实验报告 The following text is amended on 12 November 2020.

实验二 MATLAB 程序设计 一、 实验目的 1.掌握利用if 语句实现选择结构的方法。 2.掌握利用switch 语句实现多分支选择结构的方法。 3.掌握利用for 语句实现循环结构的方法。 4.掌握利用while 语句实现循环结构的方法。 5.掌握MATLAB 函数的编写及调试方法。 二、 实验的设备及条件 计算机一台(带有以上的软件环境)。 M 文件的编写: 启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器 (Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正 三、 实验内容 1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。并输入几组典型值加以检验。 (提示:提示输入使用input 函数) 2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。 要求:(1)用switch 语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 (提示:注意单元矩阵的用法) 3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 21 21 421 运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。 请为关键的Matlab 语句填写上相关注释,说明其含义或功能。 4. y

《测量程序设计课程设计》指导书-2015

测量数据处理程序设计指导书 设计名称:测量数据处理程序设计 计划周数:2周 适用对象:测绘工程专业本科 先修课程:测量学,测量平差基础,大地控制测量,测量程序设计 一、设计目的 测量数据处理程序设计是学生在系统学习完大地控制测量学、测量平差基础、测量程序设计等相关课程之后,为了系统理解控制网平差的整体过程及综合运用科学工具而安排的。通过课程设计主要达到以下几个目的:掌握控制网平差课程设计具体内容、方法和步骤;通过理论联系实际,进一步巩固已学到的专业理论知识,并加深对理论的认识;培养学生对编写代码,上机调试和编写说明书等基本技能;锻炼学生阅读各类编程参考书籍及加以编程运用的能力。 二、设计内容及日程 在VB、 VC软件或matlab科学计算软件的平台上,选择的具体课程设计题目,进行程序设计与实现,共计10个工作日,工作程序如下: 三、设计的组织: 1.设计领导 (1)指导教师:由教研室指派教师、实验员兼任。

职责:全面组织设计大纲的实施,完成分管工作及相关技术指导。 (2)设计队长:学生班长兼任。 职责:协助教师做好本班学生的人员组织工作。 (3)设计组长:每组一人。 职责:组织执行下达的设计任务,安排组内各成员的工作分工。 2.设计分组 学生实习作业组由3~4人组成(含组长一人)。 四、设计内容 在VB、VC或MATLAB 软件平台上,按选择的设计题目进行相关程序开发 1、闭合导线简易平差、附合导线简易平差支导线计算 2、闭合水准网计算、附合水准网简易平差 3、地形图编号(新、旧两种方法) 4、误差椭圆的参数的计算与绘制误差椭圆 5、水准网严密平差 6、高斯正反算计算 7、高斯投影换带计算 8、七参数大地坐标转换(WGS84-bj54坐标转换、WGS84-CGCS2000坐标转换) 9、四参数坐标转换(西安80-bj54坐标转换、CGCS2000-bj54坐标转换、CGCS2000-西安80坐 标转换(平面) 10、大地高转换为正常高的计算 11、工程投影变形超限的处理 12、遥感图像数据处理 13、曲线(曲面)拟合 14、摄影测量空间后方交会 15、****管理信息系统设计与开发 五、上交成果 1) 小组利用vb、vc或matlab编写的软件包一个及测试数据一份 2)小组关于所开发程序设计说明书一份 3) 个人课程设计的心得一份 4)小组答辩PPT一份

C+程序设计实验报告-2013

C++程序设计 实验报告 专业计算机科学与技术班级 ____________ 学号 ____________ 姓名 ____________ 指导教师 __许加兵_ 信息与电子工程学院2013年9月-12月

C++程序设计实验报告 专业__________班级__________学号__________姓名__________ 成绩____________ 指导教师____________ 日期____________ 实验1 C++集成开发环境与C++函数程序设计 一、实验目的 1、了解和使用Visual Studio 2010的C++集成开发环境; 2、熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、学会完整的C++程序开发过程; 4、学习并掌握C++函数程序设计; 二、实验内容 1、安装、了解和使用Visual Studio 2010的C++集成开发环境; 2、通过以下的C++函数程序设计,熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、通过以下的C++函数程序设计,学会完整的C++程序开发过程; 4、完成以下的C++函数程序设计和调试: 1)编写一个函数print(),将一个整型向量输出到cout。此函数接受两个参数:一个字符串(用于“标记”输出)和一个向量。 2) 编写一个函数,接受一个vector 参数,返回一个vector ,其每个元素值是对应字符串的长度。此函数还找出最长和最短的字符串,以及字典序第一个和最后一个字符串。 三、简要说明C++开发环境安装和配置的过程

C程序设计上实验报告(完整版)

C语言程序设计上机实验报告 学院:机械工程学院 班级:机自161213 姓名:刘昊 学号:20162181310 实验时间:2017年3月6号 任课老师:张锐

C语言程序设计上机实验报告 实验一 一、实验名称: C程序的运行环境和运行C程序的方法 二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C 程序 三、实验内容: (1). 输入并运行一个简单的C程序。 (2). 设计程序,对给定的两个数求和。 (3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。 四、源程序代码: 代码1: 运行结果1:

程序分析1: 该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。 代码2: 运行结果2:

程序分析2: 简单的使用printf()和scanf()函数进行简单的数据运算。代码3: 运行结果3:

程序分析3: 使用if语句进行判断。 五.实验总结 C语言程序设计上机实验报告 实验二 一、实验名称:顺序结构程序设计 二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法, 熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。 三、实验内容: (1). 编写程序,实现小写字母转大写。

(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。 (3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。 (4). 编写程序,实现单字符getchar和putchar输入输出。 (5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。 四、源程序代码 代码1: 运行结果1: 程序分析1:

C++面向对象程序设计课程设计报告

. 课程设计 课程名称C++面向对象程序设计题目名称公司人员管理系统 专业班级13级计算机科学与技术一班学生林涛、甑德胜、梁增辉 吴志伟、齐、江靖 学号51302011015、51302011016、51302011001 51302011037、51302011006、51302011009指导教师郭有强 二○一四年六月二十日

目录 一、引言 (2) 二、课程设计报告 (4) 1、问题描述 (4) 2、系统总体方案 (4) 3、设计思路和主要步骤 (5) 4、各功能模块和流程图 (5) (1)各功能模块 (5) (2)流程图 (6) 三、系统测试 (9) 四、心得体会 (15) 五、参考文献 (17) 附:程序设计代码 (18)

一、引言 1985年,管理信息系统的创始人,高登?戴维斯给出的管理信息系统的定义是:“它是一个利用计算机硬件和软件,手工作业,分析、计划、控制和决策模型,以及数据库的用户一机器系统。它能提供信息,支持企业或组织的运行、管理和决策。”这个定义说明了管理信息系统的组成要素:计算机硬件、软件、数据库、模型库和用户。 随着我国社会的不断进步,人们对管理信息系统越来越重视,再加之管理信息系统在管理方面所产生的巨大影响,也使得人们越来越关注管理信息系统的发展趋势。由于管理信息系统的发展受到以上各种变革因素的制约,传统的管理信息系统必然向现代管理信息系统发展,在这个发展过程中,管理信息系统的发展将会呈现出以下趋势: 管理信息系统将会越来越注重以人为本。管理科学的发展有科学管理理论、行为管理理论和现代管理理论三个发展阶段,正在向着越来越人性化的方向发展,即以人为本。基于管理学的这一研究视角,管理信息系统也将向着更加人性化的方向发展。在今后的管理信息系统中将会越来越注重人的因素,以人为出发点和中心,围绕着激发和调动人的主动性、积极性、创造性展开的,以实现人与社会共同发展的一系列管理活动。而且这种人性化还会贯穿于管理信息系统的开发设计与研究中,具体表现为今后的管理信息系统将具有更加友好的人机界面,易于人们操作,也会考虑到不同用户的不同需求,更加个性化。 管理信息系统向智能化方向发展。随着人工智能技术的发展,数据仓库、数据挖掘技术在管理信息系统中的应用,管理信息系统必将向着智能化方向发展,如产生了很多的决策支持系统、专家系统等等。智能化的管理信息系统具有思维模拟活动,它具有很高的自学习、自组织和进化性,并具有知识创新功能,可以解决非结构化事务,在决策中处于主导地位,是人的向导,在体系上将是大规模分布式计算模式,以基于网络神经元构件的智能网为主。 管理信息系统向集成化方向发展。随着当前系统集成技术的提高,集成技术和方法也逐步地运用到管理信息系统中。由于管理信息系统将包含多个子系统,因此将这些功能集合在一起以便更好地发挥它的作用,这就是集成化的管理信息系统。集成化的管理信息系统将管理信息系统的各个子系统有机地结合起来,达到互通信息、共享数据资源的目的,其支撑技术是数据库和计算机网络。集成管

高级程序设计实验报告

高级程序设计 实验报告 班级 学号: 姓名: 实验名称: 指导老师: 日期:

实验十一文件和流I/O 一、实验题目:文件和流I/O 二、实验内容: 1.掌握磁盘的基本操作 2.掌握目录的基本操作 3.文件的基本操作 4.文本文件的读取和写入 5.字符串的读取和写入 6.二进制文件的读取和写入I 7. 二进制文件的读取和写入2 三、主要程序代码: 1. using System; using System.IO; using System.Collections.Generic; using System.Text; namespace实验1 { class Test { public static void Main() { DriveInfo[] allDrives = DriveInfo.GetDrives(); foreach (DriveInfo d in allDrives) { Console.WriteLine("Drive {0}", https://www.360docs.net/doc/4f8988828.html,); Console.WriteLine(" File type: {0}", d.DriveType); if (d.IsReady == true) { Console.WriteLine(" Volume label: {0}", d.VolumeLabel); Console.WriteLine(" File system: {0}", d.DriveFormat); Console.WriteLine(" Available space to current user:{0, 15} bytes",d.AvailableFreeSpace); Console.WriteLine("Total available space: {0, 15} bytes",d.TotalFreeSpace); Console.WriteLine( " Total size of drive: {0, 15} bytes ", d.TotalSize); } } Console.ReadKey();

《C语言程序设计》课程设计

《C语言程序设计》课程设计 刘力斌 一、意义和目的 C语言是光信息科学与技术专业的重要专业基础课。在很多后续课程中,都要使用到C语言。 学生通过对C语言的学习,已经具备了使用C语言编写简单的应用程序的能力。为了加强程序设计基础,开设课程设计课,使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。 课程设计目的: 提高用程序设计解决实际问题的能力。 通过提出算法、指定输入输出来设计一个解决方案。 用C语言合理地开发两个简洁有效的程序代码来实现该设计。 测试程序是否工作且满足设计指标并评价其效率。 二、目标 完成本课程设计的学生应能在以下几方面证明你们的能力: A、分析问题。各种简单的与计算机有关的案例中所需要的输出结果,把大问题分解成小问题,使用自顶向下或类似设计方法给出模块化或计划。 B、提出算法执行特定任务。模块表示为算法,使用自顶向下或伪代码等设计手段将模块细化成更详细的成分,清楚地表明顺序、选择和重复等到控制结构。 C、把一个算法变为用C语言编写的结构化程序。 D、用合适的测试方法检查程序是否符合最初的要求,为不合适数据设计错误陷阱,并提供错误信息来帮助用户。 E、写出清晰的用户文档,确保用户或者通过遵循程序中的指示或者使用程序设计者编写的文档能成功地运行程序。 F、写出技术文档,对程序中主要标示符的含义或作用加以说明,并提供一个完整的程序流程图。 G、调试程序、测试数据过程成功。

三、要求 参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而,反映出理解和运用本课程知识的水平和能力。 完成课程设计应提交如下文档: ①程序的总体设计和算法分析。 ②技术文档 ③用户文档 ④源程序代码清单。 ⑤测试数据和测试过程记录。 ⑥遇到的问题及解决方法分析。 四、选题 每人一个题,具体题目可以参考附录。 第一题:链表操作题(包括建立、插入、删除、打印等)(参考教材); 第二题:文件操作,具体题目最好是自拟。 如果选题确实有困难的同学,可参考后面参考题目来完成本课程设计(成绩要影响)。 五、评价 评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的一套文件中,严格检查以下各项任务完成情况: 1、课程设计文档是否齐全。 2、程序的用户文档 如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。 3、问题或任务的陈述(描述问题,而且问题是合理原始的、应当包括输 入、输出及其预期范围。)是否正确。 4、问题的解决方案采取由顶向下设计的形式,在适当的地方使用伪代 码,把整个解决方案划分成若干模块。 5、程序完成后的代码应当加以注解。最少应清楚指出每一个模块。 6、用于检查程序的测试数据,或者对一个控制程序给出测试的例程。测 试应考虑探索通过程序的几条路径,在合适的地方选择打印输出来。 7、程序的技术文档

C#程序设计实验报告

学生实验报告 (理工类) 课程名称: C#程序设计专业班级:M11计算机科学与技术(专转本)学生学号: XXXXXXXX 学生姓名: XXX 所属院部:信息技术学院指导教师: XXX 2012 — 2013学年第 1 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:C#基础编程实验学时: 6 同组学生姓名:实验地点: A205 实验日期: 9月17日-9月24日实验成绩: 批改教师:批改时间:

实验1 C#基础编程 一、实验目的 1、熟悉Visual Studio .NET开发环境; 2、掌握C#应用程序的基本操作过程; 3、掌握C#的数据类型,运算符以及表达式的使用; 4、掌握分支和循环语句的使用方法; 5、掌握一维数组,二维数组及数组型数组的使用。 二、实验要求 (1)编写程序要规范、正确,上机调试过程和结果要有记录; (2)做完实验后给出本实验的实验报告。 三、实验设备、环境 安装有Visual Studio .NET软件。 四、实验步骤 1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。 五、实验内容 1、编写一个简单的控制台应用程序,打印一行文字(如你的姓名)。using System; using System.Collections.Generic; using System.Text; namespace Test1_1 { class Program { static void Main(string[] args) { Console.WriteLine("1121412016 张明星!"); Console.ReadLine(); } } } 2、编写一个简单的Windows应用程序,在标签中显示你的姓名。 Form窗体的代码: using System; using System.Collections.Generic;

相关文档
最新文档