日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

学生签到系统c代码_C语言实现简单学生学籍管理系统

發布時間:2024/1/23 windows 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学生签到系统c代码_C语言实现简单学生学籍管理系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#include

#include

#include

#include

#define N 100 /*存儲100個學生的學籍信息*/

int flag; /*標記是否登錄*/

struct date /*出生日期*/

{

int year;

int month;

int day;

};

struct student

{

char num[20];/*學號*/

char name[25];/*姓名*/

char sex[10];/*性別*/

struct date birthday;/*出生年月*/

int age;/*年齡*/

char addr[50];/*籍貫*/

char dept[50]; /*系別*/

char major[30]; /*專業*/

char classs[30]; /*班級*/

char phone[20];/*電話*/

}stu[N];

void login() /*登錄*/

{

void menu();

system("cls");

if(flag)

{

printf(" 已經登錄!\n");

printf("Press any key to continue…\n");

getchar();

getchar();

system("cls");

menu();

}

int load();

int n,i,m,w;

FILE *fp;

if((fp=fopen("D:\\file.txt","rb"))!=NULL) /*不是空文件*/

n=load(); /*打開文件*/

else

n=0;

struct student s;

char password[20];

int d,q;

printf("\n\t請選擇登錄身份:1.管理員 2.用戶 [ ]\b\b");

scanf("%d",&d);

if(d==1)

{

printf("\n\t\t\t請輸入密碼:");

getchar();

int j=0;

while(1)

{

password[j]=getch();

if(password[j]=='\r')

break;

printf("*");

j++;

}

password[j]='\0';

if(!strcmp(password,"930322")) /*判斷密碼是否正確*/

{

flag=1;

printf("\n\t登錄成功!\n");

printf("\tPress [ Enter ] key to continue…");

getchar();

system("cls");

menu();

}

if(!flag)

{

printf("\t\n密碼錯誤!\n");

printf("What do you want to do next? 1.繼續登錄 2.返回菜單 [ ]\b\b");

scanf("%d",&q);

if(q==1) /*繼續登錄*/

{

system("cls");

login();

}

else if(q==2) /*返回主菜單*/

{

system("cls");

menu();

}

}

}

else

{

printf("\n\t\t\t用戶名:");

scanf("%s",s.name);

printf("\t\t\t密碼:");

int j=0;

while(1)

{

password[j]=getch();

if(password[j]=='\r')

break;

printf("*");

j++;

}

password[j]='\0';

flag=0; /*未登錄時flag=0*/

for(i=0;i

if(!strcmp(s.name,stu[i].name)&&!strcmp(s.name,password))

{

flag=1; /*登錄成功flag=1*/

break;

}

if(flag)

{

printf("\n\t登錄成功!\n");

printf("\tPress any key to continue…\n");

getchar(); getchar();

system("cls");

menu(); /*登錄成功后返回主菜單*/

}

else

{

m=0; /*設置m是為了避免陷入 登錄失敗時 跳不出登錄界面*/

w=1; /*設置w是為了避免輸出多次 “用戶不存在”*/

int q; /*q為選項*/

do

{

if(w>0)

printf("用戶名不存在或密碼錯誤!\n"); /*第一次登錄時輸入不存在的用戶時顯示*/

printf("What do you want to do next? 1.繼續登錄 2.返回菜單 [ ]\b\b");

scanf("%d",&q);

if(q==1) /*繼續登錄*/

{

login();

m=1;

}

else if(q==2) /*返回主菜單*/

{

system("cls");

menu();

m=1;

}

else

{

printf("選擇錯誤!請重新選擇:\n");

w=0;

}

}while(m==0);

}

}

}

void printf_one(int k) /*輸出一個學生的信息*/

{

system("color 4e");

printf("學號:%s\n",stu[k].num);

printf("姓名:%s\n",stu[k].name);

printf("性別:%s\n",stu[k].sex);

printf("出生年月:%d/%d/%d\n",stu[k].birthday.year,stu[k].birthday.month,stu[k].birthday.day);

printf("年齡:%d\n",stu[k].age);

printf("籍貫:%s\n",stu[k].addr);

printf("系別:%s\n",stu[k].dept);

printf("專業:%s\n",stu[k].major);

printf("班級:%s\n",stu[k].classs);

printf("電話:%s\n",stu[k].phone);

}

void printf_n(int n) /*瀏覽時輸出所有學生的信息*/

{

system("color 2e");

int j,i=1;

for(j=0;j

{

printf("第%d個學生:\n",i++);

printf_one(j);

printf("\n");

}

getchar();

}

int load() /*打開文件,讀取里面的數據*/

{

FILE *fp;

int i;

if((fp=fopen("D:\\file.txt","rb"))==NULL) /*讀入空文件,rb表示打開一個二進制文件,只允許讀數據*/

{

printf("\n文件不存在!請輸入:\n");

return 0;

}

for(i=0;!feof(fp);i++) /*處理到文件結尾*/

fread(&stu[i],sizeof(struct student),1,fp); /*fread(buffer,size,cout,fp)將磁盤文件中的一批數據作為一個整體一次性讀取出來,

buffer指定數據塊位置,sizeof數據塊字節數,count讀取次數,fp指向源磁盤文件*/

fclose(fp);

return(i-1);

}

void input(int k) /*輸入學生信息*/

{

getchar();

printf("學號:"); gets(stu[k].num);

printf("姓名:"); gets(stu[k].name);

printf("性別:"); gets(stu[k].sex);

printf("出生年月:"); scanf("%d/%d/%d",&stu[k].birthday.year,&stu[k].birthday.month,&stu[k].birthday.day);

printf("年齡:"); scanf("%d",&stu[k].age); getchar();

printf("籍貫:"); gets(stu[k].addr);

printf("系別:"); gets(stu[k].dept);

printf("專業:"); gets(stu[k].major);

printf("班級:"); gets(stu[k].classs);

printf("電話:"); gets(stu[k].phone);

}

void save(int n) /*保存學生信息*/

{

void exit();

FILE *fp;

int i;

if((fp=fopen("D:\\file.txt","wb"))==NULL) /*只打開或建立一個二進制文件,只允許寫數據*/

{

printf("\nCan not open file!\n");

exit();

}

for(i=0;i

if(stu[i].name[0]!='\0')

if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) /*將一批數據作為一個整體一次性寫入磁盤文件*/

printf("文件寫入錯誤!\n");

fclose(fp);

}

void printf_back()/*添加學生信息后顯示的“是瀏覽還是返回”*/

{

int w,k=0;

void browse();

void menu();

printf("\n\n\t^_^.插入成功. ^_^\n\n");

do

{

printf("What do you want to do next?\n\n\t1).瀏覽所有\t2).返回: [ ]\b\b");

scanf("%d",&w);

if(w==1)

{

system("cls");

browse();

}

else if(w==2)

{

system("cls");

menu();

}

else

printf(" 選擇錯誤!請重新選擇!\n");

}while(k==0);

}

void insert() /*添加學生信息*/

{

int i,n,k,t;

FILE *fp;

if((fp=fopen("D:\\file.txt","rb"))==NULL) /*讀入空文件,rb表示打開一個二進制文件,只允許讀數據*/

{

printf("How many people do you want to add(1-%d)?:",N-1);

n=0;

}

else

{

n=load();

printf("How many student do you want to insert (1-%d)?:",N-n-1);

}

scanf("%d",&t);

k=n+t;

for(i=n;i

{

printf("\n輸入第 %d 個學生學籍信息.\n",i-n+1);

input(i);

}

save(k); /*保存所有學生的信息*/

printf_back();

}

void deleter() /*刪除*/

{

void menu();

if(!flag)

{

printf("\n\n\t請先登錄!\n");

printf("\n\t請按 Enter 鍵進入登錄界面!");

getchar();

getchar();

login();

}

else

{

struct student s;

int i,n,k,w0,w1;

n=load();

do

{

k=-1;

//printf_n(n); /*刪除之前先顯示所有學生的信息*/

do

{

printf("\n\n請輸入您想要刪除的學生的姓名!\nName:");

scanf("%s",s.name);

for(i=0;i

if(strcmp(s.name,stu[i].name)==0)

{

k=i;

s=stu[i];

}

if(k==-1)

{

int m;

printf("\n\n沒有這個學生的信息!\n");

printf("What do you want to do next? 1.繼續輸入 2.返回主菜單 [ ]\b\b");

scanf("%d",&m);

if(m==1)

deleter();

else

{

k=0;

menu();

}

}

}while(k==-1);

printf_one(k);

printf("\n\t確定刪除?\n\t1).是 2).返回 [ ]\b\b");/*再次詢問是否刪除*/

scanf("%d",&w0);

if(w0==1)

{

stu[k].name[0]='\0';

save(n);

}

else

break;

printf("\n\t^_^.成功刪除^_^.\n");

printf("What do you want to do?\n\t1).繼續 2).返回 [ ]\b\b");

scanf("%d",&w1);

}while(w1==1);

system("cls");

menu(); /*不再刪除時返回主菜單,w1!=1*/

}

}

void search() /*查找*/

{

void menu();

int w0,k,i,n,w1,w2;

struct student s;

FILE *fp;

if((fp=fopen("D:\\file.txt","rb"))!=NULL) /*不是空文件*/

n=load();

do

{

printf("請選擇查找類別: 1.姓名 2.學號 [ ]\b\b");

scanf("%d",&w1);

if(w1<1||w1>2)

{

printf("輸入錯誤!請重新輸入!\n");

w2=1;

}

else

w2=0; /*這里要注意:不加這句話會陷入死循環,跳不出來*/

}while(w2==1);

if(w1==1) /*按姓名查找*/

{

do

{

k=-1;

do

{

printf("\n請輸入您想要查找的學生的姓名!\nName:");

scanf("%s",s.name);

for(i=0;i

if(strcmp(s.name,stu[i].name)==0)

{

k=i;

s=stu[i];

}

if(k==-1) /*沒有找到*/

{

int o;

printf("\n\n沒有這個學生的信息!\n!");

printf("What do you want to do?\n\t1.繼續 2.返回菜單 [ ]\b\b");

scanf("%d",&o);

if(o==1)

{

system("cls");

search(); /*繼續查找*/

}

else

{

system("cls");

menu();

}

}

}while(k==-1);

system("cls");

printf_one(k); /*找到以后輸出這個學生的信息*/

printf("\nWhat do you want to do next?\n\t1).繼續 2).返回菜單 [ ]\b\b");

scanf("%d",&w0);

}while(w0==1);

system("cls");

menu(); /*不再查找時返回主菜單*/

}

else /*按學號查找*/

{

do

{

k=-1;

do

{

printf("\n請輸入您想要查找的學生的學號!\nNum:");

scanf("%s",s.num);

for(i=0;i

if(strcmp(s.num,stu[i].num)==0) /*找到了*/

{

k=i;

s=stu[i];

}

if(k==-1) /*沒有找到*/

{

int o;

printf("\n\n沒有這個學生的信息!\n!");

printf("What do you want to do?\n\t1.繼續 2.返回菜單 [ ]\b\b");

scanf("%d",&o);

if(o==1)

{

system("cls");

search(); /*繼續查找*/

}

else

{

system("cls");

menu();

}

}

}while(k==-1);

system("cls");

printf_one(k); /*找到以后輸出這個學生的學籍信息*/

printf("\nWhat do you want to do?\n\t1).繼續 2).返回菜單 [ ]\b\b");

scanf("%d",&w0);

}while(w0==1);

system("cls");

menu();/*不再查找時返回主菜單*/

}

}

int modify_data(int i) /*修改信息函數*/

{

int c,w1;

void menu();

do

{

puts("\n請選擇要修改的選項:\n\n1.學號 2.姓名 3.性別 4.出生日期 5.年齡 6.籍貫 7.系別 8.專業 9.班級 10.電話 11.所有信息 12.取消并返回");

printf("請選擇?: [ ]\b\b\b");

scanf("%d",&c);

if(c>12||c<1)

{

puts("\n選擇錯誤!請重新選擇!");

getchar();

}

}while(c>12||c<1);

do

{

switch(c)

{

case 1: printf("學號:"); scanf("%s",stu[i].num); break;

case 2: printf("姓名:"); scanf("%s",stu[i].name); break;

case 3: printf("性別:"); scanf("%s",stu[i].sex); break;

case 4: printf("出生年月:"); scanf("%d/%d/%d",&stu[i].birthday.year,&stu[i].birthday.month,&stu[i].birthday.day); break;

case 5: printf("年齡:"); scanf("%d",&stu[i].age);break;

case 6: printf("籍貫:"); scanf("%s",stu[i].addr);break;

case 7: printf("系別:"); scanf("%s",stu[i].dept);break;

case 8: printf("專業:"); scanf("%s",stu[i].major);break;

case 9: printf("班級:"); scanf("%s",stu[i].classs);break;

case 10: printf("電話:"); scanf("%s",stu[i].phone);break;

case 11: input(i); break; /*修改這個學生的所有信息*/

case 12: menu(); /*返回主菜單*/

}

puts("\nNow:\n");

printf_one(i); /*輸出 修改后 的這個學生的信息*/

printf("\n確定?\n\n\t1).是 2).不,重新修改 3).返回不保存 [ ]\b\b");

scanf("%d",&w1);

}while(w1==2);

return(w1); /*修改成功并選擇1后返回1*/

}

void modify() /*修改*/

{

void menu();

if(!flag)

{

printf("\n\n\t請先登錄!\n");

printf("\n\t請按 Enter 鍵進入登錄界面!");

getchar();

getchar();

login();

}

else

{

struct student s;

int i,n,k,w0=1,w1,w2=0;

n=load();

do

{

k=-1;

//printf_n(n); /*刪除之前先顯示所有學生的信息*/

do

{

printf("\n請輸入您想要修改的學生的姓名!\nName:");

scanf("%s",s.name);

for(i=0;i

if(strcmp(s.name,stu[i].name)==0) /*與其中一個學生匹配*/

{

k=i;

s=stu[i];

}

if(k==-1) /*沒有找到輸入的學生*/

{

int o;

printf("\n\n沒有這個學生的信息!\n");

printf("What do you want to do?\n\t1.繼續 2.返回菜單 [ ]\b\b");

scanf("%d",&o);

if(o==1)

{

system("cls");

modify(); /*繼續修改*/

}

else

{

system("cls");

menu();

}

}

}while(k==-1);

system("cls");

printf_one(k); /*輸出這個學生的信息*/

w1=modify_data(k);

if(w1==1) /*判斷是否修改成功修改*/

{

printf("\n\t^_^.修改成功 ^_^.\n\n是否繼續?\n\n\t1).是 2).保存返回\t[ ]\b\b");

scanf("%d",&w0);

w2=1;

}

else

{

w0=0;

if(w2==0)

stu[k]=s;

}

if((w0!=1)&&(w2==1)) /*修改成功保存*/

save(n);

}while(w0==1);

system("cls");

menu();/*不再修改返回主菜單*/

}

}

void browse()/*瀏覽*/

{

system("color 5f");

void menu();

int n;

n=load();

printf_n(n);

printf(" 共有 %d 個學生的記錄.\n",n);

printf("\nPress [ ENTER ] key to back...");

getchar();

system("cls");

menu(); /*返回主函數*/

}

void exit() /*退出*/

{

exit(0);

}

void face() /*訪問頁面*/

{

system("color 4e");

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

puts("\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※");

puts("\t ※※ ※※");

puts("\t ※※ ※※");

puts("\t ※※ 歡迎訪問學生學籍管理系統! ※※");

puts("\t ※※ ※※");

puts("\t ※※ ※※");

puts("\t ※※ ※※");

puts("\t ※※ ※※");

puts("\t ※※ 制作人:李遠航 ※※");

puts("\t ※※ 2013.6.20 ※※");

puts("\t ※※ ※※");

puts("\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※");

printf("\n\tPress [ Enter ] key to continue……\n");

getchar();

system("cls");

}

void menu() /*主菜單*/

{

system("color 2e");

printf("\n\t\t\t歡迎使用學生學籍管理系統!\n");

printf("\n");

int n,w1;

do

{

puts("\t\t★★★★★★★★ 菜單 ★★★★★★★★");

puts("\t\t★ 1.登 錄 ★");

puts("\t\t★ 2.插 入 ★");

puts("\t\t★ 3.刪 除 ★");

puts("\t\t★ 4.查 找 ★");

puts("\t\t★ 5.修 改 ★");

puts("\t\t★ 6.瀏 覽 ★");

puts("\t\t★ 7.退 出 ★");

puts("\t\t★★★★★★★★★★★★★★★★★★★★★");

printf("請選擇服務種類(1-7) : [ ]\b\b");

scanf("%d",&n);

if(n<1||n>7)

{

system("cls");

printf("選擇錯誤! 請重新選擇!\n");

w1=1;

}

else

w1=0;

}while(w1==1);

switch(n)

{

case 1: login(); break; /*登錄*/

case 2: system("cls"); insert(); break; /*插入*/

case 3: system("cls"); deleter(); break; /*刪除*/

case 4: system("cls"); search(); break; /*查找*/

case 5: system("cls"); modify(); break; /*修改*/

case 6: system("cls"); browse(); break; /*瀏覽*/

case 7: exit(); break; /*退出*/

}

}

int main()

{

face();

menu();

return 0;

}

總結

以上是生活随笔為你收集整理的学生签到系统c代码_C语言实现简单学生学籍管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。