面向对象程序设计课程设计报告
![面向对象程序设计课程设计报告](https://img.360docs.net/img36/01mqqlxhwxtvyl31t3b6-61.webp)
![面向对象程序设计课程设计报告](https://img.360docs.net/img36/01mqqlxhwxtvyl31t3b6-62.webp)
学生课程实验报告书
14 级计算机与信息科学系系
软件专业 1401 班
学号 3148907101 姓名钟媛媛
学号 3148907107 姓名蔡丽萍
2015 --2016 学年第 2 学期实验项目:
模拟实现银行ATM自动取款机系统
实验时间: 2016.5
实验内容:
一、课程设计的目的
1、掌握面向对象编程的思想和方法;
2、熟悉C++项目开发代码风格;
3、理解项目需求,划分项目模块,学会设计数据库或数据结构及接口;
4、掌握C++编程调试的基本技能;
5、掌握项目实现流程。
二、具体内容
模拟实现银行ATM自动取款机系统。系统主要功能:
(1)客户登录
(2)余额查询
(3)取款
(4)转账
(5)借存记录查询
1 项目分析
了解项目应用领域的ATM流程、操作规范,明确项目需求、确定项目功能。
1.1功能描述
画出功能结构图,介绍系统中各模块的主要功能。
1.2 ATM流程
画出系统ATM流程图。
1.3数据库设计
根据系统数据需求,进行数据库概念设计、数据表设计。用户信息表:
1.4功能模块分
记
录
查
询
record
id
name
states zmoney 记录查询
介绍系统的功能模块设计思路,画出模块工作流程图。
2 项目实现
使用C++编程实现项目。
2.1 功能模块设计
系统中各类关系图,类的设计(类的定义)。
class ATM
{
public:
int withdraw();//取款
void zhuan();//转账
void balance();//余额查询
int interfac();//登陆
int menu1();//菜单
void record_info();//记录查询
public:
string name;//用户名
string number;//账号
float money;//余额
string password;//密码
};
2.2 项目实现
系统中各类的实现(各类成员函数的实现)。 void ATM::record_info()//记录查询
{
HRESULT
hr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库
cout<<"---------------------------------"< cout<<"请输入查询的账号:"; string number; cin>>number; string sql="select * from record where id ='"+number+"'"; RECORDSET rs=db.JExecuteWithRecordset(sql); while(rs->rsEOF) { cout<<"---------------------------------"< cout<<"该卡号不存在,请重新输入:"; cin>>number; sql="select * from record where id ='"+number+"'"; rs=db.JExecuteWithRecordset(sql); } while(!rs->rsEOF) { cout<<"*********************************"< cout<<"用户卡号:"< cout<<"姓名:"< cout<<"状态类型:"< cout<<"时间"< cout<<"金额: "< cout<<"*********************************"< rs->MoveNext(); } db.Close(); } void ATM::zhuan()//转账 { gettime(); HRESULT hr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库 if(hr==-1) { cout<<"Connection fail!"< return; } cout<<"************************************"< cout<<"请输入您的卡号:"; string number; cin>>number; cout<<"请输入您的姓名:"; string user_name; cin>>user_name; string sql="select id from user_bank_info where id ='"+number+"'"; RECORDSET rs=db.JExecuteWithRecordset(sql); while(rs->rsEOF) { cout<<"##################################"< cout<<"该账号不存在,请重新输入:"; cin>>number; sql="select id from user_bank_info where id ='"+number+"'"; rs=db.JExecuteWithRecordset(sql); } cout<<"**************************************"< cout<<"请输入对方卡号:"; string number2; cin>>number2; cout<<"请输入对方姓名:"; string user_name2; cin>>user_name2; string sql1="select id from user_bank_info where id ='"+number2+"'"; RECORDSET rs1=db.JExecuteWithRecordset(sql1); while(rs1->rsEOF) { cout<<"###################################"< cout<<"无此卡号,请重新输入:"; cin>>number2; sql1="select id from user_bank_info where id ='"+number2+"'"; rs1=db.JExecuteWithRecordset(sql1); } cout<<"请输入您要转账的金额:"< string money; cin>>money; string take_state; take_state= "转账"; string sql3="update user_bank_info set blance=blance-"+money+" where id='"+number+"'"; long status=db.JExecuteWithoutRecordset(sql3); if(status>0) { cout<<"***********************************"< cout<<"转账成功!"< } else { cout<<"***********************************"< cout<<"转账失败!"< } string sql4="update user_bank_info set blance=blance+"+money+" where id='"+number2+"'"; long status2=db.JExecuteWithoutRecordset(sql4); if(status>0) { cout<<"************************************"< cout<<"收款成功!"< } else { cout<<"************************************"< cout<<"收款失败!"< } string sql5="insert into record values('"+number+"','"+user_name+"','"+take_state+"', '"+money+"','"+time2+"') "; long status1=db.JExecuteWithoutRecordset(sql5); if(status1>0) { cout<<"---------------------------------"< cout<<"您的转账记录添加成功!"< } else { cout<<"---------------------------------"< cout<<"您的转账记录添加失败!"< } string take_state2="收款"; string sql6="insert into record values('"+number2+"','"+user_name2+"','"+take_state2+ "','"+money+"','"+time2+"') "; long status3=db.JExecuteWithoutRecordset(sql6); if(status3>0) { cout<<"---------------------------------"< cout<<"对方转账记录添加成功!"< } else { cout<<"---------------------------------"< cout<<"对方转账记录添加失败!"< } db.Close(); } void ATM::balance()//余额查询 { gettime(); HRESULT hr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库 if(hr==-1) { cout<<"Connection fail!"< return; } cout<<"*************************************"< cout<<"请输入您要查询的账号:"; string number1; cin>>number1; cout<<"请输入姓名:"< string user_name1 ; cin>>user_name1; string sql="select * from user_bank_info where id ='"+number1+"'"; RECORDSET rs=db.JExecuteWithRecordset(sql); while(rs->rsEOF) { cout<<"*********************************"< cout<<"该账号不存在,请重新输入:"; cin>>number1; sql="select * from user_bank_info where id ='"+number1+"'"; rs=db.JExecuteWithRecordset(sql); } cout<<"*********************************"< cout<<"当前余额:"< db.Close(); } int ATM::withdraw()//取款{ gettime(); HRESULT hr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库 if(hr==-1) { cout<<"Connection fail!"< return 0; } cout<<"---------------------------------"< string number; string user_name; string take_state; cout<<"请输入您的卡号:"; cin>>number; string sql="select id from user_bank_info where id ='"+number+"'"; RECORDSET rs=db.JExecuteWithRecordset(sql); while(rs->rsEOF) { cout<<"---------------------------------"< cout<<"该账号不存在,请重新输入"< cin>>number; sql="select id from user_bank_info where id ='"+number+"'"; rs=db.JExecuteWithRecordset(sql); } cout<<"---------------------------------"< string sql2="select name from user_bank_info where id ='"+number+"'"; RECORDSET rs2=db.JExecuteWithRecordset(sql2); user_name =db.GetTextFiledVal(rs2,"name"); cout<<"请输入取款金额:"< string cash; cin>>cash; string sql3="update user_bank_info set blance=blance-"+cash+" where id ='"+number+"'"; long rs3=db.JExecuteWithoutRecordset(sql3);//主要用于增删改 if(rs3>0) { cout<<"&&&&&&&&&&&&&交易成功!&&&&&&&&&&&&&&&&"< } else { cout<<"&&&&&&&&&&&&&余额不足!&&&&&&&&&&&&&&&"< } take_state = "取款"; string sql4="insert into record values('"+number+"','"+user_name+"','"+take_state+"', '"+cash+"','"+time2+"') ";//将信息插入到record表 RECORDSET rs4=db.JExecuteWithRecordset(sql4); long status=db.JExecuteWithoutRecordset(sql4); if(status>0) { cout<<"……………………………………………"< cout<<"取款记录添加成功!"< } else { cout<<"………………………………………………"< cout<<"取款记录添加失败!"< } return 0; db.Close(); menu1(); } int ATM::interfac()//登陆 { HRESULT hr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库 cout<<"请输入您的卡号:"; string user_number; cin>>user_number; string sql="select id from user_bank_info where id ='"+user_number+"'"; RECORDSET rs=db.JExecuteWithRecordset(sql);//主要用于查询和链接 while(rs->rsEOF) { cout<<"---------------------------------"< cout<<"该账号不存在,请重新输入"< cin>>user_number; sql="select id from user_bank_info where id ='"+user_number+"'"; rs=db.JExecuteWithRecordset(sql); } cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"< cout<<"请输入您的密码:"; string user_password ; cin>>user_password; string sql1="select passwd from user_bank_info where id ='"+user_number+"' and passwd='"+user_password+"'"; RECORDSET rs1=db.JExecuteWithRecordset(sql1); while(rs1->rsEOF) { cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"< cout<<"密码错误,请重新输入:"; cin>>user_password; sql1="select password from user_bank_info where id ='"+user_number+"' and passwd='"+user_password+"'"; rs1=db.JExecuteWithRecordset(sql1); } cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"< cout<<"登陆成功!"< db.Close(); return 1; } 2.2 主控模块实现 void main() { HRESULT hr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库 if(hr==-1) { cout< } cout<<"\t\t\t\t欢迎使用ATM机 "< int flag = 0;//记录登陆状态 ATM atm; flag = atm.interfac(); if(flag = 1) { while(1) { int index=atm.menu1(); switch(index) { case 1: atm.withdraw();break;//取款 case 2: atm.zhuan();break; case 3: atm.balance();break; case 4: atm.record_info();break; case 5: exit(0); } } } } 2.3 效果展示 3项目总结 在实验开始时,很迷茫,不知道如何下手,老师发的例子也不理解,看了几遍还是不清楚,不知如何把数据写进数据库?看了同学的代码,似乎有点理解,和合作的同学一起构造思路,询问班里的学霸,一点点改错,增加功能,每写一个功能就测试下,花了很多时间,但是能把项目做出来还是很欣慰的。 在这次试验,在数据库连接上花了一定时间,可能是SQL没有安装好的原因,一直连接不上,对此都快吐血了,然后借了别的宿舍的电脑才成功连接上。 通过这次试验,让我懂得了,不懂要多多询问,充分理解过程,理清思路,写代码前的设计也是很重要的,敲代码的过程中也要仔细认真,不得马虎。再者是合作也是很重要的,能节省很多时间,事半功倍。 指导教师评语: 实验成绩_______________ 指导教师_______________ 竭诚为您提供优质文档/双击可除 课程设计实验报告 篇一:课程设计(综合实验)报告格式 课程设计报告 (20XX--20XX年度第一学期) 名称:题目:院系:班级:学号:学生姓名:指导教师:设计周数: 成绩:日期:《软件设计与实践》课程设计计算机系软件设计与实践教学组 20XX年1月14 日 《软件设计与实践》课程设计 任务书 一、目的与要求 1.了解网络爬虫的架构和工作原理,实现网络爬虫的基本框架;2.开发平台采用JDK1.60eclipse集成开发环境。 二、主要内容 1.了解网络爬虫的构架,熟悉网页抓取的整个流程。 2.学习宽度优先和深度优先算法,实现宽度crawler应用程序的编写、调试和运行。 3.学习主题爬行及内容分析技术。 4.实现网络爬虫的基本框架。 三、进度计划 四、设计成果要求 1.要求按时按量完成所规定的实验内容; 2.界面设计要求友好、灵活、易操作、通用性强、具有实用性; 3.基本掌握所采用的开发平台。五、考核方式 平时成绩+验收+实验报告。 学生姓名:于兴隆指导教师:王蓝婧20XX年1月2日 一、课程设计的目的与要求1.目的: 1.1掌握crawler的工作原理及实现方法;1.2了解爬虫架构; 1.3熟悉网页抓取的整个流程及操作步骤; 1.4掌握宽度优先,深度优先算法,并实现宽度crawler 应用程序的编写、调试和运行;1.5掌握主题爬行及内容分析技术;1.6实现一个最基础的主题爬虫的过程;1.7理解pageRank算法,并编程验证;二、设计正文 网络爬虫研究与应用 [摘要]:本文通过对网络爬虫研究的逐步展开,讨论了爬虫的相关概念与技术,并通过实验设计了简单的基于宽度 辽宁科技大学课程设计说明书 设计题目:基于C#的贪吃蛇游戏 学院、系:装备制造学院 专业班级:计算机科学与技术 学生姓名:叶佳佳 指导教师:丁宁 成绩: 2015年12月12日 目录 一、概述 (1) 1、用C#实现该设计的方法 (1) 2、贪吃蛇游戏说明 (1) 二、实验目的及设计要求 (1) 1、实验目的 (1) 2、实验要求 (2) 三、课程设计具体实现 (2) 1、概要设计 (2) 1.1、设计思想 (2) 1.2、主模块实现 (2) 1.3、主函数流程图 (4) 2、详细设计 (5) 2.1、设计思想 (5) 2.2、具体模块实现: (5) 四、调试过程及运行结果 (10) 1、调试过程 (10) 2、实验结果 (11) 五、实验心得 (12) 六、参考资料 (13) 七、附录:源代码 (13) 一、概述 1、用C#实现该设计的方法 首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图。流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。此外,流程图应容易转换成代码。 根据流程图编写好代码后在WindowsXP操作系统,https://www.360docs.net/doc/357689205.html,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。 2、贪吃蛇游戏说明 游戏操作要尽可能的简单,界面要尽可能的美观。 编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。游戏结束时输出相应得分。 具体要求有以下几点: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; (2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面; (3)说明书、流程图要清楚; 二、实验目的及设计要求 1、实验目的 .NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握; 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 1 实 验 报 告 课程名称 计算机网络 实验名称 网络协议分析 系别 专业班级 指导教师 学号 姓名 实验日期 实验成绩 一、实验目的 掌握常用的抓包软件,了解ARP 、ICMP 、IP 、TCP 、UDP 协议的结构。 二、实验环境 1.虚拟机(VMWare 或Microsoft Virtual PC )、Windows 2003 Server 。 2.实验室局域网,WindowsXP 三、实验学时 2学时,必做实验。 四、实验内容 注意:若是实验环境1,则配置客户机A 的IP 地址:192.168.11.X/24,X 为学生座号;另一台客户机B 的IP 地址:192.168.11.(X+100)。在客户机A 上安装EtherPeek (或者sniffer pro )协议分析软件。若是实验环境2则根据当前主机A 的地址,找一台当前在线主机B 完成。 1、从客户机A ping 客户机B ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析ARP 协议; 2、从客户机A ping 客户机B ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析icmp 协议和ip 协议; 3、客户机A 上访问 https://www.360docs.net/doc/357689205.html, ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析TCP 和UDP 协议; 五、实验步骤和截图(并填表) 1、分析arp 协议,填写下表 客户机B 客户机A 2、分析icmp协议和ip协议,分别填写下表 表一:ICMP报文分析 3、分析TCP和UDP 协议,分别填写下表 西安文理学院信息工程学院课程设计报告 设计名称:数据结构课程设计 设计题目:实现一个N*M的扫雷游戏 学生学号:1402130407 专业班级:软件13级四班 学生姓名:樊秀琳 学生成绩: 指导教师(职称):谢巧玲(讲师) 课题工作时间:2015.6.22 至2015.7.3 说明: 1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个 学生。 2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。 3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律 按不及格处理。答辩由指导教师实施。 4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设 计的情况另行规定。 5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按 不及格处理。 信息工程学院课程设计任务书 指导教师:院长: 日期:2015年6月22日 信息工程学院课程设计进度安排表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班 指导教师签名: 2014年6月22日 成绩评定表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班 摘要 摘要: 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。扫雷游戏是比较经典的一款小游戏,实现它的方法很多,可以用很多不同算法设计和语言实现,如C,C++,VB,JAVA等。我利用eclipse编写了与它功能相似的扫雷游戏,寓学于乐。 程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的笑脸可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时提示游戏失败。其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了进行该游戏课程设计的目的,然后是任务描述和设计的相关要求,最后是最重要的需求分析和设计方案。重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解用户的意图,进而做出相对应的动作。清除未靠近地雷区的方块较为复杂。 关键词:算法设计;事件;Eclipse 网页制作课程设计报告 学院: 专业班级: 姓名: 学号: 成绩: 阅卷教师: 目录 1.设计目的 (1) 2.设计思想 (1) 2.1网站整体结构规划思想 (1) 2.2 主页设计思想 (1) 2.3子页的设计思想 (1) 3网页详细设计分析 (1) 4结论 (2) 1.设计目的 阐述该个人网站的设计意图和创意,简单介绍自己的个人网站。 2.设计思想 阐述网站的整体设计思想,包括: 2.1网站整体结构规划思想 要求阐述网站整体结构的选择、设计的思想,绘制网站结构草图。 2.2 主页设计思想 要求对主页的布局思路进行阐述和分析。 2.3子页的设计思想 要求对子页的设计以及网页对象的选取思路进行阐述和分析。 3网页详细设计分析 要求选取一张网页,对网页的设计实现过程进行阐述和分析,详细说明制作该网页的步骤,所使用的网页对象以及该网页对象的操作方法。 4结论 对整个设计报告做归纳性总结,并分析设计过程中的困难及如何解决的,最后提出展望。 一、设计目的 本课程的设计目的是通过实践使同学们经历Dreamweaver cs3开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。结合具体的开发案例,理解并初步掌握运用Dreamweaver cs3可视化开发工具进行网页开发的方法;了解网页设计制作过程。通过设计达到掌握网页设计、制作的技巧。了解和熟悉网页设计的基础知识和实现技巧。根据题目的要求,给出网页设计方案,可以按要求,利用合适图文素材设计制作符合要求的网页设计作品。熟练掌握Photoshop cs3、Dreamweaver cs3等软件的的操作和应用。增强动手实践能力,进一步加强自身综合素 vf 课程设计实验报告模板 经济管理学院 学生信息管理系统的设计与实现 09年12 月28 日 、课程设计的目的和意义 当今,人类正在步入一个以智力资源的占有和配置,知识生产、分配和使用为最重要因素的知识经济时代,为了适应知识经济时代发展的需要,大力推动信息产业的发展,我们通过对学生信息管理系统的设计,来提高学生的操作能力,及对理论知识的实践能力,从而提高学生的基本素质,使其能更好的满足社会需求。 学生信息管理系统是一个简单实用的系统,它是学校进行学生管理的好帮手。 此软件功能齐全,设计合理,使用方便,适合各种学校对繁杂的学生信息进行统筹管理,具有严格的系统使用权限管理,具有完善的管理功能,强大的查询功能。它可以融入学校的信息管理系统中,不仅方便了学生信息各方面的管理,同时也为教师的管理带来了极大地便利。 我们进行本次课程设计的主要目的是通过上机实践操作,熟练掌握数据库的设 计、表单的设计、表单与数据库的连接、SQL语言的使用和了解它的功能:数据定 义、数据操纵、数据控制,以及简单VF程序的编写。基本实现学生信息的管理, 包括系统的登录、学生信息的录入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除,并对Visual FoxPro6.0 的各种功能有进一步的了解,为我们更进一步深入的学习奠定基础,并在实践中提高我们的实际应用能力,为我们以后的学习和工作提供方便,使我们更容易融入当今社会,顺应知识经济发展的趋势。 - 1 - 、系统功能设计 通过该系统可以基本实现学生信息的管理,包括系统的登录、学生信息的录 入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除。系统 功能模块如下图所示。 学生信息管理系统主界面 登录 管理 学学学学学 生生生生生 信信信信信 息息息息息 录查浏修删 入询览改除 三、系统设计内容及步骤 3.1创建项目管理文件 1.启动foxpro 系统,建一个项目管理器,命名为“学生管理”。 哑 目f ■ 也 电 岂同左 矣 氏H. 0 存 JI 蛋誤曾 编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 网络协议分析与仿真课程设计预习报告 甲方:___________________ 乙方:___________________ 日期:___________________ (计算机学院) 网络协议分析与仿真课程设计 预习报告 专业名称:__________ 网络工程_________________ 班级:_______________________________________ 学生姓名:____________________________________ 学号(8位): ________________________________ 指导教师:____________________________________ 设计起止时间:2013年12月2日一2013年12月13日 题目一网络流量分析 一、课程设计目的 里加深对IP、DNS、TCR UDP、HTTP等协议的理解; 里掌握流量分析工具的使用,学习基本的流量分析方法。 二、课程设计地点及时间 二号实验楼442网络实验室,12月2日至12月6日,每天8: 00-14: 00 三、课程设计实验条件 工具:Wireshark (Windows 或Linux), tcpdump (Linux) 要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议用perl)。 内容:Web流量分析 四、课程设计原理 1、DNS域名解析:首先,客户端的应用层会封装数据到达传输层,在传输层标识源端口号 与目的端口号(源端口号为大于1023随机,目的端口号为UDP5狒口)及应用层服务(这 里因该是请求DN硒询服务吧)。传输层封装数据产生数据段传给网络层,在网络层标识源IP地址及目的IP地址(源IP地址为客户端IP ,目的IP地址为DNS服务器IP地址),网络层将数据段封装为数据包传给数据链路层,在数据链路层将会在数据包里加入源MACM址及目的MA砸址(源MACM址为客户端网卡MA弛址,目的MAC%址为DNS服务器MACM址),这里应该查询MA或存。数据链路层根据客户端与DNS服务器之间的链路,将数据包封装成 帧,传给物理层。物理层会将数据帧转化为电信号放到物理介质上。 电信号到达DNS服务器后会从物理层到达应用层(这里和客户端发送数据差不多,只不过这 个过程变成了解封装),DNS服务器做完域名解析后再将数据传给客户端,传输过程同客户端发送数据。 2、建立TCP/IP连接:客户端知道WE囹艮务器IP地址之后,在网络层产生建立TCP/IP三次握手的数据包(TCP/IP三次握手:客户端向服务器端发送SYN信息,服务器端收到SYN信 息后回复给客户端SYN+AC褊认信息,客户端收到确认信息后再向服务器发送ACK信息建立 连接),应用层标识HTTP服务将数据发送到传输层,传输层将数据+源端口号(大于1023)、目的端口号(80)+上层服务WW如装为数据段传给网路层。网络层将数据段+源ip与目的 ip (WW服务器的ip地址)封装为数据包发送到数据链路层。数据链路层参照ARP缓存表确定源MAC%址(本机MACM址)及目的MACM址(客户端与路由B相连端口的MACM址)将数据包封装成数据帧。这里还需要CR破验。。。。。。数据帧到达物理层后变成电信号发送 到介质上(这里还需要访问控制方法DSMA/CD 路由B收到电信号后传给路由器的数据链路层,这里还需要CRC,FC眼验。。。…确定数据 帧没有损坏后查看目的MACM址与路由器端口地址是否相同,如果相同将解封装,将数据包 发送到路由器B的物理层,路由器查看路由表确定数据包的转发端口,路由器B确定与路由 A之间的链路,创建帧。 路由B与路由A可以看成是点对点,即路由B将创建PPP帧。路由A收到电信号后,确定帧的完整性,如果完整即将数据帧解封装发送到网络层,路由A查询路由表将数据包转发到与WEBf连的路由端口。 路由A的数据链路层将查询ARP缓存表确定WW服务器的MACM址,路由A将创建源MAC 地址 Web应用开发技术 实验报告 专业:计算机科学与技术 班级: 学号: 姓名: 一、设计题目 个人网站 二、目的 1、本次设计是学生在学完ASP动态网站开发课程后的一次实践性很强的课程设计,是对ASP进行动态网站开发所学知识的综合运用。 2、掌握使用ASP技术进行网站开发设计。 3、通过本次实习,使学生加深所学知识内容的理解,并能积极地调动学生的学习兴趣,结合实际应用操作环境,真正做到理论与实际相结合。 三、功能需求描述 此网站可以对主人留言,来发表自己的心情,也可以把自己的联系方式写入其中,达到和睦相处、心灵的驿站的目的等。 四、总体设计 五、详细设计 (一)、我的主页 此页面为网站的主页,通过发布新心情,点击通讯录可以查看通讯录好友信息,点击留言板可以查看好友留言。 主要代码: 课程设计实验报告
贪吃蛇游戏课程设计实验报告全解
网络协议分析实验报告
扫雷的课程设计报告
网页制作课程设计报告
vf课程设计实验报告模板
网络协议分析与仿真课程设计预习报告
WEB个人主页课程设计