C_课程设计报告---简单记事本的设计

C_课程设计报告---简单记事本的设计
C_课程设计报告---简单记事本的设计

《C#语言程序设计》课程设计报告

题目简单记事本的设计院、系(部)计算机科学与技术学院专业及班级计算机网络技术

姓名

日期

1 题目要求

使用C#语言设计一个Windows自带记事本,软件界面美观大方,操作简洁易用,功能完备可靠,必须上机调试通过。程序中应有不少于100~300行的自行编写的代码,代码需书写详细注释。

2 功能需求

实现记事本软件的基本功能,具有文本文件的新建、打开、保存功能,文字的全选、剪切、复制、粘贴、删除、撤销、查找、替换功能,字体类型、格式的设置、显示当前日期与时间的功能,并在此记事本程序基础上增加设置字体颜色,添加状态栏功能。

3 总体设计

4 详细设计

Program.cs:代码如下

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

namespace note

{

static class Program

{

///

/// 应用程序的主入口点。

///

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

}

}

Form1.cs代码如下:

using System;

using System.Collections.Generic;

using https://www.360docs.net/doc/9311967704.html,ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace note

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

Form2 form2 = new Form2();//实例化查找窗体

Form3 form3 = new Form3();//实例化替换窗体

public string filepath = "";//文件路径

//新建记事本

public void new_Click(object sender, EventArgs e)

{

if (richTextBox1.Modified)//判断输入区是否被修改

{

save_Click(sender, e);

richTextBox1.Text = "";//清空输入框

}else

richTextBox1.Text = "";

}

//打开文件

public void open_Click(object sender, EventArgs e)

{

//“打开”对话框,主要用于打开文件

OpenFileDialog openFileDialog1 = new OpenFileDialog();

//设置打开文件格式

openFileDialog1.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"; if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

//对文件进行读写操作

StreamReader sTmp = new StreamReader(openFileDialog1.FileName, Encoding.Default);

richTextBox1.Text = "";

this.Text=openFileDialog1.SafeFileName+" - 记事本";

//读取文件内容

richTextBox1.Text = sTmp.ReadToEnd();

}

}

//保存文件

public void save_Click(object sender, EventArgs e)

{

//另存为对话框,用于将文本保存到指定的位置

SaveFileDialog saveFileDialog1 = new SaveFileDialog();

//定义要打开的文件格式

saveFileDialog1.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"; //显示一个"提示框"

if (MessageBox.Show("需要保存文件吗?", "提示框", MessageBoxButtons.YesNo) == DialogResult.Yes)

{

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

{

if (filepath.Length == 0)

{

//获取要打开文件的绝对路径

filepath = saveFileDialog1.FileName;

}

StreamWriter sTmp = new StreamWriter(filepath);

sTmp.Write(richTextBox1.Text);//输出流

sTmp.Flush();//清除缓存

sTmp.Close();

}

}

}

//另存为

public void saveWhere_Click(object sender, EventArgs e)

{

save_Click(sender, e);

}

//打印

public void print_Click(object sender, EventArgs e)

{

//打印对话框,用于选择打印机,打印页数及确定其他与打印机相关的设置 PrintDialog pd = new PrintDialog();

//显示一个模态打印对话框

pd.ShowDialog();

}

//退出

public void exit_Click(object sender, EventArgs e)

{

save_Click(sender, e);

this.Close();

}

//字体

public void font_Click(object sender, EventArgs e)

{

//字体对话框,用于设置字体

FontDialog fontDialog1 = new FontDialog();

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

{

richTextBox1.Font = fontDialog1.Font;

}

}

//打印设置

public void set_Click(object sender, EventArgs e)

{

PrintDialog pd = new PrintDialog();

pd.ShowDialog();

}

//撤消

public void return_Click(object sender, EventArgs e)

{

//撤消最新的撤消命令。换句话说,撤消位于撤消堆栈上的最新撤消单元

richTextBox1.Undo();

}

public void 剪切XToolStripMenuItem_Click(object sender, EventArgs e)

{

//从文本编辑控件中删除当前选定内容,并将其复制到 Clipboard

richTextBox1.Cut();

}

public void 全选AToolStripMenuItem_Click(object sender, EventArgs e)

{

//选择文本编辑控件的全部内容。

richTextBox1.SelectAll();

}

public void 复制VToolStripMenuItem_Click(object sender, EventArgs e)

{

//将文本控件的当前选定内容复制到Clipboard。

richTextBox1.Copy();

}

public void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e)

{

//将剪贴板的内容粘贴到文本编辑控件中的当前选定内容上。

richTextBox1.Paste();

}

public void 删除DToolStripMenuItem_Click(object sender, EventArgs e)

{

//清除属性的本地值。

richTextBox1.Clear();

}

public void 关于记事本AToolStripMenuItem_Click(object sender, EventArgs e)

{

AboutBox1 ab = new AboutBox1();

ab.ShowDialog();

}

public void 查找FToolStripMenuItem_Click(object sender, EventArgs e)

{

form2.rtb = richTextBox1;

form2.ShowDialog(this);

}

public void 替换RToolStripMenuItem_Click(object sender, EventArgs e)

{

form3.rtb = richTextBox1;

form3.ShowDialog(this);

}

public void 时间ToolStripMenuItem_Click(object sender, EventArgs e)

{

//获取系统当前时间

DateTime time = DateTime.Now;

//格式化日期

string dat = string.Format("{0:yyyy-MM-dd HH:mm:ss dddd}",time);

richTextBox1.AppendText(dat);

}

private void 查找下一个ToolStripMenuItem_Click(object sender, EventArgs e)

{

form2.button1_Click(sender,e);

}

//对“自动换行”进行选定和取消

private void 自动换行WToolStripMenuItem_Click(object sender, EventArgs e)

{

if (自动换行WToolStripMenuItem.Checked)

{

richTextBox1.WordWrap = false;

自动换行WToolStripMenuItem.Checked = false;

}

else

{

自动换行WToolStripMenuItem.Checked = true;

richTextBox1.WordWrap = true;

}

}

//对“状态栏”进行选定和取消

private void 状态栏ToolStripMenuItem_Click(object sender, EventArgs e) {

if (状态栏ToolStripMenuItem.Checked)

{

statusStrip1.Visible = false;

状态栏ToolStripMenuItem.Checked = false;

}

else

{

状态栏ToolStripMenuItem.Checked = true;

statusStrip1.Visible = true;

}

}

//对“工具栏”进行选定和取消

private void 工具栏KToolStripMenuItem_Click(object sender, EventArgs e) {

if (工具栏KToolStripMenuItem.Checked)

{

toolStrip1.Visible = false;

工具栏KToolStripMenuItem.Checked = false;

}

else

{

工具栏KToolStripMenuItem.Checked = true;

toolStrip1.Visible = true;

}

}

private void 帮助主题HToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("不会使用请百度Microsoft记事本");

}

//设置状态栏的显示时间

private void toolStripStatusLabel1_Click(object sender, EventArgs e)

{

toolStripStatusLabel1.Text = DateTime.Now.ToString();

}

//设置状态栏的行值和列值

private void toolStripStatusLabel3_Click(object sender, EventArgs e)

{

toolStripStatusLabel3.Text = "行 " + Control.MousePosition.X + " 列" + Control.MousePosition.Y;

}

//设置“编辑”中的按钮是否启用

private void 编辑ToolStripMenuItem_Click(object sender, EventArgs e)

{

if (richTextBox1.SelectionLength != 0)

{

剪切XToolStripMenuItem.Enabled = true;

复制VToolStripMenuItem.Enabled = true;

删除DToolStripMenuItem.Enabled = true;

查找FToolStripMenuItem.Enabled = true;

查找下一个ToolStripMenuItem.Enabled = true;

}

else

{

剪切XToolStripMenuItem.Enabled = false;

复制VToolStripMenuItem.Enabled = false;

删除DToolStripMenuItem.Enabled = false;

查找FToolStripMenuItem.Enabled = false;

查找下一个ToolStripMenuItem.Enabled = false;

}

if (richTextBox1.Modified)

{

撤消ToolStripMenuItem.Enabled = true;

}

else

{

撤消ToolStripMenuItem.Enabled = false;

}

}

//设置“快捷键”中的按钮是否启用

private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) {

if (richTextBox1.SelectionLength != 0)

{

剪切ToolStripMenuItem.Enabled = true;

复制ToolStripMenuItem.Enabled = true;

删除ToolStripMenuItem.Enabled = true;

}

else

{

剪切ToolStripMenuItem.Enabled = false;

复制ToolStripMenuItem.Enabled = false;

删除ToolStripMenuItem.Enabled = false;

}

if (richTextBox1.Modified)

{

撤消ToolStripMenuItem1.Enabled = true;

}

else

{

撤消ToolStripMenuItem1.Enabled = false;

}

}

}

}

Form2.cs的代码:

using System;

using System.Drawing;

using System.Windows.Forms;

namespace note

{

public partial class Form2 : Form

{

public Form2()

{

InitializeComponent();

}

//实例化一个可输入区域,接收Form1中RichTextBox的值

public RichTextBox rtb = new RichTextBox();

//定义查找的开始位置

public int startIndex = 0;

public int flag = -1;

//“查找下一个”按钮

public void button1_Click(object sender, EventArgs e)

{

if (startIndex == 0)

{

//获取光标的位置

startIndex = rtb.SelectionStart;

}

if (this.checkBox1.Checked)

{

//向下查找

if (this.radioButton2.Checked)

{

//索引:CurrentCulture 使用区域敏感排序规则和当前区域比较字符串。

//CurrentCultureIgnoreCase 使用区域敏感排序规则、当前区域来比较字符串,

//同时忽略被比较字符串的大小写。

flag = rtb.Text.IndexOf(textBox1.Text, startIndex, StringComparison.CurrentCulture);

}

//向上查找

if (this.radioButton1.Checked && startIndex>2)

{

flag = https://www.360docs.net/doc/9311967704.html,stIndexOf(textBox1.Text, startIndex-2, StringComparison.CurrentCulture);

}

}

else

{

if (this.radioButton2.Checked)

{

flag = rtb.Text.IndexOf(textBox1.Text, startIndex, StringComparison.CurrentCultureIgnoreCase);

}

if (this.radioButton1.Checked && startIndex > 2)

{

flag = https://www.360docs.net/doc/9311967704.html,stIndexOf(textBox1.Text, startIndex-2, StringComparison.CurrentCultureIgnoreCase);

}

}

if (flag > -1)

{

//设置选中字体的背景颜色

rtb.SelectionBackColor = rtb.BackColor;

startIndex = flag+1;

rtb.SelectionStart = flag;

flag = -1;

//获取选中字体的长度

rtb.SelectionLength = textBox1.Text.Length;

rtb.SelectionBackColor = Color.SkyBlue;

}

else

{

MessageBox.Show("找不到\"" + textBox1.Text + "\"","提示"); }

}

//销毁当前窗体

public void button2_Click(object sender, EventArgs e)

{

this.Close();

}

//设置查找按钮是否启用

public void textBox1_TextChanged(object sender, EventArgs e)

{

if (textBox1.Text != "")

{

button1.Enabled = true;//启用

}

else

{

button1.Enabled = false;//禁用

}

}

}

}

Form3.cs的代码:

using System;

using System.Collections.Generic;

using https://www.360docs.net/doc/9311967704.html,ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace note

{

public partial class Form3 : Form

{

public Form3()

{

InitializeComponent();

}

Form2 form2 = new Form2();

//实例化一个可输入区域,接收Form1中RichTextBox的值

public RichTextBox rtb = new RichTextBox();

//定义查找的开始位置

public int startIndex = 0;

public int flag = -1;

//设置查找,替换按钮是否启用

public void textBox1_TextChanged(object sender, EventArgs e)

{

startIndex = rtb.SelectionLength;

if (textBox1.Text != "")

{

button1.Enabled = true;

button2.Enabled = true;

button3.Enabled = true;

}

else

{

button1.Enabled = false;

button2.Enabled = false;

button3.Enabled = false;

}

}

public void button1_Click(object sender, EventArgs e)

{

if (this.checkBox1.Checked)

{

flag = rtb.Text.IndexOf(textBox1.Text, startIndex, StringComparison.CurrentCulture);

}

else

{

flag = rtb.Text.IndexOf(textBox1.Text, startIndex, StringComparison.CurrentCultureIgnoreCase);

}

if (flag > -1)

{

rtb.SelectionBackColor = rtb.BackColor;

startIndex = flag + 1;

rtb.SelectionStart = flag;

flag = -1;

rtb.SelectionLength = textBox1.Text.Length;

rtb.SelectionBackColor = Color.SkyBlue;

}

else

{

MessageBox.Show("找不到\"" + textBox1.Text + "\"", "提示"); }

}

//替换按钮的方法

private void button2_Click(object sender, EventArgs e)

{

if (rtb.SelectedText == "")

{

button1_Click(sender, e);

}

else

{

rtb.SelectionBackColor = rtb.BackColor;

rtb.SelectedText = textBox2.Text;

button1_Click(sender, e);

}

}

//销毁当前窗体

private void button4_Click(object sender, EventArgs e)

{

this.Close();

}

//全部替换按钮事件

private void button3_Click(object sender, EventArgs e)

{

startIndex = 0;

while(startIndex <=rtb.Text.Length)

{

//清除选中的字体的背景色

rtb.SelectionBackColor = rtb.BackColor;

rtb.SelectedText = textBox2.Text;

button1_Click(sender, e);

if (startIndex == rtb.Text.Length-1)

{

startIndex = rtb.Text.Length+1;

}

}

}

}

}

5 测试与实现

测试结果如下图所示,通过测试,软件中还存在很多BUG,比如行列的值还没有确定,只显示屏幕的像素。对文件编码没有进行处理,有时候中文会出现乱码。替换窗体中的全部替换存在一定的问题,有时候会出现死循环。其他的功能全部都实现了,但是很多功能在细节上处理的不是很好。测试过程中也遇到了很多问题,如对时间的格式化处理,出现这种问题只能多测试,没有更好的办法,在就是找人帮你解决。

6 总结

通过一周的努力,终于顺利完成了此次课程设计,但是在开发过程中遇到了很多问题,有些问题通过学习已解决,还有些问题未能及时解决。这是我第一次开发C/S架构的系统,虽然只做了很简单的客户端部分,整个系统也不是标准的C/S架构,但是,窗体应用程序真的不好做,各种组件的调用,各种事件的触发都需要有所谓的监听器,主要是对各种组件的属性掌握的不够透彻,使用起来相当不熟练,当遇到不懂得属性时,只能挨个拿出来测试。另外可以通过查看MSDN 找到相关控件的使用方法和属性,让我学会了如何使用MSDN,但是感觉MSDN做的不是很好,用起来很不习惯,不像其他API那样对控件介绍的详细。总体来说,

虽然时间短暂,但是我却学到了很多,对C#有了进一步的了解。

java记事本课程设计论文附源码

设计题目:记事本课程设计 专业:电子信息科学与技术 班级:电子1202班 学号:20121210606 姓名:王鹏 2015 年7月

XXX学院本科学生课程设计任务书

摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此次课程设计主要通过编写一个简单的记事本程序使我们深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。此简易记事本程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。该程序主要用到了Java swing和事件监听等。 关键词记事本程序,java语言,Java swing

目录 摘要 (1) 1 需求分析 (3) 1.1需求分析 (3) 1.2功能设计 (3) 2 概要分析 (4) 2.1概要设计思想 (4) 2.2程序运行界面 (4) 2.3程序模块说明 (4) 2.4流程图 (5) 2.5程序相关说明 (6) 3 程序详细设计与分析 (8) 3.1构建菜单栏及其下拉菜单 (8) 3.2“文件”菜单操作的事件监听 (8) 3.3“编辑”、“格式”等菜单的事件监听 (10) 3.4异常处理 (11) 4 测试分析 (12) 5 源程序清单 (15) 结论 (22) 参考文献 (23)

1 需求分析 1.1需求分析 现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。 1.2功能设计 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 1、菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。 2、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。 3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。全部选择,插入日期、时间。 4、“格式”菜单中有“自动换行”和“字体”两个子菜单。 5、“查看”菜单只是显示状态栏。 6、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

计算器课程设计报告

课设报告 福建工程学院软件学院 题目:汇编计算器 班级: 1301 姓名 学号: 指导老师: 日期:

目录 1、设计目的 (3) 2、概要设计 (3) 2.1 系统总体分析 (3) 2.2 主模块框图及说明 (3) 3、详细设计 (4) 3.1 主模块及子模块概述 (4) 3.2各模块详运算 (4) 4、程序调试 (7) 4.1 运行界面分析 (7) 算法分析 (7) 4.2 调试过程与分析 (9) 5、心得体会 (11) 5.1 设计体会 (11) 5.2 系统改进 (11) 附录: (11)

1、设计目的 本课程设计是一次程序设计方法及技能的基本训练,通过实际程序的开发及调试,巩固课堂上学到的关于程序设计的基本知识和基本方法,进一步熟悉汇编语言的结构特点和使用,达到能独立阅读、设计编写和调试具有一定规模的汇编程序的水平。 2、概要设计 用8086汇编语言编写一个能实现四则混合运算、带括号功能的整数计算器程序。程序能实现键盘十进制运算表达式的输入和显示(例如输入:“1+2*(3-4)”),按“=”后输出十进制表示的运算结果。 2.1 系统总体分析 在8086的操作环境下,该计算器分成输入,数据存储,运算功能,输出几个大模块,实现了使用者使用该计算器时输入一个算式,能让系统进行计算。此计算器的实现功能是基本的数学的四则运算,结果范围在0~65535。 2.2 主模块框图及说明 此流程图简要的表现出了所要实现的功能以及一些功能的大概算法,同时也是我编写的一个总体的框架。 程序流程图说明:通过流程图,可以看出程序运行时,首先输出提示语气,当用户输入后,程序根据所输入内容进行判断,通过判断的结果来决定调用哪个功能模块,首要先要要判断的是否为0-9,“+”“-”“*”“/”这些字符,若不是就会报错,实则根据运算符号调用其功能模块完成运算。最后将运算的结果显示在主频幕上,返回主程序,使用户可以重新输入。

C语言课程设计报告-游戏2048

东华理工大学C语言课程设计报告 学院:国际教育学院学院专业:电子信息工程 班级:1420606 学号:201420060638 姓名:钟天运

一、课程设计题目:游戏2048 二、课程设计要求: a)使用C语言编写2048这款游戏 b)能够正常运行,拥有游戏界面。 c)能正常进行游戏从开始到结束。 d)用户操作方便 三、设计思路: a)游戏介绍: i.2048是一款简单的数字类游戏,界面是一个 4*4的方形格子。每个格子里可以为空或者有 一个2^n的数值。 ii.用户可以输入4种指令,分别是:上下左右,游戏会根据用户的指定的方向,将格子中 的数值向对应方向进行移动,直至移动到最边 上的格子或者有其他数值占用,如果碰到等大 数值,将会进行合并。此外,成功移动后,会 在一个空格子随机生成一个2或者4 iii.游戏目标是合成2048这个数值或者更大的数值。 b)实现思路: i.可以使用二维数组来保存4*4格子中的数值 ii.指令,可以通过输入字符函数,读取用户

在键盘上的方向键,进行判断执行对应的代 码。 iii.游戏界面,可以使用简单的特殊制表符,来实现,并通过清屏函数来进行反复同位置打 印界面。 iv.需要判断游戏结束的函数,以及记录游戏分数和步骤的变量 v.当游戏结束时,能够询问用户是否重新开始。 vi.随机生成一个新数,可以调用随机函数,使用时间做种子。 c)实现难点: i.打印游戏界面,要实现灵活能根据棋盘数组里 面的数据灵活打印。 ii.执行操作时,数值的移动和合并。

四、流程图

五、C语言源代码 // 游戏2048.c #include "windows.h" #include "time.h" #include "stdio.h" #include "conio.h" #include "string.h" //宏定义常量方向键值 //const int LEFT = 75, UP = 72, RIGHT = 77, DOWN = 80; #define LEFT 75 #define UP 72 #define RIGHT 77 #define DOWN 80 const char error_str[] = "您上次输入的指令无法识别,请重新输入。"; struct board { int place[4][4]; long int stepn; long int num; //存储游戏分数 long int time; int dtk; //direction key 记录方向键,及操作方向 int over; int zeronum; }; //该函数为游戏运行函数,当只是玩游戏的时候。进入该函数,游戏控制函数。int main() { //place数组为棋盘,其中为零代表空,-1代表不能合并的牌,其他2的倍数值为本身含义,初始化为全0。 struct board board1, board_backup; int newgame(struct board *, int), show(struct board *), operate(struct board *); char str[100] = "首次运行游戏"; //用于记录系统返回给用户的信息,例如:上一步执行向左合并,按键有误等 newgame(&board1, 0); //调用函数为新局初始化,第二个

C记事本课程设计

C记事本课程设计 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

课程设计 本科生通用 题目:编程类课程设计 设计项目:记事本程序设计 专业班级: 学号: 姓名: 成绩:导师签字: 2014 年12月11日

任务书 设计题目: 记事本程序设计 要求: 设计一个软件记事本,能够记录用户输入的信息,并能实现保存输入信息,查看备忘信息。该记事本具有输入、修改、删除、查看信息的功能。具有日历功能,可以根据时间,标记备忘信息,方便用户使用。 日程安排: 12月8日:确定设计题目,查阅相关资料 12月9日:根据功能设计整体方案,划分系统各个模块功能 12月10日:建立工程,编写程序实现设计方案的功能 12月11日:调试程序,完善界面设计,书写设计报告 目录 第一章概述 (3) 设计目 的 (3) 设计背 景 (3)

第二章设计过程 (4) 设计框 图 (4) 设计步 骤 (4) 建立工程 (4) 向对话框添加控件 (4) 添加变量 (5) 编程 (5) 调试运行 (5) 设计结 论 (7) 参考文献 (7) 附件(程序) (8) 第一章概述

设计目的 使学生熟悉VC++编译环境,了解面向对象的编程策略。 深入了解和掌握MFC原理与方法。 提升学生的编程技巧及编程能力。 以实际问题为切入点,锻炼学生运用VC++编程解决实际问题的能力。 培养学生的设计创新意识。 设计背景 软件记事本简介 记事本是一个很有用的程序,主要操作包括对文件的储存,修改等,有编辑功能:包括剪贴、复制等,有对字体修改等。记事本可以提醒用户一些重要的事项,可以方便用户的生活。 VC++ 简介 Visual C++由Microsoft开发, 它不仅是一个VC++,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++由许多组件组成,包括、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。的主力软件产品。Visual C++是一个功能强大的可视化软件开发工具。 C++语言简介 C++是在C语言的基础上开发的一种集、和过程化编程于一体的。应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。它

Java带计算过程的计算器课程设计报告

保存计算过程的计算器 Java程序设计课程设计报告保存计算过程的计算器 目录 1 概述.............................................. 错误!未定义书签。 1.1 课程设计目的............................... 错误!未定义书签。 1.2 课程设计内容............................... 错误!未定义书签。 2 系统需求分析.......................................... 错误!未定义书签。 2.1 系统目标................................... 错误!未定义书签。 2.2 主体功能................................... 错误!未定义书签。 2.3 开发环境................................... 错误!未定义书签。 3 系统概要设计.......................................... 错误!未定义书签。 3.1 系统的功能模块划分......................... 错误!未定义书签。 3.2 系统流程图................................. 错误!未定义书签。4系统详细设计........................................... 错误!未定义书签。 5 测试.................................................. 错误!未定义书签。 5.1 测试方案................................... 错误!未定义书签。 5.2 测试结果................................... 错误!未定义书签。 6 小结.................................................. 错误!未定义书签。参考文献................................................ 错误!未定义书签。附录................................................ 错误!未定义书签。 附录1 源程序清单...................................... 错误!未定义书签。

c语言课程设计报告学生成绩信息管理系统源代码

实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:

1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r); 1 建立链表并显示 2 添加学生信息 3 删除学生信息 息 4 按学号查找学生信 5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 main() 菜单函数

记事本课程设计

第 1 页 课程设计说明 课程名称: Java 课程设计 设计题目: 记事本 专 业: 班级: 学生姓名: 学 号: 指导教师: 湖南工业大学科技学院教务部 制

年月日 一、系统设计目的: 1)设计一个简单的Windows记事本,可以实现以下功能: 1:文件的新建,打开,保存; 2:对文件的编辑,如全选,复制,剪切,粘贴; 3、工具,进行大小写的转换 4:执行完操作后,能够顺利关闭记事本; 2)通过这次设计,可以帮助学生: 1:提高对Java语言设计的掌握能力; 2:理论联系实际,进一步提高学生的软件开发技术; 3:培养学生分析、解决问题的能力。 二、系统实现思路: 设计两个类,一个mynotepad类,具有程序的要求和功能再创建一个Notepad主类,在主类中创建一个mynotepad类的对象,就可以直接在编译器中运行程序。 1:界面设计 在主界面中设计一个iFrame容器,并在其中加入一个下拉菜单和一个文本域控件。 2:功能设计 在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。点击不同菜单项时,进行不同的操作。 3:代码设计 编写每个控件的相关代码,并进行调试。

三、系统详细设计 1:界面设计 创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。 第 3 页

主要代码: JMenu[] menus=new JMenu[]{ new JMenu("文件"), new JMenu("编辑"), new JMenu("工具"), new JMenu("关于") }; JMenuItem optionofmenu[][]=new JMenuItem[][]{{ new JMenuItem("新建"), new JMenuItem("打开"), new JMenuItem("保存"), new JMenuItem("退出") },

单片机计算器的课程设计报告

目录 一、设计任务和性能指标 (1) 1.1设计任务 (2) 1.2性能指标 (2) 二、设计方案 (2) 3 3 4 5 5 6 6 7 7 20 20 20 20 21 参考文献 (21) 附录1、系统硬件电路图 (22) 附录2、硬件实物图 (23) 附录3、器件清单 (24)

一、设计任务和性能指标 1.1设计任务 自制一个单片机最小系统,包括复位电路,采用外部小键盘输入数据,能够实现加法、乘法及一个科学计算,计算结果显示在四位一体的数码管上。 要求用Protel 画出系统的电路原理图(要求以最少组件,实现系统设计所要 显 位 监测模块采用二极管和扬声器(实验室用二极管代替)组成电路。 键盘电路采用4*4矩阵键盘电路。 显示模块采用4枚共阳极数码管和74ls273锁存芯片构成等器件构成。 整个单片机的接口电路: P0用于显示输出; P1用于键扫描输入; P2用于数码管位选控制; P3用于键盘扩展(部分运算符输入);

三.系统硬件设计 3.1单片机最小系统 单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和晶振电路。 主控芯片选取STC89C52RC芯片,因其具有良好的性能及稳定性,价格便宜应用方便。 扩展键:“log”,“ln”,“x^2”“小数点”,“开方” 共计25个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P1.0~P1.7,这样扫描P1口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P1口德扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘的功能。 以下为键盘接口电路的硬件电路图

c语言课程设计报告

C语言程序设计B 课程设计报告 设计题目:学生成绩管理系统年级班级: 学号: 姓名: 指导教师: 2020 年 6 月 18 日

目录 一、设计目的 (3) 二、课程设计内容和要求 (4) 三、总体设计 (5) 四、主要步骤 (12) 五、功能实现 (13) 六、功能测试 (64) 七、评价程序 (83) 八、课程设计体会 (84)

一、设计目的 程序设计能力是当代理工类大学生的必备能力,当学生学习了C语言之后,编程能力远远不能达到开发实际应用程序的要求,特备是对其中的指针、结构体、链表和文件部分的理解和应用都比较弱。 程序设计的目的是通过对面向过程的学习,将C语言的主要知识点进行综合,针对提高学生C语言程序设计能力,强化编写较大的应用软件能力,熟练运用已掌握的知识解决实际需要解决的问题,以达到更加熟知指针、链表、结构体、文件读取、标准库的使用。 主要目的为以下几点: 1、熟练掌握面向过程(结构化)程序设计基本知识; 2、综合运用所学知识解决实际问题; 3、受到面向过程(结构化)程序设计的基本训练; 4、体会面向过程(结构化)开发程序的过程。

二、课程设计内容和要求 1.课程设计内容: 学生通过使用C语言进行编写算法,开发学生成绩管理系统,以实现对学生成绩的管理。 2.课程设计要求 1)具有菜单,可以在菜单上进行选择; 2)能实现学生数据录入、修改、删除、查询; 3)能实现数据排序; 4)有数据输出功能; 5)有数据读取与存储功能; 6)一个学生的数据(称为:每条记录)包含姓名、学号、语文、数 学、英语、总分、名次等信息; 7)以结构方式存储每条记录; 8)多条记录以链表方式存储到内存; 9)随时可将全部数据存储到磁盘文件中,方便下次从磁盘读取数据。

课程设计—java记事本

import javax.swing.*; import javax.swing.undo.*; import javax.swing.text.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; import java.awt.datatransfer.*; import java.awt.print.*; import java.io.*; public class Jishiben extends JFrame implements ActionListener { JPopupMenu pm ; JTextArea ta; boolean isNewFile=true; //是否新文件(未保存过的) File currentFile; //当前文件名 String oldValue; //存放编辑区原来的内容,用于比较文本是否有改动//protected UndoManager undo = new UndoManager(); //protected UndoableEditListener undoHandler = new UndoHandler(); JToolBar tbar = new JToolBar(); JCheckBoxMenuItem mt19; public Jishiben() { super("记事本"); //Container ct=getContentPane(); //以下三句是设置编辑区域及滚动条 ta = new JTextArea(); JScrollPane sp = new JScrollPane(ta); add(sp); JMenuBar mb = new JMenuBar(); //设置文件菜单 JMenu mu1 = new JMenu("文件(F)",true); mu1.setMnemonic('F');//设置快捷键按下ALT+F激活打开菜单 JMenuItem mt1 = new JMenuItem("新建(N)",'N'); mt1.setMnemonic('N'); //mt1.addActionListener(new new1()); JMenuItem mt2 = new JMenuItem("打开(O)...",'O'); mt2.setMnemonic('O'); mt2.addActionListener(this); JMenuItem mt3 = new JMenuItem("保存(S)",'S'); //mt3.addActionListener(new save()); mu1.add(mt3); JMenuItem mt4 = new JMenuItem("另存为(A)..."); JMenuItem mt5 = new JMenuItem("页面设置(A)..."); JMenuItem mt6 = new JMenuItem("打印(P)..."); JMenuItem mt7 = new JMenuItem("退出(X)",'X');

科学计算器课程设计报告C课程设计修订稿

科学计算器课程设计报告C课程设计 集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]

计算机科学与技术学部 C++课程设计 题目科学计算器 学部计算机科学与技术 班级计科1103 指导教师李军 姓名刘明 学号 2012年6月27日

摘要 计算器的产生和发展是建立在电子计算机基础之上的。硬件方面,自1946年第一台电子计算机诞生以来,计算机技术的发展可谓日新月异,从庞大的只能在实验室里供研究使用的计算机到如今能适应不同环境满足不同需求的各种各样的计算机;运算速度从每秒几千次到每秒几百亿次;处理器从焊有上百万个电子管的大的惊人的电子板到只有指甲大小的集成电路;现在计算机在硬件方面的发展已达到了每三个月更新换代一次的惊人速度。软件方面,也已从机器语言、汇编语言、高级语言发展到现如今的第四代语言——非结构化、面向对象、可视化的语言。 在这个计算器里面,我们实现了简单的四则运算以及更高功能的科学计算,它的外观简洁美观,使人们能快捷简单的操作。能准确的得到计算结果,大大减少了数字计算所需要的时间,为人们的生活带来便利。此系统在Windows 7环境下,使用VC++ 进行编写。 简单计算器包括双目运算和单目运算功能,双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,对数,开方,阶乘,倒数,进制转换等运算。可对其输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。并且包含清除,退格功能等。我们所做的计算器其功能较Windows 7下的计算器还是很不够多,没有其菜单的实现功能项,没有其小巧的标准计算器。 关键词:计算器;运算;VC++等

java课程设计报告_简单图形界面计算器的设计

Java 课程设计 简单图形界面计算器的设计 课程名称 Java程序设计 选题名称简单图形界面计算器的设计 专业 班级 姓名 学号 指导教师 简单图形界面计算器的设计

一、设计任务与目标 本次java程序设计我的设计任务是设计一个图形界面(GUI)的计算器应用程序并且能够完成简单的算术运算。本次任务的基本要求是这个计算器应用程序可以完成十进制的加、减、乘、除、求倒、取余、开方运算,且有小数点、正负号、退格和清零功能。而我要在此基础上添加一项千位符分隔符的功能,即以三位为一级,在输入的一串数字中每三位加入一个逗号,这项功能国际通用,并已经成为惯例,会计记账都用这种方法便于账目核算与管理。 GUI计算器设计的具体目标: 1.完成十进制的加、减、乘、除、求倒、取余和开方运算; 2.有小数点和正负号加入运算; 3.有退格、复位和清零的功能; 4.有千位符分隔符的功能,即在输入的一串数字中每三位加入一个逗号。 二、方案设计与论证 1.设计目标的总体分析 (1)设计目标的需求分析:计算器是现在一个普遍应用的工具,能够解决许多人工所无法计算的数据,节省大量宝贵的时间。 (2)设计目标的功能分析:实现计算器系统的功能,主要有两个功能模块:输入和输出。 (3)设计原则:基于计算器系统要具有适用性广、操作简便等特点,本系统预计要达到以下几个目标:①满足以上的基本功能要求;②能够在常见的计算机及其操作系统上运行。 2.设计的基本思路 利用GUI的界面设计,将整个大设计分为三块,分别是数据的输入,运算符

功能符的控制和数据的输入输出显示。利用Swing控件,数据的输入由0~9这10个按钮来表示,用“+”、“-”、“*”、“/”、“1/x”、“%”、“sqrt”这7个按钮来表示加、减、乘、除、求倒、取余、开方运算,用“.”和“±”这2个按钮来表示小数点和正负号,用“Back”、“CE”和“C”这3个按钮来表示退格、复位和清零的功能,数据的输入输出显示由文本字段来表示。将计算器的总体界面设计好后,再将代码分别写入不同的按钮的源程序中。 我要完成的一项改进,即添加一个拥有千位符分隔符功能的按钮,按下这个按钮能够在输入的一串数字中每三位加入一个逗号并且显示出来。我要在之前的界面设计的基础上多添加一个按钮“$”来表示千位符分隔符,并且将功能代码写入这个按钮的源程序中。 三、程序流程图,程序清单与调用关系 1. 程序流程图:

C语言课程设计报告-模板

C语言课程设计报告 班级:16 物联网 一、题目说明 (1)读取输入信息,能正确进行数字运算

(2)拥有记忆功能,可查询最近几次计算结果并继续进行数字运算。 二、基本功能实现 (1)能实现两个数之间的加减,乘,除,乘方,开方等运算。 (2)实现记忆功能,可保留近十位结果,可用#键查看。(3)*键作为清0键,清除当前屏幕上的值为0表示重新开三、设计流程(可以画流程图,可以直接写说明)

四、代码 #include #include #include #include double yunsuan(double a, char operate, double b); //处理数值之间的运算void PutRes(double array[], double res, int *i); //保存该次运算结果 int main() { char str[40]; double a = 0; double b = 0; double res = 0; double history[10] = {0,0,0}; char opt; int i = 0; printf("欢迎进入计算功能(eg: 1 \n+ 1 ; '#':查询历史结果; 'q':退出程序)·\n"); while(1){

fgets(str,40,stdin); //将从键盘的一整行标准输入保存在字符串str中 if(sscanf(str,"%lf", &a) == 1){ //将str以长浮点型的格式放入a中,如果返回值为1,说明输入的是数值, scanf("%c %lf", &opt, &b); //获取操作符的值和另外一个操作数的值 res = yunsuan(a,opt,b); //调用yunsuan()函数计算,并将结果给res printf("%lf %c %lf = %lf\n\n",a, opt, b, res); PutRes(history, res, &i); //调用函数PutRes()将本次结果保存到数组history中(i用引用传递) // printf("%d\n", i); }else if(sscanf(str,"%c",&opt) == 1){ //将str以字符型的格式放入opt中,如果返回值为1,说明输入的是字符 if(opt == '#'){ //如果opt为‘#’,则显示history 中的数值 int j = 0; for(j = 0; j < i; ++j){ //i为history中存放的数值个数 printf(" %lf ", history[j]); } printf("\n");

java课程设计策画日历记事本

课程设计说明书 课程: Java程序设计 院系:计算机科学学院 专业班级:计算机科学与技术(2)班 组员:张少华、张天阳 2010年6月 26 日

《Java程序设计》课程设计 ——日历记事本 我们开发了一个实现有日历标记的记事本软件,日历记事本面板由日历和和记事本两部分组成。日历部分可以调节年份,月份,日期,星期。记事本可以实行查看,保存,删除等操作,并且每一步操作都有相应提示。本软件是一个实用性很强,简洁,方便的功能软件。 引言 Java是一种纯面向对象的、网络编程首选的语言。Java技术作为软件开的一种革命性技术,已被列为当今世界信息技术的主流之一。为了适应时代潮流,我们应该加强对Java的学习,更好的掌握这门课程。为此,我们成了一个课程小组,经过小组成的商讨之后,我们决定以“日历记事本”为设题材,借此巩固加深我们对Java 的了解。 本次课程设计的实例虽然比较简单,程序设计也不是很复杂,但在此程序的设计过程也是一个学习过程,更是对复杂程序的一个学习过程,还能培养我们的数抽象能力。因此,我们觉得这次课程设计是非常有意义的,能为我们今后学习面向过程的程序设计作一些铺垫。 1、设计的目的与要求; (1)为用户提供一个简便的日历记事本; (2)对java技术的进一步了解和简单的运用; (3)初步的接触软件工程; 2.设计目的与任务 本课程设计所要求达到的目的和任务:通过Java程序设计的一些重要理论基础来实现“日历记事本”的“日历”和“记事本”的双重功能。并通过此次课程设计的训练,使学生巩固和加深对Java这门课程的理解,通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果。通过这次课程设计,培养实事求是、认真、严谨的科学态度和刻苦钻研不断创新的精神,逐步建立正确的全局观念。 3.设计方案 3.1 总体设计

计算器课程设计报告

高级语言程序(JAVA)课程设计报告 系部名称:商学系专业班级:营销*** 学生姓名:墨璇 墨兰学号: ********** ********** 指导教师:王芬教师职称:讲师 2014年06月26日

目录 一、课程设计目的及意义 .................................... 错误!未定义书签。 二、课程设计任务 .......................................... 错误!未定义书签。 2.1程序设计要求....................................... 错误!未定义书签。 三、课程设计时间 .......................................... 错误!未定义书签。 四、课程设计地点 .......................................... 错误!未定义书签。 五、课程设计内容 .......................................... 错误!未定义书签。 5.1开发工具与平台..................................... 错误!未定义书签。 (1).开发工具 ...................................... 错误!未定义书签。 (2).开发平台 ...................................... 错误!未定义书签。 5.2设计思路........................................... 错误!未定义书签。 5.3 程序测试 .......................................... 错误!未定义书签。 5.4实验总结........................................... 错误!未定义书签。 六、课程设计感想 .......................................... 错误!未定义书签。 七、附录(程序代码) ...................................... 错误!未定义书签。

计算器设计的java课程设计报告

】 · ( 华东交通大学课程设计 课 程: Java 程序设计 题 目: 计算器设计 年 级: 2010级 专 业: 信息一班 * 学 号: 姓 名: 组 员: 指导教师: 课程设计题目:计算器设计

课程设计(论文)任务书 基础学院信息与计算科学专业2010—1 班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自2013 年 6 月23日起至2013 年6月27日止。 三、课程设计(论文) 地点: 计算机中心 · 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 ' 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; > (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; [ 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献:

c语言课程设计报告书

课程设计报告书 所属课程:c语言 项目:库函数模拟系统 指导老师:邹姝稚 班级:软件1401 姓名:江闯 学号:141403107 分数:

1.任务描述: 本系统开发的代码模拟了下列库函数的功能: (1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。 (2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。 (3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。 (4).编程实现字符串与对应数字的相互转换功能。 2.总体设计: 模块调用图: 图1

函数调用图: 图2 函数功能: (1)函数gp( ):模拟gets和puts的功能 (2)函数kaobei( ):实现字符串的拷贝 (3)函数lianjie( ):实现字符串的连接 (4)函数qiuchang( ):实现字符串的求长 (5)函数daozhi( ):实现字符串的倒置 (6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件都显示出来 (7)函数zhuanhuan1( ):将数字字符串转换为对应的数字 (8)函数zhuanhuan2( ):将数字转换为对应的数字字符串 3.详细设计: (1).模仿gets和puts功能: gets和puts功能与scanf和printf函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。 (2)..字符串的拷贝功能: 字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

计算机技术综合课程设计报告

计算机技术综合课程设计 设计题目锅炉液位控制系统学生姓名史婷艳 专业班级自动化1302班学号20134460203 指导老师洪镇南 2017年1 月3日

目录 前言 (2) 1 锅炉汽包水位控制对象与控制指标 (4) 1.1锅炉汽包水位的特征 (4) 1.2汽包水位动态特性 (4) 1.2.1汽包水位在给水流量W作用下的动态特性 (4) 1.2.2汽包水位在蒸汽流量D扰动下的动态特性 (5) 1.2.3燃料量B扰动下汽包水位的动态特性 (6) 2. 汽包水位控制方案 (7) 2.1单冲量控制方式 (7) 2.2 双冲量控制方式 (8) 2.3 三冲量控制方式 (9) 3. 三冲量串级PID控制 (11) 3.1 串级PID控制 (11) 3.2 智能整定PID控制 (12) 4 汽包水位模糊控制器设计及仿真 (12) 4.1 输入输出变量 (12) 4.2 隶属度函数 (15) 4.3基于MATLAB/Simulink 环境建立的系统仿真分析 (16) 4.3.1 基于MATLAB/Simulink 的系统模型 (16)

4.3.2 仿真结果分析 (18) 总结与体会 (18) 参考文献 (20) 前言 锅炉是典型的复杂热工系统,目前,中国各种类型的锅炉有几十万台,由于设备分散、管理不善或技术原因,使大多数锅炉难以处于良好工况,增加了锅炉的燃料消耗,降低了效率。同时,锅炉工作过程中各项指标的调节难以建立数学模型,具有非线性、不稳定性、时滞等特点,所以如何改善对锅炉的控制,保证其正常工作,提高效率一直是人们关注的焦点。而汽包液位是锅炉安全、稳定运行的重要指标,保证液位在给定范围内,对于高蒸汽品质、减少设备损耗和运行损耗、确保整个网络安全运行具有要意义。 现代锅炉的特点之一就是蒸发量显著提高,汽包容积相对变小,水位变化速度很快,稍不注意就容易造成汽包满水或者烧成干锅,这都对汽包液位控制系统提出了更高的要求。汽包液位过高,会影响汽包内汽液分离效果,使汽包出口的饱和蒸汽带水增多,蒸汽带水会使汽轮机产生水冲击,引起轴封破损、叶片断裂等事故。同时会使饱和蒸汽中含盐量增高,降低过热蒸汽品质,增加在过热器管壁和汽轮机叶片上的结垢。水位过低,则可能破坏自然循环锅炉汽水循环系统中某些薄弱环节,以致局部水冷管壁被烧坏,严重时会造成爆炸事故。 目前,对汽包液位位控制大多采用常规PID控制方式,从控制方式来看,它们要么系统结构简单成本低,不能有效的控制锅炉汽包“虚假水位”现象,要么能够在一定程度上控制“虚假现象”,系统却过于复杂,成本投入过大。常用的蒸汽锅炉液位调节系统有三种基本结构:单冲量调节系统结构、双冲量调节系统结构、串级三冲量调节系统结

java课程设计报告计算器

java课程设计报告 计算器 1 2020年4月19日

目录 一、课程设计目的 (5) 二、课程设计任务.................................................................................................... .. (2) 2.1、设计任务 (5) 2.2、课程设计要求: (6) 2.3、需求分析 (6) 三、开发工具与平台.................................................................................................... (3) 3.1、开发工具 (7) 3.2、开发平台 (7) 2 2020年4月19日

四、设计思路.................................................................................................... . (4) 4.1、界面设计.................................................................................................... . (4) 4.2.1、逻辑设计 (8) 4.2.2、程序流程图.................................................................................................... . (5) 4.2.3、主要代码展示及说明 (5) 4.3、程序测试 (18) 五、实验小结 (20) 3 2020年4月19日

相关文档
最新文档