基本要求

系统要求实现以下功能:

  1. 增加记录:要求可以连续增加多条记录。
  2. 删除一个学生的记录:要求可以先查找,再删除。删除前,要求用户确认。
  3. 成绩修改:若输入错误可进行修改;要求可以先查找,再修改。
  4. 查找可以根据姓名(或学号)查找某个学生的课程成绩;查找某门课程成绩处于指定分数段内的学生名单等等。
  5. 统计分析对某个班级学生的单科成绩进行统计,求出平均成绩;求平均成绩要求实现函数的重载,既能求单科的平均成绩,又能求三科总分的平均成绩。求出一门课程标准差和合格率。
  6. 排序功能:要求按总分进行排序(从高到低),若总分相同,则按数学排序;若总分和数学相同,则按物理排序;若总分和各科成绩都相同,则按学号排序。
  7. 文件操作:可以打开文件,显示班级的所有学生信息;可以将增加或修改后的成绩重新写入文件;可以将排序好的信息写入新的文件。
  8. 所有操作都要通过可视化界面来操作和显示。

较高要求

  1. 查找可以实现模糊查询,即输入名字的一部分,可以列出满足条件的所有记录。再从这个记录中进行二次选择。

测试数据

学号 姓名 高数成绩 英语成绩 物理成绩
20121003399 龚方怡 90 93 96

  其他数据:所有数据 提取码:v2mf

实现提示

  设计一个学生的类和一个管理学生成绩的类。学生类的设计请参考测试数据的记录和将要实现的功能。学生一条记录包括学号、姓名、数学成绩、物理成绩和英语成绩。学生成绩管理的类应能管理所有学生的成绩,包括上面要求的8种基本功能,可用vector来存储所有学生信息。主函数显示功能菜单,供用户选择操作。每步操作之前,都要显示菜单。在主函数中调用类的方法。学生类和成绩管理类的数据成员示例如下:

class Student {private:string s_id, s_name;int s_math, s_english, s_physics;};class Management {private:vector<Student> m_students;}

程序主界面:
程序主界面
修改程序界面:在这里插入图片描述
显示所有数据界面:在这里插入图片描述
模糊查找界面:
在这里插入图片描述

功能实现

  由于题目对我们的要求多为模糊要求,界面的设计可以借助于一些Windows.h里的函数设计一些比较好看的界面。
话不多说,上代码!

main.cpp

#include "trim.h"
using namespace std;int main() 
{trim a;//a.windows();while (1) {int key = a.wjinit(), n = -1;switch (key){case 1:a.AddData();break;case 2:n = a.SeekData();a.SeekData2(n);break;case 3:n = a.SeekData3();a.AlterData(n);break;case 4:a.AveData();break;case 5:a.SortData();break;case 6:a.OpenData();break;case 7:n = a.SeekData3();a.RemoveData(n);break;case 8:return 0;break;default:break;}}return 0;
}

tools.h

#ifndef TOOLS_H
#define TOOLS_H
#include <conio.h>void SetWindowSize(int cols, int lines);//设置窗口大小
void SetCursorPosition(const int x, const int y);//设置光标位置
void SetColor(int colorID);//设置字体颜色和背景色
void SetBackColor();//设置背景色
bool IfChange(); //如果对数据进行更改则需要确定
void bh(int a, int b); //根据a,b来改变字体颜色
void bh2(int a, int b);//根据a,b来改变字体颜色#endif // TOOLS_H

tools.cpp

#include "tools.h"
#include <windows.h>
#include <stdio.h>
#include <iostream>using namespace std;
#pragma warning(disable:4996)void SetWindowSize(int cols, int lines)//设置窗口大小
{system("title 学生信息管理系统");//设置窗口标题char cmd[30];sprintf(cmd, "mode con cols=%d lines=%d", cols, lines);//文本赋值system(cmd);//system(mode con cols=88 lines=88)设置窗口宽度和高度
}void SetCursorPosition(const int x, const int y)//设置光标位置
{COORD position;position.X = x;position.Y = y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), position);
}void SetColor(int colorID)//设置文本颜色
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), colorID);
}void SetBackColor()//设置文本背景色
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE |BACKGROUND_BLUE |BACKGROUND_GREEN |BACKGROUND_RED);
}bool IfChange() //|提示框,询问是否真正要修改成绩
{system("color 0C");//windows命令 设置命令框的背景色和所有字体颜色SetCursorPosition(36, 27);cout << "使用←→进行选择";Sleep(30);SetCursorPosition(22, 9);cout << "  ———————————————————— ";for (int i = 1; i <= 16; i++) {Sleep(30);//延迟30ms创造动画效果if (i == 6){SetCursorPosition(36, 14);cout << "是否要修改此成绩";}if (i == 13) {SetCursorPosition(31, 21);cout << "是";SetCursorPosition(55, 21);cout << "否";SetCursorPosition(31, 21);SetBackColor();cout << "是";SetColor(12);}SetCursorPosition(22, 9 + i);cout << " |                                      |";}SetCursorPosition(22, 26);cout << "  ———————————————————— ";int ch = 0, key = 1;while (1){if (kbhit()) {ch = _getch();if (ch != 13)ch = _getch();switch (ch){case 75:if (key == 0){system("color 0C");SetCursorPosition(55, 21);cout << "否";SetCursorPosition(31, 21);SetBackColor();cout << "是";key = 1;}break;case 77:if (key){system("color 0C");SetCursorPosition(31, 21);cout << "是";SetCursorPosition(55, 21);SetBackColor();cout << "否";key = 0;}break;case 13:ch = 13;break;default:break;}if (ch == 13)break;}}SetCursorPosition(0, 35);return key;
}void bh2(int a, int b)//根据a,b来改变字体颜色和背景色
{for (int i = 1; i <= 2; i++){int j = 0;if (i == 1)j = a, SetColor(241);//if (i == 2)j = b, SetBackColor();switch (j){case 1:SetCursorPosition(38, 2);cout << "使用学号查找";break;case 2:SetCursorPosition(38, 4);cout << "使用姓名查找";break;case 3:SetCursorPosition(36, 6);cout << "使用成绩范围查找";break;case 4:SetCursorPosition(38, 8);cout << "使用模糊查找";break;case 5:SetCursorPosition(42, 10);cout << "退出";break;default:break;}}
}void bh(int a, int b)//根据a,b来改变字体颜色和背景色
{for (int i = 1; i <= 2; i++){int j = 0;if (i == 1)j = a, SetColor(240);if (i == 2)j = b, SetBackColor();switch (j){case 1:SetCursorPosition(38, 5);cout << "增加学生人数";break;case 2:SetCursorPosition(38, 7);cout << "查找学生数据";break;case 3:SetCursorPosition(38, 9);cout << "修改学生成绩";break;case 4:SetCursorPosition(39, 11);cout << "求平均成绩";break;case 5:SetCursorPosition(40, 13);cout << "成绩排序";break;case 6:SetCursorPosition(35, 15);cout << "读取文件内所有内容";break;case 7:SetCursorPosition(38, 17);cout << "删除学生数据";break;case 8:SetCursorPosition(42, 19);cout << "退出";break;default:break;}}
}

student.h

#ifndef STUDENT_H_
#define STUDENT_H_
#include <string>
#include "tools.h"
using namespace std;
class student//创建学生类
{string s_id;string s_name;int s_Math;int s_English;int s_Physics;
public:student(string id = "00", string name = "张三", int Math = 0, int English = 0, int Physics = 0) :s_id(id), s_name(name), s_Math(Math), s_English(English), s_Physics(Physics) {};//普通构造函数~student() {}student(const student& rhy) :s_id(rhy.s_id), s_name(rhy.s_name),s_Math(rhy.s_Math), s_English(rhy.s_English), s_Physics(rhy.s_Physics) {};//复制构造函数void change_Physics(int Physics);//修改物理成绩void change_Math(int Math);// 修改数学成绩void change_English(int English);//修改英语成绩void change_id(string id);//修改学生idvoid change_name(string name);//修改学生姓名string get_id() { return s_id; }//获得学号string get_name() { return s_name; }//获得名字int get_Math() { return s_Math; }//获得高数成绩int get_English() { return s_English; }//获得英语成绩int get_Physics() { return s_Physics; }//获得物理成绩student operator=(student const rhy);//重载赋值运算符
};
#endif

student.cpp

#include "student.h"
void student::change_Physics(int Physics)//修改物理成绩
{bool key = IfChange(); //调用函数询问是否真的需要修改数据 1表示修改 0表示不修改if (key == 1)          s_Physics = Physics;//若需修改则修改
}void student::change_Math(int Math)//修改高数成绩
{bool key = IfChange();if (key == 1)s_Math = Math;
}void student::change_English(int English)//修改英语成绩
{bool key = IfChange();if (key == 1)s_English = English;
}void student::change_id(string id)//修改id
{bool key = IfChange();if (key == 1)s_id = id;
}void student::change_name(string name)//修改姓名
{bool key = IfChange();if (key == 1)s_name = name;
}student student::operator=(student const rhy)//重载赋值运算符
{s_id = rhy.s_id;s_name = rhy.s_name;s_Math = rhy.s_Math;s_English = rhy.s_English;s_Physics = rhy.s_Physics;return *this;
}

Management.h

#ifndef MANAGEMENT_H_
#define MANAGEMENT_H_
#include "student.h"
#include <vector>
class Management
{
public:vector<student> m_students;//记录所有的数据void indata();//读取文件信息并储存到m_students里面void updata();//把修改后的信息重新输入到文件~Management() {}
};
#endif

Management.cpp

#include "Management.h"
#include <fstream>
#include<iostream>
using namespace std;void Management::indata()//读取文件信息并储存到m_students里面
{ifstream in("inf.txt");//打开文件if (!in) //判断打开文件是否成功{system("cls");//windows命令 清空屏幕cout << "文件打开失败";//若打开文件失败直接输出打开文件失败system("pause");//冻结屏幕,告诉操作者打开文件失败}else {string id, name;int Math, English, Physics;while (!in.eof()) //判断文件是否已经读完{for (int i = 1; i <= 5; i++) //一个完整的数据由5个小数据组成{switch (i){case 1:in >> id;break;case 2:in >> name;break;case 3:in >> Math;break;case 4:in >> English;break;case 5:in >> Physics;default:break;}}if (!in.eof())m_students.push_back(student(id, name, Math, English, Physics));//将读取到的数据存入m_students里面}in.close();//关闭文件}
}void Management::updata()//把修改后的信息重新输入到文件
{ofstream fout;fout.open("inf.txt", ios::out);//打开文件  若文件inf.txt存在打开时清空文件,若不存在则创建inf.txt文件并打开if (!fout) {system("cls");//清屏cout << "文件打开失败";system("pause");//冻结屏幕,告诉操作者打开文件失败}else {int x = m_students.size();//读取数据个数for (int i = 0; i < x; i++) {for (int j = 1; j <= 5; j++)//一个数据由五个小数据组成{switch (j){case 1:fout << m_students[i].get_id();break;case 2:fout << m_students[i].get_name();break;case 3:fout << m_students[i].get_Math();break;case 4:fout << m_students[i].get_English();break;case 5:fout << m_students[i].get_Physics();default:break;}fout << " ";//每输出一个小数据就输出一个空格}fout << endl;//每输出一个完整数据就输出一个换行符}fout.close();//关闭文件}
}

trim.h

#ifndef TRIM_H_
#define TRIM_H_
#include "Management.h"
class trim
{Management mydata;//记录所有的数据vector<int> GradeSum;//包含每组数据的成绩总分int SumMath;//高数成绩总和int SumEnglish;//英语成绩总和int SumPhysics;//物理成绩总和//int s_key;
public:void setwindow();//设置窗口的大小和窗口的标题int setsur(int);//设置窗口内的初始内容int wjinit();//界面初始化void AddData();//增加学生信息int SeekData();//基础查找方式返回找到的数据位置nvoid SeekData2(int);//查找数据后进行相关操作int SeekData3();//用于删除和修改的查找函数int SeekData4(int);//学号查找和姓名查找的重叠部分void VagueSeekData();//模糊查找方式void CJSeekData();//成绩范围查找void RemoveData(int n, int a = 2);//删除第n+1个人的数据,a用来检测是查找程序调用此函数还是删除程序调用此函数void ShowData(int n,int i = 1);//在第i行显示第n+1个数据void AlterData(int);//修改程序void OpenData();//将所有数据全部输出void SortData();//将所有数据排序void AveData();//数据的求平均数等void VarPerData();//求数据的标准差和合格率	int Ave(int a);//重载函数求单科平均成绩int Ave(int a, int b, int c);//重载函数求三科总和的平均成绩int DetIdEffect(string);//检查id的有效性即检查是否已经有此idint DetGradeEffect(int);//检验成绩的有效性
};#endif

trim.cpp

#include "trim.h"
#include <math.h>
#include "tools.h"
#include <iostream>
using namespace std;
#pragma warning(disable:4996)//不在提示C4996类警告
#pragma warning(disable:4018)//不在提示C4018类警告
#pragma warning(disable:26444)//不在提示C26444类警告
#pragma warning(disable:4244)//不在提示C4244类警告void trim::setwindow() //设置窗口的大小和窗口的标题
{SetWindowSize(88, 36);
}int trim::setsur(int m)//设置初始选择界面
{system("color F2");//将背景色设置为亮白色 字体颜色设置为绿色SetCursorPosition(32, 0);//设置光标位置,使字体居中cout << "欢迎来到学生成绩管理系统";SetCursorPosition(30, 1);SetColor(246);//改变字体颜色为黄色cout << "______________";SetCursorPosition(29, 3);SetColor(244);cout << "请使用↑↓来选择你要进行的操作";int key = 1, ch = 0;SetCursorPosition(38, 5);SetBackColor();cout << "增加学生人数";SetCursorPosition(38, 7);SetColor(240);cout << "查找学生数据";SetCursorPosition(38, 9);cout << "修改学生成绩";SetCursorPosition(39, 11);cout << "求平均成绩";SetCursorPosition(40, 13);//设置光标位置,使字体居中cout << "成绩排序";SetCursorPosition(35, 15);cout << "读取文件内所有内容";SetCursorPosition(38, 17);cout << "删除学生数据";SetCursorPosition(42, 19);cout << "退出";SetCursorPosition(37, 21);cout << "界面已调用" << m << "次";while (1){if (kbhit()) //读取键盘是否输入 有输入则进入{ch = _getch();//读取键值第一次读取读取读取输入的字符类型if (ch != 13)//判断是否为回车字符ch = _getch();//不是回车字符则读取第二次switch (ch){case 72://键值72 表示↓键if (key != 1) //如果key等于1则说明此时正在第一个选项,再向上无意义{bh(key, key - 1);key--;}break;case 80://键值80 表示↑键if (key != 8)//如果key等于8则说明此时正在最后一个选项,再向下无意义{bh(key, key + 1);key++;}break;case 13:ch = 13;break;default:break;}if (ch == 13)break;//如果输入回车则跳出循环}}return key;
}int trim::wjinit()//界面初始化
{SumEnglish = 0, SumMath = 0, SumPhysics = 0, GradeSum.clear();static int m = 0;//记录调用初始窗口的次数if (m == 0){mydata.indata();//除第一次调用其他时候不在调用此函数}for (int i = 0; i < mydata.m_students.size(); i++)//算出所有数据的成绩总和{int gradesum = mydata.m_students.at(i).get_Math() + mydata.m_students.at(i).get_English() + mydata.m_students.at(i).get_Physics();GradeSum.push_back(gradesum);SumMath += mydata.m_students[i].get_Math();SumEnglish += mydata.m_students[i].get_English();SumPhysics += mydata.m_students[i].get_Physics();}m++;setwindow();int key = setsur(m);return key;
}void trim::AddData()//增加学生数据
{while (1){system("title 增加学生信息界面");//设置命令窗口标题system("cls");//清屏system("color F2");//设置背景色和字体颜色SetColor(240);//设置输出字体颜色SetCursorPosition(5, 0);//设置光标位置cout << "请输入要添加的学生的学号、姓名、高数成绩、英语成绩和物理成绩.输入00停止添加.";SetCursorPosition(28, 1);string id, name;int Math, English, Physics;cin >> id;int mark1 = DetIdEffect(id);//检验id有效性 1代表无效 2代表有效if (mark1 == 1) {SetCursorPosition(31, 3);cout << "已含有此id其信息为上面所述";SetCursorPosition(36, 5);system("pause");continue;}if (id == "00")//检测是否输入结束{SetCursorPosition(40, 5);cout << "修改成功";SetCursorPosition(36, 6);system("pause");break;}cin >> name;cin >> Math;mark1 = DetGradeEffect(Math);//检验成绩有效性 1代表无效 2代表有效if (mark1 == 1)continue;cin >> English;mark1 = DetGradeEffect(English);//检验成绩有效性if (mark1 == 1)continue;cin >> Physics;mark1 = DetGradeEffect(Physics);//检验成绩有效性if (mark1 == 1)continue;SetCursorPosition(26, 3);cout << "是否要添加此成绩,请确定成绩的正确性";//询问数据是否正确SetCursorPosition(32, 5);cout << "正确输入1,不正确输入2";student a(id, name, Math, English, Physics);mydata.m_students.push_back(a);//将数据加入到数据库GradeSum.push_back(Math + English + Physics);int key, n = mydata.m_students.size() - 1;SetCursorPosition(43, 6);cin >> key;if (key == 2)//如果数据不正确 调用数据修改函数{AlterData(n);}}mydata.updata();//将数据输入到文件中保存
}int trim::SeekData()//基础查找方式返回找到的数据位置n
{system("title 查找界面");//设置窗口标题system("cls");//清屏system("color F2");SetColor(241);SetCursorPosition(20, 0);cout << "请问你将使用哪种方式查找,使用↑↓来选择你的方式";int key = 1, ch = 0, n = -1;//key记录那种查找方式,ch记录输入键值,n表示序号代表查找到符合要求的学生的序号;SetBackColor();SetCursorPosition(38, 2);cout << "使用学号查找";SetColor(241);SetCursorPosition(38, 4);cout << "使用姓名查找";SetCursorPosition(36, 6);cout << "使用成绩范围查找";SetCursorPosition(38, 8);cout << "使用模糊查找";SetCursorPosition(42, 10);cout << "退出";while (1){if (kbhit()){ch = _getch();if (ch != 13)ch = _getch();switch (ch){case 72://if (key != 1) {bh2(key, key - 1);key--;}break;case 80://if (key != 5) {bh2(key, key + 1);key++;}default:break;}if (ch == 13)//回车break;}}n = SeekData4(key);switch (key){case 3:CJSeekData();//使用成绩成绩范围查找函数break;case 4:VagueSeekData();//使用模糊查找break;default:break;}return n;//返回查找到的数据位置
}void trim::SeekData2(int n)//查找数据后进行相关操作
{if (n != -1){system("title 删除数据操作界面");ShowData(n);SetCursorPosition(38, 3);cout << "1.删除此数据";SetCursorPosition(38, 5);cout << "2.修改此数据";SetCursorPosition(35, 7);cout << "请输入1或2进行选择";SetCursorPosition(32, 9);cout << "输入其他数字退出到主菜单";SetCursorPosition(43, 10);int key = 0;cin >> key;if (key == 1){SetCursorPosition(31, 11);cout << "是否要删除此数据,请输入y/n";//确认是否要删除char a = '0';SetCursorPosition(43, 12);cin >> a;if (a == 'y')RemoveData(n, 1);//删除数据}else if (key == 2){AlterData(n);//修改数据}}
}int trim::SeekData3() // 用于删除和修改的查找函数
{system("title 查找界面");//设置窗口标题system("cls");//清屏system("color F2");SetColor(241);SetCursorPosition(20, 0);cout << "请问你将使用哪种方式查找,使用↑↓来选择你的方式";int key = 1, ch = 0, n = -1;//key记录那种查找方式,ch记录输入键值,n表示序号代表查找到符合要求的学生的序号;SetBackColor();SetCursorPosition(38, 2);cout << "使用学号查找";SetColor(241);SetCursorPosition(38, 4);cout << "使用姓名查找";while (1){if (kbhit())//读取是否有键盘输入{ch = _getch();//读取键值if (ch != 13)//判断是否为回车ch = _getch();//不是回车再次读取switch (ch){case 72://if (key != 1) {bh2(key, key - 1);key--;}break;case 80://if (key != 2) {bh2(key, key + 1);key++;}default:break;}if (ch == 13)break;}}n = SeekData4(key);return n;
}int trim::SeekData4(int key)
{int n = -1;while (1 && (key == 1 || key == 2)){system("cls");//清屏system("color F2");//设置窗口字体颜色和背景色SetColor(242);//设置字体颜色string myseek;//记录要查找的学号或者姓名SetCursorPosition(32, 0);if (key == 1) {cout << "请输入你想查找学生的学号";SetCursorPosition(39, 2);}else {cout << "请输入你想查找学生的姓名";SetCursorPosition(41, 2);}SetCursorPosition(39, 2);cin >> myseek;for (int i = 0; i < mydata.m_students.size(); i++){if ((key == 1 ? mydata.m_students.at(i).get_id() : mydata.m_students.at(i).get_name()) == myseek){n = i;break;}}if (n == -1) //n未改变,表示没有找到此人{SetCursorPosition(21, 4);cout << "未找到此人,请确认信息是否正确,是否继续查找?";SetCursorPosition(39, 6);cout << "请输入 y/n";char a;//记录输入字母SetCursorPosition(43, 7);cin >> a;if (a == 'n')break;}elsebreak;}return n;
}void trim::ShowData(int n, int i)//输出数据
{if (n != -1){system("title 学生数据界面");//设置窗口标题if (i == 1) {system("cls");//清屏system("color F2");//设置窗口字体颜色和背景色SetColor(243);SetCursorPosition(22, 0);cout << "学       号 姓名   高数成绩 英语成绩 物理成绩 总分";}SetCursorPosition(22, i);cout << mydata.m_students.at(n).get_id() << " ";//输出idcout << mydata.m_students.at(n).get_name() << " ";//输出姓名SetCursorPosition(41, i);cout << mydata.m_students.at(n).get_Math() << " ";//输出高数成绩SetCursorPosition(50, i);cout << mydata.m_students.at(n).get_English() << " ";//输出英语成绩SetCursorPosition(59, i);cout << mydata.m_students.at(n).get_Physics() << " ";//输出物理成绩SetCursorPosition(68, i);cout << GradeSum[n] << " ";//输出总分}
}void trim::RemoveData(int n, int a)//删除数据
{if (n != -1)//判断是否删除的为有效数据 {if (a == 2)//采用默认删除方式{ShowData(n);bool key = IfChange();if (key == 1)mydata.m_students.erase(mydata.m_students.begin() + n);}else//采用查找删除方式mydata.m_students.erase(mydata.m_students.begin() + n);mydata.updata();//将修改后数据输出到文件保存}
}void trim::AlterData(int n)//修改成绩
{if (n != -1) {system("title 修改数据界面");//设置窗口标题ShowData(n);//将需要修改的数据表示出来SetCursorPosition(17, 3);cout << "1代表高数,2代表英语,3代表物理,4代表学号,5代表姓名";SetCursorPosition(21, 5);cout << "请问你要修改那个数据,使用1、2、3、4、5来选择";int key = 0;SetCursorPosition(43, 6);cin >> key;//记录修改哪一个具体数据SetCursorPosition(34, 7);cout << "请输入你修改后的数据";int d = 0;int mark1 = 0;//标记学号是否重复 重复为1 不重复为2string c;switch (key)//根据不同修改执行不同代码{case 1:SetCursorPosition(43, 8);cin >> d;mark1 = DetGradeEffect(d);//检验成绩有效性if (mark1 == 1){mydata.m_students.erase(mydata.m_students.begin() + n);break;}mydata.m_students.at(n).change_Math(d);break;case 2:SetCursorPosition(43, 8);cin >> d;mark1 = DetGradeEffect(d);//检验成绩有效性if (mark1 == 1){mydata.m_students.erase(mydata.m_students.begin() + n);break;}mydata.m_students.at(n).change_English(d);break;case 3:SetCursorPosition(43, 8);cin >> d;mark1 = DetGradeEffect(d);//检验成绩有效性if (mark1 == 1){mydata.m_students.erase(mydata.m_students.begin() + n);break;}mydata.m_students.at(n).change_Physics(d);break;case 4:SetCursorPosition(38, 8);cin >> c;mark1 = DetIdEffect(c);//检查id的有效性即检查是否已经有此idif (mark1 == 2)mydata.m_students.at(n).change_id(c);else if (mark1 == 1){SetCursorPosition(26, 10);cout << "数据中已含有此id,将返回添加程序界面";mydata.m_students.erase(mydata.m_students.begin() + n);SetCursorPosition(36, 12);system("pause");}break;case 5:SetCursorPosition(41, 8);cin >> c;mydata.m_students.at(n).change_name(c);break;default:break;}mydata.updata();//将修改后数据输入到文件}
}void trim::CJSeekData()//成绩范围查找
{system("title 成绩查找界面");//修改窗口标题system("cls");//清屏system("color F2");//设置窗口字体颜色和背景色SetColor(246);SetCursorPosition(22, 0);cout << "请输入你要查找的成绩范围(两个数字前大后小)";int min, max;SetCursorPosition(41, 1);cin >> min >> max;SetCursorPosition(12, 3);cout << "请输入你要使用那一科的成绩查找,1表示高数,2表示英语,3表示物理";int key;SetCursorPosition(43, 4);cin >> key;vector<int> myseek;//储存查找到的数据的序号switch (key){case 1:for (int i = 0; i < mydata.m_students.size(); i++){if (mydata.m_students.at(i).get_Math() >= min && mydata.m_students.at(i).get_Math() <= max)myseek.push_back(i);//将符合要求的数据记录到myseek中}break;case 2:for (int i = 0; i < mydata.m_students.size(); i++){if (mydata.m_students.at(i).get_English() >= min && mydata.m_students.at(i).get_English() <= max)myseek.push_back(i);}break;case 3:for (int i = 0; i < mydata.m_students.size(); i++){if (mydata.m_students.at(i).get_Physics() >= min && mydata.m_students.at(i).get_Physics() <= max)myseek.push_back(i);}break;default:break;}for (int j = 0; j < myseek.size(); j++)//将找到的所有数据表示出来{ShowData(myseek.at(j), j + 1);}if (myseek.size() == 0) //size为零表示没有符合要求数据{SetCursorPosition(34, 6);cout << "未找到此范围内的数据";SetCursorPosition(36, 7);}else {SetCursorPosition(36, myseek.size() + 1);}system("pause");//冻结屏幕}void trim::OpenData()//将所有数据全部输出
{for (int i = 0; i < mydata.m_students.size(); i++){ShowData(i, i + 1);}SetCursorPosition(37, mydata.m_students.size() + 2);cout << "总人数是:" << mydata.m_students.size();//输出总人数SetCursorPosition(36, mydata.m_students.size() + 3);system("pause");//冻结屏幕
}void trim::SortData()//将所有数据排序
{for (int i = 1; i < mydata.m_students.size(); i++)//冒泡排序法{for (int j = 0; j < mydata.m_students.size() - i; j++){int key = 2;//记录是否为需要交换的情况 1是需要交换 2是不需要交换if (GradeSum[j] <= GradeSum[j + 1]){if (GradeSum[j] == GradeSum[j + 1]) {if (mydata.m_students.at(j).get_Math() <= mydata.m_students.at(j + 1).get_Math()){if (mydata.m_students.at(j).get_Math() == mydata.m_students.at(j + 1).get_Math()){if (mydata.m_students.at(j).get_Physics() <= mydata.m_students.at(j + 1).get_Physics()){if (mydata.m_students.at(j).get_Physics() == mydata.m_students.at(j + 1).get_Physics()){if (mydata.m_students.at(j).get_id() > mydata.m_students.at(j + 1).get_id())//学号小的在前  大的在后key = 1;}elsekey = 1;}}elsekey = 1;}}elsekey = 1;}if (key == 1){student example(mydata.m_students.at(j));mydata.m_students.at(j) = mydata.m_students.at(j + 1);mydata.m_students.at(j + 1) = example;//交换基础数据int example1(GradeSum[j]);GradeSum[j] = GradeSum[j + 1];GradeSum[j + 1] = example1;//交换总成绩}}}mydata.updata();system("title 成绩排序界面");//设置窗口标题system("cls");//清屏system("color F2");//设置窗口字体颜色和背景色SetColor(253);SetCursorPosition(38, 16);cout << "成绩排序完成";SetColor(252);SetCursorPosition(36, 20);system("pause");//冻结屏幕
}void trim::AveData()//数据的求平均数等
{while (1) {system("title 求平均成绩界面");//设置窗口颜色system("cls");//清屏system("color F2");//设置窗口字体颜色和背景色SetColor(240);SetCursorPosition(25, 0);cout << "请问你怎么求平均成绩,输入对应数字选择";int key = -1;//key记录求平均数的方式SetCursorPosition(36, 2);cout << "1.求高数平均成绩";SetCursorPosition(36, 4);cout << "2.求英语平均成绩";SetCursorPosition(36, 6);cout << "3.求物理平均成绩";SetCursorPosition(33, 8);cout << "4.求三科总分的平均成绩";SetCursorPosition(33, 10);cout << "5.求某科标准差和合格率";SetCursorPosition(42, 12);cout << "6.退出";SetCursorPosition(43, 13);cin >> key;SetCursorPosition(33, 15);switch (key){case 1:cout << "高数的平均成绩是:" << Ave(1);//调用函数计算平均值break;case 2:cout << "英语的平均成绩是:" << Ave(2);break;case 3:cout << "物理的平均成绩是:" << Ave(3);break;case 4:cout << "总分的平均成绩是:" << Ave(1, 2, 3);//调用重载函数计算平均值break;case 5:VarPerData();//计算标准差和合格率break;default:break;}if (key == 6)break;else{SetCursorPosition(33, 20);system("pause");//冻结屏幕}}
}void trim::VarPerData()//求数据的标准差和合格率
{SetCursorPosition(12, 15);cout << "你希望求哪一门的标准差和合格率,1表示高数,2表示英语,3表示物理";int key;SetCursorPosition(43, 16);cin >> key;int ave = 0, var = 0, per = 0;//ave记录某一科的平均成绩,var记录某一科的标准差,per记录某一科的合格率SetCursorPosition(30, 18);switch (key){case 1:ave = SumMath / mydata.m_students.size();for (int i = 0; i < mydata.m_students.size(); i++){var += pow(mydata.m_students.at(i).get_Math() - ave, 2);if (mydata.m_students.at(i).get_Math() >= 60)per++;}cout << "高数的标准差是:" << sqrt(double(var) / mydata.m_students.size()) << "合格率是" << double(per) / mydata.m_students.size();break;case 2:ave = SumEnglish / mydata.m_students.size();for (int i = 0; i < mydata.m_students.size(); i++){var += pow(mydata.m_students.at(i).get_English() - ave, 2);if (mydata.m_students.at(i).get_English() >= 60)per++;}cout << "英语的标准差是:" << sqrt(double(var) / mydata.m_students.size()) << "合格率是" << double(per) / mydata.m_students.size();break;case 3:ave = SumPhysics / mydata.m_students.size();for (int i = 0; i < mydata.m_students.size(); i++){var += pow(mydata.m_students.at(i).get_Physics() - ave, 2);if (mydata.m_students.at(i).get_Physics() >= 60)per++;}cout << "物理的标准差是:" << sqrt(double(var) / mydata.m_students.size()) << "合格率是" << double(per) / mydata.m_students.size();break;default:break;}
}void trim::VagueSeekData()//模糊查找方式
{system("title 模糊查找界面界面");//设置窗口标题system("cls");//清屏system("color F2");//设置窗口字体颜色和背景色SetColor(240);vector<int> mydataseek;//记录我查找的数据的位置SetCursorPosition(27, 0);cout << "请输入你要查找的数据姓名中某些部分";string store;//记录模糊查找的文字SetCursorPosition(41, 2);cin >> store;//输入模糊查找的文字int n = store.size();//读取输入的字数for (int i = 0; i < mydata.m_students.size(); i++)//遍历整个数据库{int x = mydata.m_students.at(i).get_name().size();//得到第i个数据中name的长度if (x <= n - 1)//如果name的长度小于模糊查找的文字的长度则不在查找,直接开始下一个数据continue;for (int j = 0; j < x / 2 - n / 2 + 1; j++) //根据模糊查找的字数和正在查找的数据中字符的长度,确定第i个数据需要查找的次数   chu_yuan_ CSDN博客//且由于文字站两个字节所以除以2。例如如果需要查找的文字是“王五”,而第i个数据name是“里王五”,则需要在第i个数据中查找2次{string s0;//记录第i个数据中name的其中的与需要查找的文字字数相同的数据for (int m = 0; m < n - 1; m++){//在string中不能直接读取文字,需使用以下方法一字一字输出char* b = new char[3];b[0] = mydata.m_students.at(i).get_name()[j * 2 + m];b[1] = mydata.m_students.at(i).get_name()[j * 2 + m + 1];b[2] = '\0';string s1 = b;//将读出的字赋给s1暂时保存s0 = s0 + s1;//将读出的字赋给s0用于下面的比较m++;}if (s0 == store)//如果需要查找的文字与数据中第i个数据中部分的文字相同则将i记录到mydataseek中{mydataseek.push_back(i);break;//第i个数据已经符号要求不需要继续判断第i个数据}}}int i = 0;for (i = 0; i < mydataseek.size(); i++)//输出查找道德所有符合条件的信息{if (i >= 1){SetCursorPosition(19, i);cout << i;}ShowData(mydataseek[i], i + 1);}SetCursorPosition(19, i);cout << i;          //在输出成绩前加上序号用于二次选择if (i == 0) {SetCursorPosition(35, 4);cout << "没有符合条件的数据";SetCursorPosition(36, 6);system("pause");//冻结屏幕}else{SetCursorPosition(5, i + 1);cout << "请输入你想选择的对象的为第几个数据,请输入1-"<<i<<"之间的数,输入其他数字返回主菜单";int c;SetCursorPosition(43, i + 2);cin >> c;if (c >= 1 && c <= i)SeekData2(mydataseek[c - 1]);//调用函数}}int trim::Ave(int a)//重载函数求单科平均成绩
{switch (a)//根据a的值来判断计算那科平均成绩{case 1:return SumMath / mydata.m_students.size();break;case 2:return SumEnglish / mydata.m_students.size();case 3:return SumPhysics / mydata.m_students.size();default:return 0;}
}int trim::Ave(int a, int b, int c)//重载函数求三科总和的平均成绩
{return (SumMath + SumEnglish + SumPhysics) / mydata.m_students.size();
}int trim::DetIdEffect(string myid)//检查id的有效性即检查是否已经有此id
{int mark1 = 2, i = 0;//标记是否已经含有此id  2表示没有  1表示有for (i = 0; i < mydata.m_students.size(); i++){if (myid == mydata.m_students.at(i).get_id()) {mark1 = 1;break;}}if (mark1 == 1){while (cin.get() != '\n');ShowData(i);//输出已经存在的数据内容}return mark1;
}int trim::DetGradeEffect(int d)//检验成绩的有效性
{int mark1 = 2;//标记是否超出成绩范围 2表示没有  1表示有if (d < 0 || d > 100)mark1 = 1;if (mark1 == 1){while (cin.get() != '\n');cout << endl << "                                        此成绩无效";cout << endl << "                                    ";system("pause");//冻结屏幕   chu_yuan_ CSDN博客}return mark1;
}

  通过多次使用操控光标的函数、改变颜色的函数以及使用一些特殊的system命令来是界面更加美观。

  在写代码中模糊查找阶段需要读取string里的个别汉字,不能直接通过string的at()函数来读出。我想原因可能是因为汉字占有两个字节而,at()函数只能读取一个字节。在我的代码中解决的方法是使用:

	string a ="读取文件中某些字";char* b = new char[3];b[0] = a[0];b[1] = a[1];b[2] = '\0';string s1 = b;

  使用上述方式一个字一个字的读取,大家有比较好的办法欢迎提醒。

原创文章,转载请注明出处(chu_yuan_)。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. DeepLearing—CV系列(十四)——YOLOv5理论详解+Pytorch源码解析

    文章目录前言——从YOLOv3到YOLOv5二、网络结构三、代码解析2.1 运行起来项目2.2 先放官网大图YOLOv5官方Pytorch实现:https://github.com/ultralytics/yolov5 前言——从YOLOv3到YOLOv5 YOLOv3 YOLO原项目darknet(官方)截止2020年5月31日,并没有更新添加这个"YOLOv5&…...

    2024/4/20 16:27:55
  2. LearnOpenGL学习笔记—入门01:Creating a window

    前言 在本学期学《计算机图形学》的时候,用到OpenGL做了一些东西,然而在学习的过程中,自己有遇到过很多问题。 正好目前考完试假期了,打算做一个知识和操作步骤上系统的整理(免得自己老是忘了Orz) 主要的学习资料: B站视频:[傅老師/OpenGL教學 第一章] (基本是完全按照…...

    2024/4/25 0:25:29
  3. 2020.06.26随笔日记

    现在是放假时间,在公司本来想打游戏,但现在又怂了。。。所以随便写点东西吧! 因为工作需要,需要对Redis进行深入的学习,之前只看过《Redis的设计与实现》这本书,对Redis只有非常浅显的认识,所以打算开坑一个Redis的学习专栏,记录我这三个月在腾讯实习对Redis的学习路程…...

    2024/4/25 0:25:31
  4. 抖音autojs免Root引流脚本开发如何封装公共函数详解

    log(findNode("text", "头条主页"))/* 寻找节点 @way:查找方式: text/desc/id/className @str:節點文本 @timeOut:查找超时的时间,默认1000毫秒。可空 @视频对照教学:www.loveps.vip/121.html */ function findNode(way, str, timeOut) {if (!timeOut…...

    2024/4/25 0:25:27
  5. [读书笔记] C++Primer (第5版) 第17章标准库特殊设施

    1.tuple类型: 每个tuple的成员类型可以都不相同,可以有任意数量的成员。 tuple<string, vector<double>, int> someVal("Contants", {2.1, 3.6, 9}, 32); pair总有两个成员(first和second),tuple的成员个数不确定,所以不能用这种方式访问。 要访问…...

    2024/5/4 5:28:17
  6. 华为畅享20pro怎么样

    6月19日,华为正式发布了华为畅享20 Pro 5G。这款手机是华为畅享系列的新成员。新机发布后,华为畅享20 Pro 5G迅速成为华为手机产品线的强大支柱,该产品主要针对千元机市场,具有非常重要的核心地位。参考:我的华为手机就是活动时8折抢购的https://mall.jd.com/index-100000…...

    2024/4/25 0:25:25
  7. 位运算和二进制数表示方法

    1.左移:把整数右移一位和把整数乘以2在数学上是等价的。左移运算符m<<n表示吧m左移n位。左移n位的时候,最左边的n位将被丢弃,同时在最右边补上n个0. 比如: 00001010 << 2 = 00101000 10001010 << 3 = 010100002.右移运算:把整数右移一位和把整数除以2在…...

    2024/4/25 0:25:24
  8. Linux进程间通信三 System V 信号量简介与示例

    1. System V信号量简介SystemV信号量主要用于解决生产者和消费者问题,一个信号量能够控制多个资源,说它是信号量集也不为过。2. API接口介绍2.1 创建或打开信号量集#include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h>/** * @brief 创建信号…...

    2024/4/25 0:25:23
  9. 【收藏向】电路(上) 思维导图 3小时不挂科(邱关源教材)

    Niko这次分享的思维导图是电路(上),是一门重要的基础课。 用的教材是邱关源版本的电路。 电路(下)的内容也会不久后更新哦~ 本文首发于bilibili完整版笔记参见: 【收藏向】电路(上) 思维导图 3小时不挂科(邱关源教材)...

    2024/4/25 0:25:23
  10. 具有多个Join和选定列的示例LINQ

    在本文中,我们将通过一个示例展示如何编写具有多个join的LINQ语句。如果您像我一样,有时会发现很难记住LINQ语句的语法,因为我从T-SQL跳转到ASP.NET和C#。我正在寻找一个示例,该示例可能显示如何编写一个带有多个join的LINQ语句,但是我几乎没有运气,因此,最终,当我将几…...

    2024/4/25 0:25:25
  11. idea、PyCharm代码提示忽略大小写设置

    idea、PyCharm最新版提示忽略大小写设置对勾去掉即可...

    2024/4/25 0:25:21
  12. Redis安装及可视化管理软件Redis Desktop Manager安装包下载及使用(win10+mac)

    Redis可视化工具 - Redis Desktop Manager Redis 安装及可视化操作(win10) redis 压缩包链接: https://pan.baidu.com/s/1dYfX3Dak19Tvqw43S7O9Vw 密码: si8b启动本地redis服务解压后启动这个redis-server.exe即启动成功Redis Desktop Manager 安装包 链接: https://pan.bai…...

    2024/4/25 0:25:19
  13. #注解&反射实例

    1 对某个类中某些方法的测试 1.1 声明注解 Check.java Check注解用于标注是否需要测试 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Check {}Pro.java /*** @author Tang*/ @Target({ ElementType.TYPE, ElementType.METHOD }) @Reten…...

    2024/4/25 0:25:20
  14. 测试体系建设

    目前太多的公司在测试上投入很大精力,很多测试同行在自己公司中十分努力的推行测试体系,但收效甚微。转而想到了,如果我们仅仅考虑技术,从测试管理角度,我们只做了其中一个部分,技术是提高生产力的,而管理是发挥每个人的长处,且让信息在组织中保持通畅、一致的。那么我…...

    2024/4/25 0:25:17
  15. HI3556V200 Linux+Liteos双系统学习(3)----双系统架构

    前面简单介绍了SDK相关的目录结构,接下来就要了解下,所谓的Linux+Liteos双系统到底是个什么情况? HI3556V200这颗SOC包含两个CPU,简单来说可以在一个CPU上运行Linux系统,另一个CPU上运行Liteos系统,两个系统之间通过某种方式进行通信交互。 问题来了,为啥要运行双系统?…...

    2024/4/25 0:25:16
  16. log4net 保存日志到本地

    在项目中记录日志是个不错习惯,可以查看项目运行状况具体使用1.添加引用2.新增log4net配置文件<?xml version="1.0" encoding="utf-8" ?> <log4net><!--根配置--><root><!--日志级别ERROR--><level value="ERROR…...

    2024/4/25 0:25:15
  17. 制药业中的自然语言处理(NLP)

    文章目录NLP 用于发现新药物化合物NLP 用于将参与者纳入临床试验药品营销的 NLP参考资料 转载来源:https://zhuanlan.zhihu.com/p/140044281自然语言处理(NLP)在制药业的使用似乎少于机器视觉和预测分析等 AI 方法,但尽管如此,NLP 在制药业仍有一些应用。该行业主要处理结…...

    2024/4/25 0:25:14
  18. (精华)2020年6月26日 C#类库 图片操作帮助类

    using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Text.RegularExpressions;namespace Core.Util {/// <summary>/// 图片操作帮助类/// </summary>public class ImgHelper{/// <summary>/// 从文件获取图…...

    2024/4/14 20:39:41
  19. [codeforces 1373A] Donut Shops 选一个还是选一堆

    Educational Codeforces Round 90 (Rated for Div. 2) 参与排名人数12840[codeforces 1373A] Donut Shops 选一个还是选一堆总目录详见https://blog.csdn.net/mrcrack/article/details/103564004在线测评地址http://codeforces.com/contest/1373/problem/AProblemLangVe…...

    2024/4/26 4:44:33
  20. Docker学习笔记八:删除镜像&构建私有Registry

    删除镜像 如果要删除本地的镜像,可以使用 docker rmi (注意rm为删除容器,而rmi为删除镜像,其中i代表image)命令,它的具体语法如下: docker rmi [OPTIONS] IMAGE [IMAGE...]其中:docker rmi:Docker删除镜像的命令关键词; OPTIIONS: 命令选项,-f强制删除镜像; IMAGE:…...

    2024/4/20 1:49:50

最新文章

  1. bottom-up-attention.pytorch

    环境 torch1.5cu 101cp38 on 2080ti # clone the repository inclduing Detectron2(be792b9) $ git clone --recursive https://github.com/MILVLG/bottom-up-attention.pytorch$ cd detectron2 $ pip install -e . $ cd .. detectron2直接克隆有问题&#xff0c;需要把det…...

    2024/5/4 9:37:44
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. vue中内置指令v-model的作用和常见使用方法介绍以及在自定义组件上支持

    文章目录 一、v-model是什么二、什么是语法糖三、v-model常见的用法1、对于输入框&#xff08;input&#xff09;&#xff1a;2、对于复选框&#xff08;checkbox&#xff09;&#xff1a;3、对于选择框&#xff08;select&#xff09;&#xff1a;4、对于组件&#xff08;comp…...

    2024/5/1 13:24:03
  4. DDIM,多样性与运行效率之间的trade off

    DDPM的重大缺陷在于其在反向扩散的过程中需要逐步从 x t x_t xt​倒推到 x 0 x_0 x0​&#xff0c;因此其推理速度非常缓慢。相反&#xff0c;DDPM的训练过程是很快的&#xff0c;可以直接根据 x 0 x_0 x0​到 x t x_t xt​添加的高斯噪声 ϵ \epsilon ϵ完成一次训练。 为了解…...

    2024/5/2 19:10:17
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/3 23:10:03
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/4 2:59:34
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57