课程设计C记事本

课程设计C记事本
课程设计C记事本

1.1 记事本开发目标

1.文件操作功能。新建文件,打开文件,保存文件,页面设置,打印和退出。

2.文本编辑功能。文本的撤销,文本重复,剪切,复制,粘贴,删除,查找,

替换,转到,全选和时间/日期。

3.文本格式编辑。文本自动换行,字体选择,颜色选择,文本居中,左对齐,

右对齐,加粗,倾斜和下划线。

4.实现与windows 记事本兼容使用。即用本记事本可以正常打开windows

记事本。

5.进度条根据文本框改变而变化、显示系统时间。

1.2 记事本界面预览

1.3记事本功能结构

1.4 流程图

记事本流程图如下所示:

1.5 程序运行环境

记事本开发平台:Microsoft visual studio 2005。

记事本开发语言:C#。

运行平台:windows 2000 \ windows XP \ windows Vista 等。2记事本窗体设计与功能分析

2.1 主窗体(Form1)设计

2.1.1使用组件介绍

编辑框richTextBox1,菜单menuStrip1,工具条toolStrip1,

右击contextMenuStrip1,系统计时器timer1,

进度条toolStripProgressBar1,显示条toolStripStatusLabel1.

2.2.2 本记事本的突出特点

本记事本的特点:(1)实现对文本内容格式的编辑,如左对齐、右对齐、居中;

对字体的颜色、字体、加粗、倾斜和下划线操作。

(2)实现正确地与windows记事本兼容使用,无乱码出现。

(3)实现对文本的打印与页面设置。

2.2 文件操作设计

2.2.1 新建

菜单新建、按钮新建以及利用组件C ontextMenuStrip1,完成右击菜单新建。代码如下:

private void新建NToolStripButton_Click(object sender, EventArgs e)

{

this.richTextBox1.Clear();

}

2.2.2 打开与保存

【打开】

为了实现与windows记事本兼容打开,利用RichTextBoxStreamType 枚举的PlainText成员,作用是用空格代替对象链接与嵌入 (OLE) 对象的纯文本流。

代码实现如下:

private void打开OToolStripButton_Click(object sender, EventArgs e)

{ OpenFileDialog fileone = new OpenFileDialog();

fileone.Filter = "文本文件(*.txt)|*.txt|RTF文件(*.rtf)|*.rtf|所有文件(*.*)|*.*"; fileone.FilterIndex = 1;

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

{

try

{ filename = fileone.FileName;//用于保存时显示需要保存的文件名

this.richTextBox1.LoadFile(fileone.FileName,RichTextBoxStreamType.PlainText); }

catch (Exception)

{

MessageBox.Show("Oh,您的打开不成功!");

}

}

}

【保存】

为了让C#记事本的文本保存后,用windows记事本打开,在richTextBox的SaveFile 中使用利用RichTextBoxStreamType枚举的TextTextOleObjs成员,即具有 OLE 对象的文本表示形式的纯文本流。

代码如下:

string filename;

private void保存SToolStripButton_Click(object sender, EventArgs e)

{

SaveFileDialog fileone = new SaveFileDialog();

fileone.Filter = "文本文件(*.txt)|*.txt|RTF文件(*.rtf)|*.rtf|所有文件(*.*)|*.*"; fileone.FilterIndex = 1;

fileone.FileName = filename;//保存时自动显示需要保存的文件名

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

{

try

{

this.richTextBox1.SaveFile(fileone.FileName,

RichTextBoxStreamType.TextTextOleObjs);

}

catch (ArgumentException)

{

MessageBox.Show("Oh,您的保存不成功!");

}

}

}

2.2.3 打印与页面设计的代码详细于软件包中。

2.2.4 窗体按钮“退出”与菜单“退出”

【窗体按钮“退出”】

打开主窗体的加载事件Load ,首先判断文本框是否为空,为空则直接关闭窗体,否则先保存再退出。

代码如下:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{ //判断文本是否为空,为空则不处理

if (this.richTextBox1.Text == string.Empty)

{ return;}

//判断文本是否为空,不为空则弹出提示框

else

{//创建一个退出提示对话框,并获得用户的选择。

DialogResult dr = MessageBox.Show("您的文本内容已改变,退出程序文本内容将丢失,

是否要保存?", "退出提示", MessageBoxButtons.YesNoCancel);

//如果用户的选择为yes,那么先保存后关闭窗体。

if (dr == DialogResult.Yes)

{

保存SToolStripMenuItem_Click(sender, e);

e.Cancel = false;

}

if (dr == DialogResult.No)

{ e.Cancel = false;}

if (dr == DialogResult.Cancel)

{ e.Cancel = true;}

}

}

【菜单“退出”】

利用Close()方法,让执行Close()方法后关联到窗体按钮“退出”。

private void退出XToolStripMenuItem_Click(object sender, EventArgs e)

{ //关闭程序

Close();

}

2.3 文件编辑设计

2.3.1 撤销与重做

2.3.1.1 撤销

private void撤消UToolStripMenuItem_Click(object sender, EventArgs e)

{ this.richTextBox1.Undo();}

2.3.1.2 重做

private void重做toolStripButton6_Click(object sender, EventArgs e)

{ this.richTextBox1.Redo(); }

2.3.2 剪切、复制、粘贴和删除

2.3.2.1 剪切、复制与粘贴的功能分别可以用richTextBox1的方法Cut()、Copy()、Paste()实现。

2.3.2.2 删除

private void删除LToolStripMenuItem_Click(object sender, EventArgs e)

{

this.richTextBox1.Text = richTextBox1.Text.Remove(richTextBox1.SelectionStart,

richTextBox1.SelectionLength); }

2.3.3 全选与时间/日期

设置全选代码如下:

//设置全选

private void全选AToolStripMenuItem1_Click(object sender, EventArgs e)

{

this.richTextBox1.SelectAll();

}

设置时间/日期如下:

//设置时间/日期

private void时间日期F5ToolStripMenuItem_Click(object sender, EventArgs e)

{

this.richTextBox1.Text = richTextBox1.Text.Insert(richTextBox1.Text.Length,

System.DateTime.Now.ToString()); }

2.3.4 查找、替换和转到

在主窗体的主程序代码设计中,添加如下单击事件的代码:

//设置RichTextBox的属性,用于查找,转到和替换

public RichTextBox RichTextBox1

{

get

{ return richTextBox1;}

set

{ richTextBox1 = value;}

}

// 查找处理

private void查找ToolStripMenuItem_Click(object sender, EventArgs e) { formFind findform = new formFind();

findform.Show(this);

}

//转到处理

private void转到ToolStripMenuItem_Click(object sender, EventArgs e) { formGoto gotoform = new formGoto();

gotoform.Show(this);

}

//替换处理

private void替换ToolStripMenuItem_Click(object sender, EventArgs e) { formReplace replaceform = new formReplace();

replaceform.Show(this);

}

2.3.5 添加查找窗体formFind ,窗体设计如下:

代码如下:

public partial class formFind : Form

{ // 构造函数

public formFind()

{ InitializeComponent();

radioButton2.Checked = true; //将向下查找设置为默认的查找方式

}

// 要查找的关键字

private string keyword = string.Empty;

int pos = 0; // 向下查找时关键字位置

string text = string.Empty; // 主窗体中字符串变量

int upos = 0; // 向上查找时关键字位置

bool isDown = true; // 是否向下查找

bool isCase = false; // 是否区分大小写

//查找下一个处理

private void button1_Click(object sender, EventArgs e)

{ //关键字为空时直接返回

if (textBox1.Text == string.Empty)

{ return; }

else

{ //要查找的关键字

keyword = textBox1.Text;

//区分大小写时

if (isCase)

{ //向下查找时

if (isDown)

{ pos = text.IndexOf(keyword, pos); }

//向上查找时

else

{ upos = https://www.360docs.net/doc/657670758.html,stIndexOf(keyword, upos); }

}

//不区分大小写时

else

{ keyword = keyword.ToLower();

text = text.ToLower();

//向下查找时

if (isDown)

{ pos = text.IndexOf(keyword, pos); }

//向上查找时

else

{ upos = https://www.360docs.net/doc/657670758.html,stIndexOf(keyword, upos); }

}

//向下查找时

if (isDown)

{

if (pos == -1)

{ MessageBox.Show("Sorry! 找不到该字符串!");

pos = 0;

}

else

{

((Form1)this.Owner).RichTextBox1.Select(pos, keyword.Length); pos++;

this.Owner.Activate();

}

}

//向上查找时

else

{

if (upos == -1)

{ MessageBox.Show("Sorry! 找不到该字符串!");

upos = text.Length;

}

else

{

((Form1)this.Owner).RichTextBox1.Select(upos, keyword.Length);

if (upos != 0)

{ upos--; }

this.Owner.Activate();

}

}

}

}

// 取消按钮事件

private void button2_Click(object sender, EventArgs e)

{ Close(); }

// 选择向上查找事件

private void radioButton1_CheckedChanged(object sender, EventArgs e)

{ isDown = !radioButton2.Checked; }

// 选择向下查找事件

private void radioButton2_CheckedChanged(object sender, EventArgs e)

{ isDown = radioButton2.Checked; }

// 选择区分大小写时

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{ isCase = checkBox1.Checked; }

设置查找窗体加载事件:

// 窗体加载事件

private void formFind_Load(object sender, EventArgs e)

{ text = ((Form1)this.Owner).RichTextBox1.Text;

upos = text.Length;

}

}

2.3.6 添加替换窗体formReplace,窗体设计如下:

代码如下:

// 查找窗体

public partial class formReplace : Form

{

// 构造函数

public formReplace()

{ InitializeComponent();

radioButton2.Checked = true; //将向下查找设置为默认的查找方式 }

private string keyword = string.Empty; // 要查找的关键字

int pos = 0; // 向下查找时关键字位置

string text = string.Empty; // 主窗体中字符串变量

int upos = 0; // 向上查找时关键字位置

bool isDown = true; // 是否向下查找

bool isCase = false; // 是否区分大小写

//查找下一个处理

private void button1_Click(object sender, EventArgs e)

{ //关键字为空时直接返回

if (textBox1.Text == string.Empty)

{ return; }

else

{ keyword = textBox1.Text; //要查找的关键字

//区分大小写时

if (isCase)

{ //向下查找时

if (isDown)

{ pos = text.IndexOf(keyword, pos); }

//向上查找时

else

{ upos = https://www.360docs.net/doc/657670758.html,stIndexOf(keyword, upos); }

}

//不区分大小写时

else

{ keyword = keyword.ToLower();

text = text.ToLower();

//向下查找时

if (isDown)

{ pos = text.IndexOf(keyword, pos); }

//向上查找时

else

{ upos = https://www.360docs.net/doc/657670758.html,stIndexOf(keyword, upos); }

}

//向下查找时

if (isDown)

{ if (pos == -1)

{ MessageBox.Show("Sorry! 找不到该字符串!");

pos = 0;

}

else

{ ((Form1)this.Owner).RichTextBox1.Select(pos, keyword.Length); pos++;

this.Owner.Activate();

}

}

//向上查找时

else

{ if (upos == -1)

{ MessageBox.Show("Sorry! 找不到该字符串!");

upos = text.Length;

}

else

{ ((Form1)this.Owner).RichTextBox1.Select(upos, keyword.Length);

if (upos != 0)

{ upos--; }

this.Owner.Activate();

}

}

}

}

//替换处理

private void button2_Click(object sender, EventArgs e)

{ string newword = textBox2.Text;

//关键字为空时直接返回

if (textBox1.Text == string.Empty)

{ return;}

else

{ //要查找的关键字

keyword = textBox1.Text;

//区分大小写时

if (isCase)

{ //向下查找时

if (isDown)

{ pos = text.IndexOf(keyword, pos); }

//向上查找时

else

{ upos = https://www.360docs.net/doc/657670758.html,stIndexOf(keyword, upos); }

}

//不区分大小写时

else

{ keyword = keyword.ToLower();

text = text.ToLower();

//向下查找时

if (isDown)

{ pos = text.IndexOf(keyword, pos); }

//向上查找时

else

{ upos = https://www.360docs.net/doc/657670758.html,stIndexOf(keyword, upos); }

}

//向下查找时

if (isDown)

{ if (pos == -1)

{ MessageBox.Show("Sorry! 找不到该字符串!");

pos = 0;

}

else

{ ((Form1)this.Owner).RichTextBox1.Text =

((Form1)this.Owner).RichTextBox1.Text.Remove(pos, keyword.Length); ((Form1)this.Owner).RichTextBox1.Text =

((Form1)this.Owner).RichTextBox1.Text.Insert(pos, newword);

((Form1)this.Owner).RichTextBox1.Select(pos, keyword.Length);

pos++;

this.Owner.Activate();

}

}

//向上查找时

else

{ if (upos == -1)

{ MessageBox.Show("Sorry! 找不到该字符串!");

upos = text.Length;

}

else

{ ((Form1)this.Owner).RichTextBox1.Text =

((Form1)this.Owner).RichTextBox1.Text.Remove(pos, keyword.Length); ((Form1)this.Owner).RichTextBox1.Text =

((Form1)this.Owner).RichTextBox1.Text.Insert(pos, newword);

((Form1)this.Owner).RichTextBox1.Select(upos, keyword.Length);

if (upos != 0)

{ upos--; }

this.Owner.Activate();

}

}

}

}

//全部替换处理

2.4 文本格式编辑设计

2.4.1 自动换行设计

bool bo = true; //定义换行条件

2.4.2 字体设计

private void字体toolStripButton10_Click(object sender, EventArgs e)

{ FontDialog font = new FontDialog();

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

{ this.richTextBox1.SelectionFont = font.Font; }

}

2.4.3 字体颜色设计

private void字体颜色toolStripButton11_Click(object sender, EventArgs e)

{ ColorDialog color = new ColorDialog();

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

{ this.richTextBox1.SelectionColor = color.Color; }

}

2.4.4 设计文本左对齐

//设置左对齐

private void左对齐toolStripButton3_Click(object sender, EventArgs e)

{

//利用richTextBox1的属性SelectionAlignment获取或设置应用到当前选定内容或插入点的

对齐方式。

//利用HorizontalAlignment 枚举的成员Left,设置对象或文本与控件元素的左侧对齐。

this.richTextBox1.SelectionAlignment = HorizontalAlignment.Left;

}

2.4.5 设计文本居中

private void居中toolStripButton2_Click(object sender, EventArgs e)

{ //利用richTextBox1的属性SelectionAlignment获取或设置应用到当前选定内容或插入点的对齐方式。

//利用HorizontalAlignment 枚举的成员Center,设置对象或文本与控件元素的左侧对齐。

this.richTextBox1.SelectionAlignment = HorizontalAlignment.Center;

}

2.4.6 设计文本右对齐

private void右对齐toolStripButton1_Click(object sender, EventArgs e)

{ //利用richTextBox1的属性SelectionAlignment获取或设置应用到当前选定内容或插入点的对齐方式。

//利用HorizontalAlignment 枚举的成员Right,设置对象或文本与控件元素的左侧对齐。

this.richTextBox1.SelectionAlignment = HorizontalAlignment.Right;

}

2.4.7 字体加粗、下划线与倾斜具体代码与软件包中。

2.5 进度条与系统时间显示

2.5.1 进度条

在文本框richTextBox1事件中加载事件TextChanged 。

//文本框改变时,设置进度条同步改变

private void richTextBox1_TextChanged(object sender, EventArgs e)

{

if (this.toolStripProgressBar1.Value < this.toolStripProgressBar1.Maximum)

{ this.toolStripProgressBar1.Value++; }

else

{ this.toolStripProgressBar1.Value = 0; }

}

2.5.2显示系统时间

2.6 设置帮助主题

//设置帮助主题

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

{

MessageBox.Show("暂时无帮助信息!","帮助提示");

}

c语言课程设计论文

《C语言程序设计》 项目设计报告 项目名称:学生成绩信息管理系统 2016年 1月 13日

目录 1 项目分析 0 1.1 问题描述 0 1.2 功能需求分析 0 2 系统设计 (1) 2.1 数据结构设计 (1) 2.3部分功能设计 (2) 3 系统实现源程序 (2) 3.1 主函数设计 (2) 3.2 添加学生信息 (5) 3.3 姓名学号查询 (18) 3.4 成绩查询 (22) 3.5 删除学生成绩信息 (24) 3.6 修改学生成绩信息 (29) 4 功能测试 (33) 4.1 菜单测试 (33) 4.2 系统功能测试 (33)

5 系统设计遇到的问题及解决方法 (35) 6 项目设计总结 (37)

1 项目分析 1.1 问题描述 信息储存与查询是计算机处理数据的优势之一,目前,学生信息的管理系统已经完全走进了校园,其中成绩信息的储存是主要部分,本课题使用C语言实现学生成绩的储存,查询,修改,以及删除等操作。程序中涉及到数据块和文件指针的操作,包括结构体数据定义,使用及文件的读写,定位,修改等。 1.2 功能需求分析 学生成绩信息管理系统的主要功能如下: ①添加学生信息:录入学生的基本信息,如姓名,学号,成绩。 ②显示所有学生成绩信息:直接显示已经全部录入学生的成绩信息。 ③学号或姓名查询:可以根据学生的姓名和学号直接查询该名学生的成绩。 ④成绩查询:可以根据一个特定的分数来查询学生的信息。 ⑤删除学生成绩信息:可以直接根据学号确定是否删除对应学生的成绩信息。 ⑥修改学生成绩信息:直接根据学生学号来修改学生的姓名,学号,成绩。

重庆科技学院_java程序课程设计__日历记事本

Java程序设计课程设计报告

日历记事本 目录 目录 (2) 1 概述 (1) 1.1 课程设计目的 (1) 1.2 课程设计内容 (1) 2 系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3 开发环境 (1) 3系统概要设计 (1) 3.1 系统的功能模块划分与系统流程图 (1) 4系统详细设计 (2) 5 测试 (4) 5.1 测试方案 (4) 5.2 测试结果 (4) 6 小结 (6) 参考文献 (8) 附录 (9) 附录1 源程序清单 (9)

Java程序设计课程设计报告(2011) 学生成绩管理系统的设计 1 概述 1.1 课程设计目的 1)巩固和提高java编程技术。 2)培养掌握成学设计的基本思路和方法。 3)加强研发、调试程序的能力。 4)增强分析、解决问题的能力。 5)提高科技论文写作能力。 1.2 课程设计内容 设计GUI界面的日历记事本。系统将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。 2 系统需求分析 2.1 系统目标 1. 系统界面的左侧是日历。该日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前的日历的年份减一;当鼠标左键单击“下年”按钮,当前日历年份加一。 2. 该日历也可以在某年内按月前后翻动,鼠标单击“上月”按钮时,当前的日历的月份减一;当鼠标左键单击“下月”按钮,当前日历月份加一。 3. 使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已有记录内容,并询问用户是否用记事本显示该内容。 2.2 主体功能 用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。 通过按按钮“上年”和“下年”对年份进行翻页。通过按按钮“上月”和“下月”对月份进行翻页。用户可以通过输入年份来查看自己的日志。 2.3 开发环境 Windows XP;jdk1.5.0-0-05;ultraedit开发工具 3系统概要设计 3.1 系统的功能模块划分与系统流程图 本日历记事本共有4个java源文件。

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、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

通讯录管理系统课程设计报告书C语言

二〇〇八~ 二〇〇九学年第二学期 信息科学与工程学院 课程设计报告书 课程名称: C语言课程设计 班级:

学号: 姓名: 指导老师: 月九年二〇〇九 通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。. 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select())

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

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。 这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能; 2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式

③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。 程序流程图 图1 掷骰子游戏 2.1.4调试过程及实验结果

Java课程设计+文档+源代码(万年历+闹钟+记事本)

2015年12月18日 一、课程题目 设计一个万年历系统,实现以下功能 (1)可以查看当前的年份、月份和日期; (2)有时间栏,便于用户查看当前时间; (3)能够查找1至9999年的日期与星期的关系。 其它功能可自行开发。 二、题目分析与设计 1.使用的开发环境为eclipse Jdk环境:jdk1.8 2. (此为万 年历界面图) 使用了jTabbedPane 类对功能页面分页,布局策略基本用BorderLayout 和GridLayout 。 3.本项共有5个类,基本一个功能有一个类实现,主类CalendarMain 只包含一个main函数:对创建框架和其属性设置。

AlarmDemo类则实现闹钟功能;NoteBook 类实现记事本功能;CalendarsView 类则实现基本日历功能,ChooseDay 类是一个弹窗,被CalendarsView 调用,CalendarsView 、AlarmDemo 也在该类被调用; . 4.日历界面使用了jTable ,功能的实现逻辑则是 1.首先定义两个全局变量---年和月,查看不同时间的日历,该变量也 随之改变。 2.写了几个函数获取今年第一天是星期几,然后根据月份天数即可推 算具体某月第一天是星期几。 3.知道一个月第一天是星期几,则该月日历既可以顺序列出。 闹钟的功能实现思路: 1.获取界面设定的时间。

2.使用线程,每过一秒急救获取当前时间,并判断是否到达设定的时 间 3.到设定的时间,启动弹窗,播放闹铃 4.闹铃科根据文件选择器自行选择 记事本功能实现思路 1.在项目文件夹先新建一个txt文件作为储存的数据库 2.利用File 类和io 数据流将界面文本储存进txt文件,实现保存功 能 3.每当程序启动,读取txt文件内容并显示到界面上 三、测试分析 1.使用如下拓展包

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语言的基础上开发的一种集、和过程化编程于一体的。应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。它

系统分析设计安卓通讯录课程设计

2015-2016学年第1学期《系统分析与设计》课程设计 项目名称:基于安卓系统的手机通讯录 指导教师:王娟 班级:13级Java1班 学生名单:

第一章项目介绍 选题:鉴于本次课程设计的目的是通过一些实际的例子,培养学生分析和解决实际问题的能力,培养学生综合应用基本概念、基本原理和技术方法的能力,真正做到学以致用,使课本上抽象的理论、方法与具体的实践应用相结合,所以我们组选择了安卓通讯录这个课题。 背景:Android本意词是指“机器人”,同时也是Goole于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,Android是一种基于Linux 的自由及开放源代码的操作系统,Android以其自由开放源代码的特点而成为最热门的智能手机。 在这个信息化的时代,手机已成为继固话之后最为通俗的交流工具,“通讯”成了生活的必需品,这就有了系统下人与人之间的多样联系方式——手机通讯录。传统通讯录以纸张为载体,将需要记录的联系人一一人登记在册,包括地址、联系方式等,再在需要时进行翻阅查询。手机通讯录,在手机系统下,占用手机相对很小的空间,系统的记录联系人的联系方式及其他信息,不仅突破了各种条件的舒服,减轻了机主的负担,更方便了使用者的通讯。 综上所述,手机通讯录管理系统是一个高效、实时、绿色环保的管理系统。然而现在很多通讯录外观花哨、功能单一或形同虚设。针对以上各种弊端,我们通过需求分析等着手设计一款简单方便的通讯录。 项目:本项目的设计工作如下:选题、分组、任务划分,需求建模(需求基本描述,用例图和用例描述),系统分析(查找分析类,序列图和活动图),系统设计(功能设计——程序流程图,数据库设计,界面设计——原型图)。本项目使用eclipse开发平台,并连接使用SQlite数据库编写。分为后台数据库的建立和维护,以及前端应用程序的开发两个部分,主要包括添加、删除、修改联系人姓名、电话、住址等。 组员分工: 需求分析(用例描述):杨赓 系统分析(时序图、协作图、类图):张坤鹏郑四林王文凯王浩 系统设计(数据库、界面设计):王浩 整理总结:王浩

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); //调用函数为新局初始化,第二个

Java日历记事本课程设计报告毕业用资料

Java日历记事本课程设计报告 在设计日历记事本时,需要编写6个JAVA源文件:CalendarWindow.java、CalendarPad.java、NotePad.java、CalendarImage.java、Clock.java和CalendarMesssage.java 效果图如下 .CalendarWindow类 import javax.swing.*; import java.awt.*;

import java.awt.event.*; import java.util.*; import java.io.*; public class CalendarWindow extends JFrame implements ActionListener,MouseListener,FocusListener{ int year,month,day; CalendarMessage calendarMessage; CalendarPad calendarPad; NotePad notePad; JTextField showYear,showMonth; JTextField[]showDay; CalendarImage calendarImage; String picturename; Clock clock; JButton nextYear,previousYear,nextMonth,previousMonth; JButton saveDailyRecord,deleteDailyRecord,readDailyRecord; JButton getPicture; File dir;

记事本课程设计

第 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("退出") },

C语言程序设计论文

C语言程序设计论文学校:天津电子信息职业技术学院 系别:电子技术系 专业:通信技术 班级:通信S13-26 学号:89757 姓名:王磊

C语言课程设计报告 一、设计题目:计算器 二、设计目标:进一步加深、巩固学生所学专业课程(《C语言》)的基本理论知识,理论 联系实际,进一步培养学生综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能,充分发挥广大同学的潜力,使他们通过本次课程设计而得到全面的锻炼。 三、设计内容: 1.设计系统的功能框图、流程图; 2.编写计算器的源程序代码; 3.上机调试; 4.答辩; 5.书写实习报告。 四、课程设计所用设备:每人一台计算机。 五、课程设计系统组成及模块功能: (1)主函数模块 (2)设置系统进入图形模块 (3)初始化图形系统模块 (4)计算器计算函数模块 (5)窗口函数模块 (6)设计鼠标图形函数模块 (7)获取特殊键函数模块 六、软件环境:Visual c++6.0 七、课程设计要求:在计算机上操作,通过Visual c++6.0,设计出“计算器”程序。 八、应提交的材料:实习报告一份,内容包含“计算器”程序代码。 设计报告: 程序代码:#include #include #include #include #include #include #include

#include #include #define UP 0x48 #define DOWN 0x50 #define LEFT 0x4b #define RIGHT 0x4d #define ENTER 0x0d void *rar; struct palettetype palette; int GraphDriver; int GraphMode; int ErrorCode; int MaxColors; int MaxX, MaxY; double AspectRatio; void drawboder(void); void initialize(void); void computer(void); void changetextstyle(int font, int direction, int charsize); void mwindow(char *header); int specialkey(void) ; int arrow(); int main() { initialize(); computer(); closegraph(); return(0); }

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

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

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

课程设计—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');

java课程设计(通讯录管理系统)

合肥学院 计算机科学与技术系 课程设计报告 2013~2014学年第二学期 课程面向对象课程设计 课程设计名称通讯录程序 学生姓名XXX 学号 专业班级XXXXX 指导教师XXX 20 年月

目录 一、设计题目 (1) 二、设计要求 (1) 三、总体设计 (1) 3.1系统功能框架 (1) 3.2系统功能说明 (3) 四、详细设计 (3) 1.数据结构设计 (3) 2.系统模块设计 (10) 五、运行结果 (13) 一.设计题目 随着社会的进步与发展,通讯越来越密切。希望能通过对java课程设计的学习和掌握来编写一个通讯录管理系统。 二.设计要求 (1)只能使用Java语言,采用面向对象方法进行设计,要求源程序要有适当的注释,使程序容易阅读。 (2)程序必须与数据库进行通信。

(3)系统必须是图形用户界面的形式并连接数据库 三. 总体设计 3.1 3.2 系统功能说明 (1)具有新用户注册功能。 (2)具有注册用户登录功能。 (3)具有数据的录入功能。 (4)具有数据查询功能,可以实现查询全部信息和按条件执行查询。(5)具有按条件删除数据功能。

(6)具有统计功能 4. 详细设计 4.1数据结构设计(java程序设计) //登录系统 package com.ibm.etp.addressbook.action; import java.util.HashMap; import java.util.List; import https://www.360docs.net/doc/657670758.html,er; import com.ibm.etp.addressbook.service.LoginService; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private static final long serialVersionUID = 1L; public String username; public String password; private String message; @Override public String execute() throws Exception { HashMap result = new HashMap(); List list = null; System.out.println(username); if(username == null || username.trim().length() == 0) { result.put("success", false); result.put("msg", "https://www.360docs.net/doc/657670758.html,ername.empty"); } else if(password == null || password.trim().length() == 0) { result.put("success", false); result.put("msg", "login.password.empty"); } else { LoginService ls = new LoginService(); list = ls.checkLogin(username); } if(list == null) { result.put("success", false); result.put("msg", "https://www.360docs.net/doc/657670758.html,er.not.exist"); } else if(list.get(0).getPassword().equals(password)) { result.put("success", true); result.put("msg", "login.success"); } else {

面向对象程序的设计说明书与程序(日历记事本)

日历记事本 1.课程设计目的 通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 本课程设计设计GUI界面的日历记事本,系统将日历和记事本结合在一起,可以方便的保存、查看日志,即在任何日期记载下有关容或查看某个日期记载的容。 2.设计方案论证 2.1设计思路 2.1.1 本系统界面的左侧是日历和一幅图像。该日历可以按年前后翻动,用鼠标左键单击“上年”按钮,可将当前日历的年份减一;用鼠标左键单击“下年”按钮,可将当前日历的年份加一。该日历还可以在某年按月前后翻动,用鼠标单击“上月”按钮,可将当前日历的月份减一;用鼠标单击“下月”按钮,可将当前日历的月份增一。 2.1.2 系统界面的右侧是记事本和一个时钟。用鼠标单击日历上的日期,就可以通过该记事本编辑有关日志,并将日志保存到一个文件。该文件的名字是由当前日期组成的字符序列。用户可以查看、删除某个日期的日志,也可以继续向某个日志添加新的容。2.1.3 当某个日期有日志时,显示该日期的外观上就会出现“有”标记,表明这个日期有日志;当用户删除某个日期的日志后,该日期的外观上的“有” 标记就会消失。 2.2设计方法 在设计日历记事本时,需要编写6个Java源文件:CalendarWindow.java、CalendarPad.java、NotePad.java、CalendarImage.java 、Clock.java和CalendarMessage.java。 日历记事本除了需要编写的上述6个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JTextField、JTextArea和File类。 2.2.1 CalendarWindow.java 主类

安卓课程设计_手机通讯录系统全解

目录 1前言 (1) 2系统的需求分析 (2) 2.1需求分析 (2) 2.1.1基本功能需求 (2) 2.1.2系统用例分析 (2) 2.2总体设计方案 (5) 2.2.1系统模块关系与划分 (5) 3系统的概要设计 (6) 3.1通讯录需求分析 (6) 3.1.1新建、编辑联系人 (6) 3.1.2查找联系人 (6) 3.1.3通讯功能 (6) 3.1.4个人中心 (7) 3.1.5还原与备份功能 (7) 3.2系统界面设计 (8) 4系统编码实现 (14) 前言

随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与2007年11月推出了一个专为移动设备设计的软件平台——Android。 Android 是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。 Android(Google公司)是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。 (1)优点:具备触摸屏、高级图形显示和上网功能,界面强大,可以说是一种 融入全部Web应用的单一平台 (2)缺点:由于时时刻刻都需要和网络进行连接,因此在手机的能耗方面控制就较差, 导致待机能力不足;又由于其开源性,过分依赖开发商,缺少标准配置。 1.1需求分析 1.1.1基本功能需求

C语言课程设计报告学生成绩管理系统

机电工程学院 中南大学 本科生C语言课程设计题目学生成绩管理系统

一、课程设计 题目:学生成绩管理系统 给出n个学生的4门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计:按某一科分数或平均分数高低次序,列出名次表,分数相同的为同一名次;按名次打印出每个学生的学号、姓名、总分以及各科成绩,并打印统计表。 三、概要设计 程序要有的功能: 1. 输入学生成绩 2. 保存成绩 3. 学生成绩排序 4. 学生成绩查询 5. 学生成绩清单 6. 退出管理系统 程序运行当中,通过选择对应的功能序号来实现所需功能。对输入的数据要有事先的分析,如果用户输入的数据与实际不相符如输入成绩的数值为负,则程序应输出相应的提示:“数据不存在”。再者就是,当再输入完相应的数据后,程序作出相应的提示,询问用户是否要继续输入。在排列学生成绩时候,如果出现成绩相同的情况,程序自动作出处理。 四、设计任务 将程序分为六个方面:1. 输入学生成绩、2. 保存成绩、3. 学生成绩排序、4. 学生成绩查询、5. 学生成绩清单、6. 退出管理系统。每个人负责两个方面的程序,其中侯蒙召负责1、2两个程序,杨天静负责3、4两个,张振陆负责5、6两个,最后交由组长侯蒙召组合整理,形成现在的总的程序。

流程图:

四、详细设计 源程序: #include #include #include #include struct Student {char name[20]; int no; int math; int program; int english; int chinese; int aver; }stu[100],t; int num=0; int menu() { int a; char s[20]; system("cls"); /*程序介绍*/ printf(" 欢迎使用学生成绩管理系统,该系统包括以下几项功能,请根据提示做相应操作\n"); printf(" 1->输入学生成绩\n"); printf(" 2->保存成绩\n"); printf(" 3->学生成绩排序\n"); printf(" 4->学生成绩查询\n"); printf(" 5->学生成绩清单\n"); printf(" 6->退出管理系统\n");/*选择操作*/ printf("\n"); printf(" 请选择要进行操作的编号:\n"); do{ printf("Enter you choice(0~6):"); scanf("%s",s); a=atoi(s); }

相关文档
最新文档