stdstring源碼
1. C++,大佬們看下這里報錯是為什麼可是這代碼能AC啊!
蘋果iCloud(貴安)數據中心投入運行;網易公布不當言論HR處理結果:已開除;OceanBase資料庫將開源|極客頭條
程序員35歲就該退休了嗎?
從「不作惡」到「門就在那邊」,谷歌 AI 倫理史
2. c++課程設計源代碼
c++課程設計 學生管理系統源代碼
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
typedef struct stu
{
char name[20];
long int number;
int snum;
char sex[20];
char add[30] ;
char time[20];
char tel[20];
struct stu *next;
}stu,*student;
int init(student &s);
void insert(student &s);
void print(student &s);
int delete(student &s);
void find (student &s);
void findname(student &s);
void findnum(student &s);
void modifay(student &s);
void putfile(student &s);
void getfile(student &s);
void main()
{
student s;
init(s);
cout<<"歡迎使用學生管理系統."<<endl;
cout<<" "<<endl;
cout<<endl;
while(1)
{
int i;
mainint:
cout<<"請選擇相關操作:"<<endl<<"1.建立學生資料文件."<<endl<<"2.瀏覽."<<endl<<"3.刪除."<<endl;
cout<<"4.查詢."<<endl<<"5.修改."<<endl<<"6.打開學生文件."<<endl<<"7.退出管理系統." <<endl<<"請選擇:";
cin>>i;
if(i<0||i>7)
{
cout<<"輸入了錯誤的數字,Again!"<<endl<<endl;
goto mainint;
}
switch(i)
{
case 1: insert(s);break;
case 2: print(s);
putfile(s);
break;
case 3: ldelete(s);break;
case 4: find(s);break;
case 5: modifay(s);
break;
case 6: getfile(s);break;
case 7: exit(0);
}
}
}
int init(student &s)
{
s=(student)malloc(sizeof(stu));
if (s)
{
s->next=NULL;
return 0;
}
else return -1;
}
void insert(student &s) //insert
{
cout<<endl;
student p,q;
p=(student)malloc(sizeof(stu));
cout<<"請輸入學生信息:"<<endl;
cout<<"姓名:";
cin>>p->name;
cout<<endl;
cout<<"學號:";
cin>>p->number;
cout<<endl;
cout<<"性別:";
cin>>p->sex;
cout<<endl;
cout<<"家庭住址:" ;
cin>>p->add;
cout<<endl;
cout<<"出生年月:" ;
cin>>p->time;
cout<<endl;
cout<<"宿舍號:";
cin>>p->snum;
cout<<endl;
cout<<"宿舍號碼:";
cin>>p->tel;
q=s;
while(!(q->next==NULL)&&(q->next->number<p->number))
q=q->next;
p->next=q->next;
q->next=p;
//if()p->next=NULL;
//free(p);
}
int ldelete(student &s) //delete
{
cout<<endl;
student p,a;
p=s ;
cout<<"請輸入刪除的學號:";
long int number;
cin>>number;
while(p)
{ if (p->number==number)
{
a->next=p->next;
free(p); return(0);}
else
{ a=p;
p=p->next;} }
cout<<"沒有找到你要刪除的選項!"<<endl<<endl;return(-1);
}
void print(student &s)
{
int a;
a=0;
student p;
p=s->next;
cout<<"姓名 "<<"學號 " <<"性別 "<<"家庭住址 "<<"出生年月 "<<"宿舍號"<<"宿舍號碼"<<endl;
while(p)
{
a++;
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
p=p->next;
}
cout<<endl;
if (a==0)
cout<<"還沒有學生信息!"<<endl<<endl ;
}
void find (student &s) //find
{
findl:
cout<<"請選擇查找方法:"<<endl<<"1.按姓名查找."<<endl<<"2.按學號查找."<<endl;
cout<<"請選擇:";
int k;
cin>>k;
if(k<0||k>3)
{
cout<<"輸了入錯誤數字,Again!"<<endl<<endl;
goto findl;
}
switch(k)
{
case 1: findname(s);break;
case 2: findnum(s);break;
}
}
void findname(student &s) //find by name
{
student p;
p=s->next;
cout<<"請輸入姓名:";
char name[20];
int j;
j=0;
cin>>name;
cout<<"你要查找的資料是:"<<endl;
cout<<"姓名 "<<"學號 " <<"性別 "<<"家庭住址 "<<"出生日期 "<<"宿舍號 "<<"宿舍號碼"<<endl;
while(p)
{
if (strcmp(p->name,name)==0)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
j++;
}
p=p->next;
}
cout<<endl;
if(j==0)
cout<<"對不起,沒找到你要的信息!"<<endl<<endl ;
}
void findnum(student &s) //find by number
{
student p;
p=s->next;
cout<<"請輸入學號:";
long int number;
int j;
j=0;
cin>>number;
cout<<"你要查找的資料是:"<<endl;
cout<<"姓名 "<<"學號 "<<"性別 "<<"家庭住址 "<<"出生日期 "<<"宿舍號 "<<"宿舍電話"<<endl;
while(p)
{
if (p->number==number)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->snum<<" "<<p->tel<<" "<<endl;
j++;
}
p=p->next;
}
cout<<endl;
if(j==0)
cout<<"對不起,沒找到你要的信息"<<endl<<endl ;
}
void modifay(student &s) //modifay
{
student q,p,l,m;
int j;
j=0;
q=s->next;
l=s;
m=s;
cout<<"請輸入要修改的學號:" ;
long int num;
cin>>num;
cout<<"姓名 "<<"學號 "<<"性別 "<<"家庭住址 "<<"入學時間 "<<"宿舍號 "<<"電話號碼"<<endl;
while(q)
{
if (q->number==num)
{
cout<<"你要修改的信息是:"<<endl;
cout<<q->name<<" "<<q->number<<" "<<q->sex<<" "<<q->add<<" "<<q->time<<" "<<q->snum<<" "<<q->tel<<" "<<endl;
j++;
p=(student)malloc(sizeof(stu));
cout<<"請輸入新的學生信息:"<<endl;
cout<<"姓名:";
cin>>p->name;
cout<<endl;
cout<<"學號:";
cin>>p->number;
cout<<endl;
cout<<"年齡:";
cin>>p->age;
cout<<endl;
cout<<"性別:";
cin>>p->sex;
cout<<endl;
cout<<"家庭住址:" ;
cin>>p->add;
cout<<endl;
cout<<"入學時間:" ;
cin>>p->time;
cout<<endl;
cout<<"電話號碼:";
cin>>p->tel;
l->next=q->next;
free(q);
goto tt;
}
else
{
l=q;
q=q->next;
}
}
cout<<endl;
if (j==0) cout<<"沒找到你要的數據!"<<endl<<endl ;
tt:
while(!(m->next==NULL)&&(m->next->number<p->number))
m=m->next;
p->next=m->next;
m->next=p;
}
void putfile(student &s)
{
student p;
p=s->next;
FILE *fp;
if((fp=fopen("information.txt","w"))==NULL)
{
cout<<"打不開文件"<<endl<<endl;
exit(0);
}
while(p)
{
if(fwrite(p,sizeof(struct stu),1,fp)!=1 )
{
cout<<"文件寫入錯誤"<<endl<<endl;
return;
}
p=p->next;
}
fclose(fp) ;
}
void getfile(student &s)
{
student p,q;
q=s;
FILE *fp1 ;
if((fp1=fopen("information.txt","r"))==NULL)
{
cout<<"打不開文件"<<endl;
exit(0);
}
cout<<"姓名 "<<"學號 "<<"性別 "<<"家庭住址 "<<"入學時間 "<<"宿舍號 "<<"電話號碼"<<endl;
p=(student)malloc(sizeof(stu));
while(fread(p,sizeof(struct stu),1,fp1)!=0)
{
cout<<p->name<<" "<<p->number<<" "<<p->sex<<" "<<p->add<<" "<<p->time<<" "<<p->age<<" "<<p->tel<<endl;
while(!(q->next==NULL)&&(q->next->number<p->number))
q=q->next;
p->next=q->next;
q->next=p;
p=(student)malloc(sizeof(stu));
}
fclose(fp1);
cout<<endl;
}
3. 編寫C++程序,按順序列出某個目錄下的所有文件的相對路徑和最後修改時間。新手跪求大神指導源代碼,感激
編寫C++程序,按順序列出某個目錄下的所有文件的相對路徑和最後修改時間是一項基礎但重要的任務。本文將詳細介紹如何實現這一功能。首先,我們需要包含必要的頭文件,如iostream、string、direct.h和ctime,以支持輸入輸出、字元串操作、目錄訪問和時間處理。以下是一個基本的示常式序:
cpp
#include
#include
#include
#include
using namespace std;
// 顯示指定目錄下的所有文件
int ShowDir(string strDir) {
struct _finddata_t c_file;
long hFile;
if((hFile = _findfirst(strDir.c_str(), &c_file)) == -1L) {
return -1;
}
while(_findnext(hFile, &c_file) == 0) {
// 去除本級和上級目錄
if(strcmp(".", c_file.name) == 0 || strcmp("..", c_file.name) == 0) {
continue;
}
// 輸出文件名和最後修改時間
cout << "Name:" << c_file.name << " LastWrite:" << ctime(&c_file.time_write);
}
_findclose(hFile);
return 0;
}
int main(int argc, char *argv[]) {
string strDir = "D:\\rfc\\*.*";
if(0 != ShowDir(strDir)) {
cout << "Can not show dir:" << endl;
}
return 0;
}
此程序使用Windows特有的`_findfirst`和`_findnext`函數來遍歷指定目錄下的所有文件。請注意,這些函數僅適用於Windows平台。對於跨平台項目,建議使用第三方庫如`boost filesystem`。
通過修改`ctime`函數的參數或使用其他時間格式化工具,可以自定義輸出的日期和時間格式。此外,該程序可以進一步擴展,以支持用戶輸入目錄路徑或處理其他文件屬性。
希望這段代碼對你有所幫助。如果你在實現過程中遇到任何問題,請隨時提問。