编程题目:使用C++语言模拟完成一个简单的计算机系统(举一个管理人员的例子,其他的例子与下述方法一致即可)

#include<iostream.h>
#include<math.h>
#include<string.h>
class star
{star *next;
public:char star_num[20];    //会员电话号码char star_name[30];   //会员姓名double star_money;    //会员余额void afterIn(star *p);void afterDelete();star *getNext(){return next;}void getmessage();void changemessage(int a,char *p1);void changemoney(double p);star(char *num,char *name,double money);star();
};void star::changemoney(double p)//体外构造函数
{star_money=p;
}star::star()
{strcpy(star_num,"\0");strcpy(star_name,"\0");star_money=0;next='\0';
}star::star(char *num,char *name,double money)
{strcpy(star_num,num);strcpy(star_name,name);star_money = money;next = '\0';
}void star::afterIn(star *p)     //插入节点
{p->next = next;next = p;
}void star::afterDelete()        //删除节点
{star *p = next;next = p->next;            //这里->代表指针所指方向delete p;
}void star::getmessage()
{cout<<"会员电话号码:"<<star_num<<      "会员姓名:"<<star_name;cout<<"现有余额:"<<star_money<<endl;
}void star::changemessage(int n, char *ptr)
{switch (n){case 1: strcpy(star_num, ptr); break;case 2: strcpy(star_name, ptr);}
}void construct_list(star *tail)
{star *p = new star;char very[20];float achieve;cout << "请输入会员电话号码:" <<endl;cin >> very;p->changemessage(1, very);cout << "请输入会员姓名:" <<endl;cin >> very;p->changemessage(2, very);cout << "请输入现有余额:" <<endl;cin >> achieve;p->changemoney(achieve);cout << "信息输入完毕" << endl;for (; tail->getNext() != '\0';){tail = tail->getNext();}tail->afterIn(p);
}star *findmessage(star *head)
{for(;;){cout<<"1--会员姓名查询会员        2--会员电话号码查询        0--返回上一级"<<endl; break;}char p[5],ptr[20];star *emmm=head;cin>>p;if(p[0]!='1'&&p[0]!='2'&&p[0]!='0' ||strlen(p)>1){cout << "对不起,你的输入有误,请重新输入!" << endl;}switch(p[0]){case'1':{cout << "请输入要查找的会员姓名:" << endl;cin>>ptr;for(; strcmp(ptr,emmm->star_name)!=0;emmm=emmm->getNext()){if(emmm->getNext()=='\0'){cout<<"sorry,It's wrong"<<endl;break;}}return emmm;}case'2':{cout<<"请输入你要查找的电话号码:"<<endl;cin>>ptr;for(;strcmp(ptr,emmm->star_num)!=0;emmm=emmm->getNext()){if(emmm->getNext()=='\0'){cout<<"sorry,It's wrong"<<endl;break;}}return emmm;}case'0':{return '\0';}}
}
void output(star *head)
{cout << "1-查看指定会员信息;2-查看所有会员;3-分段输出会员信息" << endl;char ch;int n = 0;head = head->getNext();cin >> ch;switch (ch){case '1': head = findmessage(head);if (head == '\0'){break;}head->getmessage();break;case '2': while (head){head->getmessage();head = head->getNext();}break;case '3': cout << "a-100元以下;b-100~500之间;c-500~1000分之间;d-100元以上:" << endl;cin >> ch;switch (ch){case 'a':while (head){if (head->star_money <= 100){head->getmessage();n++;}head = head->getNext();}break;case 'b': while (head){if (head->star_money>100&& head->star_money <= 500) { head->getmessage();n++; }head = head->getNext();}break;case 'c': while (head){if (head->star_money>500 && head->star_money <= 1000){ head->getmessage(); n++; }head = head->getNext();}break;case 'd': while (head){if (head->star_money>1000){head->getmessage();n++;}head = head->getNext();}if (n == 0){cout << "该时段没有您要找的会员信息" << endl;}}}}void delete_list(star *head)
{star *p ='\0';char selet[4];cout << "系统会根据您的提示找到您要删除的会员信息!" << endl;p = findmessage(head);if (p != '\0'){cout << "确认要删除吗(yes/任意键返回)" << endl;cin >> selet;if (strcmp(selet, "yes") == 0){for (; head->getNext() != p; head = head->getNext());head->afterDelete();cout << "该会员信息删除成功!" << endl;}}
}void change_info(star *head)
{cout << "系统会根据您提供的信息找的您要修改的余额信息:" << endl;star *p = '\0';float achieve;p = findmessage(head);if (p != '\0'){cout << "请输入现有余额:" << endl;cin >> achieve;p->changemoney(achieve);cout << "修改成功!" << endl;}}void mainopen(star *head)//构造主题函数(以All Star为例)
{char selet[15];int n=1;star *p,*ptr;star *emm=head,*emmm;cout << "                       欢迎进入All Star健身会员管理系统                 " << endl;do {cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;cout << "1.插入信息;   2.删除信息;  3.修改信息; 4.查看信息; " << endl;cout << "按'0'键退出      " << endl;cout << "**************************************************************************" << endl;cin >> selet;if (((selet[0]<'1' || selet[0]>'6') && selet[0] != 'q') || strlen(selet)>1){cout << "It's wrong,请重新输入!" << endl;break;}switch (selet[0]){case '1':construct_list(head);break; case '2': delete_list(head); break;case '3': change_info(head);break;case '4': output(head);break;case '0': break;}} while (selet[0]!='q');
}void main()
{star head;mainopen(&head);
}

当我们编译好之后,进行运行(下图为vc6.0编译器)
出现该图之后,按照图中所显示的进行插入、删除、修改以及查看会员信息,在该模拟计算机系统中,得到以上四种功能(如果你觉得多了或者少了,在上述代码中继续码或者删除一些功能即可)

-----淹死的鱼 恐高的鸟
/以上内容仅供学习与参考/

编程题目:使用C++语言模拟完成一个简单的计算机系统相关推荐

  1. c语言设计程序计算器,C语言程序设计,做一个简单计算器

    题目: C语言程序设计,做一个简单计算器 程序内容有:加减乘除和平方,立方,开方等.用if或者swith结构来编程. 算加法时只输出加法的结果,算减法时只出减法的结果,如此类推. 解答: 已发送, # ...

  2. JAVA同时输入用户名和密码_用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注...

    用java模拟设计一个简单的"用户注册"程序.当用户输入用户名和密码时,单击"注 2020 - 9 - 26 TAG : 所有功能均已实现,如有不满意的地方我再修改imp ...

  3. 用C语言模拟栈(简单实现)

    //C语言模拟栈,简单实现 #include <stdio.h> #include <stdlib.h> typedef struct Node node; struct No ...

  4. python 消息队列 go_gmq: gmq是基于redis提供的特性,使用go语言开发的一个简单易用的消息队列;支持延迟任务,异步任务,超时任务,优先级任务...

    1. 概述 gmq是基于redis提供的特性,使用go语言开发的一个简单易用的队列;关于redis使用特性可以参考之前本人写过一篇很简陋的文章Redis 实现队列; gmq的灵感和设计是基于有赞延迟队 ...

  5. c语言编程继承例子,C语言模拟实现C++的继承与多态示例

    一.面向过程编程与面向对象编程的区别 众所周知,C语言是一种典型的面向过程编程语言,而C++确实在它的基础上改进的一款面向对象编程语言,那么,面向过程与面向对象到底有什么样的区别呢? [从设计方法角度 ...

  6. c语言对10求余不为7,【PTA | 基础编程题目集】7-12 两个数的简单计算器 (10分)

    本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加.减.乘.除或求余运算.题目保证输入和输出均不超过整型范围. 输入格式: 输入在一行中依次输入操作数1.运算符.操作数2,其间以1个 ...

  7. 模拟电路c语言编程题,计算机C语言模拟题

    计算机C语言模拟题 青,取之于蓝而青于蓝;冰,水为之而寒于水.以下是小编为大家搜索整理的计算机C语言模拟题,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网! 下列各题A,B,C,D四 ...

  8. python简单编程例子-Python入门 —— 用pycharm写一个简单的小程序3

    环境:Win10操作系统:Python3.7:Pycharm 题目来源:PTA 编程实例1:日期格式化 世界上不同国家有不同的写日期的习惯.比如美国人习惯写成"月-日-年",而中国 ...

  9. java虚拟机运行C语言_用C语言来实现一个简单的虚拟机

    必要的准备工作及注意事项: 在开始之前需要做以下工作: 一个C编译器--我使用了 clang 3.4,也可以用其它支持 c99/c11 的编译器: 文本编辑器--我建议使用基于IDE的文本编辑器,我使 ...

最新文章

  1. 八皇后问题 回溯法hdu2553
  2. 武大上交发布首篇「图像匹配」大领域综述!涵盖 8 个子领域,汇总近 20年经典方法
  3. 基于C API的SQLite3基本数据库操作
  4. java ee ide 添加spring,如何在Eclipse IDE项目文件夹中为spring添加jar文件
  5. SAP License:谈对财务人的解惑
  6. CCNA初学者应该知道的词
  7. VS2013——error C4996: 'std::_Uninitialized_copy0':
  8. Android开发过程中的坑及解决方法收录
  9. 有没有大佬无偿提供一下 华为HCNA-Cloud Service-题库H13-811
  10. VB中关于Name属性和Caption属性
  11. python英文文本分析和提取_Python实现英文新闻摘要自动提取
  12. 专为球迷准备的免费邮箱
  13. Big Sur风格应用图标制作软件:Acon
  14. 《中台产品经理宝典》读后感11:大白话说透时下备受追捧的数字化转型是什么?
  15. 学习MySQL-第六章
  16. 合工大计算机录取分数,合肥工业大学适合“捡漏”的专业,录取分数最低
  17. 限制html窗口最小宽度,给页面一个最小宽度,小于这个宽度时,出现横向滚动条...
  18. Python人体肤色检测
  19. 合资车、国产车 和 新能源汽车都有哪些品牌?
  20. 七天强化学习DAY1-1|(一)模型基础

热门文章

  1. ERROR 1044(42000): Access denied for user ‘‘@‘localhost‘ to database
  2. 内网穿透工具--NATAPP讲解
  3. mysql数据库存储生僻字_mysql 生僻字存储
  4. Python time 模块time 函数的时间单位
  5. linux--shell基础
  6. 服务器的噪音会影响听力吗,噪声对听力的三大影响
  7. 项目总监岗位职责与思考
  8. 紧随时代的步伐--Java8之Lambda表达式的使用
  9. 《HTML5 2D游戏编程核心技术》——第1章,第1.5节开始Snail Bait游戏编程
  10. 计算机网络性能常见参数,计算机网络参数及其对网络性能的影响