计算机信息Word文档下载推荐.docx

上传人:b****4 文档编号:18088571 上传时间:2022-12-13 格式:DOCX 页数:15 大小:160.46KB
下载 相关 举报
计算机信息Word文档下载推荐.docx_第1页
第1页 / 共15页
计算机信息Word文档下载推荐.docx_第2页
第2页 / 共15页
计算机信息Word文档下载推荐.docx_第3页
第3页 / 共15页
计算机信息Word文档下载推荐.docx_第4页
第4页 / 共15页
计算机信息Word文档下载推荐.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

计算机信息Word文档下载推荐.docx

《计算机信息Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机信息Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。

计算机信息Word文档下载推荐.docx

(2)会使用base调用父类的构造函数。

(3)会使用自定义接口实现某种功能。

(4)会使用is判断类型。

(5)会使用as转换类型。

(7)会使用接口作为参数和返回值。

二、会使用序列换和反序列化对对象进行读取。

二、分析

1、功能分析

浏览:

用户可以通过列表视图浏览查看器中存贮的所有电脑信息。

查看详细信息:

用户可以通过选择列表视图中的某一项,来查看选中电脑的详细信息。

打印:

将选中电脑的详细信息打印出来。

2、界面分析

如图1.1所示,程序主体界面可分为三部分:

第一部分是以“电脑列表”分组框为面板的部分,第二部分是以“电脑详细信息”分组框为面板的部分,第三部分就是程序界面最下部分的三个按钮。

第一部分含两个控件:

1个分组框(groupbox)和1个列表视图(listview)。

第二部分含19个控件:

1个分组框(groupbox)18个标签(label)。

在18个label中,9个用于显示提示,另外9个与这9个一一对应,分别用于显示相应的“详细信息”。

第三部分含3个控件:

3个下压式按钮(button)。

界面的详细布局如图1.1所示。

3、程序分析

本程序的核心数据是“计算机信息”,所有的操作都围绕着该数据进行的。

计算机信息分为两大类:

笔记本信息和台式机信息。

由此,设计3个类:

计算机基类(Computer)、笔记本类(NoteBook)和台式机类(DeskTop)。

为了打印需求,设计1个打印机接口(Printable)。

其中笔记本类和台式机类继承自计算机基类并且实现打印机接口。

为了统一管理计算机信息,设计计算机管理类(ComputerManager)。

各个类和接口的具体信息:

计算机基类类包含属性:

型号名称(Name)、品牌(Brand)、CPU(CPU)、内存(Memory)、硬盘(HardDisk)、显示器(Monitor)。

笔记本类包含特有属性:

电池(Battery)。

台式机类包含特有属性:

机箱类型(HostType)。

计算机管理类:

用于从文件中加载计算机信息(Load)以及向文件中写入计算机信息(Save)。

采用泛型集合Dictionary<

string,Computer>

computer存贮电脑信息。

打印机接口:

为笔记本类和台式机类提供统一的打印接口(Print),由笔记本类和台式机类分别实现。

三、类和接口的设计

根据程序分析部分,设计出如图1.2所示类模块。

图1.2类关系图

四、类功能实现

(1)笔记本类和台式机类的打印接口Print方法实现:

使用StreamWriter类的WriteLine方法,将类的属性信息输出到相关文件。

(2)计算机管理类方法的实现,需给计算机基类、笔记本类、台式机类添加序列化说明[Serializable]。

加载信息:

publicvoidLoad()。

使用反序列化,将信息从文件中读取到泛型集合中。

保存信息:

publicvoidSave()。

使用序列化,将泛型集合信息写入到文件中。

五、主程序功能实现

(1)定义计算机管理类对象ComputerManagermanager。

(2)加载数据。

使用ComputerManager的Load方法从文件中加载信息,如果存在文件,则将文件中的计算机对象填充到ListView。

如果不存在,则创建不同类型的计算机,并添加到泛型集合中,填充到ListView中。

(3)将泛型集合中的数据填充到ListView:

privatevoidUpdateComputer(Dictionary<

computers)。

(4)初始化集合泛型数据:

privatevoidInitComputer()。

如果从本地文件加载泛型集合数据失败,则由程序初始化数据,填充到泛型集合。

(5)给下压式按钮添加事件处理。

六、核心代码

publicpartialclassMainForm:

Form

{

ComputerManagermanager;

publicMainForm()

InitializeComponent();

}

privatevoidInitComputer()

//创建笔记本计算机对象

NoteBookibmT61=newNoteBook("

T61"

"

IBM"

Intel酷睿2"

2GB"

"

160GB"

14.1英寸"

7芯电池"

);

NoteBookibmX60=newNoteBook("

X60"

INtel酷睿2"

512MB"

60GB"

12.1英寸"

4芯电池"

//创建台式计算机对象

DeskTopdell530MT=newDeskTop("

530MT"

戴尔"

80GB"

19寸"

立式机箱"

DeskToplenovo5050=newDeskTop("

Lenovo5050"

联想"

AMD速龙64"

1GB"

22英寸"

//添加到泛型集合中

manager.Computers.Add(ibmT61.Name,ibmT61);

manager.Computers.Add(ibmX60.Name,ibmX60);

manager.Computers.Add(dell530MT.Name,dell530MT);

manager.Computers.Add(lenovo5050.Name,lenovo5050);

privatevoidUpdateComputer(Dictionary<

computers)

this.lvComputerList.Items.Clear();

foreach(Computercomputerincomputers.Values)

{

ListViewItemitem=newListViewItem(computer.Name);

//将数据添加到ListView中

item.SubItems.AddRange(

newstring[]{

computer.Brand,

computer.CPU,

computer.Memory,

computer.HardDisk,

computer.Monitor});

lvComputerList.Items.Add(item);

}

privatevoidbtnDetail_Click(objectsender,EventArgse)

stringkey=lvComputerList.SelectedItems[0].Text;

if(manager.Computers[key]isDeskTop)

lbKind.Text="

台式机"

;

lbHostType.Text=

((DeskTop)manager.Computers[key]).HostType;

lbBattery.Text="

"

if(manager.Computers[key]isNoteBook)

笔记本"

lbBattery.Text=

((NoteBook)manager.Computers[key]).Battery;

lbHostType.Text="

lbName.Text=key;

lbBrand.Text=manager.Computers[key].Brand;

lbCPU.Text=manager.Computers[key].CPU;

lbHandDisk.Text=manager.Computers[key].HardDisk;

lbMemory.Text=manager.Computers[key].Memory;

lbMonitor.Text=manager.Computers[key].Monitor;

privatevoidbtnPrint_Click(objectsender,EventArgse)

key=this.lvComputerList.SelectedItems[0].Text;

//接口作为返回值

IPrintableprinter=manager.Computers[key]asIPrintable;

if(printer!

=null)

//将接口作为参数直接调用Print()方法

printer.Print();

MessageBox.Show("

打印成功。

else

该电脑没有打印功能"

privatevoidbtnQuit_Click(objectsender,EventArgse)

this.Close();

privatevoidMainForm_Load(objectsender,EventArgse)

//添加列

lvComputerList.View=View.Details;

lvComputerList.Columns.Add("

型号名称"

100,HorizontalAlignment.Left);

品牌"

CPU"

内存"

硬盘"

100,HorizontalAlignment.Left);

监视器"

//初始化详细信息

lbName.Text="

lbBrand.Text="

lbCPU.Text="

lbHandDisk.Text="

lbMemory.Text="

lbMonitor.Text="

lbKind.Text="

lbBattery.Text="

lbHostType.Text="

manager=newComputerManager();

try

manager.Load();

catch(System.Exceptionex)

InitComputer();

//如果加载不成功,则初始化。

manager.Save();

UpdateComputer(manager.Computers);

//电脑基类

[Serializable]

publicclassComputer

privatestringname;

//名称

privatestringbrand;

//品牌

privatestringcpu;

//CPU

privatestringhardDisk;

//硬盘

privatestringmemory;

//内存

privatestringmonitor;

//监视器

//属性

publicstringName

get{returnname;

set{name=value;

publicstringBrand

get{returnbrand;

set{brand=value;

publicstringCPU

get{returncpu;

set{cpu=value;

publicstringHardDisk

get{returnhardDisk;

set{hardDisk=value;

publicstringMemory

get{returnmemory;

set{memory=value;

publicstringMonitor

get{returnmonitor;

set{monitor=value;

//方法

publicComputer(

stringname,

stringbrand,

stringcpu,

stringhardDisk,

stringmemory,

stringmonitor)

Name=name;

Brand=brand;

CPU=cpu;

HardDisk=hardDisk;

Memory=memory;

Monitor=monitor;

//打印接口

publicinterfaceIPrintable

voidPrint();

//笔记本类

publicclassNoteBook:

Computer,IPrintable

privatestringbattery;

//电池

publicstringBattery

get{returnbattery;

set{battery=value;

publicNoteBook(

stringmonitor,

stringbattery)

:

base(name,brand,cpu,hardDisk,memory,monitor)

Battery=battery;

publicvoidPrint()

StreamWriterfstream=newStreamWriter("

datials.txt"

fstream.WriteLine("

-------详细清单(笔记本)-----------"

\t{0}"

Name);

Brand);

CPU);

Memory);

HardDisk);

Monitor);

电池:

Battery);

-------------详细清单-------------"

fstream.Close();

//台式机类

publicclassDeskTop:

privatestringhostType;

//机箱

publicstringHostType

get{returnhostType;

set{hostType=value;

publicDeskTop(

stringhostType)

HostType=hostType;

--------详细清单(台式机)-----------"

Name);

Brand);

CPU);

Memory);

HardDisk);

Monitor);

HostType);

----------详细清单----------------"

publicclassComputerManager

publicComputerManager()

computers=newDictionary<

();

privateDictionary<

computers;

publicDictionary<

Computers

get{returncomputers;

set{computers=value;

publicvoidSave()

//定义文件流

FileStreamfs=

newFileStream("

computers.bin"

FileMode.Create);

//二进制格式化

BinaryFormatterbf=newBinaryFormatter();

//序列化

bf.Serialize(fs,Computers);

//关闭

fs.Close();

publicvoidLoad()

FileMode.Open);

//反序列化

try

{

Computers=

(Dictionary<

)bf.Deserialize(fs);

}

catch(System.Exceptionex)

throw;

finally

fs.Close();

七、总结

经过一学期的C#学习,我对C#有了进一步的认识和掌握。

C#诞生于C、C++、Java之后,其语言特点与这几门优秀的编程语言极其相似,不同的是,C#更面向于用户,而不是计算机,因此就有它自己的绝对优势--简单易学。

在微软的重量级开发工具.Net平台上,C#更是发挥了他强大的作用,使得软件开发变为一件非常容易且高效的事情。

C#在将来必定会占据软件行业高端市场,因此使用C#做高层软件开发是个不错的选择,将来我会考虑使用C#做高层软件开发。

 

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

当前位置:首页 > 小学教育 > 语文

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

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