當前位置:編程學習大全網 - 編程語言 - 學生程序庫

學生程序庫

/***********************************************************************

-將管理員的初始密碼設置為123abc。

************************************************************************/

# include & ltstdio.h & gt

# include & ltstring.h & gt

# include & ltstdlib.h & gt

# include & ltconio.h & gt

struct?Student/**** *定義結構類型struct?學生****/

{

int?id;

夏爾?名稱[20];

浮動?sql

浮動?c;

浮動?java

浮動?avg

};

typedef?struct?學生?斯圖;/* * * *重命名結構?學生是stu * * * */

作廢?學生_頭();?/* * * * * * * * * *打印頭信息* * * * * * * * * *

作廢?學生_打印();/* * * * * * * * *打印菜單信息* * * * * * * *

作廢?student _ printError();?/* * * * * * * * *打印錯誤消息* * * * * * * *

int?學生貸款(Stu?*);?/* * * * * * * * * *讀取功能* * * * * * * * * *

int?Student_judgeIdIsEntity(Stu?*,int);/* * * *判斷輸入的ID是否已被使用* * */

int?student _ judges core(float);?/* * * *判斷輸入的等級是否合法* * * * * * * *

int?學生_輸入(Stu?*,int);/* * * * * * * * * * * *輸入功能* * * * * * * * * *

int?學生_刪除(Stu?*,int);?/* * * * * * * * * *刪除函數* * * * * * * * * *

作廢?學生_輸出(Stu?*,int);/* * * * * * * * * * * *輸出功能* * * * * * * * * *

作廢?學生_線(Stu?*,int);/* * * * * * * * * * * *排序功能* * * * * * * * * *

作廢?學生_保存(Stu?*,int);/* * * * * * * * * * * *保存功能* * * * * * * * * *

int?student _ password(int);?/* * * * * * * *密碼驗證功能* * * * * * * * * *

作廢?學生_莫迪_密碼(Stu?*,int);?/* * * * * * * * * *修改密碼功能* * * * * * * * *

夏爾?密碼[7]= " 123 ABC ";?/* * * * * *定義密碼全局變量* * * * * *

Main()/* * * * * * * * * * * *主函數* * * * * * * * * *

{

斯圖?stud[100];?//用於存儲學生信息的結構數組

int?count = 0;?//存儲現有學生人數信息。

int?password 1;?//判斷用戶密碼。1表示輸入的密碼正確,0表示錯誤。

int?is read = 0;//判斷用戶是否看過原始保存的信息。

學生_頭();//打印頭信息

{

學生_打印();?//打印菜單

int?用戶;

scanf("%d ",& amp用戶);

如果(用戶?!=?1?& amp& amp?isRead==0)

{

student _ printError();

繼續;

}

開關(用戶)

{

案子?1:

count = Student _ loan ding(Stud);

isRead?=?1;

打破;

案子?2:

學生_莫迪_密碼(Stud,count);

打破;

案子?3:

count=Student_input(Stud,count);

Student_save(Stud,count);

打破;

案子?4:

Student_output(Stud,count);

打破;

案子?5:

password 1 = Student _ password(計數);

if(密碼1==1)

{

count=Student_delete(Stud,count);

Student_save(Stud,count);

}

不然呢?if(密碼1==0)

{

printf("\n\t\t?密碼連續3次輸入錯誤。您無權執行此操作。\ n \ n ");

}

其他

{

printf(" \ n \ n ");

}

打破;

案子?6:

Student_line(Stud,count);

Student_output(Stud,count);

打破;

案子?7:

Student_save(Stud,count);

打破;

案子?8:

退出(0);

打破;

默認值:

printf("\t\t┏━━━━━━━━━━━━━━━━━━━━━━┓”);

printf("\n\t\t┃?沒有此功能選項,請選擇1-8┃”);

printf("\n\t\t┗━━━━━━━━━━━━━━━━━━━━━━┛\n”);

}

} while(1);

}

作廢?學生_頭()?//打印頭信息

{

printf(“printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

printf(" \ n \ t註意:①如果有記錄,請先閱讀。");

Printf("\n\t②如果沒有記錄,請先添加壹條記錄並保存。");

Printf("\n\t③數據在添加和刪除後會自動保存。");

Printf("\n\t④刪除和修改密碼需要密碼驗證。\ n ");

printf(" \ n-");

}

作廢?學生_打印()

{

printf("\n\t\t?┌┄┄┄┄┄┄?學生成績管理?┄┄┄┄┄┄┐");

printf("\n\t\t?┆?- ?┆");

printf("\n\t\t?┆1.?看學生信息?2.?修改管理員密碼?┆");

printf("\n\t\t?┆3.?添加學生信息?4.?查看學生信息?┆");

printf("\n\t\t?┆5.?刪除學生信息?6.?按平均分排序?┆");

printf("\n\t\t?┆7.?保存學生信息?8.?退出程序?┆");

printf("\n\t\t?└┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┘");

printf(" \ n \ t \ t \ t請選擇1-8:");

}

作廢?Student_printError()//打印錯誤消息

{

printf("\t\t┏━━━━━━━━━━━━━━━━━━━━━━┓”);

printf("\n\t\t┃?請先去獲取原始保存的信息。。。。?┃");

printf("\n\t\t┗━━━━━━━━━━━━━━━━━━━━━━┛\n”);

}

int?學生貸款(Stu?A[])//讀取函數

{

int?i=0,j = 0;

文件?* fp

fp=fopen("Student.txt "," r ");

if(fp==NULL)

{

printf("\t\t?┏━━━━━━━━━━━━━━━━━┓");

printf("\n\t\t?┃?沒有學生記錄可看?┃");

printf("\n\t\t?┗━━━━━━━━━━━━━━━━━┛\n\n”);

}

其他

{

fscanf(fp," %d ",& ampj);

fscanf(fp,“%s”,密碼);

for(I = 0;我& ltj;i++)?//fread(& amp;a[i],sizeof(Stu),1,FP);

{

fscanf(fp," %d ",& amp甲[我]。id);

fscanf(fp," %s ",a[i]。姓名);

fscanf(fp," %f ",& amp甲[我]。SQL);

fscanf(fp," %f ",& amp甲[我]。c);

fscanf(fp," %f ",& amp甲[我]。Java);

fscanf(fp," %f ",& amp甲[我]。avg);

}

printf("\t\t?┏━━━━━━━━━━━━━━━━━┓");

printf("\n\t\t?┃?成功讀取%2d學生記錄?┃",i);

printf("\n\t\t?┗━━━━━━━━━━━━━━━━━┛\n\n”);

fclose(FP);

}

返回(壹);

}

int?Student_judgeIdIsEntity(Stu?a[],int?id,int?N)//判斷用戶輸入的id是否可用。

{

int?我,弗拉格?=?1;

for(I = 0;我& ltn;i++){

如果(a[i]。id==id){

flage = 0;

打破;

}

}

回歸?flage

}

int?Student_judgeScore(浮動?分數)//判斷輸入的分數是否正確。

{

if(score & gt;=0?& amp& amp?得分& lt=100){

回歸?1;

}

否則{

printf("\t\t?等級無效,請重新輸入。\ n ");

回歸?0;

}

}

int?學生_輸入(Stu?a[],int?N)//輸入功能

{

夏爾?旗幟;

int?id;

浮動?sql,c,java

printf("\t\t?-\ n ");

{

printf("\t\t?請輸入學生信息:\ n”);

loopId:printf("\t\t?學號:“);

scanf("%d ",& ampid);

if(Student_judgeIdIsEntity(a,id,n)==1){

a[n]。id?=?id;

}

否則{

printf("\t\t?無效id,請重新輸入。\ n ");

goto?loopId

}

printf(" \ n ");

printf("\t\t?姓名:“);

scanf("%s ",a[n]。姓名);

printf(" \ n ");

loopSql:printf("\t\t?數據庫分數:“);

scanf("%f ",& ampSQL);

if(Student _ judges core(SQL)= = 1)

{

?a[n]。sql?=?sql

}

其他

{

?goto?loopSql

}

loopC:printf("\t\t?c?語言成績:“);

scanf("%f ",& ampc);

if(Student _ judges core(c)= = 1){

a[n]。c?=?c;

}

否則{

goto?loopC

}

loopJava:printf("\t\tJAVA?成就:“);

scanf("%f ",& ampJava);

if(Student _ judges core(Java)= = 1){

a[n]。java?=?java

}

否則{

goto?loopJava

}

a[n]。avg=(a[n]。sql+a[n]。c+a[n]。Java)/3;

n++;

printf(" \ n ");

printf("\n\t\t?繼續輸入學生信息?\ n ");

printf("\t\t?按任意鍵繼續,n退出”);

scanf("?%c "、& amp旗幟);

printf(" \ n ");

}while(flag!='n '?& amp& amp?旗幟!= ' N ');

printf("\t\t?-\ n \ n ");

返回(n);

}

int?學生_刪除(Stu?a[],int?n)?//刪除功能

{

int?I,j,d _ id

夏爾?旗幟;

斯圖?溫度;

{

printf("\n\t\t?請輸入您要刪除的學生的學號:“);

scanf("%d ",& ampd _ id);

for(I = 0;我& ltn;i++)

{

如果(a[i]。id==d_id)

打破;

}

如果(我& ltn)

{

printf("\n\t?刪除以下信息”);

printf(" \ n \ t-");

printf(" \ n \ t學生編號\ tName \數據庫\tC?語言\tJAVA編程\ tGPA ");

printf(" \ n \ t % d \ t % s \ t % 5.2f \ t % 5.2f \ t \ t % 5.2f \ n ",a[i]。id,a[i]。名字,壹個[我]。sql,a[i]。c,a[i]。java,a[i]。avg);

for(j = I;j & ltn-1;j++)

{

temp = a[j];

a[j]= a[j+1];

a[j+1]= temp;

}

n-;

}

其他

{

printf("\n\t\t?沒有您要刪除的學生數據!”);

}

printf("\n\t\t?繼續刪除學生數據?”);

printf("\n\t\t?按任意鍵繼續,n退出”);

scanf("?%c "、& amp旗幟);

}while(flag!='n '?& amp& amp?旗幟!= ' N ');

printf("\t\t?-\ n \ n ");

返回(n);

}

作廢?學生_輸出(Stu?a[],int?n)?//輸出功能

{

int?我;

printf(" \ n \ t-");

printf(" \ n \ t學生編號\ tName \數據庫\tC?language \ t Java programming \ tGPA \ n ");

for(I = 0;我& ltn;i++)

{

printf(" \ t % d \ t % s \ t % 5.2f \ t % 5.2f \ t % 5.2f \ t \ t % 5.2f \ n ",a[i]。id,a[i]。名字,壹個[我]。sql,a[i]。c,a[i]。java,a[i]。avg);

}

printf(" \ t-\ n \ n ");

}

作廢?學生_線(Stu?a[],int?N)//排序函數

{

int?I,j;

斯圖?溫度;

for(I = 0;我& ltn-1;i++)

{

for(j = I+1;j & ltn;j++)

{

如果(a[i]。平均值& lta[j]。平均值)

{

temp = a[I];

a[I]= a[I+1];

a[I+1]= temp;

}

}

}

}

作廢?學生_保存(Stu?a[],int?N)//保存功能

{

int?我;

文件?* fp

fp=fopen("Student.txt "," w ");

fprintf(fp," %d ",n);

fprintf(fp," \t%s\n ",密碼);

for(I = 0;我& ltn;i++)?//fwrite(a,sizeof(Stu),n,FP);

{

fprintf(fp," % d \ t % s \ t % 5.2f \ t % 5.2f \ t \ t % 5.2f \ t \ t % 5.2f \ n ",a[i]。id,a[i]。名字,壹個[我]。sql,a[i]。c,a[i]。java,a[i]。avg);

}

fclose(FP);

printf("\t\t?┏━━━━━━━━━━━━━━━━━┓");

printf("\n\t\t?┃?成功保存學生記錄?┃");

printf("\n\t\t?┗━━━━━━━━━━━━━━━━━┛\n”);

}

int?Student_password(int?N)//密碼驗證功能

{

int?l,I,j=0,k;

夏爾?通過[7];

夏爾?word[7];

文件?* fp

fp=fopen("Student.txt "," r ");

if(fp==NULL?||?n==0)

{

printf("\n\t\t?- ");

printf("\n\t\t?請先閱讀記錄。”);

printf("\n\t\t?沒有記錄請先添加!\ n ");

I = 2;

}

其他

{

fscanf(fp," %d ",& ampk);

fscanf(fp,“%s”,word);

fclose(FP);

printf("\n\t\t?- ");

printf("\n\t\t?請輸入密碼(6位數字):";

l = 0;

fflush(stdin);

{

pass[l]= getch();

printf(" * ");

l++;

}while(傳[l-1]!= ' \ r ');

pass[l-1]= ' \ 0 ';

while(j & lt;3)

{

j++;

if(strcmp(pass,word)==0)

{

I = 1;

打破;

}

其他

{

if(j & lt;3)

{

printf("\n\t\t?密碼錯誤,請重新輸入:“);

l = 0;

fflush(stdin);

{

pass[l]= getch();

printf(" * ");

l++;

}while(傳[l-1]!= ' \ r ');

pass[l-1]= ' \ 0 ';

}

I = 0;

}

}

}

printf("\n\t\t?- ");

返回(壹);

}

作廢?學生_莫迪_密碼(Stu?a[],int?N)//修改加密函數

{

int?密碼2;

int?I,l = 0;

password2 =學生_密碼(n);

if(密碼2==1)

{

printf("\n\t\t?請輸入新密碼(6位):";

fflush(stdin);

{

password[l]= getch();

printf(" * ");

l++;

}while(密碼[l-1]!= ' \ r ');

密碼[l-1]= ' \ 0 ';

文件?* fp

fp=fopen("Student.txt "," w ");

fprintf(fp," %d ",n);

fprintf(fp," \t%s\n ",密碼);

for(I = 0;我& ltn;i++)

{

fprintf(fp," % d \ t % s \ t % 5.2f \ t % 5.2f \ t \ t % 5.2f \ t \ t % 5.2f \ n ",a[i]。id,a[i]。名字,壹個[我]。sql,a[i]。c,a[i]。java,a[i]。avg);

}

fclose(FP);

printf("\n\t\t?密碼更改成功。\ n ");

printf("\t\t?-\ n \ n ");

}

不然呢?if(密碼2==0)

{

printf("\n\t\t?密碼連續3次輸入錯誤。您無權執行此操作。\ n ");

printf("\t\t?-\ n \ n ");

}

其他

{

printf(" \ n \ n ");

}

}

  • 上一篇:助聽器是把所有的聲音都放大嗎?
  • 下一篇:線程什麽意思
  • copyright 2024編程學習大全網