面向对象程序设计
实训报告
(题目5)学生成绩管理系统设计
学 院:_____ __ _____ _____ 专业名称:_________ _________ 班 级:____________________ 学 号:___________________ 学生姓名:___________________ 指导老师:__ ________________ 日 期:_____ _________
一、 基本功能描述
本课程设计要求的几个功能在程序里面都能实现,有学生信息的输入、排序、修改、删除、查询、添加、退出等。根据用户的需求来执行程序。
学生信息输入负责将学生的信息存储到对应的文本文件中,对学生的信息就包括按学分排序。删除就负责对学生信息的删除。查询可通过学号或姓名查询。
进入主菜单有函数main();实现。里面有七个功能供其选择。
菜单一:信息录入功能,输入选项一进入该功能,根据系统提示输入相应的数据。 菜单二:为学生信息查询功能,当用户选择第二个功能后可以按学号或姓名查询。 菜单三:为删除学生信息功能,一般删除学生信息的时候是非常小心的,故当用户选择该功能后为了防止误删,只有按学号查找出要删除信息的同学的信息进行删除操作。
菜单四:为修改学生信息功能,用户在主菜单里面可选择此功能,进入功能后,输入要修改学生的学号,然后选择提示用户要修改的项目(基本信息和成绩信息),当用户选择完毕后,直接输入新的数据即可。
菜单五:为排序学生信息,该功能是对学生成绩进行排序,是按学生总分进行排序。 菜单零:是退出系统,用户选择该功能后,退出系统,程序停止运行。
二、设计思路
设计结构简图:
三、程序实现 1. 设计过程
总体设计方案:
程序描述:
1.建立一个主页面
2.用switch语句进行分类讨论
3.分别进行录入,查询,删除,修改,求平均值等子函数 4.镜子函数与主函数相连即可
该程序可以建立学生的成绩记录。可以方便老师和同学方便的查阅成绩。本程序有录入和删除的功能,还可以求出平均成绩,并排序。
功能结构: 录入学生成绩 查询成绩 删除成绩 求平均分 按平均分排序 退出
主要模块描述:
主程序提供一个界面,允许用户选择。使用switch语句,用时直接输入数字即可。 增加函数,功能是插入学生成绩。使用一个无穷循环,直到录入”n“时结束。 删除函数,功能是删除,分为两部,先找后删。找,用strcmp函数,如果找到记录i值,反之记录-1值;删除可以从i项开始将数组的后一项赋值给前一项。前一项自动被删掉,这样即完成删除。
查询函数与之类似,将删除该为输出即可。
求平均值函数与查询函数类似,只是输出时输出平均值而已。 按平均值排序只要加一个排序函数即可。 退出函数即是退出程序,什么都不写即可。
2. 关键功能的实现及说明
#include
typedef struct StuBasic{//基本信息 int stunum;//学号 string name; string sex;
string dornum;//宿舍号码 string tel;//年龄(七位) }StuB;
typedef struct StuResult{//成绩信息 int stunum;//学号 string counum;//课程号 string cou;//课程 float cre;//学分 float ures;//平时成绩 float tres;//实验成绩 float pres;//试卷成绩 float tolres;//总成绩 float tolcre;//总学分 }StuR;
StuB stub[1001]; StuR stur[1001];
/**函数定义**/
int AddTolRes(StuR stu);//计算总成绩 int AddTolCre(StuR stu);//计算总学分
int InsertStuBas();//录入学生基本信息 int InsertStuRes();//录入学生成绩信息
int SelectAllA();//查询A.txt的内容到stub[] int SelectAllB();//查询B.txt的内容到stur[] int SelectStuBNum();//查询基本信息函数(按学号) int SelectStuDro();//查询班级函数 int SelectStuRNum();//查询成绩(按学号) int SelectStuRAll();//查询全部 int SelectStuBAll();//查询全部
StuB S2Stub(string s);//从文件中取出学生基本信息并放到Stub中 StuR S2Stur(string s);//从文件中取出学生成绩信息并放到Stur中
int DeleteStu();//删除一个学生信息
int DeleteDro(string dor);//删除一个班级信息
int UpdateStuB();//修改基本信息(按学号) int UpdateStuR();//修改成绩信息(按学号)
int compare(StuR s1,StuR s2);//排序比较函数 int SortStu();//排序函数
int main() {
cout< cout<<\欢迎访问计算机面向对象课程设计***************\ <<\学生信息管理系统*******************\ string name,pwd; cout<<\请输入管理员访问账号:\ cin>>name; cout<<\请输入管理员访问密码:\ cin>>pwd; while(name!=\ cout<<\账户或密码错误,请重新输入!\ cout<<\请输入管理员访问账号:\ cin>>name; cout<<\请输入管理员访问密码:\ cin>>pwd; } cout<<\输入正确,欢迎访问!\ int key; char ch; do{ cout<<\主菜单: **********\ <<\、录入学生信息 **********\ <<\、查询学生信息 **********\ <<\、删除学生信息 **********\ <<\、修改学生信息 **********\ <<\、排序学生信息 **********\ <<\、退出系统 **********\ cout<<\输入访问序号:\ cin>>key;