学生成绩系统课程设计.docx
《学生成绩系统课程设计.docx》由会员分享,可在线阅读,更多相关《学生成绩系统课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
![学生成绩系统课程设计.docx](https://file1.bdocx.com/fileroot1/2022-11/16/e016d95c-c46f-4447-ab9b-e1bcd558faa7/e016d95c-c46f-4447-ab9b-e1bcd558faa71.gif)
学生成绩系统课程设计
太原工业学院计算机工程系
课程设计
课程名称
C++
班级
实验日期
2014.7.1
姓名
学号
实验成绩
实验名称
学生信息管理系统
实
验
目
的
及
要
求
1、通过对班级学生信息管理系统的开发,学会在软件开发中用软件工程的方法和基本思想。
2、加深理解多文档编程的思想,掌握对各个源文件进行处理的方式。
3.会使用C++语言对文件进行读取、修改,保存等操作。
4、学会熟练使用各种结构来完成程序。
学生信息包括:
学号、姓名、年龄、性别、出生年月、地址、E-mail等。
系统功能要求:
(1)录入学生信息
(2)修改学生信息
(3)删除学生信息
(4)按学号或姓名查询学生信息
(5)按学号或姓名对学生信息进行排序
实
验
环
境
VC++6.0
实
验
内
容
实验内容
1.输入部分
通过键盘输入多位学生的学生信息。
学生的信息包含有:
学生姓名、性别、学号、出生年月、年龄等。
此次做的学生管理系统是利用链表而完成的程序,故第一部分想要实现建立链表
2.输出部分
输出当前已存储的学生信息
3.更新部分
①删除删除用户指定的学生信息,这部分的功能是输入学生的学号,找到其在链表中存储的结点处,并将这整个结点删除,再把该结点的前驱结点和后驱节点连接,来实现这个学生信息的删除.
②修改修改用户指定的学生信息,这部分是利用输入学生的学号,来找到存储该学生信息的结点,通过该结点的链域来修改其中的值域,来实现对学生信息的修改.
4.查询部分
①按名字查询输出用户查询的学生信息,这部分是利用输入学生的姓名,来找到存储该学生信息的结点,输出该结点的值域中的内容,来实现对学生信息的查询功能.
②按学号查询输出用户查询的学生信息,同上,只是查询条件为学号.
5.要求与限制条件
①.各模块间通过菜单切换和调用
②.主函数通过调用菜单函数实现对各功能模块的调用,各功能模块间根据需要可相互调用。
③.程序能够保证各模块功能的独立和数据共享。
不使用全局变量则能保证函数之间的独立性,利用形参与实参之间的数值传递来实现数据共享。
算
法
描
述
及
实
验
步
骤
#include"iostream"
#include"string"
#include"fstream"
#include"conio.h"
usingnamespacestd;
classStudent//定义了一个学生的类
{
public:
charNum[20];//学生信息所包含的信息
charName[20];
charSex[20];
charBorn[20];
charCol[20];
Student*Next;
voidInput();
voidDisplay();
voidRead(istream&in);
};
voidStudent:
:
Display()//输出学生信息
{
//cout<<"**学号**"<<"**姓名**"<<"**性别**"<<"**出生年月**"<<"**学院**"<<"**邮箱**""\n";
cout<}
voidStudent:
:
Input()//输入学生信息
{
cout<<"输入学生的学号:
";
cin>>Num;
cout<<"输入学生的姓名:
";
cin>>Name;
cout<<"输入学生的性别:
";
cin>>Sex;
cout<<"输入学生的出生年月:
";
cin>>Born;
cout<<"输入学生的学院:
";
cin>>Col;
}
voidStudent:
:
Read(istream&in)//从文件中读取信息
{
in>>Num>>Name>>Sex>>Born>>Col;
}
//*******建立学生信息的类
classStudentinformation
{
public:
Studentinformation();
~Studentinformation();
Student*Head,*End;
voidMenu();
voidFind();
voidSave();
voidModify();
voidDelect();
voidSwap(Student*,Student*);
voidSort();
voidDisplaym();
/*{
ifstreaminfile("student.txt");
//Student*p=Head->Next;p!
=End;p=p->Next
for(Student*p=Head->Next;p!
=End;p=p->Next)
{
//infile.read((char*)p,sizeof(p));
p->Display();
}
infile.close();
cout<<"输入任意字符以继续";
getch();
}*/
voidAdd();
/*{
//End->Next=newStudent;
//End=End->Next;
Student*p;
p=End;
ofstreamoutfile("student.txt");
End->Input();
outfile<<"学号:
"<Num<<"\n"<<"姓名:
"<Name<<"\n"<<"性别:
"<Sex<<"\n"<<"出生日期:
"<Born<<"\n"<<"学院:
"<Col<outfile<<"-------------------------------------------------------------------"<outfile.close();
End->Next=newStudent;
End=End->Next;
cout<<"添加成功!
"<cout<<"输入任意字符!
继续……";
getch();
}*/
private:
ifstreamin;
ofstreamout;
Student*FindName(char*Name)
{
for(Student*p=Head;p->Next!
=End;p=p->Next)
if(!
strcmp(p->Next->Name,Name))
{
returnp;
}
returnNULL;
}
Student*FindNum(char*Num)
{
for(Student*p=Head;p->Next!
=End;p=p->Next)
if(!
strcmp(p->Next->Num,Num))
{
returnp;
}
returnNULL;
}
};
//********构造函数
Studentinformation:
:
Studentinformation()
{
Head=newStudent;
Head->Next=newStudent;
End=Head->Next;
in.open("student.txt");
if(!
in)
cout<<"这是一个新系统,无学生信息。
请先输入。
"<else
{
while(!
in.eof())
{
End->Read(in);
if(End->Name[0]=='\0')
break;
End->Next=newStudent;
End=End->Next;
}
in.close();
cout<<"\t\t读取学生信息成功!
"<}
}
//********析构函数
Studentinformation:
:
~Studentinformation()
{
voidSave();
for(Student*temp;Head->Next!
=End;)
{
temp=Head->Next;
Head->Next=Head->Next->Next;
deletetemp;
}
deleteHead,End;
}
//*******菜单显示
voidStudentinformation:
:
Menu()
{
cout<<"〓〓〓〓〓〓〓〓〓〓☆学生成绩管理系统☆〓〓〓〓〓〓〓〓〓〓"<cout<<"〓〓〓〓〓〓〓★★★★★★★★★★★★★★★★★〓〓〓〓〓〓〓"<cout<<"〓〓〓〓〓〓〓〓〓★☆1.增加学生信息☆★〓〓〓〓〓〓〓〓〓"<cout<<"〓〓〓〓〓〓〓〓〓★☆2.显示学生信息☆★〓〓〓〓〓〓〓〓〓"<cout<<"〓〓〓〓〓〓〓〓〓★☆3.排序统计信息☆★〓〓〓〓〓〓〓〓〓"<cout<<"〓〓〓〓〓〓〓〓〓★☆4.查找学生信息☆★〓〓〓〓〓〓〓〓〓"<cout<<"〓〓〓〓〓〓〓〓〓★☆5.删除学生信息☆★〓〓〓〓〓〓〓〓〓"<cout<<"〓〓〓〓〓〓〓〓〓★☆6.修改学生信息☆★〓〓〓〓〓〓〓〓〓"<cout<<"〓〓〓〓〓〓〓〓〓★☆0.安全退出系统☆★〓〓〓〓〓〓〓〓〓"<cout<<"\n\t\t\n\t\t请选择:
";
}
voidStudentinformation:
:
Add()
{
//End->Next=newStudent;
//End=End->Next;
ofstreamoutfile("student.txt");
End->Input();
outfile<<"学号:
"<Num<<"\n"<<"姓名:
"<Name<<"\n"<<"性别:
"<Sex<<"\n"<<"出生日期:
"<Born<<"\n"<<"学院:
"<Col<outfile<<"-------------------------------------------------------------------"<outfile.close();
End->Next=newStudent;
End=End->Next;
cout<<"添加成功!
"<cout<<"输入任意字符!
继续……";
getch();
}
voidStudentinformation:
:
Displaym()
{
ifstreaminfile("student.txt");
//Student*p=Head->Next;p!
=End;p=p->Next
for(Student*p=Head->Next;p!
=End;p=p->Next)
{
//infile.read((char*)p,sizeo