您的位置:首页 > 其它

作业6-学生成绩录入

2016-04-26 17:31 387 查看
组长:丁新宇;

本组成员:刘晓明,司明周,方振华,赵资阳;

贡献得分分配:丁新宇20%,刘晓明20%,司明周20%,方振华20%,赵资阳20%;

语言:c++;

编译环境:codeblock;

必做一 : 学生成绩录入系统功能需求:

1.添加、修改、删除学生信息;

2.按学号查询学生数据;

3.录入、修改学生成绩;

4.按成绩或学号排序

必做三: WBS图像:



必做四: 任务分配:

1.丁新宇,设计程序的整体数据结构,各个函数的功能要求;

2.刘晓明,用户界面设计;

3.司明周,学生信息的输入,查找;

4.方振华,学生信息的修改,删除;

5.赵资阳,对学生以总成绩或学号为基准进行排序 。

#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <cstring>
#define M 50
/********************************全局变量***************************/
using namespace std;

typedef struct
{   long id;                        /*学号*/
char name[20];                  /* 姓名 */
char sex[10];
int  math;                      /* 数学成绩  */
int  english;
int  c_program;
int  total;
}STUDENTS;
STUDENTS stu[M];                    /* 定义学生结构体变量 */
int num=-1;                         /* num+1:当前学生个数*/
/* ////////////////////////函数声明////////////////////////// */

/* ////////主功能模块///////// */
void page_title();      /* 主菜单  */
void student_new();     /* 录入学生  */
void student_edit();    /* 修改学生信息  */
void student_del();     /* 删除学生信息  */
void score_search();    /* 根据学号查询学生信息  */
void id_sort();         /* 通过学号递增排序输出  */
void score_sort( );     /* 按成绩递减排序输出  */
void show(int s);       /* 显示学生信息  */

/* ////////子功能模块////////// */
int  find(long id);     /* 通过学号查询数组下标  */
void show_one( int n);  /* 显示一个学生信息  */
void input_one(int n);  /* 输入一个学生信息  */
void count(int n);      /* 计算总成绩 */
void into_menu();       /* 从功能模块进入主菜单 */
void left();            /* 保存退出 */
void page_head1();
void page_head2();

/* ////////////////////主函数/////////////////////// */
int main()
{

while(1)
{
page_title();
}
}

/* ////////////////////主菜单/////////////////////////// */
void page_title()
{
char c;
system("cls");       /* 清屏 */
cout<<"\n\n>>>>>>>>>>>>> 学 生 成 绩 管 理 系 统 <<<<<<<<<<<<<\n\n";
cout<<"\t1 录入学生成绩记录\n\n";
cout<<"\t2 显示学生成绩记录\n\n";
cout<<"\t3 修改学生成绩记录\n\n";
cout<<"\t4 删除学生成绩记录\n\n";
cout<<"\t5 按学号查询学生记录\n\n";
cout<<"\t6 按学号显示学生记录\n\n";
cout<<"\t7 按总成绩递减输出\n\n";
cout<<"\t0 退出\n\n";
cout<<"***************************************************\n";
cout<<" 请用数字键0-8选择操作\n\n";
c=getch();
system("cls");
switch(c)
{
case '1' : student_new();break;     /* 录入学生基本信息 */
case '2' : show(0);break;           /* 显示所有记录 */
case '3' : student_edit();break;    /* 修改记录 */
case '4' : student_del();break;     /* 删除记录 */
case '5' : score_search();break;    /* 查询记录 */
case '6' : id_sort();break;         /* 按学号排序显示 */
case '7' : score_sort();break;      /* 按成绩递减排序显示 */
case '0' : left();                  /* 退出     */
}
}
void student_new()
{
int n=0;
cout<<"\n请输入学生的个数: ";
cin>>n;                                /*输入选择项 */
/* 将输入的字符串转化为整型数*/
while(!(n>0 && n<=M))
{
cout<<"\n请重新输入学生个数: ";
cin>>n;  /*输入选择项*/
/*将输入的字符串转化为整型数*/
}
cout<<endl;
page_head1();
while(n--)
{   num++;
input_one(num);
count(num);
}
}
void student_del()
{
long id;
char c;
int n;
while(1)
{
cout<<"请输入你要删除学生的学号:";
cin>>id;
cout<<endl;
n=find(id);
if(n!=-1)
break;
else
system("cls");
}
page_head2();
show_one(n);
cout<<"\n 请确认删除吗?请输入Y或者N";
c=getch();
if('Y'==c || 'y'==c)
{
stu
.id=stu[num].id;
stu
.math=stu[num].math;
stu
.english=stu[num].english;
stu
.total=stu[num].total;
strcpy(stu
.name,stu[num].name);
strcpy(stu
.sex,stu[num].sex);
num--;
}

}
void student_edit()
{
long id;
int n;
while(1)
{
cout<<"请输入你要修改学生的学号:";
cin>>id;
cout<<endl;
n=find(id);
if(n!=-1)
break;
else
system("cls");
}
page_head2();
show_one(n);
cout<<"\n请输入新的信息:\n";
page_head1();
cin>>stu
.id>>stu
.name>>stu
.sex>>stu
.math>>stu
.english>>stu
.c_program;
count(n);
}
void score_search()
{
long id;
int n;
cout<<("请输入你要查询学生的学号:");
cin>>id;
cout<<endl;
n=find(id);
if(n!=-1)
{   page_head2();
show_one(n);

}
else
cout<<"不存在该学号学生信息!!";
into_menu();
}
void id_sort( )
{   int i=0;
int n;
long min=stu[0].id;
for(i=1;i<=num;i++)
{
if(stu[i].id <min)
min=stu[i].id;
}
page_head2();
for(i=0;i<=num;)
{   n=find(min++);
if(n!=-1)
{
i++;
show_one(n);
}

}
into_menu();            /* 进入主菜单 */
}
void score_sort( )
{
int i,j,k,max,t;
int index[M];
for(j=0;j<num+1;j++)
{
index[j]=j;
}
for(i=0;i<num;i++)
{
max=index[i];k=i;
for(j=i+1;j<num+1;j++)
{
t=index[j];
if(stu[t].total>stu[max].total)
{  max=t;
k=j;
}
}
t=index[k];index[k]=index[i];index[i]=t;
}
page_head2();
for(i=0;i<num+1;i++)
{
k=index[i];
show_one(k);
}
into_menu();
}
void show(int s)
{   int i,j;
page_head2();
for(i=0;i<num+1;i++)
{
if(-1==s)
j=num-i;
else
j=i;
show_one(j);
}
into_menu();          /* 进入主菜单 */

}
int find(long id)
{
int n;
for(n=0;n<=num;n++)
{
if( stu
.id==id )
{
return n;
}

}
return -1;
}
void input_one(int n)
{
cin>>stu
.id>>stu
.name>>stu
.sex>>stu
.math>>stu
.english>>stu
.c_program;
cout<<"--------------------------------------------------------------\n";
}
void show_one(int n)
{
cout<<stu
.id<<'\t'<<stu
.name<<'\t'<<'\t'<<stu
.sex<<'\t';
cout<<stu
.math<<'\t'<<stu
.english<<'\t'<<stu
.c_program<<'\t'<<stu
.total<<endl;
cout<<"----------------------------------------------------------------------\n";

}
void count(int n)
{
stu
.total=stu
.math+stu
.english+stu
.c_program;
}
void left()
{
exit(0);
}
void into_menu()
{
cout<<"\n请按任意键进入主菜单";
getch();
}
void page_head2()
{
cout<<"**********************************************************************\n";
cout<<"学号\t\t姓名\t\t性别\t数学\t英语\tC语言\t总成绩\n";
cout<<"**********************************************************************\n";
}
void page_head1()
{
cout<<"**************************************************************\n";
cout<<"学号\t\t姓名\t\t性别\t数学\t英语\tC语言\n";
cout<<"**************************************************************\n";
}




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: