南邮软件设计报告.doc_第1页
南邮软件设计报告.doc_第2页
南邮软件设计报告.doc_第3页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件设计报告 姓名姓名:琳琳 学号:学号:B12060421 2015 年年 5 月月 16 日日2015 年年 6 月月 16 日日 目目 录录 第一章 软件设计介绍1 第二章 软件开发平台简介2 第三章软件设计的内容3 3.1分数统计软件(A1)3 3.1.1 设计题目及要求 3 3.1.2 设计思想及程序流程框图 3 3.1.3 逻辑功能程序 3 3.1.4 结果及完善方向 3 3.2打字软件(A2)3 3.2.1 设计题目及要求 3 3.2.2 设计思想及程序流程框图 3 3.2.3 逻辑功能程序 3 3.2.4 结果及完善方向 3 3.3文本编辑器(A3)3 3.3.1 设计题目及要求 3 3.3.2 设计思想及程序流程框图 4 3.3.3 逻辑功能程序 4 3.3.4 结果及完善方向 4 3.4加密软件(A4)4 3.4.1 设计题目及要求 4 3.4.2 设计思想及程序流程框图 4 3.4.3 逻辑功能程序 4 3.4.4 结果及完善方向 4 3.5进制转换器(A5)4 3.5.1 设计题目及要求 4 3.5.2 设计思想及程序流程框图 4 3.5.3 逻辑功能程序 4 3.5.4 结果及完善方向 5 3.6学生成绩核算系统的设计与实现(B1)5 3.6.1 设计题目及要求 5 3.6.2 设计思想及程序流程框图 5 3.6.3 逻辑功能程序 5 3.6.4 结果及完善方向 5 3.7模拟电信计费系统的设计与实现(B2)5 3.7.1 设计题目及要求 5 3.7.2 设计思想及程序流程框图 5 3.7.3 逻辑功能程序 5 3.7.4 结果及完善方向 5 第四章 心得体会6 0 第一章第一章 软件设计介绍软件设计介绍 一、所涉及的课程及知识点一、所涉及的课程及知识点 高级语言程序设计:常量、变量、表达式的基本知识;函数的定义与 调用;文件读写;数组、指针、结构体等自定义类型的使用;排序等知识。 二、目的与任务二、目的与任务 目的:目的:通过集中时间上机实验,对学生的程序设计能力进行一次综合训练, 使学生充分发挥已有的编程能力,熟悉编译环境。选择若干课题,进行审题、 分析、设计和调试,在程序准备、程序实现、完成文档、答辩验收过程中,将 全面巩固已学过的编程知识,全面提高编程技能,在编程风格、调试器的使用、 测试技术等方面得到全面训练。学生在程序设计过程中,学生需要查找各种资 料获取有用信息解决实际问题,自学相关知识,提高文档书写能力,加强团队 合作意识,提高口头表达能力。 任务:任务:软件设计课题共分 A 、B 两档。A 档共 5 题,题目较简单,第 一周完成;B 档共 2 题,题目是综合性的,较复杂,第二周完成。 三、主要仪器设备三、主要仪器设备 硬件:硬件:微型计算机 软件:软件:C、C+、Visual C+等 四、参考书四、参考书 【1】朱立华,王立柱C 语言程序设计北京:人民邮电出版社,2009 【2】朱立华,朱建,俞琼面向对象程序设计及 C+北京:人民邮电出 版社,2008 【3】张引等C 程序设计基础课程设计浙江:浙江大学出版社,2007 1 第二章第二章 软件开发平台简介软件开发平台简介 软件开发平台是一种软件开发工具,是以通用技术架构(例如软件开发平台是一种软件开发工具,是以通用技术架构(例如 MVCMVC)为基础,集成常用建模工具、二次开发包、基础解决方案等而)为基础,集成常用建模工具、二次开发包、基础解决方案等而 成。可以大幅缩减编码率,使开发者有更多的时间关注客户的需求,成。可以大幅缩减编码率,使开发者有更多的时间关注客户的需求, 在项目的需求、设计、开发、测试、部署、维护等各个阶段均可提在项目的需求、设计、开发、测试、部署、维护等各个阶段均可提 供强大的支持。软件开发平台有两种平台模式,一种是传统的供强大的支持。软件开发平台有两种平台模式,一种是传统的 c/sc/s 架构模式,一种是现在比较流行的架构模式,一种是现在比较流行的 b/sb/s 架构模式。架构模式。 软甲件开发平台的分类,一般有三种:一种是软甲件开发平台的分类,一般有三种:一种是 SUNSUN 公司的公司的 SUNSUN ONEONE 框架平台,一种是框架平台,一种是 LAMP,LAMP,它是它是 LinuxLinux、ApacheApache、MysqlMysql、PHPPHP 四项四项 技术的缩写,还有一种是技术的缩写,还有一种是.NET.NET Framework(Framework(一般简称为一般简称为 NETNET 框架平台框架平台) )。 LAMPLAMP 是一组常用来搭建动态网站或者服务器的开源软件,本身是一组常用来搭建动态网站或者服务器的开源软件,本身 都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越 高的兼容度,共同组成了一个高的兼容度,共同组成了一个 WebWeb 应用程序平台。随着开源潮流的应用程序平台。随着开源潮流的 蓬勃发展,开放了源代码的蓬勃发展,开放了源代码的 LAMPLAMP 已经与已经与 J2EEJ2EE 和和.NET.NET 平台形成了三平台形成了三 足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低, 因此手袋整个因此手袋整个 ITIT 界的关注。从网站的流量上来说,界的关注。从网站的流量上来说,70%70%以上的访问以上的访问 流量都是流量都是 LAMPLAMP 来提供的,来提供的,LAMPLAMP 是最强大的网站解决方案。是最强大的网站解决方案。LAMPLAMP 是是 基于基于 LinuxLinux、ApacheApache、MySQLMySQL 和和 PHPPHP 的开放资源网络开发平台,这个的开放资源网络开发平台,这个 术语来自欧洲,在那里这些程序常用来作为一种标准开发环境。名术语来自欧洲,在那里这些程序常用来作为一种标准开发环境。名 字来源于每个程序的第一个字母。每个程序在所有权里都符合开发字来源于每个程序的第一个字母。每个程序在所有权里都符合开发 源代码标准:源代码标准:LinuxLinux 是开放系统,是开放系统,ApacheApache 是最通用的网络服务器,是最通用的网络服务器, 2 MySQLMySQL 是带有基于网络管理附加工具的关系数据库,是流行是带有基于网络管理附加工具的关系数据库,是流行 的对象脚本语言,他包含了多数其他语言的优秀特征来使得它的网的对象脚本语言,他包含了多数其他语言的优秀特征来使得它的网 络开发更加有效。虽然这些开放源代码程序本身并不是专门设计成络开发更加有效。虽然这些开放源代码程序本身并不是专门设计成 同另外几个程序一起工作的,但由于他们都是影响较大的开源软件,同另外几个程序一起工作的,但由于他们都是影响较大的开源软件, 拥有许多共同特征,这就导致了这些组件经常在一起使用。在过去拥有许多共同特征,这就导致了这些组件经常在一起使用。在过去 的几年里,这些软件的兼容性不断完善,在一起的应用情形变得更的几年里,这些软件的兼容性不断完善,在一起的应用情形变得更 加普遍。越来越多的供应商、用户和企业投资者日益认识到,经过加普遍。越来越多的供应商、用户和企业投资者日益认识到,经过 单个组件的开源软件组成的平台用来构建以及运行各种商单个组件的开源软件组成的平台用来构建以及运行各种商 业应用和协作构建各种网络应用程序变为一种可能和实践,变得更业应用和协作构建各种网络应用程序变为一种可能和实践,变得更 加具有竞争力,更加吸引客户。无论是性能、质量还是价加具有竞争力,更加吸引客户。无论是性能、质量还是价 格都将成为企业、政府信息化所必须考虑的平台。格都将成为企业、政府信息化所必须考虑的平台。 平台是一种新型的软件平台,可用来在网络计算机系平台是一种新型的软件平台,可用来在网络计算机系 统开发和运行高交互性、动态的、安全的小程序和应用程统开发和运行高交互性、动态的、安全的小程序和应用程 序。平台有三种三种版本,这使软件开发人员、服务提供序。平台有三种三种版本,这使软件开发人员、服务提供 商和设备生产商可以针对特定的市场进行开发。商和设备生产商可以针对特定的市场进行开发。 开发平台是一种用于建立服务器应用程序和开发平台是一种用于建立服务器应用程序和 桌面应用程序的软件组件,用该平台创建的应用程桌面应用程序的软件组件,用该平台创建的应用程 序在序在 (通用语(通用语 言运行环境)的控制下进行。是一个软件引擎,用来加载应言运行环境)的控制下进行。是一个软件引擎,用来加载应 用程序,确认他们可以没有错误的执行,进行相应的安全许可验证,用程序,确认他们可以没有错误的执行,进行相应的安全许可验证, 执行应用程序,然后在运行结束后将他们删除。类库集提供了使应执行应用程序,然后在运行结束后将他们删除。类库集提供了使应 用程序可以读写数据、在上通信、访问数用程序可以读写数据、在上通信、访问数 3 据库等的代码。所有的类库都建立在一个基础的类库之上,他提供据库等的代码。所有的类库都建立在一个基础的类库之上,他提供 管理使用最为频繁的数据类型(例如数值或文本字符串)的功能,管理使用最为频繁的数据类型(例如数值或文本字符串)的功能, 以及诸如文件输入输出等底层功能。以及诸如文件输入输出等底层功能。VisualVisual StudioStudio 是是微软公司微软公司 推出的推出的开发环境开发环境,VisualVisual StudioStudio 可以用来创建可以用来创建 WindowsWindows 平台下的平台下的 WindowsWindows 应用程序应用程序和网络应用程序,也可以用来创建网络服务、智和网络应用程序,也可以用来创建网络服务、智 能设备应用程序和能设备应用程序和 OfficeOffice 插件插件。VisualVisual StudioStudio 是目前最流行的是目前最流行的 WindowsWindows 平台平台应用程序开发应用程序开发环境。环境。 VisualVisual StudioStudio 20082008 包括各种增强功能,例如包括各种增强功能,例如可视化设计可视化设计器器 (使用(使用 .NET.NET FrameworkFramework 3.53.5 加速开发)加速开发) 、对、对 WebWeb 开发工具的大量开发工具的大量 改进,以及能够加速开发和处理所有类型数据的语言增强功能。改进,以及能够加速开发和处理所有类型数据的语言增强功能。 VisualVisual StudioStudio 20082008 为开发人员提供了所有相关的工具和框架支持,为开发人员提供了所有相关的工具和框架支持, 帮助创建引人注目的、令人印象深刻并支持帮助创建引人注目的、令人印象深刻并支持 AJAXAJAX 的的 WebWeb 应用程序应用程序。 开发人员能够利用这些丰富的开发人员能够利用这些丰富的客户端客户端和服务器端框架轻松构建以和服务器端框架轻松构建以 客户为中心的客户为中心的 WebWeb 应用程序,这些应用程序可以集成任何后端数据应用程序,这些应用程序可以集成任何后端数据 提供程序、在任何当前提供程序、在任何当前浏览器浏览器内运行并完全访问内运行并完全访问 ASPASP NETNET 应用程序应用程序 服务服务和和 MicrosoftMicrosoft 平台。平台。 支持多种程序设计语言如:支持多种程序设计语言如: 、等,实现了、等,实现了 语言互用性。而只能用语言。随着开源潮流的蓬语言互用性。而只能用语言。随着开源潮流的蓬 勃发展,开放源代码的已经与和商业软勃发展,开放源代码的已经与和商业软 4 件形成三足鼎立之势。件形成三足鼎立之势。 5 第三章第三章 软件设计的内容软件设计的内容 3.13.1 分数统计软件(分数统计软件(A1A1) .1 设计题目及要求设计题目及要求 课题内容:课题内容: 设计一个分数统计程序。包括学生信息的输入输出以及排序。通过该课题全面熟悉数 组、字符串、文件的使用,掌握程序设计的基本方法及友好界面的设计。 课题要求:课题要求: (1)输入某班级学生的姓名、分数; (2)对(1)的分数进行降幂排列并输出; (3)具有输入输出界面。 .2 设计思想及程序流程框图设计思想及程序流程框图 设计思想为设计思想为: 建立学生结构体数组,结构体成员包括存储姓名的字符型数组以及存储分数的整型, 使用 for 循环语句从输入处获取 n 个学生的姓名和成绩,成绩输入的信息存入结构体数组。 再选择按成绩降幂排名,将结构体数组从头进行输出。 算法流程框图为:算法流程框图为: 开 始 输入学 生人数 清屏 输入是否正确? 输入学生姓名 name 和分数 grade N 6 .3 逻辑功能程序逻辑功能程序 #include #include #include struct student /存放学生信息的结构体 char name20; /字符型数组存放姓名 int grade; /成绩类型 temp,std100; int main() int err; char x5; int n; int i; int m; char ch20; system(“color F9“); do system(“cls“); printf(“ nn“); printf(“ * n“); printf(“t n“); printf(“ O(_)O 欢迎使用本系统 O(_)O n“); printf(“t n “); printf(“ * n“); printf(“ n“); printf(“ 请输入学生个数 nn“); do printf(“tt 学生个数: “); err=0;i=0; 自动降幂排序 输出排序后的成绩 单 结 束 7 scanf(“%s“,x); /输入选项 getchar(); while(xi!=0) /依次检查输入的字符串是否为数字 if(xi9|xi 1.建立文件 2.查看文件 3.编辑文件 0.退出 1.查找 2.删除 3.插入 4.替换 0.返回上级菜单 加密系统 数制转换系统 1 二进制 2 八进制 3 十进制 4 十六进制 0 退出 =a else err=1; i+; if(err) printf(“n 输入数值错误,不是十六进制数!n“); while(err); i=0; while(ci!=0) num=num*16; if(0 1、从文件读取数据 2、计算并显示成绩 3、按等级查询 4、按总评成绩排序 5、按学号查询 6、查询所有等级 7、保存到文件 0、退出系统 =80) listi.grade=B; else if (listi.score=70) listi.grade=C; else if (listi.score=60) listi.grade=D; else listi.grade=E; dispinfo(); view(list,amount); void findgrade(struct stu *list,int amount) 53 int i=0,j=0; char g; dispinfo(); printf(“nnn 请选择您需要查询的等级(输入大写 A/B/C/D/E): “); g=getchar(); printf(“nttn“); printf(“tt 学号 总评 等级n“); printf(“ttn“); for(i=0;i 1、读取话费文件 2、查询通话费用 3、话费查询 4、话单查询 5、输出至文件 0、退出系统 nn“); printf(“ * * * * * *nn“); void menu1() printf(“nntt * 读取话费文件 *nn“); printf(“ * 1、显示源数据文件 *n“); printf(“ * 2、显示长话费率文件 *n“); printf(“ * 3、显示用户信息文件 *n“); printf(“ * 0、返回主菜单 *n“); printf(“ntt* * * *nn“); void output1(struct s1 *list1) printf(“nntn“); printf(“t主叫区号主叫电话号码被叫区号被叫电话号码通话时长n“); printf(“tn“); int i; for(i=0;iamount;i+) printf(“t %s %s %5s %s %6d n“,list1i.aera1,list1i.calling,list1i.aera2,list1i.called,list1i.time); printf(“tn“); void output2(struct s2 *list2) 72 int i; printf(“ n“); printf(“ 区号 费率 n“); printf(“ n“); for(i=0;i4;i+) printf(“ %4s %.2lf n“,list2i.aera,list2i.rate); printf(“ n“); void output3(struct s3 *list3) int i; printf(“ n“); printf(“ 电话号码 用户姓名 n“); printf(“ n“); for(i=0;i5;i+) printf(“ %s %8s n“,list3i.num,); printf(“ n“); int main() system(“color F9“); int choice; int choice2; struct s1 list120; struct s2 list25; struct s3 list35; struct s4 list420; while(1) system(“cls“); menu(); printf(“ 请选择:“); scanf(“%d“, switch(choice) case 1: readfile(list1,list2,list3); do 73 menu1(); printf(“ 请选择您要查询的文件:“); scanf(“%d“, if(choice2=1) printf(“n“); output1(list1); else if(choice2=2) printf(“n“); output2(list2); else if(choice2=3) printf(“n“); output3(list3); else if(choice2=0) break; else printf(“n 您的输入有误,请重新输入!n“); while(choice2); break; case 2: calculate(list1,list2,list4); getch(); break; case 3: searchmoney(list3,list4); break; case 4: searchbill(list1,list3,list4); break; case 5: savefile(list4); break; case 0: system(“cls“); printf(“nnnnnnnnnn * 谢谢使用! *“); getch(); 74 break; default: printf(“ 您的输入有误,请重新输入!n“); getch(); return 0; .4 结果及完善方向结果及完善方向 A.A.初始界面:初始界面: B.B.读取话费子界面:读取话费子界面: 75 C.C.先是源数据文件:先是源数据文件: 76 D.D.显示长话费率文件:显示长话费率文件: 77 E.E.显示用户信息文件:显示用户信息文件: F.F.返回主菜单,查询通话费用:返回主菜单,查询通话费用: 78 G.G.话费查询:话费查询: 79 H.H.若输入错误号码或错误字符,系统将会提示并重新输入:若输入错误号码或错误字符,系统将会提示并重新输入: 80 I.I.话单查询:话单查询: 81 J.J.若输入错误号码或错误字符,系统将会提示并重新输入:若输入错误号码或错误字符,系统将会提示并重新输入: 82 K.K.输出至文件:输出至文件: 83 L.L.退出界面:退出界面: 84 85 第四章第四章 心得体会心得体会 实践是检验真理的唯一标准。通过这两周的学习,我对实践是检验真理的唯一标准。通过这两周的学习,我对 C C 语言的了解逐渐加语言的了解逐渐加 深。记得大一的时候学习深。记得大一的时候学习 C C 语言,还记得李超老师讲,语言,还记得李超老师讲,C C 语言是最简单的机器语言是最简单的机器 语言,要和电脑沟通,让它做你需要做的事,就要学会它的语言,然后命令它。语言,要和电脑沟通,让它做你需要做的事,就要学会它的语言,然后命令它。 当时学习当时学习 C C 的时候,总是一头雾水,搞不明白,随着几次课程设计的进行,在的时候,总是一头雾水,搞不明白,随着几次课程设计的进行,在 编程的训练中,才慢慢认识到编程的训练中,才慢慢认识到 C C 语言的精妙之处。语言的精妙之处。 在这次的软件设计课程中,第一周主要设计了分数统计、打字策划能够续、在这次的软件设计课程中,第一周主要设计了分数统计、打字策划能够续、 文字编译器、加密程序以及进制转化器等比较简单基础的程序;第二周在熟悉文字编译器、加密程序以及进制转化器等比较简单基础的程序;第二周在熟悉 C C 语言的基础上主要做了成绩核算系统和模拟电信计费系统两个比较复杂的程语言的基础上主要做了成绩核算系统和模拟电信计费系统两个比较复杂的程 序。序。 通过这几次的程序设计课程,让我对通过这几次的程序设计课程,让我对 C C 语言以及软件平台的环境有了很大的语言以及软件平台的环境有了很大的 认识,为期两周的课程设计再次叫我熟悉了一下程序设计的主要步骤,很好的认识,为期两周的课程设计再次叫我熟悉了一下程序设计的主要步骤,很好的 培养了我的编程习惯,明白了程序设计的重点在于简单化、高效化。首先要认培养了我的编程习惯,明白了程序设计的重点在于简单化、高效化。首先要认 真审题,抓住所要求的问题的关键,弄清楚程序所要求达到的要求和所需要的真审题,抓住所要求的问题的关键,弄清楚程序所要求达到的要求和所需要的 功能,考虑需要将程序划分为几个功能模块,然后逐步细化,清晰化,接着思功能,考虑需要将程序划分为几个功能模块,然后逐步细化,清晰化,接着思 考程序中需要的数据结构,各种算法以及存储结构等等。在分析阶段中,要有考程序中需要的数据结构,各种算法以及存储结构等等。在分析阶段中,要有 个大概的把握,对每一步要有一个清晰的要求,对整个大局才能好好的掌握,个大概的把握,对每一步要有一个清晰的要求,对整个大局才能好好的掌握, 从各个模块依次入手,才会做到有条理,不慌不乱,出现问题也会比较容易找从各个模块依次入手,才会做到有条理,不慌不乱,出现问题也会比较容易找 到,并且及时改正。到,并且及时改正。 设计过程是很重要的,要对所学的知识有个大体的了解,这一过程中只需要设计过程是很重要的,要对所学的知识有个大体的了解

温馨提示

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

评论

0/150

提交评论