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

下载本文档

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

文档简介

1、软件设计报告 姓名:姓名: 李杨李杨 学号:学号:B 2013 年年 7 月月 1 日日2013 年年 7 月月 12 日日 目目 录录 第一章 软件设计介绍.1 第二章 软件开发平台简介.2 第三章软件设计的内容.4 3.1分数统计软件(A1).4 3.1.1 设计题目及要求 .4 3.1.2 设计思想及程序流程框图 .4 3.1.3 逻辑功能程序 .5 3.1.4 结果及完善方向 .8 3.2打字软件(A2).9 3.2.1 设计题目及要求 .9 3.2.2 设计思想及程序流程框图 .10 3.2.3 逻辑功能程序 .11 3.2.4 结果及完善方向 .13 3.3文本编辑器(A3).13

2、 3.3.1 设计题目及要求 .13 3.3.2 设计思想及程序流程框图 .14 3.3.3 逻辑功能程序 .15 3.3.4 结果及完善方向 .25 3.4加密软件(A4).29 3.4.1 设计题目及要求 .29 3.4.2 设计思想及程序流程框图 .30 3.4.3 逻辑功能程序 .30 3.4.4 结果及完善方向 .33 3.5进制转换器(A5).34 3.5.1 设计题目及要求 .34 3.5.2 设计思想及程序流程框图 .34 3.5.3 逻辑功能程序 .35 3.5.4 结果及完善方向 .42 3.6学生成绩核算系统的设计与实现(B1).43 3.6.1 设计题目及要求 .43

3、3.6.2 设计思想及程序流程框图 .44 3.6.3 逻辑功能程序 .46 3.6.4 结果及完善方向 .57 3.7模拟电信计费系统的设计与实现(B2).61 3.7.1 设计题目及要求 .62 3.7.2 设计思想及程序流程框图 .62 3.7.3 逻辑功能程序 .65 3.7.4 结果及完善方向 .72 第四章 心得体会.75 第一章第一章 软件设计介绍软件设计介绍 软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。建议用数 学语言来抽象事务和问题,因为数学是最好的抽象语言,并且它的本质就是抽象。将复杂 的问题分解成可以管理的片断会更容易。将问题或事物分解并模块化这使得

4、解决问题变得 容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦 合度的情况。 1.任务任务 软件设计的任务是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软 件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成 软件的具体设计方案。 2.特征特征 一,抽象 二,模块化 三,信息隐蔽 四,模块独立性:模块独立性可以从两个方面度量: 1,内聚性:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功 能内聚。 2,耦合性:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非 直接耦合1 3.设计原则设计原则 一、设

5、计对于分析模型应该是可跟踪的:软件的模块可能被映射到多个需求上。 二、设计结构应该尽可能的模拟实际问题。 三、设计应该表现出一致性。 四、不要把设计当成编写代码。 五、在创建设计时就应该能够评估质量。 六、评审设计以减少语义性的错误。 七、设计应该模块化,将软件逻辑地划分为元素或子系统,并包含数据、体系结构、 接口和构件的清晰表示。 4.设计过程设计过程 软件的设计是一个将需求转变为软件陈述(表达)的过程。这种陈述给一个对软件的 全局观点。系统通过逐步求精使得设计陈述逐渐接近源代码。这里有两个基本步骤;第一 步是初步设计 Preliminary design ,关注于如何将需求转换成数据和软件

6、框架。 第二步是 详细设计 Detail design ,关注于将框架逐步求精细化为具体的数据结构和 软件的算法表达。发生中的设计行为、数据、算法和程序设计都需要由现代程序所需的界 面设计这一清晰的行为来结合起来。界面设计 Interface design 建立程序布局和人机交互 机制。贯穿设计过程的质量由一系列的 正式技术评定 formal technical reviews 或 设计 排演 design walkthroughs 来评价。 第二章第二章 软件开发平台简介软件开发平台简介 Visual C+是一个功能强大的可视化软件开发工具。自 1993年 Microsoft 公司推出 Vi

7、sual C+1.0后,随着其新版本的不断问世, Visual C+已成为专业程序员进行软 件开发的首选工具。 虽然微软公司推出了 Visual C+.NET(Visual C+7.0),但它的应用的很大的局 限性,只适用于 Windows 2000,Windows XP 和 Windows NT4.0。所以实际中,更 多的是以 Visual C+6.0为平台。 Visual C+6.0不仅是一个 C+编译器,而且 是一个基于 Windows 操作系统的可视化集成开发环境( integrated development environment,IDE) 。Visual C+6.0由许多组件组成

8、,包括编辑器、调试器以及程序向 导 AppWizard、类向导 Class Wizard 等开发工具。 这些组件通过一个名为 Developer Studio 的组件集成为和谐的开发环境。 Visual C+分分类类 Visual C+它大概可以分成三个主要的部分: 1 Developer Studio 这是一个集成开发环境,我们日常工作的 99%都是在它上面完成的,再加上它的 标题赫然写着 “Microsoft Visual C+”,所以很多人理所当然的认为,那就是Visual C+了。其实不然,虽然 Developer Studio 提供了一个很好的编辑器和很多 Wizard,但实际上它没

9、有任何编译和链接程序的功能,真正完成这些工作的幕后英雄 后面会介绍。我们也知道, Developer Studio 并不是专门用于 VC 的,它也同样用于 VB,VJ,VID 等 Visual Studio 家族的其他同胞兄弟。所以不要把Developer Studio 当成 Visual C+, 它充其量只是 Visual C+的一个壳子而已。这一点请切记! 2 MFC 从理论上来讲, MFC 也不是专用于 Visual C+,Borland C+,C+Builder 和 Symantec C+同样可以处理 MFC。同时,用 Visual C+编写代码也并不意味着一定 要用 MFC,只要愿意

10、,用 Visual C+来编写 SDK 程序,或者使用 STL,ATL,一 样没有限制。不过, Visual C+本来就是为 MFC 打造的,Visual C+中的许多特征 和语言扩展也是为 MFC 而设计的,所以用 Visual C+而不用 MFC 就等于抛弃了 Visual C+中很大的一部分功能。但是, Visual C+也不等于 MFC。 3 Platform SDK 这才是 Visual C+和整个 Visual Studio 的精华和灵魂,虽然我们很少能直接接 触到它。大致说来, Platform SDK 是以 Microsoft C/C+编译器为核心(不是 Visual C+,看

11、清楚了) ,配合 MASM,辅以其他一些工具和文档资料。上面说到 Developer Studio 没有编译程序的功能,那么这项工作是由谁来完成的呢?是CL, 是 NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成Visual Studio 的基石。 第三章第三章 软件设计的内容软件设计的内容 3.1 分数统计软件(分数统计软件(A1) 3.1.1 设计题目及要求设计题目及要求 课题内容:课题内容: 设计一个分数统计程序。包括学生信息的输入输出以及排序。通过该课题全面熟悉数 组、字符串、文件的使用,掌握程序设计的基本方法及友好界面的设计。 课题要求:课题要求: (1)输入某班级

12、学生的姓名、分数; (2)对(1)的分数进行降幂排列并输出; (3)具有输入输出界面。 3.1.2 设计思想及程序流程框图设计思想及程序流程框图 将任务分拆成多个函数实现 ,以提高程序的易读性、可移植性和灵活性。 因为学生的信息包括姓名和分数,为了方便,所以先定义一个student 的结构体 stu数组来存放学生信息。 函数主要分为菜单类和具体功能实现类。菜单类:dis_menu()用来显示菜单,用 printf 语句设计你想要的界面即可; choice_menu()根据键入的字符来选择一个分支执 行,起判断选择作用,为了看起来简洁明了点,选择用switchcase 语句而不是 ifelse

13、实现。功能类:主要有两个功能,分别是录入学生信息和成绩降幂排序。 input_inf()就是用来输入学生信息的,利用一个循环,将姓名和成绩分别读入到stu. name 和 stu.score 里。为了防止输入分数时出错,在输入学生信息前手动输入本次考 试总分, 每次输入一个学生成绩时和总分与0 分比较,如在 0100 分范围外就报警,提示重新 输入;dis_inf()用来显示输入的学生信息; dec_score()利用双层循环,定义了一个最大 值下标,每一趟循环都将剩下的值同stumax_index.score 比较,若比它大,则将下 标赋给 max_index,这样,一趟能够找到一个最大值,

14、下一趟就从剩下的里面再逐一同 stumax_index.score 比较。 当然,还得添加一个退出选项。 程序流程框图: 3.1.3 逻辑功能程序逻辑功能程序 #include #include #include #include struct student char name10; /学生姓名 float score; /学生成绩 stu100; int num,full; void dis_menu(); /菜单显示函数 开 始 输入学 生人数 输入学生姓名 name 和分数 fen 用程序将学生分数排序 输出排序后的学生 数据 结 束 void choice_menu(); /菜单选择

15、程序 void input_inf(); /学生信息输入函数 void dis_inf(); /学生信息显示函数 void dec_score(); /学生成绩降幂排列 int main() while(1) dis_menu(); choice_menu(); return 0; void dis_menu() printf(t*分数统计程序*n); printf(t* 1、输入学生成绩 *n); printf(t* 2、分数降幂排列 *n); printf(t* 3、退出程序 *n); printf(t*n); printf(t 请选择你要进行的操作:); void choice_menu

16、() char i100; scanf(%s,i); if(strlen(i)1) printf(t 输入错误!请重新输入:); choice_menu(); else switch(*i) case 1: printf(t 请输入学生人数:);scanf(%d, printf(t 请输入本次考试总分:);scanf(%d, input_inf(); dis_inf(); break; case 2: dec_score(); dis_inf(); break; case 3: printf(t); exit(1); break; default: printf(t 输入错误!请重新输入:);

17、 choice_menu(); break; void input_inf() int i; for(i=0;ifull|stui.score0) printf(t 输入错误!请重新输入:); printf(t 成绩:); scanf(%f, printf(n); void dis_inf() int i; printf(t 学生成绩统计如下:n); printf(t%-10st%-8stn,姓名,成绩); for(i=0;inum;i+) printf(t%-10st%-8gtn,,stui.score); printf(n); void dec_score() int i

18、,j,max_index,n=num; struct student stu_temp; for(i=0;in-1;i+) max_index=i; for(j=i+1;jstumax_index.score) max_index=j; if(max_index!=i) stu_temp=stui; stui=stumax_index; stumax_index=stu_temp; 3.1.4 结果及完善方向结果及完善方向 完善方向:完善方向:1.分数降幂排列显示时最好显示出具体的排名,这样人数多的时候比较容易查 到排名。2.界面可以做得更漂亮些,例如输出表格式样的。 3.2 打字软件(打字软

19、件(A2) 3.2.1 设计题目及要求设计题目及要求 课题内容:课题内容: 设计一个打字程序。包括随机产生字符串,以及字符串比较和统计。通过此课题,熟 练掌握数组、格式输出、字符串处理等。 课题要求:课题要求: (1)随机产生一字符串,每次产生的字符串内容、长度都不同; (2)根据(1)的结果,输入字符串,判断输入是否正确,输出正确率; (3)具有输入输出界面。 3.2.2 设计思想及程序流程框图设计思想及程序流程框图 除了界面菜单的打印和利用 switchcase 语句的菜单选择部分,主要有两部分,分别 是随机字符串产生函数和字符串比较函数。rand_str(char *p,int len)

20、主要是用了 rand(),为了 限制字符串长度,防止产生过多字符,可以用 1+rand() /随机字符串产生函数 double compare(char *p,char *q,int len,int *pnum); /输入输出比较函数 int main() char p20=; char q20=; char ch20; int len,num=0,i=0,j=0; double F; srand(time(NULL); /清空上次的随机数 printf(t*n); printf(t* 欢迎使用打字程序 *n); printf(t*n); printf(tn); do char p20=; c

21、har q20=; printf(nt*n); len=1+rand()%max; /字符串串长在 120 间 rand_str(p,len); printf(nt*n); printf(t 请输入以上字符串:n); printf(t); fflush(stdin);/减少不必要错误 scanf(%s,q); F=compare(p,q,len, if(F=1) printf(t 输入正确!n); i+; else printf(t 输入错误,您本次输入正确率:%0.2g%n,F*100); printf(t 您本次共输入正确%d 个字符,num); printf(tn); getchar()

22、; j+; printf(t 您已练习打字%d 组,共正确%d 组,j,i); printf(t 您还继续吗?请按任意键继续或者按 N 键结束:); scanf(%s,ch); while(ch0!=N printf(t); return 0; void rand_str(char *p,int len) int i; char ch; printf(t); for(i=0;i57 /只产生数字和大小写字母字 符 ch=num; printf(%c,num); pi=ch; double compare(char *p,char *q,int len,int *pnum) int i; int

23、 num; *pnum=0; double rate; for(i=0;ilen;i+) if(pi-qi)=0) *pnum=*pnum+1; num=*pnum; rate=1.0*num/len; return rate; 3.2.4 结果及完善方向结果及完善方向 完善方向完善方向:1.可以调用系统时间函数,记录用户打一组字符串的时间,算出打字速率。 2.字符串居中显示会美观一些。 3.3 文本编辑器(文本编辑器(A3) 3.3.1 设计题目及要求设计题目及要求 课题内容:课题内容: 设计一个简单的文本编辑器,该系统要求对一个文本文件中的内容进行各种常规操作, 如:插入、删除、查找、替换

24、等功能。通过此课题,熟练掌握文本文件的操作及用字符数 组或字符指针实现字符串操作的功能。 课题要求:课题要求: (1)编辑文本; (2)保存、打开指定位置的文本文件; (3)具有输入输出界面 3.3.2 设计思想及程序流程框图设计思想及程序流程框图 由于文本编辑器需要打开文件和编辑文件,设计了一个二级菜单,就是两个菜单的嵌套, 实质上是 switchcase 的嵌套。 一级菜单设有打开文件和退出两个选项,打开文件下还有一个二级菜单。为了增强程 序容错能力,在输入错误文件路径后,会提示错误,重新输入,用一个循环来解决,直到 输入正确,才退出循环。 编辑功能较为繁杂。主要分为插入,删除,查找,替换

25、四个函数部分实现。 插入部分,将文本内容读入存储到 s1中,要插入的字符串放到 s2中,输入要插入 的位置第 set 个字符后,先输出 s10s1set-1,再输出 s2,再把 s1剩下的字符输出。 删除部分,将原字符串存储到 s1中,要删除的字符串放到 s2中。双层循环,当 s1 中有一个字符和 s20一样时,再分别将之后的 len2 长度的字符一一比较,如不一致,则跳 出内层循环,开始第二趟外层循环。若都一致,求得一致部分的第一个字符的数组下标, 这部分的 s1就不输出。 查找部分,利用 strstr()函数求得查找的字符串在原字符串出现的地址 p,再减去 s10地 址就可求得出现在第几个

26、字符后。 替换部分,和删除部分差不多,求得 s1和 s2开始相同的下标 a,输出 s10s1a-1 到 s4,然后输出就输出替换的字符串 s3 到最后输出的 s4 中,最后把 s1a+len3及之后的字 符输出到 s4 中。 开始 结束 Choice=1Choice=2 输入文件名及路径 1.插入 2.删除 3.查找 4.替 换 5.显示 6.返回 0.退出 输入插入的字符串 输入删除的字符串 输入查找的字符串 输入替换的字符串 及源字符串 显示文件内容 1.打开文件 2.退出 文件能否打开? 输入正确否? 选择操作 n y 1 3 2 4 5 0 3.3.3 逻辑功能程序逻辑功能程序 #in

27、clude #include #include #include FILE* fp=NULL; FILE* fp1; char name50; void menu0(); void Open(); void choose0(); void menu1(); void choose1(); void insert(); void check(); void replace(); void deletef(); void show(); void welcome(); /-主程序- void main() welcome(); choose0(); choose1(); return; void

28、welcome() printf(ttt*n); printf(ttt* 欢迎使用文本编辑器! *n); printf(ttt*nnn); void menu0() /一级菜单 printf(ttt*n); printf(ttt* 1.打开文件 *n); printf(ttt* 0.退出 *n); printf(ttt*n); void choose0() /一级选择 char choice; char input100; int a=1,len; menu0(); do printf(请选择操作:); scanf(%s,input); len=strlen(input); choice=in

29、put0; if(choice=0 else system(cls); printf(ttt*n); printf(ttt 无效操作,请重新选择n); printf(ttt*n); menu1(); a=1; switch(choice) case 1: insert(); show(); choose1(); break; case 2: deletef(); system(cls); show(); choose1(); break; case 3: system(cls); show(); check(); choose1(); break; case 4: system(cls); r

30、eplace(); system(cls); show(); choose1(); break; case 5: system(cls); choose0(); break; case 0: system(cls); printf(ttt*n); printf(ttt* 欢迎下次使用 *n); printf(ttt*n); exit(1); void insert() /插入功能函数 long set; char ch1; char s110000; char s2100; int i=0; int j=0; while(ch1=fgetc(fp)!=EOF) s1i=ch1; i+; rew

31、ind(fp); s1i=0; system(cls); show(); printf(请输入在第几个字符后插入字符串:); scanf(%d, getchar(); printf(输入你插入的字符串,以#号结束:); while(ch1=getchar()!=#)/若不出现“#”继续读入 s2j+=ch1; getchar();/接收 Enter 字符 int len=j; fclose(fp); fp=fopen(name,w+); for(j=0;jset;j+) ch1=s1j; fputc(ch1,fp); for(j=0;jlen;j+) ch1=s2j; fputc(ch1,fp

32、); for(j=set;ji;j+) ch1=s1j; fputc(ch1,fp); fclose(fp); system(cls); void check() /查找功能函数 char str250; char str1500; char ch; char *p; char *p1; int count=0; int i=0; printf(请输入需要查找的字符串,以#号结束:); getchar(); while(ch=getchar()!=#)/若不为“#”继续输入 str2i+=ch; str2i=0; getchar();/消除 Enter 字符影响 fp=fopen(name,r

33、); if(!fp) printf(ttt *无法打开文件!*n); rewind(fp); while(ch=fgetc(fp)!=EOF) str1count=ch; count+; str1count=0; fclose(fp); p=strstr(str1,str2); /str2 在 str1 中第一次出现的位置 p1= system(cls); if(p!=NULL) printf(ttt 文本中存在该字符串,在第%d 个字符后 nn,p-p1); else printf(ttt 文本中不存在这样的字符串 nn); void replace() /替换功能函数 char s1100

34、,s2100,s3100,s4100,ch; int i=0; int j,len1,len2,len3,len4,count=0; int num=0; show(); printf(请输入被替换字符串,以#号结束:); printf(n); getchar(); while(ch=getchar()!=#)/若不为“#”继续输入 s2i+=ch; getchar();/消除 Enter 字符的影响 len2=i; printf(请输入替换的字符串,以#号结束:); printf(n); i=0; while(ch=getchar()!=#)/若不为“#”继续输入 s3i+=ch; len3

35、=i; getchar();/消除 Enter 字符的影响 fp=fopen(name,r); if(!fp) printf(ttt*无法打开文件!*n); rewind(fp); while(ch=fgetc(fp)!=EOF) s1count=ch; count+; s1count=0; len1=strlen(s1); fclose(fp); for(i=0;ilen1;i+) for(j=0;jlen2;j+) if(s1i+j!=s2j) s4num=s1i; num+; break; if(j=len2-1) for(int k=0;klen3;k+) s4num=s3k; num

36、+; i+=len2-1; s4num=0; len4=strlen(s4); fp=fopen(name,w); for(j=0;jlen4;j+) ch=s4j; fputc(ch,fp); fclose(fp); return; void deletef() /删除功能函数 char s1100,s2100,s3100,ch; int i=0,j,len1,len2,len3,count=0; system(cls); show(); printf(请输入被删除字符串,以#号结束:); getchar(); while(ch=getchar()!=#)/若不为“#”继续读入 s2i+=c

37、h; getchar();/接收 Enter 字符 printf(n); len1=strlen(s1); len2=i; int num=0; fp=fopen(name,r); if(!fp) printf(ttt* 文件无法打开!*n); rewind(fp); while(ch=fgetc(fp)!=EOF) s1count=ch; count+; s1count=0; fclose(fp); for(i=0;ilen1;i+) for(j=0;jlen2;j+) if(s1i+j!=s2j) s3num=s1i; num+; break; if(j=len2-1) s3num=s1i

38、+len2; num+; i+=len2; s3num=0; len3=strlen(s3); fp=fopen(name,w); for(j=0;jlen3;j+) ch=s3j; fputc(ch,fp); fclose(fp); return; 3.3.4 结果及完善方向结果及完善方向 完善方向:完善方向:1.查找只能查找文中第一次出现该字符串的地方,可以加一个循环,查出所 有出现该字符串的地方。 2.要是查找出的字符能有其他颜色高亮显示就不错了,只是从没接触过这种 代码,不知能不能实现。 3.4 加密软件(加密软件(A4) 3.4.1 设计题目及要求设计题目及要求 课题内容:课题内容:

39、 设计一个加密程序。包括明文与密钥的转换。通过此课题,熟练掌握数组、格式输出、 字符串处理、类型转换等。 课题要求:课题要求: (1)输入任意一段明文 M,以及密钥 K; (2)根据以下公式将其转换为密文 C。 Ci = mi + K ,其中 i = 0,1,n-1 , K 为密钥; (3)具有输入输出界面。 3.4.2 设计思想及程序流程框图设计思想及程序流程框图 加密解密较为简单,只要 m中每个字符的 ascii 码值加上密钥 K 即可。由于 ascii 值 表中出现字符的范围在 33126,故只把这些码值存入数组 a中,记录码文下标 c=(mi +key-33)%94,则码文为 code

40、i=ac,这样密钥无论多大都可以。解密过程类比于加密。 程序流程框图: 3.4.3 逻辑功能程序逻辑功能程序 #include #include 开 始 输出功能菜单 输入 n num 结 束 输入明文 m 和密钥 k Ci=mi+k 输出 m 和密文 C 输入密文 C 和密钥 k mi=Ci-k 输出密文 C 和 明文 m #include void dis_menu(); void choice(); void encryption(char *m, char *c); void decryption(char *m, char *c); int main() while(1) dis_m

41、enu(); choice(); return 0; void dis_menu() printf(t*n); printf(t*加密解密程序*n); printf(t* 1、加密 *n); printf(t* 2、解密 *n); printf(t* 3、退出 *n); printf(t*nn); printf(t 请选择要进行的操作:); void choice() char m100=; char code100=; char n100; scanf(%s,n); if(strlen(n)1) printf(t 输入错误!请重新输入:); choice(); else switch(*n)

42、 case 1: encryption(m, code); break; case 2: decryption(m, code); break; case 3: printf(t); exit(1); break; default: printf(t 输入错误!请重新输入:); choice(); break; void encryption(char *m, char *code) /加密函数 int i,len,c; int key; char a94; for(i=0;i94;i+) ai=i+33; printf(t 请输入需加密的明文:); scanf(%s,m); printf(t

43、 请输入密钥:); scanf(%d, len=strlen(m); printf(t 你输入的明文为:); printf(%sn,m); for(i=0;ilen;i+) c=(mi+key-33)%94; codei=ac; printf(t 加密后的密文为:); printf(%snn,code); void decryption(char *m, char *code) /解密函数 int i,len,key,c; char a94; for(i=0;i94;i+) ai=i+33; printf(t 请输入需解密的密文:); scanf(%s,code); printf(t 请输入密

44、钥:); scanf(%d, len=strlen(code); printf(t 你输入的密文为:); printf(%sn,code); for(i=0;ilen;i+) c=codei-key-33; while(c0) c=c+94; mi=ac; printf(t 破解后的明文为:); printf(%snn,m); 3.4.4 结果及完善方向结果及完善方向 完善方向:完善方向:加密的明文和解密的码文都要手动输入,实际运用中,可能会有很长的明文 和码文,最好设计成从外部文件中读入明文或码文。 3.5 3.5.1 设计题目及要求设计题目及要求 课题内容:课题内容: 设计一个进制转换器程

45、序。包括二进制、八进制、十进制、十六进制数互相转换。通 过此课题,熟练掌握字符串、格式输出、进制换算的各种操作。 课题要求:课题要求: (1)可输入二进制、八进制、十进制、十六进制数; (2)将已输入的数转换成其余进制的数; (3)具有输入输出界面。 3.5.2 设计思想及程序流程框图设计思想及程序流程框图 首先菜单要设计成两级形式,第一级菜单选择输入的进制,第二级菜单选择输出的进 制。 所有数的进制转化通过两个函数来实现,一个是将其他进制的数转换为十进制,另一 个是将十进制的数转换为其他进制的。若输入的数为十进制,只要调用后一个子函数即可; 若输入的数为其他进制的,则先调用前一个子函数,然后调用后一个子函数即可。 为了提高容错性,在输入某一 n 进制的数时应判断每一位的数是否不大于 n,若大于 等于 n,则提示输入错误,重新输入。 3.5.3 逻辑功能程序逻辑功能程序 #include #include #include #include void dis_menu(); /菜单显示 void cho_menu(); /菜单选项 void dis_menu1(); void cho_menu

温馨提示

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

评论

0/150

提交评论