南京邮电大学软件设计.doc_第1页
南京邮电大学软件设计.doc_第2页
南京邮电大学软件设计.doc_第3页
南京邮电大学软件设计.doc_第4页
南京邮电大学软件设计.doc_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

南 京 邮 电 大 学 软件设计报告 学学 号号: 姓姓 名名: 专专 业业: 2014 年年 06 月月 23 日日2014 年年 07 月月 04 日日 目目 录录 第一章第一章 软件设计介绍软件设计介绍 .1 第二章第二章 软件开发平台简介软件开发平台简介 .2 第三章第三章软件设计的内容软件设计的内容.3 3.1分数统计软件(分数统计软件(A1)3 3.1.1 设计题目及要求3 3.1.2 设计思想及程序流程框图3 3.1.3 逻辑功能程序4 3.1.4 调试运行结果6 3.1.5 问题与改进、完善方向8 3.2打字软件(打字软件(A2)9 3.2.1 设计题目及要求9 3.2.2 设计思想及程序流程框图9 3.2.3 逻辑功能程序10 3.2.4 调试运行结果12 3.2.5 问题与改进、完善方向13 3.3文本编辑器(文本编辑器(A3)14 3.3.1 设计题目及要求14 3.3.2 设计思想及程序流程框图14 3.3.3 逻辑功能程序15 3.3.4 调试运行结果17 3.3.5 问题与改进完善方向17 3.4加密软件(加密软件(A4)20 3.4.1 设计题目及要求20 3.4.2 设计思想及程序流程框图20 3.4.3 逻辑功能程序21 3.4.4 调试运行结果24 3.4.5 完善方向25 3.5进制转换器(进制转换器(A5)26 3.5.1 设计题目及要求26 3.5.2 设计思想及程序流程框图26 3.5.3 逻辑功能程序27 3.5.4 调试运行结果31 3.5.5 问题与改进完善方向32 3.6学生成绩核算系统的设计与实现(学生成绩核算系统的设计与实现(B1)33 3.6.1 设计题目及要求33 3.6.2 设计思想及程序流程框图33 3.6.3 逻辑功能程序34 3.6.4 调试运行结果40 3.6.5 完善方向42 3.7模拟电信计费系统的设计与实现(模拟电信计费系统的设计与实现(B2)43 3.7.1 设计题目及要求43 3.7.2 设计思想及程序流程框图44 3.7.3 逻辑功能程序45 3.7.4 调试运行结果52 3.7.5 完善方向54 第四章第四章 心得体会心得体会 .55 1 第一章第一章 软件设计介绍软件设计介绍 一、软件设计的性质、目的一、软件设计的性质、目的 本课程是一门技能训练课,为在校学生的必修课程。通过设计 培养学生良好的编程习惯,使学生掌握编程的基本步骤,规范学生 的编写程序的格式,锻炼学生编写程序的能力,为将来编写较大程 序的打好基础。 二、软件设计的任务二、软件设计的任务 通过集中时间上机实验,使学生充分发挥已有的编程能力,熟 悉编译环境,选择若干课题,进行审题、分析、设计和调试,并根 据要求写出实验报告。 三、实验内容三、实验内容 软件设计课题共分 A 、B 两档。A 档共 5 题,第一周完成;B 档共 2 题,第二周完成。 四、考核办法四、考核办法 考核采取程序验收和面试的方法进行。其中,程序验收及面试 占 50%,实验报告占 50%。在考核过程中,若发现抄袭程序者,所 抄袭的程序按零分记。 注:如有以下情况,视为抄袭: 1、与已验收的程序明显雷同; 2、面试时不能解释程序中的某些基本功能,或对所写程序一无 所知。 2 第二章第二章 软件开发平台简介软件开发平台简介 Microsoft Visual C+是 Microsoft 公司推出的开发 Win32 环 境程序,面向对象的可视化集成编程系统。它不但具有程序框架自 动生成、灵活方便的类管理、代码编写 和界面设计集成交互操作、 可开发多种程序等优点,而且通过简单的设置就可使其生成的程序 框架支持数据库接口、OLE2,WinSock 网络、3D 控制界 面。 它以拥有“语法高亮” , IntelliSense(自 动编译功能)以及高级除 错功能而著称。比如,它允许用户进行远程 调试,单步执行等。还有允许用户在调试期 间重新编译被修改的代码,而不必重新启动 正在调试 的程序。其编译及建置系统以预编译头文件、最小重建功 能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时 间花费,在大型软件计划上尤其显著。 3 第三章第三章 软件设计的内容软件设计的内容 3.1 分数统计软件(分数统计软件(A1) 3.1.1 设计题目及要求设计题目及要求 题目:分数统计 要求:(1)输入某班级学生的姓名、分数; (2)对(1)的分数进行降幂排列并输出; (3)具有输入输出界面。 3.1.2 设计思想及程序流程框图设计思想及程序流程框图 设计思想:先输出程序菜单,然后按照菜单选项进行操作,选择选项一:即先输入要 排序的学生人数,然后利用循环语句按次输入学生姓名和成绩,直至将学生姓名和分数全 输入,输入完后按 enter 后,在程序界面上显示刚才输入的内容。选择选项二:则运行程序 中的按照成绩的降序功能输出排序后的学生学号、学生姓名和学生成绩。选择选项三:则 程序正常退出。 程序流程框图: 开 始 输入学 生人数 n 输出菜单 选项 输入选项 n 输入学生 姓名 name 和分数 score 用程序将学生 分数排序 输出排序 后的学生 数据 结 束 4 3.1.3 逻辑功能程序逻辑功能程序 要求: (1)输入某班级学生的姓名、分数; (2)对(1)的分数进行降幂排列并输出; (3)具有输入输出界面。 源代码: #include #include #include #include int num; /人数 struct student char Class_ID20; /班级学号 char name20; /姓名 float score; /成绩 stu100; void menu(); /菜单显示函数 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“); 5 printf(“ 录入学生数据-请输入: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(); output_information(); break; case 4: printf(“n“); exit(1); /*输入*/ void input_information() int i; for(i=0;i1|num052) printf(“t 输入错误!请重新输入:“); 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); 16 return 0; void menu() getchar(); printf(“ n“); printf(“ 文本编辑器 n“); 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=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); 17 if(fp=fopen(fname,“w+“)=NULL) printf(“t 不能打开文件!n“); exit(0); printf(“t%s 文件已经创建好!nn“,fname); fclose(fp); void read_file(FILE *fp,char *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 结果及完善方向结果及完善方向 运行结果: 18 19 3.3.5:3.3.5:编程时候遇到的问题及解决方案编程时候遇到的问题及解决方案 编写这个程序还比较顺利,没有遇到困难,因为里面就是文件的读、写,注意细节, 唯一注意的是:题目要求的是.dat 文档(xp 系统的文本文档) ,而我的电脑室 win7,里面 的文本文档后缀是.txt,其他的没什么大问题。 .6 完善方向:完善方向: 本程序界面美观,通过程序优化,在输入菜单选择项时即使输入的是很长的混乱字符, 程序也会提示你输入错误,不会发生程序崩溃的现象。本程序可以根据指定文件名进行建 立文件、读取文件、编辑文件等操作。 文本再次编辑时,将覆盖上次编辑的内容,可以设计将这一点完善。可以用循环函数 设计编辑文本。 20 3.4 加密软件(加密软件(A4) 3.4.1 设计题目及要求设计题目及要求 题目:加密 要求:(1)输入任意一段明文 M,以及密钥 K; (2)根据以下公式将其转换为密文 C。 Ci = mi + K ,其中 i = 0,1,n-1 , K 为密钥; (3)具有输入输出界面。 3.4.2 设计思想及程序流程框图设计思想及程序流程框图 设计思想:先设计一个功能菜单,然后由用户选择。如果选择加密功能这请用户输入 一段明文然后输入密钥,最后显示明文和转换成的密文。若选择解密功能则请用户输入一 段密文然后输入密钥,最后显示密文和解密后的明文。选择退出程序则退出程序。 程序流程框图: 3 2 1 开 始 输出功能菜单 输入 n num 结 束 输入明文 m 和密钥 k Ci=mi+k 输出 m 和密 文 C 输入密文 C 和密钥 k mi=Ci-k 输出密文 C 和明文 m 21 3.4.3 逻辑功能程序逻辑功能程序 /*- 程序名称:加密 要求: (1)输入任意一段明文 M,以及密钥 K; (2)根据以下公式将其转换为密文 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“); printf(“ nn“); printf(“ 加密请输入:1 nn“); printf(“ 解密请输入:2 nn“); printf(“ 退出请输入:3 nn“); printf(“tt 请选择你要进行的操作:“); void set_menu() char m100=“; char c100=“; char key100=“; 22 char n100; scanf(“%s“,n); if(strlen(n)1) printf(“t 输入错误!请重新输入:“); set_menu(); else switch(*n) case 1: encryption(m, c, key); break; case 2: decryption(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(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;i1) 28 printf(“t 输入错误!请重新输入:“); choose(); else switch(*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); output(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 29 else num_tpi=0+num%16; num=num/16; i+; num_tpi=0; while(i!=0) putchar(num_tp-i); printf(“n“); int input(int n) char temp100,ch,m; int num=0,i=0,flag=1,count=0; while(flag) i=0; flag=0; count=0; fflush(stdin); /清空输入缓冲区,确保读入无错 printf(“t 请输入%d 进制数:“,n); m=48+n-1; if(nn; if(strlen(n)1) printf(“t 输入错误!请重新输入:“); choose(); else switch(*n) case 1: dis_score(); break; case 2: dis_zp(); write_file(); break; case 3: dis_proportion(); break; case 4: coutch; if(An; if(strlen(n)1) 47 coutnumber; for(m=0;mnumber; for(m=0;m5;m+) if(strcmp(number,userm.num)=0) index=m; flag=1; if(flag=0) cout“t 对不起,没有该号码的信息!“endlendl; huadan_check(); else coutendl“t 以下是您查询号码的详细话单信息:“endl; printf(“t%-10s%-10s%-10s%-10sn“,“用户名“,“主叫号码“,“被叫号码“,“通话时长(秒) “); for(m=0;mi;m+) if(strcmp(number,huadanm.zj_num)=0) printf(“t%-10s%-10s%-10s%- 10dn“,,huadanm.zj_num,huadanm.bj_num,huadanm.time); coutendlendl; 3.7.4 运行结果: 52 53 54 程序产生的费用

温馨提示

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

评论

0/150

提交评论