VC++2005案例开发 实验报告
- 格式:doc
- 大小:92.50 KB
- 文档页数:4
实验5 文件管理器【实验目的】⏹进一步实践windows窗口程序开发的流程;⏹掌握并熟练使用后台代码添加控件并定义布局和格式以及交互的技能。
【实验环境】Visual Studio 2005(或更高版本)【实验内容】设计一个基于后台代码添加控件的方式来实现文件管理器的显示和交互功能的Winform程序,鼓励扩展其他功能。
基本功能如下图:【实验记录】文件菜单:新建文件夹:提供即时重命名新建文件夹遇到相同明添加序号新建文本文档新建文本文档遇到相同明添加序号选中单个项目激活重命名和删除选中多个项目禁用重命名编辑菜单:(撤销功能未完成)选择项目激活剪切和复制状态栏显示选择项信息点击复制或剪切激活复制在同目录下黏贴同名添加“- 副本”点击全选查看菜单:点击状态栏默认打开点击后关闭点击大图标:点击小图标点击详细信息排序方式类型点击列头同样实现排序方式递减转至:前进禁用点击后退前进启用点击前进点击向上一级:向上到磁盘跟目录禁用向上一级帮助关于:工具栏与菜单栏选定状态同步功能相同右键菜单:启用状态与菜单栏工具栏同步功能相同本软件提供单项(多项未完成请勿测试)拖拽移动项目无法截图展示请自行测试【核心代码】using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Security.AccessControl;using Microsoft.Win32;using System.IO;using System.Collections;namespace FileExplorer{public partial class Form1 : Form{static DirectoryInfo currentDir;string[] newpath = new string[1024];string[] oldpath = new string[1024];string[] type = new string[1024];List<string> ls = new List<string>();int ind;ListViewItemSorter sorter;public Form1(){InitializeComponent();sorter = new ListViewItemSorter();listView1.ListViewItemSorter = sorter;sorter.SortColumn = 0;sorter.SortOrder = SortOrder.Ascending;}private void Form1_Load(object sender, EventArgs e){getDisks();toolStripStatusLabel1.Text = DateTime.Now.ToString();}private void getDisks(){foreach (DriveInfo d in DriveInfo.GetDrives()){if (d.IsReady){TreeNode root = new TreeNode();root.Tag = ;treeView1.Nodes.Add(root);getAll(root);}}}private void getAll(TreeNode parentNode){#regionDirectoryInfo parentDir = new DirectoryInfo(parentNode.FullPath);DirectorySecurity s = new DirectorySecurity(parentNode.FullPath, AccessControlSections.Access);if (!s.AreAccessRulesProtected){if (parentDir.GetDirectories() != null){foreach (DirectoryInfo childDir in parentDir.GetDirectories()){TreeNode childNode = new TreeNode();childNode.Tag = childDir.FullName;parentNode.Nodes.Add(childNode);// getAll(childNode);}}}#endregion// #region// DirectoryInfo directory;// try// {// // 第一层路径// if (parentNode.Nodes.Count == 0)// {// directory = new DirectoryInfo(parentNode.FullPath);// foreach (DirectoryInfo dir in directory.GetDirectories())// {// TreeNode newNode = new TreeNode();// parentNode.Nodes.Add(newNode);// }// }// // 第二层路径// foreach (TreeNode node in parentNode.Nodes)// {// if (node.Nodes.Count == 0)// {// directory = new DirectoryInfo(node.FullPath);// foreach (DirectoryInfo dir in directory.GetDirectories())// {// TreeNode newNode = new TreeNode();// node.Nodes.Add(newNode);// }// }// }// }// catch (Exception doh)// {// Console.WriteLine(doh.Message);// }//#endregion}private void showListView(string path){this.listView1.Items.Clear();currentDir = new DirectoryInfo(path);DirectorySecurity s = new DirectorySecurity(path, AccessControlSections.Access);if (!s.AreAccessRulesProtected){if (currentDir.GetDirectories() != null){foreach (DirectoryInfo dir in currentDir.GetDirectories()){ListViewItem item = new ListViewItem();//this.imageList2.Images.Add(System.Drawing.Icon.FromHandle(dir.FullName));//FileAttributesitem.SubItems.Add("");item.SubItems.Add("文件夹");item.SubItems.Add(File.GetCreationTime(dir.FullName).ToString("u"));item.SubItems.Add(File.GetLastWriteTime(dir.FullName).ToString("u"));item.SubItems.Add(File.GetLastAccessTime(dir.FullName).ToString("u"));item.Tag = "0";item.ToolTipText = dir.FullName;item.ImageIndex = 0;//item.ImageIndex = this.imageList2.Images.Count - 1;this.listView1.Items.Add(item);}foreach (FileInfo file in currentDir.GetFiles()){ListViewItem item = new ListViewItem();item.SubItems.Add(file.Length<1024*1024?""+file.Length/1024+"KB":""+file.Length/1024/1024+" MB");item.SubItems.Add(checkFileType(file.FullName));item.SubItems.Add(File.GetCreationTime(file.FullName).ToString("u"));item.SubItems.Add(File.GetLastWriteTime(file.FullName).ToString("u"));item.SubItems.Add(File.GetLastAccessTime(file.FullName).ToString("u"));//if(!this.imageList1.Images.ContainsKey(Path.GetExtension()))//{// this.imageList1.Images.Add(Path.GetExtension(), System.Drawing.Icon.ExtractAssociatedIcon(file.FullName));//}this.imageList2.Images.Add(System.Drawing.Icon.ExtractAssociatedIcon(file.FullName));this.imageList3.Images.Add(System.Drawing.Icon.ExtractAssociatedIcon(file.FullName));this.imageList4.Images.Add(System.Drawing.Icon.ExtractAssociatedIcon(file.FullName));this.imageList5.Images.Add(System.Drawing.Icon.ExtractAssociatedIcon(file.FullName));item.Tag = "1";item.ToolTipText = file.FullName;if(this.listView1.View==rgeIcon)item.ImageIndex = this.imageList2.Images.Count - 1;if (this.listView1.View == rgeIcon)item.ImageIndex = this.imageList2.Images.Count - 1;if (this.listView1.View == View.SmallIcon)item.ImageIndex = this.imageList3.Images.Count - 1;if (this.listView1.View == View.List)item.ImageIndex = this.imageList4.Images.Count - 1;if (this.listView1.View == View.Details)item.ImageIndex = this.imageList5.Images.Count - 1;// item.ImageIndex = this.imageList1.Images.IndexOfKey(Path.GetExtension());;this.listView1.Items.Add(item);}}}toolStripStatusLabel2.Text ="\n"+listView1.Items.Count + "个项目";}private string checkFileType(string path){string ext = Path.GetExtension(path);try{string desc = (string)Registry.ClassesRoot.OpenSubKey(ext).GetValue(null);return (string)Registry.ClassesRoot.OpenSubKey(desc).GetValue(null);}catch (NullReferenceException nre) {return "不可识别的文件类型";}}private void treeView1_AfterSelect(object sender, TreeViewEventArgs e){getAll(e.Node); // 取得选择节点的子文件夹addressTB.Text = e.Node.FullPath; // 更新文本框内容currentDir = new DirectoryInfo(e.Node.FullPath);showListView(e.Node.FullPath);if (currentDir.Parent != null){toolStripButton1.Enabled = true;向上一级ToolStripMenuItem.Enabled = true;}ls.Add(addressTB.Text);ind = ls.Count - 1;}private void listView1_DoubleClick(object sender, EventArgs e){foreach (ListViewItem item in this.listView1.SelectedItems){if (item.Tag.ToString() == "0"){showListView(item.ToolTipText);addressTB.Text = item.ToolTipText;ls.Add(addressTB.Text);ind = ls.Count-1;}if (item.Tag.ToString() == "1"){try { System.Diagnostics.Process.Start(item.ToolTipText); }catch (Win32Exception w32e){MessageBox.Show("亲,对不起,系统没能找到合适的程序打开该文件哦!");}}}if (currentDir.Parent != null){toolStripButton1.Enabled = true;向上一级ToolStripMenuItem.Enabled = true;}}private void toolStripButton2_Click(object sender, EventArgs e){后退ToolStripMenuItem_Click(sender, e);}private void 大图标ToolStripMenuItem_Click(object sender, EventArgs e){viewcheck();大图标CToolStripMenuItem.Checked = true;大图标ToolStripMenuItem.Checked = true;this.listView1.View = rgeIcon;}private void 小图标ToolStripMenuItem_Click(object sender, EventArgs e){viewcheck();小图标OToolStripMenuItem.Checked = true;小图标ToolStripMenuItem.Checked = true;this.listView1.View = View.SmallIcon;}private void 列表ToolStripMenuItem_Click(object sender, EventArgs e){viewcheck();列表ToolStripMenuItem1.Checked = true;列表ToolStripMenuItem.Checked = true;this.listView1.View = View.List;}private void 详细信息ToolStripMenuItem_Click(object sender, EventArgs e){viewcheck();详细信息ToolStripMenuItem.Checked = true;详细信息ToolStripMenuItem1.Checked = true;this.listView1.View = View.Details;}private void Form1_SizeChanged(object sender, EventArgs e){this.treeView1.Width = this.Width * 24 / 100;this.listView1.Width = this.Width -this.treeView1.Width-10;}private void listView1_AfterLabelEdit(object sender, LabelEditEventArgs e)//重命名后判断是否存在同名{string temp = listView1.SelectedItems[0].Text;e.CancelEdit = false;if (bel == null)//取消重命名则退出编辑e.CancelEdit = true;else{if (Directory.Exists(currentDir.FullName + "\\" + bel)){MessageBox.Show("此目标已包含名为\"" + bel + "\"", "重命名失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);e.CancelEdit = true;//同名则自动取消重命名恢复原有命名}else{Directory.Move(currentDir.FullName + "\\" + temp, currentDir.FullName + "\\" + bel);}}}private void 文件夹ToolStripMenuItem_Click(object sender, EventArgs e){string path = currentDir.FullName + "\\新建文件夹";path = directorynum(path);Directory.CreateDirectory(path);ListViewItem item = new ListViewItem(path.Substring(stIndexOf('\\') + 1));//添加listview的项item.SubItems.Add("");item.SubItems.Add("文件夹");item.SubItems.Add(File.GetCreationTime(path).ToString("u"));item.SubItems.Add(File.GetLastWriteTime(path).ToString("u"));item.SubItems.Add(File.GetLastAccessTime(path).ToString("u"));item.Tag = "0";item.ToolTipText = path;item.ImageIndex = 0;this.listView1.Items.Add(item);item.EnsureVisible();//滚动条到可见新建的文件夹item.BeginEdit();//新建完提供即时重命名}private void 文件ToolStripMenuItem_Click(object sender, EventArgs e){string path = currentDir.FullName + "\\新建文本文档.txt";path = filenum(path);File.CreateText(path);ListViewItem item = new ListViewItem(path.Substring(stIndexOf('\\') + 1));item.SubItems.Add(path.Length < 1024 * 1024 ? "" + path.Length / 1024 + "KB" : "" + path.Length / 1024 / 1024 + "MB");item.SubItems.Add(checkFileType(path));item.SubItems.Add(File.GetCreationTime(path).ToString("u"));item.SubItems.Add(File.GetLastWriteTime(path).ToString("u"));item.SubItems.Add(File.GetLastAccessTime(path).ToString("u"));item.Tag = "1";item.ToolTipText = path;this.listView1.Items.Add(item);item.EnsureVisible();item.BeginEdit();}private void 重命名MToolStripMenuItem_Click(object sender, EventArgs e) {listView1.SelectedItems[0].BeginEdit();}private void 文件夹FToolStripMenuItem_Click(object sender, EventArgs e) {文件夹ToolStripMenuItem_Click(sender, e);}private void 文本文档ToolStripMenuItem_Click(object sender, EventArgs e) {文件ToolStripMenuItem_Click(sender,e);}private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) {if (listView1.SelectedItems.Count == 1){重命名MToolStripMenuItem1.Enabled = true;删除DToolStripMenuItem.Enabled = true;剪切CToolStripMenuItem.Enabled = true;复制CToolStripMenuItem1.Enabled = true;}if (listView1.SelectedItems.Count > 1){删除DToolStripMenuItem.Enabled = true;剪切CToolStripMenuItem.Enabled = true;复制CToolStripMenuItem1.Enabled = true;重命名MToolStripMenuItem1.Enabled = false;}if (listView1.SelectedItems.Count == 0){剪切CToolStripMenuItem.Enabled = false;复制CToolStripMenuItem1.Enabled = false;重命名MToolStripMenuItem1.Enabled = false;删除DToolStripMenuItem.Enabled = false;}}private void 文件FToolStripMenuItem_Click(object sender, EventArgs e) {if (listView1.SelectedItems.Count == 1){重命名MToolStripMenuItem.Enabled = true;删除ToolStripMenuItem.Enabled = true;}if (listView1.SelectedItems.Count > 1){删除ToolStripMenuItem.Enabled = true;重命名MToolStripMenuItem.Enabled = false;}if (listView1.SelectedItems.Count == 0){重命名MToolStripMenuItem.Enabled = false;删除ToolStripMenuItem.Enabled = false;}}private void 重命名MToolStripMenuItem1_Click(object sender, EventArgs e){重命名MToolStripMenuItem_Click(sender, e);}private void 新建NToolStripButton_Click(object sender, EventArgs e){文件ToolStripMenuItem_Click(sender, e);}private void 删除ToolStripMenuItem_Click(object sender, EventArgs e){DialogResult result = MessageBox.Show("确定要删除吗?", "确认删除", MessageBoxButtons.YesNo, rmation);if (result == DialogResult.Yes){foreach (ListViewItem temp in listView1.SelectedItems){if (temp.SubItems[1].Text.Equals(""))//判断所要删除的是文件或文件夹Directory.Delete(currentDir.FullName + "\\" + temp.Text, true);elseFile.Delete(currentDir.FullName + "\\" + temp.Text);temp.Remove();}}}private void 删除DToolStripMenuItem_Click(object sender, EventArgs e){删除ToolStripMenuItem_Click(sender, e);}private void CopyDirectory(string sourceDirName, string destDirName){if (sourceDirName.Substring(sourceDirName.Length - 1) != "\\"){sourceDirName = sourceDirName + "\\";//截取出源文件夹目录}if (destDirName.Substring(destDirName.Length - 1) != "\\"){destDirName = destDirName + "\\";//截取出目标文件夹目录}Directory.CreateDirectory(destDirName);//复制文件夹下的子文件夹foreach (string item in Directory.GetFiles(sourceDirName))//复制文件夹下的文件{File.Copy(item, destDirName + Path.GetFileName(item), true);}foreach (string item in Directory.GetDirectories(sourceDirName)){sourceDirName = item;destDirName = destDirName.Substring(0, stIndexOf("\\") + 1) + item.Substring(stIndexOf("\\") + 1);CopyDirectory(sourceDirName, destDirName);//递归完成文件夹下子文件夹和文件复制}}private void 复制CToolStripMenuItem_Click(object sender, EventArgs e){oldpath[0] = "复制";//设置标记复制或剪切type[0] = "";int i = 1;foreach (ListViewItem temp in listView1.SelectedItems){oldpath[i] = currentDir.FullName + "\\" + temp.Text;//存储源路径if (temp.SubItems[1].Text.Equals(""))//存储源类型以便后续操作type[i] = "文件夹";elsetype[i] = "文件";i++;}粘贴PToolStripButton.Enabled = true;粘贴PToolStripMenuItem.Enabled = true;粘贴PToolStripMenuItem1.Enabled = true;}private void 剪切TToolStripMenuItem_Click(object sender, EventArgs e){oldpath[0] = "剪切";type[0] = "";int i = 1;foreach (ListViewItem temp in listView1.SelectedItems){oldpath[i] = currentDir.FullName + "\\" + temp.Text;if (temp.SubItems[1].Text.Equals(""))type[i] = "文件夹";elsetype[i] = "文件";i++;}粘贴PToolStripButton.Enabled = true;粘贴PToolStripMenuItem.Enabled = true;粘贴PToolStripMenuItem1.Enabled = true;}private void 粘贴PToolStripMenuItem_Click(object sender, EventArgs e){if (oldpath[0].Equals("复制")){for (int i = 1; i < oldpath.Length; i++){if (oldpath[i] == null)//路径为空后停止黏贴break;newpath[i] = currentDir.FullName + oldpath[i].Substring(oldpath[i].LastIndexOf('\\')+1);//设置新路径名if (type[i].Equals("文件夹")){if (Directory.Exists(newpath[i]))//判断目标目录下是否有同名文件newpath[i] = newpath[i] + " - 副本";newpath[i] = directorynum(newpath[i]);CopyDirectory(oldpath[i], newpath[i]);}else{if (File.Exists(newpath[i]))//判断目标目录下是否有同名文件newpath[i] = newpath[i].Insert(newpath[i].LastIndexOf("."), " - 副本");newpath[i] = filenum(newpath[i]);File.Copy(oldpath[i], newpath[i]);}}}if (oldpath[0].Equals("剪切")){for (int i = 1; i < oldpath.Length; i++){if (oldpath[i] == null)break;newpath[i] = currentDir.FullName + oldpath[i].Substring(oldpath[i].LastIndexOf('\\') + 1);if (type[i].Equals("文件夹")){if (Directory.Exists(newpath[i]))//判断目标目录下是否有同名文件newpath[i] = newpath[i] + " - 副本";newpath[i] = directorynum(newpath[i]);CopyDirectory(oldpath[i], newpath[i]);Directory.Delete(oldpath[i], true);}else{if(File.Exists(newpath[i]))//判断目标目录下是否有同名文件newpath[i] = newpath[i].Insert(newpath[i].Length - 4, " - 副本");newpath[i] = filenum(newpath[i]);File.Move(oldpath[i], newpath[i]);}}}for (int i = 1; i < oldpath.Length; i++)//添加listview的项{if (newpath[i] == null)break;if (type[i].Equals("文件夹")){ListViewItem item = new ListViewItem(newpath[i].Substring(newpath[i].LastIndexOf('\\') + 1));item.SubItems.Add("");item.SubItems.Add("文件夹");item.SubItems.Add(File.GetCreationTime(newpath[i]).ToString("u"));item.SubItems.Add(File.GetLastWriteTime(newpath[i]).ToString("u"));item.SubItems.Add(File.GetLastAccessTime(newpath[i]).ToString("u"));item.Tag = "0";item.ToolTipText = newpath[i];item.ImageIndex = 0;this.listView1.Items.Add(item);}else{ListViewItem item = new ListViewItem(newpath[i].Substring(newpath[i].LastIndexOf('\\') + 1));item.SubItems.Add(newpath[i].Length < 1024 * 1024 ? "" + newpath[i].Length / 1024 + "KB" : "" + newpath[i].Length / 1024 / 1024 + "MB");item.SubItems.Add(checkFileType(newpath[i]));item.SubItems.Add(File.GetCreationTime(newpath[i]).ToString("u"));item.SubItems.Add(File.GetLastWriteTime(newpath[i]).ToString("u"));item.SubItems.Add(File.GetLastAccessTime(newpath[i]).ToString("u"));item.Tag = "1";item.ToolTipText = newpath[i];this.listView1.Items.Add(item);}}}private void 全选AToolStripMenuItem_Click(object sender, EventArgs e){foreach(ListViewItem temp in listView1.Items)temp.Selected = true;listView1.Focus();}private void 编辑EToolStripMenuItem_Click(object sender, EventArgs e){//判断是否有选定项再启用选项if (listView1.SelectedItems.Count >= 1){剪切TToolStripMenuItem.Enabled = true;复制CToolStripMenuItem.Enabled = true;}if (listView1.SelectedItems.Count == 0){剪切TToolStripMenuItem.Enabled = false;复制CToolStripMenuItem.Enabled = false;}}private void 剪切CToolStripMenuItem_Click(object sender, EventArgs e) {剪切TToolStripMenuItem_Click(sender, e);}private void 复制CToolStripMenuItem1_Click(object sender, EventArgs e) {复制CToolStripMenuItem_Click(sender,e);}private void 粘贴PToolStripMenuItem1_Click(object sender, EventArgs e) {粘贴PToolStripMenuItem_Click(sender, e);}private void 剪切UToolStripButton_Click(object sender, EventArgs e) {剪切TToolStripMenuItem_Click(sender, e);}private void 复制CToolStripButton_Click(object sender, EventArgs e) {复制CToolStripMenuItem_Click(sender, e);}private void 粘贴PToolStripButton_Click(object sender, EventArgs e) {粘贴PToolStripMenuItem_Click(sender, e);}private void viewcheck()//取消所有视图选项{详细信息ToolStripMenuItem.Checked = false;大图标CToolStripMenuItem.Checked = false;小图标OToolStripMenuItem.Checked = false;列表ToolStripMenuItem1.Checked = false;大图标ToolStripMenuItem.Checked = false;小图标ToolStripMenuItem.Checked = false;列表ToolStripMenuItem.Checked = false;详细信息ToolStripMenuItem1.Checked = false;}private void 自定义CToolStripMenuItem_Click(object sender, EventArgs e){viewcheck();大图标ToolStripMenuItem_Click(sender, e);大图标CToolStripMenuItem.Checked = true;大图标ToolStripMenuItem.Checked = true;}private void 选项OToolStripMenuItem_Click(object sender, EventArgs e){viewcheck();this.listView1.View = View.SmallIcon;小图标OToolStripMenuItem.Checked = true;小图标ToolStripMenuItem.Checked = true;}private void 列表ToolStripMenuItem1_Click(object sender, EventArgs e){viewcheck();this.listView1.View = View.List;列表ToolStripMenuItem1.Checked = true;列表ToolStripMenuItem.Checked = true;}private void 详细信息ToolStripMenuItem_Click_1(object sender, EventArgs e) {viewcheck();this.listView1.View = View.Details;详细信息ToolStripMenuItem.Checked = true;详细信息ToolStripMenuItem1.Checked = true;}private void addressTB_TextChanged(object sender, EventArgs e){if (ls.Count > 1)//判断是否能后退在启用后退选项{toolStripButton2.Enabled = true;后退ToolStripMenuItem.Enabled = true;}if (addressTB.Text.EndsWith("\\"))//判断是否能向上一级在启用向上一级选项{toolStripButton1.Enabled = false;向上一级ToolStripMenuItem.Enabled = false;}else{toolStripButton1.Enabled = true;向上一级ToolStripMenuItem.Enabled = true;}}private void 后退ToolStripMenuItem_Click(object sender, EventArgs e) {ind--;showListView(ls[ind]);addressTB.Text = ls[ind];前进ToolStripMenuItem.Enabled = true;toolStripButton3.Enabled = true;if (ind == 0){后退ToolStripMenuItem.Enabled = false;toolStripButton2.Enabled = false;}}private void 前进ToolStripMenuItem_Click(object sender, EventArgs e) {ind++;showListView(ls[ind]);addressTB.Text = ls[ind];if (ind == ls.Count-1){前进ToolStripMenuItem.Enabled = false;toolStripButton3.Enabled = false;}}private void toolStripButton1_Click(object sender, EventArgs e){if (currentDir.Parent != null){ls.Add(currentDir.Parent.FullName);ind = ls.Count - 1;this.addressTB.Text = currentDir.Parent.FullName;showListView(currentDir.Parent.FullName);前进ToolStripMenuItem.Enabled = false;toolStripButton3.Enabled = false;}}private void toolStripButton3_Click(object sender, EventArgs e){前进ToolStripMenuItem_Click(sender, e);}private void 向上一级ToolStripMenuItem_Click(object sender, EventArgs e) {toolStripButton1_Click(sender, e);}private void sortcheck()//取消所有选定项{名称ToolStripMenuItem.Checked = false;大小ToolStripMenuItem.Checked = false;类型ToolStripMenuItem.Checked = false;创建时间ToolStripMenuItem.Checked = false;}private void 名称ToolStripMenuItem_Click(object sender, EventArgs e) {sortcheck();名称ToolStripMenuItem.Checked = true;sorter.SortColumn = 0;listView1.Sort();}private void 大小ToolStripMenuItem_Click(object sender, EventArgs e) {sortcheck();大小ToolStripMenuItem.Checked = true;sorter.SortColumn = 1;listView1.Sort();}private void 类型ToolStripMenuItem_Click(object sender, EventArgs e) {sortcheck();类型ToolStripMenuItem.Checked = true;sorter.SortColumn = 2;listView1.Sort();}private void 创建时间ToolStripMenuItem_Click(object sender, EventArgs e) {sortcheck();创建时间ToolStripMenuItem.Checked = true;sorter.SortColumn = 4;listView1.Sort();}private void 递增ToolStripMenuItem_Click(object sender, EventArgs e) {递增ToolStripMenuItem.Checked = true;递减ToolStripMenuItem.Checked = false;sorter.SortOrder = SortOrder.Ascending;listView1.Sort();}private void 递减ToolStripMenuItem_Click(object sender, EventArgs e) {递增ToolStripMenuItem.Checked = false;递减ToolStripMenuItem.Checked = true;sorter.SortOrder = SortOrder.Descending;listView1.Sort();}private void listView1_ColumnClick(object sender, ColumnClickEventArgs e) {if (e.Column == this.sorter.SortColumn){if (this.sorter.SortOrder == SortOrder.Ascending){this.sorter.SortOrder = SortOrder.Descending;递增ToolStripMenuItem.Checked = false;//同步菜单选项递减ToolStripMenuItem.Checked = true;}elseif (this.sorter.SortOrder == SortOrder.Descending){this.sorter.SortOrder = SortOrder.Ascending;递增ToolStripMenuItem.Checked = true;递减ToolStripMenuItem.Checked = false;}elsereturn;}else{this.sorter.SortColumn = e.Column;}sortcheck();if (e.Column == 0)//同步菜单排序选项名称ToolStripMenuItem.Checked = true;else if (e.Column == 1)大小ToolStripMenuItem.Checked = true;else if (e.Column == 2)类型ToolStripMenuItem.Checked = true;else if (e.Column == 4)创建时间ToolStripMenuItem.Checked = true;listView1.Sort();}private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e){this.Close();}private void listView1_SelectedIndexChanged(object sender, EventArgs e){if (listView1.SelectedItems.Count == 0){toolStripStatusLabel2.Image = null;toolStripStatusLabel2.Text = "\n" + listView1.Items.Count + "个项目";}else if (listView1.SelectedItems.Count == 1){if (listView1.SelectedItems[0].ImageIndex != -1)toolStripStatusLabel2.Image = imageList2.Images[listView1.SelectedItems[0].ImageIndex];toolStripStatusLabel2.Text = listView1.SelectedItems[0].Text + " \n修改日期:" + listView1.SelectedItems[0].SubItems[4].Text;}else{toolStripStatusLabel2.Image = null;toolStripStatusLabel2.Text = "\n已选择" + listView1.SelectedItems.Count + "项";}if (listView1.SelectedIndices.Count !=0){剪切UToolStripButton.Enabled = true;复制CToolStripButton.Enabled = true;}else{剪切UToolStripButton.Enabled = false;复制CToolStripButton.Enabled = false;}}private void timer1_Tick(object sender, EventArgs e){toolStripStatusLabel1.Text = DateTime.Now.ToString();}private void 状态栏ToolStripMenuItem_Click(object sender, EventArgs e) {if (状态栏ToolStripMenuItem.Checked == true){状态栏ToolStripMenuItem.Checked = false;statusStrip2.Visible = false;}else{状态栏ToolStripMenuItem.Checked = true;statusStrip2.Visible = true;}}private string filenum(string filename){string nums = "";int num = 1;while (true)//判断路径下是否已存在文件否则加上序号标签{if (File.Exists(filename.Insert(stIndexOf("."), nums + ""))){num++;nums = "(" + num + ")";}else{filename = filename.Insert(stIndexOf("."), nums + "");break;}}return filename;}private string directorynum(string directoryname){string nums = "";int num = 1;while (true)//判断路径下是否已存在该文件夹否则加上序号标签{if (Directory.Exists(directoryname + nums)){num++;nums = "(" + num + ")";}else{directoryname = directoryname + nums;break;}}return directoryname;}private void 关于AToolStripMenuItem_Click(object sender, EventArgs e){AboutBox1 ab = new AboutBox1();ab.Show();}private void listView1_DragDrop(object sender, DragEventArgs e){ListViewItem draggedItem = (ListViewItem)e.Data.GetData(typeof(ListViewItem));Point ptScreen = new Point(e.X, e.Y);Point pt = listView1.PointToClient(ptScreen);ListViewItem TargetItem = listView1.GetItemAt(pt.X, pt.Y);//拖动的项将放置于该项之前if (TargetItem.ToolTipText.Equals(draggedItem.ToolTipText))return;if (null != TargetItem && TargetItem.Tag.Equals("0")){if (draggedItem.Tag.Equals("0")){if (!Directory.Exists(TargetItem.ToolTipText + "\\" + draggedItem.Text)){CopyDirectory(draggedItem.ToolTipText, TargetItem.ToolTipText + "\\" + draggedItem.Text);Directory.Delete(draggedItem.ToolTipText, true);listView1.Items.Remove(draggedItem);}elseMessageBox.Show("该目录下已存在同名文件夹", "操作失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);}else{if (!File.Exists(TargetItem.ToolTipText + "\\" + draggedItem.Text)){File.Move(draggedItem.ToolTipText, TargetItem.ToolTipText + "\\" + draggedItem.Text);listView1.Items.Remove(draggedItem);}elseMessageBox.Show("该目录下已存在同名文件", "操作失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}}private void listView1_DragEnter(object sender, DragEventArgs e){e.Effect = e.AllowedEffect;}private void listView1_ItemDrag(object sender, ItemDragEventArgs e){listView1.DoDragDrop(e.Item, DragDropEffects.Move);}private void listView1_DragOver(object sender, DragEventArgs e){Point ptScreen = new Point(e.X, e.Y);Point pt = listView1.PointToClient(ptScreen);ListViewItem item = listView1.GetItemAt(pt.X, pt.Y);if (listView1.SelectedItems.Count != 0)foreach (ListViewItem titem in listView1.SelectedItems)titem.Selected = false;if (item != null && item.Tag.Equals("0")){item.Selected = true;。
如何写vc实验报告VC实验报告是科研工作中非常重要的一部分,为了严谨地完成实验报告的撰写,以下将从实验设计、实验步骤、实验结果以及实验讨论等方面介绍如何写VC实验报告。
一、实验设计在实验设计部分,需要准确描述和解释实验目的和假设。
首先,明确实验的目的是什么,例如研究特定材料的性质、探究某个现象的发生原因等。
接着,列出你的假设,即你对实验结果的预测,这有助于在后续实验结果分析中进行对比和评估。
二、实验步骤实验步骤是实验报告中最重要的部分之一。
在这一部分,需要详细描述实验的具体步骤,确保其他研究人员能够准确地重复你的实验。
以下为一个示例:1. 准备实验所需的设备和材料:列出实验中使用的所有设备和材料,并描述如何准备它们。
2. 设置实验条件:包括温度、湿度、压力等实验条件的设定。
3. 进行实验操作:按照特定的步骤进行实验,并记录下每一个操作的细节。
4. 数据采集:详细记录实验中的数据,包括数值和观察结果。
5. 数据处理:对实验数据进行统计分析和图表绘制,并进行合理的解释。
三、实验结果实验结果部分需要将实验数据以表格、图表或图像的形式进行呈现,并准确地解读这些结果。
注意,在此部分中要避免主观的评论或假设引导。
1. 数据展示:使用表格、图表或图像形式将实验数据直观地展示出来,确保结果的准确性和可视化。
2. 数据解读:对结果进行客观的解读,注意用科学的语言和理论知识来解释实验结果,不要预设结论,只根据数据来进行合理的解读。
四、实验讨论实验讨论部分是对实验结果进行分析和解释的重要环节。
在这一部分中,需要结合实验目的和假设,对结果的合理性进行评估,并讨论可能的误差来源。
1. 结果分析:对实验结果进行科学分析,判断实验是否达到了预期的目标,是否与文献中的结果相符合。
2. 误差分析:讨论实验中可能存在的误差来源,包括系统误差和随机误差,并提出改进实验的方法和建议。
3. 实验局限性:诚实地讨论实验的局限性,包括实验条件、样本数量等等,以便其他研究人员能够更好地理解你的实验结果。
C#。
NET实验报告姓名郭佳班级计142学号149074043指导老师邰伟鹏实验一创建简单的.NET应用程序【实验目的】熟悉VS2005开发环境,掌握如何在此开发环境下开发简单的。
NET应用程序,以及调试程序的基本操作技巧.【实验内容】分别创建不同类型的.NET应用程序项目,体会基本的设计与编程方法。
【实验要求】(1)通过实验掌握【工具箱】、【属性】窗口、【解决方案资源管理器】等的用法和基本操作技巧。
(2)通过实验观察各种应用程序结构及特点;(3)通过实验观察生成的可执行文件的存放位置,掌握项目备份与恢复的方法;(4)通过实验掌握利用断点进行程序调试的方法.【源代码】步骤1using System;using System。
Collections。
Generic;using ponentModel;using System。
Data;using System。
Drawing;using System。
Text;using System.Windows.Forms;namespace SimpleWindowsApplication{public partial class FormMain : Form{public FormMain(){InitializeComponent();}private void buttonExit_Click(object sender, EventArgs e) {this.Close();}}}步骤2using System;using System。
Collections.Generic;using System.Text;namespace SimpleConsoleApplication{class Program{static void Main(string[] args){Console。
Write("请输入一个字符串:”);string welcomeString=Console.ReadLine();Console.WriteLine(”Welcome:{0}",welcomeString);Console。
如何写vc实验报告实验报告是展示实验过程和结果的重要文档,对于VC实验报告的写作,我们应该遵循一定的格式和要求。
在本文中,我们将介绍如何写VC实验报告,并提供一些建议和指导。
I. 引言部分引言部分主要包括实验目的、实验背景和实验原理等内容。
在写作时应该简明扼要地介绍实验的目的和意义,以及实验所基于的理论原理。
此部分应该使读者对实验有一个初步的了解。
II. 材料和方法材料和方法部分应该清楚地描述实验所使用的材料和仪器,以及实验的具体步骤。
这部分应该精确无误地说明每一步骤的操作方法和所用参数,以便读者能够重复实验并得到相似的结果。
III. 实验结果和讨论实验结果和讨论部分应该准确地呈现实验的结果,并对结果进行全面的讨论和分析。
可以使用表格、图表或图像等形式来展示结果,但需要确保其清晰可读。
在讨论部分,可以对实验结果进行解释和比较,分析实验中出现的现象,并与理论预期进行对比。
IV. 结论结论部分应该总结实验的主要结果,并说明实验是否达到了预期的目标。
在写作结论时,应该简洁明了地回答实验所提出的问题,并提出一些建议或改进措施。
V. 参考文献在实验报告的最后,应该列出所有引用的文献。
参考文献的格式可以根据实验报告所使用的引用样式进行准确排版。
VI. 附录如果在实验过程中使用了附加的数据、图表或图像等信息,可以将其放在附录中。
附录部分不是必需的,但可以提供更详细的信息和进一步的分析。
以上是关于如何写VC实验报告的一些建议和指导。
在写作时,我们应该注意使用简洁明了的语言,避免使用复杂的术语和缩写,以确保读者能够清晰地理解报告内容。
此外,排版整洁、语句通顺也是一篇好的实验报告所必备的要素。
希望本文能帮助你更好地写VC实验报告,祝你写作顺利!。
实验一 Visual Studio 2005开发工具的使用一、实验名称Visual Studio 2005开发工具的使用二、实验目的1、了解Visual Studio 2005开发环境。
2、掌握C#类库项目的创建和C#类库(.DLL)的使用。
3、掌握命令行应用程序项目的创建和编程。
4、掌握Windows应用程序项目的创建和编程。
5、掌握网站项目的创建和编程。
6、掌握MSDN Library for Visual Studio 2005的使用。
三、实验内容1、Visual Studio 2005开发环境设置。
将Visual Studio 2005开发环境的默认开发语言设置为C#语言。
2、Visual Studio 2005的解决方案资源管理器窗口、类视图窗口、对象浏览器窗口、错误列表窗口、输出窗口和属性窗口的用法。
3、创建一个类库项目,项目名称为“Shape”,在该项目中定义圆类,要求圆类能求圆的周长和面积。
4、创建一个命令行应用程序项目,要求从键盘上输入圆的半径,并利用3中定义的圆类求圆的周长和面积。
5、创建一个Windows应用程序项目,主表单如图1-1所示,在文本框中输入圆的半径,单击“确定”按钮,利用3中定义的圆类求圆的周长和面积。
图1-1 主表单6、创建一个网站项目,主页面如图1-2所示,在文本框中输入圆的半径,单击“提交”按钮,利用3中定义的圆类求圆的周长和面积。
图1-2 主页面7、在MSDN Library for Visual Studio 2005中查找类“Console”的帮助信息。
四、编程提示1、实验内容4和5中要用到实验内容3中创建的圆类、圆类的代码如下。
public class Circle{private readonly float PI = 3.14159f;private float r;public Circle(){r = 1.0f;}public float R{get { return r; }set{if (value > 0)r = value;elsethrow new Exception("r必须大于0");}}public float perimeter(){return 2 * PI * r;}public float area(){return PI * r * r;}}2、在实验内容4和5中需要分别将实验内容3生成的类库“Shape.Dll”文件引入。
VC实验报告具体内容(样例5)第一篇:VC实验报告具体内容注意: 请大家实验报告双面打印!!给出主要代码就行.实验一:名称:熟悉VC IDE,创建一个简单的VC界面具体内容:用API创建一个基本窗口实验二:名称:基于API编程(一)具体内容:习题4-8(旋转的小风车)实验三:名称:基于API编程(二)具体内容:习题6_6(设计一个键盘程序, 当按Ctrl键时,表明要画椭圆..)实验四:名称:基于MFC编程(一)具体内容:9-18(用编辑框与按钮实现加减乘除运算)实验五:名称:基于MFC编程(二)具体内容:9_20(建立一个程序进行数据的管理, 设有10组数据,每一组数据有5个元素…)第二篇:vc控制台是什么CONSOLE: win32 字符模式应用程序,此种类型的应用程序在运行的时候会产生一个类似DOS窗口的控制台窗口,如果在应用程序的主函数为main()或者wmain(),在默认情况下该应用程序就是一个控制台应用程序。
控制台就是一个标准的输入输出,对大量数据输入很方便,它不是为做图形界面服务的。
你要做图形界面,又想自己画菜单,简单点,写个Win32 application 一切都自己写。
控制台就算是写DOS的程序,但是也支持部分API 也可以创建窗口并打开。
相对的,WINDOWS类型的应用程序不产生console窗口,该类型的应用程序的窗口由用户自己创建,简而言之就是一个标准的Win32 application,其入口地址为WinMain()函数或者wWinMain()函数的地址如果你在应用程序种定义的主函数为WinMain或者wWinMain,在默认情况下该应用程序就是一个Win32 Application!第三篇:具体内容具体内容1、开展“记忆的证明”纪念抗战60周年“四个一”爱国主义教育活动。
要围绕爱国主义主旋律,抓住抗战胜利60周年这一德育契机,大力宣传这一伟大民族解放战争的重要历史地位和光辉业绩,进一步弘扬爱国主义为核心的民族精神,认真开展“四个一”活动,即听一次专题革命讲座,学一首经典革命歌曲,读一本老革命家传记,做一张主题纪念小报。
vc 实验报告VC 实验报告一、引言VC(Venture Capital)是一种风险投资方式,通过为初创企业提供资金和资源支持,帮助其实现快速发展。
本篇文章将对VC实验进行详细报告,包括实验目的、实验设计、实验过程和实验结果等内容。
二、实验目的本次VC实验的目的在于探索风险投资对初创企业发展的影响,并评估VC对企业创新和成长的促进作用。
通过实验,我们希望能够深入了解VC的运作机制,为创业者和投资者提供有益的参考。
三、实验设计1. 参与者选择我们从学校附近的创业团队中选择了10个初创企业作为实验对象。
这些企业涵盖了不同行业和发展阶段,包括科技、互联网、教育等领域。
2. 实验组与对照组为了比较VC对企业发展的影响,我们将这10个企业分为实验组和对照组。
实验组将获得VC的资金和资源支持,而对照组则没有VC的参与。
3. 实验指标我们将通过以下指标评估企业的发展情况:- 创新能力:通过企业推出的新产品和服务数量来衡量。
- 资金状况:包括企业融资额和现金流量等方面。
- 市场份额:通过市场调研和销售数据来评估企业在市场上的地位。
- 团队规模:衡量企业员工数量和团队组织结构的完善程度。
四、实验过程1. 实验组介入实验组的企业与VC进行洽谈,达成合作意向后,VC将提供资金和资源支持。
这些支持包括投资资金、行业专家咨询、市场推广等。
2. 对照组观察对照组的企业则继续独立运营,没有VC的参与。
我们将定期观察对照组企业的发展情况,并与实验组进行对比分析。
3. 数据收集与分析在实验进行的过程中,我们定期收集和记录企业的相关数据,包括财务报表、市场调研数据等。
通过对数据的分析,我们可以了解VC对企业的影响。
五、实验结果根据实验数据的分析,我们得出以下结论:1. 创新能力提升:实验组企业在实验期间推出了更多的新产品和服务,较对照组有明显提升。
2. 资金状况改善:实验组企业获得了更多的融资机会,现金流量也相对更稳定。
3. 市场份额扩大:实验组企业在市场上的竞争地位有所提升,市场份额相对增加。
面向对象课程设计题目:通讯录学院:数学科学与计算技术学院班级:姓名:指导教师:2012年12月一:设计题目题目要求:用Visual C++ 2005以上版本,创建一个MFC应用程序,来管理通讯录数据库,实现数据的浏览,更新,添加和删除。
下图为案例运行的主界面,可以通过单击工具条上箭头形状的按钮来移动当前记录,通过单击相应的按钮来实现记录的修改、删除和添加操作。
1、课程设计的目的VC++是计算机相关专业的重要程序语言课程。
开设本实验课程可以进一步巩固理论课上所学到的知识,深刻把握面向对象编程技术的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,深化对VC++语言编程和开发工具运用的认识,提高软件项目开发实践能力和软件工程管理能力。
2、课程设计的要求和主要设计思想用Visual studio2010,创建一个MFC应用程序,来管理通讯录数据库,实现数据的浏览,更新,添加和删除。
要求能够通过单击工具条是哪个箭头状的按钮来移动当前记录,通过单击相应按钮实现记录的删除修改和添加主要是使用MFC设计程序,用access数据库存储相应的数据,利用ODBC 连接数据源的方法连接数据库。
二、总体方案设计2.1需求分析通讯录使我们每个人必不可少的一个工具,利用通讯录我们可以对同学、朋友、同事等信息进行有效的管理,包括查询、添加、删除和修改等。
此通讯录系统利用本着人性化的设计,此系统包括了联系人的姓名、电话、地址、E-mail、和备注等信息,利用此系统可以对联系人进行查询、增加、修改、删除等操作,基本上可以满足我们对通讯录的需要。
基于MFC简易通讯录管理系统具有以下特点:1,操作简单,所有人不需学习就可以使用的系统;2,输入简单,输入框都有相关提示,我们可以按照提示输入相关信息;3,界面显示信息完整,界面上每一个编辑框显示一条联系人信息,很清楚地显示了联系人的全部信息。
数据库的操作与运行相比文件较复杂,一般对安全性较高的大型信息管理系统采用数据库方式,这里我们采用文件存取方式即可。
湖南财经高等专科学校课程教学实施计划注:此表由课程组或教研室组织教研活动,根据学期教学任务书、教学大纲和教材进行编制,经教研究室主任批准后,于期初报所在系(部)和教务处备查。
教研室:计算机专业基础教研室第1章 C#快速入门1.1 C#的优势作为编程语言,C#是现代的、简单的、完全面向对象的,而且是类型安全的。
重要的是,C#是一种现代编程语言。
在类、名字空间、方法重载和异常处理等方面,C#去掉了C++中的许多复杂性,借鉴和修改了Java 的许多特性,使其更加易于使用,不易出错。
下面列举了一些C#在设计上的优点:简单性1.没有指针是C#的一个显著特性, 用户使用一种可操控的(Managed )代码进行工作时,直接的内存存取,将是不允许的。
2.在C#中不再需要记住那些源于不同处理器结构的数据类型 现代性1.用户可以使用一个新的decimal 数据类型进行货币计算。
2.C#通过代码访问安全机制来保证安全性,根据代码的身份来源,可以分为不同的安全级别,不同级别的代码在被调用时会受到不同的限制。
面向对象1.C#支持面向对象的所有关键概念:封装、继承和多态性。
2. C#的继承机制只允许一个基类。
如果需要多重继承,用户可以使用接口。
类型安全性1.C#实施了最严格的类型安全机制来保护它自身及其垃圾收集器。
2.边界检查。
3.算术运算溢出检查。
4. C#中传递的引用参数是类型安全的。
版本处理技术C#尽其所能支持DLL 版本处理功能,虽然C#自己并不能保证提供正确的版本处理结果,但它为程序员提供了这种版本处理的可能性。
有了这个适当的支持,开发者可以确保当他开发的类库升级时,会与已有的客户应用保持二进制级别上的兼容性。
面向对象现代性C#在设计上的优点1.2 第一个C#程序首先看控制台应用程序的版本。
【例1.1】 在控制台窗口中输出“Hello World!”字样。
在Visual C#.NET 开发环境中新建一个控制台应用程序项目,并在源代码文件中输入如下语句:using System; class HelloWorld {public static void Main() {Console.WriteLine("Hello World!"); } }图1.0 .NET 框架的组成将此内容保存到文件EX1_1.cs中,然后选择菜单“调试”→“启动”或直接按F5键运行此程序。
浙江经贸职业技术学院实验报告一、实验目的进一步熟悉Visual Studio .NET 2005开发环境;掌握变量与数据类型的使用;掌握调试工具的使用。
二、实验内容使用Visual Studio .NET 2005,完成以下程序:1.示例代码位于“CSharp示例\第2课\Multiply”2打开“CSharp示例\第2课\Types\Types.sln”复查任务列表本练习有3个任务,分别完成之:声明一个变量并将它初始化为"Suzan Fine"声明变量,并把其初始化为135.20声明 Planet变量,并赋值为Planet.Earth,然后显示该值。
保存应用程序3.班委枚举的练习4.示例代码位于“CSharp示例\第2课\Cylinder”;5.脂肪指数BMI的计算;6.整数乘积的异常处理练习7.CSharp示例\第2课\Operators\Operators.sln单步跟踪代码,以检查前面所作答案的正确性8.综合实例:某公司职工基本薪资的计算三、实验步骤1、将服务器上“面向对象”课件的文件夹中的“Csharp示例”文件夹复制到本地磁盘上。
2、打开“Csharp示例”文件夹下的“第2课”。
完成其中的任务,并调试运行(程序1):3、将完成的源程序压缩后,连同本实验报告,一同通过电子邮件交给指导教师。
程序2的运行结果截图:程序3的运行结果截图:程序4的运行结果截图:程序5的运行结果截图:程序7的运行结果截图:(所有你自己写的源代码,要有比较完备的注释)void button1_Click(object sender, EventArgs e){int num1, num2, num3;num1 = int.Parse(textBox1.Text);num2 = Convert.ToInt16(textBox2.Text); //将文本框1和文本框2转换为数值型num3 = num1 * num2; //计算乘积并将值付给num3textBox3.Text = Convert.ToString(num3); //将num3转换为字符型并赋给文本框3 }private void button2_Click(object sender, EventArgs e){textBox1.Text = "";textBox2.Text = " ";textBox3.Text = string.Empty; //文本框清空的三种方式 }定义枚举{Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Nepture,Pluto}private void run_Click(object sender, System.EventArgs e) {int x = 42;Output( x );// TODO: 1 声明变量suzanName并使用"Suzan Fine"进行初始化string suzanName = "suzanFine";// TODO: 2 声明并初始化一个变量,它用以存放货币值.20decimal a = 135.20M;Output("$"+a);// TODO: 3 使用枚举类型,将枚举值Planet.Earth赋给变量ourPlanet// 显示该变量的值Planet outplanet = Planet.Earth;Output(outplanet);ConsoleApplication1{enum班委{班长,团支书,生活委员,体育委员,劳动委员,}class Program{static void Main(string[] args){班委 classTeam = 班委.生活委员;switch (classTeam){case班委.班长:Console.WriteLine("我是班长");break;case班委.团支书:Console.WriteLine("我是团支书");break;case班委.生活委员:Console.WriteLine("我是生活委员");break;case班委.体育委员:Console.WriteLine("我是体育委员");break;case班委.劳动委员:Console.WriteLine("我是劳动委员");break;default:Console.WriteLine("为什么我不是班委?");break;}Console.WriteLine();}}}void button1_Click(object sender, EventArgs e){double d;double h;double v;double s;double PI; //定义类型PI = 3.1415926;Try //可能会出现错误的类型{d = Double.Parse(textBox1.Text);}catch (System.FormatException){MessageBox.Show ("您输入的d参数数据格式不正确");return;textBox1.Text = string.Empty;}catch (System.OverflowException) //捕捉可能错误的地方 {MessageBox.Show ("您输入的d参数超出了数据范围");return;textBox1.Text = string.Empty;}try{h = Double.Parse(textBox2.Text);}catch (System.FormatException){MessageBox.Show ("您输入的h参数数据格式不正确");return;textBox2.Text = string.Empty;}catch (System.OverflowException){MessageBox.Show ("您输入的h参数超出了数据范围"); //委婉的向用户表达错误return;textBox2.Text = string.Empty;}s = PI * d * d + PI * d * h;v = PI * (d / 2.0) * (d / 2.0) * h;textBox3.Text = Convert.ToString(s);textBox4.Text = Convert.ToString(v);}private void button2_Click(object sender, EventArgs e){textBox1.Text = string.Empty;textBox2.Text = string.Empty;textBox3.Text = string.Empty;textBox4.Text = string.Empty; //清空文本中的内容 }double height; //身高double fatP; //脂肪率BMIdouble standardW; //标准体重double weight; //客户体重int i1=1; //用于循环语句中,便于继续给客户测试while (i1 != 0){Console.Write("请输入你的身高厘米:");height = double.Parse(Console.ReadLine());Console.Write("请输入你的体重千克:");weight = double.Parse(Console.ReadLine());Console.Write("请输入你的脂肪率,用小数表示:");fatP = double.Parse(Console.ReadLine());standardW = (height - 150) * 0.6 + 48;if ((weight < standardW + 0.1 * standardW) && (weight > standardW - 0.1 * standardW)){Console.Write("你的体重没有超重,请继续保持!");}else if (weight < standardW - 0.1 * standardW){Console.Write("你的体重异常,注意不要太瘦哦!");}else if (weight >= standardW + 0.1 * standardW){if (weight >= (standardW + 0.1 * standardW) && (weight <= standardW+ 0.2 * standardW))Console.Write("你的体重超重,需要运动哦!");if ((weight > standardW + 0.2 * standardW) && (fatP > 0.3)){Console.Write("你的体重超重,有肥胖病,建议每天运动小时!");if (((weight > standardW + 0.3 * standardW) && (weight < standardW + 0.5 * standardW)) && ((fatP > 0.35) && (fatP < 0.45))){Console.Write("你的体重超重,属于中度肥胖病,建议每天的运动量加至小时!");}elseConsole.Write("你的体重超重,属于重度肥胖病,建议每天的运动量加至小时!");}}Console.WriteLine("\n");}int x = 10;int y = x++;Console.WriteLine(y);x += 10;Console .WriteLine (x);int z = 30;int a = x + y * z;Console.WriteLine(a );a = 10;int b = a++;bool myBool = (a == b);Console.WriteLine(myBool);decimal baseSalary = numBaseSalary.Value;double postCoefficient = 1.0;string post = combPost.SelectedItem.ToString();if (post == "作业员"){postCoefficient = 0.8;}else if (post == "技术员"){postCoefficient = 1.0;}else if (post == "工程师"){postCoefficient = 1.5;}else if (post == "部门经理"){postCoefficient = 2.0;}decimal salary = baseSalary * (decimal)postCoefficient;txtSalary.Text = String.Format("{0:C}", salary);七、程序源代码(用Winrar压缩后用附件提交,源代码中要有比较完备的注释)八、收获,体会及问题(写得越详细、越个性化、越真实越好,否则我不知道你做这个实验的心路历程,也就无法充分地判断你是否是独立完成的这个实验、你是否在做这个实验时进行了认真仔细地思考、通过这个实验你是否在实践能力上得到了提高)因为刚接触的缘故,所以做起题目来的速度也非常的慢。
安徽机电职业技术学院实验报告一、实验目的1、进一步掌握类和对象的基本概念,掌握类字段和属性的使用;2、掌握类的索引器的用途和使用;3、了解类的静态成员用其作用;4、掌握使用类来构造应用程序。
二、实验内容使用Visual Studio .NET 2005,完成以下程序:程序1、完成“使用索引器”的课堂示例(CSharp示例\第5课\Country);程序2、“使用类的静态成员”的课堂练习(CSharp示例\第5课\Static);程序3、使用贷款类完成“贷款计算器” (CSharp示例\第5课\Loan);三、实验步骤1、将服务器上“面向对象”课件的文件夹中的“Csharp示例\第5课\ Country”文件夹复制到本地磁盘上。
打开其中的“Country.sln”,完成其中的2个任务。
将这两个任务的代码写在下面。
// TODO 1: 完成下面的索引器,该索引器可以返回peoples数组中index下标的人口数量public double this[int index]{get{return this.peoples[index];}// TODO 2: 书写第2个索引器,该索引器接收一个字符串格式的国家名称,可以返回对应的peoples数组中的国家人口数量public class CountryPeoples{private string[] country = { "中国", "美国", "法国", "日本", "韩国", "印度" };private double[] peoples = { 1.306e+10, 2.5e+9, 6.09e+8, 1.274e+9, 4.829e+8,1.027e+10 };public double this[string index]{get{int i=0;foreach (string c in country ){if ( c ==index ) break;i++;}if (i>=peoples.Length) return 2;else return peoples[i];}}}}CountryPeoples c1 = new CountryPeoples();Output("韩国的人口数量是:" + c1["韩国"]);Output("法国的人口数量是:" + c1["法国"]);Output("美国的人口数量是:" + c1["美国"]);Output("日本的人口数量是:" + c1["日本"]);Output("印度的人口数量是:" + c1["印度"]);2、将服务器上“面向对象”课件的文件夹中的“Csharp示例\第5课\Static”文件夹复制到本地磁盘上。
西安交通大学实验报告
一.实验名称
实验二 Windows消息机制
二.实验目的
1.掌握编写鼠标消息处理函数和键盘消息处理函数的技术。
2.掌握定时器的使用。
三.实验内容
1.每当用户在窗口客户区中按下鼠标左键时即可产生一个泡泡(灰色圆形)。
2.编写一个字幕滚动程序。
单击左键开始滚动,单击右键停止滚动;文字自右向左移动,文字到顶端的距离是固定的。
四.实现步骤(写出程序实现主要步骤和相关代码)
1.
(1)“用Visual C++ 2005集成开发环境开发MFC应用程序”建立单文档应用程序,该项目名称为C02a,去掉使用Unicode库选项,其余选项采用默认设置。
(2)在CC02aView类中建立消息处理函数OnLButtonDown并加入以下代码:
void CC02aView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
int r = 50;
CRect rect(point.x-r, point.y-r, point.x+r, point.y+r);
CDC *pDC=GetDC();
pDC->Ellipse(rect);
CView::OnLButtonDown(nFlags, point);
}
2.
(1)“用Visual C++ 2005集成开发环境开发MFC应用程序”建立单文档应用程序,该项目名称为C02b,去掉使用Unicode库选项,其余选项采用默认设置。
(2)修改视图类定义,加入一个CRect类型的变量记录字幕位置
class CC02bView : public CView
{
CRect m_rect;
protected: // 仅从序列化创建
CC02bView();
DECLARE_DYNCREATE(CC02bView)
…………
(3)修改视图类构造函数
CC02bView::CC02bView()
{
// TODO: 在此处添加构造代码
m_rect = CRect(10,40,35,50);
}
(4)修改OnDraw函数
void CC02bView::OnDraw(CDC* pDC)
{
CC02bDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
pDC->DrawText("啦啦啦",m_rect,DT_CENTER);
}
(5)建立OnLButtonDown函数并加入如下代码
void CC02bView::OnLButtonDown(UINT nFlags, CPoint point) {
// TODO: 在此添加消息处理程序代码和/或调用默认值
SetTimer(1,100,NULL);
CView::OnLButtonDown(nFlags, point);
}
(6)建立OnRButtonDown函数并加入如下代码
void CC02bView::OnRButtonDown(UINT nFlags, CPoint point) {
// TODO: 在此添加消息处理程序代码和/或调用默认值
KillTimer(1);
CView::OnRButtonDown(nFlags, point);
}
(7)建立定时器消息处理函数OnTimer并加入如下代码
void CC02bView::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CRect rectClient;
GetClientRect(&rectClient);
if(m_rect.right<rectClient.right) m_rect += CSize(5,0);
else m_rect = CRect(10,40,65,70);
Invalidate();
CView::OnTimer(nIDEvent);
}
五.实验结果
如图示:
1.
2.
六.算法分析
1.在处理鼠标消息的OnLButtomDown中使用了CDC类的成员函数:Ellipse(),在点击处画出了大小固定的圆形。
2. GetClientRect用于取窗口客户区的参数,防止被控物体被移出窗口客户区。
在定时器消息处理函数OnTimer内做了如下工作:
a)刷新窗口客户区
b)修改物体的位置参数
c)通知OnDraw函数更新物体新位置的内容
七.个人小结
通过观看书上实例中对一些情况的处理,了解了在窗口客户区移动一个物体的大概方法,再结合另一个实例中队定时器消息处理函数的应用,做出了问题二,稍有进步。