学生信息管理系统C++.docx
《学生信息管理系统C++.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统C++.docx(48页珍藏版)》请在冰豆网上搜索。
学生信息管理系统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
word专业资料
.
#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--)
word专业资料
.
{
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--)
{
word专业资料
.
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;
};
word专业资料
.
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;
word专业资料
.
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;
word专业资料
.
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)
{
word专业资料
.
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;
}
word专业资料
.
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;
word专业资料
.
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);
}
}
word专业资料
.
}
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");
}
word专业资料
.
structscore*ScoreIns(structscore*head)
{
structscore*p1,*p2,*newl;