学生网上选课系统设计与实现大学学位论文

上传人:无*** 文档编号:226560694 上传时间:2023-08-07 格式:DOC 页数:36 大小:1.38MB
收藏 版权申诉 举报 下载
学生网上选课系统设计与实现大学学位论文_第1页
第1页 / 共36页
学生网上选课系统设计与实现大学学位论文_第2页
第2页 / 共36页
学生网上选课系统设计与实现大学学位论文_第3页
第3页 / 共36页
资源描述:

《学生网上选课系统设计与实现大学学位论文》由会员分享,可在线阅读,更多相关《学生网上选课系统设计与实现大学学位论文(36页珍藏版)》请在装配图网上搜索。

1、陕西理工学院毕业设计 题 目 学生网上选课系统设计与实现 学生姓名 刘渴娜 学号 1118014093 所在学院 数学与计算机科学技术学院 专业班级 计算机科学与技术1103班 指导教师 李军 完成地点 陕西理工学院 2015年 6月1日本科毕业设计任务书 院(系) 数学与计算机科学学院 专业班级 计算机科学与技术(计算机1103) 学生姓名刘渴娜 一、毕业设计题目 学生网上选课系统设计与实现 二、毕业设计工作自 2014 年 11 月_ 27_日 起至 2015 年 6 月 10 日止三、毕业设计进行地点: 陕西理工学院 四、毕业设计内容要求:随着网络的快速发展和学校招生规模的不断扩大,多校

2、区并存的局面越来越多,为了方便学生在不同校区选课,学校有效组织选课、充分利用学校的网络资源、课程资源以及教师资源,建设一个网上选课系统已必不可少。选课系统建设要实现以下4大功能:(1)课程资源以及教师资源管理(2)集成学生资源管理(3)选课管理(4)教学班级编制 开题时间:2015年3月15日,并于此前提交开题报告课题完成时间:2015年5月30日 答辩时间:2015年6月10前 指 导 教 师 系(教 研 室) 计算机工程教研室 系(教研室)主任签名 批准日期 2015-01-05 接受设计任务开始执行日期 2015-03-01 学生签名 刘渴娜 学生网上选课系统设计与实现刘渴娜(陕西理工数

3、学与计算机科学学院计算机科学与技术专业1103班, 陕西 汉中 723000)指导教师:李军摘要学生网上选课系统就是为了选课管理工作规范化、系统化而设计。系统实现了对教师、学生、课程、教学单位基本信息的管理。对学生角色提供个人信息查看,选课以及查看选课公告的功能;对教师提供查看任课的课程表和选课学生信息情况,教师个人基本信息和发布公告;提供给管理员查看所有课程、学生、教师的信息并可以对它们进行管理。关键词选课系统;课程信息发布; MyEclipse 8.5;JSPThe Design of Student Course SelectionSystemLiu Kena(Grade 11, Cla

4、ss 03, Major Computer Science and Technology, School of Mathematics and ComputerScience. Shannxi University of Technology, Hanzhong 723000, Shaanxi)Tutor: Li JunAbstract:The system of onlinecourseselection was aimed to standardization and systematization of curriculum management. It has realized to

5、manage teachers, students, curriculum and teaching department. It provided the functions of personal information view, choosing course as well as the announcements view for students. For teachers, it provided the functions to check the course schedule he teach, to view the information of student sel

6、ecting course, to issues and view announcements. For administrator, it provided functions to manage all courses, students, and teachers information.Keyword:System of course selection; Course information release; MyEclipse 8.5; The JSP 目录1引言12需求分析22.1系统的功能描述22.1.1管理员功能模块22.1.2教师功能模块22.1.3学生功能模块22.2可行

7、性分析23系统总体设计43.1该系统总的模块结构图43.2网上选课系统业务图43.2.1 用户登录流程图53.2.2用户修改密码流程图53.2.3 管理员添加课程选流程图63.2.4学生选课流程图63.2.5学生退选流程图74数据库设计84.1数据库物理结构设计84.2实体E-R图84.2.1 学生表E-R图94.2.2 教师表E-R图94.2.3 课程信息信息表E-R图104.2.4排课表E-R图104.3数据库表115系统测试145.1网上选课系统测试145.2测试中的问题145.3测试截图155.4测试报告176总结18致 谢19参考文献20科技外文文献21附 录A:源程序代码27附 录

8、B:系统使用说明311引言我国高校都实行学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。学生选课时的制约因素比较复杂,工作量大,还要解决许多冲突与矛盾。如果单独靠手工完成,则会增加很大的难度。使用计算机辅助选课,则大大减轻了管理人员的工作强度,提高了工作效率。随着网络的发展,web型软件逐渐成为社会主流。网上选课系统发展也会更好。一方面,在各个高校网上选课系统日趋开放,得到了用户的好评。其次,与学校的其他有关系统有机结合,这不仅是数据交换层面的结合,还包括用户统一的门户界面,统一身份验证和授权等一系列问题。最后,高校的人数逐渐增加,各高校彻底放弃了传统的手工方式和客户端方式,应用

9、流行的web方式,这就为网上选课系统垫定了好的基础。2需求分析2.1系统的功能描述 学生网上选课系统实现了对教师、学生、课程、学院的基本信息的管理。系统对学生角色提供个人信息查看,选课管理以及查看选课公告的功能;对教师提供查看自己所担任课程的课程表和选该门课程的学生信息情况,及个人基本信息和选课公告的查看;提供给管理员以下功能:查看所有课程、学生、教师的信息并可以对它们进行管理,以及实现选课公告的发布并修改。 2.1.1管理员功能模块此模块包括用户信息管理、课程信息管理、学院信息管理、选课公告管理四个部分。1)用户管理:此模块包括学生信息管理、教师信息管理、管理员信息管理。 、学生信息管理:对

10、学生的基本信息的添加、修改和删除。、教师信息管理:对教师的基本信息的添加、修改和删除。 、管理员信息管理:对管理员的添加、修改和删除。2)课程信息管理:此模块包括课程信息管理和排课信息管理。 、课程信息管理:对课程的基本信息的添加、修改和删除。、排课信息管理:对排课的基本信息的添加、修改和删除。3)学院信息管理:此模块包括学校中学生所在院系信息的管理、所在专业信息的管理、班级信息的管理。 、院系信息管理:对院系的添加、修改和删除。 、专业信息管理:对专业的添加、修改和删除。 、班级信息管理:对班级的添加、修改和删除。4)选课公告管理:此模块是对选课公告信息的管理,添加选课公告是为了学生更好的选

11、课。2.1.2教师功能模块此模块包个人信息管理、选课公告管理、课程信息管理四个部分1) 人信息管理:此模块是教师对自己的基本信息进行修改,但是教师职工编号案例不能修改。 只能是管理员修改。2) 选课公告管理:查看选课公告信息,为了更好的了解选课。3) 课程信息管理:课程信息、排课信息及学生的选课信息。 、课程信息:查看课程信息。、排课信息:查看排课情况,了解自己的上课时间。 、选课信息:查看选择自己课程的学生基本信息。2.1.3学生功能模块此模块包括个人信息、选课公告和选课三个部分。 1) 个人信息:学生对自己的基本信息的修改,仅限于基本信息,如名字、手机号、住址等。2) 选课公告:学生查看选

12、课公告,以便于更好的完成选课,以及在规定时间内完成。3)选课:学生选择课程及时间,一门课程选定后不能重复选择。在一定时间内可以删除所 选的课程。2.2可行性分析随着互联网的蓬勃发展,越来越多的机构将科研管理与Internet融合到一起,以方便各个高校管理。在这样的社会背景下,基于MyEclipse和MySQL,运用先进的JSP技术,采用B/S模式开发的学生网上选课系统,将学生、老师、管理员、有机地结合在一起,有效地提高管理水平和效率。本系统是在MyEclipse平台,以Tomcat6.0为服务,采用JSP+MySql来实现,以现今较为流行的DIV+CSS模式进行页面规划和布局,以MVC的设计模

13、型,以JavaScript作为客户端脚本语言。主要应用于全国各个高校。 MyEclipse:它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持html、Struts、JSP、CSS、Javascript、SQL。 JSP:是由SUN公司倡导、许多公司参与一起建立的一种动态网页技术标准,它是在传统的网页HTML文件中插入Java程序段和JSP标记从而形成JSP文件,跨平台操作。MySQL:是一个小型关系型数据库管理系统。CSS:是一组格式设置规则,用于控制Web页面的外观。Javascript:是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,Javas

14、cript使网页增加互动性。3系统总体设计3.1该系统总的模块结构图该系统总体分为三个模块,管理员,教师和学生登录模块。他们代表着三种登录身份,不同的身份登录到的界面不同,即对应的功能也不同。图3.1 系统模块图3.2网上选课系统业务图学生网上选课系统主要实现选课功能,管理员具有增加、删除课表的功能。学生有选课课程和退选的功能,教师有查看课表和查看所选学生的基本信息。图3.2 系统业务图3.2.1 用户登录流程图 不同的用户登录时,系统会根据登录者的身份及数据库中存在的用户信息,判断登录者是否登录成功及其对应的界面。 图3.3 登录流程图3.2.2用户修改密码流程图 用户(学生和教师)有可能会

15、忘记密码,这时点击登录界面的忘记密码,用户需要输入密码提示问题及答案才能进行修改密码。 图3.4 修改密码流程图3.2.3 管理员添加课程选流程图课程的添加是管理员才能拥有的功能,下面图是管理员添加课程的流程图。图3.5 课程添加流程图3.2.4学生选课流程图每个学生可以根据自身的时间进行选课,同样的可以根据自己喜欢的教师而选课。这样能提高上课效率。但是每一门课程,每个学生只能选择一名教师上课,这样是为了防止上课进度不一致。图3.6 选课流程图3.2.5学生退选流程图学生有选课的权力,当然也有退选的功能。但是要符合学校退选要求,这样为的是能让每个学生都能更好的选课。图3.7 退选流程图4数据库

16、设计4.1数据库物理结构设计学生网上选课系统需要三种登录身份,管理员、教师和学生。管理员又有管理课程、课程表、学院、专业、班级、教师、学生、选课公告信息。学生只有选课和查看选课公告的功能。教师可以查看选课信息、课程安排和查看选课公告的功能。综上分析可以得出,学生网上选课的物理结构如下:管理员(管理员ID、管理员名字、管理员密码)教师(教师ID、职工编号、教师名、密码、密码提示问题、答案、教师职称、电话)学生(学生ID、学号、姓名、密码、密码提示问题、答案、性别、年龄、家庭地址、学院、专 业、班级)学院(学院ID、学院名)专业(专业ID、专业名、学院ID)班级(班级ID、班级名、学院ID、专业I

17、D)课程(课程ID、科目名称,方式、学分、学时、属性)排课(排课ID、星期、节数、教室、课程ID、教师ID)选课(选课ID、学生ID)4.2实体E-R图 图4.1 系总体E-R图4.2.1 学生表E-R图用户表的字段包括学生ID,学号,名字,密码、密码提示问题、答案、年龄,身份证号,电话号,地址,学院,专业,班级,如图4.2所示:图4.2 学生表E-R图4.2.2 教师表E-R图教师表的字段包括学生ID,工号,名字,密码、密码提示问题、答案、年龄,身份证号,电话号,地址,如图4.3所示:图4.3 教师E-R图4.2.3 课程信息表E-R图课程信息表记录了课程的编号(主键)、课程名称、等信息,设

18、置课程编号为该表主键,课程信息实体,如4.4图所示:图4.4 课程信息E-R图4.2.4排课表E-R图排课信息表记录了排课的编号、可选人数、已选人数、设置排课编号为该表主键,课程编号,教师编号为外键,如4.5图所示:图4.5 排课信息E-R图4.3数据库表数据库逻辑结构设计数据库的逻辑设计即是表结构和表关系的设计,这里同时给出表中的样例数据。(1)学生表该表用于储存所有学生的基本信息,如表4.1。表4.1 学生信息表字段名字段类型字段大小主键外键可空否备注sidInt11YN用户IDxuehaovarchar225N学号snamevarchar225N姓名spasswordvarchar225

19、N密码squestionvarchar225N密码提示问题sanswervarchar225N答案ssexvarchar225Y性别saddressvarchar225Y家庭住址syuanxi_idInt11YN所在学院szhuanye_idInt11YN所在专业Sclas_idInt11 YN所在班级stelvarchar225Y手机号ssfzvarchar225Y身份证号(2)教师表 该表用于储存所有教师的基本信息,如表4.2。 表4.2 教师信息表字段名字段类型字段大小主键外键可空否备注tidint11YN教师IDtgonghaovarchar225N职工编号tnamevarchar22

20、5N姓名tpasswordvarchar225N密码tquestionvarchar225N密码提示问题tanswervarchar225N答案kecheng_idvarchar225YN主教课程ttelvarchar11Y手机号(3)管理员信息表该表用于储存管理员的信息,如表4.3。表 4.3 管理员信息表字段名字段类型字段大小主键外键可空否备注idint11YNIDnamevarchar40N姓名passwordvarchar40N密码(4)课程信息表该表用于储存所有课程的信息,如表4.4。表4.4课程信息表字段名字段类型字段大小主键外键可空否备注idint11YN课程IDnamevarc

21、har225N课程名fangshivarchar225N方式xuefenint11N学分hourint11N学时shuxingvarchar225N属性(5)排课表该表用于管理员对课程进行排课安排,如表4.5。表 4.5 排课信息表字段名字段类型字段大小主键外键可空否备注idint11YN排课IDkecheng_idint11YN课程IDteacher_idint11YN教师IDxingqi varchar225N星期jieshuvarchar225N节数jiaoshivarchar225N教室 (6)选课表 该表用于存储选课信息,如表4.6。 表 4.6选课信息表字段名字段类型字段大小主键外

22、键可空否备注idint11YN选课IDpaike_idint11YN课表ID user_sidint11YN学生ID(7)公告表该表用于管理员对选课公告的管理,如表4.7。表4.7 选课公告信息表字段名字段类型字段大小主键外键可空否备注idint11YN公告ID biaotivarchar11N标题leibievarchar11N类别photovarchar225N 图片datatext0N公告内容personvarchar225N发布人(8)院系表该表用于管理员对学校各个院系的管理,如表4.8。表4.8 院系信息表字段名字段类型字段大小主键外键可空否备注Idint11YN学院编码Nameva

23、rchar225N学院名称(9)专业表该表用于管理员对学校各个学院的各个专业的管理,如表4.9。表4.9专业信息表字段名字段类型字段大小主键外键可空否备注Idint11YN专业编码Namevarchar225N专业名称xueyuan_idint11YN所在学院编码 (10)班级表该表用于管理员对学校各个学院的各个专业的不同班级的管理,如表4.10。表4.10班级信息表字段名字段类型字段大小主键外键可空否备注Idint11YN班级IDBianmaint11YN班级编码Nameint11YN班级名称Countvarchar225N人数xueyuan_idvarchar225N所在学院编码 Zhua

24、nye_idvarchar225N所在专业编码5系统测试5.1网上选课系统测试 网上选课系统测试案例,如表5.1。 表5.1 测试表项目软件JAVA学生考试系统程序版本1.0功能模块Login编制人刘渴娜功能特性用户身份验证测试目的验证是否输入合法的信息,允许合法登陆,阻止非法登陆测试数据用户名=admin 密码=admin 操作步骤操作描述数据期望结果实际结果测试状态1输入用户名称,按“登陆”按钮。用户名=admin,密码为空显示警告信息“密码不能为空”显示密码不能为空正确2输入密码,按“登陆”按钮。用户名为空,密码=admin显示警告信息“用户名不能为空”显示警告信息“用户名不能为空”正确

25、3输入用户名和密码,按“登陆”按钮。用户名=admin,密码=1234显示警告信息“密码错误”显示警告信息“密码错误”正确4输入名和密码,按“登陆”按钮。用户名=1234,密码=admin显示警告信息“用户名不存在”显示警告信息“用户名不存在”正确5输入用户名和密码,按“登陆”按钮。用户名=admin,密码=admin进入系统主页面进入系统主页面正确测试人员刘渴娜开发人员刘渴娜项目负责人刘渴娜5.2测试中的问题存在以下问题:第一,在Windows7的操作系统上数据库链接在MyEclipes的低版本中存在不能正常运行的状况;第二,在上传选课公告的图片时只能对jpg的图片进行上传,而对于其他类型的

26、图片不能正常上传;第三,在验证用户名和密码时没有在最开始进行提醒,只有当输入错误时才进行显示,对密码显示是明文的,没有进行加密,对于后台的数据库来讲是十分不安全的。解决方案:第一,对于在Win7操作系统上的数据库与Myeclipes的链接,是因为,Myeclipes的版本太低需要对Myeclipes进行及时的更新,才能获取到后台的数据库;第二,对于图片的上传,需要对文件的格式不对其进行限制,需要掌握熟练地上传文件的识。第三,在数据库加密是需要使用哈希函数的MD5加密技术对后台数据库进行加密和解密,还有在前台页面的密码显示上需要进行加密,这样不仅增加了后台数据库的安全性,以至于不被盗取数据,更增

27、加了系统的安全性问题。5.3测试截图(1)用户登录界面 图5.1 用户登录界面(2)管理员登录成功界面图5.2 管理员登录成功的界面(3)课程表的安排界面 图5.3 排课的添加(4)学生登录成功界面图5.4 学生登录成功页面(5)学生选课的界面图5.5 学生选课的界面 图5.6 学生选课界面图5.7 学生退选界面(6)教师登录成功的界面图5.8 教师登录成功的界面(7)教师查看已选学生信息 教师只能查看选择自己课程学生的信息列表。图5.9 查看已选学生的界面5.4测试报告本次测试中,我采用了黑盒技术对进销存系统的登陆模块进行了详细的测试,其中在测试中采用的测试用例为:用户名=admin/123

28、4 密码=admin/1234期望得到的结果为:1)密码不能为空。2)用户名不能为空。3)密码错误4)用户名不存在实际测试过程中得到的结果:1密码不能为空。2.用户名不能为空3.密码错误4.用户名不存在与期望值偏差:无偏差测试的评定性结论:系统经过多中测试都能很好的正常运行。通过本对系统的全面测试,我学到了许多测试方面的知识,了解到测试方法、测试经验。通过本次设计,使我了解到测试的重要性。通过测试,可以使软件更适合用户的需求,更加稳定、可靠地运行,并能适应市场竞争,应用前景广泛。6总结本系统实现了学生信息管理模块、教师信息管理模块、课程管理模块、选课信息管理、班级管理模块五个模块的设计。在设计

29、与开发过程中遇到了许多技术方面的问题。例如管理员在增加课程安排时要考虑多方面因素,同一个时间点不能有两个老师给同一个班上课,一个老师也不可能在同一个时间在两个班级上课;增加或删除学生的选课时,已选学生要相应的增加;删除一个老师或者学生、课程信息时,对应的其他表中相关的选课信息也应该删除。最终在自己的努力思索和查找相关文件下,出色的完成了本次项目。学生选课系统看似非常简单,其实内部逻辑要求特别严谨,表与表之间存在密不可分的关系,如果改动一张表的数据,则会牵扯其他的表的改动,所以这就要求我们必须要有严谨的需求分析。完成了本次项目,我学会了许多处理、解决问题的方法,大大提高了自己的动手能力,为以后走

30、上工作岗位打下了良好的基础。第 31 页 共31页致 谢本次毕业设计是在李军老师的精心指导下完成的,从最初的系统可行性的分析,包括系统的整体设计,系统功能模块的设计,到最终系统的实现的整个阶段,老师给了我很大的指导与帮助,在整个过程中,深深的体会到老师严谨的工作作风、求真务实的科研精神、丰富扎实的专业知识很值得我们学习,在此论文完成之际,向老师表示深深的敬意及最大的感谢。参考文献1石志国,董洁等.JSP应用教程M.北京:清华大学出版社,2004年10月2姜晓铭,刘波等.JSP程序设计精彩实例M.北京:清华大学出版社,2001年6月3张海藩.软件工程导论M. 北京:清华大学出版社,2003年12

31、月4耿祥义,张跃平.JAVA使用教程M.北京:清华大学出版社,2004年2月5萨师煊,王珊.数据库系统概论M.北京:高等教育出版社,2006年5月6唐汉明.深入浅出MySQLM.北京:人民邮电出版社,2010年3月7段晨,刘俊强.课程管理系统发展趋势J.中国远程教育,2004年8月8赵国栋,黄永中.高校课程管理系统的选择策略研究J.中国远程教育,2008年1月9刘燕.基于MVC设计模式的教学门户网站系统J.科技信息,2010年2月10刘长炯.MyEclipse8.5开发中文教程M.北京:新华大学出版社,2009年6月科技外文文献1 Objective-C and CocoaAn initial

32、 distinction should be made : Objective-C is a language, while Cocoa is a set of classes that contribute to native MacOS X programming. Theoretically, it is possible to use Objective-C without Cocoa: there is a gcc front-end. But under MacOS X, both are almost inseparable, as most of the classes sup

33、plied by the language are part of Cocoa.More precisely, Cocoa is the implementation by Apple, for MacOS X, of the OpenStep standard,originally published in 1994. It consists of a developer framework based upon Objective-C. The GNUstep project 6 is another implementation, which is free. Its goal is t

34、o be as portable as possible on most Unix systems, and is still under development.1.1A short history of Objective-CIt is hard to give a precise date of birth for a language, owing to the fact that there is sometime between rst steps, improvements, standardisation and official announcement. However,

35、a rough history is given in Figure 1 to get a quick look at Objective-C amongst its ancestors and“challengers”. Figure 1: Timeline of Java, C, C#, C+ and Objective-CSmalltalk-80 is one the rst “real” object languages. C+ and Objective-Care two different branches that build a superset of the C langua

36、ge. Objective-Cis very close to Smalltalk in terms of syntax and dynamism, while C+ is mu-ch more static, with the goal of having better run-time performance. Java targ-ets a C+ audience, but is also very inspired by Smalltalk for its object mod-el.Thats why, despite this documents title, many refer

37、ences are made toJava.T-heC# language, developed by Microsoft, is a direct challenger to Objective-C.Objective-C+ is a kind of merge between Objective-C and C+. It is alr-eady usable, but some behaviours are still not perfect. The goal of Objective-C+ is to mix up the syntaxes of Objective-C and C+

38、to benet from the best features of both worlds (cf. section 14 on page 64).1.2 Objective-C 2.0The present document has been updated to take in account the new feature-s of Objective-C 2.0,which has been released alongside MacOS X10.5. Those features are deep technical improvements,but the high-level

39、 modications for the developers are easily enumerable. They can now use: a garbage-collector : cf. section 6.6 on page 48; properties : cf. section 12.2 on page 58; fast enumeration : cf. section 11.2.2 on page 55; new keywords optional and required for protocols : cf. section4.4 on page 22; updated

40、 run-time Objective-C library features : cf. section 13.2 on page 63.Each one is detailed in a specic section.2 Syntax overview2.1 KeywordsObjective-C is a superset of the C language. Like with C+, a well-written C program should be compile-able as Objective-C, as long as it is not using some of the

41、 bad practices allowed by C.Objective-C has only added some conceptsand their associated keywords. To avoid conicts, these keywords begin with the (at) character. Here is the (short) exhaustive list: class, interface,implementation, public, private, protected, try, catch, throw, finally, end,protoco

42、l, selector, synchronized, encode, defs (no more documented in 4). Objective-C 2.0 (cf. 1.2 on the preceding page) has added optional, required, property, dynamic,synthesize. Let us alo quote the values nil et Nil, the types id, SEL and BOOL, the Boolean values being YES et NO. At last, a few keword

43、s are available in particular contexts, and are notreserved outside: in, out, inout, bycopy, byref, oneway (they can be met whendening protocols: cf. section 4.4.5 on page 24) and getter, setter, readwrite,readonly, assign, retain, copy,nonatomic (they can be met when dening properties : cf. section

44、 12.2 on page 58). There is an easy confusion between the language keywords and some methods inherited from the root class NSObject (the mother of every class, cf. section 3.1 on page 10). For instance, the similarlooking “keywords” for memory managament, named alloc, retain, release and autorelease

45、,are in fact methods ofNSObject. The words super and self (cf. section 3.3.1 on page 12), could alsobe understood as keywords, but self is in fact a hidden parameter to each method, and super an instruction asking the compiler to use self dierently. However, the confusion between these false keyword

46、s and the true ones will not likely prove problematic in normal use.2.2 CommentsThe comments /* . . . */ and / are allowed.2.3 Mixing up code and declarationsLike in C+, it is possible to insert the declaration of a variable in the middle of a block ofinstructions.2.4 New types and values 2.4.1 BOOL

47、, YES, NOIn C+, the boolean type is bool. In Objective-C, it is BOOL, which can be set to YES or NO. 2.4.2 nil, Nil and idThese three keywords are explained later in the document, but briey: Every object is of type id. This is a tool for weak-typing; nil is the equivalent of NULL for a pointer to an

48、 object. nil and NULL should not beinterchangeable. Nil is the equivalent of nil for a class pointer. In Objective-C, a class is an object (it is theinstance of a meta-class). 2.4.3 SELThe SEL type can store selectors values, which are method identiers unrelated to any class instanceobject. These va

49、lues can be computed by a call to selector. A selector can be used as a kind ofpointer to a method, even if it is not technically a real pointer to a function. See section 3.3.5 onpage 15 for more details. 2.4.4 encodeFor the purpose of interoperability, teh data types in Objective-C, even custom ty

50、pes, and prototypes of functions or methods, can be ASCII-encoded, according to a documented format 4. A call to encode(a type ) returns a C string (char*) representing the type.2.5 Organization of source code: .h and .m les, inclusionLike in C+, it is useful to split the code between interface and

51、implementation for each class.Objective-C uses .h les for headers, and .m les for the code; .mm les are used for Objective-C+(see Section 14 on page 64). Objective-C introduces the #import directive to replace #include.Indeed, every C header should use compilation guards to prevent multiple inclusio

52、ns. This is automatic when using #import. Below is a typical interface/implementation example. The Objective-Csyntax is explained later.2.6 Class names: why NS?In this document, almost all class names begin with NS, like NSObject or NSString. The reasonis simple: they are Cocoa classes, and most Coc

53、oa classes begin with NS since they were initiatedunder NeXTStep.It is a common practice to use a prex to identify the origin of a class.2.7 Differencing functions and methods Objective-C is not a language with “function calls using square brackets”.This would be a legitimate thought when observing

54、code like that : object doSomething;instead ofobject.doSomething();But in fact, Objective-C is a superset of C, so that functions match the same syntax and semantics as C for declaration, implementation and call. On the contrary, methods, which do not exist in C, have a special syntax, which include

55、s square brackets. Moreover, the difference is not only in the syntax, but also the meaning. This is detailed further in Section 3.2 on the next page: this is not a method call, this is sending a message. This is not just a simple academic distinction;it has implications on the mechanism of Objectiv

56、e-C. Even if it isthe same regarding the source code organization, this mechanism allows much more dynamism. For instance, it is compatible with adding a method at run-time (cf. section 13.2 on page 63). The syntax is also more readable, especiallywith nested calls (cf. section 3.3.1 on page 12).中文译

57、文1、Objective-C的语法与Cocoa框架 一个最基本的区别:Objective-C是一种语言,而Cocoa是一种MacOS X的编程框架。从理论上说,在没有Cocoa框架做前端时可以使用objective - c。但在MacOS X,两者基本上是没区别的,大部分的Cocoa框架已经提供的语言的一部分类。 更准确地说:Cocoa框架是实现苹果,对于MacOS X,OpenStep的标准,最早出现于1994年。它由一个开发框架基于objective - c。的GNUstep项目6是另一个实现,它是免费的。其目标是一样便携可能在大多数Unix系统上,至今仍在发展。1.1、 Objective-C的简史很难为一种语言给出一个精确的出生日期,有一些由于事实时间之间的第一步骤,改进,标准化和官方公告。然而,如图1中给出了粗略的历史要快速浏览一下它的祖先和objective - c“挑战者”。 smalltalk - 80是第一个“真正的”对象的语言之一。c+和objective - C是两个不同的分支机构,建立一个C语言的超集。objective - c

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!