| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1587 人关注过本帖, 1 人收藏
标题:麻烦大家帮我修改一下我的课程设计,学生成绩管理系统
只看楼主 加入收藏
zry11222
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-7-9
收藏(1)
 问题点数:0 回复次数:3 
麻烦大家帮我修改一下我的课程设计,学生成绩管理系统
程序能运行,但存在很多问题,我实在是找不出来了,麻烦大家来帮我找找,我在这里感激不尽了。

程序如下:

/*一、设计要求:
利用面向对象的设计方法,即封装、继承和多态技术,实现对学生成绩表:
1)建立:采用顺序存储结构。  2)插入                      3)删除
4)排序:直接插入排序        5)查找:折半查找。          6)浏览
7)统计计算(计算每门课的总分、平均成绩)
二、类设计
人员类person:(编号,姓名,性别;输入,浏览)。
学生类student:继承person,增加成绩,输入,浏览。
学生表类stulist:(学生类数组;输入,浏览,插入,删除,排序,查找,统计计算)
输入、浏览用多态实现。
三、设计方法
以上是一个初步的设计,具体设计时再作调整。通过查阅资料,相互讨论,完成设计,最后交设计报告。
四、设计计划
星期一:阅读、查资料,实现表结构,数据成员,成绩表的建立和浏览。
星期二:记录的插入、删除实现      星期三:记录的排序、查找实现
星期四:程序的完整实现和调试。    星期五:写实验报告并上传。
五、课程设计报告格式
1)封面:题目,姓名,指导教师,日期 2)设计的目的及意义          3)设计的理论和实现的方法
4)设计的特点                       5)设计中的问题              6)程序清单*/

#include<iostream.h>
#include<stdio.h>
#include<string.h>

struct stud
{
    int nu;
    char name[10];
    char xb[2];
    int dj1;
    int dj2;
    int dj3;
    int sum;
};

class Person
{
protected:
    int nu;
    char name[10];
    char xb[2];
public:
    void setdata(int n,char na[],char x[])
    {
        nu=n;
        strcpy(name,na);
        strcpy(xb,x);
    }
    void show()
    {
        cout<<nu<<" "<<name<<" "<<xb<<" ";
    }
    friend class Stulist;
};

class Student
{
protected:
    int nu;
    char name[10];
    char xb[2];
    int dj1,dj2,dj3;
public:
    void setstu(int n,char na[],char x[],int d1,int d2,int d3)
    {
        nu=n;
        strcpy(name,na);
        strcpy(xb,x);
        dj1=d1;
        dj2=d2;
        dj3=d3;
    }
    void show()
    {
        cout<<dj1<<" "<<dj2<<" "<<dj3;
    }
    friend class Stulist;
};

class Stulist
{
private:
    int i;
    stud stu[50];
public:
    void set(int n,char na[],char x[],int d1,int d2,int d3,int i)
    {
        stu[i].nu=n;
        strcpy(stu[i].name,na);
        strcpy(stu[i].xb,x);
        stu[i].dj1=d1;
        stu[i].dj2=d2;
        stu[i].dj3=d3;
        stu[i].sum=stu[i].dj1+stu[i].dj2+stu[i].dj3;
    }
    void show(int i)
    {
        cout<<stu[i].nu<<" "<<stu[i].name<<" "<<stu[i].xb
        <<" "<<stu[i].dj1<<" "<<stu[i].dj2<<" "<<stu[i].dj3<<endl;
    }
    void insert(int i)
    {
        int n,d1,d2,d3,j;
        char na[10],x[2];
        cout<<"请输入需要插入记录的数据:"<<endl;
        cout<<"编号  姓名  性别  数据结构  C++  计算机组成原理: "<<endl;
        cin>>n>>na>>x>>d1>>d2>>d3;
        stu[i+1].nu=n;
        strcpy(stu[i+1].name,na);
        strcpy(stu[i+1].xb,x);
        stu[i+1].dj1=d1;
        stu[i+1].dj2=d2;
        stu[i+1].dj3=d3;
        i=i+1;
        cout<<"学生表数据输出\n"<<"编号  姓名  性别  数据结构  C++  计算机组成原理: "<<endl;
        for(j=0;j<i+1;j++)
        {
            show(j);
        }
    }
    void del(int t)
    {

        int m,i,j;
        char x;
        cout<<"请输入需要删除记录的编号:"<<endl;
        cin>>m;
        for(i=0;i<t;i++)
        {
            if(stu[i].nu!=m)
            {
                cout<<"对不起,没有此学生的信息!"<<endl;
                break;
            }
            else
            {
                cout<<"编号  姓名  性别  数据结构  C++  计算机组成原理:"<<endl;
                cout<<stu[i].nu<<" "<<stu[i].name<<" "<<stu[i].xb
                <<" "<<stu[i].dj1<<" "<<stu[i].dj2<<" "<<stu[i].dj3<<endl;
                cout<<"你确定要删除此学生信息么?(y/n)"<<endl;
                cin>>x;
                if(x=='y'||x=='Y')
                {
                    for(int j=i;j<=t;j++)
                    {   
                        stu[j].nu=stu[j+1].nu;
                        strcpy(stu[j].name,stu[j+1].name);
                        strcpy(stu[j].xb,stu[j+1].xb);
                        stu[j].dj1=stu[j+1].dj1;
                        stu[j].dj2=stu[j+1].dj2;
                        stu[j].dj3=stu[j+1].dj3;
                    }
                    cout<<"该学生记录已经删除"<<endl;
                    for(i=0;i<t-1;i++)
                    {
                        show(i);
                    }
                }
                    else
                    cout<<"执行下一级命令"<<endl;
            }
            break;
        }
    }
    void rearch(int t)
    {
        int m,i;
        char x;
        cout<<"请输入需要查询记录的编号:"<<endl;
        cin>>m;
        for(i=0;i<t;i++)
        {
            if(stu[i].nu!=m)
            {
                cout<<"对不起,没有此学生的信息!"<<endl;
                break;
            }
            else
            {
                cout<<"编号  姓名  性别  数据结构  C++  计算机组成原理:"<<endl;
                cout<<stu[i].nu<<" "<<stu[i].name<<" "<<stu[i].xb
                <<" "<<stu[i].dj1<<" "<<stu[i].dj2<<" "<<stu[i].dj3<<endl;
            }
            break;
        }
    }
    void sort(int t)
    {
        cout<<"因为目前程序并不完善,所以只提供按总分排序,请见谅!"<<endl;
        int a[50],i,j,x;
        for(i=0;i<t;i++)
        {
            a[i]=stu[i].sum;
        }
        for(i=0;i<t;i++)
            for(j=0;j<t-i;j++)
                if(a[j]<a[j+1])
                {
                    x=a[j];
                    a[j]=a[j+1];
                    a[j+1]=x;
                }
        for(i=0;i<t;i++)
            for(j=0;j<t;j++)
                if(a[i]==stu[j].sum)
                {
                    cout<<stu[i].nu<<" "<<stu[i].name<<" "<<stu[i].xb
                    <<" "<<stu[i].dj1<<" "<<stu[i].dj2<<" "<<stu[i].dj3<<endl;
                }
    }
};

void sc()
{
    cout<<"           欢迎使用学生管理系统1.7版"<<endl;
    cout<<"                                 张若愚,李师林"<<endl;
    cout<<"按回车键继续。。。"<<endl;
}

void main()
{
    sc();
    getchar();
    Person pe[50];
    Student st[50];
    Stulist xs;
    int i,j,t;
    int n,cj1,cj2,cj3;
    char na[10],sex[2],a;
    cout<<"您有几条学生记录需要输入:"<<endl;
    cin>>t;
    cout<<"输入数据\n"<<"编号  姓名  性别  数据结构  C++  计算机组成原理: "<<endl;
    for(i=0;i<t;i++)
    {
        cin>>n>>na>>sex;
        pe[i].setdata(n,na,sex);
        cin>>cj1>>cj2>>cj3;
        st[i].setstu(n,na,sex,cj1,cj2,cj3);
        xs.set(n,na,sex,cj1,cj2,cj3,i);    
    }
    cout<<"人员数据输出\n"<<"编号  姓名  性别: "<<endl;
    for(j=0;j<t;j++)
    {
        pe[j].show();
        cout<<endl;
    }
    cout<<"学生成绩输出\n"<<"数据结构  C++  计算机组成原理: "<<endl;
    for(j=0;j<t;j++)
    {
        st[j].show();
        cout<<endl;
    }
    cout<<"学生表数据输出\n"<<"编号  姓名  性别  数据结构  C++  计算机组成原理: "<<endl;
    for(i=0;i<t;i++)
    {
        xs.show(i);
    }
    cout<<"用户需要插入数据么?(y/n)"<<endl;
    cin>>a;
    if(a=='y'||a=='Y')
    {
        xs.insert(t);
        t=t+1;
        cout<<"执行下一级命令"<<endl;
    }
    else
        cout<<"执行下一级命令"<<endl;
    cout<<"用户需要删除数据么?(y/n)"<<endl;
    cin>>a;
    if(a=='y'||a=='Y')
    {
        xs.del(t);
        t=t-1;
        cout<<"执行下一级命令"<<endl;
    }
    else
        cout<<"执行下一级命令"<<endl;
    cout<<"用户需要查询数据么?(y/n)"<<endl;
    cin>>a;
    if(a=='y'||a=='Y')
    {
        xs.rearch(t);
        cout<<"执行下一级命令"<<endl;
    }
    else
        cout<<"执行下一级命令"<<endl;
    cout<<"用户需要给数据排序么?(y/n)"<<endl;
    cin>>a;
    if(a=='y'||a=='Y')
    {
        xs.sort(t);
        cout<<"执行下一级命令"<<endl;
    }
    else
        cout<<"执行下一级命令"<<endl;
}

实在是谢谢了!
搜索更多相关主题的帖子: 课程 系统 学生 麻烦 管理 
2008-07-09 20:13
zezhi821
Rank: 1
来 自:广东汕头潮阳
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-7-10
收藏
得分:0 
我是入门者,看了一眼,那个i重复定义了,其他没时间去看,现在是考试时间,找高手帮忙吧!
2008-07-10 13:43
hitxinyu
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2008-4-11
收藏
得分:0 
没仔细看,
        for(i=0;i<t;i++)
        {
            if(stu[i].nu!=m)
            {
                cout<<"对不起,没有此学生的信息!"<<endl;
                break;
            }
            else

这里有问题。
不应该不匹配就break。
应该continue
2008-07-17 22:00
z出口
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-5-1
收藏
得分:0 
有成品吗,想参考一下
2016-05-01 14:34
快速回复:麻烦大家帮我修改一下我的课程设计,学生成绩管理系统
数据加载中...
 
   



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

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