C#课程设计报告Word文档下载推荐.docx

上传人:b****3 文档编号:18391854 上传时间:2022-12-16 格式:DOCX 页数:21 大小:250.43KB
下载 相关 举报
C#课程设计报告Word文档下载推荐.docx_第1页
第1页 / 共21页
C#课程设计报告Word文档下载推荐.docx_第2页
第2页 / 共21页
C#课程设计报告Word文档下载推荐.docx_第3页
第3页 / 共21页
C#课程设计报告Word文档下载推荐.docx_第4页
第4页 / 共21页
C#课程设计报告Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C#课程设计报告Word文档下载推荐.docx

《C#课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C#课程设计报告Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

C#课程设计报告Word文档下载推荐.docx

2.3.1程序流程图3

2.3.2软件运行过程4

2.3.3实现结果14

3、课程设计总结15

4、参考文献15

1、课程设计目的

(1)通过本次设计掌握VisualStudio中Windows窗体的建立及窗体中各个控件的使用,以及界面的设计

(2)进一步熟悉了所学的C#语言的编程,对编程有了进一步巩固,并提高分析和解决实际问题的能力

(3)初步掌握使用VisualStudio建立软件的这一功能。

熟悉了软件的设计,调试的全过程

2、系统分析与设计

缩略图生成器是一款可以对图像进行处理的软件,用户可以根据自己的需求使用该软件对图像进行处理,比如由于图片过大而无法上传,或者是需要实现批量缩放等,实现这些功能,在一定程度上给需求者带来了极大的方便。

本课程设计实现了一个具有这些功能的缩略图生成器,用户可以使用该软件实习自己所需的一些功能。

但本软件也有一些不足之处,就是没有实现等比例不失真生成缩略图。

2.1系统分析

2.1.1课程设计的任务

(1)根据技术要求和现有开发环境,分析题目

(2)软件设计方案。

包括:

软件功能结构、各功能模块的详细描述、关键程序流程图等。

(3)使用C#语言,实现软件;

(4)调试、修改并完善程序;

(5)生成安装程序,编写软件使用说明书(图文结合进行描述);

(6)撰写课程设计报告。

2.1.2课程设计的要求

(1)单张图片生成缩略图和批量图片生成缩略图;

(2)自定义缩略图的宽和高,等比例不失真的生成缩略图;

(3)生成缩略图文件命名规则定制;

(4)生成文件存放路径的自定义。

2.2系统的设计

本软件是一款基于VisualStudio系统的软件,简单易操作。

只有VisualStudio2005及更高的版本下才能使用,本软件实现了以下功能:

(2)自定义图片的高和宽;

(3)生成缩略图文件命名规则的定制;

2.2.1逻辑层次的设计

本次设计的软件可以实现单张和多张图片的缩略,自定义图片的高和宽,自定义保存路径和自定义图片命名规则。

缩略图生成器的基本结构框图如图1所示

图1缩略图生成器基本结果框架

2.2.3主界面的设计

本软件界面简单明了,很方便用户的使用和操作。

在主界面上设有图片预览、设置、说明和退出按钮。

用户可以根据自已的需要,对该软件进行操作。

缩略图生成器界面设计如图2所示:

图2缩略图生成器的界面设计

2.3程序设计

用户打开该软件进入到该软件的界面后,点击菜单栏上文件、设置、说明和退出等按钮,就可以根据自己的需要,对图片进行相关的设定,达到自己所需的效果。

2.3.1程序流程图

单张生成缩略图程序流程图如图4所示:

图4

多张生成缩略图程序流程图如图5所示:

图5

2.3.2软件运行过程

本软件主要通过运用C#的Windows窗体的设计进行开发和实施,在VisualStudio2005及更高的版本下才能运行。

主要通过如下几个功能模块来完成软件的具体的运行过程:

(1)主界面窗体:

主界面如图6所示:

图6

具体实现的代码如下:

publicpartialclassForm1:

Form

{

BitmapMyBitmap;

publicForm1()

InitializeComponent();

}

privatevoid退出CToolStripMenuItem_Click(objectsender,EventArgse)

if(MessageBox.Show("

退出系统?

"

"

提示"

MessageBoxButtons.OKCancel,MessageBoxIcon.Information)==DialogResult.OK)

Application.Exit();

privatevoid打开ToolStripMenuItem_Click(objectsender,EventArgse)

openFileDialog1.Filter="

*.jpg,*.jpeg,*.bmp,*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;

*.jpeg;

*.bmp;

*.gif;

*.ico;

*.png;

*.tif;

*.wmf"

;

//设置打开图像的类型

this.openFileDialog1.ShowDialog();

//打开对话框

if(this.openFileDialog1.FileName.Trim()=="

return;

try

//把打开的图像赋给Bitmap变量

BitmapSrcBitmap=newBitmap(this.openFileDialog1.FileName);

MyBitmap=newBitmap(SrcBitmap,this.pictureBox1.Width,this.pictureBox1.Height);

this.pictureBox1.Image=MyBitmap;

//在控件上显示图像

catch(ExceptionErr)

//提示对话框

MessageBox.Show(this,"

打开图像文件错误!

信息提示"

MessageBoxButtons.OK,MessageBoxIcon.Information);

privatevoid另存为ToolStripMenuItem_Click(objectsender,EventArgse)

saveFileDialog1.Filter="

BMP|*.bmp|JPEG|*.jpeg|GIF|*.gif|PNG|*.png"

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

stringpicPath=saveFileDialog1.FileName;

stringpicType=picPath.Substring(picPath.LastIndexOf("

."

)+1,(picPath.Length-picPath.LastIndexOf("

)-1));

switch(picType)

case"

bmp"

:

Bitmapbt=newBitmap(pictureBox1.Width,pictureBox1.Height);

pictureBox1.DrawToBitmap(bt,pictureBox1.ClientRectangle);

bt.Save(picPath,ImageFormat.Bmp);

bt.Dispose();

break;

jpeg"

Bitmapbt1=newBitmap(pictureBox1.Width,pictureBox1.Height);

pictureBox1.DrawToBitmap(bt1,pictureBox1.ClientRectangle);

bt1.Save(picPath,ImageFormat.Jpeg);

bt1.Dispose();

gif"

Bitmapbt2=newBitmap(pictureBox1.Width,pictureBox1.Height);

pictureBox1.DrawToBitmap(bt2,pictureBox1.ClientRectangle);

bt2.Save(picPath,ImageFormat.Gif);

bt2.Dispose();

png"

Bitmapbt3=newBitmap(pictureBox1.Width,pictureBox1.Height);

pictureBox1.DrawToBitmap(bt3,pictureBox1.ClientRectangle);

bt3.Save(picPath,ImageFormat.Png);

bt3.Dispose();

catch(Exceptionerr)

MessageBox.Show(err.Message,"

privatevoid单张生成缩略图ToolStripMenuItem_Click(objectsender,EventArgse)

Form2ys=newForm2();

//ys.MdiParent=this;

ys.Show();

privatevoid多张生成缩略图ToolStripMenuItem_Click(objectsender,EventArgse)

privatevoid关于本软件ToolStripMenuItem_Click(objectsender,EventArgse)

frmAboutfrm=newfrmAbout();

DialogResultrst=frm.ShowDialog();

privatevoid访问作者空间ToolStripMenuItem_Click(objectsender,EventArgse)

System.Diagnostics.Process.Start("

Http:

//1010085285QQ.com"

);

privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)

privatevoid文件ToolStripMenuItem_Click(objectsender,EventArgse)

(2)单张生成缩略图窗体:

界面如图7所示:

图7

privatevoidgo()

//判断文件是否存在

if(this.openFileDialog1.FileName.Trim().Length<

=0)

MessageBox.Show("

请先选择一个文件"

if(!

setConfig()||!

setSave())

}

stringoriPath=this.openFileDialog1.FileName;

this.openFileDialog1.Dispose();

//该行可以不注释,为避免发生资源占用不能替换源文件所以还是注释。

this.pictureBox1.Image.Dispose();

//在处理之前必须断开pic对image的引用否则无法替换源文件

this.pictureBox1.Image=null;

//断开引用后需要赋值为null,否则形同虚设。

if(this.checkBox1.Checked)

c.Make_Thumbnail2(oriPath,filename,width,height,"

HW"

if(this.checkBox2.Checked)

scale"

if(this.checkBox3.Checked)

hscale"

if(this.checkBox4.Checked)

wscale"

this.pictureBox1.Image=Image.FromFile(oriPath);

执行成功!

请检查相应的文件"

catch(Exceptiones)

有异常!

+es.Message);

(3)多张生成缩略图窗体:

界面如图8所示:

privatevoidall(stringfile_path,stringresult_path)

setConfig())

stringtemp_path="

stringtype="

string[]filenames=Directory.GetFiles(file_path,"

*.jpg"

SearchOption.AllDirectories);

type="

explorer.exe"

file_path);

HashtablefileExtensions=newHashtable(10);

fileExtensions.Add("

.jpg"

null);

.bmp"

.gif"

.png"

stringfindPath=file_path;

DirectoryInfodi=newDirectoryInfo(findPath);

FileInfo[]fiels=di.GetFiles("

*.*"

foreach(FileInfofiinfiels)

if(fileExtensions.Contains(fi.Extension.ToLower()))

//this.label7.Text=label7.Text+"

"

+fi.Name;

//测试打印文件名

temp_path=file_path+fi.Name;

c.Make_Thumbnail2(temp_path,result_path+fi.Name,width,height,type);

执行成功!

批量执行有异常!

(4)缩略图缩放规则窗体:

界面设置如图9所示:

图9

具体实现代码:

privateintwidth;

privateintheight;

privateboolsetConfig()

if(this.checkBox1.Checked)

if(this.textBox3.Text.Trim().Length>

0)

this.width=Convert.ToInt32(this.textBox3.Text.Trim());

else

请填写高度!

this.textBox3.Focus();

returnfalse;

if(this.textBox4.Text.Trim().Length>

this.height=Convert.ToInt32(this.textBox4.Text.Trim());

else

请填写宽度!

this.textBox4.Focus();

elseif(this.checkBox2.Checked)

if(this.textBox5.Text.Trim().Length>

this.width=Convert.ToInt32(this.textBox5.Text.Trim());

this.height=width;

请填写缩放比例!

this.textBox5.Focus();

elseif(this.checkBox3.Checked)

if(this.textBox6.Text.Trim().Length>

this.height=Convert.ToInt32(this.textBox6.Text.Trim());

this.width=0;

请填写高度度缩放比例!

this.textBox6.Focus();

elseif(this.checkBox4.Checked)

if(this.textBox7.Text.Trim().Length>

this.width=Convert.ToInt32(this.textBox7.Text.Trim());

this.height=0;

请填写宽度缩放比例!

this.textBox7.Focus();

returntrue;

(4)缩略图命名规则窗体:

界面设计如图10所示:

图10

tringfilename=string.Empty;

privateboolsetSave()

if(this.checkBox5.Checked)

this.filename=this.openFileDialog1.FileName;

elseif(this.checkBox6.Checked)

if(this.textBox8.Text.Trim().Length>

stringtemp=this.openFileDialog1.FileName;

stringext_temp=System.IO.Path.GetExtension(temp).ToLower();

intindexof=temp.LastIndexOf('

\\'

)+1;

this.filename=temp.Substring(0,indexof);

this.filename=filename+this.textBox8.Text.Trim()+ext_temp;

请填写文件名!

this.textBox8.Focus();

elseif(this.checkBox7.Checked)

if(this.textBox9.Text.Trim().Length>

this.filename=this.textBox9.Text.Trim();

请填写完整路径和文件名!

this.textBox9.Focus();

2.3.3实现结果

处理前:

处理后:

3、课程设计总结

两周时间的课程设计结束了。

两周以来,通过我们组所有成员的努力,和老师细心指导,我们完成了这次的课程设计—--缩略图生成器的设计。

面对从未接触过的事情,开始的我们不知道从何下手,在一步步的实践中,我们慢慢摸索出一点头绪,通过网络、书籍和老师的指导,我们终于找到了方法,最终将设计做好了。

两周的时间说长是因为天天面对那些框啊代码啊,感觉很枯燥乏味,说时间短是因为我们真的从中找到了乐趣,学到了知识学,懂得如何与团队合作,深切体会到了应该怎么样去面对困难。

在这短短两周的时间里,自己学到了很多东西,在一定程度

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1