C語言實(shí)現(xiàn)班級(jí)學(xué)生管理系統(tǒng)
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)班級(jí)學(xué)生管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
下面是根據(jù)班級(jí),這個(gè)人數(shù)較少的單位設(shè)計(jì)的學(xué)籍管理系統(tǒng),錄入時(shí),要求班內(nèi)序號(hào)由1開始? 按順序錄入,其中主要用到了 結(jié)構(gòu)體數(shù)組,文件處理,循環(huán)語句,選擇語句等方面的知識(shí)
在設(shè)計(jì)中遇到一個(gè)問題就是:不知道怎樣修改已經(jīng)保存在文件中的某一個(gè)指定學(xué)生的信息,后來在詢問學(xué)長之后才了解到?,可以: 先把文件中的數(shù)據(jù)全部讀入結(jié)構(gòu)體數(shù)組中,再修改指定序號(hào)的數(shù)組元素,然后再用“wt”的方式寫進(jìn)原文件,這樣就可以刪除文件里的原內(nèi)容,再寫進(jìn)新內(nèi)容
下面是源代碼,在Dev-C++ 條件下進(jìn)行編譯
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
int count1=0;
int count2=0;
int count3=0;
void class_print();
void men1_student();
void men2_student();
void men3_student();
void men4_student();
void input_student();
void input_grade();
void input_reward();
void input_finance();
void report_finance();
void seek_student();
void seek_grade();
void seek_reward();
void change_student();
void change_grade();
void change_reward();
int now1_student();
int now2_student();
int now3_student();
struct date
{
int year;
int month;
int day;
};
struct student
{
char number[2];
char name[10];
char sex[4];
char tel[15];
char id[20];
char study[10];
};
struct grade
{
char number[2];
char name[10];
char math[4];
char English[4];
char Cprogram[4];
char sumtest[4];
};
struct reward
{
char number[2];
char name[10];
struct date time;
char rewarding[80];
};
struct finance
{
char thing[20];
char type[8];
struct date time2;
int i;
};
struct student m_stu[50];
struct grade g_stu[50];
struct reward r_stu[50];
struct finance f_class;
struct grade t_change;
main()
{
int choice=-1; //一級(jí)菜單
while(choice!=0)
{
printf("\n");
printf("\t\t\t\t\t\t**"); class_print(); printf("**\n");
printf("\t\t\t\t\t\t****************************\n");
printf("\t\t\t\t\t\t** 班級(jí)學(xué)生學(xué)籍管理系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 1.戶籍管理系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 2.成績管理系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 3.獎(jiǎng)懲管理系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 4.財(cái)務(wù)管理系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 0.退 出 **\n");
printf("\t\t\t\t\t\t請選擇");
scanf("%d",&choice);
switch(choice)
{
case 1:
men1_student();
break;
case 2:
men2_student();
break;
case 3:
men3_student();
break;
case 4:
men4_student();
break;
case 0:
printf("返回上一級(jí)");
break;
default :
break;
}
}
}
void men1_student() //二級(jí)菜單(學(xué)生戶籍管理)
{
int choice=-1;
while(choice!=0)
{
printf("\n");
printf("\t\t\t\t\t\t****************************\n");
printf("\t\t\t\t\t\t**"); class_print(); printf("**\n");
printf("\t\t\t\t\t\t** 班級(jí)學(xué)生戶籍信息管理 **\n");
printf("\t\t\t\t\t\t** 戶籍信息已錄入人數(shù):");now1_student();printf(" **\n");
printf("\t\t\t\t\t\t** 1.戶籍錄入系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 2.戶籍修改系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 3.戶籍查詢系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 0.返 回 **\n");
printf("\t\t\t\t\t\t請選擇");
scanf("%d",&choice);
switch(choice)
{
case 1:
input_student();
break;
case 2:
change_student();
break;
case 3:
seek_student();
break;
case 0:
printf("返回上一級(jí)");
break;
default :
break;
}
getch();
}
}
void input_student() // 戶籍錄入函數(shù) 錄入信息保存至D盤根目錄下information1.txt文件下
{
int j;
printf("學(xué)生戶籍信息錄入");
printf("\n班內(nèi)序號(hào): ");
scanf("%s",&m_stu[count1].number);
printf("\n姓名: ");
gets(m_stu[count1].name);
gets(m_stu[count1].name);
printf("\n性別: ");
scanf("%s",&m_stu[count1].sex);
printf("\n電話號(hào)碼: ");
scanf("%s",&m_stu[count1].tel);
printf("\n身份證號(hào): ");
scanf("%s",&m_stu[count1].id);
printf("\n學(xué)號(hào): ");
scanf("%s",&m_stu[count1].study);
printf("是否保存該學(xué)生信息?1-保存 2-放棄");
scanf("%d",&j);
if(j==1)
{
FILE *info; //保存至本地文件
info=fopen("d:\\information1.txt","at+");
fwrite(&m_stu[count1],sizeof(struct student),1,info);
fclose(info);
printf("信息已保存至D:\\information1.tex 文件下,按任意鍵繼續(xù)");
count1++;
}
else printf("放棄保存,按任意鍵繼續(xù)");
}
void seek_student() //查詢戶籍信息函數(shù)
{
FILE *info;
info=fopen("d:\\information1.txt","rt");
int i;
printf("請輸入該學(xué)生班內(nèi)序號(hào)");
scanf("%d",&i);
if(i<1||i>50) printf("抱歉,該學(xué)生信息不存在");
else
{
rewind(info);
fseek(info,sizeof(struct student)*(i-1),0);
fread(&m_stu[i-1],sizeof(struct student),1,info);
printf("\n\n序號(hào) 姓名 性別 電話號(hào)碼\t 身份證號(hào)\t\t學(xué)號(hào)\t");
printf("\n\n%d %s %s %s %s %s",i,m_stu[i-1].name,m_stu[i-1].sex,m_stu[i-1].tel,m_stu[i-1].id,m_stu[i-1].study);
}
}
void change_student() //修改戶籍信息
{
int i=0,j,k,f;char h[100000];
FILE *info;
info=fopen("d:\\information1.txt","rt");
printf("\n\t請輸入要修改戶籍信息的學(xué)生班內(nèi)序號(hào)");
scanf("%d",&j);
if(j<1||j>50) printf("抱歉,該學(xué)生信息不存在");
else
{
rewind(info);
while(fgets(h,sizeof(struct student),info)!=NULL)
{
fseek(info,sizeof(struct student)*i,0);
fread(&m_stu[i],sizeof(struct student),1,info);
i++;
}
}
fclose(info);
printf("\n該學(xué)生目前戶籍信息為\n:");
printf("\n\n序號(hào) 姓名 性別 電話號(hào)碼\t 身份證號(hào)\t\t學(xué)號(hào)\t");
printf("\n\n%d %s %s %s %s %s",j,m_stu[j-1].name,m_stu[j-1].sex,m_stu[j-1].tel,m_stu[j-1].id,m_stu[j-1].study);
printf("確定修改此學(xué)生信息?1- 修改 2- 返回");
scanf("%d",&k);
if(k==1)
{
printf("\n姓名: ");
gets(m_stu[j-1].name);
gets(m_stu[j-1].name);
printf("\n性別: ");
scanf("%s",&m_stu[j-1].sex);
printf("\n電話號(hào)碼: ");
scanf("%s",&m_stu[j-1].tel);
printf("\n身份證號(hào): ");
scanf("%s",&m_stu[j-1].id);
printf("\n學(xué)號(hào): ");
scanf("%s",&m_stu[j-1].study);
}
else return;
info=fopen("d:\\information1.txt","wt");
for(f=0;f<i;f++)
{
fseek(info,sizeof(struct student)*f,0);
fwrite(&m_stu[f],sizeof(struct student),1,info);
}
fclose(info);
printf("修改成功!");
}
void men2_student() //二級(jí)菜單(學(xué)生成績管理)
{
int choice=-1;
while(choice!=0)
{
printf("\n\t\t\t\t\t\t****************************\n");
printf("\t\t\t\t\t\t**"); class_print(); printf("**\n");
printf("\t\t\t\t\t\t** 班級(jí)學(xué)生成績信息管理 **\n");
printf("\t\t\t\t\t\t** 成績信息已錄入人數(shù):");now2_student();printf(" **\n");
printf("\t\t\t\t\t\t** 1.成績錄入系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 2.成績修改系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 3.成績查詢系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 4.綜測排名系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 0.返 回 **\n");
printf("\t\t\t\t\t\t請選擇");
scanf("%d",&choice);
switch(choice)
{
case 1:input_grade();
break;
case 2:change_grade();
break;
case 3:seek_grade();
break;
case 4:printf("功能正在研發(fā)中,敬請期待...");
break;
default:
break;
}
getch();
}
}
void input_grade() // 成績錄入函數(shù) ,錄入信息保存至 D盤根目錄下information2.txt文件下
{
int j;
printf("學(xué)生成績信息錄入");
printf("\n班內(nèi)序號(hào)");
scanf("%s",&g_stu[count2].number);
printf("\n姓名: ");
gets(g_stu[count2].name);
gets(g_stu[count2].name);
printf("\n高數(shù): ");
scanf("%s",&g_stu[count2].math);
printf("\n英語:");
scanf("%s",&g_stu[count2].English);
printf("\nC語言:");
scanf("%s",&g_stu[count2].Cprogram);
printf("\n綜測:");
scanf("%s",&g_stu[count2].sumtest);
printf("是否保存該學(xué)生信息?1-保存 2-放棄");
scanf("%d",&j);
if(j==1)
{
FILE *info2; //保存至本地文件
info2=fopen("d:\\information2.txt","at+");
fwrite(&g_stu[count2],sizeof(struct grade),1,info2);
fclose(info2);
printf("信息已保存至D:\\information.tex2 文件下,按任意鍵繼續(xù)");
count2++;
}
else printf("放棄保存,按任意鍵繼續(xù)");
}
void seek_grade() //查詢成績信息函數(shù)
{
FILE *info2;
info2=fopen("d:\\information2.txt","rt");
int i;
printf("\n\t請輸入該學(xué)生班內(nèi)序號(hào)");
scanf("%d",&i);
if(i<1||i>50) printf("\n抱歉,該學(xué)生信息不存在");
else
{
rewind(info2);
fseek(info2,sizeof(struct grade)*(i-1),0);
fread(&g_stu[i-1],sizeof(struct grade),1,info2);
printf("\n\n序號(hào) 姓名 高數(shù) 英語 C語言 綜測");
printf("\n\n%d %s %s %s %s %s",i,g_stu[i-1].name,g_stu[i-1].math,g_stu[i-1].English,g_stu[i-1].Cprogram,g_stu[i-1].sumtest);
}
}
void change_grade() //修改成績信息
{
int i=0,j,k,f;char h[100000];
FILE *info;
info=fopen("d:\\information2.txt","rt");
printf("\n\t請輸入要修改成績信息的學(xué)生班內(nèi)序號(hào)");
scanf("%d",&j);
if(j<1||j>50) printf("\n抱歉,該學(xué)生信息不存在");
else
{
rewind(info);
while(fgets(h,sizeof(struct grade),info)!=NULL)
{
fseek(info,sizeof(struct grade)*i,0);
fread(&g_stu[i],sizeof(struct grade),1,info);
i++;
}
}
fclose(info);
printf("\n該學(xué)生目前成績信息為\n:");
printf("\n\n序號(hào) 姓名 高數(shù) 英語 C語言 綜測");
printf("\n\n%d %s %s %s %s %s",j,g_stu[j-1].name,g_stu[j-1].math,g_stu[j-1].English,g_stu[j-1].Cprogram,g_stu[j-1].sumtest);
printf("\n\t確定修改此學(xué)生信息?1- 修改 2- 返回");
scanf("%d",&k);
if(k==1)
{
printf("\n姓名: ");
gets(g_stu[j-1].name);
gets(g_stu[j-1].name);
printf("\n高數(shù): ");
scanf("%s",&g_stu[j-1].math);
printf("\n英語: ");
scanf("%s",&g_stu[j-1].English);
printf("\nC語言: ");
scanf("%s",&g_stu[j-1].Cprogram);
printf("\n綜測: ");
scanf("%s",&g_stu[j-1].sumtest);
}
else return;
info=fopen("d:\\information2.txt","wt");
if(info==NULL)
{
printf("不能打開此文件,按任意鍵繼續(xù)");
getch();
}
for(f=0;f<i;f++)
{
fseek(info,sizeof(struct grade)*f,0);
fwrite(&g_stu[f],sizeof(struct grade),1,info);
}
fclose(info);
printf("修改成功!");
}
void men3_student() //二級(jí)菜單(學(xué)生獎(jiǎng)懲管理)
{
int choice=-1;
while(choice!=0)
{
printf("\n");
printf("\t\t\t\t\t\t****************************\n");
printf("\t\t\t\t\t\t**"); class_print(); printf("**\n");
printf("\t\t\t\t\t\t** 班級(jí)學(xué)生獎(jiǎng)懲信息管理 **\n");
printf("\t\t\t\t\t\t** 獎(jiǎng)懲信息已錄入人數(shù):");now3_student();printf(" **\n");
printf("\t\t\t\t\t\t** 1.獎(jiǎng)懲錄入系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 2.獎(jiǎng)懲修改系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 3.獎(jiǎng)懲查詢系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 0.返 回 **\n");
printf("\t\t\t\t請選擇");
scanf("%d",&choice);
switch(choice)
{
case 1:
input_reward();
break;
case 2:
change_reward();
break;
case 3:
seek_reward();
break;
case 0:
printf("返回上一級(jí)");
break;
default :
break;
}
getch();
}
}
void input_reward() // 獎(jiǎng)懲錄入函數(shù) 錄入信息保存至D盤根目錄下information3.txt文件下
{
int j;
printf("學(xué)生獎(jiǎng)懲信息錄入");
printf("\n班內(nèi)序號(hào): ");
scanf("%s",&r_stu[count3].number);
printf("\n姓名: ");
gets(r_stu[count3].name);
gets(r_stu[count3].name);
printf("\n獎(jiǎng)懲時(shí)間: ");
scanf("%d.%d.%d",&r_stu[count3].time.year,&r_stu[count3].time.month,&r_stu[count3].time.day);
printf("\n具體事件: ");
gets(r_stu[count3].rewarding);
gets(r_stu[count3].rewarding);
printf("\n是否保存該學(xué)生信息?1-保存 2-放棄");
scanf("%d",&j);
if(j==1)
{
FILE *info; //保存至本地文件
info=fopen("d:\\information3.txt","at+");
fwrite(&r_stu[count3],sizeof(struct reward),1,info);
fclose(info);
printf("\n信息已保存至D:\\information3.tex 文件下,按任意鍵繼續(xù)");
count3++;
}
else printf("放棄保存,按任意鍵繼續(xù)");
}
void seek_reward() //查詢獎(jiǎng)懲信息函數(shù) 根據(jù)學(xué)生班級(jí)序號(hào)
{
FILE *info;
info=fopen("d:\\information3.txt","rt");
int i;
printf("\n\t請輸入該學(xué)生班內(nèi)序號(hào)");
scanf("%d",&i);
if(i<1||i>50) printf("\n抱歉,該學(xué)生信息不存在");
else
{
rewind(info);
fseek(info,sizeof(struct reward)*(i-1),0);
fread(&r_stu[i-1],sizeof(struct reward),1,info);
printf("\n\n序號(hào) 姓名 獎(jiǎng)懲時(shí)間 具體事件\t\t");
printf("\n\n%d %s %d.%d.%d %s ",i,r_stu[i-1].name,r_stu[i-1].time.year,
r_stu[i-1].time.month,
r_stu[i-1].time.day, r_stu[i-1].rewarding);
}
}
void change_reward() //修改獎(jiǎng)懲信息
{
int i=0,j,k,f;char h[100000];
FILE *info;
info=fopen("d:\\information3.txt","rt");
printf("\n\t請輸入要修改獎(jiǎng)懲信息的學(xué)生班內(nèi)序號(hào)");
scanf("%d",&j);
if(j<1||j>50) printf("\n抱歉,該學(xué)生信息不存在");
else
{
rewind(info);
while(fgets(h,sizeof(struct reward),info)!=NULL)
{
fseek(info,sizeof(struct reward)*i,0);
fread(&r_stu[i],sizeof(struct reward),1,info);
i++;
}
}
fclose(info);
printf("\n該學(xué)生目前獎(jiǎng)懲信息為\n:");
printf("\n\n序號(hào) 姓名 獎(jiǎng)懲時(shí)間 具體事件");
printf("\n\n%d %s %d.%d.%d %s ",j,r_stu[j-1].name,r_stu[j-1].time.year,
r_stu[j-1].time.month,
r_stu[j-1].time.day ,r_stu[j-1].rewarding);
printf("\n\t確定修改此學(xué)生信息?1- 修改 2- 返回");
scanf("%d",&k);
if(k==1)
{
printf("\n姓名: ");
gets(r_stu[j-1].name);
gets(r_stu[j-1].name);
printf("\n獎(jiǎng)懲時(shí)間: ");
scanf("%d.%d.%d",&r_stu[j-1].time.year,&r_stu[j-1].time.month,&r_stu[j-1].time.day);
printf("\n具體事件: ");
scanf("%s",&r_stu[j-1].rewarding);
}
else return;
info=fopen("d:\\information3.txt","wt");
for(f=0;f<i;f++)
{
fseek(info,sizeof(struct reward)*f,0);
fwrite(&r_stu[f],sizeof(struct reward),1,info);
}
fclose(info);
printf("修改成功!");
}
int now1_student() //錄入戶籍信息學(xué)生數(shù)目 在菜單中 顯示 已經(jīng)錄入學(xué)生人數(shù)
{
int i=1;
char j[100000];
FILE *info;
info=fopen("D:\\information1.txt","rt");
rewind(info);
while(fgets(j,sizeof(struct student),info)!=NULL)
{
fseek(info,sizeof(struct student)*i,0);
i++;
}
fclose(info);
printf("%d",i-1);
}
int now2_student() //錄入成績信息學(xué)生數(shù)目 在菜單中 顯示 已經(jīng)錄入學(xué)生人數(shù)
{
int i=1;
char j[100000];
FILE *info;
info=fopen("D:\\information2.txt","rt");
rewind(info);
while(fgets(j,sizeof(struct grade),info)!=NULL)
{
fseek(info,sizeof(struct grade)*i,0);
i++;
}
fclose(info);
printf("%d",i-1);
}
int now3_student() //錄入獎(jiǎng)懲信息學(xué)生數(shù)目 在菜單中 顯示 已經(jīng)錄入學(xué)生人數(shù)
{
int i=1;
char j[100000];
FILE *info;
info=fopen("D:\\information3.txt","rt");
rewind(info);
while(fgets(j,sizeof(struct reward),info)!=NULL)
{
fseek(info,sizeof(struct reward)*i,0);
i++;
}
fclose(info);
printf("%d",i-1);
}
void class_print() // 錄入專業(yè)班級(jí)信息,并保存至D盤根目錄下information0.txt文件下
{
char major[20],class_number[4];
FILE *info;
info=fopen("d:\\information0.txt","rt");
if(info==NULL)
{
info=fopen("d:\\information0.txt","wt");
printf("\n請輸入專業(yè) :");
scanf("%s",&major);
printf("\n請輸入班級(jí) :");
scanf("%s",&class_number);
fwrite(major,sizeof(major),1,info);
fwrite(class_number,sizeof(class_number),1,info);
printf("\n\t已保存專業(yè)班級(jí)信息!");
fclose(info);
info=fopen("d:\\information0.txt","rt");
fread(&major,sizeof(major),1,info);
fread(&class_number,sizeof(class_number),1,info);
printf("%s",major);printf("%s班",class_number);
}
else
{
fread(&major,sizeof(major),1,info);
fread(&class_number,sizeof(class_number),1,info);
printf("%s",major);printf("%s班",class_number);
fclose(info);
}
}
void men4_student() //二級(jí)菜單(班級(jí)財(cái)務(wù)管理)
{
int choice=-1;
while(choice!=0)
{
printf("\n");
printf("\t\t\t\t\t\t****************************\n");
printf("\t\t\t\t\t********財(cái)務(wù)信息不可修改,請謹(jǐn)慎錄入!******\n");
printf("\t\t\t\t\t\t** 班級(jí)學(xué)生財(cái)務(wù)信息管理 **\n");
printf("\t\t\t\t\t\t** 1.財(cái)務(wù)錄入系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 2.財(cái)務(wù)報(bào)表系統(tǒng) **\n");
printf("\t\t\t\t\t\t** 0.返 回 **\n");
printf("\t\t\t\t\t\t請選擇");
scanf("%d",&choice);
switch(choice)
{
case 1:
input_finance();
break;
case 2:
report_finance();
break;
case 3:
case 0:
printf("返回上一級(jí)");
break;
default :
break;
}
getch();
}
}
void input_finance() // 財(cái)務(wù)錄入函數(shù) ,錄入后信息保存到D盤根目錄下 information4.txt文件中
{
int j;
printf("班級(jí)財(cái)務(wù)信息錄入");
printf("\n收支時(shí)間: ");
scanf("%d.%d.%d",&f_class.time2.year,&f_class.time2.month,&f_class.time2.day );
printf("\n具體事件: ");
gets(f_class.thing);
gets(f_class.thing);
printf("\n財(cái)務(wù)類型(收入或開支): ");
scanf("%s",&f_class.type);
printf("\n流動(dòng)金額(收入為正開支為負(fù)): ");
scanf("%d",&f_class.i);
printf("\n是否保存該財(cái)務(wù)信息?1-保存 2-放棄");
scanf("%d",&j);
if(j==1)
{
FILE *info; //保存至本地文件
info=fopen("d:\\information4.txt","at+");
fwrite(&f_class,sizeof(struct finance),1,info);
fclose(info);
printf("\n信息已保存至D:\\information4.txt 文件下,按任意鍵繼續(xù)");
}
else printf("放棄保存,按任意鍵繼續(xù)");
}
void report_finance() // 財(cái)務(wù)信息報(bào)表
{
char h[100000];int sum=0,i=0;
printf("\n收支時(shí)間 具體事件\t財(cái)務(wù)類型 流動(dòng)金額\n");
FILE *info;
info=fopen("d:\\information4.txt","rt");
while(fgets(h,sizeof(struct finance),info)!=NULL)
{
fseek(info,sizeof(struct finance)*i,0);
fread(&f_class,sizeof(struct finance),1,info);i++;
printf("\n%d.%d.%d %s %s %d\n",f_class.time2.year,
f_class.time2.month,
f_class.time2.day, f_class.thing,f_class.type,f_class.i);
sum=sum+f_class.i ;
}
printf("\n\t\t班費(fèi)余額:%d元",sum);
}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C語言結(jié)構(gòu)體鏈表和指針實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- 基于C語言實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- c語言實(shí)現(xiàn)學(xué)生管理系統(tǒng)詳解
- C語言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼)
- C語言單鏈表實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- C語言實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- C語言鏈表實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- C語言實(shí)現(xiàn)簡單學(xué)生管理系統(tǒng)
- C語言學(xué)生管理系統(tǒng)源碼分享
- C語言實(shí)現(xiàn)簡易學(xué)生管理系統(tǒng)
相關(guān)文章
詳解如何在code block創(chuàng)建一個(gè)C語言的項(xiàng)目
這篇文章主要介紹了詳解如何在code block創(chuàng)建一個(gè)C語言的項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Qt自定義Widget實(shí)現(xiàn)互斥效果詳解
在使用Qt時(shí),可能會(huì)遇到這種問題:多個(gè)控件互斥,類似于QRadiButton控件,但又不是單純的QRadioButton控件,互斥的可能是一個(gè)窗口,也可能是幾個(gè)按鈕,等等多種情況。本文將介紹利用Qt自定義Widget實(shí)現(xiàn)的互斥效果,需要的可以參考一下2022-01-01
QT基于TCP實(shí)現(xiàn)文件傳輸系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了QT基于TCP實(shí)現(xiàn)文件傳輸系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
OpenSSL使用AES實(shí)現(xiàn)文件加解密功能
AES是一種對(duì)稱加密算法,它是目前廣泛使用的加密算法之一,意味著加密和解密使用相同的密鑰,這就要求密鑰的安全性非常重要,因?yàn)槿魏螕碛忻荑€的人都能進(jìn)行加密和解密操作,本文給大家介紹了OpenSSL如何使用AES實(shí)現(xiàn)文件加解密功能,需要的朋友可以參考下2023-11-11
淺談C++中的構(gòu)造函數(shù)分類及調(diào)用規(guī)則
這篇文章主要介紹了C++中的構(gòu)造函數(shù)分類及調(diào)用規(guī)則,文中根據(jù)參數(shù)寫出了幾種不同類型的構(gòu)造函數(shù)并解釋了如何調(diào)用,需要的朋友可以參考下2016-03-03

