自C++课程设计学生成绩管理系统.docx
《自C++课程设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《自C++课程设计学生成绩管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
![自C++课程设计学生成绩管理系统.docx](https://file1.bdocx.com/fileroot1/2022-12/12/95b8a556-50b6-4f69-8da0-8547f0ca213e/95b8a556-50b6-4f69-8da0-8547f0ca213e1.gif)
自C++课程设计学生成绩管理系统
C++程序设计课程设计说明书
题目:
学生成绩管理信息系统设计与开发
学生姓名:
张 三
学号:
2009120101xx
院(系):
理学院
专 业:
数学与应用数学
指导教师:
刘海峰
2011 年6月 15日
陕 西科 技大学
C++程序设计课程设计任务书
理学院数学与应用数学 专业091 班级姓名:
张三学号:
2009120101xx .
题目:
学生成绩管理信息系统设计与开发
课程设计从2011年 5月10日起到 2011 年6月 15日
1、课程设计的内容和要求(包括原始数据、技术要求、工作要求等):
1)、设计内容:
制作学生成绩管理系统,实现数据录入、数据删除、数据浏览以及数据查询等功能。
2)、课程设计的要求:
包括系统设计要求,开发环境要求,技术文档要求三部分。
系统设计要求:
a)学生成绩管理系统中不同使用单位(用户)的学生人数事先无法确定.
b)该学生成绩管理系统要求有学生成绩录入,查询,修改,删除,保存文件.
c)系统使用文字菜单,用户通过选择菜单项的编号,实现系统对子模块的调用.也可用windows界面下的菜单栏、弹出式菜单、下拉菜单。
d)每个班级每门课程的成绩可以从学生的成绩总表提取出子表并存储成一个文本文件,以便在windows的notebook或者Microsoftword下打印,规定该文本文件名由班级号和课程名拼音字符串构成.输入班级号和课程名字符串后自动生成文件名.如1班,语文,则文件名为:
c1yuwen.txt.
e)每个学生学习的课程有语文,英语,数学,物理,化学,生物.
f)学生的成绩总表结构约定为(学号,姓名,课程名,平时成绩,期末成绩,总评成绩).总评成绩由程序自动计算,总评成绩=平时成绩﹡30%+期末成绩﹡70%.
g)学号是一个9位整数构成的字符串, 学号的编码规则:
入学年份+在读年级+在读班级+班内编号;入学年份用4位整数构成字符串,如2003年入学则表示为:
”2003”;在读年级用1位整数构成字符串,如正在1年级读书则表示为:
”1”;在读班级用2位整数构成字符串,如正在1班读书则表示为:
”01”;班内编号用2位整数构成字符串,如在班内编号为23号则表示为:
”23”
开发环境要求:
软件环境:
windows98/windowsXP/windows2000,VisualC++
硬件环境:
计算机(Pen4CPU,256MRAM,60G以上硬盘,输入输出设备)
技术文档要求:
按照软件工程技术文档编写要求进行。
要求流程图绘制规范,模块功能描述清晰,数据字典齐全。
2、对课程设计成果的要求〔包括图表、实物等硬件要求〕:
1)提交课程设计报告
按照系统设计要求,用Visual C++设计和开发一个应用程序—学生成绩管理信息系统,提交由需求分析;系统设计说明(包括主菜单、子菜单、模块功能简介、数据字典、系统结构图);系统技术文档 (包括系统各模块主要流程图,软件总体测试方案与测试记录、局部测试方案与测试记录、软件调试和修改记录、测试结论、运行情况记录),系统使用说明书,源程序代码为附录构成的课程设计报告。
2)课程设计报告版式要求
打印版面要求:
A4纸,页边距:
上2cm,下2cm,左2.5cm、右2cm;字体:
正文宋体、小四号;行距:
固定值20;页眉1.5cm ,页脚1.75cm;页码位于页脚居中打印;奇数页页眉“C++程序设计课程设计”,偶数页页眉“学生成绩管理信息系统设计与开发”,页眉宋体小5号;段落及层次要求:
每节标题以四号黑体左起打印(段前段后各0.5行),节下为小节,以小四号黑体左起打印(段前段后各0.5行)。
换行后以小四号宋体打印正文。
章节、小节分别以1、1.1、1.1.1依次标出,空一字符后接各部分的标题。
当论文结构复杂,小节以下的标题,左起顶格书写,编号依次用
(1)、
(2)……或1)、2)……顺序表示。
字体为小四号宋体。
对条文内容采用分行并叙时,其编号用(a)、(b)……或a)、b)……顺序表示,如果编号及其后内容新起一个段落,则编号前空两个中文字符。
3)设计报告装订顺序与规范
封面
C++程序设计课程设计任务书
C++程序设计设计课程设计报告正文
设计体会及今后的改进意见
参考文献(资料)
左边缘装订
3、课程设计工作进度计划:
时间
设计任务及要求
第13周
需求分析分析、功能分解并深入学习动态链表知识
第14周
编写程序代码(教师指导1周)
第15周
调试、完善、编写课程设计报告
指导教师:
日期:
教研室主任:
日期:
1、实验目的………………………………………………………………………………………1
2、实验要求………………………………………………………………………………………2
3、系统设计要求…………………………………………………………………………………3
4、开发环境要求…………………………………………………………………………………4
5、技术文档要求…………………………………………………………………………………5
6、实验内容………………………………………………………………………………………6
7、实验具体方案…………………………………………………………………………………7
8、需求分析………………………………………………………………………………………8
9、系统设计说明…………………………………………………………………………………9
10、系统技术文档………………………………………………………………………………11
11、系统使用说明书……………………………………………………………………………20
12、设计体会及今后的改进意见………………………………………………………………21
附录源程序代码……………………………………………………………………………22
参考文献 ………………………………………………………………………………………29
1、实验目的:
学会用C++程序设计来实现学生成绩管理信息系统。
2、实验要求:
包括系统设计要求,开发环境要求,技术文档要求三部分。
3、系统设计要求:
h)学生成绩管理系统中不同使用单位(用户)的学生人数事先无法确定.
i)该学生成绩管理系统要求有学生成绩录入,查询,修改,删除,保存文件.
j)系统使用文字菜单,用户通过选择菜单项的编号,实现系统对子模块的调用.也可用windows界面下的菜单栏、弹出式菜单、下拉菜单。
k)每个班级每门课程的成绩可以从学生的成绩总表提取出子表并存储成一个文本文件,以便在windows的notebook或者Microsoftword下打印,规定该文本文件名由班级号和课程名拼音字符串构成.输入班级号和课程名字符串后自动生成文件名.如1班,语文,则文件名为:
c1yuwen.txt.
l)每个学生学习的课程有语文,英语,数学,物理,化学,生物.
m)学生的成绩总表结构约定为(学号,姓名,课程名,平时成绩,期末成绩,总评成绩).总评成绩由程序自动计算,总评成绩=平时成绩﹡30%+期末成绩﹡70%.
n)学号是一个9位整数构成的字符串, 学号的编码规则:
入学年份+在读年级+在读班级+班内编号;入学年份用4位整数构成字符串,如2003年入学则表示为:
”2003”;在读年级用1位整数构成字符串,如正在1年级读书则表示为:
”1”;在读班级用2位整数构成字符串,如正在1班读书则表示为:
”01”;班内编号用2位整数构成字符串,如在班内编号为23号则表示为:
”23”
4、开发环境要求:
软件环境:
windows98/windowsXP/windows2000,Visual C++
硬件环境:
计算机(Pen4CPU,256MRAM,60G以上硬盘,输入输出设备)
5、技术文档要求:
按照软件工程技术文档编写要求进行。
要求流程图绘制规范,模块功能描述清晰,数据字典齐全。
6、实验内容:
制作学生成绩管理系统,实现数据录入、数据删除、数据浏览以及数据查询等功能。
7、实验具体方案:
按照系统设计要求,用VisualC++设计和开发一个应用程序—学生成绩管理信息系统,提交由需求分析;系统设计说明(包括主菜单、子菜单、模块功能简介、数据字典、系统结构图);系统技术文档(包括系统各模块主要流程图,软件总体测试方案与测试记录、局部测试方案与测试记录、软件调试和修改记录、测试结论、运行情况记录),系统使用说明书,源程序代码为附录构成的课程设计报告。
8、需求分析:
人工管理成绩档案具有效率低、查找麻烦、可靠性不高、保密性低等因素。
因此开发出一个适用于大中专院校以及其它高校通用的学生成绩管理系统是必要的。
所以需要用C++程序设计来制作学生成绩管理系统,实现数据录入、数据删除、数据浏览以及数据查询等功能。
9、系统设计说明:
包括主菜单、子菜单、模块功能简介、数据字典、系统结构图。
9.1、主菜单:
进入学生信息管理系统后,会显示当前时间,并且要求输入密码进行访问,管理者的初始密码为:
100000。
输入密码后,如果错误,则系统显示“对不起,您的密码输入可能错误,请重输!
”;如果输入正确,则进入系统。
该系统分为录入学生信息,查找学生信息,修改学生信息,删除学生信息,退出五个部分。
9.2、子菜单:
分为五个部分来承担以上五个内容。
9.3、模块功能简介:
9.3.1、学生成绩输入模块:
主要功能是输入学生成绩的操作。
9.3.2、学生成绩的查询模块:
主要功能是按照用户的要求查询学生的成绩。
其中用户可以选择查询学生的各项成绩。
9.3.3、学生成绩修改模块:
主要功能是按照用户的要求修改学生的成绩。
9.3.4、学生成绩删除模块:
用户可以输入要删除学生的学号来实现删除学生的信息。
9.3.5、退出模块:
用户可以退出学生信息管理系统。
9.4、数据字典:
Iostream输入输出流
String 字符串
9.5、系统结构图:
登陆界面
管理界面
录入学生信息
查找学生信息
修改学生信息
删除学生信息
退出
图9-1系统结构图
10、系统技术文档:
包括系统各模块主要流程图,软件总体测试方案与测试记录、局部测试方案与测试记录、软件调试和修改记录、测试结论、运行情况记录。
10.1、系统各模块主要流程图:
登陆模块流程图:
登陆界面
输入密码
正确 错误
进入系统
对不起,您的密码输入可能错误,请重输
图10-1登录模块流程图
输入模块流程图:
Y N
图10-2输入模块流程图
查找模块流程图:
正确 错误
图10-3 查找模块流程图
修改模块流程图:
图10-4 修改模块流程图
删除模块流程图:
图10-5删除模块流程图
10.2、软件总体测试方案:
1、在查询模块中查看学生信息做记录。
2、在修改模块中进行信息修改并再次进行查看比对。
3、删除一个学生的信息并进行信息查询。
4、新增加一名学生成绩信息,并查看记录。
10.3、测试记录:
1、在界面上显示了学生的成绩信息,查询工作正常。
2、修改某学生成绩后进行查看,该学生成绩信息改变。
3、删除一个学生信息并进行查询,没有该学生的信息
10.4、局部测试方案:
1、测试查询模块,主要看信息显示是否与输入一致。
2、测试修改模块,主要看修改是否成功。
3、测试删除模块,看能否进行信息删除。
10.5、测试结果:
1、查询模块正常工作。
2、修改模块正常,能正常修改学生信息。
3、能进行学生成绩信息的删除。
10.6、软件调试和修改记录:
1.学生成绩修改界面没有返回项,加入该项。
2.增加了系统时间的程序。
10.7、测试结果:
上述细节问题等到解决,系统可以正常运行。
10.8、测试结论:
经过增加信息后,反复进行测试学生成绩管理系统基本可以进行正常运作。
可以进行输入,查询,修改,删除操作。
10.9、系统运行结果和记录:
系统登录界面:
图10-6系统登录界面
登录失败时:
图10-7系统登录失败时界面
登陆成功后,进入系统界面:
图10-8登陆成功后,进入系统界面
录入学生信息界面:
图10-9录入学生信息界面
连续输入学生信息界面:
图10-10连续输入学生信息界面
查找学生信息界面:
图10-11 查找学生信息界面
查找到学生信息的界面:
图10-12查找到学生信息的界面
查不到学生信息的界面:
图10-13查不到学生信息的界面
修改学生信息界面:
图10-14 修改学生信息界面
修改语文成绩界面:
图10-15修改语文成绩界面
001号学生成绩已被修改界面:
图10-16 001号学生成绩已被修改界面
删除学生信息界面:
图10-17删除学生信息界面
已删除学生信息界面:
图10-18已删除学生信息界面
11、系统使用说明书:
先进入到运行界面,会显示登陆界面,通过输入密码100000就可以登陆到学生成绩管理信息系统。
此界面有5个选项,每个对应的选项可以进行相应的学生信息管理的操作,选择输入的话就可以在数据中输入学生的成绩信息;选择查询就可将对应的学生信息显示出来;选择修改就可以对学生的信息进行修改;选择删除,就可以在数据中将此学生的信息删除掉。
选择退的话,就可以退出学生成绩信息管理系统。
12、设计体会及今后的改进意见:
经过努力,课程设计基本完成了。
通过本次试验,我对所学的C++语言知识有了更加深入的认识。
应用不当就出错而且错误很费神,理论与实际差距的确很大,要想作出实际实用的东西来还需多多练习,不断改进,充分发挥所学知识,另外也应加强视野的开拓。
设计过程中的解决问题的方法,让我明白了如何学习会更有效。
如何学习才不会耽误太多的时间。
也学会了解决问题的一般方法:
向老师、同学请教,借助网络等等。
实验过程中也走了很多的弯路,由于在开始设计的时候思路不时很清晰,对于一些问题不能很好的提出解决问题的方法,在设计过程中,代码总是重复的修改,在很多问题上,代码并不时最优的。
相信在以后的学习中,随着知识的增多,问题会逐渐得到解决。
在课程设计的实践中,学到很多有用的知识,也积累了不少宝贵的经验。
我相信本次的课程设计会使我以后再各种方面都有很大的提高。
附录:
源程序代码
#include<iostream>
#include <cstring>
#include<string>
#include
usingnamespace std;
structstudent
{
int no;
charname[30];
intchinese,math,english,physics,chemistry,biology;
}stu[100]={0,"0",0,0,0,0,0,0};
voidsetup();
intlookfor(intm);
void edit();
void Delete();
int main()
{
system("cls");
time_tt;
time(&t);
cout<<"********* 欢迎进入学生管理系统 **********\n"<
ﻩ
<< " 当前系统时间是:
"<cout<<"请输入你的登录密码"<stringc;
cin>>c;
while(c!
="100000")
{
cout<<"对不起,您的密码输入可能错误,请重输!
"<ﻩcin>>c;
}
loop:
cout<<"***************************************\n";
cout<<" 请选择服务项目 \n";
cout<<" 1-录入学生信息\n";
cout<<" 2-查找学生信息 \n";
cout<<" 3 -修改学生信息 \n";
cout<<" 4-删除学生信息 \n";
cout<<" 5- 退出 \n";
cout<<"***************************************\n";
intmenu,num,tem;
cin>>menu;
system("cls");
switch (menu)
{
case1:
{
setup();
system("cls");
goto loop;
break;
}
case 2:
{
cout<<"请输入您想查询的学号:
";
cin>>num;
tem=lookfor(num);
if(tem!
=-1)
{
cout<<"学号 姓名 语文成绩数学成绩 英语成绩 物理成绩 化学成绩生物成绩\n";
cout<<<stu[tem].math<<" "<stu[tem].chemistry<<""<}
else
cout<<"对不起,该学号不存在!
\n";
system("pause");
system("cls");
gotoloop;
break;
}
case3:
{
edit();
system("cls");
gotoloop;
break;
}
case4:
{
Delete();
system("cls");
gotoloop;
break;
}
case 5:
{
cout<<"谢谢使用!
\n";
break;
}
default:
{
cout<<"错误的请求!
\n";
system("cls");
gotoloop;
break;
}
}
return 0;
}
voidsetup()
{
charstr;
for(inti=0;i<100;i++)
{
cout<<"请输入学生学号、姓名、语文成绩、数学成绩、英语成绩、物理成绩化学成绩生物成绩:
\n";
cin>>stu[i].no>>stu[i].name>>stu[i].chinese>>
stu[i].math>>stu[i].english>>stu[i].physics>>
stu[i].chemistry>>stu[i].biology;
cout<<"继续(y/n)\n";
cin>>str;
if(str=='n')
break;
}
}
int lookfor(int m)
{
for(inti=0;i<100;i++)
{
if(m==stu[i].no)
returni;
}
return-1;
}
voidedit()
{
char ch[30];
ints1,s2,s3,s4,s5,s6;
intt,m,temp;
cout<<"请选择学号:
"<cin>>m;
temp=lookfor(m);
if(m!
=-1)
{
cout<<"******************************\n";
cout<<" 请选择:
\n";
cout<<"1-修改姓名 \n";
cout<<" 2 - 修改语文成绩 \n";
cout<<" 3 -修改数学成绩 \n";
cout<<" 4-修改英语成绩 \n";
cout<<" 5- 修改物理成绩 \n";
cout<<" 6-修改化学成绩\n";
cout<<"7-修改生物成绩\n";
cout<<" 8-返回 \n";
cout<<"******************************\n";
cin>>t;
switch(t)
{
case1:
cout<<"请输入学生的名字\n";
cin>>ch;
strcpy(stu[temp].name,ch);
break;
case2:
cout<<"请输入学生新的语文成绩\n";
cin>>s1;
stu[temp].chinese=s1;
break;
case3:
cout<<"请输入学生新的数学成绩\n";
cin>>s2;
stu[temp].math=s2;
break;
case4:
cout<<"请输入学生新的英语成绩\n";
cin>>s3;
stu[temp].english=s3;
break;
case5:
cout<<"请输入学生新的物理成绩\n";
cin>>s4;
stu[temp].physics=s4;
break;
case6:
cout<<"请输入学生新的化学成绩\n";
cin>>s5;
stu[temp].chemistry=s5;
break;
case7:
cout<<"请输入学生新的生物成绩\n";
cin>>s6;
stu[temp].biology=s6;
break;
}
}
else
cout<<"此