24-100221-按百家姓对姓名排序最新

上传人:桔**** 文档编号:470000698 上传时间:2022-08-23 格式:DOC 页数:6 大小:76.50KB
返回 下载 相关 举报
24-100221-按百家姓对姓名排序最新_第1页
第1页 / 共6页
24-100221-按百家姓对姓名排序最新_第2页
第2页 / 共6页
24-100221-按百家姓对姓名排序最新_第3页
第3页 / 共6页
24-100221-按百家姓对姓名排序最新_第4页
第4页 / 共6页
24-100221-按百家姓对姓名排序最新_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《24-100221-按百家姓对姓名排序最新》由会员分享,可在线阅读,更多相关《24-100221-按百家姓对姓名排序最新(6页珍藏版)》请在金锄头文库上搜索。

1、编号:24河北工业大学计算机软件技术基础(VC)课程设计报告学院 机械学院 班级 姓名_学号_成绩 _ _一、题目:按百家姓将姓名排序(24)二、设计思路1、总体设计1)分析程序的功能:本程序是为了实现按百家姓对姓名排序2)系统总体结构:主要思路是: xingsort.cpp(按姓“赵、钱、孙、李”对姓名进行排序)namesort,cpp(按名对姓名排序)main.cpp(主函数,输入、输出姓名,并对其他函数进行调用a.h(头文件,包括调用函数的声明) 。2、各功能模块的设计:主要由三功能模块组成。具体是:(1)a.h:在其中声明函数(2)main.cpp: 通过循环控制变量,对学生成绩进行输

2、入和输出,以及选择结构的使用,实现不同函数功能的调用。(3)xing.cpp:按姓进行排序。(4)namesort.cpp:按名字进行排序。3、设计中的主要困难及解决方案1)困难1:从字符串中取出第一个字按姓排序。解决方案:汉字在数组中存储占两个字节,把字符串的前两个元素赋给一个数组,并把这个数组的最后一个元素赋为0,即可得到姓,然后即可按顺序排列。2)困难2:对多文件的使用,即主函数和各个函数分别存放在不同的.cpp文件中。解决方案:在头文件中进行声明,不能进行赋值运算,直接在主函数中进行赋值。4、你所设计的程序最终完成的功能1)对输入的姓名按百家姓进行排序。2)准备的测试数据如下:李丽 赵

3、括 孙福 赵冬梅赵国良赵雪赵迎专赵倩赵璐佳钱潮钱朋钊钱现冲钱心孙君啸孙巍孙亚星李彧李福德李景洋李彦航运行结果:三、程序清单(1)a.h文件清单: int getxing(char a);void xingsort(char name2010,char name_sort2010,int n,int &k1,int &k2,int &k3,int &k4);void namesort(char a2010,int m,int n);(2)main.cpp文件清单: # include # include# include # includea.hvoid main()const N=20;cha

4、r xmN10;cout请输入20个姓名: n;for(int h=0;h1)namesort(xm_sort,0,k1);if(k21) namesort(xm_sort,k1,k1+k2); if(k31) namesort(xm_sort,k1+k2,k1+k2+k3); if(k41) namesort(xm_sort,k1+k2+k3,k1+k2+k3+k4); /按名对姓名排序 cout排序后的结果:n;for(i=0;i20;i+)coutxm_sortin; /输出排好后的姓名(3)xing.cpp文件清单: # include# include# include#includ

5、ea.hvoid xingsort(char xm2010,char xm_sort2010,int n,int &k1,int &k2,int &k3,int &k4)int i,j,k;k1=0;k2=0;k3=0;k4=0;char xmsort12010,xmsort22010,xmsort32010,xmsort42010;char d3;for(i=0;i20;i+)for(j=0;j2;j+)dj=xmij;dj=0; /把姓取出来if(strcmp(d,赵)=0) k=1;else if(strcmp(d,钱)=0) k=2;else if(strcmp(d,孙)=0) k=3

6、; else if(strcmp(d,李)=0) k=4; /使相应的姓对应相应的数字if(k=1)for(j=0;j10;j+)xmsort1k1j=xmij;k1+; else if(k=2)for(j=0;j10;j+)xmsort2k2j=xmij;k2+; else if(k=3)for(j=0;j10;j+)xmsort3k3j=xmij;k3+; else if(k=4)for(j=0;j10;j+)xmsort4k4j=xmij;k4+; /把相应的姓放进对应的数组,并对姓计数 if(k1!=0)for(i=0;ik1;i+)for(j=0;j10;j+)xm_sortij=x

7、msort1ij;if(k2!=0) for(i=k1;ik1+k2;i+)for(j=0;j10;j+)xm_sortij=xmsort2i-k1j;if(k3!=0) for(i=k1+k2;ik1+k2+k3;i+)for(j=0;j10;j+)xm_sortij=xmsort3i-k1-k2j;if(k4!=0) for(i=k1+k2+k3;ik1+k2+k3+k4;i+)for(j=0;j10;j+)xm_sortij=xmsort4i-k1-k2-k3j; /把各姓从数组里取出并按顺序放进新数组(4)namesort.cpp文件清单: # include# include# in

8、clude#includea.hvoid namesort(char a2010,int m,int n)char d10;int i,j;for(i=m;in-1;i+)for(j=i+1;j0) strcpy(d,ai); strcpy(ai,aj); strcpy(aj,d); /对同姓的姓名进行排序四、对该设计题目有何更完善的方案该程序功能比较齐全,在函数调用方面运用的比较成功。五、收获及心得体会1、对字符型数组有了更深入的理解和认识,通过课程设计对C+环境下的文字处理有了进一步的掌握。2、通过本次课程设计,使自己对C+针对过程的编程方法有了更深入的理解,熟练了函数的调用,加强了自己的逻辑推理能力和编程思维。日期: 2011年9月8日 第1页/共6 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号