网站建设首选建站系统自建网站需要备案吗

diannao/2026/1/18 20:51:11/文章来源:
网站建设首选建站系统,自建网站需要备案吗,最新互联网平台项目,电商网站有哪些项目需求 职工管理系统可以用来管理公司内所有员工的信息 公司中职工分为三类#xff1a;普通员工、经理、老板#xff0c;显示信息时#xff0c;需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责#xff1a;完成经理交给的任务 经理职责#xff1a;完成老…项目需求 职工管理系统可以用来管理公司内所有员工的信息 公司中职工分为三类普通员工、经理、老板显示信息时需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责完成经理交给的任务 经理职责完成老板交给的任务并下发任务给员工 老板职责管理公司所有事务 管理系统中需要实现的功能如下 退出管理程序退出当前管理系统 增加职工信息实现批量添加职工功能将信息录入到文件中职工信息为职工编号、姓名、部门编号显示职工信息显示公司内部所有职工的信息删除离职职工按照编号删除指定的职工修改职工信息按照编号修改职工个人信息查找职工信息按照职工的编号或者职工的姓名进行查找相关的人员信息按照编号排序按照职工编号进行排序排序规则由用户指定清空所有文档清空文件中记录的所有职工信息 清空前需要再次确认防止误删 分析设计 1.创建管理类 ​ 管理类负责的内容如下app.c/app.h 与用户的沟通菜单界面对职工增删改查的操作与文件的读写交互 2.创建职工类 职工的分类为普通员工、经理、老板employ、manager、boss 将三种职工抽象到一个类worker中,利用多态管理不同职工种类 职工的属性为职工编号、职工姓名、职工所在部门编号 职工的行为为岗位职责信息描述获取岗位名称 3.执行文件 创建管理类的对象调用里面的方法实现需求 4.注意事项 防止cin输入的数据类型不对导致代码崩溃 cout “请输入您的选择” endl; cin n; //防止输入错误数据类型导致死循环 int flag 0; while (cin.fail()) { if (flag 0) cout “请输入正确的数据类型” endl; cin.clear(); cin.ignore(); cin n; flag; } 源码 职工管理系统.cpp #include iostream #include app.husing namespace std;int main() {app app;int n;while (true) {app.showMenu();cout 请输入您的选择 endl;cin n;//防止输入错误数据类型导致死循环int flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin n;flag;}switch (n) {case 0: //退出系统app.exitSystem();break;case 1: //添加职工app.addWorker();break;case 2: //显示职工app.showWorker();break;case 3: //删除职工app.delWorker();break;case 4: //修改职工app.changeWorker();break;case 5: //查找职工app.findWorker();break;case 6: //排序职工app.sortWorker();break;case 7: //清空文件app.clearFile();break;default:system(cls);break;}}return 0; }app.cpp #include app.happ::app() {ifstream ifs(FILENAME, ios::in);//判断文件是否存在if (!ifs.is_open()) {cout 文件不存在 endl;this-workerNum 0;this-workerArray NULL;this-isEmpty true;ifs.close();return;}//存在是否为空char ch;ifs ch;if (ifs.eof()) {cout 文件为空 endl;this-workerNum 0;this-workerArray NULL;this-isEmpty true;ifs.close();return;}//存在且不为空int num this-getFilewWorkerNum();this-workerNum num;//测试代码//cout 职工人数为 num endl;this-workerArray new worker * [this-workerNum];//开辟空间this-initWorker();//将文件中的数据存到数组中//测试代码//for (int i 0; i workerNum; i)//{// cout 职工号 this-workerArray[i]-getId()// 职工姓名 this-workerArray[i]-getName()// 部门 this-workerArray[i]-getDeptName() endl;//}}app::~app() {}/* * brief 显示菜单 * param 无 * return 无 */ void app::showMenu() {cout ******************************************** endl;cout ********* 欢迎使用职工管理系统 ********** endl;cout ************* 0.退出管理程序 ************* endl;cout ************* 1.增加职工信息 ************* endl;cout ************* 2.显示职工信息 ************* endl;cout ************* 3.删除离职职工 ************* endl;cout ************* 4.修改职工信息 ************* endl;cout ************* 5.查找职工信息 ************* endl;cout ************* 6.按照编号排序 ************* endl;cout ************* 7.清空所有文档 ************* endl;cout ******************************************** endl;cout endl; }/* * brief 退出系统 * param 无 * return 无 */ void app::exitSystem() {cout 欢迎下次使用 endl;system(pause);exit(0); }/* * brief 添加职工 * param 无 * return 无 */ void app::addWorker() {int addNum 0;//添加职工数量cout 请输入要添加的职工数量 endl;cin addNum;//防止输入错误数据类型导致死循环int flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin addNum;flag;}if (addNum 0) {int newSize this-workerNum addNum;//计算新空间大小worker** newSpace new worker * [newSize];//开辟新空间//将原空间下数据存放到新空间下if (this-workerArray ! NULL) {for (int i 0; i this-workerNum; i) {newSpace[i] this-workerArray[i];}}//添加新数据for (int i 0; i addNum; i) {int id;string name;int deptId;cout 请输入第 i 1 个新职工编号 endl;cin id;//防止输入错误数据类型导致死循环flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin id;flag;}cout 请输入第 i 1 个新职工姓名 endl;cin name;cout 请选择该职工的岗位 endl;cout 1、普通职工 endl;cout 2、经理 endl;cout 3、老板 endl;worker* worker NULL;//死循环防止输入错误信息while (true) {cin deptId;//防止输入错误数据类型导致死循环int flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin deptId;flag;}switch (deptId){case 1://员工worker new employee(id, name, deptId);break;case 2://经理worker new manager(id, name, deptId);break;case 3://老板worker new boss(id, name, deptId);break;default:cout 输入有误请重新输入 endl;continue;}break;}//将创建的职工指针存放到数组中//该方法会提示缓冲区溢出不过不影响程序执行可以换成下面的语句解决//newSpace[this-workerNum i] worker;*(newSpace this-workerNum i) worker;}delete[] this-workerArray;//释放原有空间this-workerArray newSpace;//更改新空间的指向this-workerNum newSize;//更新新的职工人数this-isEmpty false;//更新文件状态cout 成功添加 addNum 名新职工 endl;//提示信息this-saveFile();//保存数据到文件中}else {cout 输入数据有误 endl;}system(pause);system(cls); }/* * brief 保存文件 * param 无 * return 无 */ void app::saveFile() {ofstream ofs(FILENAME, ios::out);//创建输出流对象//将每个人的数据写入到文件中for (int i 0; i this-workerNum; i) {ofs this-workerArray[i]-getId() this-workerArray[i]-getName() this-workerArray[i]-getDeptId() endl;}ofs.close();//关闭文件 }/* * brief 获取文件中的职工人数 * param 无 * return 文件中的职工人数 */ int app::getFilewWorkerNum() {ifstream ifs(FILENAME, ios::in);//创建输入流对象int id;string name;int deptId;int num 0;//统计人数while (ifs id ifs name ifs deptId) {num;}ifs.close();//关闭文件return num; }/* * brief 初始化职工 * param 无 * return 无 */ void app::initWorker() {ifstream ifs(FILENAME, ios::in);//创建输入流对象int id;string name;int deptId;int index 0;while (ifs id ifs name ifs deptId) {worker* worker NULL;if (deptId 1) {//普通员工worker new employee(id, name, deptId);}else if (deptId 2) {//经理worker new manager(id, name, deptId);}else {//老板worker new boss(id, name, deptId);}this-workerArray[index] worker;index;}ifs.close(); }/* * brief 显示职工 * param 无 * return 无 */ void app::showWorker() {if (this-isEmpty) {cout 文件不存在或记录为空 endl;}else {for (int i 0; i this-workerNum; i) {this-workerArray[i]-showInfo();}}system(pause);system(cls); }/* * brief 删除职工 * param 无 * return 无 */ void app::delWorker() {if (this-isEmpty) {cout 文件不存在或记录为空 endl;}else {cout 请输入要删除的职工编号 endl;int id;cin id;//防止输入错误数据类型导致死循环int flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin id;flag;}//查找职工是否存在int index this-checkWorkerExist(id);if (index ! -1) {for (int i index; i this-workerNum - 1; i) {//数据前移this-workerArray[i] this-workerArray[i 1];}this-workerNum--;//更新数组中记录人员个数this-saveFile();//更新文件中的人员信息cout 删除成功 endl;}else {cout 删除失败未找到该职工 endl;}}system(pause);system(cls); }/* * brief 检测职工是否存在 * param 职工编号 * return 职工所在数组中的位置不存在返回-1 */ int app::checkWorkerExist(int id) {int index -1;for (int i 0; i this-workerNum; i) {if (this-workerArray[i]-getId() id) {index i;break;}}return index; }/* * brief 修改职工 * param 无 * return 无 */ void app::changeWorker() {if (this-isEmpty) {cout 文件不存在或记录为空 endl;}else {cout 请输入要修改的职工编号 endl;int id;cin id;//防止输入错误数据类型导致死循环int flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin id;flag;}//查找职工是否存在int index this-checkWorkerExist(id);if (index -1) {cout 修改失败查无此人 endl;}else {delete this-workerArray[index];//删除原有职工int newId 0;string newName ;int newDeptId 0;cout 查到 id 号职工 endl;cout 请输入新的职工号 endl;cin newId;//防止输入错误数据类型导致死循环flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin newId;flag;}cout 请输入新的姓名 endl;cin newName;cout 请输入新的部门 endl;cout 1、普通员工 endl;cout 2、经理 endl;cout 3、老板 endl;worker* worker NULL;//死循环防止输入错误信息while (true) {cin newDeptId;//防止输入错误数据类型导致死循环flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin newDeptId;flag;}switch (newDeptId){case 1://员工worker new employee(newId, newName, newDeptId);break;case 2://经理worker new manager(newId, newName, newDeptId);break;case 3://老板worker new boss(newId, newName, newDeptId);break;default:cout 输入有误请重新输入 endl;continue;}break;}this-workerArray[index] worker;//保存新的职工信息cout 修改成功 endl;this-saveFile();//更新文件中的职工信息}}system(pause);system(cls); }/* * brief 查找职工 * param 无 * return 无 */ void app::findWorker() {if (this-isEmpty) {cout 文件不存在或记录为空 endl;}else {cout 请输入查找的方式 endl;cout 1、按职工编号查找 endl;cout 2、按姓名查找 endl;int select 0;while (true) {cin select;//防止输入错误数据类型导致死循环int flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin select;flag;}if (select 1) {//按职工编号查找cout 请输入要查找的职工编号 endl;int id;cin id;//防止输入错误数据类型导致死循环flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin id;flag;}int index this-checkWorkerExist(id);if (index ! -1) {cout 查找成功该职工信息如下 endl;this-workerArray[index]-showInfo();}else {cout 查无此人 endl;}break;}else if (select 2) {//按姓名查找cout 请输入要查找的姓名 endl;string name;cin name;bool flag false;//标志是否查到for (int i 0; i this-workerNum; i) {if (this-workerArray[i]-getName() name) {cout 查找成功该职工信息如下 endl;this-workerArray[i]-showInfo();flag true;}}if (flag false) {cout 查无此人 endl;}break;}else {cout 输入有误请重新输入 endl;continue;}}}system(pause);system(cls); }/* * brief 排序职工 * param 无 * return 无 */ void app::sortWorker() {if (this-isEmpty) {cout 文件不存在或记录为空 endl;}else {cout 请选择排序方式 endl;cout 1、按职工号进行升序 endl;cout 2、按职工号进行降序 endl;int select 0;while (true) {cin select;//防止输入错误数据类型导致死循环int flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin select;flag;}//升序排序if (select 1) {for (int i 0; i this-workerNum; i) {int min i;for (int j i 1; j this-workerNum; j) {//找到最小值if (this-workerArray[min]-getId() this-workerArray[j]-getId()) {min j;}}if (min ! i) {//交换位置worker* temp this-workerArray[min];this-workerArray[min] this-workerArray[i];this-workerArray[i] temp;}}cout 排序成功 endl;this-saveFile();//更新文件中的职工信息this-showWorker();//显示排序后的职工信息break;}//降序排序else if (select 2) {for (int i 0; i this-workerNum; i) {int max i;for (int j i 1; j this-workerNum; j) {//找到最大值if (this-workerArray[max]-getId() this-workerArray[j]-getId()) {max j;}}if (max ! i) {//交换位置worker* temp this-workerArray[max];this-workerArray[max] this-workerArray[i];this-workerArray[i] temp;}}cout 排序成功 endl;this-saveFile();//更新文件中的职工信息this-showWorker();//显示排序后的职工信息break;}else {cout 输入有误请重新输入 endl;continue;}}}system(pause);system(cls);}/* * brief 清空文件 * param 无 * return 无 */ void app::clearFile() {cout 确认清空 endl;cout 1、确认 endl;cout 2、返回 endl;int select 0;while (true) {cin select;//防止输入错误数据类型导致死循环int flag 0;while (cin.fail()) {if (flag 0)cout 请输入正确的数据类型 endl;cin.clear();cin.ignore();cin select;flag;}if (select 1) {ofstream ofs(FILENAME, ios::trunc);//删除文件中的内容ofs.close();//删除堆区中的数据if (this-workerArray ! NULL) {for (int i 0; i this-workerNum; i) {if (this-workerArray[i] ! NULL) {delete this-workerArray[i];}}this-workerNum 0;delete[] this-workerArray;this-workerArray NULL;this-isEmpty true;}cout 清空成功 endl;break;}else if (select 2) {break;}else {cout 输入有误请重新输入 endl;continue;}}system(pause);system(cls); }app.h #pragma once #include iostream #include string #include fstream #include worker.h #include employee.h #include manager.h #include boss.h#define FILENAME workerFile.txtusing namespace std;class app { public:int workerNum;//职工人数worker** workerArray;//职工数组bool isEmpty;//标志文件是否为空app();~app();void showMenu();//显示菜单void exitSystem();//退出系统void addWorker();//添加职工void saveFile();//保存文件int getFilewWorkerNum();//获取文件中的人数void initWorker();//初始化职工void showWorker();//显示职工void delWorker();//删除职工int checkWorkerExist(int id);//检测职工是否存在void changeWorker();//修改职工void findWorker();//查找职工void sortWorker();//排序职工void clearFile();//清空文件}; worker.cpp #include worker.hvoid worker::setId(int id) {this-id id; }int worker::getId() {return this-id; }void worker::setName(string name) {this-name name; }string worker::getName() {return this-name; }void worker::setDeptId(int deptId) {this-deptId deptId; }int worker::getDeptId() {return this-deptId; } worker.h #pragma once #include iostream using namespace std;class worker { private:int id; //职工编号string name; //职工姓名int deptId; //职工所在部门名称编号public://构造函数void setId(int id);int getId();void setName(string name);string getName();void setDeptId(int deptId);int getDeptId();virtual void showInfo() 0; //显示个人信息virtual string getDeptName() 0; //获取岗位名称 }; employ.cpp #include employee.hemployee::employee(int id, string name, int deptId) {this-setId(id);this-setName(name);this-setDeptId(deptId); }string employee::getDeptName() {return string(员工); }void employee::showInfo() {cout 职工编号 this-getId() \t职工姓名 this-getName() \t岗位 this-getDeptName() \t岗位职责完成经理交给的任务 endl; }employ.h #pragma once #include worker.h class employee : public worker { public://构造函数初始化信息employee(int id, string name, int deptId);//显示个人信息void showInfo();//获取岗位名称string getDeptName(); }; manager.cpp #include manager.hmanager::manager(int id, string name, int deptId) {this-setId(id);this-setName(name);this-setDeptId(deptId); }string manager::getDeptName() {return string(经理); }void manager::showInfo() {cout 职工编号 this-getId() \t职工姓名 this-getName() \t岗位 this-getDeptName() \t岗位职责完成老板交给的任务并下发任务给员工 endl; } manager.h #pragma once #include worker.h class manager : public worker { public:manager(int id, string name, int deptId);void showInfo();string getDeptName(); }; boss.cpp #include boss.hboss::boss(int id, string name, int deptId) {this-setId(id);this-setName(name);this-setDeptId(deptId); }string boss::getDeptName() {return string(老板); }void boss::showInfo() {cout 职工编号 this-getId() \t职工姓名 this-getName() \t岗位 this-getDeptName() \t岗位职责公司管理 endl; }boss.h #pragma once #include worker.hclass boss : public worker { public:boss(int id, string name, int deptId);void showInfo();string getDeptName(); };

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90568.shtml

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

相关文章

admin5站长网五个h5制作网站

文章目录题意思路传送门 题意 给你nnn个点,需要给每个点定向,方向可以向右或者向左,定向之后点会朝选择的方向移动,要求满足mmm个条件,两种不同的条件如下: i,ji,ji,j两个位置定向之后移动不会相遇。i,ji…

做网站设计的公司名字哈尔滨市营商环境建设监督局网站

编写软件测试文档是一个关键步骤,它可以帮助测试人员记录测试过程、结果和发现的问题,同时为开发团队提供反馈和建议。 以下是一些编写软件测试文档的建议: 测试计划 在测试计划中,描述测试的目标、范围、方法、时间表和资源需求。…

网站建设怎么收费呀河西网站建设制作

【 组长博客链接】 031602428 苏路明 【计划安排】 阶段主要任务时间任务内容1项目选题09.22 - 10.10确定选题内容,收集用户需求,明确定位,竞品分析,选题报告2需求分析10.11 - 11.4梳理需求,输出思维导图,原…

东莞市建设规划局网站wordpress如何制作主题

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它可以让 JavaScript 代码在服务器端运行。在 Node.js 中,fs 模块是用来处理文件系统操作的模块。通过 fs 模块,我们可以进行文件的读取、写入、删除等操作。本教程将介绍如何在 No…

电子商务网站详细设计百度推广工具有哪些

构建检索增强生成(RAG)系统的关键因素之一:向量嵌入( vector embeddings )。这些元素是基本的技术和转换工具,使 RAG 系统在某些方面能够以类似于人类理解的形式处理语言。 embedding 提供了一种将文本信息转换为数字数据的方法。…

定制网站制作报价3d建模学什么专业

大数据开发语言主要包括以下几个,以下是它们在大数据开发领域的优缺点和应用场景的详细说明: 1. Java 优点: 跨平台性:Java的“一次编写,到处运行”的特性使得其可以轻松地运行在多个操作系统上。面向对象&#xff…

仿牛商网营销型网站兖州网站建设多少钱

前言 故事是这样开始的。我们的小DEMO项目的数据库版本从openGauss 2.1.0升级到了5.0.0版本。升级后进行功能验证的时候,测试同学发现个BUG,原来通过gs_restore导出来的数据再导入时报超长,插入失败了,如下图所示,nva…

教学网站模板下载企业网站设计北京

参考资料 Guide to Faster, Less Frustrating Debugging 什么情况下会使用gbd 需要逆向ELF文件时(掌握gdb的使用,是二进制安全的基本功)开发程序时,程序执行结果不符合预期 动态调试ELF文件可以使用另外一种方法:IDA的远程linux动态调试。个…

网站正在建设中页面 英文诚信网站认证必需做吗

说明此时有两个客户端在连接此数据库&#xff0c;此时不能删除数据库。 如果确定要强制删除此数据库&#xff0c;那么执行如下命令&#xff1a; SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname‘VolteAna3G’ AND pid<>pg_ba…

扫码进入网站如何做做视频比较好的理财网站

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的校园生活服务平台,java…

网站备案 价格建行个人账户查询

目录 [LitCTF 2023]PHP是世界上最好的语言&#xff01;&#xff01; [LitCTF 2023]Vim yyds [羊城杯 2020]easycon [LitCTF 2023]PHP是世界上最好的语言&#xff01;&#xff01; 无参&#xff0c;根据题目提示看看php能否执行——返回1执行成功 用system()函数调用、执行ls …

怎么制作网站店铺wordpress照片加水印

为了方便日常运维写的一段简单脚本&#xff0c;用于集中获取服务器操作系统、CPU、内存使用、负载、硬盘使用、网络信息。 脚本比较简单&#xff0c;就不解释了&#xff0c;有兴趣的朋友请自行查看。 #!/bin/bash##Name:system_info#Ver:1.0#Author:lykyl###程序说明:#获取服务…

安全邮箱注册网站网站建设高校

花园管家是做什么的 一、工作内容职责&#xff1a; 1.管理花园内的活动和工作&#xff0c;协调各方资源&#xff0c;确保活动的顺利进行&#xff1b; 2.提供优质的客户服务和接待工作&#xff0c;解决客户问题&#xff0c;处理投诉&#xff0c;提高客户满意度&#xff1b; …

南山区网站建设公司网站详细报价

接口测试背景和必要性 接口测试是测试系统组件间接口&#xff08;API&#xff09;的一种测试&#xff0c;主要用于检测内部与外部系统、内部子系统之间的交互质量&#xff0c;其测试重点是检查数据交换、传递的准确性&#xff0c;控制和交互管理过程&#xff0c;以及系统间相互…

电商后台管理网站模板哪里查询网站备案

直方图 cv2.calcHist(images,channels,mask,histSize,ranges) images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img]channels: 同样用中括号括来它会告函数我们统幅图 像的直方图。如果入图像是灰度图它的值就是 [0]如果是彩色图像 的传入的…

网站外链分析工具wordpress迁hexo

序 本篇是杂谈以及准备工作&#xff08;此处应无掌声&#xff09; 暂时不管iOS&#xff08;因为开发hello world都要年费&#xff09; 软件&#xff1a; Visual Studio 2019&#xff08;含Android SDK和NDK编译器等&#xff09; OpenCV 这是一个女仆级的系列文章&#xf…

经营范围 网站建设广州 环保 凡人网站建设

文章目录 1 orm连接Mysql1.1 安装第三方模块1.2 ORM1.2.1、创建数据库1.2.2、Django连接数据库1.2.3、django操作表1.2.4、创建和修改表结构1.2.5、增删改查1.2.5.1 增加数据1.2.5.2 删除数据1.2.5.3 获取数据1.2.5.4 修改数据 1 orm连接Mysql Django为了使操作数据库更加简单…

搜索建站网如何做好网络营销推广

转载自 Java调用exe阻塞 今天遇到了个奇怪的问题&#xff0c;用VC写了个小程序&#xff0c;编译成exe文件&#xff0c;然后用Java去调&#xff0c;居然卡住不运行了。如果双击这个exe程序&#xff0c;单独让它运行&#xff0c;是可以的&#xff0c;那么为什么用Java调用就不好…

企业需求做网站在哪儿交易wordpress水滴

随着科技的进步&#xff0c;单反相机成为了摄影爱好者和专业摄影师的必备工具。而在选择单反相机存储介质时&#xff0c;CF卡和SD卡成为了两种常见的选择。它们各有优缺点&#xff0c;适用于不同的摄影需求和场景。本文将深入探讨单反相机使用SD卡还是CF卡的问题&#xff0c;并…