zhangyupeng 发表于 2019-6-26 21:20:51

c语言设计学生成绩程序,求设计过程和思想

学生成绩管理系统,编写一个菜单驱动的学生成绩管理程序。要求如下:
1)能输入并显示n个学生的m门考试科目的成绩、总分和平均分。
2)按总分由高到低进行排序。
3)任意输入一个学号,能显示该学生的姓名、各门功课的成绩。
加分项目:
(1)        成绩可以保存到文件中,并将文件的数据输出到屏幕上。
(2)        用链表实现

Krant5 发表于 2019-6-27 10:13:14

用C语言你就从上往下写就行了,写出来再慢慢优化

我叫MD 发表于 2019-6-27 10:16:31

这个感觉还是比较简单的,按着逻辑封装好函数,依次循环调用就好了

我之前倒是实现过一次类似的通讯管理,不过我没用文件操作,而且我是用数组实现的那时候不会链表

我叫MD 发表于 2019-6-27 10:17:04

我叫MD 发表于 2019-6-27 10:16
这个感觉还是比较简单的,按着逻辑封装好函数,依次循环调用就好了

我之前倒是实现过一次类似的通讯管理 ...

需要的话给你找找你当作参考

预上分猛男 发表于 2019-6-27 12:37:56

我叫MD 发表于 2019-6-27 10:17
需要的话给你找找你当作参考

想问用C++编写的学生档案管理系统吗,借鉴一下{:5_99:}

zhangyupeng 发表于 2019-6-27 12:42:49

我叫MD 发表于 2019-6-27 10:17
需要的话给你找找你当作参考

高手的作品,我当然想参考了

我叫MD 发表于 2019-6-27 18:39:31

预上分猛男 发表于 2019-6-27 12:37
想问用C++编写的学生档案管理系统吗,借鉴一下

发下面了   自己做个参考把   我也是个新手一起学习一起进步

我叫MD 发表于 2019-6-27 18:43:31

zhangyupeng 发表于 2019-6-27 12:42
高手的作品,我当然想参考了

我可不是高手,刚刚学习而已 ,我的是通讯录的管理系统,只可以借鉴,不能抄的,自己看看 ,这个程序都差不多一个样子   不会的话多多交流, 最后还希望给个最佳答案


#include <iostream>
#include <string>

#define MAX 1000

using namespace std;

void showMenu();                                    //打印欢迎界面
void addition(struct Contacts contacts[]);            //添加联系人
void show(struct Contacts contacts[]);                //显示联系人
void deleteition(struct Contacts contacts[]);         //删除联系人
void loctition(struct Contacts contacts[]);         //查找联系人
void change(struct Contacts contacts[]);            //修改联系人
void empty();                                       //清空联系人

struct Contacts
{
        string m_Name;
        string m_Sex;
        string m_Age;
        string m_Phone;
        string m_Address;
};

int g_count = 0;

void showMenu()
{
        cout << "*******************************************" << endl;
        cout << "************** 1、添加联系人 **************" << endl;
        cout << "************** 2、显示联系人 **************" << endl;
        cout << "************** 3、删除联系人 **************" << endl;
        cout << "************** 4、查找联系人 **************" << endl;
        cout << "************** 5、修改联系人 **************" << endl;
        cout << "************** 6、清空联系人 **************" << endl;
        cout << "************** 0、退出通讯录 **************" << endl;
        cout << "*******************************************" << endl;
}

void addition(struct Contacts contacts[])
{
        cout << "请输入姓名:";
        cin >> contacts.m_Name;
        cout << "请输入性别:";
        cin >> contacts.m_Sex;
        cout << "请输入年龄:";
        cin >> contacts.m_Age;
        cout << "请输入电话:";
        cin >> contacts.m_Phone;
        cout << "请输入地址:";
        cin >> contacts.m_Address;
       
        g_count++;
}

void show(struct Contacts contacts[])
{
        if(g_count == 0)
        {
                cout << "您还没有联系人,请添加..." << endl;
                cout << endl;
                return;
        }
        else
        {
                for(int i = 0; i < g_count; i++)
                {
                        cout << "姓名:" << contacts.m_Name
                              << "\t性别:" << contacts.m_Sex
                              << "\t年龄:" << contacts.m_Age
                              << "\t电话:" << contacts.m_Phone
                              << "\t地址:" << contacts.m_Address << endl;
                }
        }

}

void deleteition(struct Contacts contacts[])
{
        string deletename;
        cout << "请输入删除联系人的姓名:";
        cin >> deletename;
       
        for(int i = 0; i < g_count; i++)
        {
                if(deletename == contacts.m_Name)
                {
                        for(int j = i; j < g_count-1; j++)
                        {
                                contacts = contacts;
                        }
                        cout << "删除成功!" << endl;
                        g_count--;
                        return;
                }
        }
       
        cout << "删除失败!" << endl;
        cout << "原因:没有找到该联系人" << endl;
        return;
}

void loctition(struct Contacts contacts[])
{
        string deletename;
        cout << "请输入查找联系人的姓名:";
        cin >> deletename;
       
        for(int i = 0; i < g_count; i++)
        {
                if(deletename == contacts.m_Name)
                {
                        cout << "姓名:" << contacts.m_Name
                              << "\t性别:" << contacts.m_Sex
                              << "\t年龄:" << contacts.m_Age
                              << "\t电话:" << contacts.m_Phone
                              << "\t地址:" << contacts.m_Address << endl;
                        return;
                }
        }
       
        cout << "抱歉,没有找到该联系人!" << endl;
}

void change(struct Contacts contacts[])
{
        string deletename;
        cout << "请输入修改联系人的姓名:";
        cin >> deletename;
       
        for(int i = 0; i < g_count; i++)
        {
                if(deletename == contacts.m_Name)
                {
                        cout << "请输入姓名:";
                        cin >> contacts.m_Name;
                        cout << "请输入性别:";
                        cin >> contacts.m_Sex;
                        cout << "请输入年龄:";
                        cin >> contacts.m_Age;
                        cout << "请输入电话:";
                        cin >> contacts.m_Phone;
                        cout << "请输入地址:";
                        cin >> contacts.m_Address;
                        cout << "修改成功" << endl;
                        return;
                }
        }
       
        cout << "抱歉,没有找到该联系人!" << endl;
        return;
}

void empty()
{
        if(g_count == 0)
        {
                cout << "你当前没有任何联系人,已是清空状态" << endl;
        }
        else
        {
                g_count = 0;
                cout << "通讯录已清空" << endl;
        }
}

int main()
{
        int order = 0;
        struct Contacts contacts;
       
        while(true)
        {
                showMenu();
               
                cout << "请输入你要操作功能的序号:";
                cin >> order;
               
                while(order < 0 || order > 6)
                {
                        cout << "输入错误,请重新输入:";
                        cin >> order;
                }

                switch(order)
                {
                        case 1:
                                addition(contacts);
                                break;
                        case 2:
                                show(contacts);
                                system("pause");
                                break;
                        case 3:
                                deleteition(contacts);
                                system("pause");
                                break;
                        case 4:
                                loctition(contacts);
                                system("pause");
                                break;
                        case 5:
                                change(contacts);
                                system("pause");
                                break;
                        case 6:
                                empty();
                                system("pause");
                                break;
                        case 0:
                                cout << "欢迎下次使用" << endl;
                                return 0;

                }
                system("CLS");
        }
       
        return 0;
}

我叫MD 发表于 2019-6-27 18:46:45

我叫MD 发表于 2019-6-27 18:43
我可不是高手,刚刚学习而已 ,我的是通讯录的管理系统,只可以借鉴,不能抄的,自己看看 ,这个程序都差 ...

我这个好像是C++版的,不过不影响,和C语言差不多   你把所有 cout当成 printf 用 cin 当作scanf

string是定义字符串其他都差不多

zhangyupeng 发表于 2019-6-27 19:30:05

我叫MD 发表于 2019-6-27 18:43
我可不是高手,刚刚学习而已 ,我的是通讯录的管理系统,只可以借鉴,不能抄的,自己看看 ,这个程序都差 ...

谢谢呀,一起加油

我叫MD 发表于 2019-6-27 19:40:05

zhangyupeng 发表于 2019-6-27 19:30
谢谢呀,一起加油

有用的话麻烦给个最佳答案
页: [1]
查看完整版本: c语言设计学生成绩程序,求设计过程和思想