学生信息管理系统.docx

上传人:b****6 文档编号:3313510 上传时间:2022-11-21 格式:DOCX 页数:21 大小:18.23KB
下载 相关 举报
学生信息管理系统.docx_第1页
第1页 / 共21页
学生信息管理系统.docx_第2页
第2页 / 共21页
学生信息管理系统.docx_第3页
第3页 / 共21页
学生信息管理系统.docx_第4页
第4页 / 共21页
学生信息管理系统.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

学生信息管理系统.docx

《学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统.docx(21页珍藏版)》请在冰豆网上搜索。

学生信息管理系统.docx

学生信息管理系统

#include

#include//使用清屏函数及光标定位

#include//包含使用strcmp的头文件

voidgotoxy(intx,inty);//光标定位

voidMenu();//主菜单

voidInfobase();//信息维护

voidFind();//信息查询

voidInfoStat();//成绩统计

voidComp();//成绩排序

voidFind_ID();//以学号查找

voidFind_name();//以姓名查找

voidInfobase_add();//录入信息

voidInfobase_amend();//修改信息

voidDelete();//删除信息

typedefstruct//重命名学生信息结构体

{

charname[10];//姓名

charsex[3];//性别

intage;//年龄

charbirthday[40];//生日

intID;//学号

chartel[40];//联系方式

charad[50];//地址

charmail[50];//邮箱

intmath;//数学成绩

intenglish;//英语成绩

intcomputer_C;//计算机C语言成绩

intsum;//成绩总和

}Student;

voidmain()

{

color2;

intchg=1,n;

gotoxy(10,5);

printf("**************************************************************");

gotoxy(30,6);

printf("欢迎使用本管理系统");

gotoxy(10,7);

printf("**************************************************************");

gotoxy(35,10);

printf("作者:

郭帅");

Sleep(3000);//停留3秒

system("cls");//清屏

while(chg)

{

Menu();

scanf("%d",&n);

switch(n)

{

case1:

Infobase();//信息维护

system("cls");

break;

case2:

Find();//信息查询

system("cls");

break;

case3:

InfoStat();//成绩统计

break;

case4:

Comp();//成绩排序

break;

case0:

chg=0;//退出菜单

system("cls");

printf("/t/t谢谢使用!

再见\n");

break;

default:

printf("/t/t选择错误(0~4)?

请重新输入\n");

system("cls");

}

}

getch();

}

/************************************主菜单画面***********************************************/

voidMenu()

{

printf("\t┌──────────────────────────────┐\n");

printf("\t│主菜单│\n");

printf("\t├─────┬──────┬─────┬─────┬─────┤\n");

printf("\t│1信息维护│2信息查询│3成绩统计│4成绩排序│0退出菜单│\n");

printf("\t└─────┴──────┴─────┴─────┴─────┘\n");

}

/*************************************信息维护***********************************************/

voidInfobase()

{

intn,chg=1;

while(chg)

{

system("cls");

printf("\t1添加学生信息2修改学生信息3删除学生信息0回到主菜单\n");

scanf("%d",&n);

switch(n)

{

case1:

Infobase_add();//录入信息

break;

case2:

Infobase_amend();//修改信息

break;

case3:

Delete();//删除信息

case0:

chg=0;//退回主菜单

break;

default:

printf("\t选择错误请重新输入\n:

");

}

}

}

/****************************光标定位函数*******************************/

voidgotoxy(intx,inty)

{

CONSOLE_SCREEN_BUFFER_INFOcsbiInfo;

HANDLEhConsoleOut;

hConsoleOut=GetStdHandle(STD_OUTPUT_HANDLE);

GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

csbiInfo.dwCursorPosition.X=x;

csbiInfo.dwCursorPosition.Y=y;

SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);

}

/*******************************录入信息*****************************************************/

voidInfobase_add()

{

Studentstu[1];//定义Student型数组变量

FILE*fp=NULL;//声明文件指针

fp=fopen("学生信息.txt","a");//以追加方式打开

system("cls");

printf("输入姓名性别年龄出生年月学号电话地址邮箱成绩(数学外语C语言)\n");

scanf("%s%s%d%s%d%s%s%s%d%d%d",//接收输入

stu[0].name,

stu[0].sex,

&stu[0].age,

stu[0].birthday,

&stu[0].ID,

stu[0].tel,

stu[0].ad,

stu[0].mail,

&stu[0].math,

&stu[0].english,

&stu[0].computer_C);

printf("\n\n");

stu[0].sum=stu[0].english+stu[0].computer_C+stu[0].math;//计算总分

if(fprintf(fp,"%s%s%d%s%d%s%s%s%d%d%d%d\n",//写入磁盘防错处理

stu[0].name,

stu[0].sex,

stu[0].age,

stu[0].birthday,

stu[0].ID,

stu[0].tel,

stu[0].ad,

stu[0].mail,

stu[0].math,

stu[0].english,

stu[0].computer_C,

stu[0].sum)==0)

{

printf("写入失败");

}

fclose(fp);//关闭文件指针

}

/*********************************修改信息***************************************************/

voidInfobase_amend()

{

inti,j;

charch[10];//声明字符数组以保存需修改的姓名

Studentstu[50];//声明Student型数组

FILE*fp=NULL;//声明文件指针

system("cls");

printf("输入需修改学生的名字");//提示输入

scanf("%s",ch);//接收输入姓名

fp=fopen("学生信息.txt","rt+");//以可读写方式打开

for(i=0;;i++)

{

fscanf(fp,"%s%s%d%s%d%s%s%s%d%d%d%d",//从磁盘读入内存

stu[i].name,

stu[i].sex,

&stu[i].age,

stu[i].birthday,

&stu[i].ID,

stu[i].tel,

stu[i].ad,

stu[i].mail,

&stu[i].math,

&stu[i].english,

&stu[i].computer_C,

&stu[i].sum);

if(strcmp(stu[i].name,ch)==0)//判断是否查找所需

{

rewind(fp);//指针移到文件开头

system("cls");

printf("输入修改姓名性别年龄出生年月学号电话地址邮箱成绩(数学外语C语言)\n");

scanf("%s%s%d%s%d%s%s%s%d%d%d",//接收输入

stu[i].name,

stu[i].sex,

&stu[i].age,

stu[i].birthday,

&stu[i].ID,

stu[i].tel,

stu[i].ad,

stu[i].mail,

&stu[i].math,

&stu[i].english,

&stu[i].computer_C);

printf("\n\n");

j=i;

stu[i].sum=stu[i].english+stu[i].computer_C+stu[i].math;

for(i=0;i

{

fprintf(fp,"%s%s%d%s%d%s%s%s%d%d%d%d\n",//原数据写入磁盘

stu[i].name,

stu[i].sex,

stu[i].age,

stu[i].birthday,

stu[i].ID,

stu[i].tel,

stu[i].ad,

stu[i].mail,

stu[i].math,

stu[i].english,

stu[i].computer_C,

stu[i].sum);

}

fprintf(fp,"%s%s%d%s%d%s%s%s%d%d%d%d",//将修改数据写入磁盘

stu[i].name,

stu[i].sex,

stu[i].age,

stu[i].birthday,

stu[i].ID,

stu[i].tel,

stu[i].ad,

stu[i].mail,

stu[i].math,

stu[i].english,

stu[i].computer_C,

stu[i].sum);

fclose(fp);//关闭文件指针

break;

}

}

}

/**************************************删除信息********************************************/

voidDelete()

{

inti,j,k=0;

charch[10];//声明字符数组以保存需删除的姓名

Studentstu[50];//声明Student型数组

FILE*fp=NULL,*fp1=NULL;//声明文件指针

system("cls");

printf("输入需删除学生的名字");//提示输入

scanf("%s",ch);//接收输入姓名

fp=fopen("学生信息.txt","rt+");//以可读写方式打开

for(i=0;!

feof(fp);i++)

{

fscanf(fp,"%s%s%d%s%d%s%s%s%d%d%d%d",//从磁盘读入内存

stu[i].name,

stu[i].sex,

&stu[i].age,

stu[i].birthday,

&stu[i].ID,

stu[i].tel,

stu[i].ad,

stu[i].mail,

&stu[i].math,

&stu[i].english,

&stu[i].computer_C,

&stu[i].sum);

if(strcmp(stu[i].name,ch)==0)//判断是否查找所需

j=i;

}

rewind(fp);//指针移动到开头

for(;j

{

stu[j]=stu[j+1];//覆盖需删除的后依次前移

}

for(i=0;i

fprintf(fp,"%s%s%d%s%d%s%s%s%d%d%d%d\n",//写入磁盘

stu[i].name,

stu[i].sex,

stu[i].age,

stu[i].birthday,

stu[i].ID,

stu[i].tel,

stu[i].ad,

stu[i].mail,

stu[i].math,

stu[i].english,

stu[i].computer_C,

stu[i].sum);

}

fclose(fp);

/***************************************信息查询***********************************************/

voidFind()

{

intn,chg=1;//声明chg变量用以循环

while(chg)

{

printf("\t\t1按学号查询2按姓名查询0退回主菜单\n");

scanf("%d",&n);

switch(n)

{

case1:

Find_ID();//调用以学号查找的函数

break;

case2:

Find_name();//调用以姓名查找的函数

break;

case0:

chg=0;//退回主菜单

break;

default:

printf("\n选择错误请重新输入\n");

}

}

}

/*********************************按学号查找***************************************************/

voidFind_ID()

{

intn,i;

Studentstu[50];//声明Student型数组变量

FILE*fp=NULL;//声明文件指针

system("cls");

printf("请输入学号\n");//提示接收输入

scanf("%d",&n);//接收输入学号

fp=fopen("学生信息.txt","rt");//以只读方式打开

for(i=0;!

feof(fp);i++)

{

if(fscanf(fp,"%s%s%d%s%d%s%s%s%d%d%d%d\n",//防止读入内存失败

stu[i].name,

stu[i].sex,

&stu[i].age,

stu[i].birthday,

&stu[i].ID,

stu[i].tel,

stu[i].ad,

stu[i].mail,

&stu[i].math,

&stu[i].english,

&stu[i].computer_C,

&stu[i].sum)==0)

printf("读取失败");

if(stu[i].ID==n)//判断是否需查找学生

{

printf("查找到:

%s性别%s年龄%d出生日期%s学号%d电话%s\n\t地址%s邮箱%s数学%d外语%dC语言%d总分%d\n",//输出查找目标

stu[i].name,

stu[i].sex,

stu[i].age,

stu[i].birthday,

stu[i].ID,

stu[i].tel,

stu[i].ad,

stu[i].mail,

stu[i].math,

stu[i].english,

stu[i].computer_C,

stu[i].sum);

printf("\n\n");

break;

}

if(feof(fp))//处理未找到情况

{

system("cls");

printf("无此学生信息\n");

}

}fclose(fp);//关闭文件指针

}

/******************************按姓名查找*****************************************************/

voidFind_name()

{

inti;

charch[10];//声明字符数组以储存查找姓名

Studentstu[50];//声明Student型数组变量

FILE*fp=NULL;//声明文件指针

system("cls");

printf("请输入姓名\n");//提示输入

scanf("%s",ch);//接收输入姓名

fp=fopen("学生信息.txt","rt");//以只读方式打开

for(i=0;!

feof(fp);i++)//循环,以文件指针到末尾结束循环

{

fscanf(fp,"%s%s%d%s%d%s%s%s%d%d%d%d",//从磁盘读入内存

stu[i].name,

stu[i].sex,

&stu[i].age,

stu[i].birthday,

&stu[i].ID,

stu[i].tel,

stu[i].ad,

stu[i].mail,

&stu[i].math,

&stu[i].english,

&stu[i].computer_C,

&stu[i].sum);

if(strcmp(stu[i].name,ch)==0)//判断是否查找学生

{

printf("查找到:

%s性别%s年龄%d出生日期%s学号%d电话%s\n\t地址%s邮箱%s数学%d外语%dC语言%d总分%d\n",//输出查找目标

stu[i].name,

stu[i].sex,

stu[i].age,

stu[i].birthday,

stu[i].ID,

stu[i].tel,

stu[i].ad,

stu[i].mail,

stu[i].math,

stu[i].english,

stu[i].computer_C,

stu[i].sum);

printf("\n\n");

break;

}

if(feof(fp))//处理未找到情况

{

printf("无此学生信息\n");

}

}fclose(fp);//关闭文件指针

}

/*********************************信息统计*****************************************************/

voidInfoStat()

{

intn,m,i,count=0;

charch[15];//声明字符数组保存课程名

Studentstu[60];//声明Student型数组变量

FILE*fp=NULL;//声明文件指针

fp=fopen("学生信息.txt","rt");//以只读方式打开

system("cls");

printf("输入课程名(数学外语C)和分数段(格式:

数学x1-x2)\n");

scanf("%s",ch);//接收输入课程名

scanf("%d-%d",&n,&m);//接收输入分数段

for(i=0;!

feof(fp);i++)//以文件指针到文件末尾结束循环

{

if(fscanf(fp,"%s%s%d%s%d%s%s%s%d%d%d%d\n",//防止读入内存失败

stu[i].name,

stu[i].sex,

&stu[i].age,

stu[i].birthday,

&stu[i].ID,

stu[i].tel,

stu[i].ad,

stu[i].mail,

&stu[i].math,

&stu[i].english,

&stu[i].computer_C,

&stu[i].sum)==0)

printf("读取失败");

count++;

}

fclose(fp);//关闭文件指针

/****************************以下输出查找目标**********************************************/

system("cls");

printf("姓名\t性别\t%s\t总分\n",ch);

for(i=0;i

if(strcmp(ch,"数学")==0&&stu[i].math>=n&&stu[i].math<=m)

{

printf("%s\t%s\t%d\t%d\n",

stu[i].name,

stu[i].sex,

stu[i].math,

stu[i].sum);

}

for(i=0;i

if(strcmp(ch,"外语")==0&&stu[i].english>=n&&stu[i].english<=m)

{

printf("%s\t%s\t%d\t%d\n",

stu[i].name,

stu[i].sex,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1