资源简介

使用下面的数据,用C++设计一个简单的学籍管理系统,实现出最基本的功能。 学生基本信息文件(A.TXT)及其内容:A.TXT文件不需要编程录入数据,可用文本编辑工具直接生成: 学号 姓名 性别 宿舍号码 电话号码 01 张成成 男 501 87732111 02 李成华 女 101 87723112 03 王成凤 女 101 87723112 04 张明明 男 502 87734333 05 陈东 男 501 87732111 06 李果 男 502 87734333 07 张园园 女 102 87756122 … …. .. … ……….. 学生成绩基本信息文件(B.TXT)及其内容: 学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分 01 A01 大学物理 3 66 78 82 02 B03 高等数学 4 78 -1 90 01 B03 高等数学 4 45 -1 88 02 C01 VF 3 65 76 66 … …. ………. .. .. … (一) 功能要求及说明: (1) 数据录入功能: 对B.TXT进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据. 综合成绩、学分由程序根据条件自动运算。 综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%; 如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70% . 实得学分的计算: 采用等级学分制. 综合成绩在90-100之间 ,应得学分=学分*100% 综合成绩在80-90之间 ,应得学分=学分*80% 综合成绩在70-80之间 ,应得学分=学分*75% 综合成绩在60-70之间 ,应得学分=学分*60% 综合成绩在60以下 ,应得学分=学分*0% (2)查询功能:分为学生基本情况查询和成绩查询两种 A:学生基本情况查询: A1----输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。 A2---输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。 B:成绩查询: B1:输入一个学号时,查询出此生的所有课程情况,格式如下: 学 号:xx 姓 名:xxxxx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx … … … … ……… … … 共修:xx科,实得总学分为: xxx (3)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。 (4 ) 排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。

资源截图

代码片段和文件信息

#include“iostream“
#include“fstream“
#include“iomanip“
#define STUDENT_H
#include
using namespace std;

struct student1
{
string id;      //学号
string name;     //姓名
string sex;      //性别
string susheid; //宿舍号码
string phone; //电话号码
};
struct student2
{
string number;//定义学号 
char cnum[5];//课程号
char cname[15];//课程名
int xuefen;//学分
int pingshif;//平时成绩
int shiyanf;//实验成绩
int juanmianf;//卷面成绩
double totalxuefen;//综合分
double score;//总学分
};

student1 s1[100];
student2 s2[100];

class student
{
public: 
int length1 = 0;
int length2 = 0;
void menue()//菜单
{
cout << “             *******************学生管理系统*************************      “ << endl;
cout << “             *                                                      *“ << endl;
cout << “             *              1、 查询文档A信息                       *“ << endl;
cout << “             *              2、 添加学生成绩                        * “ << endl;
cout << “             *              3、 查询学生信息                        *“ << endl;
cout << “             *              4、 查询学生成绩                        *“ << endl;
cout << “             *              5、 删除学生信息                        *“ << endl;
cout << “             *              6、 学生成绩排序                        *“ << endl;
cout << “             *              7、 退出系统                            *“ << endl;
cout << “             *                                                      *“ << endl;
cout << “             ********************************************************       “ << endl;
}
void open()//读取A
{
char a[100];
ifstream ifile;
ifile.open(“C:\\A.txt“);
int i = 0;
while (ifile.get(a[i])){
if (a[i] == ‘\n‘)break;
i++;
}
a[i] = ‘\0‘;

cout << a << endl;//打印列名
while (1){
ifile >> s1[length1].id >> s1[length1].name >> s1[length1].sex >> s1[length1].susheid >> s1[length1].phone;
if (ifile.eof() != 0)break;
cout << setw(2) << s1[length1].id << setw(10) << s1[length1].name << setw(5) << s1[length1].sex << setw(10) << s1[length1].susheid << setw(13) << s1[length1].phone << endl;
length1++;
}
ifile.close();
cout << “A中共有的学生数为:“ << length1 << endl;
}
void grade()//录入B
{
ofstream outf;
outf.open(“C:\\B.txt“);
cout << “*******************************录入学生成绩*******************************“ << endl;
outf << setw(2) << “学号“ << setw(6) << “课程编号“ << setw(9) << “课程名称“ << setw(13) << “学分“ << setw(10) << “平时成绩“
<< setw(9) << “实验成绩“ << setw(9) << “卷面成绩“ << setw(9) << “综合成绩“ << setw(9) << “实得学分“ << endl;
for (int i = 0; i < 100; i++)
{
cout << “请输入第“ << i + 1 <<“个学生的成绩信息“ << endl;
cout << “请输入学号: “;
cin >> s2[i].number;
cout << endl;
cout << “请输入课程号: “;
cin >> s2[i].cnum;
cout << endl;
cout << “请输入课程名: “;
cin >> s2[i].cname;
cout << endl;
cout << “请输入学分: “;
cin >> s2[i].xuefen;
cout << endl;
cout << “请输入平时成绩: “;
cin >> s2[i].pingshif;

评论

共有 条评论