学生信息管理系统C++.docx
《学生信息管理系统C++.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统C++.docx(23页珍藏版)》请在冰豆网上搜索。
学生信息管理系统C++
【学生成绩管理】
实现功能:
输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。
能实现对学生信息的简单管理。
具体要求:
建立一个4个学生的信息登记表,每个学生的信息包括:
学号,姓名,和3门课程的成绩(FOX,C,ENGLISH)。
程序运行时显示一个简单的菜单,例如:
(1):
信息输入(INPUT)
(2):
总分统计(COUNT)
(3):
总分排序(SORT)
(4):
查询(QUERY)
其中:
(1):
对4个学生的信息进行输入;
(2):
对每个学生的3门课程统计总分;
(3):
对4个学生的总分按降序排序并显示出来;
(4):
查询输入一个学号后,显示出该学生的有关信息;
用的大一做的系统,由保存数据结构的object.cpp主函数main.cpp方法头文件use.h组成
Use.h
#ifndefUSE_H_INCLUDED
#defineUSE_H_INCLUDED
#endif//USE_H_INCLUDED
#include
#include
voidMeau()
{
printf("-------欢迎使用学生信息管理系统-------\n--------------------------------------\n输入指令完成命令:
\n1.打印信息\n2.插入新信息\n3.删除学生信息\n4.查找学生\n5.更改学生信息\n6.排序显示学生信息\n7.文件另存为\ne.保存并退出\n--------------------------------------\n请输入指令\n");
}
voidZhuangBSave()
{
intT=2;
while(T--)
{
system("cls");
Meau();
Sleep(500);
printf("Saveing.\r");
Sleep(500);
printf("Saveing..\r");
Sleep(500);
printf("Saveing...\r");
Sleep(500);
printf("Saveing....\r");
Sleep(500);
printf("Saveing.....\r");
}
}
voidZhuangBExit()
{
intc=6;
while(c--)
{
printf("Saved!
Andheprogramwillbeclosein%dsecond.\r",c);
Sleep(1000);
}
}
Object.h
#include
#include
#include
#include
structscore
{
longlongnum;
chara[10];
intch;
intma;
inten;
intc;
intph;
intsum;
structscore*next;
};
voidswap(score*p1,score*p2)
{
intt;
t=p1->num;
p1->num=p2->num;
p2->num=t;
t=p1->ch;
p1->ch=p2->ch;
p2->ch=t;
t=p1->ma;
p1->ma=p2->ma;
p2->ma=t;
t=p1->en;
p1->en=p2->en;
p2->en=t;
t=p1->c;
p1->c=p2->c;
p2->c=t;
t=p1->ph;
p1->ph=p2->ph;
p2->ph=t;
charc[10];
strcpy(c,p1->a);
strcpy(p1->a,p2->a);
strcpy(p2->a,c);
}
boolcmp0(score*p1,score*p2)
{
returnp1->numnum;
}
boolcmp01(score*p1,score*p2)
{
if(p1->ch==p2->ch)
returnp1->numnum;
returnp1->chch;
}
boolcmp11(score*p1,score*p2)
{
if(p1->ch==p2->ch)
returnp1->numnum;
returnp1->ch>p2->ch;
}
boolcmp02(score*p1,score*p2)
{
if(p1->ma==p2->ma)
returnp1->numnum;
returnp1->mama;
}
boolcmp12(score*p1,score*p2)
{
if(p1->ma==p2->ma)
returnp1->numnum;
returnp1->ma>p2->ma;
}
boolcmp03(score*p1,score*p2)
{
if(p1->en==p2->en)
returnp1->numnum;
returnp1->enen;
}
boolcmp13(score*p1,score*p2)
{
if(p1->en==p2->en)
returnp1->numnum;
returnp1->en>p2->en;
}
boolcmp04(score*p1,score*p2)
{
if(p1->c==p2->c)
returnp1->numnum;
returnp1->cc;
}
boolcmp14(score*p1,score*p2)
{
if(p1->c==p2->c)
returnp1->numnum;
returnp1->c>p2->c;
}
boolcmp05(score*p1,score*p2)
{
if(p1->ph==p2->ph)
returnp1->numnum;
returnp1->phph;
}
boolcmp15(score*p1,score*p2)
{
if(p1->ph==p2->ph)
returnp1->numnum;
returnp1->ph>p2->ph;
}
boolcmp06(score*p1,score*p2)
{
if(p1->sum==p2->sum)
returnp1->numnum;
returnp1->sumsum;
}
boolcmp16(score*p1,score*p2)
{
if(p1->sum==p2->sum)
returnp1->numnum;
returnp1->sum>p2->sum;
}
boolcmp07(score*p1,score*p2)
{
if(strcmp(p1->a,p2->a)==1)
return1;
else
return0;
}
boolcmp17(score*p1,score*p2)
{
if(strcmp(p1->a,p2->a)==1)
return0;
else
return1;
}
voidScoreSort(structscore*head,bool(*cmp)(score*p1,score*p2))
{
structscore*p1,*p2;
for(p1=head;p1!
=NULL;p1=p1->next)
for(p2=p1->next;p2!
=NULL;p2=p2->next)
{
if((*cmp)(p1,p2))
{
swap(p1,p2);
}
}
}
voidScorePri(structscore*head)
{
//intc=0;
//system("cls");
printf("=================================================\n");
structscore*pri;
pri=head;
while(pri!
=NULL)
{
//printf("test%d\n",c++);
printf("学号:
%I64d姓名:
%s\n语文:
%d数学:
%d英语:
%d\nc语言:
%d物理:
%d\n总成绩:
%d平均成绩:
%.2lf\n=================================================\n",pri->num,pri->a,pri->ch,pri->ma,pri->en,pri->c,pri->ph,pri->sum,pri->sum/5.0);
pri=pri->next;
}
printf("End\n");
}
structscore*ScoreIns(structscore*head)
{
structscore*p1,*p2,*newl;
newl=(score*)malloc(sizeof(score));
printf("请依次输入学号,语文,数学,英语,c语言,物理成绩\n");
scanf("%I64d%d%d%d%d%d",&newl->num,&newl->ch,&newl->ma,&newl->en,&newl->c,&newl->ph);
newl->sum=newl->ch+newl->ma+newl->en+newl->c+newl->ph;
printf("输入学生姓名\n");
scanf("%s",newl->a);
if(head==NULL)
{
head=newl;
newl->next=NULL;
returnhead;
}
p1=head;
p2=p1->next;
if(newl->numnum)
{
newl->next=head;
returnnewl;
}
while(p2!
=NULL)
{
if(newl->num>p1->num&&newl->numnum)
{
newl->next=p2;
p1->next=newl;
break;
}
p1=p2;
p2=p1->next;
}
if(p2==NULL)
{
p1->next=newl;
newl->next=NULL;
}
returnhead;
}
voidZhuangBDel()
{
Sleep(500);
printf("删除中.\r");
Sleep(500);
printf("删除中..\r");
Sleep(500);
printf("删除中...\r");
Sleep(500);
printf("删除中....\r");