




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于C/S程序设计 课程设计(论文)题目: 电子邮箱客户端 程序设计(报告)题目电子邮箱客户端程序设计(报告)任务程序设计的任务与要求:(1)掌握C#语言编程的基础知识。(2)较熟练地编写C#语言应用程序。(3)了解C#语言的常用类、网络编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。目 录第1章 课程设计的目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容22.1系统功能22.2系统设计42.3 系统实现62.4程序的运行和测试9第3章 课程设计总结10参考资料 11第1章 课程设计的目的与要求1.1 课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完C#网络程序开发案例课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对C#语言课程的基本知识的理解和掌握 2. 掌握C#语言编程和程序调试的基本技能 3. 利用C#语言进行基本的网络软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C#语言解决实际问题的能力1.2 课程设计的实验环境硬件要求能运行Windows 2000/XP操作系统的微机系统。C#语言程序设计及相应的开发环境。1.3 课程设计的预备知识熟悉C#语言及.NET开发工具。1.4 课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告第2章 课程设计内容2.1系统功能在开发邮件客户端前,首先需要定义程序的功能。根据实际需要,邮件客户端主要的功能应该有:主界面,账户管理,账户属性设置,新建邮件,发送邮件/接收邮件、接收和发送进度显示等。在服务、容量和功能等方面都有很大的进步,特别是在邮箱的附件功能方面。这些附件功能主要包括Flash贺卡、垃圾邮件过滤、邮件提醒、邮件查毒、信息定制、相册功能、下载手机铃声等。这些功能从多方面满足了用户的需求,相信这些附加功能也将是服务商吸引用户的必争之地,也预示着我国的邮件服务市场将朝着大容量、多功能的方向发展。电子邮件地址的格式为userhostname,其中hostname为邮件服务器的主机地址。电子邮件地址的第一部分是用户名(相当于传统邮件中的收信人姓名),由用户自行决定或ISP指定,该名称在同一个主机地址中是唯一的,以便服务器能够正确地将邮件发送到每个收件人的手中。最初免费电子邮箱大多要求用户使用浏览器打开相应站点,然后输入用户名、密码登录,最后直接在浏览器中在线从事收信、发信等操作(也就是所谓的Web收信方式)。此方式的优点是操作比较简单,无需任何其它专用软件,只要能上网浏览,就能登录到相关邮件站点收发邮件。不过该方式有一个突出的缺点,那就是非常浪费时间。相比而言,使用客户端邮件软件就没有这个缺点。所谓客户端软件方式是指用户在自己的计算机上安装一些支持电子邮件基本协议的电子邮件软件(如Outlook Express、Foxmail等),然后由它们将用户的邮件从服务器下载到自己的硬盘中,在离线状态下撰写、阅读邮件。2.2系统设计电子邮件又称E-mail,Internet之上的最常用应用功能之一,使用户可以通过Internet交换邮件形式的信息文件。通常电子邮件是纯文字(即纯文本)的,但是邮件附件却可以是任意信息形式的。用户在ISP的邮件服务器上建立电子邮箱时取得用户专有的电子邮箱地址,网上其他用户则使用该地址向用户发送邮件。 用户利用E-mail可以实现在Internet上相互快速地传递文件形式的“邮件”信息,“邮件”中可包括数字化的文图音像信息。电子邮件传输具有以下特点: 1、快速:与传统的邮政信件相比,电子邮件的时效性非常突出,一个跨洲越洋的邮件,可能只需几秒钟就可以发到对方的“邮箱”中,并且不用麻烦任何人。 2、经济:在线路畅通的情况下,发出一封电子邮件只需要几秒钟,费用肯定比信件要少;与电话传真相比,也属经济实用。 3、易处理:电子邮件可以在计算机上修改或调试,易于处理。 4、可靠:发送电子邮件时,如果遇到对方的计算机未开机,邮件暂时无法发送到达目的地时,Internet上的“邮局”会每隔一段时间自动重发邮件,直到收到对方计算机发来的“已接收邮件”的消息。如果经过很长一段时间,接收端的计算机仍没有发回收到信息,电子邮件系统会自动通知邮件发送者度退还邮件。 以电子邮件系统为基础,又建立了更高级的应用系统,如称之为“新闻组”的专题论文交换系统,网上传真系统,电子期刊报纸订阅系统等。其功能流程图如下:检查发件箱的待发邮件待发邮件?连接服务器连接成功?YESSMTP服务需要身份验证?YES身份验证身份验证成功?发送待发邮件发送成功?开始关闭连接更新数据库和界面获得下一个邮件退出NONONOYESYESYESNO图2.1 系统功能流程图2.3 系统实现using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Threading;using System.Net.Sockets;using System.Net;namespace WindowsApplication1 public partial class Form1 : Form public bool appRun = true; private Listener lis; private Sender sen; public Form1() InitializeComponent(); public void AddMessage(object sender, AddMessageEventArgs e) RecText.Text += e.mess; private void start_Click(object sender, EventArgs e) try lis.listenerRun = false; lis.Stop(); catch (NullReferenceException) ; finally lis = new Listener(); lis.OnAddMessage+=new EventHandler(this.AddMessage); lis.StartListen(); private void stop_Click(object sender, EventArgs e) try lis.listenerRun = false; lis.Stop(); catch (NullReferenceException) private void send_Click(object sender, EventArgs e) if (ObjText.Text = ) MessageBox.Show(请输入目标主机名); else if (SendText.Text = ) MessageBox.Show(请输入要发送的内容); else sen = new Sender(ObjText.Text); sen.Send(SendText.Text); private void exit_Click(object sender, EventArgs e) try lis.listenerRun = false; lis.Stop(); catch (NullReferenceException) ; finally appRun = false; Application.Exit(); public class AddMessageEventArgs : EventArgs public string mess; public class Listener private Thread th; private TcpListener tcp1; public bool listenerRun = true; public event EventHandler OnAddMessage; public Listener() public void StartListen() th = new Thread(new ThreadStart(Listen); th.Start(); public void Stop() tcp1.Stop(); th.Abort(); private void Listen() try IPAddress addr = new IPAddress(Dns.GetHostByName(Dns.GetHostName().AddressList0.Address); IPEndPoint ipLocalEndPoint = new IPEndPoint(addr, 5656); tcp1 = new TcpListener(ipLocalEndPoint); tcp1.Start(); while (listenerRun) Socket s = tcp1.AcceptSocket(); string remote = s.RemoteEndPoint.ToString(); Byte stream = new Byte512; int i = s.Receive(stream); string msg = + System.Text.Encoding.UTF8.GetString(stream); AddMessageEventArgs arg = new AddMessageEventArgs(); arg.mess = msg; OnAddMessage(this, arg); catch (System.Security.SecurityException) MessageBox.Show(防火墙禁止连接); catch (Exception) MessageBox.Show(监听已停止); public class Sender private string obj; public Sender(string str) obj = str; public void Send(string str) try TcpClient tcpc = new TcpClient(obj, 5656); NetworkStream tcpStream = tcpc.GetStream(); Byte data = System.Text.Encoding.ASCII.GetBytes(str); tcpStream.Write(data, 0, data.Length); tcpStream.Close(); tcpc.Close(); catch (Exception) MessageBox.Show(连接被目标主机拒绝); 2.4程序的运行和测试电子邮箱业务是一种基于计算机和通信网的信息传递业务,是利用电信号传递和存储信息的方式为用户提供传送电子信函、文件数字传真、图象和数字化语音等各类型的信息。电子邮件最大的特点是,人们可以在任何地方时间收、发信件,解决了时空的限制,大大提高了工作效率,为办公自动化,商业活动提供了很大便利。我们所做的电子邮箱客户端主要分为四大部分:一、主界面邮箱客户端主界面,如图2.1所示。在主界面中包含了主菜单和工具栏,以便于执行具体的命令。左侧TreeView控件用于显示保存邮件的分类目录,选择不同的分类目录会在其右侧的ListView中显示该目录中保存的所有邮件,单击一个具体的邮件会在右侧下面显示该邮件的具体内容。图2.2 电子邮箱主界面主界面中的“邮件”菜单包含如下几个命令:1、“新建”命令:用于新建一个邮箱。2、“删除”命令:用于删除选中的邮件。如果没有在ListView中选中具体的邮件,则操作没有任何作用。如果邮件在“垃圾箱”中,执行该命令后邮件将被彻底删除。如果邮件在其他邮箱中,执行该命令后会把邮箱移动到“垃圾箱”中。3“退出”命令:退出程序。二、账户管理帐户管理功能可以添加和删除帐户、设置帐户的属性。单击主窗口“设置”菜单中的“邮箱设置”命令会打开“设置邮箱”对话框,如图2.12所示。图2.3 账户管理的“设置邮箱”对话框图2.4 “邮件设置”选项卡单击“新建”按钮可以添加新账户。先中某个账户,单击“删除”按钮,可以删除该账户。若设置账户属性,在“设置邮箱”对话框中选取中某个邮件账号后,单击“属性”按钮可以打开“设置属性”对话框以设置邮件的详细属性,如图2.12所示。“设置属性”对话框有三个选项卡,其中“邮件设置”选项卡列出了电子邮件地址和电子邮箱的类型。三、新建邮件在发送邮件时,需要首先新建一个邮件。选择“邮件”菜单中的“新建”命令后,打开“新建邮件”窗口,如图2.13所示。在该对话框中可以输入发送邮箱地址、接收邮箱地址、抄送地址、邮件主题和邮件正文。输入完成后,单击工具栏“保存”按钮会把邮件保存在“草稿箱”目录中;单击工具栏“发送”按钮,会把邮件保存在“发件箱”目录中等待发送。图2.5 “新建邮件”窗口四、接收/发送邮件从指定的邮箱中接收邮件后,接收的邮件保存在“收件箱”中。在发送邮件时,会自动检查“发件箱”目录中是否有待发邮件,如果没有就退出操作,如果有就逐个发送邮件。接收和发送邮件时,窗口会显示当前的发送进度。当邮件成功发送后,会被自动移动到“已发送”目录中,无论是接收邮件还是发送邮件支委会显示当前操作的进度,接收和发送的信息一般都是由操作命令和服务器的响应组成的。第3章 课程设计总结通过对数据结构的课程设计,我了解并发现了很多调试程序的方法,而且懂得了如何处理错误的方法。对C语言的使用得到了进一步的提高。针对数据结构的书本知识得到了进一步的巩固,具体化就是加深了我对线性表的结构的理解,栈和队链认识,二叉树的的应用,查找的方法,数的排序等。对程序的深层理解,清楚程序中每一步的功能,在程序的运行中是十分重要的,一个好的结构在运行中能够充分的发挥程序的功能。结构设计的合理性决定了这个程序的价值。在今后的学习中我要注意这方面,使得我的编程能力能有进一步的提高。 学写程序自己一定先要把框架打好,已经程序间的联系一定要想清楚,这次失败的主要原因就是没有先写明白具体的框架,具体某个类要实现的功能,某个类里面要的一些具体变量和这变量所起的作用一定要在开始就描述清楚,已经一些函数功能的实现也要开始想好,这样在编写代码的时候逻辑关系搞的会比较清楚,编写程序的时候不会因为程序庞大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品组合管理
- 幼小衔接培训老师
- 医院冬季消防法律培训
- 销售月度工作总结及计划
- 儿童哮喘护理
- 表单填写说明培训
- 有效沟通机制培训
- 职业教育管理学理论与实践
- 肢体无力护理查房
- 子宫颈癌护理诊断
- 企业市场营销策略顾问服务合同范本
- 贵州省贵阳市部分学校2024-2025学年高二下册期末联考数学试卷(附答案)
- 2024-2025学年人教版 2024小学数学一年级下册教学工作总结(共3套)
- 学生高层宿舍管理制度
- 薪资发放协议
- T/CAR 7-2021绿色高效自携式商用冷藏陈列柜技术要求和评价方法
- 合作账号合伙协议书
- 2025-2030年国内冷藏集装箱行业市场现状供需分析及投资评估规划分析研究报告
- 警务技能抓捕课件
- 广东省广州市南沙区2025届七下生物期末教学质量检测试题含解析
- DB13T 2700-2018 水工柔性生态防护结构设计规范
评论
0/150
提交评论