| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1105 人关注过本帖
标题:请设计一个学生作业完成情况管理程序
只看楼主 加入收藏
tigermlt
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-5-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
请设计一个学生作业完成情况管理程序
假设某门课程一学期要留10次作业,每次老师要进行批改,给出分数后还要进行登记。学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)。
该程序应该具有下列功能:
(1) 录入全部学生所有作业的完成情况;
(2) 显示全部学生所有作业的完成情况;
(3) 添加某位学生某次作业的分数;
(4) 给定学号,显示某位学生作业完成情况;
(5) 给定某个班级的班号,显示该班所有学生的作业完成情况;
(6) 给定某位学生的学号,修改该学生的作业完成信息, 要求有修改确认;
(7) 给定某位学生的学号,删除该学生的信息, 要求有删除确认;
(8) 提供一些排序、统计各类信息的功能(如对学生作业信息进行排序,作业最高分、最低分学生的信息,各分数段的学生人数等)。
【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 作业登记信息应该包含:学号、姓名、10次作业的完成情况;
(3) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后(若需要,还可显示子菜单),根据应用程序的提示信息,从键盘输入相应的信息。要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【输出要求】
(1)  应用程序运行后,要在屏幕上显示一个菜单;
(2)  要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【提示】
   设计一个结构类型(含学生的学号、姓名、10次作业的完成情况)和一个该结构类型的一维数组(存放若干学生的作业登记信息)。
搜索更多相关主题的帖子: 学生 管理程序 课程 
2012-05-22 20:28
tigermlt
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-5-22
收藏
得分:0 
#include <iostream.h>
#include <string.h>
#include <windows.h>
using namespace std;
#define RIGHT 1
class Student
{
public:
    Student();
    void show();
    void write_in();
    friend void shownum(Student &);
    static int number;
    friend string returnname(Student &);
    friend string returnno(Student &);
private:
    string Name;
    string No;
    int Age;
    string Sex;
};
Student::Student()
{
}
void Student::show()//打印学生信息
{
    cout<<Name<<"\t"<<No<<"\t"<<Age<<"\t"<<Sex<<endl;
}
void Student::write_in()//输入学生信息
{
    cout<<"please write in:"<<endl;
    cout<<"name:";
    cin>>Name;
    cout<<"no:";
    cin>>No;
    cout<<"age:";
    cin>>Age;
    cout<<"sex:";
    cin>>Sex;
    number++;
}
void shownum(Student &s)//打印目前学生人数
{

    cout<<"目前学生总人数为:"<<s.number<<endl;
}
int Student::number=0;
string returnname (Student &s)
{
    return s.Name;
}
string returnno (Student &s)
{
    return s.No;
}
class Score
{
public:
    Score();
    void show(Score &);
    void write_in();
    friend double ave(Score &);
    friend void Change(Score &);
private:
    int Math;
    int English;
    int C;
    int Chinese;
};
Score::Score()
{
    Math=0;English=0;C=0;Chinese=0;
}
void Score::show(Score &c)//打印学生成绩
{
    double ave=(Math+English+C+Chinese)/4.0;
    cout<<Math<<"\t"<<English<<"\t"<<C<<"\t"<<Chinese<<"\t"<<ave<<endl;
}
void Score::write_in()//输入学生成绩
{
    cout<<"please write in:"<<endl;
    cout<<"Math:";
    cin>>Math;
    cout<<"English:";
    cin>>English;
    cout<<"C:";
    cin>>C;
    cout<<"Chinese:";
    cin>>Chinese;
}
//double ave(Score &c)//该学生的平均成绩
//{
//    c.Ave=(c.Math+c.English+c.C+c.Chinese)/4;
//    return 0;
//}
void Change(Score &s)
{
    cout<<"please write in:"<<endl;
    cout<<"Math:";
    cin>>s.Math;
    cout<<"English:";
    cin>>s.English;
    cout<<"C:";
    cin>>s.C;
    cout<<"Chinese:";
    cin>>s.Chinese;
}
class Operate//操作(对学生各门课程成绩的增、删、改、查)
{

public:
    Operate()
    {}
    void add(Student &stu,Score &sco);
    void deletesco(Student &stu,Score &sco,int );
    void change(Score &sco);
    void check(Student stu,Score sco);
private:
    Student stu;
    Score sco;
};
void Operate::add(Student &stu,Score &sco)//添加学生
{
    stu.write_in();
    sco.write_in();
}
void Operate::deletesco(Student &stu,Score &sco,int i)//删除学生
{
    Student *s;
    Score *sc;
    s=new Student[stu.number];
    sc=new Score[stu.number];
    cout<<"删除学生信息为:"<<endl;
    cout<<"Name"<<"\t"<<"No"<<"\t"<<"Age"<<"\t"<<"Sex"<<endl;
    stu.show();
    cout<<"Math"<<"\t"<<"English"<<"\t"<<"C"<<"\t"<<"Chinese"<<"\t"<<"Ave"<<endl;
    sco.show(sco);
    for (i;i<stu.number;i++)
    {
        s[i]=s[i+1];
        sc[i]=sc[i+1];
    }
    s[i-1].number--;
}
void Operate::change(Score &sco)//修改学生成绩。
{
    cout<<"当前学生成绩为:"<<endl;
    cout<<"Math"<<"\t"<<"English"<<"\t"<<"C"<<"\t"<<"Chinese"<<"\t"<<"Ave"<<endl;
    sco.show(sco);
    Change(sco);
}
void Operate::check(Student stu,Score sco)//查找学生
{
    cout<<"Name"<<"\t"<<"No"<<"\t"<<"Age"<<"\t"<<"Sex"<<endl;
    stu.show();
    cout<<"Math"<<"\t"<<"English"<<"\t"<<"C"<<"\t"<<"Chinese"<<"\t"<<"Ave"<<endl;
    sco.show(sco);
}
int main ()
{
    int n=0;//n用来做数组下标。
    Student stu[10];
    Score sco[10];
    int i=1;
    int j,k=0;
    string c;
    string ch;
    Operate ope;
    while (i)
    {
        system("cls");
        cout <<"******************欢迎进入学生成绩管理系统******************"<<endl;
        cout <<"-----------------------------------------------------------"<<endl;
        cout<<"******************  录入学生信息和成绩:1   ******************"<<endl;
        cout<<"******************  按学号查询学生的信息:2 ******************"<<endl;
        cout<<"******************  按名字查询学生的信息:3 ******************"<<endl;
        cout<<"******************  按学号删除学生的信息:4 ******************"<<endl;
        cout<<"******************  按名字删除学生的信息:5 ******************"<<endl;
        cout<<"******************  按学号修改学生的信息:6 ******************"<<endl;
        cout<<"******************  按名字修改学生的信息:7 ******************"<<endl;
        cout<<"******************  查询当前总学生的情况:8 ******************"<<endl;
        cout<<"******************  退出该系统请按:      0 ******************"<<endl;
        cout <<"-----------------------------------------------------------"<<endl;
        cin>>j;
        //getchar();
        switch (j)
        {
        case 1:    //录入学生信息和成绩:1   
            ope.add(stu[n],sco[n]);
            n++;
            break;
        case 2://按学号查询学生的信息:2
            cout<<"请输入学生学号:"<<endl;
            cin >>c;
            for (k=0;k<n;k++)
            {
                ch=returnno(stu[k]);
                if (c==ch)
                {
                    cout<<"该学生的信息为:"<<endl;
                    ope.check(stu[k],sco[k]);
                    goto tt;
                }
                if (k==n-1&&c!=returnno(stu[k]))
                {
                    cout<<"输入该学号错误"<<endl;
                }
            }
            getchar();
            break;
        case 3://按名字查询学生的信息:3
            cout<<"请输入学生名字:"<<endl;
            cin >>c;
            for (k=0;k<n;k++)
            {
                ch=returnname(stu[k]);
                if (c==ch){
                    cout<<"该学生的信息为:"<<endl;
                    ope.check(stu[k],sco[k]);
                    goto tt;}
                if (k==n-1&&c!=ch)
                {
                    cout<<"输入该名字错误"<<endl;
                }
            }
            getchar();
            break;
        case 4:// 按学号删除学生的信息:4
            cout<<"请输入学生学号:"<<endl;
            cin >>c;
            for (k=0;k<n;k++)
            {
                ch=returnno( stu[k]);
                if (c==ch){
                    ope.deletesco(stu[k],sco[k],k);
                    goto tt;}
                if (k==n-1&&c!=ch)
                {
                    cout<<"输入该学号错误"<<endl;
                }
            }
            getchar();
            break;
        case 5://按名字删除学生的信息:5
            cout<<"请输入学生名字:"<<endl;
            cin >>c;
            for (k=0;k<n;k++)
            {
                ch=returnname(stu[k]);
                if (c==ch){
                    ope.deletesco(stu[k],sco[k],k);
                    goto tt;}
                if (k==n-1&&c!=ch)
                {
                    cout<<"输入该名字错误"<<endl;
                }
            }
            getchar();
            break;
        case 6://按学号修改学生的信息:6
            cout<<"请输入学生学号:"<<endl;
            cin >>c;
            for (k=0;k<n;k++)
            {
                ch=returnno( stu[k]);
                if (c==ch){
                    ope.change(sco[k]);
                    goto tt ;}
                if (k==n-1&&c!=ch)
                {
                    cout<<"输入该学号错误"<<endl;
                }
            }
            getchar();
            break;
        case 7://按名字修改学生的信息:7
            cout<<"请输入学生名字:"<<endl;
            cin >>c;
            for (k=0;k<n;k++)
            {
                ch=returnname(stu[k]);
                if (c==ch){
                    ope.change(sco[k]);
                    goto tt;}
                if (k==n-1&&c!=ch)
                {
                    cout<<"输入该名字错误"<<endl;   
                }
            }
            getchar();
            break;
        case 8://查询当前总学生情况8。
            shownum(stu[0]);
            for (k=0;k<n;k++)
            {
                ope.check(stu[k],sco[k]);
            }
            getchar();
            break;
        case 0:
            return -1;
        }
tt:getchar();
   getchar();
    }
    return 0;
}

这里有一个程序是从论坛里找的(有问题,但大神可以根据这个来修改),我用winTC说#include <iostream.h>和#include <windows.h>
有错误,不知道为什么
2012-05-22 20:30
阴阳
Rank: 4
等 级:业余侠客
帖 子:102
专家分:297
注 册:2012-4-7
收藏
得分:10 
#include <iostream.h>这个是c++的吧?

一阴一阳之谓道!
2012-05-22 21:52
YUANYANG1991
Rank: 2
等 级:论坛游民
帖 子:14
专家分:12
注 册:2012-4-6
收藏
得分:10 
回复 2楼 tigermlt
亲,这里是c语言论坛,你这是?
2012-05-22 22:24
快速回复:请设计一个学生作业完成情况管理程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045084 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved