仅供参考!

注意:同路径文件夹下放置名为 学生成绩.txt文件

如图:

            #include<bits/stdc++.h>using namespace std;#include<iostream>#define PI 3.14void page();                   //用于页面的制造 void function();              //负责主菜单的显示和用户进行功能的选择 void add();                        //两数进行加法 void subtract();               //两数进行减法 void absolute();       //两数之间取模 void multiply();       //计算两数的乘积 void divide();            //计算两数的商 void area();           //求圆的面积 void place();           //判断数字的位数 void year();              //判断闰年 void chengji();              //百分制成绩转换为五分制 void shi();                   //计算范围内奇数的和 void shiyi();               //计算范围内偶数的和 void shier();               //计算范围内3的倍数的和 void integer();               //计算范围内15的倍数的和void daffodil();          //水仙花数 int max( int x,int y );          //求最大值 void max_f();void max_min( int *p,int *q );  //求最大最小值 void shiliu();void sort( float *a );           //冒泡排序 void sort_f();void transpose();              //矩阵转置 void diagonal();             //求对角线上数字的和 void ershi();typedef struct node{           //定义链表的节点 int num;struct node * next;}node;node * head_f();             //定义头指针 void j_chain();                 //定义静态链表 void output( node * head );        //输出链表 void insert( node * head );      //插入链表中的节点 void delet( node * head );       //删除链表中的节点 void s_menu( node * head );      //动态链表的二级菜单 void d_chain();                 //定义动态链表struct student{                 //定义学生信息的结构体 int sno;char name[10];float score;};void grade();          //对学生成绩进行排序 void score();           //利用文件实现学生成绩普涨10分的操作 char sushu();void ershiwu();           //判断素数 int main(){function();return 0;}void function(){int n;while( 1 ){page();printf("请选择要进行第几项功能:");scanf("%d",&n);system("cls");if( n==26 )                   //n得到输入的数然后进行判断执行哪段代码 break;switch( n ){case 1:add();break;case 2:subtract();break;case 3:absolute();break;case 4:multiply();break;case 5:divide();break;case 6:area();break;case 7:place();break;case 8:year();break;case 9:chengji();break;case 10:shi();break;case 11:shiyi();break;case 12:shier();break;case 13:integer();break;case 14:daffodil();break;case 15:max_f();break;case 16:shiliu();break;case 17:sort_f();break;case 18:transpose();break;case 19:diagonal();break;case 20:ershi();break;case 21:j_chain();break;case 22:d_chain();break;case 23:grade();break;case 24:score();break; case 25:ershiwu();break;}printf("\n");system("pause");getchar();system("cls");}}void page(){printf("     *************************************\n");printf("        *       小小计算器                  *\n");printf("     *       1  加法                     *\n");printf("      *       2  减法                     *\n");printf("      *       3  取模                     *\n");printf("      *       4  乘法                     *\n");printf("      *       5  除法                     *\n");printf("      *       6  求圆面积                 *\n");printf("        *       7  判断数字的位数           *\n");printf("       *       8  判断闰年                 *\n");printf("        *       9  成绩转换                 *\n");printf("        *       10 计算从1到n的奇数和       *\n");printf("        *       11 计算从1到n的偶数和       *\n");printf("        *       12 计算从1到n的3的倍数的和  *\n");printf("      *       13 求即被3整除又被5整除的数 *\n");printf("       *       14 求水仙花数               *\n");printf("     *       15 求最大值                 *\n");printf("        *       16 求最大最小值             *\n");printf("      *       17 冒泡排序                 *\n");printf("        *       18 矩阵转置                 *\n");printf("        *       19 求对角线和               *\n");printf("     *       20 统计单词个数               *\n");printf("        *       21 创建静态链表             *\n");printf("      *       22 创建动态链表             *\n");printf("      *       23 学生成绩排序             *\n");printf("      *       24 成绩普涨10分             *\n");printf("     *       25 素数判断                 *\n");printf("        *       26 退出程序                 *\n");printf("        *************************************\n");}void add(){int a,b;printf("请输入两个整数进行加法(中间以空格隔开):");scanf("%d %d",&a,&b);printf("\n加法结果的十进制形式是:%d\n",a+b);//十进制形式输出 printf("加法结果的八进制形式是:%o\n",a+b);//八进制形式输出 printf("加法结果的十六进制形式是:%x\n",a+b);//十六进制形式输出 }void subtract(){int a,b;printf("请输入两个整数进行减法(中间以空格隔开):");scanf("%d %d",&a,&b);printf("\n加法结果的十进制形式是:%d\n",a-b);printf("加法结果的八进制形式是:%o\n",a-b);printf("加法结果的十六进制形式是:%x\n",a-b);}void absolute(){int a,b,value;printf("请输入两个整数进行取模运算(中间以空格隔开):");scanf("%d %d",&a,&b);value=abs(a-b);printf("\n取模结果的十进制形式是:%d\n",value);printf("取模结果的八进制形式是:%o\n",value);printf("取模结果的十六进制形式是:%x\n",value);}void multiply(){float a,b;printf("请输入两个数进行乘法(中间以空格隔开):");scanf("%f %f",&a,&b);printf("\n乘法结果的小数形式是:%f\n",a*b);printf("乘法结果的指数形式是:%e\n",a*b);}void divide(){float a,b;printf("请输入两个数进行除法(中间以空格隔开):");scanf("%f %f",&a,&b);if( b==0.0 )printf("\n除数为0,无法进行除法运算\n"); else{ printf("\n除法结果的小数形式是:%f\n",a/b);printf("除法结果的指数形式是:%e\n",a/b);} }void area(){float r;printf("请输入圆的半径:");scanf("%f",&r);printf("\n该圆面积是%f\n",PI*r*r);printf("该圆的面积保留两位小数结果是:%1.2f\n",PI*r*r);}void place(){int a,x,y,z;printf("请输入一个3位以内正整数进行位数的判断:");scanf("%d",&a);if( a<=0 )printf("\n要求输入的数为正整数");else if( a>=1000 )printf("\n要求输入的数为3位以内的正整数"); else if( a>=100 && a<=999 ){x=a/100;y=a/10-x*10;z=a%100-y*10;printf("\n该数为3位数,百位是%d,十位是%d,个位是%d",x,y,z);}else if( a>=10 && a<=99 ){x=a/10;y=a%10;printf("\n该数为2位数,十位是%d,个位是%d",x,y);}else if( a>=0 && a<=9 )printf("\n该数为1位数,它是%d",a);}void year(){int y;printf("请输入年份:");scanf("%d", &y);if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)printf("%d是闰年\n",y);elseprintf("%d不是闰年\n",y);}void chengji(){int x;printf("请输入成绩:");scanf("%d",&x);if( x>100 || x<0 )printf("成绩输入错误");elseswitch(x/10){case 10:case 9:printf("优秀");break;case 8:printf("良");break;case 7:printf("中");break;case 6:printf("及格");break;default:printf("回家种地!");}}void shi(){int a,su=0,l;printf("输入数据:");scanf("%d",&l);for(a=1;a<l;){a=2*a+1;su=a+su;printf("\n1到%d之间所有奇数的和为%d",su);}}void shiyi(){int p,su2=0,l2;printf("输入数据:");scanf("%d",&l2);for(p=1;p<l2;){p=2*p;su2=p+su2;printf("\n1到%d之间所有偶数的和为%d",su2);}}void shier(){int n,i=3,sum=0;printf("请输入n的值:");scanf("%d",&n);if( n>=3 )do{sum+=i;i+=3;}while( i<=n );printf("\n1到%d之间所有3的倍数的和为%d",n,sum);}void integer(){int a,b,i,sum=0,t;printf("用两个数之间的数进行求和:");scanf("%d %d",&a,&b);if( a>b ){t=a;a=b;b=t;}for( i=a;i<=b;i++ )if( i%3==0 && i%5==0 )sum+=i;printf("\n和是:%d",sum);}void daffodil(){int a,b,c;printf("水仙花数有:"); for( a=1;a<=9;a++ )for( b=0;b<=9;b++ )for( c=0;c<=9;c++ )if( a*100+b*10+c==a*a*a+b*b*b+c*c*c )printf("%6d",a*100+b*10+c);}int max( int x,int y ){int ret;if( x>y )ret=x;elseret=y;return ret;}void max_f(){int a,b;printf("请输入两个整数(中间以空格隔开):");scanf("%d %d",&a,&b);printf("\n最大值是:%d",max(a,b));}void max_min( int *p,int *q ){int *t;if( *p<*q ){t=p;p=q;q=t;}printf("\n最大的数是%d,最小的数是%d",*p,*q);}void shiliu(){int a,b;int *p,*q;printf("输入两个正整数即可求出最大与最小(中间以空格隔开):");scanf("%d %d",&a,&b);max_min(&a,&b);}void sort( float *a ){float t;int i,j;                             //定义两个变量 从第一位开始对其一个个做比较 for( j=0;j<9;j++ )for( i=0;i<9-j;i++ )              //把数大的 往后挪 第二次从第二个数开始依次 重复 if( a[i]>a[i+1] ){t=a[i];                       //直到最后一次重复把所有大的数放到了小数后 a[i]=a[i+1];a[i+1]=t;}printf("\n从小到大的排序结果为:\n");for( i=0;i<10;i++ )printf("%1.4f    ",a[i]);}void sort_f(){float a[10];int i;printf("请输入10个数,即可得到排序结果:\n");for( i=0;i<10;i++ )                                        //先定义数组然后对其输入 scanf("%f",&a[i]);sort(a);}void transpose(){int a[4][4]={0},i,j,t;printf("请输入一个3*4的整数矩阵,进行转置操作:\n");for( i=0;i<3;i++ )for( j=0;j<4;j++ )scanf("%d",&a[i][j]);printf("转置后的整数矩阵为:\n");for( i=0;i<4;i++ )for( j=i;j<4;j++ )if( i!=j ){t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}for( i=0;i<4;i++ ){for( j=0;j<3;j++ )printf("%4d",a[i][j]);printf("\n");}}void diagonal(){int a[3][3],i,j,sum=0;printf("请输入一个3*3的整数矩阵:\n");printf("(同一行的数字用空格隔开,不同行的数字用回车隔开)"); for( i=0;i<3;i++ )for( j=0;j<3;j++ )scanf("%d",&a[i][j]);for( i=0;i<3;i++ )sum+=a[i][i];printf("\n对角线上的和为:%d",sum);}void ershi(){char string[81];                          int i,num=0,word=0;                gets(string);for(i=0;(string[i]!='\0');i++)if(string[i]==' ') word=0;else if(word==0){word=1;num++;}printf("共有有%d个字母。\n",num);}node * head_f(){node *head;head=(node*)malloc(sizeof(node));head->next=NULL;return head;}void j_chain(){node *head,*p,*pre;int a[4]={5,6,7,8},i;head=head_f();pre=head;for( i=0;i<=3;i++ ){p=(node*)malloc(sizeof(node));           //申请空间 头节点定义两个区 一个是数值区 p->num=a[i];p->next=NULL;                            //一个指针域 然后让上一个节点的地址域指向下一个节点的数值区 pre->next=p;pre=p;}printf("该链表所含的数字为:\n");p=head->next;while( p!=NULL ){printf("%d",p->num);                //最后一个节点为空才停止 p=p->next;}}void output( node * head ){                                           //输出链表视频讲解 node *p;cout<<"该链表所含数字为:\n";      p=head->next;while( p!=NULL ){printf("%4d",p->num);p=p->next;} }void insert( node * head ){int n,x,count;output(head);cout<<"\n请输入要插入的位置:\n";cin>>n;cout<<"请输入要插入的数:\n";cin>>x;node *p,*q;p=head;count=1;while( count<n && p->next ){p=p->next;count++;}if( count!=n )cout<<"输入的位置有错误\n";else{q=(node*)malloc(sizeof(node));q->num=x;q->next=p->next;p->next=q;}output(head);}void delet( node * head ){output(head);int n,count;cout<<"\n请输入要删除的位置:\n";cin>>n;node *p,*q;p=head;count=1;while( count<n && p->next->next ){p=p->next;count++;}if( count!=n )cout<<"输入的位置有错误\n";else{q=p->next;p->next=q->next;free(q);}output(head);}void s_menu( node * head ){int n=0;while( 1 ){cout<<"*************************************\n";cout<<"*       1.输出链表                  *\n";cout<<"*       2.链表中插入数字            *\n";cout<<"*       3.删除节点                  *\n";cout<<"*       4.退出                      *\n";cout<<"*************************************\n";cout<<"请选择功能:";scanf("%d",&n);system("cls");if( n==4 )break;switch( n ){case 1:output(head);cout<<"\n按任意键继续......";break;case 2:insert(head);cout<<"\n按任意键继续......";break;case 3:delet(head);cout<<"\n按任意键继续......";break;}getchar();getchar();system("cls");}}void d_chain()            //动态链表视频讲解 {node *head,*p,*pre;int x;printf("请输入一些数:(输入负数即可结束输入)\n");head=head_f();pre=head;while( 1 ){cin>>x;if( x<0 )break;p=(node*)malloc(sizeof(node));p->num=x;p->next=NULL;pre->next=p;pre=p;}system("cls");s_menu(head);}void grade(){struct student stu[10],t;int n=0,i,j;float sum=0.0;printf("请输入10位学生的学号,姓名,分数:\n");for( n=0;n<10;n++ ){scanf("%d",&stu[n].sno);scanf("%s",&stu[n].name);scanf("%f",&stu[n].score);           }for( i=0;i<9;i++ )for( j=0;j<9-i;j++ ){if( stu[j].score>stu[j+1].score ) {t=stu[j];stu[j]=stu[j+1];     //冒泡法排序 stu[j+1]=t;}}printf("\n从小到大的结果为:\n");for( n=0;n<10;n++ ){printf("%d  ",stu[n].sno);printf("%s  ",stu[n].name);         //定义结构体 printf("%1.2f\n",stu[n].score);sum+=stu[n].score;}printf("这10个学生的总成绩为:%1.2f",sum); //结构体的输出 格式 printf("\n平均成绩为:%1.2f",sum/10);}void score(){int i=0;FILE *fp;int s[10]={0};if((fp=fopen("成绩.txt","r+"))==NULL){cout<<"Error!";exit(1); }cout<<"分数普涨前是:(最高100分)\n";while( !feof(fp) && i!=10 ){fscanf(fp,"%d",&s[i]);           //首先判断一下在90~100直接变为100 否则+10 printf("%4d",s[i]);if( s[i]>=90 )s[i]=100;elses[i]+=10;i++;}cout<<"\n分数普涨后是:\n"; for(i=0;i<10;i++)printf("%4d",s[i]);rewind(fp);for( i=0;i<10;i++ ){fprintf(fp,"%d",s[i]);fprintf(fp,"\n");}rewind(fp);fclose(fp);}char sushu(int i){int n; for(i=2;i<=n;i++)if(n%i==0)break;if(i>n)return 0;if(i<n)return 1;}void ershiwu(){    printf("请输入要判断的数字:");int i,x;scanf("%d",&i);x=sushu(i);if(x=1) printf("是素数");if(x=0) printf("不是素数");} 

C++小小计算器(25个功能)相关推荐

  1. 【c++/c】C语言“小小计算器”基本功能实现(包含12个实验一篇足以)【期末大作业】

    文章目录 小小计算器 实验1."小小计算器"基本功能实现(1) 实验2."小小计算器"基本功能实现(2) 实验3."小小计算器"基本功能实现 ...

  2. 赛码输入输出java_赛码网-计算器的新功能(Java实现)

    题目描述 当你学一些可视化程序设计语言时,老师经常会让你设计并且编程做出一个计算器,这时也许你会仿照windows系统自带的计算器外观和功能去设计,但是现在老师要你多做出一个有新功能的计算器,实现当输 ...

  3. L2-1 简单计算器 (25 分)详解c语言 模拟堆栈

    L2-1 简单计算器 (25 分) 本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器.如上图所示,计算器由两个堆栈组成,一个堆栈 S​1存放数字,另一个堆栈 S​2 存放运算符.计算 ...

  4. java语言计算器怎么写_求助,一个计算器的括号功能怎么写啊。

    求助,一个计算器的括号功能怎么写啊. import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java. ...

  5. 7-13 简单计算器 (25 分)

    7-13 简单计算器 (25 分) 本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器.如上图所示,计算器由两个堆栈组成,一个堆栈 S1​ 存放数字,另一个堆栈 S2​ 存放运算符.计 ...

  6. Java实现计算器的基本功能

    Java实现计算器的基本功能 package p3;import java.awt.Color; import java.awt.Container; import java.awt.Dimensio ...

  7. 计算器的二进制功能java_Java二进制文字– Java 7功能

    计算器的二进制功能java Binary literals are new features in Java 7. As you all know that we can write integral ...

  8. 用于科学计算机的计算器特点是什么,科学计算器有哪些功能

    科学计算器有哪些功能 科学计算器支持显示24位数字,支持运算优先选择模式.进制转换功能.标准数学函数.百分比计算.方根计算.对数.次方.记忆等等功能.下面,小编就为大家讲讲科学计算器的功能,快来看看吧 ...

  9. PTA7-1 简单计算器 (25 分)

    PTA7-1 简单计算器 (25 分) 本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器.如上图所示,计算器由两个堆栈组成,一个堆栈 S1​ 存放数字,另一个堆栈 S2​ 存放运算符 ...

最新文章

  1. CRM项目经验总结-从DAO层到链接数据池
  2. 九九乘法表的C语言实现
  3. netty cpu 占用率 高_Netty 是如何支撑高性能网络通信的?
  4. poj 3087 Shuffle'm Up 模拟(map记录)
  5. 微服务分布式学到这种程度,稳了!
  6. oppok1刷原生android10,OPPOK1系统升级最新ColorOSV6刷机包(完整固件rom下载ColorOSV6安卓9.0)...
  7. cubemx stm32 配置两个串口_用STM32CubeMX怎么配置串口的接收中断
  8. 免费内网穿透-端口映射
  9. 深信服虚拟服务器 视频教程,5分钟,轻松玩转深信服服务器虚拟化
  10. java gps809_车载GPS对接809协议的数据对接
  11. 基于jq的别踩白块儿小游戏
  12. 爬虫之抽屉新热榜点赞基本示例
  13. 清理linux 系统内存缓存
  14. 青春是一场眼眸里的微笑
  15. PTA 7-4 最大公约数和最小公倍数
  16. 因为一条SQL,我差点被祭天......,我太难了!
  17. scrapy模拟登陆强智教务系统
  18. 分布式数据库NoSQL(十)——初识Redis
  19. 在win10系统安装linux系统,win10系统安装Linux子系统的操作方法
  20. 一个非知识库的中文分词算法实现

热门文章

  1. yolov5---detect.py注释解析
  2. 数据结构——图书管理系统
  3. terminate called without an active exception异常
  4. Nvidia Jetson TX2 详细刷机教程及踩坑记录(Jetpack3.3,python2.7,torch1.2,torchvision0.2.2)
  5. OID科普:物联网OID与互联网域名的区别 | 圣笛数控
  6. MIMO中SM系统原理与仿真
  7. android中终端命令大全,Android系统在超级终端下必会的命令大全(八)
  8. 虚幻引擎UE4中的Tick事件
  9. CANoe.DiVa操纵指南——CANoe.DiVa配合vTestStudio进行高覆盖的测试
  10. 金融行业 | 电子银行系统性能优化解决方案 1