hh[i]。c_id>>hh[i]。姓名>>hh[i]。性别>>hh[i]。年龄>>hh[i]。phno; } 对于(int i=0;i>ee[i]。车票号>>ee[i]。车票原产地>>ee[i]。车票目的地>>ee[i]。车位>>ee[i]。车位>>ee[i]。数量>>ee[i]。状态>>ee[i]。车票部门>>ee[i]。车票到达>>ee[i]。aadhar车号>>ee[i]。公交车号; } 对于(int i=0;i,c++,database,visual-studio-2010,C++,Database,Visual Studio 2010" /> hh[i]。c_id>>hh[i]。姓名>>hh[i]。性别>>hh[i]。年龄>>hh[i]。phno; } 对于(int i=0;i>ee[i]。车票号>>ee[i]。车票原产地>>ee[i]。车票目的地>>ee[i]。车位>>ee[i]。车位>>ee[i]。数量>>ee[i]。状态>>ee[i]。车票部门>>ee[i]。车票到达>>ee[i]。aadhar车号>>ee[i]。公交车号; } 对于(int i=0;i,c++,database,visual-studio-2010,C++,Database,Visual Studio 2010" />

如何改进我在c+中实现DBMS查询的代码+;? 作为课程学习活动的一部分,我被要求在C++基础上实现DBMS查询。样本C++代码为:- class Customer { public: string c_id,name,gender; int age,phno; friend void ticket_book(ifstream&ib1, ifstream &ib2); }; class Ticket { public: string ticket_no,t_origin,t_dest,j_date; int berth,amount; string status,aadhar_id,bus_no; float t_dept,t_arrival; friend void ticket_book(ifstream&ib1, ifstream &ib2); }; void ticket_book(ifstream&ib1, ifstream &ib2, Customer hh[], Ticket ee[]) { int flag; for(int i=0; i<13;i++) { ib1 >> hh[i].c_id >> hh[i].name >> hh[i].gender >> hh[i].age >> hh[i].phno; } for(int i=0; i<14;i++) { ib2 >> ee[i].ticket_no >> ee[i].t_origin >> ee[i].t_dest >> ee[i].j_date >> ee[i].berth >> ee[i].amount >> ee[i].status >> ee[i].t_dept >> ee[i].t_arrival >> ee[i].aadhar_id >> ee[i].bus_no; } for(int i=0;i<13;i++) { flag=0; for (int j=0;j<14;j++) { if (hh[i].c_id==ee[j].aadhar_id) { flag=1; } } if (flag==0) { cout << hh[i].c_id <<"\t" << hh[i].name <<"\t" << hh[i].gender << "\t"<<hh[i].age<<"\t"<<hh[i].phno<< endl; } } main() { Customer hh[13]; Ticket ee[14]; ifstream ib1("C://Users//xyz//Desktop//customer.txt"); ifstream ib2("C://Users//xyz//Desktop//ticket.txt"); cout<<"Retrieve the customer details who has not booked any ticket\n"<<endl; ticket_book(ib1,ib2,hh,ee); ib1.close(); ib2.close(); } class客户 { 公众: 字符串c_id、名称、性别; 国际年龄,phno; 朋友作废票簿(ifstream&ib1、ifstream&ib2); }; 班票 { 公众: 字符串票据编号、原产地、目的地、日期; 国际泊位,数量; 字符串状态、aadhar\U id、总线号; 浮动t_部门,t_到达; 朋友作废票簿(ifstream&ib1、ifstream&ib2); }; 无效票证登记簿(ifstream&ib1、ifstream&ib2、客户hh[],票证ee[] { int标志; 对于(int i=0;i>hh[i]。c_id>>hh[i]。姓名>>hh[i]。性别>>hh[i]。年龄>>hh[i]。phno; } 对于(int i=0;i>ee[i]。车票号>>ee[i]。车票原产地>>ee[i]。车票目的地>>ee[i]。车位>>ee[i]。车位>>ee[i]。数量>>ee[i]。状态>>ee[i]。车票部门>>ee[i]。车票到达>>ee[i]。aadhar车号>>ee[i]。公交车号; } 对于(int i=0;i

如何改进我在c+中实现DBMS查询的代码+;? 作为课程学习活动的一部分,我被要求在C++基础上实现DBMS查询。样本C++代码为:- class Customer { public: string c_id,name,gender; int age,phno; friend void ticket_book(ifstream&ib1, ifstream &ib2); }; class Ticket { public: string ticket_no,t_origin,t_dest,j_date; int berth,amount; string status,aadhar_id,bus_no; float t_dept,t_arrival; friend void ticket_book(ifstream&ib1, ifstream &ib2); }; void ticket_book(ifstream&ib1, ifstream &ib2, Customer hh[], Ticket ee[]) { int flag; for(int i=0; i<13;i++) { ib1 >> hh[i].c_id >> hh[i].name >> hh[i].gender >> hh[i].age >> hh[i].phno; } for(int i=0; i<14;i++) { ib2 >> ee[i].ticket_no >> ee[i].t_origin >> ee[i].t_dest >> ee[i].j_date >> ee[i].berth >> ee[i].amount >> ee[i].status >> ee[i].t_dept >> ee[i].t_arrival >> ee[i].aadhar_id >> ee[i].bus_no; } for(int i=0;i<13;i++) { flag=0; for (int j=0;j<14;j++) { if (hh[i].c_id==ee[j].aadhar_id) { flag=1; } } if (flag==0) { cout << hh[i].c_id <<"\t" << hh[i].name <<"\t" << hh[i].gender << "\t"<<hh[i].age<<"\t"<<hh[i].phno<< endl; } } main() { Customer hh[13]; Ticket ee[14]; ifstream ib1("C://Users//xyz//Desktop//customer.txt"); ifstream ib2("C://Users//xyz//Desktop//ticket.txt"); cout<<"Retrieve the customer details who has not booked any ticket\n"<<endl; ticket_book(ib1,ib2,hh,ee); ib1.close(); ib2.close(); } class客户 { 公众: 字符串c_id、名称、性别; 国际年龄,phno; 朋友作废票簿(ifstream&ib1、ifstream&ib2); }; 班票 { 公众: 字符串票据编号、原产地、目的地、日期; 国际泊位,数量; 字符串状态、aadhar\U id、总线号; 浮动t_部门,t_到达; 朋友作废票簿(ifstream&ib1、ifstream&ib2); }; 无效票证登记簿(ifstream&ib1、ifstream&ib2、客户hh[],票证ee[] { int标志; 对于(int i=0;i>hh[i]。c_id>>hh[i]。姓名>>hh[i]。性别>>hh[i]。年龄>>hh[i]。phno; } 对于(int i=0;i>ee[i]。车票号>>ee[i]。车票原产地>>ee[i]。车票目的地>>ee[i]。车位>>ee[i]。车位>>ee[i]。数量>>ee[i]。状态>>ee[i]。车票部门>>ee[i]。车票到达>>ee[i]。aadhar车号>>ee[i]。公交车号; } 对于(int i=0;i,c++,database,visual-studio-2010,C++,Database,Visual Studio 2010,您可以通过一个请求将更多数据读入内存来加速程序。例如,与其将一个变量读入内存,还不如将下一个变量读入内存,将所有文件读入内存,然后从内存访问 另一种选择是使用内存映射文件。这取决于操作系统,并非所有操作系统都支持此功能 常见瓶颈(按顺序): I/O(数据传输) 数据格式(从文本表示转换为内部表示) 代表权(反之亦然) 除模 分支 正在加载数据缓存 通常,通过改进I/O比改进数据缓存可以获得更高的性能。但是,这取决于数据和数据访问的数量。解决问题的另一种方法是通过链接列表 插入和删除操作可以很

您可以通过一个请求将更多数据读入内存来加速程序。例如,与其将一个变量读入内存,还不如将下一个变量读入内存,将所有文件读入内存,然后从内存访问

另一种选择是使用内存映射文件。这取决于操作系统,并非所有操作系统都支持此功能

常见瓶颈(按顺序):

  • I/O(数据传输)
  • 数据格式(从文本表示转换为内部表示) 代表权(反之亦然)
  • 除模
  • 分支
  • 正在加载数据缓存

通常,通过改进I/O比改进数据缓存可以获得更高的性能。但是,这取决于数据和数据访问的数量。

解决问题的另一种方法是通过
链接列表

插入和删除操作可以很容易地执行,这减少了代码的大小

这是您可以参考的示例代码

template<class T>
class LinkedList
{
 public:
  node<T> *head;
 public:
   LinkedList(){
    head=new node<T>;
    head->llink=head;head->rlink=head;
}
void insertRear(T str){
    node<T> *nxt,*temp;
    temp=new node<T>;
    nxt=this->head->rlink;
    temp->a=str;
    nxt->llink=temp;
    this->head->rlink=temp;
    temp->llink=this->head;
    temp->rlink=nxt;
}

 void deletePos(T str){
    node<T> *i,*nxt,*before;
    for(i=head->llink;i!=head;i=i->llink){
        if(str==i->a) goto del;
    }
    del:
    nxt=i->rlink;
    before=i->llink;

    nxt->llink=before;
    before->rlink=nxt;
    delete i;
  }
};

class Cust
{
 private:
string c_id;
string name;

public:
Cust(){}
Cust(string a,string b){
    c_id=a;
    name=b;
}
friend ostream& operator<<(ostream &out,Cust &c){} 
friend istream& operator>>(istream &in,Cust &c){}
};

int main() {
    LinkedList<Emp> ll;
    Emp c,c1;
    ifstream fin("Emp.txt");
    while(!fin.eof()){
        fin>>c;
        ll.insertRear(c);
    }
    ll.deleteRear();
    fin.close();
    ll.disp();
    return 0;
}
模板
类链接列表
{
公众:
节点*头;
公众:
LinkedList(){
头=新节点;
head->llink=head;head->rlink=head;
}
空插件后部(T str){
节点*nxt,*temp;
temp=新节点;
nxt=此->头部->链接;
温度->a=str;
nxt->llink=温度;
此->磁头->rlink=温度;
温度->llink=此->头部;
温度->rlink=nxt;
}
无效删除位置(T str){
节点*i,*nxt,*before;
对于(i=head->llink;i!=head;i=i->llink){
如果(str==i->a)转到del;
}
德尔:
nxt=i->rlink;
before=i->llink;
nxt->llink=之前;
在->rlink=nxt之前;
删除i;
}
};
类客户
{
私人:
字符串c_id;
字符串名;
公众:
Cust(){}
客户(字符串a、字符串b){
c_id=a;
name=b;
}
friend ostream&operator(istream&in,Cust&c){}
};
int main(){
链接列表ll;
Emp c,c1;
ifstream fin(“Emp.txt”);
而(!fin.eof()){
fin>>c;
ll.插入后部(c);
}
ll.deleteRear();
fin.close();
ll.disp();
返回0;
}

指针索引将使代码运行更快,而不是使用数组。

您的程序不够大,无法显著提高速度或大小。大部分时间都花在I/O上。这不是一个问题。您应该使用探查器查找代码中的瓶颈,如果没有,请返回一个更具体的问题I don’我不知道如何优化它们。你应该使用数据库。数据库是为你这样的任务而优化的。顺便说一句,500行代码不是一个很大的数量。在行业中,它可能是单个软件单元(许多)的小尺寸。您是否在抱怨代码的大小?您不应该担心代码的大小,除非它不适合或无法管理。一分钟内构建一个项目不需要担心。有些项目需要花费数小时来构建。您可以通过将工作代码放在单独的源文件中来加快构建速度。编译是整个过程中最慢的部分构建链接要快得多。