6G源碼
❶ 求一個c++小程序源代碼,要求200行以上,給100分,能用再加100
//=================================[說明]=======================================*/
//學生成績管理
//文件名:main.cpp
//------!!!!!!---------BOF-[程序代碼開始]-------------------
#include<iostream>
#include<string>
using namespace std;
//=============<開始定義結構體>===================================================
struct combox
{
int num;
int mark;
string name;
combox *next;
};
//=============<結束定義結構體>===================================================
//=============<開始定義Commonbox類>==============================================
//-----類體開始------------------------
class Commonbox
{
private:
combox *head;
void Swap(combox *,combox *); //交換兩個combox變數的數據域
void Print(combox *); //輸出一combox指定的記錄
combox *Find(int); //查找條例條件的記錄,並返回該記錄的指針
public:
Commonbox()
{
head=NULL;
}
int ListCount(); //統計當前鏈表的記錄總數,返回一個整數
void AddItem(int num, string name, int mark); //添加一條記錄到表尾
void RemoveItem(int); //刪除一條指定的記錄
void List(); //列出當前鏈表中的所有記錄
void Sort(); //對當前鏈表進行排序
void Search(int); //在當前鏈表查找指定記錄並輸出
float Average(); //計算平均成績
};
//-----類體結束------------------------
//-----類成員函數開始----------------------------------
int Commonbox::ListCount() //統計當前鏈表的記錄總數,返回一個整數
{
if (! head)return 0;
combox *p=head;
int n=0;
while (p)
{
n++;
p=p->next;
}
return n;
}
void Commonbox::AddItem(int num, string name, int mark) //添加一條記錄到表尾
{
if (! head)
{
head=new combox;
head->mark=mark;
head->num=num;
head->name=name;
head->next=NULL;
return;
}
combox *t=head;
while (t && t->num!=num)
t=t->next;
if (t)
{
cout<<"操作失敗:學號為"<<num<<"的記錄已經存在!"<<endl;
return;
}
combox *p=head;
while (p->next)p=p->next;
combox *p1=new combox;
p1->num=num;
p1->mark=mark;
p1->name=name;
p1->next=NULL;
p->next=p1;
return;
}
void Commonbox::RemoveItem(int num) //刪除一條指定的記錄
{
combox *t=Find(num);
if (! t)return;
combox *p=head;
//如果要刪除的記錄位於表頭
if (head==t)
{
head=head->next;
delete p;
cout <<"成功刪除學號為 "<<num<<" 的記錄!"<<endl<<endl;
return;
}
while (p->next!=t)p=p->next;
combox *p1=p->next;
p->next=p1->next;
delete p1;
cout <<"成功刪除學號為 "<<num<<" 的記錄!"<<endl<<endl;
return;
}
void Commonbox::Print(combox *p) //輸出一combox指定的記錄
{
cout<<p->num<<"\t\t";
cout<<p->name<<"\t\t";
cout<<p->mark<<endl;
return;
}
void Commonbox::List() //列出當前鏈表中的所有記錄
{
if (ListCount()==0)
{
cout <<"錯誤:當前的列表為空!"<<endl;
return;
}
combox *p=head;
cout<<"共有記錄:"<<ListCount()<<endl;
cout<<"學號\t\t姓名\t\t分數"<<endl;
while (p)
{
Print(p);
p=p->next;
}
cout <<endl;
return;
}
void Commonbox::Search(int num) //在當前鏈表查找指定記錄並輸出
{
cout <<"Searching...."<<endl;
combox *p=Find(num);
if (p)
{
cout<<"學號\t\t姓名\t\t分數"<<endl;
Print(p);
}
cout <<endl;
}
combox *Commonbox::Find(int num)
{
if (ListCount()==0)
{
cout <<"錯誤:當前的列表為空!"<<endl;
return NULL;
}
combox *p=head;
while (p)
{
if (p->num==num)break;
p=p->next;
}
if (! p)
{
cout <<"錯誤:找不到該記錄!\n";
return NULL;
}
return p;
}
void Commonbox::Swap(combox *p1, combox *p2) //交換兩個combox變數的數據域
{
combox *temp=new combox;
temp->num=p1->num;
temp->mark=p1->mark;
temp->name=p1->name;
p1->num=p2->num;
p1->mark=p2->mark;
p1->name=p2->name;
p2->num=temp->num;
p2->mark=temp->mark;
p2->name=temp->name;
}
void Commonbox::Sort() //對當前鏈表進行排序
{
cout <<"Sorting..."<<endl;
if (ListCount()<2) return;
combox *temp=NULL,*p=NULL,*p1=NULL,*p2=NULL,*k=NULL;
int n=ListCount(),i,j;
p=head;
for (i=1;i<n;i++)
{
k=p;
p1=p->next;
for (j=0;j<n-i;j++)
{
if (k->num > p1->num)
{
k=p1;
}
p1=p1->next;
}
if (p!=k)Swap(k,p);
p=p->next;
}
cout <<"Complete successfully!"<<endl<<endl;
return;
}
float Commonbox::Average() //計算平均成績
{
if (ListCount()==0)
{
cout <<"錯誤:當前的列表為空!"<<endl;
return -1;
}
int sum=0,n=0;
combox *p=head;
while (p)
{
sum += p->mark;
p=p->next;
n++;
}
return float(sum)/n;
}
//-----類成員函數結束----------------------------------
//=============<結束定義Commonbox類>==============================================
Commonbox student; //定義全局變數
int Menu()
{
cout <<"===========[主選單:]==========="<<endl;
int n=1,select=-1;
cout <<n++<<".輸入學生成績;"<<endl<<endl;
cout <<n++<<".按學號排序;"<<endl<<endl;
cout <<n++<<".按學號查找記錄;"<<endl<<endl;
cout <<n++<<".刪除由學號指定的記錄;"<<endl<<endl;
cout <<n++<<".列出所有記錄;"<<endl<<endl;
cout <<n++<<".計算平均成績;"<<endl<<endl;
cout <<"0.退出;"<<endl<<endl;
cout <<"[請選擇(輸入相應數字)]:";
cin >>select;
return select;
}
char Exit() //返回一個字元患,用於確認退出
{
char s;
cout<<"確定要退出程序嗎?[Y/N]:";
cin >>s;
return s;
}
void Input(int *num, string *name, int *mark) //輸入學生信息
{
cout <<"請輸入 學號 姓名 分數:";
cin >>*num;
if (*num==-1)return;
cin >>*name>>*mark;
return;
}
void AddNew() //增加記錄
{
int num=0,mark=0;
string name="";
cout<<endl<<"當輸入的學號為-1時表示結束輸入."<<endl;
Input(&num, &name, &mark);
while (num!=-1)
{
student.AddItem(num,name,mark);
Input(&num, &name, &mark);
}
return;
}
void DoFind() //按學號查找
{
int num;
cout<<endl<<"當輸入的學號為-1時表示結束輸入."<<endl;
do
{
cout <<"請輸入要查找的學生的學號: ";
cin>>num;
if (num==-1)continue;
student.Search(num);
}
while (num!=-1);
return;
}
void DoDelete() //刪除記錄
{
cout<<endl<<"當輸入的學號為-1時表示結束輸入."<<endl;
int num;
do
{
cout <<"請輸入要刪除的學生的學號:";
cin>>num;
if (num==-1)continue;
student.RemoveItem(num);
}
while (num!=-1);
return;
}
void ShowAverage() //輸出平均數
{
float avr=student.Average();
if (avr>0)
{
cout<<"共有記錄:\t"<<student.ListCount()<<endl<<endl;
cout<<"平均成績:\t"<<avr<<endl<<endl;
}
return;
}
//-------******<主函數開始>******-------
int main()
{
cout<<"Welcome!\n學生成績管理系統\nVer 1.01\nBy FondBoy\n\n";
int select;
char s;
while (1)
{
select=Menu();
switch (select)
{
case 0: //退出程序
s=Exit();
if (s=='y' || s=='Y')return 0;
break;
case 1: //輸入學生成績
AddNew();
break;
case 2: //按學號排序
student.Sort();
break;
case 3: //按學號查找記錄
DoFind();
break;
case 4: //刪除由學號指定的記錄
DoDelete();
break;
case 5: //列出所有記錄
student.List();
break;
case 6: //輸出平均成績
ShowAverage();
break;
default:
cout<<"無效輸入!"<<endl;
}
}
return 0;
}
//-------******<主函數結束>******-------
//------!!!!!!---------EOF-[程序代碼結束]-------------------
❷ deepfake安裝教程
Deepfake的安裝教程通常涉及多個步驟,以下是一個簡化的安裝流程,適用於大多數用戶:
1. **准備硬體和軟體環境**:確保你的計算機具備足夠的硬體資源,如Nvidia顯卡(計算能力3.0以上,推薦1060 6G以上)、8G以上內存等。同時,需要安裝支持CUDA的Nvidia驅動程序,以及CUDA和CuDNN庫。
2. **下載Deepfake軟體**:可以從GitHub等開源平台下載Deepfake的源碼或預編譯版本。注意選擇適合你操作系統和需求的版本。
3. **安裝依賴庫**:根據Deepfake的文檔,安裝必要的Python庫和其他依賴項。這通常包括TensorFlow、PyTorch等深度學習框架,以及OpenCV、dlib等人臉識別和處理庫。
4. **配置環境**:設置環境變數,確保系統能夠找到CUDA和CuDNN庫。同時,配置Python環境,確保所有依賴庫都已正確安裝。
5. **運行Deepfake**:按照Deepfake的文檔或教程,執行安裝後的程序。這通常包括提取人臉數據、訓練模型和轉換視頻等步驟。
6. **測試和調試**:使用示例數據或自己的視頻進行測試,檢查換臉效果。根據需要進行調試和優化。
請注意,由於Deepfake技術涉及復雜的深度學習模型和大量的數據處理,安裝和配置過程可能相對復雜。建議仔細閱讀官方文檔和教程,或尋求專業人員的幫助。