C++课程设计 简单成绩管理系统Word格式.docx
《C++课程设计 简单成绩管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C++课程设计 简单成绩管理系统Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
)
2、此设计所要求具有的功能及其分析
(1)、系统主要的功能菜单
1录入学生成绩
2修改学生成绩
3统计学生成绩
4查询学生成绩
5显示学生成绩
0安全退出系统
(2)、各个菜单选项的功能分析
录入学生成绩需要分别录入学号(若重复,则有提示学号已存在)、姓名、性
别、年龄、学院、年级、和专业及三科的成绩。
修改学生信息必须是在已录入的学生信息中才可以进行修改,修改的范围可以是所录入的任一部分。
统计学生成绩是对用户所录入的信息进行简单的分析及保存其统计结果,用户可以随时调出其进行查看。
可以通过查询对已录入的学生信息进行调出查询。
显示学生成绩可以对已经录入的学生信息进行直观的审视。
安全退出系统可以让操作者安全退出系统,保护系统内部信息不被丢失及损坏。
三、各个功能的详细分析
1、录入学生成绩
分别录入的是学号(若重复,则有提示学号已存在)、姓名、性别、年龄、学院、年级、和专业及三科的成绩及录入信息截图。
具体程序如下:
Student*Next;
voidInput()
{
strcpy(Id,q);
cout<
<
"
请输入学生的姓名:
endl;
cin>
>
name;
请输入学生的性别:
sex;
请输入学生的年龄:
old;
请输入学生所读学院:
school;
请输入学生的年级:
nj;
请输入学生的专业:
zy;
请输入C++课程的成绩:
Cnum;
请输入大学英语的成绩:
Mnum;
请输入模拟电子技术的成绩:
Enum;
sum=Cnum+Mnum+Enum;
}
voidReadFile(istream&
in)
{
in>
name>
Id>
sex>
old>
school>
nj>
zy>
Cnum>
Mnum>
Enum>
sum;
2、修改学生成绩
主要是对输入的学生信息进行修改,则修改程序如下:
voidStudentmassage:
:
ModifyItem()//修改信息
{
charname[20];
Student*p=NULL;
\t\t请输入要修改的人的姓名:
;
cin>
if(p=FindItem(name))
cout<
\t\t已找到学生的信息,请输入新的信息!
p->
Next->
Input();
修改成功!
输入任意字符!
继续……"
getch();
}
else
\t\t没有找到!
在系统中,对输入的学生成绩进行统计分析,及其排序问题等的实现。
其部分程序如下:
Sort()//对当前链表进行排序
{
cout<
Sorting..."
Student*p=NULL,*p1=NULL,*k=NULL;
intn=Studentmassage:
ListCount();
if(n<
2)
return;
for(p=Head->
Next;
p!
=End;
p=p->
Next)
for(k=p->
k!
k=k->
Next)
{
if(p->
sum>
k->
sum)
{
Studentmassage:
Swap(p,k);
}
}
cout<
排序完成!
}
4、查询学生成绩
若要对输入的学生成绩进行更直观的观察,该系统提供了两种便捷的查询方式,即按照学生姓名和按照学生学号进行查询,且两种查询方式的程序大致相同,查询的代码及查询截图,如下:
Find1()查找函数
charname[20],Id[10];
intx;
\n\t\t*********************************\n"
\t\t※1.按学生的姓名查找\n\t\t※2.按学生学号查找"
\n\t\t*********************************\n请选择:
x;
switch(x)
case1:
cout<
\t\t请输入要查找的学生的姓名:
//按姓名查询
if(p=FindItem(name))
{
p->
Show();
cout<
getch();
else
\t\t没有找到该姓名的学生!
'
\n'
}break;
case2:
//按学号查询
\t\t请输入要查找的学生的学号:
Id;
if(p=FindID(Id))
p->
cout<
getch();
else
\t\t没有找到该学好的学生!
getch();
}break;
}
5、删除学生成绩
对输入的学生信息中,部分存在不足之处,为了保障有足够的空间储存更多的信息,不必要的当然要及时删除,此系统删除程序如下:
RemoveItem()//删除信息
Student*p=NULL,*temp=NULL;
\t\t请输入要删除的学生的姓名:
temp=p->
Next=p->
deletetemp;
\t\t删除成功!
6显示学生信息
当然,我们对输入的学生成绩等信息为了在查询或是在其他情况下更直观的观察到,当然需要显示功能,其运行结果和查询结果截图、程序具体如下:
voidShow()
学号:
Id<
姓名:
name<
性别:
sex<
年龄:
old<
学院:
school<
年级:
nj<
专业:
zy<
C++程序:
Cnum<
大学英语:
Mnum<
模拟电子技术:
Enum<
总成绩:
sum<
平均成绩:
sum/3<
7、安全退出系统
为了保证输入的学生信息的完整,我们还设置添加了安全退出系统这个功能,在执行此程序的时候,也对输入的信息进行了保存,保存程序如下:
Save()
out.open("
sort.txt"
);
for(Student*p=Head->
out<
p->
\t"
<
out.close();
8、其他部分要求程序解析
(1)学号不可重复问题
学号不能重复,则要求在输入学生信息是不能与已保存的学生信息中的学号相同,程序及运行结果截图如下:
Find2()
\t\t请输入学生的学号:
strcpy(q,Id);
while(p=FindID(Id))
\n学号已经存在"
-------------------------------------------"
\t\t请重新输入学生的学号:
在其中find
(2)是我们重新定义的,它的主要功能是是否可以再已存在的Id中(即学号)找到对应的Id,若找到的话,则会提示“学号已存在,请重新输入学号。
”。
需要我们重新输入不同的学号,方可执行下一步。
实现此功能主要是while循环的使用及拷贝函数的使用。
(2)实现不及格科目的显示
在此系统的voidshow()中,根据要求,我们设计了实现输入成绩小于60的给予显示,显示哪个为不及格科目,这之上的是显示学生的各类信息,具体是第6-------显示学生信息部分。
主要是if语句的应用。
程序如下:
Voidshow()
if(Cnum<
60)cout<
C++课程不及格."
if(Mnum<
大学英语不及格."
if(Enum<
模拟电子技术基础不及格."
四、报告总结
这次课程设计中,使我收获很多很多,不管是知识还是团队合作上都有很大的收获。
第一方面,使我在一些薄弱环节得到了很多的巩固,复习了一些容易忘记的知识点,例如一些循环语句……;
第二方面,我通过上网查找资料,了解到了许多课外的知识,但是有些并没有做成功,例如:
在输入信息的性别上,只限制“男”或“女”,但是,这个我并没有设计成功,失败了,其中在输入还可以,可是显示的时候存在很多问题,与原先输入的信息完全不符。
同时,我也体会到自己的不足,还有很多知识等着我去学习和总结。
但这次课程设计中,尽管有许多的失败,但我坚信,坚持和努力,可以迈向成功。