收藏 分享(赏)

南京邮电大学软件设计.doc

上传人:精品资料 文档编号:8438213 上传时间:2019-06-27 格式:DOC 页数:57 大小:788KB
下载 相关 举报
南京邮电大学软件设计.doc_第1页
第1页 / 共57页
南京邮电大学软件设计.doc_第2页
第2页 / 共57页
南京邮电大学软件设计.doc_第3页
第3页 / 共57页
南京邮电大学软件设计.doc_第4页
第4页 / 共57页
南京邮电大学软件设计.doc_第5页
第5页 / 共57页
点击查看更多>>
资源描述

1、南 京 邮 电 大 学软件设计报告学 号:姓 名: 专 业:2014 年 06 月 23 日2014 年 07 月 04 日目 录第一章 软件设计介绍 .1第二章 软件开发平台简介 .2第三章 软件设计的内容 .33.1 分数统计软件(A1) 33.1.1 设计题目及要求 33.1.2 设计思想及程序流程框图 33.1.3 逻辑功能程序 43.1.4 调试运行结果 63.1.5 问题与改进、完善方向 83.2 打字软件(A2) 93.2.1 设计题目及要求 93.2.2 设计思想及程序流程框图 93.2.3 逻辑功能程序 103.2.4 调试运行结果 123.2.5 问题与改进、完善方向 13

2、3.3 文本编辑器(A3) 143.3.1 设计题目及要求 143.3.2 设计思想及程序流程框图 143.3.3 逻辑功能程序 153.3.4 调试运行结果 173.3.5 问题与改进完善方向 173.4 加密软件(A4) 203.4.1 设计题目及要求 203.4.2 设计思想及程序流程框图 203.4.3 逻辑功能程序 213.4.4 调试运行结果 243.4.5 完善方向 253.5 进制转换器(A5) 263.5.1 设计题目及要求 263.5.2 设计思想及程序流程框图 263.5.3 逻辑功能程序 273.5.4 调试运行结果 313.5.5 问题与改进完善方向 323.6 学生

3、成绩核算系统的设计与实现(B1) 333.6.1 设计题目及要求 333.6.2 设计思想及程序流程框图 333.6.3 逻辑功能程序 343.6.4 调试运行结果 403.6.5 完善方向 423.7 模拟电信计费系统的设计与实现(B2) 433.7.1 设计题目及要求 433.7.2 设计思想及程序流程框图 443.7.3 逻辑功能程序 453.7.4 调试运行结果 523.7.5 完善方向 54第四章 心得体会 .551第一章 软件设计介绍一、软件设计的性质、目的本课程是一门技能训练课,为在校学生的必修课程。通过设计培养学生良好的编程习惯,使学生掌握编程的基本步骤,规范学生的编写程序的格

4、式,锻炼学生编写程序的能力,为将来编写较大程序的打好基础。二、软件设计的任务通过集中时间上机实验,使学生充分发挥已有的编程能力,熟悉编译环境,选择若干课题,进行审题、分析、设计和调试,并根据要求写出实验报告。三、实验内容软件设计课题共分 A 、B 两档。A 档共 5 题,第一周完成;B档共 2 题,第二周完成。四、考核办法考核采取程序验收和面试的方法进行。其中,程序验收及面试占 50%,实验报告占 50%。在考核过程中,若发现抄袭程序者,所抄袭的程序按零分记。注:如有以下情况,视为抄袭:1、 与已验收的程序明显雷同;2、 面试时不能解释程序中的某些基本功能,或对所写程序一无所知。2第二章 软件

5、开发平台简介Microsoft Visual C+是 Microsoft 公司推出的开发 Win32 环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写 和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock 网络、3D 控制界 面。 它以拥有“语法高亮” ,IntelliSense(自 动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试 的程序。其编译及建置系统以预编译头文件、最小重建

6、功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。3第三章 软件设计的内容3.1 分数统计软件(A1)3.1.1 设计题目及要求题目:分数统计要求:(1)输入某班级学生的姓名、分数;(2)对(1)的分数进行降幂排列并输出;(3)具有输入输出界面。3.1.2 设计思想及程序流程框图设计思想:先输出程序菜单,然后按照菜单选项进行操作,选择选项一:即先输入要排序的学生人数,然后利用循环语句按次输入学生姓名和成绩,直至将学生姓名和分数全输入,输入完后按 enter 后,在程序界面上显示刚才输入的内容。选择选项二:则运行程序中的按照成绩的降序功能输出排序后的学

7、生学号、学生姓名和学生成绩。选择选项三:则程序正常退出。程序流程框图:开 始输入学生人数 n输出菜单选项输入选项n输入学生姓名 name和分数score用程序将学生分数排序输出排序后的学生数据结 束43.1.3 逻辑功能程序要求:(1)输入某班级学生的姓名、分数;(2)对(1)的分数进行降幂排列并输出;(3)具有输入输出界面。源代码:#include#include#include#includeint num; /人数struct studentchar Class_ID20; /班级学号char name20; /姓名float score; /成绩stu100; void menu();

8、 /菜单显示函数void choose(); /菜单选择void input_information(); /学生信息输入函数void output_information(); /学生信息显示函数void rank(); /学生成绩降序排列void number(); /控制学生人数函数void main()while(1) int i;char ch;menu(); choose();ch=getchar();/*菜单*/void menu() getchar();printf(“ n“);printf(“ 分数统计程序 n“);printf(“ nn“);5printf(“ 录入学生数据

9、-请输入:1 nn“); printf(“ 显示学生数据-请输入:2 nn“); printf(“ 成绩降序排列-请输入:3 nn“);printf(“ 退 出 程 序 -请输入:4 nn“);printf(“t 请正确选择(如:1,2,3 或则 4):“);/*选择*/void choose() char choos;do scanf(“%c“,while(choos4);switch(choos)case 1: number();input_information(); break;case 2: output_information();break;case 3: rank(); out

10、put_information(); break;case 4: printf(“n“); exit(1);/*输入*/void input_information() int i;for(i=0;istumax.score)max=j;if(max!=i) temp=stui;stui=stumax;stumax=temp;/*学生人数 */void number() printf(“nt 请输入学生人数: “);scanf(“%d“,printf(“n“);3.1.4 程序调试结果:1、录入学生数据:72、显示学生数据:3、排名显示:4 退出程序:83.1.5:编程时候遇到的问题及解决方案

11、问题:#includestruct student char name20;int score;void main() struct student boy3;int i;char ch;for(i=0;i#include#include#include#include#define N 20 /定义产生的字符串最长为 10 个字符int i,j,length; char ch,aN,bN; /aN为输入, bN为随机产生 void menu();void choose();void right(char *a,char *b,int length);void input(char *a,in

12、t length);void found(char *b,int length);void main()menu();srand(time(NULL);length=1+rand()%N;while(1) choose();printf(“nt 请继续选择:“); /*菜单*/void menu() printf(“ n“);printf(“ 打字程序 n“);printf(“ n“);printf(“ 产生随机字符串-请输入:1 n“); printf(“ 输入产生字符串-请输入:2 n“); 11printf(“ 正确率计算输出-请输入:3 n“);printf(“ 退 出 程 序-请输入

13、:4 n“);printf(“t 请正确选择(如:1,2,3 或则 4):“);/*选择*/void choose() char choos;do scanf(“%c“,while(choos4);switch(choos) case 1: found(b,length);break;case 2: input(a,length);break;case 3: right(a,b,length);break;case 4: printf(“n“);exit(1);/*产生随机字符串序列 */void found(char *b,int length)printf(“t“);for(i=0;i90

14、void create_file(FILE *fp,char *fname);void write_file(FILE *fp,char *fname);void read_file(FILE *fp,char *fname);int main()FILE *fp;int count=0;char num100;int flag1,flag2,flag3;char F_name20;while(1)menu();printf(“t 请选择你要进行的文件操作:“);scanf(“%s“,num);getchar();while(strlen(num)1|num052)printf(“t 输入错误

15、!请重新输入:“);scanf(“%s“,num);getchar();switch(num0)case 1: flag1=1;flag1=0;create_file(fp,F_name); break;case 2: flag2=1;flag2=0;write_file(fp,F_name); break;case 3: flag3=1;flag3=0;read_file(fp,F_name); break;case 4: printf(“t“); exit(0); 16return 0;void menu()getchar();printf(“ n“);printf(“ 文本编辑器 n“)

16、;printf(“ nn“);printf(“ 建立文本-请输入:1 n“); printf(“ 编辑文本-请输入:2 n“); printf(“ 读取文本-请输入:3 n“);printf(“ 退出程序-请输入:4 nn“); void write_file(FILE *fp,char *fname)char ch;printf(“t 请键入编辑的文件名(如 D:name.txt):nt“);gets(fname);if(fp=fopen(fname,“w“)=NULL)printf(“t 不能打开文件!n“);exit(0);printf(“t 请输入内容(以#号键结束):nt“);ch=

17、getchar();while(ch!=#)fputc(ch,fp);ch=getchar();printf(“nn“);getchar();fclose(fp);void create_file(FILE *fp,char *fname)printf(“t 请键入新建的文件名(如 D:name.txt):nt“);gets(fname);17if(fp=fopen(fname,“w+“)=NULL)printf(“t 不能打开文件!n“);exit(0);printf(“t%s 文件已经创建好!nn“,fname);fclose(fp);void read_file(FILE *fp,cha

18、r *fname)char ch;printf(“t 请键入读取的文件名(如 D:name.txt):nt“);gets(fname);if(fp=fopen(fname,“r“)=NULL)printf(“t 不能打开文件!n“);exit(0);printf(“t“);while(ch=fgetc(fp)!=EOF)putchar(ch);printf(“tnn“);fclose(fp);3.3.4 结果及完善方向运行结果:18193.3.5:编程时候遇到的问题及解决方案编写这个程序还比较顺利,没有遇到困难,因为里面就是文件的读、写,注意细节,唯一注意的是:题目要求的是.dat 文档(xp

19、 系统的文本文档) ,而我的电脑室 win7,里面的文本文档后缀是.txt,其他的没什么大问题。3.3.6 完善方向:本程序界面美观,通过程序优化,在输入菜单选择项时即使输入的是很长的混乱字符,程序也会提示你输入错误,不会发生程序崩溃的现象。本程序可以根据指定文件名进行建立文件、读取文件、编辑文件等操作。文本再次编辑时,将覆盖上次编辑的内容,可以设计将这一点完善。可以用循环函数设计编辑文本。203.4 加密软件(A4)3.4.1 设计题目及要求题目:加密要求:(1)输入任意一段明文 M,以及密钥 K;(2)根据以下公式将其转换为密文 C。Ci = mi + K ,其中 i = 0,1,n-1

20、, K 为密钥;(3)具有输入输出界面。3.4.2 设计思想及程序流程框图设计思想:先设计一个功能菜单,然后由用户选择。如果选择加密功能这请用户输入一段明文然后输入密钥,最后显示明文和转换成的密文。若选择解密功能则请用户输入一段密文然后输入密钥,最后显示密文和解密后的明文。选择退出程序则退出程序。程序流程框图:3 21开 始输出功能菜单输入 nnum结 束输入明文 m和密钥 kCi=mi+k输出 m 和密文 C输入密文C 和密钥 kmi=Ci-k输出密文 C和明文 m213.4.3 逻辑功能程序/*-程序名称:加密要求:(1)输入任意一段明文 M,以及密钥 K;(2)根据以下公式将其转换为密文

21、 C。Ci = mi + K ,其中 i = 0,1,n-1 , K 为密钥;(3)具有输入输出界面。-*/#include#include #include void dis_menu();void set_menu();void encryption(char *m, char *c, char *key); void decryption(char *m, char *c, char *key); int main()while(1)dis_menu();set_menu();return 0;void dis_menu()printf(“ n“);printf(“ 加密解密程序 n“)

22、;printf(“ nn“);printf(“ 加密请输入:1 nn“); printf(“ 解密请输入:2 nn“); printf(“ 退出请输入:3 nn“);printf(“tt 请选择你要进行的操作: “);void set_menu()char m100=“;char c100=“;char key100=“;22char n100;scanf(“%s“,n);if(strlen(n)1)printf(“t 输入错误!请重新输入:“); set_menu();elseswitch(*n)case 1: encryption(m, c, key); break;case 2: dec

23、ryption(m, c, key); break;case 3: printf(“t“); exit(1); break;default: printf(“t 输入错误!请重新输入:“); set_menu(); break;void encryption(char *m, char *c, char *key)printf(“ - - - - n“);printf(“ | 加密环节 | n“);printf(“ - - - - nn“);printf(“t 请输入需加密的明文:“);scanf(“%s“,m);printf(“t 请输入密钥:“);scanf(“%s“,key);while

24、(strlen(key)1)printf(“t 输入密钥有误,请重输:“);scanf(“%s“,key);int i,length;length=strlen(m);printf(“t 你输入的明文为:“);printf(“%sn“,m);for(i=0;i1)printf(“t 输入密钥有误(应输入一个字符),请重输:“);scanf(“%s“,key);int i,length;length=strlen(c);printf(“t 你输入的密文为:“);printf(“%sn“,c);for(i=0;i#include#include#includevoid menu(); /菜单voi

25、d choose(); /菜单设置void output(int num,int n); /十进制转换为其他进制int input(int n); /其他进制转换成十进int main()while(1)menu();choose();return 0; /*菜单*/void menu()printf(“ n“);printf(“ 进制转换程序 n“);printf(“ n“);printf(“ 输入 二 进制-请输入:1 n“); printf(“ 输入 八 进制-请输入:2 n“); printf(“ 输入 十 进制-请输入:3 n“);printf(“ 输入 十六进制-请输入:4 n“)

26、;printf(“ 退 出 程 序-请输入:5 n“);printf(“ 请选择操作:“); void choose()int num;char n500;scanf(“%s“,n);printf(“n“);if(strlen(n)1)28printf(“t 输入错误!请重新输入:“); choose();elseswitch(*n)case 1: num=input(2); output(num,8); printf(“t 转换 10 进制输出为:%dn“,num); output(num,16); printf(“tn“); break;case 2: num=input(8); outp

27、ut(num,2); printf(“t 转换 10 进制输出为:%dn“,num); output(num,16); printf(“tn“); break;case 3: num =input(10); output(num,2); output(num,8); output(num,16); printf(“tn“); break;case 4: num=input(16); output(num,2); output(num,8); printf(“t 转换 10 进制输出为:%dn“,num); printf(“tn“); break;case 5: printf(“t“); exit(1); break;default: printf(“t 输入错误!请重新输入:“); choose(); break; void output(int num,int n)char num_tp100;int i=0;printf(“t 转换%d 进制输出为:“,n);if(n9

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报