VC++与C++有什么区别和联系

VC++与C++有什么区别和联系,第1张

一、区别:

1、概念。C++是程序设计语言,是一种软件编制的通用规范,VC++是编程环境或者一种工具。VC++是微软公司在C++的基础上提供了一些Windows图形界面函数库,可以说VC++ 就是C++加上Windows图形库。

2、使用。C++是一门编程语言,而VC++是一个工具。C++是与平台无关的,VC++只能在Windows跑,学习VC++,是学Windows编程。应该先学编程语言,然后再具体的学习与平台相关的东西。

3、学习方式。VC++教材都是假设用户已经掌握了C++语言,没有C++基础,这样是无法理解MFC 的任何东西的。学好了C++,即使不学Visual C++,也是大有作为的。

二、联系:

C++是在C语言的基础上加入了“类”的概念以及“对象”的概念,所以C++是面向对象的编程语言。而VC++是在C++的基础上加入了对windows可视化(窗口化以及控件) *** 作的支持,所以它也是面向对象的编程语言。

扩展资料:

C++在C语言的基础上开发了一种面向对象编程语言,应用非常广泛。常用于系统开发,引擎开发等应用领域,支持类、封装、继承、多态等特性。C++语言灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点。

C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

VC++微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。VC++集成了便利的除错工具,特别是集成了微软Windows视窗 *** 作系统应用程序接口(Windows API)、三维动画DirectX API,Microsoft NET框架。

参考资料:

百度百科_C++

百度百科_Microsoft Visual C++

#include <stdioh>

#include <stringh>

typedef struct count{ /保存记录条数结构体/

char name[10];

int num;

}count;

typedef struct st{

char name[10];

long Number;

int Math;

int C;

int Amount;

}st;

st record[8];

count num[1];

char filename[10]={"0"};

char filename2[10]={"0"};

int Inputnum[8];

void MainMenu(){ /主菜单/

printf("\n\t\t\t\t \n");

printf("\t\t\t\t 主菜单 \n");

printf("\t\t\t\t 1 新建数据 \n");

printf("\t\t\t\t 2 添加数据 \n");

printf("\t\t\t\t 3 删除数据 \n");

printf("\t\t\t\t 4 排序 \n");

printf("\t\t\t\t 5 查询 \n");

printf("\t\t\t\t 6 退出 \n");

printf("\t\t\t\t \n");

}

void DelMenu(){ /删除菜单/

printf("\n\t\t\t\t \n");

printf("\t\t\t\t 删除菜单 \n");

printf("\t\t\t\t 1 学号查询删除 \n");

printf("\t\t\t\t 2 返回到上级菜单 \n");

printf("\t\t\t\t \n");

}

void RankingMenu(){ /排序菜单/

printf("\n\t\t\t\t \n");

printf("\t\t\t\t 排序菜单 \n");

printf("\t\t\t\t 1 数学成绩排序 \n");

printf("\t\t\t\t 2 C语言成绩排序 \n");

printf("\t\t\t\t 3 总分排序 \n");

printf("\t\t\t\t 4 返回主菜单 \n");

printf("\t\t\t\t \n");

}

void InquireMenu(){ /查讯菜单/

printf("\n\t\t\t\t \n");

printf("\t\t\t\t 查讯菜单 \n");

printf("\t\t\t\t 1 学号查讯 \n");

printf("\t\t\t\t 2 姓名查讯 \n");

printf("\t\t\t\t 3 数学成绩查讯 \n");

printf("\t\t\t\t 4 程序设计成绩查询 \n");

printf("\t\t\t\t 5 总分查讯 \n");

printf("\t\t\t\t 6 总分查询 \n");

printf("\t\t\t\t \n");

}

char Inputfilename(){ /输入文件名同时产生付本文件名/

char str2[]={"B"};

printf(" 请输入文件名 : ");

scanf("%s",filename);

getchar();

strcpy(filename2,filename);

strcat(filename2,str2);

}

FILE readfile(){ /读取文档/

FILE fp1;

if((fp1=fopen(filename,"rb"))==NULL)

{printf("\n文件读取错误!!\n");

fclose(fp1);

}

return(fp1);

}

FILE foundfile(){ /新建文档/

FILE fp1;

if((fp1=fopen(filename,"wb"))==NULL)

{printf("\n文件创建错误!!\n");

fclose(fp1);

}

return(fp1);

}

FILE savefile(){ /追加文档/

FILE fp1;

if((fp1=fopen(filename,"ab"))==NULL)

{printf("\n文件追加错误!!\n");

fclose(fp1);

}

return(fp1);

}

int InputSave(){ /添加数据 /

int i=0,j;

char ch='y';

while(ch!='w')

{i=i+1;

printf("\n 请输入姓名(字符型) :");

scanf("%s",record[i]name);

Loop1: printf("\n 请输入学号(长整型) :");

scanf("%ld",&record[i]Number);

if(i!=1)

for(j=1;j<i;j++)

if(record[i]Number==record[j]Number)

{printf("\n\t警告! 输入了二个同样的学号! 第%d条和第%d学号相同!\n",i,j);

printf("\n\t请重新输入!\n");

goto Loop1;

}

Loop2: printf("\n 请输入数学成绩(整型) :");

scanf("%d",&record[i]Math);

if(record[i]Math>100||record[i]Math<0)

{printf("\n\t输入的分数不服合实际要求! 请重新录入!\n");

goto Loop2;

}

Loop3: printf("\n 请输入C语言成绩(整型) :");

scanf("%d",&record[i]C);

if(record[i]C>100||record[i]C<0)

{printf("\n\t输入的分数不服合实际要求! 请重新录入!\n");

goto Loop3;

}

record[i]Amount=record[i]Math+record[i]C;

printf(" \n'w'=结束录入 's'=重新录入此条记录 'n'=下一条 : ");

getchar(); /吃掉上一个回车符/

if((ch=getchar())=='s')

i=i-1;

}

return(i);

}

/

void ReadComputer(int i,FILE fp1){ (文本方式)数据写入机器

int j;

for(j=1;j<i+1;j++)

fscanf(fp1,"%s,%ld,%d,%d,%d",record[j]name,&record[j]Number,&record[j]Math,&record[j]C,&record[j]Amount);

}

void SaveFile(int i,FILE fp1){ (文本方式)数据写到文件中

int j;

for(j=1;j<i+1;j++)

fprintf(fp1,"%s,%ld,%d,%d,%d",record[j]name,record[j]Number,record[j]Math,record[j]C,record[j]Amount);

}

/

void ReadComputer2(int i,FILE fp1){ /(2方式)数据写入机器/

int j;

for(j=1;j<i+1;j++)

if((fread(&record[j],sizeof(struct st),1,fp1))!=1)

{printf("\n主文件数据读取错误! \n");

fclose(fp1);

}

}

void SaveFile2(int i,FILE fp1){ /(2方式)数据写到文件中/

int j;

for(j=1;j<i+1;j++)

if((fwrite(&record[j],sizeof(struct st),1,fp1))!=1)

{printf("\n主文件数据写入错误! \n");

fclose(fp1);

}

}

/ /

FILE readfile2()

{ /读文件付本/

FILE fp1;

if((fp1=fopen(filename2,"rb"))==NULL)

{printf("\n付本文件读取错误!\n");

fclose(fp1);

}

return(fp1);

}

FILE foundfile2(){ /新建文件付本/

FILE fp1;

if((fp1=fopen(filename2,"wb"))==NULL)

{printf("\n付本文件创建错误!\n");

fclose(fp1);

}

return(fp1);

}

FILE savefile2(){ /追加文件付本/

FILE fp1;

if((fp1=fopen(filename2,"ab"))==NULL)

{printf("\n付本文件追加错误!\n");

fclose(fp1);

}

return(fp1);

}

/

void Additive2(int i,FILE fp1){ 数据与入付本文件(文本方式)

int j;

char str2={"0"};

if(strcmp(filenameF,str2)!=0)

strcpy(num[0]name,filenameF);

else

strcpy(num[0]name,filenameA);

num[0]num=i;

fprintf(fp1,"%s,%d",num[0]name,num[0]num);

}

int ReadComputer2(FILE fp1){ 读出付本中的数据(文本方式)

int j,k;

fscanf(fp1,"%s,%d",num[0]name,&num[0]num);

k=num[0]num;

return(k);

}

/

void Additive2Two(int i,FILE fp1){ /数据写入付本文件(二进制方式)/

char str2[]={"0"};

if(strcmp(filename2,str2)!=0)

strcpy(num[0]name,filename2);

else

strcpy(num[0]name,filename2);

num[0]num=i;

if((fwrite(&num[0],sizeof(struct count),1,fp1))!=1)

{printf("\n付本文件数据写入错误! \n");

fclose(fp1);

}

}

int ReadComputer2Two(FILE fp1){ /读出付本中的数据(二进制方式)/

int j;

if((fread(&num[0],sizeof(struct count),1,fp1))!=1)

{printf("\n付本文件数据读取错误! \n");

fclose(fp1);

}

j=num[0]num;

return(j);

}

/ /

void Num_inquire(){ /学号查询/

int num,j,time;

FILE fp1,fp2;

fp1=readfile(); /读取文档/

fp2=readfile2(); /(开打方式'读''引用读文件名')读文件付本/

time=ReadComputer2Two(fp2); /读出付本中的数据(二进制方式)/

ReadComputer2(time,fp1); /(2方式)数据写入机器/

fclose(fp1);fclose(fp2);

printf("输入学号:");

scanf("%ld",&num);

/getchar();/

for(j=1;j<time+1;j++)

{if(record[j]Number==num)

printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j]name,record[j]Number,record[j]Math,record[j]C,record[j]Amount);

}

}

void Name_inquire(){ /姓名查询/

int j,time;

char Name[10];

FILE fp1,fp2;

fp1=readfile();

fp2=readfile2(); /(开打方式'读''引用读文件名')读文件付本/

time=ReadComputer2Two(fp2); /读出付本中的数据(二进制方式)/

ReadComputer2(time,fp1); /(2方式)数据写入机器/

fclose(fp1);fclose(fp2);

printf("输入姓名:");

scanf("%s",Name);

/getchar();/

for(j=1;j<time+1;j++)

{if(strcmp(Name,record[j]name)==0)

printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j]name,record[j]Number,record[j]Math,record[j]C,record[j]Amount);

}

}

void Math_inquire(){ /数学查询/

int Math,j,time;

FILE fp1,fp2;

fp1=readfile();

fp2=readfile2(); /(开打方式'读''引用读文件名')读文件付本/

time=ReadComputer2Two(fp2); /读出付本中的数据(二进制方式)/

ReadComputer2(time,fp1); /(2方式)数据写入机器/

fclose(fp1);fclose(fp2);

printf("输入数学成绩:");

scanf("%d",&Math);

/getchar();/

for(j=1;j<time+1;j++)

{if(record[j]Math>=Math)

printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j]name,record[j]Number,record[j]Math,record[j]C,record[j]Amount);

}

}

void C_inquire(){ /C查询/

int C,j,time;

FILE fp1,fp2;

fp1=readfile();

fp2=readfile2(); /(开打方式'读''引用读文件名')读文件付本/

time=ReadComputer2Two(fp2); /读出付本中的数据(二进制方式)/

ReadComputer2(time,fp1); /(2方式)数据写入机器/

fclose(fp1);fclose(fp2);

printf("输入C语言成绩:");

scanf("%d",&C);

/getchar();/

for(j=1;j<time+1;j++)

{if(record[j]C>=C)

printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j]name,record[j]Number,record[j]Math,record[j]C,record[j]Amount);

}

}

void Amount_inquire(){ /总分查询/

int Amount,j,time;

FILE fp1,fp2;

fp1=readfile();

fp2=readfile2(); /(开打方式'读''引用读文件名')读文件付本/

time=ReadComputer2Two(fp2); /读出付本中的数据(二进制方式)/

ReadComputer2(time,fp1); /(2方式)数据写入机器/

fclose(fp1);fclose(fp2);

printf("输入总分:");

scanf("%d",&Amount);

/getchar();/

for(j=1;j<time+1;j++)

{if(record[j]Amount>=Amount)

printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j]name,record[j]Number,record[j]Math,record[j]C,record[j]Amount);

}

}

/ /

void Num_inquire_Del(){ /学号查询删除/

char ch;

int num,j,k,time;

FILE fp1,fp2;

fp1=readfile(); /读取文档/

fp2=readfile2(); /读文件付本/

time=ReadComputer2Two(fp2); /读出付本中的数据(二进制方式)/

ReadComputer2(time,fp1); /(2方式)数据写入机器/

fclose(fp1);fclose(fp2);

//这是前319行,还有三百多行,你的邮箱是多少,我发给你,这里字数有限制,写不下

1、C语言

如果说FORTRAN和COBOL是第一代高级编译语言,那么C语言就是它们的孙子辈。C语言是Dennis Ritchie在七十年代创建的,它功能更强大且与ALGOL保持更连续的继承性,而ALGOL则是COBOL和FORTRAN的结构化继承者。C语言被设计成一个比它的前辈更精巧、更简单的版本,它适于编写系统级的程序,比如 *** 作系统。在此之前, *** 作系统是使用汇编语言编写的,而且不可移植。C语言是第一个使得系统级代码移植成为可能的编程语言。

C语言支持结构化编程,也就是说C的程序被编写成一些分离的函数呼叫(调用)的集合,这些呼叫是自上而下运行,而不像一个单独的集成块的代码使用GOTO语句控制流程。因此,C程序比起集成性的FORTRAN及COBOL的“空心粉式代码”代码要简单得多。事实上,C仍然具有GOTO语句,不过它的功能被限制了,仅当结构化方案非常复杂时才建议使用。

正由于它的系统编程根源,将C和汇编语言进行结合是相当容易的。函数调用接口非常简单,而且汇编语言指令还能内嵌到C代码中,所以,不需要连接独立的汇编模块。

优点:有益于编写小而快的程序。很容易与汇编语言结合。具有很高的标准化,因此其他平台上的各版本非常相似。

缺点:不容易支持面向对象技术。语法有时会非常难以理解,并造成滥用。

移植性:C语言的核心以及ANSI函数调用都具有移植性,但仅限于流程控制、内存管理和简单的文件处理。其他的东西都跟平台有关。比如说,为Windows和Mac开发可移植的程序,用户界面部分就需要用到与系统相关的函数调用。这一般意味着你必须写两次用户界面代码,不过还好有一些库可以减轻工作量。

用C语言编写的游戏:非常非常多。

资料:C语言的经典著作是《The C Programming Language》,它经过多次修改,已经扩展到最初的三倍大,但它仍然是介绍C的优秀书本。一本极好的教程是《The Waite Group's C Primer Plus》。

2、C++

C++语言是具有面向对象特性的C语言的继承者。面向对象编程,或称OOP是结构化编程的下一步。OO程序由对象组成,其中的对象是数据和函数离散集合。有许多可用的对象库存在,这使得编程简单得只需要将一些程序“建筑材料”堆在一起(至少理论上是这样)。比如说,有很多的GUI和数据库的库实现为对象的集合。

C++总是辩论的主题,尤其是在游戏开发论坛里。有几项C++的功能,比如虚拟函数,为函数呼叫的决策制定增加了一个额外层次,批评家很快指出C++程序将变得比相同功能的C程序来得大和慢。C++的拥护者则认为,用C写出与虚拟函数等价的代码同样会增加开支。这将是一个还在进行,而且不可能很快得出结论的争论。

我认为,C++的额外开支只是使用更好的语言的小付出。同样的争论发生在六十年代高级程序语言如COBOL和FORTRAN开始取代汇编成为语言所选的时候。批评家正确的指出使用高级语言编写的程序天生就比手写的汇编语言来得慢,而且必然如此。而高级语言支持者认为这么点小小的性能损失是值得的,因为COBOL和FORTRAN程序更容易编写和维护。

优点:组织大型程序时比C语言好得多。很好的支持面向对象机制。通用数据结构,如链表和可增长的阵列组成的库减轻了由于处理低层细节的负担。

缺点:非常大而复杂。与C语言一样存在语法滥用问题。比C慢。大多数编译器没有把整个语言正确的实现。

移植性:比C语言好多了,但依然不是很乐观。因为它具有与C语言相同的缺点,大多数可移植性用户界面库都使用C++对象实现。

使用C++编写的游戏:非常非常多。大多数的商业游戏是使用C或C++编写的。

资料:最新版的《The C++ Programming Language》非常好。作为教程,有两个阵营,一个假定你知道C,另外一个假定你不知道。到目前为止,最好的C++教程是《Who's Afraid of C++》,如果你已经熟知C,那么试一下《Teach Yourself C++》。

3、我该学习C++或是该从C开始

我不喜欢这种说法,但它是继“我该使用哪门语言”之后最经常被问及的问题。很不幸,不存在标准答案。你可以自学C并使用它来写程序,从而节省一大堆的时间,不过使用这种方法有两个弊端:

你将错过那些面向对象的知识,因为它可能在你的游戏中使得数据建模更有效率的东西。

最大的商业游戏,包括第一人称射击游戏很多并没有使用C++。但是,这些程序的作者即使使用老的C的格式,他们通常坚持使用面向对象编程技术。如果你只想学C,至少要自学OO(面向对象)编程技术。OO是仿真(游戏)的完美方法,如果你不学习OO,你将不得不“辛苦”的工作。

VC2021编写的程序可以称为VC++程序,也可以称为C++程序。VC2021是微软Visual Studio 2021的缩写,它是一种集成开发环境(IDE),用于开发各种应用程序,包括C++程序、C#程序、Visual Basic程序等。在VC++中,可以使用C++语言进行编程,因此VC2021编写的程序也可以称为C++程序。

酷睿i系列之前的intelCPU 由于没有集成内存控制器 CPU与内存的通讯受到FSB前端总线频率的限制 比如说1333Mhz的FSB 那么 最高的通讯频率就是1333Mhz 也就是 使用两个667Mhz的DDR2内存或者单通道的1333MhzDDR3内存正好满足需求 使用更高的频率内存不是不支持 而是没必要 因为会自动降频 以保证与CPU外频的一致性(DDR2,DDR3的标称频率不是实际频率 而是等效为DDR内存的频率 有2倍 4倍的关系 这里的与CPU外频一致 指的是实际频率与其一致)

而从i系列开始 Intel的CPU开始集成内存控制器 CPU与内存可以直接通讯了 取代FSB的是QPI总线 比如i7使用的QPI总线频率是64GT/s 非常高了 根本构不成瓶颈 所以对于目前市售的一般DDR3内存并不会有频率的限制 而且集成了内存控制器 内存访问的延迟大大降低 所以带来了内存访问速度的飞速提升

另外 AMD的U也集成内存控制器 对应的是HT总线

QPI和HT总线是可以超频的 以支援发烧级的内存

以上就是关于VC++与C++有什么区别和联系全部的内容,包括:VC++与C++有什么区别和联系、求一个vc++学生成绩管理系统程序、VC 和C++ 学习哪门语言好追加30分!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10092003.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存