C语言学生管理系统程序源代码.docx
- 文档编号:22795684
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:27
- 大小:20.67KB
C语言学生管理系统程序源代码.docx
《C语言学生管理系统程序源代码.docx》由会员分享,可在线阅读,更多相关《C语言学生管理系统程序源代码.docx(27页珍藏版)》请在冰豆网上搜索。
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)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 管理 系统 程序 源代码