没有合适的资源?快使用搜索试试~ 我知道了~
首页C语言实现销售记录按名称和金额排序
C语言实现销售记录按名称和金额排序
需积分: 3 1 下载量 193 浏览量
更新于2024-07-29
收藏 215KB DOC 举报
本资源是一份针对C语言编程的上机题目,涉及到两个部分,均与处理产品销售记录数据相关。题目背景是在名为IN1.DAT和IN2.DAT的文件中存储了100个产品销售记录,每个记录包含产品代码、产品名称、单价、数量和金额等字段。这两个问题的核心任务是编写名为`SortDat()`的函数,用于对这些销售记录进行排序。 第一个题目要求对销售记录按照产品名称从小到大进行排序,如果名称相同,则按金额从小到大排序。函数`SortDat()`通过嵌套循环实现这个过程,使用`strcmp()`函数比较产品名称,当名称相同时,进一步比较金额。排序后的结果会被保存回原`sell`结构数组,并通过`WriteDat()`函数输出到文件OUT1.DAT中。 第二个题目与第一个类似,但排序规则相反,即按产品名称从大到小排列,如果有名称相同,则同样按照金额从小到大排序。函数`SortDat()`的实现与第一个版本基本相同,只是判断条件中的顺序有所调整,以便满足名称从大到小的排序需求。最终的排序结果会输出到文件OUT2.DAT中。 这两个问题涉及到了C语言的数据结构操作,特别是字符串和整数的比较,以及结构体数组的排序算法。学习者需要理解如何利用`strcmp()`函数处理字符串比较,以及如何根据不同的排序规则调整排序逻辑。同时,这也展示了在实际编程中处理大量数据和文件操作的实用技巧,对于提升编程能力和理解排序算法有很好的锻炼作用。
资源详情
资源推荐
位数上的数加十位数上的数的个数 cnt,再求出所有满足此条件的 4 位数平均值 pjz1,以及
所 有 不 满 足 此 条 件 的 4 位 数 的 平 均 值 pjz2 , 最 后 调 用 函 数 writeDat() 把 结 果
cnt、pjz1、pjz2,输出到 OUT18.DAT 文件中。
例如:6712,6+2=7+1,则该数满足条件,计算平均值 pjz1,且个数 cnt=cnt+1。
8129,8+9≠1+2,则该数不满足条件,计算平均值 pjz2。
注意:部分源程序已给出。程序中已定义数组:a[300],已定义变量:cnt、pjz1、pjz2。请
勿改动主函数 main()、读函数 readDat()和写函数 writeDat()的内容。
void jsValue()
{
int i,thou,hun,ten,data,n=0;
for(i=0;i<300;i++)
{
thou=a[i]/1000; /*求四位数的千位数字*/
hun=a[i]%1000/100; /*求四位数的百位数字*/
ten=a[i]%100/10; /*求四位数的十位数字*/
data=a[i]%10; /*求四位数的个位数字*/
if(thou+data==hun+ten)
{ cnt++; pjz1+=a[i]; } /*统计满足条件的数的个数并求和*/
else
{ n++; pjz2+=a[i]; } /*统计不满足条件的数的个数并求和*/
}
pjz1/=cnt; /*求满足条件的数的平均值*/
pjz2/=n; /*求不满足条件的数的平均值*/
}
19 已知数据文件 IN19.DAT 中存有 300 个 4 位数,并已调用函数 readDat()把这些数存入数
组 a 中,请编制一个函数 jsValue(),其功能是:求出这些 4 位数是素数的个数 cnt,再求出
所有满足此条件的 4 位数的平均值 pjz1,以及所有不满足此条件的 4 位数的平均值 pjz2,
最后调用函数 writeDat()把结果 cnt、pjz1、pjz2 输出到 OUT19.DAT 文件中。
例如:5591 是素数,则该数满足条件,计算平均值 pjz1,且个数 cnt=cnt+1。
9812 是非素数,则该数不满足条件,计算平均值 pjz2。
注意:部分源程序已给出。程序中已定义数组:a[300],已定义变量:cnt、pjz1、pjz2。请
勿改动主函数 main()、读函数 readDat()和写函数 writeDat()的内容。
void jsValue()
{
int i;
for(i=0;i<300;i++)
if(isP(a[i])) /*判断该数是否为素数*/
{ pjz1+=a[i]; cnt++; } /*计算所有素数的和并统计其个数*/
else pjz2+=a[i]; /*计算所有不是素数的数的和*/
pjz1=pjz1/cnt; /*求所有素数的平均值*/
pjz2=pjz2/(300-cnt); /*求所有不是素数的平均值*/
}
20 已知数据文件 IN20.DAT 中存有 200 个四位数,并已调用读函数 readDat()把这些数存入
数组 a 中,请考生编制一个函数 jsVal(),其功能是:把千位数字和十位数字重新组成一个
10
新的两位数 ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四
位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数 cd(新两位数的十
位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组
成的两个两位数 ab-cd>=0 且 ab-cd<=10 且两个数均是奇数,同时两个新数的十位数字均不
为零,则将满足此条件的四位数按从大到小的顺序存入数组 b 中,并要计算满足上述条件
的四位数的个数 cnt。最后,main()函数调用写函数 writeDat()把结果 cnt 以及数组 b 中符合
条件的四位数输出到 OUT20.DAT 文件中。
注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改
动数据文件 IN.DAT 中的任何数据、主函数 main()、读函数 readDat()和写函数 writeDat()的
内容。
void jsVal()
{
int i,thou,hun,ten,data,j;
int ab,cd;
for(i=0;i<200;i++)
{
thou=a[i]/1000; /*求四位数的千位数字*/
hun=a[i]%1000/100; /*求四位数的百位数字*/
ten=a[i]%100/10; /*求四位数的十位数字*/
data=a[i]%10; /*求四位数的个位数字*/
ab=10*thou+ten; cd=10*data+hun;
if((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab/10!=0&&cd/10!=0)
{ b[cnt]=a[i]; cnt++; }
}
for(i=0;i<cnt-1;i++) /*将数组 b 中的数降序排列*/
for(j=i+1;j<cnt;j++)
if(b[i]<b[j]) { data=b[i]; b[i]=b[j];b[j]=data; }
}
21 已知数据文件 IN21.DAT 中存有 200 个四位数,并已调用读函数 readDat()把这些数存入
数组 a 中,请编制一个函数 jsVal(),其功能是:把千位数字和十位数字重新组成一个新的
两位数 ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数
的十位数字),以及把个位数字和百位数字组成另一个新的两位数 cd(新两位数的十位数
字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的
两个两位数 ab-cd>=10 且 ab-cd<=20 且两个数均是偶数,同时两个新数的十位数字均不为零,
则将满足此条件的四位数按从大到小的顺序存入数组 b 中,并要计算满足上述条件的四位
数的个数 cnt。最后,main()函数调用写函数 writeDat()把结果 cnt 以及数组 b 中符合条件的
四位数输出到 OUT21.DAT 文件中。
注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改
动数据文件 IN.DAT 中的任何数据、主函数 main()、读函数 readDat()和写函数 writeDat()的
内容。
void jsVal()
{
int i,j,gw,sw,bw,qw,temp,ab,cd;
for(i=0;i<200;i++)
11
剩余54页未读,继续阅读
D595991225
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功