c语言 学生信息管理系统代码.docx
《c语言 学生信息管理系统代码.docx》由会员分享,可在线阅读,更多相关《c语言 学生信息管理系统代码.docx(18页珍藏版)》请在冰豆网上搜索。
c语言学生信息管理系统代码
#include
#inelude
#inelude
1
#defineFUNC_NEW#defineFUNC_SAVE#defineFUNC_OPEN#defineFUNC_INSERT#defineFUNC_SEARCH
#defineFUNC_CHANGE#defineFUNC_DELETE#defineFUNC_DISPLAY#defineFUNC_CENSUS#defineFUNGEXIT
/*建立新的班级学生数据*/
2/*把数据写入文件并保存*/
3/*打开文件并从里读入数据*/
4/*插入一个学生的信息*/
5/*查找学生的信息*/
6/*修改学生的信息*/
7/*删除学生的信息*/
8/*展示学生的信息*/
9
*/
/*分段统计学生总分人数并打印
10/*结束程序*/
#defineFUNC_CLOSE10
#defineMAX_NUM45
#defineMAX_NAME_STRLEN30
voidDoSave();voidDoOpen();voidDoNew();voidDoInsert();voidDoDisplay();voidDoDelete();voidDoSearch();voidDoChange();voidDocensus();
voidDoExit();
//用户定义的类型声明
struct_student{
intid;
charname[MAX_NAME_STRLEN];
intMath;
intEnglish;
intChinese;
intPhysics;
intChemistry;
floataverScore;intsum;
};
typedefstruct_studentSTUD;
struct_studTb{
STUDstud[MAX_NUM];intlength;
};
//全局变量的定义
struct_studTbsi;
charstrClassld[15];
intmain()
{
intiUserSelect;
intMainMenu();
system("color20");
for(;;)
{
iUserSelect=MainMenu();if(FUNC_CLOSE==iUserSelect)break;
switch(iUserSelect)
{
caseFUNC_NEW:
DoNew();break;
caseFUNC_OPEN:
DoSave();break
;caseFUNC_SAVE:
DoOpen();break;
caseFUNC_INSERT:
DoInsert();break;
caseFUNC_SEARCH:
DoSearch();break;
caseFUNC_CHANGE:
DoChange();break;
caseFUNC_DELETE:
DoDelete();break;
caseFUNC_DISPLAY:
DoDisplay();break;
caseFUNC_CENSUS:
Docensus();break;
caseFUNC_CLOSE:
DoExit();
break;
default:
break;
}
}
}intMainMenu()
{
intiUserSelect;
system("cls");
printf("
\n”);
printf("|
***********^欢^迎^来至y^学^生^管2理系^统**********
|\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("|
******9>
分段统计学生信息******
\n");
printf("|
******10>
退出学生系统******
\n");
printf("|*****Pleaseselectafunctionid(1..9)toexecute:
*****|\n");
printf(”\n");
scanf("%d",&iUserSelect);
if(iUserSelect<1&&iUserSelect>9)printf("请正确输入指令\n");
else
returniUserSelect;
}voidDoNew()
{
intnumber,i;system("cls");
printf("\t\tFUNCION:
新建一个班级:
\n");
printf("\t\t请输入班级序号(string):
");
scanf("%4d%4d%4d%4d%4d",\
&si.stud[i].Math,
&si.stud[i].English,
&si.stud[i].Chinese,
&si.stud[i].Physics,
&si.stud[i].Chemistry);
si.length=number;
//保存学生信息voidDoSave(){
FILE*fp;
inti;
system("cls");
if((fp=fopen("stu-list.txt","wb"))==NULL)
{
printf("打开文件失败\n");
return;
}
for(i=0;i{
if(fwrite(&si.stud[i],sizeof(si),1,fp)==1)printf("保存成功\n");
}
fclose(fp);
}
//开文件读取学生信息
voidDoOpen()
{
FILE*fp;
inti=0;
system("cls");
if((fp=fopen("stu-list.txt","ab+"))==NULL)
{
printf("打开文件失败\n”);return;
while(!
feof(fp))
{
if(fread(&si.stud[i],sizeof(si),1,fp)==1)
i++;
}
fclose(fp);
for(i=0;iprintf("学号:
%d姓名:
%s数学:
%d英语:
%d语文:
%d物理:
%d化
学:
%d\n",
si.stud[i].id,si.stud[i].name,si.stud[i].Math,si.stud[i].English,si.stud[i].Chinese,si.stud[i].Physics,si.stud[i].Chemistry);
}
//插入学生信息
voidDoinsert()
{
FILE*fp;
intj,INid,sid;
intm=0,i=0,k=0;
system("cls");
if((fp=fopen("stu-list.txt","ab+"))==NULL){printf("\t文件打开失败!
");
getchar();
return;
}
while(!
feof(fp)){
if(fread(&si.stud[i],sizeof(si),1,fp)==1)m++;
i++;}
/*if(m==0)
{
printf("没有学生记录!
");fclose(fp);
return;
}*/
printf("\t请输入要插入信息在那个学号之后:
\n");
scanf("%d",&INid);
for(i=0;iif(INid==si.stud[i].id)
break;
for(j=m-1;j>i;j--)
si.stud[j+1]=si.stud[j];
stare1:
printf("\t请输入要插入的学生的信息:
\n");
printf("\t请输入要插入的学号");
scanf("%d",&sid);
while(k{
if(si.stud[k].id==sid)
{
printf("\t该学号已经存在,不允许重复插入!
\n”);
gotostare1;
}
k++;}
si.stud[i+1].id=sid;
printf("\t请输入你想输入的姓名”);
scanf("%s",si.stud[i+1].name);
printf("MathEnglishChinesePhysicsChemistry'n");
scanf("%d%d%d%d%d",
&si.stud[i+1].Math,
&si.stud[i+1].English,
&si.stud[i+1].Chinese,
&si.stud[i+1].Physics,
&si.stud[i+1].Chemistry);
si.length=si.length+1;
DoSave();
}
//在文件中查找学生信息,支持姓名学号查找
voidDoSearch()
{
inti=0,choice,Sid;
charsname[MAX_NAME_STRLEN];
intflag=0;
system("cls");
DoOpen();
printf("\n1按姓名查找:
\n2按学号查找:
”);scanf("%d",&choice);
switch(choice)
{
case1:
printf("请你输入要查找的姓名");
scanf("%s",sname);
while(i{
if(strcmp(si.stud[i].name’sname)==0)
{
flag=1;
printf("学号:
%d姓名:
%s数学成绩:
%d英语成绩:
%d
语文成绩:
%d物理成绩:
%d化学成绩:
%d\n",
si.stud[i].id,
si.stud[i].name,
si.stud[i].Math,
si.stud[i].English,
si.stu