- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
24-100221-按百家姓对姓名排序必威体育精装版
河北工业大学计算机软件技术基础(VC)课程设计报告
学院 机械学院 班级 姓名______学号________成绩 __ ____
一、题目:
按百家姓将姓名排序(24)
二、设计思路
1、总体设计
1)分析程序的功能:
本程序是为了实现按百家姓对姓名排序
2)系统总体结构:
主要思路是:
。
2、各功能模块的设计:
主要由三功能模块组成。具体是:
(1)a.h:在其中声明函数
(2)main.cpp: 通过循环控制变量,对学生成绩进行输入和输出,以及选择结构的使用,实现不同函数功能的调用。
(3)xing.cpp:按姓进行排序。
(4)namesort.cpp:按名字进行排序。
3、设计中的主要困难及解决方案
1)困难1:从字符串中取出第一个字按姓排序。
解决方案:汉字在数组中存储占两个字节,把字符串的前两个元素赋给一个数组,并把这个数组的最后一个元素赋为’\0’,即可得到姓,然后即可按顺序排列。
2)困难2:对多文件的使用,即主函数和各个函数分别存放在不同的.cpp文件中。
解决方案:在头文件中进行声明,不能进行赋值运算,直接在主函数中进行赋值。
4、你所设计的程序最终完成的功能
1)对输入的姓名按百家姓进行排序。
2)准备的测试数据如下:
李丽
赵括
孙福
赵冬梅
赵国良
赵雪
赵迎专
赵倩
赵璐佳
钱潮
钱朋钊
钱现冲
钱心
孙君啸
孙巍
孙亚星
李彧
李福德
李景洋
李彦航
运行结果:
三、程序清单
(1)a.h文件清单:
int getxing(char a[]);
void xingsort(char name[20][10],char name_sort[20][10],int n,int k1,int k2,int k3,int k4);
void namesort(char a[20][10],int m,int n);
(2)main.cpp文件清单:
# includeiostream.h
# includestring.h
# includeiomanip.h
# includea.h
void main()
{
const N=20;
char xm[N][10];
cout请输入20个姓名: \n;
for(int h=0;hN;h++)
cin.getline(xm[h],10); //输入姓名
char xm_sort[20][10];
int i,k1,k2,k3,k4;
xingsort(xm,xm_sort,20,k1,k2,k3,k4); //按姓名排序
if(k11)
{
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_sort[i]\n; //输出排好后的姓名
}
(3)xing.cpp文件清单:
# includeiostream.h
# includestring.h
# includeiomanip.h
#includea.h
void xingsort(char xm[20][10],char xm_sort[20][10],int n,int k1,int k2,int k3,int k4)
{
int i,j,k;
k1=0;k2=0;k3=0;k4=0;
char xmsort1[20][10],xmsort2[20][10],xmsort3[20][10],xmsort4[20][10];
char d[3];
for(i=0;i20;i++)
{
for(j=0;j2;j++)
d[j]=xm[i][j];
d[j]=\0; //把姓取出来
if(strcmp(d,赵)==0) k=1;
else if(strcmp(d,钱)==0) k=2;
else if(strcmp(d,孙)==0) k=3;
else if(st
文档评论(0)