1、用户界面设计如下:
*********欢迎进入学生成绩管理系统!*********
******************************************
**** 学生成绩管理系统 ****
******************************************
**************************
**0、输入数据 **
**1、增加数据 **
**2、修改数据 **
**3、按姓名查询 **
**4、按学号查询 **;
**5、输出所有学生的成绩 **
**6、退出系统 **
**************************
选择0-6数字进行操作"
============================"
2、定义student类:
(1)student类的定义
class student
{ private:
char name[20]; //姓名
double cpro,engli本文来自辣文论文网原文请找QQ752018766sh,math,sport,law,hbpro,computer;//课程
int order, number; //名次,学号
public:
student(){}
student(char n[20],int nu,double cc,double eng,double ma,double sp,double l,double hb,double com)
{strcpy(name,n);
number=nu;
cpro=cc; english=eng;math=ma;sport=sp;law=l;hbpro=hb;computer=com;
}
friend void main();
};
(2)内嵌构造函数
student(char n[20],int nu,double cc,double eng,double ma,double sp,double l,double hb,double com)
{strcpy(name,n);
number=nu;
cpro=cc; english=eng;math=ma;sport=sp;law=l;hbpro=hb;computer=com;
}初始化被声明的对象,
(3)friend void main();用friend声明main()函数为student类的友元函数,可访问student类的任何私有成员。
3、判断指令是否有效:
do //flag判断输入是否有效
{毕业论文http://www.751com.cn
cin>>p;
if((p>='0'&&p<='6'))
flag=1;
else
cout<<" 指令错误!请重新输入:"<<endl;
}while(flag==0);
4、对学生信息操作的各项功能实现:
switch(p) //接收功能选项
case’0’: //输入数据
case’1’: //增加数据
case’2’: //修改数据
case’3’: //按姓名查询
case’4’: //按学号查询
case’5’: //输出
case’6’: //退出
辣、系统调试
在定义student类时,没有用friend声明main()函数为这个类的友元函数,student类的私有成员不能被main()函数访问,声明了友元函数后,main()函数不仅可访问student类中的公开成员,而且可以访问它的任何私有成员,免去再调用类的成员函数所需的开销,提高程序的效率。
七、结论:
这次C++课程设计让我可以将书本的知识应用到实际编程中,让我体验到了实战的感觉,在实践中积累了宝贵的经验,使我对此门课充满了兴趣,也学到了很多知识,C++在社会中的用处也随处可见,它的作用也是不会被忽视的。
在编程过程中,我曾遇到很多问题,也失败了很多次,不过最终在老师的指导下,在同学的帮助下,并通过自己坚持不懈的努力,较为理想的完成了。
在这次课程设计的过程中,在老师的精心指导下,我的编程,理解,动手及思文能力有了提高,同时也了解到若想完满的完成任务需坚持不懈的努力,不要轻言放弃,也很深刻的认识到团队合作的重要性。
附录:源代码
#include<iostream.h>
#include<string.h>
#include<fstream.h>
#include<stdlib.h>
#include<iomanip.h>
class student
{ private:
char name[20]; //姓名
double cpro,english,math,sport,law,hbpro,computer;//课程
int order, number; //名次,学号
public:
student(){}
student(char n[20],int nu,double cc,double eng,double ma,double sp,double l,double hb,double com)
{strcpy(name,n);
number=nu;
cpro=cc; english=eng;math=ma;sport=sp;law=l;hbpro=hb;computer=com;
}
friend void main();
};
void main()
{
cout<<" *********欢迎进入学生成绩管理系统!*********"<<endl;
cout<<" ******************************************"<<endl;
cout<<" **** 学生成绩管理系统 ****"<<endl;
cout<<" ******************************************"<<endl;
cout<<" *******本文来自辣文论文网原文请找QQ752018766*******************"<<endl;
cout<<" **0、输入数据 **"<<endl;
cout<<" **1、增加数据 **"<<endl;
cout<<" **2、修改数据 **"<<endl;
cout<<" **3、按姓名查询 **"<<endl;
cout<<" **4、按学号查询 **"<<endl;
cout<<" **5、输出所有学生的成绩 **"<<endl;
cout<<" **6、退出系统 **"<<endl;
cout<<" **************************"<<endl;
cout<<" 选择0-6数字进行操作"<<endl;
cout<<" ============================"<<endl;
char p;char w;
student *s[50]; //指针对象,最多存50个学生数据
ofstream *file[50]; //负责对文件插入操作
int i=0;
int j=0;
int flag=0;
do //flag判断输入是否有效
{
cin>>p;
if((p>='0'&&p<='6'))
flag=1;
else
cout<<" 指令错误!请重新输入:"<<endl;
}while(flag==0);
do{
switch(p) //接收功能选项
{
case '0': //输入数据
{
char c;
char name[20];int number;double cpro,english,math,sport,law,hbpro,computer;
do{
cout<<" 请输入姓名:";
毕业论文http://www.751com.cn
cout<<" 请输入C++成绩:";
cin>>cpro;
cout<<endl<<" 请输入英语成绩:";
cin>>english;
cout<<endl<<" 请输入数学成绩:";
cin>>math;
cout<<endl<<" 请输入体育成绩:";
cin>>sport;
cout<<endl<<" 请输入法律基础成绩:";
cin>>law;
cout<<endl<<" 请输入汇编语言成绩:";
cin>>hbpro;
cout<<endl<<" 请输入微机原理成绩:";
cin>>computer;
cout<<endl;
file[j]=new ofstream("D:",ios::ate);
*file[j]<<" 姓名 "<<name<<" 学号 "<<number<<" C++成绩 "<<cpro
<<" 英语成绩 "<<english<<" 数学成绩 "<<math<<" 体育成绩 "
<<sport<<" 法律基础成绩 "<<law<<" 汇编成绩 "<<hbpro<<" 微机原理成绩 "<<computer<<endl;
j++;
s[i]=new student(name, number,cpro,english,math,sport,law,hbpro,computer);
i++;
cout<<" 数据输入成功,想继续输入吗(y/n):";
cin>>c;
cout<<endl;
do
{
if(c!='y'&&c!='n')
{
cout<<" 指令错误!请重新输入!"<<endl<<" ";
cin>>c;
}
else
flag=1;
}while(flag==0);
}while(c=='y');
break;
}
case '1': //增加数据
{
char name[20];
int number;double cpro,english,math,sport,law,hbpro,computer;
char c;
do
{
cout<<" 请输入您要增加的学生的姓名:";
cin>>name;
cout<<endl<<" 请输入学号:";
cin>>number;
cout<<endl<<" 请输入C++成绩:";
cin>>cpro;
cout<<endl<<" 请输入英语成绩:";
cin>>en本文来自辣文论文网原文请找QQ752018766glish;
cout<<endl<<" 请输入数学成绩:";
cin>>math;
cout<<endl<<" 请输入体育成绩:";
cin>>sport;
cout<<endl<<" 请输入法律基础成绩:";
cin>>law;
cout<<endl<<" 请输入汇编语言成绩:";
cin>>hbpro;
cout<<endl<<" 请输入微机原理成绩:";
cin>>computer;
cout<<endl;
file[j]=new ofstream("d:",ios::ate);
*file[j]<<" 姓名 "<<name<<" 学号 "<<number<<" C++成绩 "<<cpro<<" 英语成绩 "<<english<<" 数学成绩 "<<math<<" 体育成绩 "<<sport<<" 法律基础成绩 "<<law<<" 汇编成绩 "<<hbpro<<" 微机原理成绩 "<<computer<<endl;
j++;
s[i]=new student(name, number, cpro,english,math,sport,law,hbpro,computer);
i++;
cout<<" 数据输入成功,想继续数入吗(y/n):";
cin>>c;
cout<<endl;
if(c!='y'&&c!='n')
{
cout<<" 指令错误!请重新输入!"<<endl<<" ";
cin>>c;
}
}while(c=='y');
毕业论文http://www.751com.cn
{
char name[20];int nu;double cc,eng,ma,sp,l,hb,com;flag=0;
char c;
if(i==0)
{
cout<<" 管理系统中没有输入数据!"<<endl;break;
}
do
{
cout<<" 请输入您要修改的学生的姓名:";
cin>>name;
cout<<endl;
for(int h=0;h<i;h++) //h纪录要修改学生的位置
{
if(strcmp(name,s[h]->name)==0)
{
flag=1;
cout<<" 请输入新的学号:";
cin>>nu;
cout<<endl<<" 请输入C++成绩:";
cin>>cc;
cout<<endl<<" 请输入英语成绩:";
cin>>eng;
cout<<endl<<" 请输入数学成绩:";
cin>>ma;
cout<<endl<<" 请输入体育成绩:";
cin>>sp;
cout<<endl<<" 请输入法律基础成绩:";
cin>>l;
cout<<endl<<" 请输入汇编语言成绩:";
cin>>hb;
cout<<endl<<" 请输入微机原理成绩:";