当前位置:文档之家› C#实现程序的版本自动升级更新

C#实现程序的版本自动升级更新

C#实现程序的版本自动升级更新
C#实现程序的版本自动升级更新

我们做了程序,不免会有版本升级,这就需要程序有自动版本升级的功能。那么看看我是如何实现程序自动更新的。

直接上代码:

1using System;

2using System.Collections.Generic;

3using System.Text;

4using System.Reflection;

5using System.IO;

6using https://www.doczj.com/doc/b26747489.html,;

7using System.Xml;

8

9namespace Update

10 {

11///

12///更新完成触发的事件

13///

14public delegate void UpdateState();

15///

16///程序更新

17///

18public class SoftUpdate

19 {

20

21private string download;

22private const string updateUrl = "https://www.doczj.com/doc/b26747489.html,/upda te.xml";//升级配置的XML文件地址

23

24#region构造函数

25public SoftUpdate() { }

26

27///

28///程序更新

29///

30///要更新的文件

31public SoftUpdate(string file,string softName) {

32this.LoadFile = file;

33this.SoftName = softName;

34 }

35#endregion

36

37#region属性

38private string loadFile;

39private string newVerson;

40private string softName;

41private bool isUpdate;

42

43///

44///或取是否需要更新

45///

46public bool IsUpdate

47 {

48get

49 {

50 checkUpdate();

51return isUpdate;

52 }

53 }

54

55///

56///要检查更新的文件

57///

58public string LoadFile

59 {

60get { return loadFile; } 61set { loadFile = value; } 62 }

63

64///

65///程序集新版本

66///

67public string NewVerson

68 {

69get { return newVerson; } 70 }

71

72///

73///升级的名称

74///

75public string SoftName

76 {

77get { return softName; } 78set { softName = value; } 79 }

80

81#endregion

82

83///

84///更新完成时触发的事件

85///

86public event UpdateState UpdateFinish;

87private void isFinish() {

88if(UpdateFinish != null)

89 UpdateFinish();

90 }

91

92///

93///下载更新

94///

95public void Update()

96 {

97try

98 {

99if (!isUpdate)

100return;

101 WebClient wc = new WebClient();

102string filename = "";

103string exten = download.Substring(https://www.doczj.com/doc/b26747489.html,stInd exOf("."));

104if (loadFile.IndexOf(@"\") == -1)

105 filename = "Update_" + Path.GetFileNameWithout Extension(loadFile) + exten;

106else

107 filename = Path.GetDirectoryName(loadFile) + "\ \Update_" + Path.GetFileNameWithoutExtension(loadFile) + exten;

108 wc.DownloadFile(download, filename);

109 wc.Dispose();

110 isFinish();

111 }

112catch

113 {

114throw new Exception("更新出现错误,网络连接失败!");

115 }

116 }

117

118///

119///检查是否需要更新

120///

121public void checkUpdate()

122 {

123try {

124 WebClient wc = new WebClient();

125 Stream stream = wc.OpenRead(updateUrl);

126 XmlDocument xmlDoc = new XmlDocument();

127 xmlDoc.Load(stream);

128 XmlNode list = xmlDoc.SelectSingleNode("Update"); 129foreach(XmlNode node in list) {

130if(https://www.doczj.com/doc/b26747489.html, == "Soft" && node.Attributes["Nam e"].Value.ToLower() == SoftName.ToLower()) {

131foreach(XmlNode xml in node) {

132if(https://www.doczj.com/doc/b26747489.html, == "Verson")

133 newVerson = xml.InnerText;

134else

135 download = xml.InnerText;

136 }

137 }

138 }

139

140 Version ver = new Version(newVerson);

141 Version verson = Assembly.LoadFrom(loadFile).GetNa me().Version;

142int tm = https://www.doczj.com/doc/b26747489.html,pareTo(ver);

143

144if(tm >= 0)

145 isUpdate = false;

146else

147 isUpdate = true;

148 }

149catch(Exception ex) {

150throw new Exception("更新出现错误,请确认网络连接无误后重试!");

151 }

152 }

153

154///

155///获取要更新的文件

156///

157///

158public override string ToString()

159 {

160return this.loadFile;

161 }

162 }

163 }

把代码编译为一个类库文件,通过程序引用就OK啦。

传入的参数已经有注释了。

下面是更新的XML文件类容,传到空间上面就可以了,得到XML文件的地址。

1

2

3

4 1.0.1.2

5 https://www.doczj.com/doc/b26747489.html,/BlogWrite.rar

6

7

程序更新调用方法:

1、先引用上面的DLL。

2、调用方法代码如下:

1using System;

2using System.Collections.Generic;

3using https://www.doczj.com/doc/b26747489.html,ponentModel;

4using System.Data;

5using System.Drawing;

6using System.Text;

7using System.Windows.Forms;

8using System.IO;

9using System.Threading;

10using https://www.doczj.com/doc/b26747489.html,;

11using System.Xml;

12using Update;

13

14namespace UpdateTest

15 {

16public partial class Form1 : Form

17 {

18public Form1()

19 {

20 InitializeComponent();

21 checkUpdate();

22 }

23

24public void checkUpdate()

25 {

26 SoftUpdate app = new SoftUpdate(Application.ExecutableP ath, "BlogWriter");

27 app.UpdateFinish += new UpdateState(app_UpdateFinish); 28try

29 {

30if (app.IsUpdate && MessageBox.Show("检查到新版本,是否更新?", "Update", MessageBoxButtons.YesNo, MessageBoxIcon.Questio n) == DialogResult.Yes)

31 {

32

33 Thread update = new Thread(new ThreadStart(app. Update));

34 update.Start();

35 }

36 }

37catch (Exception ex)

38 {

39 MessageBox.Show(ex.Message);

40 }

41 }

42

43void app_UpdateFinish() {

44 MessageBox.Show("更新完成,请重新启动程序!", "Upda te", MessageBoxButtons.OK, https://www.doczj.com/doc/b26747489.html,rmation);

45 }

46

47 }

48 }

javascript课程设计

潍坊科技学院 JavaScript课程设计 报告书 设计题目基于javascript的电子商务网站开发 专业班级11软件一 学生姓名江京翔 学号201101080002 指导教师陈凤萍 日期2012.12.24~2012.1.11 成绩

课程设计任务书 院系:软件学院专业:软件技术班级:11软1 学号:201101080002 一、课程设计时间 2012年12月24日至2013年1月11日,共计3周。 二、课程设计内容 使用html+javascript+css 完成以下任务: 1、能够熟练使用css结合html实现网页布局。 2、熟练使用文档对象模型和事件驱动,能够很好的实现web表单的交互式操作。 3、熟练使用javascrip中的对象,实现网页的动态效果。 三、课程设计要求 1. 课程设计质量: ?贯彻事件驱动的程序设计思想,熟练使用javascript中的对象,实现网页特效。 ?网页设计布局合理,色彩搭配合理,网页操作方便。 ?设计过程中充分考虑浏览器兼容等问题,并做适当处理。 ?代码应适当缩进,并给出必要的注释,以增强程序的可读性。 2. 课程设计说明书: 课程结束后,上交课程设计报告书和相关的网页。课程设计报告书的格式和内容参见提供的模板。 四、指导教师和学生签字 指导教师:学生签名:江京翔 五、教师评语:

基于javascript的电子商务网站开发 摘要 JavaScript是开发WEB应用程序不可或缺的一种语言,无论是为web页面增加交互性还是创建整个应用程序,如果没有Javascript,今天的web就不是现在这个样子了。JavaScript是具有正式规范的基于标准语言;然而,正如任何一个web开发人员所告诉你的那样,几乎每个web浏览器对这个规范的解释都不同。 本网站充分的结合了HTML与CSS的结合充分显示了网站的动态效果,是客户与网站能够充分的结合,进行信息的交换信息不断的进行更新。 基于新闻管理网站,国外新闻页面更具有代表性,是网站最标准型之一,通过Javascript 脚本的交互式该页面更好与其他的页面相互结合。 同时通常页面的下载是按照代码的排列顺序,而表格布局代码的排列代表从上向下,从左到右,无法改变。而通过CSS控制,您可以任意改变代码的排列顺序,比如将重要的右边内容先加载出来。 关键字:节假日、日历、Javascript脚本

c语言程序设计课程计算器设计报告

课程设计说明书 题目计算器程序设计 起讫日期 2006 年 7月 3日至 2006 年 8月 6日 所在院系软件学院 专业机械+软件班级 04-2 学生姓名偶偶哦学号 指导教师 2006年 8 月日

摘要 当今社会是信息社会,科技经济高速发展的社会!为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。由于它体积小巧,携带方便,价格便宜,构造简单等诸多的优点成为人们生活中的必备品! 随着科技的发展计算器的种类变得更多,功能变得更强大,体积变得更小!电脑的出现改变人们的生活习惯,很多事情都可以电脑来完成!电脑的更大一个优点就是可以通过软件的应用无限的延伸电脑功能的外延!下面我们将用我们学习的c语言编写一个简易的计算器程序!实现简单的初步的计算功能! 本程序的编写基础是Tubro 汉化版,它在tubro c的原有基础上实现了多汉字的支持方便了我们的使用。生成的程序可移植性强兼容性好稳定!现在只实现了加、减、乘、除、求幂、求模,求平方根,求Sin,求Cos,求Log10,以及一个时钟原代码。这个系统是基于软件发展的生命周期来研制的,它可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。但是,每次只能运算一个表达式。不能运算多个表达式。在程序里面在添加一组选择函数即可。本论文主要介绍了本课题的开发背景,开发的过程和所要完成的功能。重点的说明了系统设计思想,设计的步骤、难点技术和解决方案。 关键词:C语言 Tubro c 汉化版计算器时钟

目录 第一章综述 (1) 1.1 课题的现实意义 (1) 1.2 软件环境 (1) 1.3 硬件环境 (1) 第二章系统设计流程图 (2) 2.1 系统流程图 (2) 2.2 主要功能表 (2) 第三章系统分析和设计 (3) 3.1 图形的绘制和输出 (3) 3.2 文本的输出显示 (3) 3.3 计算函数的调用 (4) 3.4 程序的运行和退出 (5) 第四章系统测试 (6) 4.1 系统测试 (6) 4.2 调试 (6) 4.3 错误原因分析一 (6) 4.4 错误原因分析二 (6) 第五章用户使用说明书 (8)

(vb课程设计)图片浏览器修改

图片浏览器设计报告 学院土木工程学院班级土木工程C076 学号074837 姓名郭少华成绩 一、设计思路 1.要达到的目的 ①培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。 ②能够打开常见类型的图片,自动进行缩放,适应PictureBox的大小。 ③在FileListBox中只列出图片文件。 ④使用StatusBar 控件状态条显示图片文件相关信息,包括图片尺寸(单位:象素)、文件大小和日期等。 ⑤使用HscrollBar控件对图片进行缩放。 ⑤可以轮流显示FileListBox中列出图片文件。 ⑥当图片放大超过窗口大小后,可以提供鼠标移动图片显示。 2.关键问题的解决 ①使用Loadpicture方法在图片框里加载符合格式要求的图片。 ②使用FileListBox方法来显示图片。 ③使用PaintPicture方法和改变滚动条的Value属性,使图片能够缩放。 ④使用Timer事件更改FileListBox的ListCount属性,使图片能自动浏览。 ⑤使用MouseMove事件,在图片过大时,通过鼠标移动使图片显示。 二、模块之间的调用关系,或程序流程图 picture 模 块 hscrollbar 模 块pictureload

三、部分程序关键源代码及注释 Private Sub Form_Load() Drive1.Drive = App.Path Dir1.Path = App.Path 'App 是当前的应用程序对象 File1.Pattern = "*.bmp;*.jpg;*.ico;*.wmf" '在FileListBox中只列出图片文件。 Picture1.AutoSize = True Picture2.AutoSize = True '设定自动缩放,适应PictureBox的大小。 = 2000 = sbrCenter = 1800 = sbrCenter = 2400 = sbrCenter = 3000 = sbrCenter '设定StatusBar的数量和属性 End Sub Private Sub Drive1_Change() On Error Resume Next Dir1.Refresh Dir1.Path = Drive1.Drive If Err.Number = 68 Then Err.Clear MsgBox "先将光盘插入!", , "提示" Exit Sub End If '设定错误提示 End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Private Sub File1_Click() If Right(File1.Path, 1) <> "\" Then tempstring = File1.Path & "\" & File1.FileName '非根目录时,路径中的最后加上一个反斜杠"\" Else tempstring = File1.Path & "\" & File1.FileName End If '装入选定的文件。 Picture1.Enabled = True Picture2.Picture = LoadPicture(tempstring) Picture1.PaintPicture Picture2.Picture _ , 0, 0, Picture1.Width, Picture1.Height, _ 0, 0, Picture2.Width, Picture2.Height '设定图片的初始状态。 Picture2.Visible = False mysize = FileLen(Dir1.Path & "\" & File1.FileName) Picture2.ScaleMode = 3

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 功能需求分析 学生成绩信息管理系统的主要功能如下: ①添加学生信息:录入学生的基本信息,如姓名,学号,成绩。 ②显示所有学生成绩信息:直接显示已经全部录入学生的成绩信息。 ③学号或姓名查询:可以根据学生的姓名和学号直接查询该名学生的成绩。 ④成绩查询:可以根据一个特定的分数来查询学生的信息。 ⑤删除学生成绩信息:可以直接根据学号确定是否删除对应学生的成绩信息。 ⑥修改学生成绩信息:直接根据学生学号来修改学生的姓名,学号,成绩。

C程序设计与应用实验指导与习题1,2章答案

第二部分习题篇 第一章C语言概述 一.单项选择题 1.A)2.A)3.A)4.B)5.C)6.D)7.C)8.A)9.D)10.C)11.C)12.D)13.B)14.D)15.A)二.填空题 1.高级语言2.main( ) 3.main( ) 4.{ } 5.分号 6.换行7.*/ 8.函数9.编译10..exe 三.判断题 1.(对)2.(对)3.(错)4.(对)5.(对)6.错)7.(对)8.(错)9.(对)10.对) 第二章数据类型与表达式 一.单项选择题 1.A)2.C 3.D)4.A)5.C)6.D)7.C)8.C)9.A)10.A)11.B)12.C)13.C)14.D)15.B)16.B)17.C) 二.填空题 1.Double 2.不同3.27 4.35 5.5 6.double 7.43 8.53 9.12,10,18 10.12.20 11.1,3,3,1 12.4,8 三.判断题 1.(对)2.(对)3.(错)4.(对)5.(对)6.(错)7.(对)8.(错)9.(对)10.(对) 第三章顺序结构程序设计 一.单项选择题 1.D)15.0,25.0,35.0 2.C)x=1.23,y=1.26 3.B)scanf(“%d%d%d”,&a,&b,&c);

4.A)scanf("%f",&a); 5.D)程序输出小写字母d 6.B)3 二.填空题 1.5.5 2.c+25 3.1,2,A,a 4.2D 三.判断题 1.顺序结构、选择结构和循环结构可以组成所有的各种复杂程序。(对)2.复合语句就是多条语句,不必须用花括号括起来。(错)3.在变量说明中,允许连续给多个变量赋初值。(错)4.scanf函数和printf函数的原型在头文件“stdio.h”中。(对)5.printf函数格式字符串中%4d表示输出一定是四位十进制整数。(错)6.putchar 函数的功能是在显示器上输出一个字符。(对)7.在scanf函数的格式串中,如果是“%d%d%d”,在输入三个十进制整数时要用一个以上的空格键、回车键和Tab键作为每两个输入数之间的间隔。(对)8.在scanf函数的格式串中,如果是“%c%c%c”,在输入三个字符时要用一个以上的空格键、回车键、Tab键和逗号作为每两个输入字符之间的间隔。(错)9.scanf("%5.2f",&a);是合法的,目的是输入小数为2位的实数。(错)10.getchar函数的功能是从终端输入一个字符。(对) 第四章选择结构程序设计 一.单项选择题 1.C)算术运算、关系运算、逻辑运算 2.A)% 3.B)x= =0 4.B)!、&&、|| 5.D)(x<=y)&&(y<=z) 6.D)(x<=-10)||(x>=7) 7.A)6='A')&&(x<='Z') 9.A)0,0 10.C)1,0 11.C)2 12.B)1,0,0,1 13.C)1

web网站个人主页课程设计

引言 目录 第一章概述 (1) 1.1 本课题的研究背景 (1) 1.2 本课题的研究意义 (1) 1.3 现行研究存在的问题及解决办法 (1) 1.3.1 需求分析问题 (1) 1.3.2 代码实现问题 (2) 第二章系统分析 (2) 2.1系统需求分析 (2) 2.2 采用的关键技术介绍 (2) 2.2.1 https://www.doczj.com/doc/b26747489.html,简介 (2) 2.2.2 Access数据库简介 (3) 2.3 可行性分析 (3) 2.3.1 技术可行性 (3) 2.3.2 操作可行性 (3)

第三章系统概要设计 (5) 3.1 系统总体设计 (5) 3.1.1 运行环境 (5) 3.1.2 系统流程 (5) 3.1.3 系统结构 (6) 3.2 系统接口的概要设计 (7) 3.2.1 用户接口 (7) 3.3 数据库概要设计 (8) 3.3.1 逻辑结构设计 (8) 3.3.2 物理结构设计 (9) 第四章系统详细设计 (10) 4.1 系统界面的详细设计 (10) 4.1.1 普通用户首页的详细设计 (10) 4.1.2 留言界面的详细设计 (11) 4.1.3 后台首页的详细设计 (11) 4.2 数据库详细设计 (12) 4.2.1 表的详细设计 (12) 第五章系统实现 (15) 5.1 系统开发环境 (15) 5.2 系统实现 (15) 5.2.1 客户端系统实现 (15) 5.2.2 后台管理系统实现 (17) 5.3 系统部署 (17) 5.3.1数据库设置 (17) 5.3.2 服务器端运行设置步骤 (18) 第六章性能测试与分析 (19) 参考文献 (20)

C语言程序设计论文

C语言程序设计论文 鸡西大学 08电气与信息工程系 班级:软件2班 姓名:范孝龙

设计题目:贪吃蛇 正文: 一、引言: 贪吃蛇这一游戏实训中初次接触,通过操作熟悉,觉知此游戏简单易行,操作方便,而且娱乐性较强,应该吸引了不少游戏的钟爱者人。这一款游戏紧紧地抓住了人们的心理,虽然简单,却起乐无穷,在人们不断追求更多的欲望下,该游戏给人们带来了追逐的快感,以及成功后的满足感,对于一直处于高压下的现代人是很好的放松工具,令人百玩不厌。 二、系统分析: 1)可行性分析:首先,贪吃蛇用C语言编程,有很好的技术可行性,在MYTC下也能顺利运行,可以说在技术方面,只要掌握代码编写知识,就不会有多大的问题。其次,贪吃蛇这类小游戏,还能够下载到手机上玩,所以,更容易为人们所接受,这就展现它的经济可行性也会不赖。再次,无论是电脑还是手机或游戏机,在操作上它都很简单,一学就懂,又证实了它的操作可行性。 2)需求分析:游戏是人们生活中不可或缺的,是一个人从小到大,真正伴随他成长的东西。游戏在娱乐中占有着很重要的地位,不论是一个玩具,还是一个能和伙伴一起开心的小游戏,都是能给我们留下很多美好的回忆。所以不论是什么样的游戏,只要它能迎合人们内心的某种需求,它的市场总会是好的。贪吃蛇,是个简单的小游戏,但却能给人以放松,让我们从繁重的日常生活中解脱出来,得到身心

的放松,现在的人,不管是已经工作的,还是还未进入社会的学生,都面临着很大的压力,而这样一款能让我们随时随地都能享受的游戏,其魅力还是不可估量的。 贪吃蛇,之所以取这样的名字,去用意还是很明显的。贪吃蛇其实并不贪,它只是人不断向前追求的象征。就像现代的人只有不断努力向前才能得到自己想要的。而食物也是随机出现的,就像现在社会存在的机会,而我们只有找好自己的目标才能成功。虽然现在市面上存在着各种各样的游戏版本,可是贪吃蛇其市场还是相当大的。因为它的特殊在于它能吸引人更深入,爱不释手。随着游戏速度不断加快,其刺激性也更强。 我觉得该游戏的优势在于它的简单易行,不论是手机,还是小游戏机,都能很快顺利的运行,对于在外忙碌的人,不可能花费大量时间在娱乐上,大型游戏是行不通的,这样的小游戏刚好迎合了他们的需求。 三、设计目的: 进一步培养结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;针对C语言中的重点和难点内容进行训练,能够独立完成有一定工作量的程序设计任务,同时培养好的程序设计风格;掌握C语言的编程技巧和上机调试程序的方法;掌握程序设计的常用算法;加强对所学知识的巩固。 四、设计思想及其编码过程概述: 1)这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩

VISUAL_C 程序设计与应用教程课后答案11111111111

1.6习题 1.填空题 (1)项目工作区一般在集成开发环境的左侧。它展示一个项目的几个方面,它们分别是ClassView、ResourceView和FileView。 (2)编译程序的快捷键是Ctrl+F7,链接程序的快捷键是F7,运行程序的快捷键是Ctrl+F5。 (3)项目工作区文件的扩展名为.dsw。 (4)应用程序向导AppWizard的作用是帮助用户一步步生成一个新的应用程序,并且自动生成应用程序所需的基本代码。通过ClassWizard可以增加消息映射和成员变量。 (5)菜单选择可以通过两种方法来进行:一种是鼠标操作;另一种是键盘操作。 (6)编译微型条工具栏最右边按钮的功能是Insert/Remove Breakpoint。 (7)快捷键或菜单及相关资源的资源符号的前缀是IDR_。 (8)用户可以通过项目工作区窗口的ResourceView视图来查看资源。 2.选择题 (1)项目文件的扩展名是()。 A..exe B..dsp C..dsw D..cpp (2)设置断点的默认方式是()。(第2章) A.Location B.Data C.Message D.Breakpoints (3)用应用程序向导AppWizard创建C++源文件,应选择()选项卡。 A.Files B.Projects C.Workspaces D.Other Documents (4)Standard工具栏中最左边按钮与()菜单命令的功能一样。 A.New B.New File C.New Text File D.New Workspace (5)Windows资源提供的资源编辑器不能编辑()。 A.菜单 B.工具栏 C.状态栏 D.位图 3.判断题 (1)打开一个项目,只需打开对应的项目工作区文件。(T) (2)用户可以通过Tools|Customize菜单命令设置集成开发环境的工具栏。(T) (3)通过应用程序向导AppWizard建立的程序不能被立即执行。(F) (4)在同一项目中,Visual C++在内部用来标识资源的资源符号不能重复。(T) (5)在Windows环境下,资源与程序源代码紧密相关。(F) 4.简答题 (1)什么是项目?它是由什么组成的? 在Visual C++集成开发环境中,把实现程序设计功能的一组相互关联的C++源文件、资源文件以及支撑这些文件的类的集合称为一个项目。项目是Visual C++IDE开发程序的基本单位,一个项目至少包含一个项目文件,项目文件的扩展名为.dsp。项目文件保存了项目中所用到的源代码文件和资源文件的信息,如文件名和路径等。同时,项目文件还保存了项目的编译设置等信息,如调试版(debug)和发布版(release)。另外,根据项目类型的不同,一个项目包含有不同的源文件、资源文件和其他类别的文件。

(完整word版)Java课程设计的图片浏览器的讲解

一.课程设计的任务及要求 二.需求分析 图形化界面(GUI)编程,编写一个图片浏览器程序可以支持““.GIF”,“.JPEG”,“.jpeg”,“.TGA”,“.JPG”,“.jpg”等格式,单张打开图片,可以将同一目录下的图片按缩略图打开按“上一张”“下一张”按钮可以显示相应图片。运行Applet时,图像不是一气呵成的,因为方法不是吧图像完整的装入内存再显示的。于此相反,方法创建一个线程,该线程与Applet的原有线程并发执行,一边装入一边显示,从而产生上了不联需显示的现象。为了提高图像才显示效果,可以采用双缓冲技术:首先把图像装入内存,然后再显示在屏幕上。 三. 设计思路 3.1界面设计 选择图片按钮:主要用dir函数实现图片的遍历。 上一张,下一张:通过做标轴回调函数实现。 由于本软件为单机软件,不需要大量的数据读写和数据交换,实现上、下功能要求只能读取PictureBox控件当前加载的目录,读取当前路径,创建一维数组。 frame = new Frame("PictureViewer"); Panel pb = new Panel(); Button select = new Button("选择图片"); previous = new Button("上一张"); next = new Button("下一张"); select.addActionListener(this); previous.addActionListener(this); 3.2.图像加载: Applet常用来显示储存在文件中的图像,多数Applet使用的是GIF或JPEG 格式的图像文件。需Applet加载图像只需首先定义Image对象,然后使用getImage()方法把图像和文件结合起来即可。 image_width = bi.getWidth(this); image_height = bi.getHeight(this); double image_proportion = 1.0 * image_height / image_width; System.out.println("image: w "+image_width+" ,h "+image_height+" ,p1 "+image_proportion);

《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调试过程及实验结果

《C语言程序设计》试题一及答案

本文由yyq91111贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 语言程序设计》试题一《C 语言程序设计》试题一 一、填空题 1.在 C 语言程序设计中,正确的标识符是由组成的。 2.设 x=4, y=(++x)+(++x);那么 y 的值为,表达式执行后,变量 x 的值为。 3.一个变量的指针是指。 4.能够构成一个数组,其元素满足的特点是;那么,构成结构体的成员可以是。 5.下面运算符 < % ++ = 按照优先级从高到低排列顺序为。 6.C 程序设计中语句后的符号 /*……*/ 所起作用是。 二、选择题 ⑴.在使用 TurboC2.0 环境编辑程序时,运行某程序使用的菜单项为( A.FILE B.RUN C.EDIT D.OPTION ) D.a++ ) ⑵.下列语句不具有赋值功能的是( A.a*=b B.x=1 C.a+b ⑶.C 语言程序中,当出现条件分支语句 if~else 时, else 与()组成配对关系 A.同一复合语句内部的 if C.在其之前未配对的最近的 if ⑷.下列数组定义方式不正确的语句是( A.char C. int x[5]; B.char B.在其之前任意的 if D.首行位置相同的 if ) y[]={‘h’, ‘e’, ‘l’, ‘l’, ‘o’}; D.int y[]; x[10]={12,13,14,15}; ⑸. 若有如下定义和语句,且 0<=i<5,下面( int p=a; A. *(a+2) ⑹. 下列( a=5; b=8; c=10; B.a&&d d=0 B.a[p-3] C.p+2 a[]={1,2,3,4,5},*p,i; )是对数值为 3 数组元素的引用 D.a+3 )表达式的值为真 A.a*2>8+2 C. (a*2-c)||d D.a-bm C.(*p).m D.p.stu.n student m; n; ) ⑽.下列函数中不能用于对文件进行输入输出操作的是( A.fscanf( ) B.printf( ) C.fgetc( ) D. fputs( ) ) 三、判断题 1.C 语言程序设计可以对计算机硬件进行操作。 2.在循环过程中,使用 break 语句和 continue 语句的作用是一样的。 3.在函数的定义和调用过程中,形式参数和实在参数数目可以不一致。 4.对于某一指针变量可以接收任何类型的值。 5.在 C 语言程序设计中,不同类型的数在计算机内存中所占空间是不同的。 6.文件指针是结构体类型,可以用表示file 来定义。 7.选择结构不可以使用嵌套形式,但是循环结构可以使用嵌套形式。 8.在定义数组时,有时可以将该数组的维数省略。 9.运算符 && + * 的优先级是 * 优先于 + 优

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); }

C程序设计与应用基础第三章重载习题答案

第三章重载 1、请完成下列填空题 1)在C++中,只能重载为类的成员函数的运算符是_=_、__[]__、__()__、__->__。 2)利用成员函数对二元运算符重载,其左操作数为___This___,右操作数为___成员函数参数___。 3)单目运算符作为类成员函数重载时___没有___的参数;双目运算符作为___类成员函数___重载时需声明其右操作数,作为___友元函数___重载时需声明全部操作数。 4)设a和b是两个整型变量,a+b表示这两个变量的和:设c和d为浮点型变量,c+d也表示这两个变量的和。这里的运算符+具有不同的用途,这是__运算符重载___的例子。 5)重载的运算符仍然保持其原来的优先级、___结合性___和___语法结构___。 6)C++中不能重载的运算符有、__*___、___::___、___?:___和___sizof___。 2、编程题 1)字符串连接需要两个操作数,即两个要被连接的字符串。请按照以平方式实现operator +操作: string1=string2+string3 答案: #include <> #include <> class String { public: String(int size=80) { length=size; buf=new char[length+1]; *buf='\0'; } String(char *s) { length=strlen(s); buf=new char[length+1]; strcpy(buf,s); } String(const String& str) { length=strlen; buf=new char[length+1]; strcpy(buf,; } ~String(){delete[]buf;}

java课程设计 图片查看器要点

课程设计报告 课程名称面向对象程序设计课程设计 专 班级 、 设计题目 指导教师 设计起止时间:2013 年1月7日至2013年1月18日

目录 1、课程设计概述 (3) 2、系统功能描述 (3) 3、系统需求分析与设计 (3) 3.1系统需求分析 (3) 3.2系统设计 (3) 3.2.1 系统总体设计 (3) 3.2.2 程序详细设计 (4) 4、系统测试和使用说明 (7) 4.1系统测试 (7) 4.2系统使用说明 (13) 5、课程设计总结 (13) 5.1遇到的问题和解决方法 (13) 5.2心得体会 (13) 参考文献 (14) 附录 (14)

1、课程设计概述 鉴于目前当今各种繁杂的图片查看器,我们组根据自身的java知识水平,合力开发了一款相对简单的图片查看器软件。在深入理解java语言的语法规则及其优势的同时,掌握类与方法的构造方法,掌握基于java的各种操作的实现方法,训练对基础知识和基本方法的综合运用能力,增强对算法的理解能力,提高软件设计能力。在实践中培养独立分析问题和共同解决问题的作风和能力。 2、系统功能描述 本次设计的图片查看器实现了在用户选定的文件目录下循环浏览指定后缀的图片文件,并且可以对选择的图片进行放大,缩小,左旋,右旋,另存,彻底删除等操作。 3、系统需求分析与设计 3.1 系统需求分析 数字产品的更新日新月异,网络通信技术、图像处理技术以及多媒体技术的发展,使我们的生活变得丰富多彩,让我们的生活变得更便捷,图片的保存和查看已经被越来越多的人所重视,并由此得到了长足的发展。本图片查看器以其简洁明了易操作的特点实现图片查看的基本功能,从而也就满足了用户的基本要求。 3.2 系统设计 3.2.1 系统总体设计 (1)系统功能分析 本系统要用到以下的Java编程技术实现的功能: 图像显示功能:用户需要显示图片,这将由图像显示功能来完成。显示图片的时候,用到了双缓冲技术来消除闪烁问题。 (2)类图 系统中用到了一些基本类、实现了一些接口。系统所用到的类如图1所示:

C语言程序设计实验答案

-前言- /*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。 本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。为回报度娘及众网友的帮助,本文档免费下载。 */ /*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*/ /*努力吧,骚年以及学妹们!*/ /*整理ed by 口玉刀一 of GUET.*/ ===================== 实验一 C语言程序初步 ===================== 已知a=5,b=4,c=6,求出s并换行 #include"" main() { int a,b,c,s; a=5;b=4;c=6; s=(a+b+c)/3; printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s); }

输入一个数字求他的平方#include<> main() { int r,s; scanf("%d",&r); s=r*r; printf("s=%d\n",s); } (1) #include<> main() { printf(" *\n"); printf("***\n"); printf(" *\n"); } (2) #include<> main() { int v;

int a,b,c; (2) #include<> main() { int m; double x; scanf("%d",&m); x=*m*m; printf("%f",x); } 入a,b,c三个变量,计算数学公式(a*b)/c main()

图片浏览器课程设计报告

图片浏览器课程设计报 告 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

图片浏览器设计报告 学院土木工程学院班级测绘C111 学号 117544 姓名戴健健成绩 一、设计思路 1.要达到的目的 ①培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控 件进行设计。 ②能够打开常见类型的图片,自动进行缩放,适应PictureBox的大小。 ③在FileListBox中只列出图片文件。 ④使用StatusBar 控件状态条显示图片文件相关信息,包括图片尺寸(单 位:象素)、文件大小和日期等。 ⑤使用HscrollBar控件对图片进行缩放。 ⑤可以轮流显示FileListBox中列出图片文件。 ⑥当图片放大超过窗口大小后,可以提供鼠标移动图片显示。 2.关键问题的解决 ①使用Loadpicture方法在图片框里加载符合格式要求的图片。 ②使用FileListBox方法来显示图片。 ③使用PaintPicture方法和改变滚动条的Value属性,使图片能够缩放。 ④使用Timer事件更改FileListBox的ListCount属性,使图片能自动浏 览。 ⑤使用MouseMove事件,在图片过大时,通过鼠标移动使图片显示。

二、模块之间的调用关系,或程序流程图 = = 'App 是当前的应用程序对象 = "*.bmp;*.jpg;*.ico;*.wmf" '在FileListBox中只列出图片文件。 = True = True '设定自动缩放,适应PictureBox的大小。 '设定StatusBar的数量和属性 End Sub Private Sub Dir1_Change() = End sub Private Sub HScroll1_Change()

c语言程序设计报告4

课程设计报告 课程名称C语言程序设计 课题名称运动会分数统计系统 专业机械设计及其自动化 班级1185班 学号201113090526 姓名谭信 指导教师王颖 2012年6月22日

湖南工程学院 课程设计任务书 课程名称C语言程序设计 课题运动会分数统计系统 专业班级机械设计1185 学生姓名谭信 学号201113090526 指导老师王颖 审批王颖 任务书下达日期2012年6月1日 任务完成日期2012年6月22日

现代科学飞速发展,世界也不断的变化,人类的生活随着科技的发展也发生着惊天动地的变化。作为新时代的大学生,我们应该不断努力学习科学文化知识,以适应社会的发展要求,以现代化的科学知识为祖国做贡献。而C 语言作为一种计算机语言,无疑是我们将来工作不可缺少的一门技能,所以我们应该认真学好C语言。但只是课本上的知识是不够的,我们应该将从课本上学到的理论知识应用到实践中,通过不断的实践,在实践中发现错误解决错误,并不断创新,最后能熟练的运用所学的知识,充分掌握这种工具。就现有知识水平、经验来看,对我来说,本程序的算法设计上已经是最精简的了。C语言知识博大精深,有必要对C语言的专著进行研究学习,多阅读别人的程序代码、多动手实践操作与设计,这样便对程序算法精简改进提供了可能。想学的更深更透彻的话就必须进一步掌握运用C进行程序设计的能力;进一步理解和运用面向过程程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用互联网查找相关的知识并学习;学海之路何其宽广,有必要让我们孜孜不倦的求索下去。

绪论 (1) 第一章需求分析 1.1程序的功能及要求 (5) 1.2系统的性能要求 (5) 1.3测试数据 (6) 第二章概要设计 2.1结构体 (6) 2.2主程序(main) (6) 2.3模块的功能 (6) 2.4程序模块机之间的调用关系 (7) 第三章详细设计 3.1宏定义 (8) 3.2数据类型定义 (8) 3.3函数之间的调用关系图 (8) 3.4算法设计 (9) 第四章调试分析 4.1不足之处 (10) 4.2错误规范 (10) 4.3算法的时空分析 (10) 4.4存在的问题 (10) 第五章测试结果 (11) 第六章用户使用手册 6.1运行环境 (12) 6.2用户界面 (12) 6.3操作过程 (13) 第七章参考文献 (14) 第八章设计体会 (15) 第九章附录 (17) 课程设计评分表 (29)

C语言程序设计习题及答案

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是() A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是() A、abc B、12AC C、sun D、 A2 3、设有语句int a=4;则执行了语句a+=a- =a*a后,变量a的值是() A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是() A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是() A、% B、/ C、%和/ D、 + 6、以下关于运算符的优先顺序的描述正确的是() A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是()sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad);

A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是() A、 INPUT x、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、 scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456< 回车 >,下面程序的输出结果是:() void main ( ) { int m,n; scanf(“%2d%3d”,&m,&n); printf(“m=%d n=%d\n”,m,n); } A、m=23 n=45 B、m=234 n=56 C、m=23 n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是() main( ) { int x,y; scanf(“%d”,&x); y=x>12x+10:x-12; printf(“%d\n”,y); } A、 0 B、 22 C、 12 D、10 11、C语言中while和do-while循环的主要区别() A、do-while的循环体至少执行一次 B、while 的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内

相关主题
文本预览
相关文档 最新文档