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

下载本文档

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

文档简介

88/88院系:光电工程学院学号:B09030521姓名:李志明院系:光电工程学院学号:B09030521姓名:李志明2012年4月16日——2012年4月26日软件设计报告\o"1-3"\h\z\u\l19200第一章,软件设计课程简介3\l199511.涉及的课程及知识点3\l72292.目的与任务3\l17813.主要仪器与设备3\l29975第二章,软件设计内容3\l299751.分数统计3\l29975a课题内容3\l29975b.设计流程图4\l29975c源程序5\l29975d结果及完善10\l299752.分数统计11\l29975a课题内容11\l29975b.设计流程图11\l29975c源程序13\l29975d结果及完善17\l299753文本编辑器17\l29975a课题内容17\l29975b.设计流程图17\l29975c源程序19\l29975d结果及完善28\l299754.加密30\l29975a课题内容30\l29975b.设计流程图30\l29975c源程序31\l29975d结果及完善35\l299755.进制转换器35\l29975a课题内容36\l29975b.设计流程图37\l29975c源程序38\l29975d结果及完善48\l299756.学生成果核算系统设计与实现50\l29975a课题内容50\l29975b.设计流程图52\l29975c源程序54\l29975d结果及完善69\l299757.模拟电信计费系统的设计与实现73\l29975a课题内容2997576\l29975b.设计流程图2997576\l29975c源程序78\l29975d结果及完善91\l29975第三章,心得体会93\l29975第四章,附加文件95软件设计课程简介涉及课程及知识点《高级语言程序设计》,常量,变量,表达式的基本知识;函数的定义与调用;文件读写;数组,指针,结构体等自定义类型的运用;排序等知识。目的与任务目的:通过集中时间上机试验,对学生的程序设计实力进行一次综合训练,使学生充分发挥已有的编程实力,熟识编译环境。选择若干课题,进行审题,分析,设计和调试,在程序打算,程序实现,完成文档,答辩验收过程中,将全面巩固已学过的编程知识,全面提高编程技能,在编程风格,调试器的运用,测试技术等方面得到全面训练。主要仪器设备硬件:微型计算机软件:C,,等软件设计内容分数统计课题内容:设计一个分数统计程序。包括学生信息的输入输出以及排序。通过该课题全面熟识数组,字符串,文件的运用,驾驭程序设计的基本方法及友好界面的设计。课题要求:(1)输入某班级学生的姓名,分数;(2)对(1)的分数进行降幂排列并输出;(3)具有输入输出界面。算法流程图:开始开始输入学生信息输入学生信息退出选择操作选择操作 N选择正确否徐选择正确否徐 Y2121输入学生信息姓名分数输入学生信息姓名分数3显示学生信息显示学生信息按分数降幂排序增加学生信息退出2选择正确否徐选择正确否徐Y 41显示学生信息显示学生信息退出退出源程序:<><><><>{ [100]; ;};;();0;100;[100];();();0();1();();(){ [100]; ; ; 1; ("\t\t\t\\n");("\t\t\t\t!\n"); ("\t\t\t\\n"); 0(); { ("请选择操作:"); (""); (); [0]; (1>='0'<='2') { 0; } { (""); ("\t\t\t\n"); ("\t\t\t\t选择有误!\n"); ("\t\t\t\n"); 0(); 1; } }(a); () { '1': { (0) { (""); ("\t\t\t\n"); ("\t\t\t\t查无学生信息!\n"); ("\t\t\t\n"); 1(); (); } { (); (); } ; } '2': (""); (); 1(); (); ; '0': (1); ; } ;}(){ ; 1; (>) ("\t\t\t\t无法再增加学生信息!\n"); { { ("姓名:"); ("",([])); ("分数:"); (""); (>100<0) { (""); ("\t\t\t\n"); ("\t\t\t\t分数有误,本次操作无效!\n"); ("\t\t\t\n"); 1; } { []; 0; } }(b); ; } ("");}(){ [100]; ; (0<) { (1<) { ([j]>[i]) { [j]; [j][i]; [i]; ([j]); ([j][i]); ([i]); } } }}(){ (""); (0<) { (""); ("姓名:"); (""[i]); ("分数:"); ("%3.1f"[i]); ("\n"); (""); 1(); }}0(){ (""); ("\t\t\t\1.显示学生信息\n"); ("\t\t\t\2.添加学生信息\n"); ("\t\t\t\0.退出\n");}1(){ ("\t\t\t\1.显示学生信息\n"); ("\t\t\t\2.按分数由高到低排序\n"); ("\t\t\t\3.添加学生信息\n"); ("\t\t\t\0.退出\n");}(){ 1[100]; 1; 1; 1; { ("请选择操作:"); (""1); 1(1); 11[0]; (111>='0'1<='3') { 0; } { ("\t\t\t\n"); ("\t\t\t\t选择有误!"); ("\n"); ("\t\t\t\n"); 1(); 1; } }(b); (1) { '1': { (0) { (""); ("\t\t\t\n"); ("\t\t\t\t查无学生信息!\n"); ("\t\t\t\n"); 1(); (); } { (); (); } ; } '2': (); (""); 1(); (); ; '3': (""); (); 1(); (); ; '0': (""); (1); ; }}D.程序运行截图略。。。。。。。。。2.打字程序课题内容:设计一个打字程序。包括随机产生字符串,以及字符串比较和统计。课题要求:(1)随机产生一字符串,每次产生的字符串内容,长度都不同;(2)依据(1)的结果,输入字符串,推断输入是否正确,输出正确率;(3)具有输入输出界面。流程图:开始开始进入打字程序2.退出进入打字程序2.退出选择正确否?选择正确否? N12 Y12产生一串随机长度随机组合的字符串产生一串随机长度随机组合的字符串输入字符输入字符显示正确率显示正确率接着接着操作退出选择正确否?选择正确否?NY2121结束结束源程序<><><><>();1();();;(){ [100]; ; ("\t\t\t********************************\n"); ("\t\t\t*欢迎运用打字程序*\n"); ("\t\t\t********************************\n\n\n"); { (); ("输入操作选择:"); (""); [0]; (); (1(>='1'<='2')) { () { '1': (); ; '2': (""); ("\t\t\t********************************\n"); ("\t\t\t*感谢运用本程序*\n"); ("\t\t\t*感谢!*\n"); ("\t\t\t********************************\n\n\n"); (1); ; } } { (""); ("\t\t\\n"); ("\t\t\\t选择无效,请重输\\n"); ("\t\t\\n\n\n"); } }(); ;}(){ s2[100]; i; 0; 1; ; j; 12; (()); { (); (i>=1<=10) { 0; } }(); (""); *s1=(*)(i*())申请动态空间 (1) { ("空间申请失败!"); (1); }申请字符串空间 ("\t\t\t\\n"); ("\t\t\t\t"); (0<) { (); (j<48(j>57<65)(j>90<97)>122) { (); 1; } { s1[n]; (""); } }s1[n]='\0'; ("\n"); ("\t\t\t\\n"); 1(s1); ("输入字符串:"); (""2); 2(s2); (21) { (0<1) { (s1[k]2[k]) { ; } } (""); ("正确率:"); ()1; ("\n"(*100)); } { (2<1) { (0<2) { (s1[k]2[k]) ; } (""); ("正确率:"); ()1; ("\n"(*100)); } { (0<1) { (s1[k]2[k]) ; } (""); ("正确率:"); ()2; ("\n",()(*100)); } } 1[100]; 3; { 1(); ("输入操作选择:"); (""1); 3(1); 1[0]; (31>='0'<='2') { () { '1': (); ; '0': (""); ("\t\t\t********************************\n"); ("\t\t\t*感谢运用本程序*\n"); ("\t\t\t*感谢!*\n"); ("\t\t\t********************************\n\n\n"); (1); ; } } { (""); ("\t\t\\n"); ("\t\t\\t选择无效,请重输\\n"); ("\t\t\\n\n\n"); } }();}(){ ("\t\t\1.进入打字程序\n"); ("\t\t\2.退出\n");}1(){ ("\t\t\t1.接着操作\n"); ("\t\t\t0.退出\n");}结果及改善:略。。。。。。3.文本编辑器课题内容:设计一个简单的文本编辑器,该系统要求对一个文本文件中的内容进行各种常规操作,如:插入,删除,查找,替换等功能。课题要求:(1)编辑文本;(2)保存,打开指定位置的文本文件;(3)具有输入输出界面。流程图开始开始打开文件打开文件退出 6输入正确否?输入正确否? N选择操作 Y选择操作2121输入文件名及路径输入文件名及路径文件能否打开?文件能否打开? NY1.插入2.删除3.查找4.替换5.显示6.返回0.退出显示文件内容1.插入2.删除3.查找4.替换5.显示6.返回0.退出显示文件内容 1 3输入查找的字符串输入插入的字符串输入查找的字符串输入插入的字符串输入删除的字符串输入删除的字符串输入替换的字符串及源字符串2输入替换的字符串及源字符串45结束结束 0源程序<><><><>*;*1;[50];0();();0();1();1();();();();();();();(){ ("\t\t\t\n"); ("\t\t\t\t欢迎运用本程序!\n"); ("\t\t\t\n");}主程序(){ (); 0(); 1(); ;}一级菜单0(){ (""); ("\t\t\t\t1.打开文件\n"); ("\t\t\t\t0.退出\n");}打开文件(){ ; (""); ("请输入要打开的文件名及路径:"); (""); (,""); () { (""); ("\t\t\t文件无法打开!\n"); 0(); } (""); ("");((())) { (); } (); ("\n"); ("");}(){ ; (,"r"); () { ("\t\t\t\t文件无法打开\n"); 0(); } ("");((())) { (); } (); (""); 1();}一级选择0(){ ; [100]; 1; 0(); {("请选择操作:"); (""); (); [0]; (>='0'<='1'1) 0; { (""); ("\t\t\\n"); ("\t\t\t无效操作,请重新选择\n"); ("\t\t\\n"); 0(); 1; } }(a); () { '1': { (); 1(); 1(); } ; '0': (""); (1); ; }}二级菜单1(){ ("\t\t\t\1.插入\n"); ("\t\t\t\2.删除\n"); ("\t\t\t\3.查找\n"); ("\t\t\t\4.替换\n"); ("\t\t\t\5.显示\n"); ("\t\t\t\6.返回\n"); ("\t\t\t\0.退出\n");}二级选择1(){ ; 1; ("请选择操作:"); [100]; ; { (""); [0]; (); (>='0'<='6'1) 0; { (""); ("\t\t\\n"); ("\t\t\t无效操作,请重新选择\n"); ("\t\t\\n"); 1(); ("请选择操作:"); 1; } }(a); () { '1': (); 1(); 1(); ; '2': (); (""); 1(); 1(); ; '3': (""); (); (); 1(); 1(); ; '4': (""); (); (""); 1(); 1(); ; '5': (""); (); 1(); ; '6': (""); 0(); ; '0': (""); (1); }}插入(){ ; 1; s1[10000]; s2[100]; 0; ((1())) { s1[i]1; ; } (); s1[i]='\0'; (""); (); ("请定位你想要插入字符串的地方:"); (""); (""); (); ("输入你插入的字符串:"); (""2); (s2); (); (,"w"); (0<) { 11[j]; (1); } (0<) { 12[j]; (1); } (<) { 11[j]; (1); } (); ("");}查找(){ ("请输入须要查找的字符串:"); [50]; 1[500]; ; *p; 0; (""); (); (,"r"); () { ("\t\t\t\t文件无法打开!\n"); } (); ((())) { 1[]; ; } 1[]='\0'; (); (1); (""); () ("\t\t\t文本中存在这样的字符串\n"); ("\t\t\t\t文本中不存在这样的字符串\n");}替换(){ s1[100]2[100]3[100]4[100]; (); ("请输入被替换字符串:"); ("\n"); (""2); ("请输入替换的字符串:"); ("\n")(""3); 12340; 1(s1); 2(s2); 3(s3); 0; (,"r"); () { ("\t\t\t\t文件无法打开!\n"); } (); ((())) { s1[]; ; } s1[]='\0'; (); (0<1) { (0<2) { (s1[]2[j]) { s4[]1[i]; ; ; } (2-1) { (0<3) { s4[]3[k]; ; } 2-1; } } } s4[]='\0'; 4(s4);(,"w"); (0<4) { 4[j]; (); } (); ;} /****************************************************************/(){ s1[100]2[100]4[100]; (); ("请输入被删除字符串:"); (""2); ("\n"); 1240; 1(s1); 2(s2); 0; (,"r"); () { ("\t\t\t\t文件无法打开!\n"); } (); ((())) { s1[]; ; } s1[]='\0'; (); (0<1) { (0<2) { (s1[]2[j]) { s4[]1[i]; ; ; } (2-1) { s4[]1[2]; ; 2; } } } s4[]='\0'; 4(s4); (,"w"); (0<4) { 4[j]; (); } (); ;}结果及完善略。。。。。。。4.加密课题内容:设计一个加密程序。包括明文与密钥的转换。课题要求:(1)输入随意一段明文M,以及密钥K;(2)依据以下公式将其转换为密文C。=+K,其中i=0,1,……1,K为密钥;(3)具有输入输出界面。开始加密2.解密0.退出结束选择正确否?流程图开始加密2.解密0.退出结束选择正确否? NY输入解密内容及密钥输入解密内容及密钥输入加密内容及密钥输入加密内容及密钥显示解密结果显示加密结果显示解密结果显示加密结果源程序<><><>(){ s1[100]a[94]; 033; (0<94) { a[i]; ; } (""); ("输入要加密的内容:"); (""1); ("\n"); [100]; ; 1; ; ("输入加密秘钥:"); (""); ("\n"); (""); 1(); (s1); (""); (11) { [0]; (0<) { (0<94) { (a[j]1[i]) { ; ; 94; []; (""); ; } } } } ("\n"); ("");}(){ s1[100]; a[94]; 033; (0<94) { a[i]; ; } ("输入要解密的内容:"); (""1); ("\n"); ; ; ("输入解密秘钥:"); [100]; (""); ("\n"); (""); 1(); [0]; (s1); (""); (11) { (0<) { (0<94) { (a[j]1[i]) { ; ; (<0) { { 94; }(<0); []; (""); ; } { []; (""); ; } } } } } ("\n"); ("");}(){ ("\t\t\t\t1.加密\n"); ("\t\t\t\t2.解密\n"); ("\t\t\t\t0.退出\n");}(){ ("\t\t\t\\n"); ("\t\t\t\t!\n"); ("\t\t\t\\n"); m; [100]; ; { (); ("选择操作:"); (""); (); [0]; (m>='0'<='2'1) { (m) { '1': (""); (); ; '2': (""); (); ; '0': (""); (1); ; } } { ("\t\t\t\\n"); ("\t\t\t\t选择无效,重新选择\n"); ("\t\t\t\\n"); } }(m); ;}结果及完善略。。。。2.5进制转换器课题内容:设计一个进制转换器程序。包括二进制,八进制,十进制,十六进制数相互转换。通过此课题,娴熟驾驭字符串,格式输出,进制换算的各种操作。课题要求:(1)可输入二进制,八进制,十进制,十六进制数;(2)将已输入的数转换成其余进制的数;(3)具有输入输出界面。开始流程图开始结束结束输入二进制数输入二进制数输入八进制数输入十进制数输入十六进制数0.退出正确否正确否 N显示结果显示结果Y0输入相应的进制数 !=0输入相应的进制数Y相应的进制数否相应的进制数否 N Y1.转为二进制2.转为八进制1.转为二进制2.转为八进制3.转为十六进制0.退出1.转为二进制2.转为十进制3.转为十六进制0.退出 01.转为二进制2.转为八进制1.转为二进制2.转为八进制3.转为十六进制0.退出转为八进制转为十进制转为十六进制0.退出 0源程序<><><><>a[100];y;();1();();();();();();;();();(y);(y);(y);2();1();();();2(1)二进制转为其他进制菜单8(1)八进制转为其他进制菜单10(1);16(1);(){ ("\t\t\t\\n"); ("\t\t\t\t感谢运用本程序!\n"); ("\t\t\t\\n");}/******************************主程序**********************/(){ ; (); 1(); 1(); (); ;}/***********************选择程序*******************************/1(){ ("请选择操作:"); ; [100];1; { (""); (); [0]; (1>='0'<='4') 0; { (""); 1(); ("\t\t\\n"); ("\t\t\t\t操作无效!\n"); ("\t\t\\n"); ("请重新选择:"); 1; } }(a); ("\n"); ;}/*****************************二进制转为其他进制选择程序******************/2(1){ (); (1) { '1': (y); 1(); ; '2': { (""); ("二进制表示:"); (""); ("\n"); } 1(); ; '3': (y); 1(); ; '4': (""); 1(); 1(); ; '0': (""); (); (1); ; }}/*****************************八进制转为其他进制选择程序******************/8(1){ (); (1) { '1': (y); 1(); ; '2': { (""); ("十进制表示:"); (""); ("\n"); } 1(); ; '3': (y); 1(); ; '4': (""); 1(); ; '0': (""); (); (1); ; }}/*****************************十进制转为其他进制选择程序******************/10(1){ ;(a); 0;(0<) (((10(1)))*(((a[i])-48))); (1) { '1': (y); 1(); ; '2': (y); 1(); ; '3': (y); 1(); ; '4': (""); 1(); ; '0': (""); (); (1); ; }}/*****************************十六进制转为其他进制选择程序******************/16(1){ (); (1) { '1': (y); 1(); ; '2': (y); 1(); ; '3': { ("十六进制表示:"); (""); ("\n"); } 1(); ; '4': (""); 1(); ; '0': (""); (); (1); ; }}/*************************进制选择程序*********************/(){ 1; () { '1': { (); ("\t\t\t\t1.转换为八进制数\n"); ("\t\t\t\t2.转换为十进制数\n"); ("\t\t\t\t3.转换为十六进制数\n"); ("\t\t\t\t4.返回上层菜单\n"); ("\t\t\t\t0.退出\n"); 11(); 2(1); 1(); 1(); (); } ; '2': { (); ("\t\t\t\t1.转换为二进制数\n"); ("\t\t\t\t2.转换为十进制数\n"); ("\t\t\t\t3.转换为十六进制数\n"); ("\t\t\t\t4.返回上层菜单\n"); ("\t\t\t\t0.退出\n"); 11(); 8(1); 1(); 1(); (); } ; '3': { (); ("\t\t\t\t1.转换为二进制数\n"); ("\t\t\t\t2.转换为八进制数\n"); ("\t\t\t\t3.转换为十六进制数\n"); ("\t\t\t\t4.返回上层菜单\n"); ("\t\t\t\t0.退出\n"); 11(); 10(1); 1(); 1(); (); } ; '4': { (); ("\t\t\t\t1.转换为二进制数\n"); ("\t\t\t\t2.转换为八进制数\n"); ("\t\t\t\t3.转换为十进制数\n"); ("\t\t\t\t4.返回上层菜单\n"); ("\t\t\t\t0.退出\n"); 11(); 16(1); 1(); 1(); (); } ; '0': (""); (); (1); ; }}/********************************欢迎界面*************************/(){ ("\t\t\t\t*****************\n"); ("\t\t\t\t*!*\n"); ("\t\t\t\t*****************\n\n\n");}/********************************一级菜单界面************************/1(){ ("\t\t\t\t1.输入二进制数据\n"); ("\t\t\t\t2.输入八进制数据\n"); ("\t\t\t\t3.输入十进制数据\n"); ("\t\t\t\t4.输入十六进制数据\n"); ("\t\t\t\t0.退出\n");}/*************************推断输入是不是二进制数据****************/(){ 1; (""); ("输入二进制数:"); { 0; (""); (a); (0<) { (a[i]'0'[i]'1') { 0; } { (""); ("\t\t\\n"); ("\t\t\t此数据非二进制数\n"); ("\t\t\\n"); ("请重新输入:"); ; 1; } } }();}/***********************推断是否为八进制数据******************/(){ 1; (""); ("输入八进制数:"); { 0; (""); (a); (0<) { (a[i]>='0'[i]<='7') { 0; } { (""); ("\t\t\\n"); ("\t\t\t此数据非八进制数\n"); ("\t\t\\n"); ("请重新输入:"); 1; ; } } }(); ;}/***********************推断是否为十进制数据******************/(){ 1; (""); ("输入十进制数:"); { 0; (""); (a); (0<) { (a[i]>='0'[i]<='9') { 0; } { (""); ("\t\t\\n"); ("\t\t\t此数据非十进制数\n"); ("\t\t\\n"); ("请重新输入:"); 1; ; } } }(); ;}/***********************推断是否为十六进制数据******************/(){ 1; (""); ("输入十六进制数:"); { 0; (""); (a); (0<) { ((a[i]>='0'[i]<='9')(a[i]>='A'[i]<='F')) { 0; } { (""); ("\t\t\\n"); ("\t\t\t此数据非十六进制数\n"); ("\t\t\\n"); ("请重新输入:"); 1; ; } } }(); (0<) (""[i]); ("\n"); ;}/*********************十进制——》二进制**********************/(y){ 1;s[100];(00) { 2; s[i]; 2; ; } (""); ("其二进制表示为:"); (1>=0) (""[j]); ("\n");}/***************十进制——》八进制******************/(y){ 1;s[100];(00) { 8; s[i]; 8; ; } (""); ("其八进制表示为:"); (1>=0) (""[j]); ("\n");}/***************************十进制——》十六进制*******************/(y){ 1; s[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; s1[20]; 0; { 16; s1[i]; ; 16; ; }(0); (""); ("\n其十六进制表示为:"); (1>=0) { 1[j]; (""[]); } ("\n");}/****************************二进制——>十进制********************/(){ 0; (a); (0<) (((2(1)))*(((a[i])-48))); y;}/***********************八进制——》十进制*************************/(){0; (a); (0<) (((8(1)))*(((a[i])-48))); y;}/***********************十六进制——》十进制*************************/(){0; 1; (a); (0<) { (a[i]>='A'[i]<='F') (((16(1)))*(((a[i])-55)));(((16(1)))*(((a[i])-48))); } y;}/*************************************************************************/结果及完善。。。。6.学生成果核算系统的设计与实现课题内容:设计一个学生成果核算系统。能实现从文件中读取学生成果资料,并供应成果查询统计服务。通过此课题,娴熟驾驭文件,数组,结构体的各种操作以及友好界面的设计。课题要求:(1)按班级按课程从文件中读入相应的平常成果,期中考试成果和期末考试成果。(2)三个成果对总评成果的百分比被定义为常数,各占总成果的30%,30%和40%。(3)计算每位学生的总评成果。(4)计算该班级本课程的总平均成果。(5)计算处于优,良,中,及格,不及格的学生人数以及占总人数的百分比。其中100-90为优,89-80为良,79-70为中,69-60为及格,60分以下为不及格。(6)按要求输出成果在优,良,中,及格,不及格各区间的学生学号,成果。程序设计参考思路1,建立文本文件,第一行为学生的总人数,其后为每个学生的成果,每个学生的信息占一行,格式为:学号(9位)平常成果期中考试成果期末考试成果例如:15B0904080188 75.5 66B0904080291 79.5 76B0904080385 75 77B0904080479 8280.5B0904080594 83.5 81.5B0904080680 69 68B0904080782 77 71B0904080877 57 58B0904080991 88 86B0904081096 89 90B0904081170 45.5 50B0904081274 65 66B0904081381 71 76B0904081483 75 77B0904081585 78 79从文件中读入相应的平常成果,期中考试成果和期末考试成果时,数据的读入方式可用C语言中的文件读入方式进行,也可用中的流实现。3,每次计算出的结果可在屏幕输出,并把每个学生的总评成果输入到新文件文件中,格式为:学生学号(9位)总评成果成果等级例如:B0904080188B为查询便利,可把总评成果所处等级(优,良,中,及格,不及格)同时保存在文件中,分别用字母A,B,C,D,E表示。4,数据结构(可用实现)两个类:学生()和学生成果()(1)学生类数据成员: 学号,姓名,专业等数据类型属性(私有,爱护,公有)方法:构造函数和析构函数设置学号 ();读取学号 ();等等(2)学生成果类——从学生类派生数据成员:平常成果,期中考试成果,期末考试成果,总评成果,成果等级数据类型属性(私有,爱护,公有)方法:读入成果 ();或(*);输出成果 ();或(*);显示成果 (); 求总评成果 ();求等级 ();读取总评成果 ();读取等级 ();等等5,设计总控模块计算总评成果按等级查询总控模块计算总评成果按等级查询主要功能:(1)总控模块功能:编制菜单,不断从菜单选择计算或查询功能执行,直到退出。程序流程图:~(2)计算(3)查询~6,实现编程时要求每一个类建两个文件,即类的定义和实现文件。留意包含相关的文件。d.流程图胜利否?密码登陆模块欢迎模块开始1.主要功能流程图胜利否?密码登陆模块欢迎模块开始显示学生基本信息查询学生信息0.退出显示学生基本信息查询学生信息0.退出查询模块Y查询模块结束 1 2结束读入文件名及路径读入文件名及路径0显示文件内容显示文件内容密码登陆流程图输入用户名输入用户名提示登陆胜利用户名与密码正确否?输入密码提示登陆胜利用户名与密码正确否?输入密码 NY依据班级查询依据课程查询依据班级查询依据课程查询依据等级查询显示成果分布状况求取平均成果返回上层菜单0.退出选择有效否?选择有效否? N输入相应信息输入相应信息 0结束显示查询结果 Y结束显示查询结果e.源程序<><><><>*,*1,*2;;*"",*"";1231;[20]1[20]0[20]2[10][5]="A"[5]="B"[5]="C"[5]="D"[5]="E";[20]1[20]2[20][20][20];();();();();();();1();1();();();();();();();();();(){ ("*************************************************\n"); ("****\n");("**欢迎运用学生成果核算系统!**\n"); ("****\n"); ("*************************************************\n");}(){ 1[50]1[20]; [20]; 1; ("*******************************************************************************\n"); ("请输入管理名:"); (""1); ("请输入密码:"); (""1); ("*******************************************************************************\n"); ((1)0(1)0) { ("您输入的用户名或密码错误,是否退出()\n"); ("Y.接着登陆!\n"); ("N.退出\n"); { (""); (); [0]; (1('Y''N''y''n')) 0; { ("选择无效,请重新选择!\n"); 1; } }(a); () { 'Y': (""); (); ; 'y': (""); (); ; 'N': (""); (); (0); ; 'n': (""); (); (0); ; } } { (""); ("登陆胜利,欢迎!\n"); }}(){ ("*************************************************\n"); ("****\n"); ("**感谢运用学生成果核算系统!**\n"); ("****\n"); ("*************************************************\n");}1(){ ("请选择操作:"); [20]; 1; { (""); (); [0]; (1>='0'<='6') 0; { ("选择有误,请重新选择:"); 1; } }(a); () { '1': (""); (); 1(); 1(); ; '2': (""); (); 1(); 1(); ; '3': (""); (); 1(); 1(); ; '4': (""); (); 1(); 1(); ; '5': (""); (); 1(); 1(); '6': (""); (); (); ; '0': (""); (); (0); ; }}(){ ("请选择操作:"); [20]; 1; { (""); (); [0]; (1>='0'<='2') 0; { ("选择有误,请重新选择:"); 1; } }(a); () { '1': (""); (); (); (); ; '2': (""); 1(); 1(); ; '0': (""); (); (0); ; }}(){ ("*******************************************************************************\n"); ("*******1.显示学生基本信息*******\n"); ("*******2.查询学生信息信息*******\n"); ("*******0.退出*******\n"); ("*******************************************************************************\n");}1(){ ("*******************************************************************************\n"); ("*******1.依据班级查询信息*******\n"); ("*******2.依据课程查询信息*******\n"); ("*******3.依据等级查询信息*******\n"); ("*******4.显示成果分布状况*******\n"); ("*******5.求取平均成果*******\n"); ("*******6.返回上层菜单*******\n"); ("*******0.退出*******\n"); ("*******************************************************************************\n");}求取平均分数函数()求取某班某门课程的平均分数{ [20][20]; 0; 0; ("请输入查询的班级:"); (""); ("请输入查询的课程:"); (""); ("E:\\","r"); () { ("文件无法打开!\n"); (""); (); (0); } (()) { (,""); (()()0) { 1("E:\\","r"); (1) { ("文件无法打开!\n"); (""); (); (0); } ((1)) { (1,""110); ((1)(1)0()0) { ; 1; } } (1); } } (); (); ("\n","您所查询的","的","课程平均成果为:","分");}输入班级查询信息函数()依据班级查询信息{ [20]; ("请输入查询的班级名称:"); (""); ("E:\\","r"); () { ("文件无法打开!\n"); (""); (); (0); } (,"\n","姓名","学号","班级","课程","平常成果","期中成果","期末成果","总评成果","等级"); (()) { (,""); (/*()*()0) { ("\\\n"); 1("E:\\","r"); (1) { ("文件无法打开!\n"); (""); (); (0); } ((1)) { (1,""1123); ((1)(1)0) { 2("E:\\","r"); (2) { ("文件无法打开!\n"); (""); (); (0); } ((2)) { (2,""2110); ((2)(12)0(1)0) (,"\\\\\\\\\n"2112310); } (2); } } (1); } } ();}依据课程查询函数()依据课程查询信息{ [20]; ("请输入查询的课程名称:"); (""); ("E:\\","r"); () { ("文件无法打开!\n"); (""); (); (0); } (,""); (,"\n","姓名","学号","班级","课程","平常成果","期中成果","期末成果","总评成果","等级"); (()) { (,""123); (()()0) { 1("E:\\","r"); (1) { ("文件无法打开!\n"); (""); (); (0); } ((1)) { (1,""1110); ((1)0(1)0(1)) { 2("E:\\","r"); (2) { ("文件无法打开!\n"); (""); (); (0); } ((2)) { (2,""2); (/*(2)*(2)0) (,"\\\\\\\\\n"12310); } (2); } } (1); } } ();}显示函数()显示记录信息{ ("E:\\","r"); () { ("文件无法打开!\n"); (""); (); (0); } (,""); (,"\n","条记录"); (,"\t\n","学号","课程","平常成果","期中成果","期末成果"); (()) { (,""123); (()) { (,"\\\\\n"123); } } ();}等级查询函数()依据等级查询信息{ 1[20]; ("请输入查询等级:"); 1; { (""); (); 1[0]; (1(1'A'1'B'1'C'1'D'1'E')) 0; { ("等级输入不正确,请重新输入:"); 1; } }(a); ("E:\\","r"); () { ("文件无法打开!\n"); (""); (); (0); } (,"\n","姓名","学号","班级","课程","平常成果","期中成果","期末成果","总评成果","等级"); (()) { (,""10); (0[0]1()) { 1("E:\\","r"); (1) { ("文件无法打开!\n"); (""); (); (0); } (1,""); ((1)) { (1,""11123); ((1)0(1)0(1)) { 2("E:\\","r"); (2) { ("文件无法打开!\n"); (""); (); (0); } ((2)) { (2,""2); (/*(2)*(12)0) (,"\\\\\\\\\n"2112310); } (2); } } (1); } } ();}课程等级分布查询函数()查询某课程各等级分布{ 00000; [20]; 0; ("请输入您要查询的课程名称:"); (""); ("E:\\","r"); () { ("文件无法打开!\n"); (""); (); (0); } (()) { (,""10); (()()0) { ; (""); ("\\\\n"10); (0[0]'A') ; ((0)0) ; ((0)0) ; ((0)0) ; ((0)0) ; } } (); (0) { ("\n","您所查询的","课程的总人数为"); ("3.2\n","期中优秀人数为",",占该课程总人数的",(())*100); ("3.2\n","期中良好人数为",",占该课程总人数的",(())*100); ("3.2\n","期中中等人数为:",",占该课程总人数的",(())*100); ("3.2\n","期中及格人数为:",",占该课程总人数的",(())*100); ("3.2\n","期中不及格人数为:",",占该课程总人数的",(())*100); } { ("无此课程记录!\n"); }}等级计算函数()计算等级{ (>=90<=100) 'A'; (>=80<90) 'B'; (>=70<80) 'C'; (>=60<70) 'D'; (>=0<60) 'E';}总评成果就散函数()计算总评成果{ 0; ; 1*()0.32*()0.33*()0.4; (); (1,"\\\\n");}读取文件/处理文件函数(){ ("E:\\","r"); () { ("文件无法打开!\n"); (""); (); (0); } 1("E:\\","w"); (1) { ("文件无法打开!\n"); (""); (); (0); } (1); 1("E:\\","a"); (1) { ("文件无法打开!\n"); (""); (); (0); } (,""); 0; (()) { (,""123); (()) { (); } } (1); ();}(){ (); (); (); (); ();}f.结果及完善2-30欢迎界面2-31密码或者用户输入错误提示2-32登陆胜利界面2-33显示基本信息界面2-34查询界面2-35班级查询结果2-36课程查询结果显示2-37等级查询结果2-38成果分布结果显示2-39平均成果查询结果完善方向:依据查询的方向不同可以设计出依据学号查询;另外对各项功能的细化,不仅仅求取一门课程的平均成果,还能查询每个班级每个课程的平均成果,依据须要,可以增加学生的信息以及删除学生的信息。7.模拟电信计费系统的设计与实现课题内容:设计一个模拟电信计费系统。能实现从文件中读取通话以及费率资料,并供应计费,话费查询和话单查询等服务。通过此课题,娴熟驾驭文件读写,数组,结构体,格式输入输出的各种操作,以及友好界面的设计和一些算法思想的应用。课题要求:(1)计费功能。依据存放在源数据文件中的通话记录和长途费率文件对每一条通话记录计算其通话费用,并将结果保存在费用文件中。其中:通话费的计算方法如下:通话费=长途费+本地费长途费=费率(元/分钟)×通话时长(分钟)(通话时长不满1分钟的按1分钟计算)本地费为:3分钟以内0.3元,以后每1分钟递增0.2元。(2)话费查询。输入一个号码,从费用文件中统计该号码的全部本地话费,长途话费,并从用户文件中查找其用户名,最终在屏幕上显示:用户名号码本地话费长途话费话费总计(3)话单查询。输入一个号码,查询并在屏幕显示该用户的全部通话记录,格式为:用户名主叫号码被叫号码通话时长程序设计参考思路:1,本系统的输入输出文件本系统的输入文件有三个:(1)源数据文件() 存放:主叫区号主叫号码被叫区号被叫号码通话时长(秒) 每次通话作为一条记录,占源数据文件的一行。 每条记录中各数据之间以空格间隔,例如:90 每个号码可以有多次通话记录。 假如主,被叫区号相同,则通话记录为本地通话记录;否则为长途通话记录。(2)长话费率文件() 存放:区号费率 例如:0101.20表示从本地打往区号为010的地区每分钟收费1.20元。(3)用户文件() 存放:号码用户姓名 例如:83491234张明本系统的输出文件有一个:费用文件()存放:主叫号码通话类型话费金额其中,通话类型表示本次通话是长途还是本地。2,系统输入数据—有20条通话记录,分别是: 有4条记录025834912340258531997170 0101.200258492703801062110045236 0201.200258721634002584521009310 0210.8002583491234057182199516100 05711.00025581203210218109453250 0258349123402585319971800258492703802583491234115 有5条记录025581203210258721634047 83491234张明025872163400106211004593 84927038李小红0258349123401062110045792 87216340王励02584927038057182199516931 83492200赵强0258349123402585319971580 58120321杨冬02584927038025834912343580255812032102181094532197025872163400258452100925602587216340010621100451930258349220002584521009320025834912340258531997127002584927038025834912342310258349220002584927038723,数据结构(可用实现)三个类:话单(),费用()和用户()两个常量:存放本地费率和递增量(1)话单类数据成员: 主叫区号,主叫号码,被叫区号,被叫号码,通话时长数据类型属性(私有,爱护,公有)方法: 构造函数和析构函数从源数据文件读入通话数据显示一次通话数据取主叫区号取主叫号码 等等(2)费用类——从话单类派生数据成员:通话类型,通话费用数据类型属性(私有,爱护,公有)方法: 构造函数和析构函数从费用文件读入费用数据向费用文件输出数据屏幕显示费用求通话费用求通话类型取(返回)通话类型取通话费用 等等(3)用户类数据成员: 姓名,号码数据类型属性(私有,爱护,公有)方法: 设置用户的号码查询用户名设置用户名查询用户的号码显示用户名和号码等等4,设计总控模块计算通话费用话费查询话单查询总控模块计算通话费用话费查询话单查询主要功能:(1)总控模块功能:程序流程图:~(2)计算通话费用定义一个话单对象,循环处理。程序流程图:~(3)费用查询定义一个用户对象,依据号码查询用户信息从“计算通话费用”模块生成的费用文件中,按通话类型分别统计某一号码的全部费用项。可定义一个费用对象,循环累加。在屏幕显示查询结果。(4)话单查询定义一个用户对象,依据号码查询用户信息从源数据(话单)文件中,查询某一号码的全部通话清单。在屏幕显示查询结果。可定义一个话单对象,查询并显示。5,实现(1)进行话费查询前,必需先进行费用计算。可以先推断费用文件是否存在,若不存在,则调用计算通话费用模块后再查询;否则直接查询。或者用一个全局变量实现——全局变量初值为0,调用计算通话费用模块后该全局变量置为1。当要查询通话费时,首先检查该全局变量的值。(2)为了统计话费便利,在费用文件中设一“通话类型”,可以用两个不同的字符表示本地和长途,如0表示本地1表示长途。(3)编程时要求每一个类建两个文件,即类的定义和实现文件。(4)编程时留意包含相关的文件。流程图1.程序基本流程图胜利否?密码登陆模块欢迎界面开始胜利否?密码登陆模块欢迎界面开始计算通话费用话费查询话单查询计算通话费用话费查询话单查询文件管理0.退出话单查询计算通话费用话费查询Y话单查询计算通话费用话费查询 3结束12结束4文件管理文件管理文件管理模块简单流程图1.计算通话费用2.话费查询3.话单查询4.文件管理0.退出输入费率信息输入用户信息1.计算通话费用2.话费查询3.话单查询4.文件管理0.退出输入费率信息输入用户信息选择有效否?增加用户信息增加费率信息返回上层菜单0.退出结束结束 N 0 3 1 2d.源程序<><><><>*,*1,*2;*"",*"";[10][20][10][5][5]1[5];;1=0;00=01=0;();();();()

温馨提示

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

评论

0/150

提交评论