C++课程设计

题目一:学生成绩统计管理主要功能:1、输入一个班级的学生的基本信息(包括学好,姓名,性别,5门课程成绩)。2、按姓名或者学号查找、修改、删除和保存各个学生的信息。3、计算... 题目一:学生成绩统计管理
主要功能:
1、输入一个班级的学生的基本信息(包括学好,姓名,性别,5门课程成绩)。
2、按姓名或者学号查找、修改、删除和保存各个学生的信息。
3、计算每个学生各门功课总分和平均分,按学号或总分排序输出每个学生的基本信息及总分、平均分和名次。
4、计算全班各门功课的平均分,显示每门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩。
5、显示每门科目中,成绩在90分以上的学生信息,以及每门科目中不及格的学生信息。
6、设置系统登陆密码,只有正确输入密码方可进入管理系统。课更改和保存登陆密码。

题目二:学生选课管理系统
主要功能:
1. 实现学生选课端,主要包括:选课、查看已选课程。
2. 实现系统管理端,主要包括:添加和删除学生、老师和课程,查看所有学生、老师和课程。

题目三:人员信息资料管理
(1)建立人员信息数据,包括编号、姓名、性别、出生时间、岗位(部门)、参加工作时间和年龄(必须通过计算得到)等等其他信息;
(2)根据人员信息表,建立只含有姓名和年龄的信息简表(可选功能);
(3)使用继承的方法构造3个类,(即人员类——虚基类,教师类和学生类——派生类)使用相应的对象放置10个人员信息;
(4)编写同名display()成员函数,用来输出数组的内容;
(5)按不同类别输出人员信息,比如按系输出教师信息(可选功能);
(6)抽取并计算人员的平均年龄;
(7)检索(查找)指定信息(如按姓名检索、按年龄检索);

题目四:设计一个利用文件处理方式实现的电话号码簿
要求:功能选择用数字菜单来实现,基本功能:增加数据、修改数据、查询数据删除数据及退出。

题目五:其他学生自选的题目,用纯c++或VC的MFC实现都可以。
展开
 我来答
时轩鹏芝
推荐于2016-09-06
知道答主
回答量:7
采纳率:0%
帮助的人:4.8万
展开全部
#include<fstream.h>
#include<process.h>
#include<iomanip.h>
#include<string.h>

class Student
{
public:
Student();
~Student();
void add_info();
void del_info();
void search_info_cell();
void out_all_info();
int get_info();
protected:
char name[10];
char sex[3];
char nationality[7];
char nation[8];
char diploma[6];
char birthday[8];
char address[6];
long cell;
long family;
long school;
int chinese,English,math,physics;
Student *head,*next;
};
/**
*构造函数,用来创建对象同时初始化相关指针变量
*/
Student::Student()
{
head=NULL;
next=NULL;
}
/**
*从文件中获取学生的信息
*/
int Student::get_info()
{
Student *temp,*loop;
temp=new Student();
loop=new Student();
ifstream out_file;
out_file.open("stuinfo.txt",ios::beg);//打开文件,设置读指针在文件的开头
if(!out_file)
{
cout<<"从文件中获取信息失败!";
cout<<"\n按任意键退出.";
cin.get();
exit(0);//结束程序
}
while(!out_file.eof())//循环读文件,直到读到了文件的末尾
{
//文件的结构是:文件的一行就是一个学生的信息, 从左到右是: 电话号 姓名 性别 民族 地址 国籍 学历 出生日期 语文 英语 数学 物理
//这些信息可以在本程序提供的功能生成并保存到文件里
out_file>>(temp->cell)>>(temp->name)>>(temp->sex)>>(temp->nation)>>(temp->address)>>(temp->nationality )>>
(temp->diploma)>>(temp->birthday)>>(temp->chinese)>>(temp->English)>>(temp->math)>>(temp->physics);
if(temp->cell==0) break;
//使用链表把学生的信息保存到内存中
if(head==NULL) head=temp;
else
{
if(head->cell>temp->cell)
{
temp->next=head;
head=temp;
}
else
{
loop=head;
while(loop->next!=NULL)
{
if(loop->next->cell>temp->cell)
{
temp->next=loop->next;
loop->next=temp;
break;
}
loop=loop->next;
}
if(loop->next==NULL)
{
loop->next=temp;
temp->next=NULL;
}
}
}
temp=new Student;
loop=new Student;
}
out_file.close();//关闭文件
if(head==NULL) return 0;
else return 1;
}

/**
*输出所有学生的信息
*/
void Student::out_all_info()
{
Student*temp;
temp=new Student;
cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;
cout<<"学生信息如下:"<<endl<<endl;
cout<<setw(7)<<"电话"<<setw(7)<<"姓名"<<setw(5)<<"性别"<<setw(8)<<"民族"<<setw(8)<<"地址"<<setw(8)<<"国籍"<<setw(6)
<<"学历"<<setw(9)<<"生日"<<setw(5)<<"语文"<<setw(5)<<"英语"<<setw(5)<<"数学"<<setw(5)<<"物理"<<endl;
cout<<endl;
temp=head;
while(temp!=NULL)//循环读链表,输出所有学生的信息
{
cout<<setw(7)<<(temp->cell)<<setw(7)<<(temp->name)<<setw(5)<<(temp->sex)<<setw(8)<<(temp->nation)<<setw(8)<<(temp->address)<<setw(8)
<<(temp->nationality)<<setw(6)<<(temp->diploma)<<setw(9)<<(temp->birthday)<<setw(5)<<(temp->chinese)<<setw(5)<<(temp->English)
<<setw(5)<<(temp->math)<<setw(5)<<(temp->physics)<<endl<<endl;
temp=temp->next;
}
}
/**
*通过学号查找信息
*/
void Student::search_info_cell()
{
Student*temp;
long num;
temp=new Student;
cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;
cout<<"输入要查找学生电话号码:";
cin>>num;//输入手机号
temp=head;
while(temp!=NULL&&temp->cell!=num)//比较学号
temp=temp->next;
if(temp==NULL)//没有找到信息
cout<<"对不起,没有这个学生!"<<endl;
else//输出信息
{
cout<<"学生信息如下: "<<endl;
cout<<setw(7)<<"电话"<<setw(7)<<"姓名"<<setw(5)<<"性别"<<setw(8)<<"民族"<<setw(8)<<"地址"<<setw(8)<<"国籍"<<setw(6)
<<"学历"<<setw(9)<<"生日"<<setw(5)<<"语文"<<setw(5)<<"英语"<<setw(5)<<"数学"<<setw(5)<<"物理"<<endl;
cout<<setw(7)<<(temp->cell)<<setw(7)<<(temp->name)<<setw(5)<<(temp->sex)<<setw(8)<<(temp->nation)<<setw(8)<<(temp->address)<<setw(8)
<<(temp->nationality)<<setw(6)<<(temp->diploma)<<setw(9)<<(temp->birthday)<<setw(5)<<(temp->chinese)<<setw(5)<<(temp->English)
<<setw(5)<<(temp->math)<<setw(5)<<(temp->physics)<<endl;
}
}
/**
*增加学生的信息
*/
void Student::add_info()
{
Student *temp,*loop,*loop1;
temp=new Student;
loop=new Student;
loop1=new Student;
cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;
cout<<"现在增加学生信息:"<<endl;
{ cout<<"输入电话号码:";
cin>>temp->cell;//输入手机号
cout<<"输入姓名:";
cin>>temp->name;//姓名
cout<<"输入性别:";
cin>>temp->sex;
cout<<"输入民族:";
cin>>temp->nation;
cout<<"输入地址:";
cin>>temp->address;
cout<<"输入国籍:";
cin>>temp->nationality;
cout<<"输入学历:";
cin>>temp->diploma;
cout<<"输入生日:";
cin>>temp->birthday;
cout<<"输入语文分数:";
cin>>temp->chinese;//语文
cout<<"输入英语分数:";
cin>>temp->English;//英语
cout<<"输入数学分数:";
cin>>temp->math;//数学
cout<<"输入物理分数:";
cin>>temp->physics;//物理
if(head==NULL) head=temp;//将信息添加到链表中
else
{
if(head->cell>temp->cell)
{
temp->next=head;
head=temp;
}
else
{
loop=head;
while(loop->next!=NULL)
{
if(loop->next->cell>temp->cell)
{
temp->next=loop->next;
loop->next=temp;
break;
}
loop=loop->next;
}
if(loop->next==NULL)
{
loop->next=temp;
temp->next=NULL;
}
}
}
}
cout<<"\n您输入学生信息如下:"<<endl;
cout<<setw(7)<<"手机"<<setw(7)<<"姓名"<<setw(5)<<"性别"<<setw(8)<<"民族"<<setw(8)<<"地址"<<setw(8)<<"国籍"<<setw(6)
<<"学历"<<setw(9)<<"生日"<<setw(5)<<"语文"<<setw(5)<<"英语"<<setw(5)<<"数学"<<setw(5)<<"物理"<<endl;
cout<<setw(7)<<(temp->cell)<<setw(7)<<(temp->name)<<setw(5)<<(temp->sex)<<setw(8)<<(temp->nation)<<setw(8)<<(temp->address)<<setw(8)
<<(temp->nationality)<<setw(6)<<(temp->diploma)<<setw(9)<<(temp->birthday)<<setw(5)<<(temp->chinese)<<setw(5)<<(temp->English)
<<setw(5)<<(temp->math)<<setw(5)<<(temp->physics)<<endl;
}
/**
*通过学号删除信息
*/
void Student::del_info()
{
Student *temp,*loop1,*loop2;
long cell;
temp=new Student;
loop1=new Student;
loop2=new Student;
cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;
cout<<"输入要删除学生电话号码:";
cin>>cell;//输入电话号
temp=head;
while(temp!=NULL&&temp->cell!=cell)//通过手机号查找信息
{
loop1=temp;
temp=temp->next;
}
if(temp==NULL)//没有相应学号的学生信息
cout<<"抱歉,没有该学生!"<<endl;
else
{
loop1->next=temp->next;//跳过链表的一个节点temp
cout<<"您删除的学生信息如下:"<<endl;
cout<<setw(7)<<"手机"<<setw(7)<<"姓名"<<setw(5)<<"性别"<<setw(8)<<"民族"<<setw(8)<<"地址"<<setw(8)<<"国籍"<<setw(6)
<<"学历"<<setw(9)<<"生日"<<setw(5)<<"语文"<<setw(5)<<"英语"<<setw(5)<<"数学"<<setw(5)<<"物理"<<endl;
cout<<setw(7)<<(temp->cell)<<setw(7)<<(temp->name)<<setw(5)<<(temp->sex)<<setw(6)<<(temp->nation)<<setw(8)<<(temp->address)<<setw(8)
<<(temp->nationality)<<setw(6)<<(temp->diploma)<<setw(9)<<(temp->birthday)<<setw(5)<<(temp->chinese)<<setw(5)<<(temp->English)
<<setw(5)<<(temp->math)<<setw(5)<<(temp->physics)<<endl;
if(temp->cell==head->cell) head=head->next;
}
}
/**
*析构函数,只用程序的正常结束才会执行改函数,并且把学生的信息保存到文件中
*/
Student::~Student()
{
Student*temp;
temp=new Student;
ofstream write_file;
write_file.open("stuinfo.txt",ios::beg);
if(!write_file)
{
cout<<"信息写入文件失败!"<<endl;
cout<<"按任意键退出.";
cin.get();
exit(0);
}
temp=head;
while(temp!=NULL)
{
write_file<<temp->cell<<" "<<temp->name<<" "<<temp->sex<<" "<<temp->nation<<" "<<temp->address<<" "<<temp->nationality<<" "<<
temp->diploma<<" "<<temp->birthday<<" "<<temp->chinese<<" "<<temp->English<<" "<<temp->math<<" "<<temp->physics<<endl;
temp=temp->next;
}
write_file<<0;
write_file.close();
}
/**
*主函数,主要提供一些菜单选项
*/
void main()
{
char select;
int selection;
Student student;
cout<<"\n○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●"<<endl;
if(student.get_info()==0)
{
cout<<"文件中没有信息"<<endl;
cout<<"您想添加学生信息吗?(Y/N):";
cin>>select;
if(select=='y'||select=='Y')
student.add_info();
else exit(0);
}
cout<<" ________________________________"<<endl;
cout<<" |★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★|"<<endl;
cout<<" |☆| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|☆|"<<endl;
cout<<" |★| 学生信息选项如下 |★|"<<endl;
cout<<" |□|____________________________|□|"<<endl;
cout<<" |☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆|"<<endl;
cout<<" |□| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|□|"<<endl;
cout<<" |★| 输入 1 通过学号查询 |★|"<<endl;
cout<<" |☆| 输入 2 添加学生信息到文件 |☆|"<<endl;
cout<<" |★| 输入 3 从文件中删除信息 |★|"<<endl;
cout<<" |☆| 输入 4 浏览所有学生信息 |☆|"<<endl;
cout<<" |★| 输入任意键退出 |★|"<<endl;
cout<<" |☆|____________________________|☆|"<<endl;
cout<<" |★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★|"<<endl;
cout<<"  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄"<<endl;
cout<<"请输入选项:";
cin>>selection;
while(selection>=1&&selection<=4)
{
if(selection==1) student.search_info_cell();
if(selection==2) student.add_info();
if(selection==3) student.del_info();
if(selection==4) student.out_all_info();
cout<<" ________________________________"<<endl;
cout<<" |★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★|"<<endl;
cout<<" |☆| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|☆|"<<endl;
cout<<" |★| 学生信息选项如下 |★|"<<endl;
cout<<" |□|____________________________|□|"<<endl;
cout<<" |☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆|"<<endl;
cout<<" |□| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|□|"<<endl;
cout<<" |★| 输入 1 通过学号查询 |★|"<<endl;
cout<<" |☆| 输入 2 添加学生信息到文件 |☆|"<<endl;
cout<<" |★| 输入 3 从文件中删除信息 |★|"<<endl;
cout<<" |☆| 输入 4 浏览所有学生信息 |☆|"<<endl;
cout<<" |★| 输入任意键退出 |★|"<<endl;
cout<<" |☆|____________________________|☆|"<<endl;
cout<<" |★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★|"<<endl;
cout<<"  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄"<<endl;
cout<<"请输入选项:";
cin>>selection;
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式