




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年天津市和平区面向甘肃白银会宁籍招聘事业单位工作人员考前自测高频考点模拟试题及完整答案详解一套
- 安全培训效果调查课件
- 2025吉林大学白求恩第一医院病人服务中心陪检员招聘模拟试卷及答案详解(易错题)
- 农村集体宅基地买卖合同7篇
- Glycidyl-eicosapentaenoate-d5-生命科学试剂-MCE
- 安全培训效果评价方式课件
- 2025年河北地质大学选聘工作人员85人模拟试卷及答案详解(名师系列)
- 小学信息安全培训总结课件
- 2025内蒙古鄂尔多斯市水发燃气有限公司招聘6人考前自测高频考点模拟试题及答案详解(名校卷)
- VRAR技术在娱乐产业中的应用前景
- 2025贵州省贵阳市殡仪服务中心公开招聘(编外)工作人员25人考试参考试题及答案解析
- 2025年国家安全知识竞赛试卷(答案+解析)
- 2025年贵州省凯里市辅警招聘考试题题库(含参考答案)
- 2025年四川基层法律服务工作者执业核准考试复习题及答案二
- 2025年全国企业员工全面质量管理知识竞赛题库(含答案)
- 2025年音乐学科会考练习卷及答案
- 大数据产业课件
- 潮汐能发电站课件
- 化妆详细教程课件
- 良好学习习惯养成课件
- 国际化跨国经营中的伦理问题概述
评论
0/150
提交评论