本文實例為大家分享了C語言實現學生學籍管理系統的具體代碼,供大家參考,具體內容如下
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<windows.h> //**********************************結構體************************************* struct score { char class_num[10]; char person_num[10]; char name[15]; char sex; int num; }stu; //******************************輸出******************************************* void print1() //輸出科目函數 { printf("班級 學號 姓名 性別 分數/n"); } //*****************************菜單******************************************** int menu() //菜單函數 { char i; printf("/n/n/n/n"); puts("/t/t**********************主菜單******************/t/n"); puts("/t/t/t/t1.學生信息輸入 /n"); puts("/t/t/t/t2.學生信息瀏覽 /n"); puts("/t/t/t/t3.學生信息檢索 /n"); puts("/t/t/t/t4.學生信息修改 /n"); puts("/t/t/t/t5.學生信息刪除 /n"); puts("/t/t/t/t6. 退 出 系 統 /n"); puts("/t/t**********************************************/t/n"); printf("/t/t/t 請選擇(1-6):[ ]/b/b"); i=getchar(); system("cls"); return i; } //**********************輸入函數******************************************* void Enter() { FILE *fp; char ch; if((fp=fopen("f://zimou.txt","a+"))==NULL) { printf("/nCannot open file!/n"); getch(); exit(1); } do { printf("請輸入班級:");scanf("%s",stu.class_num);getchar(); printf("/n"); printf("請輸入學號:");gets(stu.person_num); printf("/n"); printf("請輸入姓名:");gets(stu.name); printf("/n"); printf("性 別(m/f):");scanf("%c",&stu.sex);getchar(); printf("/n"); printf("分 數:");scanf("%d",&stu.num);getchar(); printf("/n"); fwrite(&stu,sizeof(stu),1,fp); printf("繼續(y/n)?[ ]/b/b"); ch=getchar(); getchar(); }while(ch=='y'||ch=='Y'); fclose(fp); system("cls"); } //*****************瀏覽函數********************************************** void Browse() { FILE *fp; int total=0; if((fp=fopen("f://zimou.txt","a+"))==NULL) { printf("/tCan not open the inform file!"); getch(); exit(1); } while(fread(&stu,sizeof(stu),1,fp)==1) { total++; if(total==1) print1(); printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name); printf("%-8c",stu.sex); printf("%-4d ",stu.num); printf("/n"); } fclose(fp); printf("/n/n/t共有 %d 條記錄!/n",total); printf("/tpress any key to continue!"); getchar(); getchar(); system("cls"); } //*******************查詢函數********************************************* void Query() { FILE * fp; char num1[10]; char ch; if((fp=fopen("f://zimou.txt","a+"))==NULL) { printf("/tCan not open the inform file!"); getch(); exit(1); } do { getchar(); rewind(fp); printf("/n請輸入學號查詢:"); gets(num1); while(fread(&stu,sizeof(stu),1,fp)==1) if(strcmp(num1,stu.person_num)==0) { print1(); printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name); printf("%-8c",stu.sex); printf("%-4d ",stu.num); printf("/n"); break; } puts("/n"); printf("繼續查詢?(Y/N):[ ]/b/b"); ch=getchar(); }while(ch=='Y'||ch=='y'); fclose(fp); system("cls"); } //**********************學生成績修改函數*********************************** void Recopose() { FILE * fp1,* fp2; char num1[10]; char ch; getchar(); do { if((fp1=fopen("f://zimou.txt","a+"))==NULL) { printf("/tCan not open the infom file!"); getch(); exit(1); } if((fp2=fopen("f://ziye.txt","a+"))==NULL) { printf("/tCan not creat the temp file!"); getch(); exit(1); } printf("請輸入想要修改的學號:"); gets(num1); while(fread(&stu, sizeof(stu),1,fp1)==1) { if(strcmp(num1,stu.person_num)==0) { print1(); printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name); printf("%-8c",stu.sex); printf("%-4d ",stu.num); printf("/n"); printf("/n/nPlease input the new information:/n"); printf("/t班級代號:");gets(stu.class_num); printf("/t學生學號:");gets(stu.person_num); printf("/t學生姓名:"); gets(stu.name); printf("/t學生性別:");gets(&stu.sex); printf("/t學生成績:");scanf("%d",&stu.num); getchar(); } fwrite(&stu,sizeof(stu),1,fp2); } fclose(fp1); fclose(fp2); printf("修改成功!/n"); remove("f://zimou.txt"); rename("f://ziye.txt","f://zimou.txt"); printf("繼續修改?(Y/N):[ ]/b/b"); ch=getchar(); getchar(); }while(ch=='Y'||ch=='y'); system("cls"); } //*********************刪除函數****************************************** void Delete() { FILE * fp1,* fp2; int flag; char num1[10]; char ch; getchar(); do { if((fp1=fopen("f://zimou.txt","a+"))==NULL) { printf("/tCan not open the inform file!"); getch(); exit(1); } if((fp2=fopen("f://ziye.txt","a+"))==NULL) { printf("/tCan not creat the temp file!"); getch(); exit(1); } printf("請輸入你要刪除的學生的學號:"); gets(num1); flag=0; while(fread(&stu,sizeof(stu),1,fp1)==1) { if(strcmp(num1,stu.person_num)==0) { print1(); printf("%-10s%-10s%-20s",stu.class_num,stu.person_num,stu.name); printf("%-8c",stu.sex); printf("%-4d ",stu.num); printf("/n"); flag=1; } else fwrite(&stu,sizeof(stu),1,fp2); } fclose(fp1); fclose(fp2); if(flag==1) { remove("f://zimou.txt"); rename("f://ziye.txt","f://zimou.txt"); } else printf("Can not find this record!/n"); printf("繼續刪除?(Y/N):[ ]/b/b"); ch=getchar(); getchar(); }while(ch=='Y'||ch=='y'); system("cls"); } //***********************************退出************************************** void Exit() { puts("/n/t/t/t/t感謝使用本系統!!/n/n/t/t/t/t有任何問題請聯系:1005483758@qq.com /n"); exit(0); } //******************歡迎界面********************************** void Welcome() { printf("/n/n"); printf(" /t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓/n"); printf(" /t┃**********************************************************┃/n"); printf(" /t┃***┏━━━━━━━━━━━━━━━━━━━━━━━━┓***┃/n"); printf(" /t┃***┃************************************************┃***┃/n"); printf(" /t┃***┃*** ****┃***┃/n"); printf(" /t┃***┃*** 歡迎使用學生成績管理系統 ****┃***┃/n"); printf(" /t┃***┃*** ****┃***┃/n"); printf(" /t┃***┃*** ****┃***┃/n"); printf(" /t┃***┃*** 制作人:XXY ****┃***┃/n"); printf(" /t┃***┃*** ****┃***┃/n"); printf(" /t┃***┃*** 2013.6.20 ****┃***┃/n"); printf(" /t┃***┃*** ****┃***┃/n"); printf(" /t┃***┃************************************************┃***┃/n"); printf(" /t┃***┗━━━━━━━━━━━━━━━━━━━━━━━━┛***┃/n"); printf(" /t┃**********************************************************┃/n"); printf(" /t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛/n"); puts(" /n/t ① 管理員登陸! /n"); puts(" /n/t ② 游客 登陸! /n"); printf("/n請選擇登陸(1 or 2):[ ]/b/b"); / /左移一位“/b ” } //*****************************主函數**************************************** int main() { int i,k=0; char username[15],pwd[7],c; system("color 5e");//顏色 Welcome(); c=getchar();getchar(); if (c=='1') { system("cls");//跳轉頁面。 puts("/n/n/n/n/n/n/n/t/t/t/t管 理 員 登 陸!/n/n/n/n/n/t/t/t/t 請 登 陸!"); getchar(); for(i=0;i<3;i++) { printf("/n請輸入用戶名:"); gets(username); printf("/n請輸入6位密碼:"); gets(pwd); //判斷條件 if((strcmp(username,"xiaxianyun")==0)&&(strcmp(pwd,"123456")==0)) { printf("/n您已經成功登錄/n"); k=1; for(i=0;i<20;i++) { printf("."); Sleep(100); } system("cls"); while(1) switch(menu()) { case '1':Enter();break; case '2':Browse();break; case '3':Query();break; case '4':Recopose();break; case '5':Delete();break; case '6':Exit();break; } break; } else printf("/n用戶名或密碼無效 請重新輸入:/n"); continue; } if(k==0) printf("/n連續輸入錯誤3次 將退出程序/n"); Sleep(2000); exit(1); } else if(c=='2')//游客登錄 { system("cls");//跳轉頁面。 puts("/n/n/n/n/n/n/n/t/t/t/t歡 迎 游 客 進 入!/n/n/n/n/n/t/t/t/t 請 確 定!"); getchar(); system("cls"); while(1) switch(menu()) { case '1':Enter();break; case '2':Browse();break; case '3':Query();break; case '4':system("cls");getchar(); puts("/n/n/t/t對不起你沒有權限修改!/n/n"); printf("/t/tpress any key to continue!");getchar();system("cls");break; case '5':system("cls");getchar(); puts("/n/n/t/t對不起你沒有權限刪除!/n/n"); printf("/t/tpress any key to continue!");getchar();system("cls");break; case '6':Exit();break; } } return 0; } 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答
圖片精選