您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 软件课程设计指导书2011(JM)
1软件课程设计指导书华中科技大学光电子科学与工程学院徐海峰张南洋生蒋明崔晟2目录第一部分软件课程设计基础知识……...…………………………………….2第二部分总体要求……...…………………………………………….5第三部分设计题目……...…………………………………………….61通讯录管理系统...…………………………………………….62飞机订票系统...…………………………………………….93二叉树的查找...…………………………………………….114HUST学生信息管理系统。...…………………………………………….14第四部分设计示例……...…………………………………………….16第五部分设计报告要求……...…………………………………………….18附录:软件课程设计报告形式………………………………………………………22指导教师联系方式:蒋明:jm_china@263.net徐海峰:harryxhf@sina.com张南洋生:zny371@sina.com崔晟:bitartcs@sina.com3左节点右节点数据第一部分软件课程设计基础知识1、C语言知识点总结C语言的基础,包括变量、程序控制、输入输出、调试环境等。C语言的文件操作知识复习。(详细见参考材料:“C语言程序设计――输入输出和文件系统”)C语言应用程序的一般结构2、数据结构简介数据结构是计算机与信息管理等相关专业的核心课程,是学习软件编程、研读优秀实用代码的基础。涉及如何对数据进行组织、存储和运算,是提高计算(算法)效率的重要手段。二叉树基础:简单的基本数据结构之一,在数据操作方面具有一定优势。二叉树节点的定义:Structtree{charinfo;structtree*left,*right;}3、软件工程简介软件生命周期--定义、开发、维护。详细划分为定义阶段的可行性论证与开发计划、需求分析,开发阶段的概要设计、详细设计和编码,维护阶段的测试、运行维护(6或7阶段)。应用目录结构应用目录子结构应用目录子结构头文件(操作函数)实现文件(功能)实现主文件4第二部分总体要求【设计目的】基于C语言的基础,熟练运用结构体等扩展数据手段,定义应用数据、并进行运用。要求掌握数据的存储结构、数据操作与编程调试的实践要求,完成编程实践的实现、应用方法。【设计要求】根据题目要求及指导内容,独立完成所选的软件设计题目。【进度安排】课程设计分基础讲解、题目选择、编程与调试、报告编写等过程。选择好题目后,前2周完成设计规划及技术准备;后2周完成编程、调试、结果输出,报告编写。【开发环境】C语言集成开发软件:TurboC。BORLANDC++,VISUALC++6.0【评价标准】软件课程设计的评分标准包括中期作业(20%)和最终课程设计报告(80%)两部分。第2周末中期提交内容:课程设计小组成员安排(每个小组最多为2人,需要说明各自在软件设计中的分工),从文件读写数据功能的实现,链表数据结构的实现(选作)。第4周末结题内容:含运行文件,源程序代码、设计报告的电子文档(注意保存到以自己“学号+名字”命名的文件夹,文档以“姓名+软件课程设计报告”命名),设计报告的打印稿。以上两项工作提前完成者可先交给老师。课程设计结束后每个班级学习委员集中收齐电子档以及未提前交的纸质报告,统一放在以自己班级名命名的文件夹内,再提交给老师。提交的课程设计报告,应包括①小组成员组成及分工说明(程序、文档各部分分别由谁完成或共同完成);②概要设计、详细设计说明,程序功能图和流程图等;③程序测试截图及说明;④开发日志及编程体会;⑤程序清单。根据各项表现进行综合评价。1、程序各模块功能图及主要流程图、源程序注释是否标准与完整。2、程序测试结果。3、开发日志,开发体会是否真实、恰如其分。4、是否有算法改进策略及新意。5第三部分设计题目每位同学选择下述任一题目进行设计,每题的要求见下面的具体要求所述。1通讯录管理系统2飞机票销售系统3二叉树的查找4HUST学生成绩管理系统1通讯录管理系统【设计题目】通讯录管理系统【设计目的】利用“结构体”、“数组”、“链表”或“类”、实现通讯录管理系统的数据结构,实现通讯录的按不同“关键字”的排序、查找、加入、删除以及文件加密及存储算法编程。【题目要求】掌握常用的字符串函数使用方法,以及快速排序、查找算法,利用“结构体”、“数组”或“链表”实现联系人信息的表示和相关操作。如果有能力应了解C++面向对象的编程方法,利用“类”的概念实现算法编程(可获得加分)。能够编写DOS下的命令菜单,或在VisualC++环境下应用CDialog类实现Windows下的图形用户界面(GUI)。掌握文件的建立、存储和读取方法,以及一些简单的文件加密和解密算法。【设计内容】1)、结构简介6系统整体结构如下,包括数据输入、数据加密/解密、数据输出、系统维护和编辑检索五大模块。数据输入负责联系人信息的输入。数据加密/解密模块负责联系人信息存储和读取时的加密/解密。数据输出模块负责联系人信息的显示(人数较多时要分页显示)或打印。编辑检索模块负责按不同关键字(如“姓名”,“电话”)的联系人查询,以及对已有联系人信息的修改和编辑。系统维护模块负责用户管理,即用户名、用户密码口令的管理,以及联系人信息文件的备份和恢复,并生成系统的日志文件(记录某某用户在某某时刻登陆进入系统)。2)、功能定义(1)、通讯录中每一联系人信息至少包括姓名,电话,地址/单位,并可进行联系人分类管理,具体分类可以由用户自由定义(如家人、同事、同学、黑名单等等)。(2)、输入功能:可以一次完成若干联系人信息的输入。(3)、排序、查找功能:完成按不同关键字对联系人进行排序和查找的功能,如按姓名、电话号码排序和查找。(4)、显示功能:能够按照一定顺序显示所有符合要求的联系人的信息(如按照姓名的第一个字母顺序显示所有“家人”的信息)。(5)、删除功能:按关键字(如联系人姓名或电话号码)查找并删除联系人。(6)、文件的存储和读取功能:能够将联系人记录以文件的形式存储在硬盘上(如contact.dat),并自动读取或修改。(7)、用户管理功能:用户名,用户密码的管理。用户必须利用秘密登陆后方能看到相关联系人的信息。如果存在多个用户要求各自互不影响,并只能处理和显联系人信息存储文件数据输入数据输出屏幕显示打印报表数据加密/解密系统维护用户管理数据备份数据恢复日志文件编辑检索条件查询编辑修改7示看到自己相关联系人的信息。具体实现可以采用如下方式:首先将用户名和密码记录存储在硬盘一个独立文件中(例如user.dat),并进行加密。用户需要登陆时通过对话框输入其用户名和密码,程序根据此信息自动打开并在文件中进行字符串的比较和查找,以判断是否存在相应记录,如果存在则进入程序并执行各种功能,如果不存在则自动退出程序。注意由于不同用户对应有不同的联系人记录文件(如user1对应联系人记录文件为contact1.dat,user2对应联系人记录文件为contact2.dat等等),程序应根据用户名判断其所对应的联系人记录文件。(8)、文件的加密和解密:用户可以使用系统主菜单中的密码设置功能设置自己的密码,以后启动程序输入正确的秘密后方可看到联系人的相关信息。(9)、数据的备份和恢复:能够对存储文件进行备份,并在不同计算机间转移,恢复联系人信息。具体实现可以采用如下方式:程序设计时应保证用户文件和联系人记录文件存储在应用程序所在目录下,以便不同计算机上的程序都能找到并读取相关文件。(10)、日志文件:日志文件是一个独立的文件,一般可以采用txt文件格式,每次用户登陆时,程序应自动读取计算机当前时间,并以字符串的形式写入日志文件。要求每行只有一个记录,例如:Xxx,2007/8/31,19:20登陆Yyy,2007/8/30,7:20登陆(11)、应提供命令行或图形界面来调用各个功能。3)、数据定义联系人信息(可以增加但不能减少)姓名电话1电话2E-mail地址组别重要级别Xxx8754335513871542345wc@sina.com南五楼314同学/同事/家人/黑名单高/中/低4)、参考算法折半查找、选择排序、冒泡排序等基本算法以及简单的加密算法。82飞机票销售系统【设计题目】飞机票销售系统【设计目的】运用C语言基本知识,结合相关算法思想和数据结构,编写一个单微机系统下运行的飞机票销售系统。以把所学C语言和数据结构知识应用到实际软件开发中去。通过完成本设计,复习C语言的基本知识,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),能够熟练运用结构等高级数据类型以及函数的调用等,掌握数据结构的一些基本算法思想;并通过程序设计和开发过程,掌握中小规模软件设计和开发的方法和步骤。【题目要求】1)、知识点根据题目要求需要设计者掌握以下C语言知识点:(1)C语言基本知识掌握基本数据类型,基本输入输出,控制结构,数组,指针等内容。(2)高级数据类型掌握运用结构,联合等构造数据类型。(3)文件操作掌握二进制文件和文本文件的输入输出,保存,修改等操作。2)、训练内容本课题要求设计实现一个飞机票销售系统。通过模拟售票员使用该飞机票销售系统售票过程,训练采用结构化程序设计方法完成小型软件的开发能力。售票员在该系统辅助下完成售票的过程描述如下:售票员根据旅客要求对航班的信息进行查询,在航班有票的情况下售出机票,并记录机票销售信息到机票销售记录文件;当旅客要求退票时,查询机票销售记录文件,找到需退票的机票记录,完成退票操作。根据上述过程,要求同学们从中提取有意义的销售信息,例如航班信息、旅客个人信息等并采用一定的结构数据类型加以描述并进行处理操作,实现售票过程的模拟。本课题设计分为三个步骤:①结合实际情况收集并设计航班和旅客描述信息;分析模拟售票过程,完成系统功能模块划分,采用C/C++语言编写程序实现飞机票销售系统;对设计过程进行总结,提交最终设计报告和源文件。通过完成系统设计过程应掌握以下知识和技能:①软件设计的基本流程:需求分析、模块功能划分以及数据结构的描述和算法的设计实现;②基于一定数据结构(链表、顺序表等)的查询、插入、删除等操作的实现算法;③通过数据文件(二进制文件或文本文件)实现具有一定数据结构的数据信息的存储方法。程序源文件应书写规范,源程序需加必要的注释,每位同学需提交可独立运行的软件并能完成功能演示;所提交设计报告书,应在格式和内容上符合课程设计的要求。9【设计内容】1)、结构简介根据单微机系统下飞机票销售系统的模拟售票过程,所设计系统应基本具有以下功能模块。如下图1.1所示。飞机票销售系统机票购买机票退购机票信息查询航班信息查询图1.1系统基本结构简图飞机票销售系统应包含航班信息查询、机票购买、机票信息查询和机票退购四个基本模块。2)、功能定义根据利用系统进行飞机票销售的模拟过程,系统模块应分别实现以下功能。(1)航班信息查询:提供航班查询信息输入,如航班号,目的地,起飞时间;利用输入的查询信息在现有的航班信息文件中,查询符合条件的查询信息;显示查询结果在屏幕上,包括该航班机票剩余数目。航班信息数据存储在航班信息数据文件中,数据结构、具体数据结合实际自定,自行设计查询算法。(2)机票购买:根据查询信息,确认是否有票;若有票,输入机票信息需要的旅客资料,如姓名,性别等,生成机票编号;显示待售机票信息;售出机票后,记录机票信息到售出机票数据文件;修改航班信息数据文件中相应航班的机票剩余数目。机票信息数据存储在机票信息数据文件中,数据结构、具体数据结合实际自定。(3)机票信息查询:提供机票查询信息输入,如旅客姓名,机票编号,航班号等;利用查询条件,在机票信息数据文件中查找售出机票信息;显示查询结果在屏幕上。(4)机票退购:根据查询结果,在确认机票退购后,删除机票信息数据文件中的退购机票信息;修改航班信息数据文件中相应航班的机票剩余数目。3)、数据定义根据以上功能说明,飞机票销售系统的包含两个主要数据结构航班信息和机票信息。具体如下。10航班信息主要
本文标题:软件课程设计指导书2011(JM)
链接地址:https://www.777doc.com/doc-2012008 .html