收藏 分销(赏)

南邮软件设计报告.doc

上传人:精*** 文档编号:3911595 上传时间:2024-07-23 格式:DOC 页数:116 大小:1.86MB
下载 相关 举报
南邮软件设计报告.doc_第1页
第1页 / 共116页
南邮软件设计报告.doc_第2页
第2页 / 共116页
南邮软件设计报告.doc_第3页
第3页 / 共116页
南邮软件设计报告.doc_第4页
第4页 / 共116页
南邮软件设计报告.doc_第5页
第5页 / 共116页
点击查看更多>>
资源描述

1、软件设计报告姓名:琳学号:B12060421 2023年5月16日2023年6月16日目 录第一章 软件设计介绍1第二章 软件开发平台简介2第三章软件设计的内容33.1分数记录软件(A1)33.1.1设计题目及规定33.1.2设计思想及程序流程框图33.1.3逻辑功能程序33.1.4结果及完善方向33.2打字软件(A2)33.2.1设计题目及规定33.2.2设计思想及程序流程框图33.2.3逻辑功能程序33.2.4结果及完善方向33.3文本编辑器(A3)33.3.1设计题目及规定33.3.2设计思想及程序流程框图43.3.3逻辑功能程序43.3.4结果及完善方向43.4加密软件(A4)43.4

2、.1设计题目及规定43.4.2设计思想及程序流程框图43.4.3逻辑功能程序43.4.4结果及完善方向43.5进制转换器(A5)43.5.1设计题目及规定43.5.2设计思想及程序流程框图43.5.3逻辑功能程序43.5.4结果及完善方向53.6学生成绩核算系统的设计与实现(B1)53.6.1设计题目及规定53.6.2设计思想及程序流程框图53.6.3逻辑功能程序53.6.4结果及完善方向53.7模拟电信计费系统的设计与实现(B2)53.7.1设计题目及规定53.7.2设计思想及程序流程框图53.7.3逻辑功能程序53.7.4结果及完善方向5第四章 心得体会6第一章 软件设计介绍一、所涉及的课

3、程及知识点高级语言程序设计:常量、变量、表达式的基本知识;函数的定义与调用;文献读写;数组、指针、结构体等自定义类型的使用;排序等知识。二、目的与任务目的:通过集中时间上机实验,对学生的程序设计能力进行一次综合训练,使学生充足发挥已有的编程能力,熟悉编译环境。选择若干课题,进行审题、分析、设计和调试,在程序准备、程序实现、完毕文档、答辩验收过程中,将全面巩固已学过的编程知识,全面提高编程技能,在编程风格、调试器的使用、测试技术等方面得到全面训练。学生在程序设计过程中,学生需要查找各种资料获取有用信息解决实际问题,自学相关知识,提高文档书写能力,加强团队合作意识,提高口头表达能力。任务:软件设计

4、课题共分A 、B两档。A档共5题,题目较简朴,第一周完毕;B档共2题,题目是综合性的,较复杂,第二周完毕。三、重要仪器设备硬件:微型计算机软件:C、C+、Visual C+等四、参考书【1】朱立华,王立柱C语言程序设计北京:人民邮电出版社,2023【2】朱立华,朱建,俞琼面向对象程序设计及C+北京:人民邮电出版社,2023【3】张引等C程序设计基础课程设计浙江:浙江大学出版社,2023第二章 软件开发平台简介软件开发平台是一种软件开发工具,是以通用技术架构(例如MVC)为基础,集成常用建模工具、二次开发包、基础解决方案等而成。可以大幅缩减编码率,使开发者有更多的时间关注客户的需求,在项目的需求

5、、设计、开发、测试、部署、维护等各个阶段均可提供强大的支持。软件开发平台有两种平台模式,一种是传统的c/s架构模式,一种是现在比较流行的b/s架构模式。软甲件开发平台的分类,一般有三种:一种是SUN公司的SUN ONE框架平台,一种是LAMP,它是Linux、Apache、Mysql、PHP四项技术的缩写,尚有一种是.NET Framework(一般简称为NET框架平台)。LAMP是一组常用来搭建动态网站或者服务器的开源软件,自身都是各自独立的程序,但是由于常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个Web应用程序平台。随着开源潮流的蓬勃发展,开放了源代码的LAMP已经与J2EE和

6、.NET平台形成了三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此手袋整个IT界的关注。从网站的流量上来说,70%以上的访问流量都是LAMP来提供的,LAMP是最强大的网站解决方案。LAMP是基于Linux、Apache、MySQL和PHP的开放资源网络开发平台,这个术语来自欧洲,在那里这些程序常用来作为一种标准开发环境。名字来源于每个程序的第一个字母。每个程序在所有权里都符合开发源代码标准:Linux是开放系统,Apache是最通用的网络服务器,MySQL是带有基于网络管理附加工具的关系数据库,是流行的对象脚本语言,他包含了多数其他语言的优秀特性来使得它的网络开发更加有效。虽

7、然这些开放源代码程序自身并不是专门设计成同此外几个程序一起工作的,但由于他们都是影响较大的开源软件,拥有许多共同特性,这就导致了这些组件经常在一起使用。在过去的几年里,这些软件的兼容性不断完善,在一起的应用情形变得更加普遍。越来越多的供应商、用户和公司投资者日益结识到,通过单个组件的开源软件组成的平台用来构建以及运营各种商业应用和协作构建各种网络应用程序变为一种也许和实践,变得更加具有竞争力,更加吸引客户。无论是性能、质量还是价格都将成为公司、政府信息化所必须考虑的平台。平台是一种新型的软件平台,可用来在网络计算机系统开发和运营高交互性、动态的、安全的小程序和应用程序。平台有三种三种版本,这使

8、软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发。开发平台是一种用于建立服务器应用程序和桌面应用程序的软件组件,用该平台创建的应用程序在(通用语言运营环境)的控制下进行。是一个软件引擎,用来加载应用程序,确认他们可以没有错误的执行,进行相应的安全许可验证,执行应用程序,然后在运营结束后将他们删除。类库集提供了使应用程序可以读写数据、在上通信、访问数据库等的代码。所有的类库都建立在一个基础的类库之上,他提供管理使用最为频繁的数据类型(例如数值或文本字符串)的功能,以及诸如文献输入输出等底层功能。Visual Studio 是微软公司推出的开发环境,Visual Studio 可以用

9、来创建 Windows 平台下的 Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office插件。Visual Studio是目前最流行的Windows平台应用程序开发环境。Visual Studio 2023 涉及各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改善,以及可以加速开发和解决所有类型数据的语言增强功能。Visual Studio 2023 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web应用程序。开发人员可以运用这些丰富的客

10、户端和服务器端框架轻松构建以客户为中心的 Web应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运营并完全访问 ASP NET应用程序服务和 Microsoft 平台。支持多种程序设计语言如:、等,实现了语言互用性。而只能用语言。随着开源潮流的蓬勃发展,开放源代码的已经与和商业软件形成三足鼎立之势。第三章 软件设计的内容3.1 分数记录软件(A1)3.1.1设计题目及规定课题内容:设计一个分数记录程序。涉及学生信息的输入输出以及排序。通过该课题全面熟悉数组、字符串、文献的使用,掌握程序设计的基本方法及和谐界面的设计。课题规定:(1)输入某班级学生的姓名、分数;(2)对(1

11、)的分数进行降幂排列并输出;(3)具有输入输出界面。3.1.2设计思想及程序流程框图设计思想为:建立学生结构体数组,结构体成员涉及存储姓名的字符型数组以及存储分数的整型,使用for循环语句从输入处获取n 个学生的姓名和成绩,成绩输入的信息存入结构体数组。再选择按成绩降幂排名,将结构体数组从头进行输出。算法流程框图为:开 始输入学生人数清屏N输入是否对的?输入学生姓名name和分数grade自动降幂排序输出排序后的成绩单 结 束3.1.3逻辑功能程序#include#include#includestruct student /存放学生信息的结构体char name20; /字符型数组存放姓名i

12、nt 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;scanf(%s,x); /输入

13、选项getchar();while(xi!=0) /依次检查输入的字符串是否为数字 if(xi9|xi0) err=1; i+;if(err) printf(ntt请输入数字!n);while(err);n=atoi(x); /将字符型数组x转换成整型nfor(i=0;in;i+) /循环N次输入学生信息 printf(ntt请输入第%d个人的信息ntt姓名:,i+1); scanf(%s,stdi.name); getchar(); printf(tt分数:); scanf(%d,&stdi.grade);if (stdi.grade100)printf ( 您的输入错误,请重新输入:n);

14、 printf(tt分数:);scanf(%d,&stdi.grade); getchar();printf( 输入信息:n);printf( * n);printf( 姓名 成绩 nn);for(i=0;in;i+)printf( %s %dn,stdi.name,stdi.grade); printf(nn * n);printf(n 排序后信息:n);for(m=0;mn;m+) for(i=0;in-m-1;i+)if(stdi.gradestdi+1.grade)temp=stdi;stdi=stdi+1;stdi+1=temp; /成绩按降幂排序printf(n 您所输入的学生名次

15、如下:nn); printf( * n); printf( 名次 姓名 成绩 nn);for(i=0;in;i+) printf( 第 %d 名 %s %dn,i+1,stdi.name,stdi.grade); printf(nn * n); printf(t n);printf(t您是否还需要继续?(请按Y键继续/任意键退出)); /选择是否继续printf(t n);scanf(%s,ch); printf(t 感谢使用此软件,欢迎下次光顾 O(_)O n); while(ch0=Y|ch0=y); /与开头组成do-while结构循环 printf(t); return 0;3.1.4

16、结果及完善方向实验结果:A. 初始界面:B. 输入学生信息之后直接排序,界面如图所示:C. 若所输入的学生成绩在有效范围(0100)之外系统将会提醒输入错误,界面如下图:程序分析: 此程序功能上满足基本的题目规定,可以做到输入学生的姓名和成绩,可以按成绩降幂排列并输出。完善方向: 基本功能已实现,对于实际的系统,接下来完善的功能的是可以选择不同的科目进行输入,可以选择进行降幂或者升幂排序,同时能添加或删除学生信息,对于成绩相同的学生进行并列排名。3.2 打字软件(A2)3.2.1设计题目及规定课题内容:设计一个打字程序。涉及随机产生字符串,以及字符串比较和记录。通过此课题,纯熟掌握数组、格式输

17、出、字符串解决等。课题规定:(1)随机产生一字符串,每次产生的字符串内容、长度都不同;(2)根据(1)的结果,输入字符串,判断输入是否对的,输出对的率;(3)具有输入输出界面。3.2.2设计思想及程序流程框图设计思想为:运用函数库里提供的产生随机函数rand()产生随机的字符串长度,默认将长度定位在1至10个字符。再产生一串由大小写字母以及数字组成的随机字符串,每产生一个字符串就按字保存至数组里。显示产生的字符串,开始打字后,将输入字符串保存至数组,打字完毕。再与产生字符进行逐个比较,若相同,则对的个数加1,最终得出对的率,输出显示。算法流程框图为:开 始随机产生字符串输入字符串依次比较,计算

18、对的率输出对的率Y是否继续N 结 束3.2.3逻辑功能程序#include #include #include #include void main(void) int i,num,flag,m=0,k,over=1;char str100; /产生随机数组char str1100; /输入随机数组char c;float p;system(color F9);while(over) /选择是否继续 num=0; /产生字符长度num初始化为0m=0; /记录对的个数变量m初始化为0system(cls); /清除屏幕 printf(nnn); printf( * n); printf( O(

19、_)O 欢迎使用本系统 O(_)O n); printf( * n);printf( * 打字软件 * n); srand(time(NULL); /提取系统时间,以时间为seed产生随机数 num=1+ rand()%10; /产生长度不大于10的字符串 for(k=0;knum;k+) flag=rand()%3; /随机产生小于3的数 if(flag=0) strk=A+rand()%26; /产生大写字母 else if(flag=1) strk=a+rand()%26; /产生小写字母 else strk=0+rand()%9; /产生数字strk=0; printf(nntt *n

20、);printf(随机字符串个数:tt%dn,num); printf(随机产生的字符串:t%sn,str); printf(tt *nn); printf(请输入上面的字符串:); scanf(%s,str1);/输入字符串getchar();for(i=0;str1i!=0&stri!=0;i+) /进行比较 if(stri=str1i) m+; /m为对的字符个数 p=(float) m/num; printf(nnn * nn); printf( 对的率为:%.1f%n,p*100);printf( 对的个数为:%dn,m); printf(n * nnn);printf( n);pr

21、intf( 是否还需继续练习?(任意键继续/N键退出)n);scanf(%c,&c);/输入选项getchar();if(c=N|c=n) over=0;3.2.4结果及完善方向A. 初始界面:即随机产生的字符串为输出页面B. 当输入的字符串与随机产生的字符串一致时,对的率为100%,如图:C. 当输入的字符串与随机产生的字符串不一致时,程序将计算对的率并给出输入对的的个数,如图:程序结果分析: 此程序能保证每次产生的字符串不同样,且能对的地输出准确率,基本完毕了打字训练的任务。考虑到程序的实用性,可认为程序添加计时功能、记录保存功能等,可以使使用者更加灵活地运用打字软件。程序完善方向: 对于

22、这个程序,局限性的就是可以添加计时功能,在打字前,可以询问用户是否进行计时,还可以添加功能,由用户自己选择可从从其他文献导入一段字符串。3.3 文本编辑器(A3)3.3.1设计题目及规定课题内容:设计一个简朴的文本编辑器,该系统规定对一个文本文献中的内容进行各种常规操作,如:插入、删除、查找、替换等功能。通过此课题,纯熟掌握文本文献的操作及用字符数组或字符指针实现字符串操作的功能。 课题规定:(1)编辑文本;(2)保存、打开指定位置的文本文献;(3)具有输入输出界面。3.3.2设计思想及程序流程框图设计思想为:在主菜单可选择建立文本、编辑文本、读取文本和退出程序。以只写方式编辑文本,若文本不存

23、在则提醒“不能打开文献”,打开的文献则输入的内容以“#”作为结束标记;读取文献时,提醒需要读取的目的文本途径,将文本里的内容输出。算法流程框图为: 开 始输出功能菜单输入选项chooseNNNchoose=4choose=3choose=2choose=1N输入途径输入途径输入途径文献不存在文献不存在文献不存在YNNYYN建立文本编辑文本输出文本结束3.3.3逻辑功能程序#include #include #include void menu1() printf( nn);printf( * O(_)O 欢迎使用此软件 O(_)O *nn);printf( * 文本编辑器 * nn); pri

24、ntf( 1.建立文献 2.查看文献 3.编辑文献 0.退出 1.查找 2.删除 3.插入 4.替换 0.返回上级菜单 n);int output() char filepath30;/途径 FILE *fp; char ch; printf(n 请输入文献途径(如D:name.txt: ); scanf(%s,filepath);/输入途径 getchar();/接受Enter字符 fp=fopen(filepath,r); printf(n 文献内容如下:n); rewind(fp);/返回文献首,输出整个文献的内容 do ch=fgetc(fp); putchar(ch); while(

25、ch!=EOF);fclose(fp);return 0;int edit(int n) int i=0,x=0,fc=0,fch=0,fs=0,ft=0,a;char *p; int c=0,j; char test500;char m;char ch;char hou;char huan; char filepath30;/途径 char t;FILE *fp; switch(n) case 1:/查找功能 printf(n 请输入文献途径: ); scanf(%s,filepath);/输入途径 getchar();/接受Enter字符 fp=fopen(filepath,r); pri

26、ntf(n文献内容如下:n); rewind(fp);/返回文献首,输出整个文献的内容 do ch=fgetc(fp); putchar(ch); testi=ch; i+; while(ch!=EOF); testi=0;/串尾标记符fclose(fp);p=test;doa=0,x=0;printf(n 请输入要查找字符:);scanf(%c,&t);getchar();while(xi) if(t=*(p+x)printf(n 您要查找的字为:%c,它是第 %d个n,t,x+1); a=1; x+; if(a=0) printf(n 对不起,您要找的字不存在!n); printf(n是否

27、还需要继续查找?(任意键继续/0退出)n);scanf(%c,&m); if(m=0) fc=1; while(!fc);break;case 2:/删除功能do int a=0,x=0; printf(n 请输入文献途径(如D:name.txt: ); scanf(%s,filepath);/输入途径 getchar();/接受Enter字符 fp=fopen(filepath,r); printf(n 文献内容如下:n); rewind(fp);/返回文献首,输出整个文献的内容 do ch=fgetc(fp); putchar(ch); testi=ch; i+; while(ch!=EO

28、F); testi=0;/串尾标记符fclose(fp);printf(n 请输入要删除字符:);scanf(%c,&t);getchar(); while(x(i-a) if(testx=t) a+;for (c=x;c(i-a);c+) testc=testc+1; testi-a-1=0; x-; x+; fp=fopen(filepath,w); for(j=0;j(i-a);j+) ch=testj; fputc(ch,fp); fclose(fp); if(a=0) printf(n 对不起,此字符不存在,无法删除!n); printf(n 文献已保存!n);getchar();

29、printf(n是否还需要继续删除?(任意键继续/0退出)n);scanf(%c,&m);if(m=0) fs=1;while(!fs); break; case 3:/插入功能 do int a=0; i=0; /i的复位printf(n 请输入文献途径: ); scanf(%s,filepath);/输入途径 getchar();/接受Enter字符 fp=fopen(filepath,r); printf(n文献内容如下:n); rewind(fp);/返回文献首,输出整个文献的内容 do ch=fgetc(fp); putchar(ch); testi=ch; i+; while(ch!=EOF); testi=0;/串尾标记符fclose(fp);p=test;printf(n 请输入要插入到哪个字符后面:n);scanf(%c,&hou);getchar(); while(xi+a) if(hou=*(p+x)a=1; x+;if(a=0) printf

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服