当前位置: 首页 > >

学生信息管理系统c语言版源代码

发布时间:

#include <stdio.h>

word 专业整理

#include <string.h>

#include <stdlib.h>

#include <conio.h>

#define N 1000

typedef struct student

{

int number;

char name[20];

int grade;

int gaoshu;

学*资料 整理分享

int yingyu;

word 专业整理

int jisuanji;

int sum;

}STUDENT;

STUDENT student[N];

int shuliang=0;

void menu();

void fhzjm()

{

char biaozhi[20];

printf("\n");

学*资料 整理分享

word 专业整理
printf("还需要操作么?如果需要操作请输入:yes,否则请输入: no\n"); scanf("%s",biaozhi); if(strcmp(biaozhi,"yes")==0) { menu(); } else if(strcmp(biaozhi,"no")==0) exit(0); else { printf("请输入正确的字符,谢谢!\n");
学*资料 整理分享

word 专业整理
fhzjm(); } } void DengJi() { int rs; int i,k=1; system("CLS"); printf("请输入需要输入几个学生信息:"); scanf("%d",&rs); for(i=shuliang;i<shuliang+rs;i++,k++)
学*资料 整理分享

word 专业整理
{ printf("请输入第%d 个学生的学号:",k); scanf("%d",&student[i].number); printf("请输入学生的姓名:"); scanf("%s",student[i].name); printf("请输入学生 3 门课的成绩:"); printf("请输入第 1 门课的成绩:"); scanf("%d",&student[i].gaoshu); printf("请输入第 2 门课的成绩:"); scanf("%d",&student[i].yingyu); printf("请输入第 3 门课的成绩:");
学*资料 整理分享

word 专业整理
scanf("%d",&student[i].jisuanji); } shuliang=shuliang+rs; fhzjm(); } void ShanChu() { char shanchuinfo[10]; system("CLS"); printf("删除全部学生信息请输入\"all\",删除指定学号的学生 信息请输入\"one\"\n");
学*资料 整理分享

word 专业整理
scanf("%s",shanchuinfo);
if(strcmp(shanchuinfo,"all")==0)
{
int j;
printf("你删除的学生信息如下:\n");
printf("-----------学号-------------姓名-------------高数 --------------英语--------------计算机\t\n");
for(j=0;j<shuliang;j++)
printf("----%d-------%s-------%d-------%d-------%d\t\n",s tudent[j].number,student[j].name,student[j].gaoshu,studen t[j].jisuanji);
shuliang=0;
printf("删除成功\n\n");
学*资料 整理分享

word 专业整理
} else if(strcmp(shanchuinfo,"one")==0) { struct student *p=NULL; int choice; int i,j,k=0; printf("请输入你要删除的人的学号:"); scanf("%d",&choice); for(i=0;i<shuliang;i++) { if(choice==student[i].number)
学*资料 整理分享

word 专业整理
{ k=1;j=i;break; } } if(k) { if(shuliang==1) { p=&student[0]; free(p); shuliang=0;
学*资料 整理分享

word 专业整理
} else { for(i=j;i<shuliang;i++) { student[i]=student[i+1]; } shuliang=shuliang-1; } printf("删除成功\n\n"); }
学*资料 整理分享

word 专业整理
else { printf("输入数据错误!\n"); } } fhzjm(); } void LiuLan() { int i; system("CLS");
学*资料 整理分享

word 专业整理
if(shuliang==0) { printf("系统里面没有任何学生的信息!\n"); } else { for(i=0;i<shuliang;i++) { printf("第%d 个学生的学号为:%d\n",i+1,student[i].number); printf("第%d 个学生的姓名为:%s\n",i+1,student[i].name); printf(" 第 %d 个 学 生 的 第 一 门 课 的 成 绩
学*资料 整理分享

word 专业整理
为:%d\n",i+1,student[i].gaoshu);
printf(" 第 %d 个 学 生 的 第 二 门 课 的 成 绩 为:%d\n",i+1,student[i].yingyu);
printf(" 第 %d 个 学 生 的 第 三 门 课 的 成 绩 为:%d\n",i+1,student[i].jisuanji);
student[i].sum=student[i].gaoshu+student[i].yingyu+studen t[i].jisuanji;
printf("第%d 个学生的总成绩为:%d\n",i+1,student[i].sum);
}
}
fhzjm();
}
void ChaZhao()
学*资料 整理分享

word 专业整理
{ int xx; char choice,yy[20]; int i,j,k=0; system("CLS"); if(shuliang==0) { printf("系统里面没有任何学生的信息!\n"); fhzjm(); } printf("三种查找方式:学号,姓名,成绩\n");
学*资料 整理分享

word 专业整理
printf("如果按学号查找请输 1,如果按姓名查找请输 2,如果按 成绩查找请输 3\n"); printf("请输入您查找的方式:"); scanf("%s",&choice); if(choice=='1') { printf("请输入需要查找学生的学号:"); scanf("%d",&xx); printf("您所查找的学生的信息为:\n"); printf("----学号----姓名----高数成绩----英语成绩----计算 机成绩----\t\n"); for(i=0;i<shuliang;i++)
学*资料 整理分享

word 专业整理
{ if(xx==student[i].number) { j=i;k=1; printf("----%d-------%s-------%d-------%d-------%d----\t\ n",student[j].number,student[j].name,student[j].gaoshu,st udent[j].yingyu,student[i].jisuanji); } } if(k==0) printf("输入信息有误:\n"); }
学*资料 整理分享

word 专业整理
else if(choice=='2') { printf("请输入需要查找学生的姓名:\n"); scanf("%s",yy); printf("您所查找的学生的信息为:\n"); printf("----学号----姓名----高数成绩----英语成绩----计算 机成绩----\t\n"); for(i=0;i<shuliang;i++) { if(strcmp(yy,student[i].name)==0) {
学*资料 整理分享

j=i;k=1;

word 专业整理

printf("----%d-------%s-------%d-------%d-------%d----\t\ n",student[j].number,student[j].name,student[j].gaoshu,st udent[j].yingyu,student[j].jisuanji);

}

}

if(k==0)

printf("输入信息有误:\n");

}

else if(choice=='3')

{

printf("请输入需要查找学生的成绩:\n");

学*资料 整理分享

scanf("%d",&xx);

word 专业整理

printf("您所查找的学生的信息为:\n");

printf("---- 学 号 ---- 姓 名 ---- 高 数 ---- 英 语 ---- 计 算 机 ----\t\n");

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

{

if(xx==student[i].grade)

{

j=i;k=1;

printf("----%d-------%s-------%d-------%d-------%d----\t\ n",student[j].number,student[j].name,student[j].gaoshu,st udent[j].yingyu,student[i].jisuanji);

}
学*资料 整理分享

word 专业整理
} if(k==0) printf("输入信息有误:\n"); } fhzjm(); } void PaiXu() { struct student *p1[N],**p2,*temp; int i,j; system("CLS");
学*资料 整理分享

word 专业整理
p2=p1; for( i=0;i<shuliang;i++) { p1[i]=student+i; } for( i=0;i<shuliang;i++) { for( j=i+1;j<shuliang;j++) { if((*(p2+i))->sum<(*(p2+j))->sum) {temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;}
学*资料 整理分享

word 专业整理
} } printf("按照总成绩排序之后的信息为:\n"); printf("----学号----姓名----总成绩----\t\n"); for( i=0;i<shuliang;i++) { student[i].sum=student[i].gaoshu+student[i].yingyu+studen t[i].jisuanji; printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*( p2+i))->name,(*(p2+i))->sum); } fhzjm();
学*资料 整理分享

word 专业整理
} void CunChu() { int i; FILE *rs; if((rs=fopen("student.txt","w"))==NULL) { printf("not open"); exit(0); } for(i=0;i<shuliang;i++)
学*资料 整理分享

word 专业整理
{ fwrite(&student[i], sizeof(student[i]), 1, rs); } if(ferror(rs)) { fclose(rs); perror("写文件失败!\n"); return; } printf("存储文件成功!\n"); fclose(rs);
学*资料 整理分享

word 专业整理
fhzjm(); } void DaoChu() { struct student t; int i=0; FILE* fp = fopen("student.txt", "r"); shuliang=0; if(NULL==fp) { perror("读取文件打开失败!\n");
学*资料 整理分享

word 专业整理
return; } memset(student,0x0,sizeof(student)); while(1) { fread(&t,sizeof(t),1,fp); if(ferror(fp)) { fclose(fp); perror("读文件过程失败!\n"); return;
学*资料 整理分享

word 专业整理
} if(feof(fp)) { break; } student[i]=t; i++; } fclose(fp); shuliang=i; printf("导出文件成功!\n");
学*资料 整理分享

word 专业整理
fhzjm(); } void menu() { int n=0; system("CLS"); printf(" 学生信息管理系统\n"); printf(" 作者:陈椿\n"); printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n"); printf(" 2.删除学生信息\n");
学*资料 整理分享

word 专业整理
printf(" 3.浏览所有已经登记的学生\n"); printf(" 4.查找\n"); printf(" 4.1 按学号查找\n"); printf(" 4.2 按姓名查找\n"); printf(" 4.3 按成绩查找\n"); printf(" 5.根据总成绩排序\n"); printf(" 6.存储到文件\n"); printf(" 7.从文件导出\n"); printf(" 8.退出系统\n"); a: printf(" 请选择:"); scanf("%d",&n);
学*资料 整理分享

word 专业整理
switch (n) { case 1: DengJi();break; case 2: ShanChu();break; case 3: LiuLan();break; case 4: ChaZhao();break; case 5:
学*资料 整理分享

word 专业整理
PaiXu();break; case 6: CunChu();break; case 7: DaoChu();break; case 8: exit(0);break; default: { printf("请输入 1-8 之间的数字,谢谢!\n"); goto a;
学*资料 整理分享

} } } main() { menu(); }

word 专业整理

学*资料 整理分享




友情链接: