主题:本人可以解答VC++方面的问题,有问题请进来。。。
xyjs2006
[专家分:820] 发布于 2007-01-18 11:36:00
欢迎大家在这里提问。但如果没有及时回复,请见谅。。。
另:请将问题、现象表述清楚,否则恕无法解答。
声明:本人主要提供解决方案,具体作业和代码请自行处理,谢谢。
------2007年5月14日发:
对不起,大家,近来工作繁忙,对于大家的提问没有及时解答深感抱歉。呵呵。
另:本人长期承接VC++项目(至少2000RMB以上项目),有意发邮件(在个人资料里,邮件只接受外包项目),谢谢!
呵呵,祝大家工作学习顺利!
------2008年1月18日发:
呵呵~~~这帖子发了一周年了~~~很感谢大家的支持,点击率和回帖数都是这个版面几乎最高了,呵呵~~~~~不过本人一直都比较忙,没有回答大家的问题,请见谅~~呵呵~~~
欢迎大家继续支持~~~~
最后更新于:2008-01-18 20:44:00
回复列表 (共581个回复)
561 楼
tom030303 [专家分:0] 发布于 2010-06-04 22:19:00
已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。函数SortDat()其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT10.DAT中。
#include "stdio.h"
#define N 10
struct sell
{ char dm[4];
char mc[10];
int dj;
int sl;
long int je;
}
void WriteDat(struct sell zl[],char *filename);
void ReadDat(struct sell zl[],char *filename);
void SortDat(struct sell zl[]);
main()
{ struct sell zl[N];
int i;
char *file1="IN.DAT",*file2="OUT.DAT";
zl[i].je=zl[i].dj*zl[i].sl;
printf("Please input %d selling information",N);
printf("dm mc dj sl je\n");
for (i=0;i<10;i++)
scanf("%s %s %d %d %d",zl[i].dm,zl[i].mc,&zl[i].dj,&zl[i].sl,&zl[i].je);
WriteDat(zl,file1);
ReadDat(zl,file1);
SortDat(zl);
printf("%s %s %d %d %d",zl[i].dm,zl[i].mc,zl[i].dj,zl[i].sl,zl[i].je);
WriteDat(zl,file2);
}
void ReadDat(struct sell zl[],char *filename)
{ FILE *fp;
if((fp=fopen(filename,"rb"))==NULL)
{ printf("\nCan't open this file!\n");
exit(0);
}
fread(zl,sizeof(struct sell),N,fp);
if(ferror(fp))
{printf("File Error\n");
exit(0);
}
fclose(fp);
printf("\n%s read finished!\n",filename);
}
void WriteDat(struct sell zl[],char *filename)
{ FILE *fp;
if((fp=fopen(filename,"wb"))==NULL)
{printf("\nCan't open this file\n");
exit(0);
}
fwrite(zl,sizeof(struct sell),N,fp);
if(ferror(fp))
{printf("File Error\n");exit(0);
}
fclose(fp);
printf("\n%s write finished!\n",filename);
}
void SortDat(struct sell zl[])
{ int i,j;
struct sell t[20],k[20];
for(i=0;i<9;i++)
{for(j=i+1;j<10;j++)
if(zl[i].dm<zl[j].dm)
{t[i]=zl[i];
zl[i]=zl[j];
zl[j]=t[i];
}
else
if(zl[i].dm==zl[j].dm)
{if(zl[i].je<zl[j].je)
k[i]=zl[i];
zl[i]=zl[j];
zl[j]=k[i];
}
}
}
562 楼
tom030303 [专家分:0] 发布于 2010-06-04 22:20:00
已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。函数SortDat()其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT10.DAT中。
#include "stdio.h"
#define N 10
struct sell
{ char dm[4];
char mc[10];
int dj;
int sl;
long int je;
}
void WriteDat(struct sell zl[],char *filename);
void ReadDat(struct sell zl[],char *filename);
void SortDat(struct sell zl[]);
main()
{ struct sell zl[N];
int i;
char *file1="IN.DAT",*file2="OUT.DAT";
zl[i].je=zl[i].dj*zl[i].sl;
printf("Please input %d selling information",N);
printf("dm mc dj sl je\n");
for (i=0;i<10;i++)
scanf("%s %s %d %d %d",zl[i].dm,zl[i].mc,&zl[i].dj,&zl[i].sl,&zl[i].je);
WriteDat(zl,file1);
ReadDat(zl,file1);
SortDat(zl);
printf("%s %s %d %d %d",zl[i].dm,zl[i].mc,zl[i].dj,zl[i].sl,zl[i].je);
WriteDat(zl,file2);
}
void ReadDat(struct sell zl[],char *filename)
{ FILE *fp;
if((fp=fopen(filename,"rb"))==NULL)
{ printf("\nCan't open this file!\n");
exit(0);
}
fread(zl,sizeof(struct sell),N,fp);
if(ferror(fp))
{printf("File Error\n");
exit(0);
}
fclose(fp);
printf("\n%s read finished!\n",filename);
}
void WriteDat(struct sell zl[],char *filename)
{ FILE *fp;
if((fp=fopen(filename,"wb"))==NULL)
{printf("\nCan't open this file\n");
exit(0);
}
fwrite(zl,sizeof(struct sell),N,fp);
if(ferror(fp))
{printf("File Error\n");exit(0);
}
fclose(fp);
printf("\n%s write finished!\n",filename);
}
void SortDat(struct sell zl[])
{ int i,j;
struct sell t[20],k[20];
for(i=0;i<9;i++)
{for(j=i+1;j<10;j++)
if(zl[i].dm<zl[j].dm)
{t[i]=zl[i];
zl[i]=zl[j];
zl[j]=t[i];
}
else
if(zl[i].dm==zl[j].dm)
{if(zl[i].je<zl[j].je)
k[i]=zl[i];
zl[i]=zl[j];
zl[j]=k[i];
}
}
}
563 楼
tom030303 [专家分:0] 发布于 2010-06-04 22:21:00
已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。函数SortDat()其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT10.DAT中。
#include "stdio.h"
#define N 10
struct sell
{ char dm[4];
char mc[10];
int dj;
int sl;
long int je;
}
void WriteDat(struct sell zl[],char *filename);
void ReadDat(struct sell zl[],char *filename);
void SortDat(struct sell zl[]);
main()
{ struct sell zl[N];
int i;
char *file1="IN.DAT",*file2="OUT.DAT";
zl[i].je=zl[i].dj*zl[i].sl;
printf("Please input %d selling information",N);
printf("dm mc dj sl je\n");
for (i=0;i<10;i++)
scanf("%s %s %d %d %d",zl[i].dm,zl[i].mc,&zl[i].dj,&zl[i].sl,&zl[i].je);
WriteDat(zl,file1);
ReadDat(zl,file1);
SortDat(zl);
printf("%s %s %d %d %d",zl[i].dm,zl[i].mc,zl[i].dj,zl[i].sl,zl[i].je);
WriteDat(zl,file2);
}
void ReadDat(struct sell zl[],char *filename)
{ FILE *fp;
if((fp=fopen(filename,"rb"))==NULL)
{ printf("\nCan't open this file!\n");
exit(0);
}
fread(zl,sizeof(struct sell),N,fp);
if(ferror(fp))
{printf("File Error\n");
exit(0);
}
fclose(fp);
printf("\n%s read finished!\n",filename);
}
void WriteDat(struct sell zl[],char *filename)
{ FILE *fp;
if((fp=fopen(filename,"wb"))==NULL)
{printf("\nCan't open this file\n");
exit(0);
}
fwrite(zl,sizeof(struct sell),N,fp);
if(ferror(fp))
{printf("File Error\n");exit(0);
}
fclose(fp);
printf("\n%s write finished!\n",filename);
}
void SortDat(struct sell zl[])
{ int i,j;
struct sell t[20],k[20];
for(i=0;i<9;i++)
{for(j=i+1;j<10;j++)
if(zl[i].dm<zl[j].dm)
{t[i]=zl[i];
zl[i]=zl[j];
zl[j]=t[i];
}
else
if(zl[i].dm==zl[j].dm)
{if(zl[i].je<zl[j].je)
k[i]=zl[i];
zl[i]=zl[j];
zl[j]=k[i];
}
}
}
564 楼
tom030303 [专家分:0] 发布于 2010-06-04 22:21:00
帮我看看,有点问题,我初学者,能力有限,帮帮忙,xiexie
565 楼
tom030303 [专家分:0] 发布于 2010-06-04 22:23:00
已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。函数SortDat()其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT10.DAT中。
#include "stdio.h"
#define N 10
struct sell
{ char dm[4];
char mc[10];
int dj;
int sl;
long int je;
}
void WriteDat(struct sell zl[],char *filename);
void ReadDat(struct sell zl[],char *filename);
void SortDat(struct sell zl[]);
main()
{ struct sell zl[N];
int i;
char *file1="IN.DAT",*file2="OUT.DAT";
zl[i].je=zl[i].dj*zl[i].sl;
printf("Please input %d selling information",N);
printf("dm mc dj sl je\n");
for (i=0;i<10;i++)
scanf("%s %s %d %d %d",zl[i].dm,zl[i].mc,&zl[i].dj,&zl[i].sl,&zl[i].je);
WriteDat(zl,file1);
ReadDat(zl,file1);
SortDat(zl);
printf("%s %s %d %d %d",zl[i].dm,zl[i].mc,zl[i].dj,zl[i].sl,zl[i].je);
WriteDat(zl,file2);
}
void ReadDat(struct sell zl[],char *filename)
{ FILE *fp;
if((fp=fopen(filename,"rb"))==NULL)
{ printf("\nCan't open this file!\n");
exit(0);
}
fread(zl,sizeof(struct sell),N,fp);
if(ferror(fp))
{printf("File Error\n");
exit(0);
}
fclose(fp);
printf("\n%s read finished!\n",filename);
}
void WriteDat(struct sell zl[],char *filename)
{ FILE *fp;
if((fp=fopen(filename,"wb"))==NULL)
{printf("\nCan't open this file\n");
exit(0);
}
fwrite(zl,sizeof(struct sell),N,fp);
if(ferror(fp))
{printf("File Error\n");exit(0);
}
fclose(fp);
printf("\n%s write finished!\n",filename);
}
void SortDat(struct sell zl[])
{ int i,j;
struct sell t[20],k[20];
for(i=0;i<9;i++)
{for(j=i+1;j<10;j++)
if(zl[i].dm<zl[j].dm)
{t[i]=zl[i];
zl[i]=zl[j];
zl[j]=t[i];
}
else
if(zl[i].dm==zl[j].dm)
{if(zl[i].je<zl[j].je)
k[i]=zl[i];
zl[i]=zl[j];
zl[j]=k[i];
}
}
}
566 楼
hulufeng [专家分:0] 发布于 2010-06-21 13:18:00
您好,我想弄一个学生考勤管理系统,必须要用c++设计的,还要包括类的、、、、
567 楼
l345711860 [专家分:0] 发布于 2010-06-24 16:44:00
新手问题:
有下面一段代码关于逆序输出:
char h[]="abcde";
printf("%s",strrev(h));
这样可以输出倒序字符串;
而这样却不行了呢?
char *h="abcde";
printf("%s",strrev(h));
编译器就出现错误了 ?
请问为什么char h【】可以而char *h却不可以呢?
568 楼
相反的,我 [专家分:0] 发布于 2010-07-05 11:02:00
我想求一份c++程序设计 关于采购计划管理系统的程序,希望你能帮我,
569 楼
uestczhaowei [专家分:0] 发布于 2010-07-05 11:18:00
在VC++6.0里面点击Project->Add To Project->Components and Controls程序就死了,这是怎么回事,该怎么解决?
570 楼
visualsan [专家分:50] 发布于 2010-07-05 16:10:00
你好,问一个问题:
GlobalAlloc中参数GMEM_FIXED,GMEM_MOVEABLE在MSDN上解释较模糊。
能解答一下两者的区别及使用注意问题。
还有GlobalAlloc申请的全局变量如何在跨线程之间访问以及保证线程安全。先谢了。
我来回复