當前位置:編程學習大全網 - 源碼下載 - 求壹個C語言學生學籍管理系統源代碼

求壹個C語言學生學籍管理系統源代碼

#include <stdio.h>

#include <string.h>

#include <conio.h>

#include <malloc.h>

#include <stdlib.h>#define N 100

struct student

{char XUEHAO[20];

char XINGMING[10];

char XINGBIE[4];

char SHENGRI[10];

char JIGUAN[10];

char ZHUANYE[10];

char BANJI[6];

char XUEYUAN[20];

}student;void CAIDAN();

void ZHUCE();

void XIUGAI();

void SHANCHU();

void del_XUEHAO(FILE *fp);

void del_XINGMING(FILE *fp);

void CHAZHAO();

void sch_XUEHAO(FILE *fp);

void sch_XINGMING(FILE *fp);

void TONGJI();

void XIANSHI();

void TIANJIA();

void save( struct student student[]);main()

{ char choose,yes_no;

do

{ CAIDAN();

printf("\n 請輸入序號: (1~8) ");

choose=getch();

system("cls");

switch(choose)

{

case'1': printf(" %c",choose);ZHUCE();break;

case'2': printf(" %c",choose);XIUGAI();break;

case'3': printf(" %c",choose);SHANCHU();break;

case'4': printf(" %c",choose);TIANJIA();break;

case'5': printf(" %c",choose);CHAZHAO();break;

case'6': printf(" %c",choose);TONGJI();break;

case'7': printf(" %c",choose);XIANSHI();break;

case'8': break;

default:printf("\n %c 序號不對!\n",choose);

}

if(choose=='8')break;

printf("\n 要繼續選擇嗎 ? (Y/N) \n");

do

{ yes_no=getch(); printf(" %c",yes_no);}

while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

}while(yes_no=='Y'||yes_no=='y');

}

void CAIDAN()

{

system("cls");

printf(" **************************************** \n ");

printf(" * ——請選擇相應的功能—— * \n ");

printf(" * 1-----註冊 * \n ");

printf(" * 2-----修改學生信息 * \n ");

printf(" * 3-----刪除學生信息 * \n ");

printf(" * 4-----添加學生信息 * \n ");

printf(" * 5-----查找學生信息 * \n ");

printf(" * 6-----統計學生信息 * \n ");

printf(" * 7-----顯示學生信息 * \n ");

printf(" * 8-----退出系統 * \n ");

printf(" **************************************** \n ");

}/*定義學生信息註冊的函數*/

void ZHUCE()

{ int i=1;

struct student temp;

FILE *fp;

fp=fopen("G://123.txt","w");

if(fp==NULL){ printf("\n 打開文件失敗! \n");return; }

printf("\n 請輸入第1個學生信息:\n");

printf(" 學號(用#結束輸入): ");

do

{ gets(temp.XUEHAO);}

while(strcmp(temp.XUEHAO," ")==0);

printf(" 姓名(用#結束輸入): ");gets(temp.XINGMING);

printf(" 性別(用#結束輸入): ");gets(temp.XINGBIE);

printf(" 生日(用#結束輸入): ");gets(temp.SHENGRI);

printf(" 籍貫(用#結束輸入): ");gets(temp.JIGUAN);

printf(" 專業(用#結束輸入): ");gets(temp.ZHUANYE);

printf(" 班級(用#結束輸入): ");gets(temp.BANJI);

printf(" 學院(用#結束輸入): ");gets(temp.XUEYUAN);

while(temp.XUEHAO[0]!='#'&&temp.XINGMING[0]!='#'&&temp.XINGBIE[0]!='#'&&temp.SHENGRI[0]!='#'&&temp.JIGUAN[0]!='#'&&temp.ZHUANYE[0]!='#'&&temp.BANJI[0]!='#'&&temp.XUEYUAN[0]!='#')

{ fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XUEYUAN,temp);

i++;

printf("\n 請輸入第 %d 個學生信息:\n ",i);

printf(" 學號(用#結束輸入): ");

do

{ gets(temp.XUEHAO);}

while(strcmp(temp.XUEHAO," ")==0);

printf(" 姓名(用#結束輸入): ");gets(temp.XINGMING);

printf(" 性別(用#結束輸入): ");gets(temp.XINGBIE);

printf(" 生日(用#結束輸入): ");gets(temp.SHENGRI);

printf(" 籍貫(用#結束輸入): ");gets(temp.JIGUAN);

printf(" 專業(用#結束輸入): ");gets(temp.ZHUANYE);

printf(" 班級(用#結束輸入): ");gets(temp.BANJI);

printf(" 學院(用#結束輸入): ");gets(temp.XUEYUAN);

}

student=temp;

save(&temp);

fclose(fp);

}/*定義保存函數*/

void save( struct student student[])

{

FILE *fp=NULL;

fp=fopen("G://123.txt","ab+");

fwrite(student,sizeof(struct student),1,fp);

fclose(fp);

}

/*定義查找學生信息的函數*/

void CHAZHAO()

{ char c;

FILE *fp;

fp=fopen("G://123.txt","r");

if(fp==NULL)

{ printf("\n 打開文件失敗! \n");return; }

printf("\n 按學號查找( 1 ),還是按姓名查找( 2 )? ");

c=getch();

putch(c);

if(c=='1') sch_XUEHAO(fp);

else if(c=='2') sch_XINGMING(fp);

else printf("\n 非法字符!\n");

fclose(fp);

}

/*定義按學號查找學生信息的函數*/

void sch_XUEHAO(FILE *fp)

{ int flag=0,n=0;

char tempXUEHAO[20];

struct student temp;

printf("\n 請輸入要查找學生信息的學號: ");

gets(tempXUEHAO);

while(feof(fp)==0)

{ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",&temp.XUEHAO,&temp.XINGMING,&temp.XINGBIE,&temp.SHENGRI,&temp.JIGUAN,&temp.ZHUANYE,&temp.BANJI,&temp.XUEYUAN);

if(strcmp(tempXUEHAO,temp.XUEHAO)==0)

{ if(flag==0)

printf(" 學號 姓名 性別 生日 籍貫 專業 班級 學院\n");

printf("%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XUEYUAN);

flag=1;

}

n++;

}

if(n==0) printf("\n 文件中無此信息!\n");

else if(flag==0) printf("\n 文件中無此人!\n");

}

/*定義按姓名查找學生信息的函數*/

void sch_XINGMING(FILE *fp)

{ int flag=0,n=0;

char tempXINGMING[10];

struct student temp;

printf("\n 請輸入要查找學生信息的姓名: ");

gets(tempXINGMING);

while(feof(fp)==0)

{ fscanf(fp, "%5s%10s%10s%10s%10s%10s%10s%10s\n",&temp.XUEHAO,&temp.XINGMING,&temp.XINGBIE,&temp.SHENGRI,&temp.JIGUAN,&temp.ZHUANYE,&temp.BANJI,&temp.XUEYUAN);

if(strcmp(tempXINGMING,temp.XINGMING)==0)

{ if(flag==0) printf(" 學號 姓名 性別 生日 籍貫 專業 班級 學院\n");

printf("%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XUEYUAN);

flag=1;

}

n++;

}

if(n==0) printf("\n 文件中無此信息!\n");

else if(flag==0) printf("\n 文件中無此人!\n");

}

/*定義刪除學生信息的函數*/

void SHANCHU()

{ char c;

FILE *fp;

fp=fopen("G://123.txt","r");

if(fp==NULL)

{ printf("\n 文件打開失敗!\n ");return; }

printf("\n 按學號刪除( 1 ),還是按姓名刪除( 2 )? ");

c=getch();

putch(c);

if(c=='1') del_XUEHAO(fp);

else if(c=='2') del_XINGMING(fp);

else printf("\n 非法字符!\n");

}/*定義按學號刪除學生信息的函數*/

void del_XUEHAO(FILE *fp)

{ char tempXUEHAO[20];

int n=0,i=0,k;

struct student stu[N];

while(feof(fp)==0)

{ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i]. XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].ZHUANYE,stu[i].BANJI,stu[i].XUEYUAN);i++;n++;}

fclose(fp);

printf("\n 請輸入要刪除的學生信息的學號:");

scanf("%s",tempXUEHAO);

printf(" 刪除成功! ");

for(i=0;i<n;i++)

if(strcmp(tempXUEHAO,stu[i].XUEHAO)==0)break;

if(i<n)

for(k=i;k<n;k++)

stu[k]=stu[k+1];

else printf("\n 無此人!\n");

fp=fopen("G://123.txt","w");

if(fp==NULL)

{ printf("\n 文件打開失敗!\n");return; }

for(i=0;i<n-1;i++)

fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].ZHUANYE,stu[i].BANJI,stu[i].XUEYUAN);

}

  • 上一篇:3-10個月寶寶長白頭發的原因
  • 下一篇:部分校歌作品
  • copyright 2024編程學習大全網