[工学]南京邮电大学软件设计报告.doc

上传人:音乐台 文档编号:1977037 上传时间:2019-01-27 格式:DOC 页数:94 大小:1.55MB
返回 下载 相关 举报
[工学]南京邮电大学软件设计报告.doc_第1页
第1页 / 共94页
[工学]南京邮电大学软件设计报告.doc_第2页
第2页 / 共94页
[工学]南京邮电大学软件设计报告.doc_第3页
第3页 / 共94页
亲,该文档总共94页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[工学]南京邮电大学软件设计报告.doc》由会员分享,可在线阅读,更多相关《[工学]南京邮电大学软件设计报告.doc(94页珍藏版)》请在三一文库上搜索。

1、软件设计报告院系:光电工程学院学号:B09030521姓名:李志明2012年4月16日2012年4月26日软件设计报告94第一章、软件设计课程简介3 1. 涉及的课程及知识点3 2. 目的与任务3 3. 主要仪器与设备3第二章、软件设计内容3 1.分数统计3 a课题内容3 b. 设计流程图4 c源程序5 d结果及完善10 2. 分数统计11 a课题内容11 b. 设计流程图11 c源程序13 d结果及完善17 3文本编辑器17 a课题内容17 b. 设计流程图17 c源程序19 d结果及完善28 4. 加密30 a课题内容30 b. 设计流程图30 c源程序31 d结果及完善35 5.进制转换

2、器35 a课题内容36 b. 设计流程图37 c源程序38 d结果及完善48 6.学生成绩核算系统设计与实现50 a课题内容50 b. 设计流程图52 c源程序54 d结果及完善69 7. 模拟电信计费系统的设计与实现73 a课题内容76 b. 设计流程图76 c源程序78 d结果及完善91 第三章、心得体会93第四章、附加文件951、 软件设计课程简介1. 涉及课程及知识点高级语言程序设计,常量、变量、表达式的基本知识;函数的定义与调用;文件读写;数组、指针、结构体等自定义类型的使用;排序等知识。2. 目的与任务目的:通过集中时间上机实验,对学生的程序设计能力进行一次综合训练,使学生充分发挥

3、已有的编程能力,熟悉编译环境。选择若干课题,进行审题、分析、设计和调试,在程序准备、程序实现、完成文档、答辩验收过程中,将全面巩固已学过的编程知识,全面提高编程技能,在编程风格、调试器的使用、测试技术等方面得到全面训练。3. 主要仪器设备硬件:微型计算机软件:C、C+、Visual C+等1、 软件设计内容1. 分数统计a. 课题内容:设计一个分数统计程序。包括学生信息的输入输出以及排序。通过该课题全面熟悉数组、字符串、文件的使用,掌握程序设计的基本方法及友好界面的设计。 课题要求:(1)输入某班级学生的姓名、分数;(2)对(1)的分数进行降幂排列并输出;(3)具有输入输出界面。b. 算法流程

4、图:开始 1. 输入学生信息2. 退出 选择操作N选择正确否徐 YChoice=2Choice=1输入学生信息姓名分数 Choice=31. 显示学生信息2. 按分数降幂排序3. 增加学生信息4. 退出 Choice=2选择正确否徐 Ychoice=4Choice=1显示学生信息退出c. 源程序:#include#include#include #includestruct stuchar name100;float score;typedef struct stu stu;void addimfor();int num=0;int NUM=100;stu data100;void paixu

5、();void show();void menu0();void menu1();void choose();void main()char cho100;int len;char choice;int a=1;printf(tttt-n); printf(tttt welcome!n);printf(tttt-n);menu0();doprintf(请选择操作:);scanf(%s,cho);len=strlen(cho);choice=cho0;if(len=1&choice=0&choice=NUM)printf(tttt无法再增加学生信息!n);elsedo printf(姓名:);

6、scanf(%s,(datanum.name); printf(分数:);scanf(%f,&fen);if(fen100|fen0)system(cls);printf(ttt -n);printf(tttt分数有误,本次操作无效!n);printf(ttt -n);b=1;elsedatanum.score=fen;b=0; while (b);num+;system(cls);void paixu()char temp100;float fen;for(int i=0;inum;i+) for(int j=i+1;jdatai.score)fen=dataj.score;dataj.sc

7、ore=datai.score;datai.score=fen;strcpy(temp,dataj.name);strcpy(dataj.name,datai.name);strcpy(datai.name,temp);void show()system(cls);for(int i=0;i=0&choice1=3)b=0;elseprintf(ttt -n);printf(tttt 选择有误!);printf(n);printf(ttt -n);menu1();b=1; while (b);switch(choice1)case 1:if(num=0)system(cls);printf(t

8、tt -n);printf(tttt 查无学生信息!n);printf(ttt -n);menu1();choose();elseshow();choose();break;case 2:paixu();system(cls);menu1();choose();break;case 3:system(cls);addimfor();menu1();choose();break;case 0:system(cls);exit(1);break;D.程序运行截图略。2. 打字程序a. 课题内容:设计一个打字程序。包括随机产生字符串,以及字符串比较和统计。 课题要求:(1)随机产生一字符串,每次产生

9、的字符串内容、长度都不同;(2)根据(1)的结果,输入字符串,判断输入是否正确,输出正确率;(3)具有输入输出界面。b. 流程图:开始1. 进入打字程序2.退出选择正确否?NChoice=1Choice=2 Y产生一串随机长度随机组合的字符串输入字符显示正确率1. 继续操作2. 退出选择正确否? N YChoice=2Choice=1结束c. 源程序#include #include #include #include void menu();void menu1();void print();char choice;void main()char cho100;int len;printf(

10、ttt*n);printf(ttt* 欢迎使用打字程序 *n);printf(ttt*nnn);domenu();printf(输入操作选择:);scanf(%s,&cho);choice=cho0;len=strlen(cho);if(len=1&(choice=1&choice=1&i=10)ma=0;while(ma);system(cls);char* s1=(char*)malloc(i*sizeof(char);/申请动态空间if(!s1)printf(空间申请失败!);exit(1);/申请字符串空间printf(tttt-n);printf(tttt );for(int n=0

11、;ni;n+)j=rand();if(j57&j90&j122)j=rand();n=n-1;elses1n=j;printf(%c,j); s1n=0;printf(n);printf(tttt-n);len1=strlen(s1);printf(输入字符串:);scanf(%s,s2);len2=strlen(s2); if(len2=len1)for(int k=0;klen1;k+)if(s1k=s2k)num+;system(cls);printf(正确率:);NUM=num/(double)len1;printf(%d%n,int(NUM*100);elseif(len2len1)

12、for(int k=0;klen2;k+)if(s1k=s2k)num+;system(cls);printf(正确率:);NUM=num/(double)len1;printf(%d%n,int(NUM*100);elsefor(int k=0;k=0&choice=2)switch(choice)case 1: print();break;case 0:system(cls);printf(ttt*n);printf(ttt* 感谢使用本程序 *n);printf(ttt* 谢谢! *n);printf(ttt*nnn);exit(1);break;elsesystem(cls);prin

13、tf(ttt-n);printf(ttt-t选择无效,请重输t-n);printf(ttt-nnn);while(choice);void menu()printf(ttt-1.进入打字程序-n);printf(ttt-2.退出 -n);void menu1()printf(ttt -1.继续操作 -n);printf(ttt -0.退出 -n);d. 结果及改善:略。3. 文本编辑器a. 课题内容:设计一个简单的文本编辑器,该系统要求对一个文本文件中的内容进行各种常规操作,如:插入、删除、查找、替换等功能。 课题要求: (1)编辑文本; (2)保存、打开指定位置的文本文件; (3)具有输入输

14、出界面。b. 流程图开始1. 打开文件2. 退出Choice=6输入正确否?N选择操作YChoice=2Choice=1输入文件名及路径文件能否打开?N Y1.插入2.删除3.查找4.替换5.显示6.返回0.退出显示文件内容Choice=1 choice=3输入查找的字符串输入插入的字符串输入删除的字符串输入替换的字符串及源字符串Choice=2Choice=4Choice=5结束Choice=0c. 源程序#include#include#include#includeFILE* fp=NULL;FILE* fp1;char name50;void menu0();void Open();v

15、oid choose0();void menu1();void choose1();void insert();void check();void replace();void deletef();void show();void welcome();void welcome()printf(ttt -n);printf(tttt欢迎使用本程序!n);printf(ttt -n);/-主程序-void main()welcome();choose0();choose1();return;/-一级菜单-void menu0()printf(-);printf(tttt1.打开文件n);print

16、f(tttt0.退出n);/-打开文件-void Open()char ch;system(cls);printf(请输入要打开的文件名及路径:);scanf(%s,name);fp=fopen(name,r+);if(!fp)system(cls);printf(ttt =文件无法打开!=n);choose0();system(cls);printf(-); while(ch=fgetc(fp)!=EOF)putchar(ch);rewind(fp);printf(n);printf(-);/void show()char ch;fp=fopen(name,r);if(!fp)printf(

17、tttt =文件无法打开!=n);choose0();printf(-); while(ch=fgetc(fp)!=EOF)putchar(ch);rewind(fp);printf(-);menu1();/-一级选择-void choose0()char choice;char fen100;int a=1,len;menu0();do printf(请选择操作:);scanf(%s,fen);len=strlen(fen);choice=fen0;if(choice=0&choice=0&choice=6&len=1)a=0;elsesystem(cls); printf(ttt-n);

18、printf(ttt 无效操作,请重新选择n);printf(ttt-n);menu1();printf(请选择操作:); a=1;while(a);switch(choice)case 1:insert();menu1();choose1();break;case 2:deletef();system(cls);menu1();choose1();break;case 3:system(cls);show();check();menu1();choose1();break;case 4:system(cls);replace();system(cls);menu1();choose1();b

19、reak;case 5:system(cls);show();choose1();break;case 6:system(cls);choose0();break;case 0:system(cls);exit(1);/-插入-void insert()long set;char ch1;char s110000;char s2100;int i=0;while(ch1=fgetc(fp)!=EOF)s1i=ch1;i+;rewind(fp);s1i=0;system(cls);show();printf(请定位你想要插入字符串的地方:);scanf(%d,&set);system(cls);show();printf(输入你插入的字符串:);scanf(%s,s2);int len=strlen(s2);fclose(fp);fp=fopen(name,w);for(int j=0;jset;j+)ch1=s1j;fputc(ch1,fp);for(j=0;jlen;j+)ch1=s2j;fputc(ch1,fp);for(j=set;ji;j+)ch1=s1j;fputc(ch1,fp);fclose(fp);system(cls);/

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1