C语言学生管理系统程序源代码.docx

上传人:b****2 文档编号:2011756 上传时间:2023-05-02 格式:DOCX 页数:27 大小:20.67KB
下载 相关 举报
C语言学生管理系统程序源代码.docx_第1页
第1页 / 共27页
C语言学生管理系统程序源代码.docx_第2页
第2页 / 共27页
C语言学生管理系统程序源代码.docx_第3页
第3页 / 共27页
C语言学生管理系统程序源代码.docx_第4页
第4页 / 共27页
C语言学生管理系统程序源代码.docx_第5页
第5页 / 共27页
C语言学生管理系统程序源代码.docx_第6页
第6页 / 共27页
C语言学生管理系统程序源代码.docx_第7页
第7页 / 共27页
C语言学生管理系统程序源代码.docx_第8页
第8页 / 共27页
C语言学生管理系统程序源代码.docx_第9页
第9页 / 共27页
C语言学生管理系统程序源代码.docx_第10页
第10页 / 共27页
C语言学生管理系统程序源代码.docx_第11页
第11页 / 共27页
C语言学生管理系统程序源代码.docx_第12页
第12页 / 共27页
C语言学生管理系统程序源代码.docx_第13页
第13页 / 共27页
C语言学生管理系统程序源代码.docx_第14页
第14页 / 共27页
C语言学生管理系统程序源代码.docx_第15页
第15页 / 共27页
C语言学生管理系统程序源代码.docx_第16页
第16页 / 共27页
C语言学生管理系统程序源代码.docx_第17页
第17页 / 共27页
C语言学生管理系统程序源代码.docx_第18页
第18页 / 共27页
C语言学生管理系统程序源代码.docx_第19页
第19页 / 共27页
C语言学生管理系统程序源代码.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言学生管理系统程序源代码.docx

《C语言学生管理系统程序源代码.docx》由会员分享,可在线阅读,更多相关《C语言学生管理系统程序源代码.docx(27页珍藏版)》请在冰点文库上搜索。

C语言学生管理系统程序源代码.docx

C语言学生管理系统程序源代码

#include"stdafx.h"

#include

#include"malloc.h"

#include

#include

#include

 

typedefstructStudent

{

intID;

charname[16];

intage;

chardepartment[32];

floatchinese;

floatenglish;

floatmatch;

floatave;

floatsum;

}stu;

intstudentNum;//全局变量

stu*pStu=NULL;//全局变量

stu*pStu1=NULL;//全局变量

voidmenu();

voidInit();

voidsum();

voidinput();

voidoutput();

voidsort();

voidsort_sum();

voidsort_chinese();

voidsort_english();

voidsort_match();

voidsort_id();

voidincrease();

voidfind();

intfind_id(intchoice);

intfind_name();

voiddeleteStudent();

voidsave();

voidupdate();

int_tmain(intargc,_TCHAR*argv[])

{

intchoice;

Init();

intk=1;

intkey=-1;

while(k)

{

menu();

scanf("%d",&choice);

switch(choice)

{

case1:

input();break;

case2:

output();break;

case3:

sort();break;

case4:

increase();break;

case5:

deleteStudent();break;

case6:

find();break;

case7:

save();break;

case8:

update();break;

}

printf("\n是否继续主页面操作:

继续,退出\n");

scanf("%d",&key);

if(2==key)

{

k=0;

}

}

if(NULL!

=pStu)

{

free(pStu);

}

return0;

}

 

voidmenu()

{

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

printf("*************welcometostudents'achievementmanagementsystem**************\n");

printf("1.inputstudents'information\n");

printf("2.outputstudents'information\n");

printf("3.sortstudents'information\n");

printf("4.increasestudents'information\n");

printf("5.deletestudents'information\n");

printf("6.findstudents'information\n");

printf("7.savestudents'information\n");

printf("8.updatestudents'information\n");

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

}

voidinput()

{

inti;

intstudentID;

intsaveChoice=0;

FILE*pStudentFile=NULL;

printf("请输入学生的个数\n");

scanf("%d",&studentNum);

if(NULL!

=pStu)

{

free(pStu);

}

pStu=(stu*)malloc(sizeof(stu)*studentNum);

if(NULL==pStu)

{

printf("申请堆内存失败");

assert(0);

return;

}

pStu1=pStu;

printf("pleaseenterstudents'information:

\n");

for(i=0;i

{

studentID=i+1;

printf("输入第%d个学生信息:

\n",studentID);

printf("学号:

\n");

scanf("%d",&(pStu+i)->ID);

printf("姓名:

\n");

scanf("%s",(pStu+i)->name);

printf("年龄:

\n");

scanf("%d",&(pStu+i)->age);

printf("所在院系:

\n");

scanf("%s",(pStu+i)->department);

printf("语文成绩:

\n");

scanf("%f",&(pStu+i)->chinese);

printf("英语成绩:

\n");

scanf("%f",&(pStu+i)->english);

printf("数学成绩:

\n");

scanf("%f",&(pStu+i)->match);

}

sum();

printf("\n是否现在存储学生信息:

1存储2不存储\n");

scanf("%d",&saveChoice);

if(1==saveChoice)

{

save();

}

}

voidsum()

{

inti;

for(i=0;i

{

(pStu+i)->sum=((pStu+i)->chinese+(pStu+i)->english+(pStu+i)->match);

(pStu+i)->ave=(pStu+i)->sum/3;

}

}

voidoutput()

{

inti;

if(NULL==pStu)

{

printf("还没有输入学生信息,无法显示学生信息\n");

return;

}

printf("输入学生信息如下:

\n");

for(i=0;i

{

printf("***第%d个学生信息:

***\n",i+1);

printf("学号:

%d姓名:

%s年龄:

%d所在院系:

%s\t成绩(语数外):

%4.2f%4.2f%4.2f总成绩:

%4.2f平均成绩:

%4.2f\n"

(pStu+i)->ID,(pStu+i)->name,(pStu+i)->age,(pStu+i)->department,(pStu+i)->chinese,

(pStu+i)->english,(pStu+i)->match,(pStu+i)->sum,(pStu+i)->ave

);

}

}

voidsort()

{

intchoice;

intmm=1;

intchoice1;

if(NULL==pStu)

{

printf("还没有输入学生信息,无法排序学生信息\n");

return;

}

while(mm)

{

printf("1.sortsum\n");

printf("2.sortchinese\n");

printf("3.sortenglish\n");

printf("4.sortmath\n");

printf("请选择:

\n");

scanf("%d",&choice);

switch(choice)

{

case1:

sort_sum();break;

case2:

sort_chinese();break;

case3:

sort_english();break;

case4:

sort_match();break;

}

printf("\n是否继续选择其他排序输出:

选择2退出");

scanf("%d",&choice1);

if(2==choice1)

{

mm=0;

}

}

}

voidsort_id()

{

inti=0;

intj=0;

stustuTemp={0};

sum();

for(i=0;i

{

for(j=0;j

{

if((pStu+j)->ID>(pStu+j+1)->ID)

{

stuTemp=*(pStu+j);

*(pStu+j)=*(pStu+j+1);

*(pStu+j+1)=stuTemp;

}

}

}

}

voidsort_sum()

{

inti=0;

intj=0;

stustuTemp={0};

sum();

stu*pTemp=NULL;

pTemp=(stu*)malloc(sizeof(stu)*studentNum);

memcpy(pTemp,pStu,sizeof(stu)*studentNum);

for(i=0;i

{

for(j=0;j

{

if((pTemp+j)->sum>(pTemp+j+1)->sum)

{

stuTemp=*(pTemp+j);

*(pTemp+j)=*(pTemp+j+1);

*(pTemp+j+1)=stuTemp;

}

}

}

printf("按总成绩的从小到大排序输出如下:

\n");

for(i=0;i

{

printf("学号:

%d姓名:

%s年龄:

%d所在院系:

%s\t成绩(语数外):

%4.2f%4.2f%4.2f总成绩:

%4.2f平均成绩:

%4.2f\n"

(pTemp+i)->ID,(pTemp+i)->name,(pTemp+i)->age,(pTemp+i)->department,(pTemp+i)->chinese,

(pTemp+i)->english,(pTemp+i)->match,(pTemp+i)->sum,(pTemp+i)->ave

);

}

if(NULL!

=pTemp)

{

free(pTemp);

}

}

voidsort_chinese()

{

inti=0;

intj=0;

stustuTemp={0};

sum();

stu*pTemp=NULL;

pTemp=(stu*)malloc(sizeof(stu)*studentNum);

memcpy(pTemp,pStu,sizeof(stu)*studentNum);

for(i=0;i

{

for(j=0;j

{

if((pTemp+j)->chinese>(pTemp+j+1)->chinese)

{

stuTemp=*(pTemp+j);

*(pTemp+j)=*(pTemp+j+1);

*(pTemp+j+1)=stuTemp;

}

}

}

printf("按语文成绩的从小到大排序输出如下:

\n");

for(i=0;i

{

printf("学号:

%d姓名:

%s年龄:

%d所在院系:

%s\t成绩(语数外):

%4.2f%4.2f%4.2f总成绩:

%4.2f平均成绩:

%4.2f\n"

(pTemp+i)->ID,(pTemp+i)->name,(pTemp+i)->age,(pTemp+i)->department,(pTemp+i)->chinese,

(pTemp+i)->english,(pTemp+i)->match,(pTemp+i)->sum,(pTemp+i)->ave

);

}

if(NULL!

=pTemp)

{

free(pTemp);

}

}

voidsort_english()

{

inti=0;

intj=0;

stustuTemp={0};

sum();

stu*pTemp=NULL;

pTemp=(stu*)malloc(sizeof(stu)*studentNum);

if(NULL==pTemp)

{

return;

}

memcpy(pTemp,pStu,sizeof(stu)*studentNum);

for(i=0;i

{

for(j=0;j

{

if((pTemp+j)->english>(pTemp+j+1)->english)

{

stuTemp=*(pTemp+j);

*(pTemp+j)=*(pTemp+j+1);

*(pTemp+j+1)=stuTemp;

}

}

}

printf("按英语成绩的从小到大排序输出如下:

\n");

for(i=0;i

{

printf("学号:

%d姓名:

%s年龄:

%d所在院系:

%s\t成绩(语数外):

%4.2f%4.2f%4.2f总成绩:

%4.2f平均成绩:

%4.2f\n"

(pTemp+i)->ID,(pTemp+i)->name,(pTemp+i)->age,(pTemp+i)->department,(pTemp+i)->chinese,

(pTemp+i)->english,(pTemp+i)->match,(pTemp+i)->sum,(pTemp+i)->ave

);

}

if(NULL!

=pTemp)

{

free(pTemp);

}

}

voidsort_match()

{

inti=0;

intj=0;

stustuTemp={0};

sum();

stu*pTemp=NULL;

pTemp=(stu*)malloc(sizeof(stu)*studentNum);

if(NULL==pTemp)

{

return;

}

memcpy(pTemp,pStu,sizeof(stu)*studentNum);

for(i=0;i

{

for(j=0;j

{

if((pTemp+j)->match>(pTemp+j+1)->match)

{

stuTemp=*(pTemp+j);

*(pTemp+j)=*(pTemp+j+1);

*(pTemp+j+1)=stuTemp;

}

}

}

printf("按数学成绩的从小到大排序输出如下:

\n");

for(i=0;i

{

printf("学号:

%d姓名:

%s年龄:

%d所在院系:

%s\t成绩(语数外):

%4.2f%4.2f%4.2f总成绩:

%4.2f平均成绩:

%4.2f\n"

(pTemp+i)->ID,(pTemp+i)->name,(pTemp+i)->age,(pTemp+i)->department,(pTemp+i)->chinese,

(pTemp+i)->english,(pTemp+i)->match,(pTemp+i)->sum,(pTemp+i)->ave

);

}

if(NULL!

=pTemp)

{

free(pTemp);

}

}

voidincrease()

{

intaddStudentNum=0;

intstudentID;

inti=0;

intstorStudentNum=studentNum;

stu*pAddStudent=NULL;

stu*pNewStudentSum=NULL;

intsaveChoice=0;

printf("输入你要增加的学生的个数:

\n");

scanf("%d",&addStudentNum);

pAddStudent=(stu*)malloc(sizeof(stu)*addStudentNum);

if(NULL==pAddStudent)

{

return;

}

printf("pleaseenterstudents'information:

\n");

for(i=0;i

{

studentID=i+1;

printf("输入增加的第%d个学生信息:

\n",studentID);

printf("学号:

\n");

scanf("%d",&(pAddStudent+i)->ID);

printf("姓名:

\n");

scanf("%s",(pAddStudent+i)->name);

printf("年龄:

\n");

scanf("%d",&(pAddStudent+i)->age);

printf("所在院系:

\n");

scanf("%s",(pAddStudent+i)->department);

printf("语文成绩:

\n");

scanf("%f",&(pAddStudent+i)->chinese);

printf("英语成绩:

\n");

scanf("%f",&(pAddStudent+i)->english);

printf("数学成绩:

\n");

scanf("%f",&(pStu+i)->match);

(pAddStudent+i)->sum=((pAddStudent+i)->chinese+(pAddStudent+i)->english+(pAddStudent+i)->match);

(pAddStudent+i)->ave=(pAddStudent+i)->sum/3;

}

studentNum+=addStudentNum;

pNewStudentSum=(stu*)malloc(sizeof(stu)*studentNum);

if(NULL==pNewStudentSum)

{

return;

}

memcpy(pNewStudentSum,pStu,sizeof(stu)*storStudentNum);

memcpy(pNewStudentSum+storStudentNum,pAddStudent,sizeof(stu)*addStudentNum);

if(NULL!

=pAddStudent)

{

free(pAddStudent);

pAddStudent=NULL;

}

if(NULL!

=pStu)

{

free(pStu);

pStu=NULL;

}

pStu=pNewStudentSum;

printf("\n是否存储新增的学生信息:

1存储2不存储\n");

scanf("%d",&saveChoice);

if(1==saveChoice)

{

save();

}

}

voidfind()

{

intmm=1;

intchoice;

intkk=-1;

inttemp=0;

while(mm)

{

printf("********************查询功能*******************\n");

printf("*****1姓名查找\n");

printf("*****2学号查找\n");

printf("\n请选择:

\n");

scanf("%d",&choice);

switch(choice)

{

case1:

find_name();break;

case2:

find_id(temp);break;

}

printf("\n是否退出查找界面:

继续2退出\n");

scanf("%d",&kk);

if(2==kk)

{

mm=0;

}

}

}

intfind_id(intchoice)

{

sort_id();

intid=-1;

inti=0;

intleft=0;

intright=studentNum;

intmiddle=0;

if(0==choice)

{

printf("\n输入你要查找的学生的学号");

}

if(1==choice)

{

printf("\n输入你要删除的学生的学号\n");

}

if(2==choice)

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2