教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 行业范文 >

C++学生成绩管理系统课程设计报告

来源:网络收集 时间:2026-05-15
导读: 最全的 内容最好的! C++课程设计报告书 题目:学生成绩管理系统 专 业:信息与计算科学 班 级:0208403 学 号:020840306 姓 名:张亚炬 任课老师:文 军 最全的 内容最好的! 学生成绩管理系统课程设计报告 摘要: 本系统主要用于对学生的成绩进行管理。通过

最全的 内容最好的!

C++课程设计报告书

题目:学生成绩管理系统

专 业:信息与计算科学 班 级:0208403 学 号:020840306 姓 名:张亚炬 任课老师:文 军

最全的 内容最好的!

学生成绩管理系统课程设计报告

摘要:

本系统主要用于对学生的成绩进行管理。通过本系统,可以将各个学生的成绩记录输入到系统中,保存到文件,便于查阅和相关管理。此外,该系统还能实现对学生成绩记录的显示,查询以及插入或删除学生的成绩记录等功能。

一、 问题描述

编写一个简单的学生成绩管理系统。学生成绩管理系统有若干学生成绩记录组成,每个记录由学号、姓名、性别和成绩四部分组成,学号不超过11个字符,姓名不超过21个字符,性别为’m’(male)或’f’(female),成绩为double型数据。该系统具有以下功能:

(1) 程序开始执行时显示如下版权信息和主菜单: *******学生成绩管理系统*************

*1.添加学生成绩记录 *2.显示学生成绩记录 *3.查找学生成绩记录 * 4.删除学生成绩记录 * 5.保存学生成绩记录 * 6.加载学生成绩记录 * 7.退出学生成绩管理系统

************************************ 请输入(1~7):

(2) 通过键盘输入数字1~7后,程序能够执行相应的功能,执行完后回到上述

主菜单继续等待用户输入,输入数字7后退出程序。

(3) 选择“添加学生成绩记录”后,输入要插入记录的位置。按程序提示依次

输入学号,姓名,性别,成绩,插入记录成功。

(4) 选择“显示学生成绩记录”,显示学生成绩表中已有的学生记录的个数,

最全的 内容最好的!

并显示出各个学生记录的相关信息。

(5) 选择“查找学生成绩记录”,按提示输入要查找的学生的学号,输入学号,

若该学号存在,则输出相应的学生记录,如该学号不存在,则按任意键返回主菜单。

(6) 选择“删除学生成绩记录”,按提示输入要删除的学生的学号,输入学号,

若改学号存在,则删除相应的学生记录,如果该学号不存在,则按任意键返回主菜单。

(7) 选择“保存学生成绩记录”,系统会将已有的学生记录保存在默认的文件

名为fname.txt的文件中。

(8) 选择“加载学生成绩记录”,系统会提示输入文件名,输入默认的文件名

为fname.txt,则可将文件中的相关信息导出。

(9) 选择“退出学生成绩管理系统”,按任意键退出系统。

二、 解决方案

这是一个很实际的编程实例。编程要求很详细,内容也比较多,有一定难度。首先,学生成绩记录是一个复杂的数据结构,至少应包括学号,姓名,性别和成绩。所以,必须建立一个类student,用来记录学号,姓名,性别和成绩。此外还得建立一个类stuscore,用来记录多个学生的成绩记录。 1、

建立类学生类student,它至少包括学号number,姓名name,性别sex,成绩chengji。具体如下:

class student {

public:

char name[21]; //姓名 char number[11]; //学号 char sex; //性别 double chengji; //成绩

student *next; //类指针,用来指向下一个记录

student();

void init(string &Name,string &Number,char Sex,double Chengji); //输入学生成

最全的 内容最好的!

绩记录 };

函数init(string &Name,string &Number,char Sex,double Chengji)用于输入学生记录,相当于一个注册。其具体实现如下:

void student::init(string &Name,string &Number,char Sex,double Chengji) {

int len;

len=Name.length(); if(len>20)len=20; virtual ~student();

Name.copy(name,len,0); name[len]=0; }

2、

建立学生成绩记录类stuscore,该类是学生成绩记录的集合。其成员函数则是问题中要求的添加、显示、查找、删除、保存、导出等各种操作。改类具体如下:

class stuscore {

student* head;

len=Number.length(); if(len>10)len=10;

Number.copy(number,len,0); number[len]=0; sex=((sex=='m')?'m':'f'); chengji=Chengji;

public:

bool add_record();//添加学生成绩记录

最全的 内容最好的!

void display_record();//显示学生成绩记录 int length();//学生成绩记录个数 bool delete_record();//删除学生成绩记录 void save_record();//保存学生成绩记录 void load_record();//加载学生成绩记录 bool find_record();//查找学生成绩记录 stuscore(); virtual ~stuscore(); };

现在就要编写各个功能的函数实体了:

① 添加学生成绩记录add_record(),建立一个链表: bool stuscore::add_record() {

int i; int j=1; string Name;

string Number;

char Sex; double Chengji;

student *newnode,*current,*previous; current=previous=head; cout<<"请输入插入的位置:";

cin>>i;

if(i<=0||i>length()+1)

{

cout<<"输入的位置不正确!";

return false; }

cout<<"请输入学号:";

最全的 内容最好的!

cout<<"请输入姓名:";

cin>>Name;

cout<<"请输入性别:";

cin>>Sex;

cout<<"请输入成绩:"; cin>>Chengji; newnode=new student();

newnode->init(Name,Number,Sex,Chengji); newnode->next=null; if(!newnode)

{

cout<<"内存已满!";

return false; }

if(i==1) { }

newnode->next=head; head=newnode; return true;

else

{

while(current&&j<i) {

previous=current;

current=current->next; j++; }

newnode->next=current;

最全的 内容最好的!

}

}

return true;

② 显示学生成绩记录display_record(),具体实现如下: void stuscore::display_record() {

student*current; current=head;

cout<<"表中有"<<length()<<"条记录!\n"; if(length()) {

cout<<setiosflags(ios::left)<<setw(15)<<"学号"<<setw(15)<<"姓名

"<<setw(12)<<"性别"<<setw(5)<<"成绩"<<endl;

while(current) } }

另外,对<<运算符进行了重载,这样就可以直接用cout输出学生成绩记录,函数重载如下:

ostream&operator<<(ostream&output,const student *addr) {

output<<setiosflags(ios::left)<<setw(15)<<addr->number<&l …… 此处隐藏:4462字,全部文档内容请下载后查看。喜欢就下载吧 ……

C++学生成绩管理系统课程设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/982213.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)