计算机信息Word文档下载推荐.docx
- 文档编号:18088571
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:15
- 大小:160.46KB
计算机信息Word文档下载推荐.docx
《计算机信息Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机信息Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
(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#做高层软件开发。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机信息