中南大学计算机课程设计学生成绩管理系统.docx
- 文档编号:27477708
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:28
- 大小:796.28KB
中南大学计算机课程设计学生成绩管理系统.docx
《中南大学计算机课程设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《中南大学计算机课程设计学生成绩管理系统.docx(28页珍藏版)》请在冰豆网上搜索。
中南大学计算机课程设计学生成绩管理系统
机电工程学院
中南大学
C++可视化程序设计实践
题目学生成绩管理系统
成员姓名班级:
学号:
成员姓名班级:
学号:
指导教师夏建芳
学院机电工程学院
完成时间年月日
一、设计任务书--------------------------------------------------------
二、总体设计方案------------------------------------------------------
三、成员设计内容简介--------------------------------------------------
四、使用说明及运行实例------------------------------------------------
五、项目源程序代码----------------------------------------------------
六、课程设计心得------------------------------------------------------
七、成绩评定表--------------------------------------------------------
一、设计任务书
《面向对象程序设计课程设计》是计算机科学与技术专业和软件工程专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
其目的在于加深对面向对象程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。
通过课程设计,让学生能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。
任务要求1-3人一组(自由组合),明确分工。
(1)小组负责人一般进行总体设计(包括总体设计流程图、模块函数原型接口设计);
(2)模块的程序设计由组长、成员分别完成,并独立调试自己的程序;(3)组长至少完成2个功能模块的设计,成员至少完成3个功能模块的设计;(4)模块组装调试共同完成。
鉴于此,本次以两人组队的方式展开。
项目从6月19日展开至6月26日结束,历时8天完成。
前期花费一天由小组组长进行总体设计;中期由组长和组员分别完成模块程序的设计,耗时7天;最后由组长完成报告。
通过本项目,意在完成一个可以对学生成绩进行各方面管理的系统(主要功能有见下文介绍),同时也将自己所学知识付诸实践,提高自己的能力。
二、总体设计方案
1.设计思想
(1)分析任务要求,完成系统的开始界面,也就是编写主函数;
(2)分析系统中的各个实体及它们之间的关系;
(3)选择适当的类,完成类的定义;
(4)根据要求的系统功能,完成类中各个成员函数的定义;
(5)完成系统的应用模块(功能函数);
(6)将主函数与功能函数整合在一个程序中;
(7)进行多次的功能调试,以查找纠正错误;
(8)完成系统总结报告。
2.设计功能
(1)添加学生记录;
(2)删除学生记录;
(3)显示学生记录;
(4)查询学生记录;
(5)统计学生记录;
(6)排序学生记录;
(7)修改学生记录;
(8)退出管理系统(包含保存功能)。
3.设计程序流程图
(1)层次调用
(2)结构视图
三、成员设计内容简介
为了令程序保持清晰和整洁,防止出错,首先由组长根据任务要求选好头文件,同时设计好程序的基类以及main()函数。
然后各种功能实现所需的功能函数由组长和组员合作完成设计。
整个管理系统中,添加功能(adds())、删除功能(deletes())、显示功能(shows())、查询功能(inquires())、计算平均分函数(Caculateas())、计算总分函数(Caculatets())由组员xx完成。
剩下的打开函数(opens())、统计功能(statistics())、排序功能(ranks())、修改功能(changs())、退出及保存功能(exits())由组长xx完成。
经过两人的合作和努力,终于成功设计出了整个学生成绩管理系统。
四、使用说明及运行实例
1.打开界面
(1)没有源文件时
(2)有源文件时
2.添加功能
(1)添加前
(2)添加时
(3)添加后
2.删除功能
(1)删除前
(2)删除时
(3)删除后
3.显示功能
4.查询功能
5.统计功能
6.排序功能
(1)排序前
(2)排序后
7.修改功能
(1)修改前
(2)修改时
(3)修改后
8.退出并保存文件
9.文件显示
五、项目源程序代码
#include
#include
#include
usingnamespacestd;
classstudent//学生类定义
{
public:
intNum;
charName[7];
charSex[7];
doubleScore[3];
doubleTscore,Ascore;
voidRegister(intnum,char*name,char*sex,doublescore[3],doubleascore,doubletscore);
voidShow();
};
voidstudent:
:
Register(intnum,char*name,char*sex,doublescore[3],doubleascore,doubletscore)
{
Num=num;
strcpy(Name,name);
strcpy(Sex,sex);
Tscore=tscore;
Ascore=ascore;
for(inta=0;a<3;a++){Score[a]=score[a];}
}
voidstudent:
:
Show()//显示
{
cout<<"\t"< for(inta=0;a<3;a++){cout< cout< } studentstu[100]; intcount=0; doubleCaculateas(double*b);//计算平均分 doubleCaculatets(double*b);//计算总分 voidopens();//打开文件 voidadds();//增加 voiddeletes();//删除 voidshows();//显示 voidinquires();//查询 voidstatistics();//统计 voidranks();//排序 voidchangs();//修改 voidexits();//退出并将数据存在文件中 intmain()//主函数 { intselect; opens(); while (1) { cout<<"\n\n"; cout<<"《欢迎使用学生管理系统》\n\n"; cout<<"********************************************************************************"< cout<<"1: 添加学生记录"< cout<<"2: 删除学生记录"< cout<<"3: 显示学生记录"< cout<<"4: 查询学生记录"< cout<<"5: 统计学生记录"< cout<<"6: 排序学生记录"< cout<<"7: 修改学生记录"< cout<<"0: 退出管理系统"< cout<<"\n"; cout<<"[请选择]: "; cin>>select; switch(select) { case1: adds(); break; case2: deletes(); break; case3: cout<<"\t学号\t\t姓名\t性别\t语文\t数学\t英语\t平均分\t总分"< cout<<"********************************************************************************"< shows(); break; case4: inquires(); break; case5: statistics(); break; case6: ranks(); cout<<"*******************************排序结果为*******************************"< cout<<"\t学号\t\t姓名\t性别\t语文\t数学\t英语\t平均分\t总分"< shows(); break; case7: changs(); break; case0: charb; cout<<"确定要退出程序吗? [Y/N]: "; cin>>b; if(b=='Y'||b=='y'){exits();cout<<"文件保存成功! "< break; default: cout<<"输入错误! 请重新出入"< } } return0; } doubleCaculateas(double*b)//计算平均分 { doublec,sum=0.0; for(inta=0;a<3;a++){sum=*(b+a)+sum;} c=sum/3; returnc; } doubleCaculatets(double*b)//计算总分 { doublesum=0.0; for(inta=0;a<3;a++){sum=*(b+a)+sum;} returnsum; } voidopens()//打开文件 { ifstreaminfile("students.txt"); if(! infile) { ofstreamoutfile("students.txt"); cout<<"未找到成绩文件,重新创建! "< } else { charinitial0[8],initial1[8],initial2[8],initial3[8],initial4[8],initial5[8],initial6[8],initial7[8]; intnum; charname[7],sex[7]; doublescore[3],ascore,tscore; inti=0; infile>>initial0>>initial1>>initial2>>initial3>>initial4>>initial5>>initial6>>initial7; while(! infile.eof()) { infile>>num>>name>>sex>>score[0]>>score[1]>>score[2]>>ascore>>tscore; stu[i].Register(num,name,sex,score,ascore,tscore); i=i+1; count++; } for(intb=i;b<=i&&b>0;b++) { stu[b-1]=stu[b]; } count--; } } voidadds()//添加 { intnum; charname[7],sex[7]; doublescore[3],ascore,tscore; if(count<100) { inti=count++; cout<<"请依次输入学号、姓名、性别、语文成绩、数学成绩、英语成绩: "< cin>>num>>name>>sex>>score[0]>>score[1]>>score[2]; ascore=Caculateas(score); tscore=Caculatets(score); stu[i].Register(num,name,sex,score,ascore,tscore); cout<<"添加成功! "; } else { cout<<"存储空间已满! "; } } voiddeletes()//删除 { intnum; intb,a=0; cout<<"请输入要删除学生的学生号: "; cin>>num; for(inti=0;i { if(stu[i].Num==num) { for(b=i;b { stu[b]=stu[b+1]; } count--; cout< a++; break; } } if(! a) { cout<<"[该学生不存在,请重新输入! ]: "; } } voidshows()//显示 { for(inti=0;i } voidinquires()//查询 { inta=0; intnum; cout<<"请输入要查询学生的学号: "; cin>>num; for(inti=0;i { if(num==stu[i].Num) { cout<<"\t学号\t\t姓名\t性别\t语文\t数学\t英语\t平均分\t总分"< cout<<"********************************************************************************"< stu[i].Show(); a++; break; } } if(! a) { cout<<"[该学生不存在,请重新输入! ]"; } } voidstatistics()//统计 { inta,i; doubleb=0.0,c; cout<<"请输入要统计平均成绩的科目序号[1.语文;2.数学;3.英语]: "; cin>>a; switch(a) { case1: for(i=0;i c=b/count; cout<<"你要统计的"<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学计算机 课程设计 学生 成绩管理系统
![提示](https://static.bdocx.com/images/bang_tan.gif)