鱼C论坛

 找回密码
 立即注册
查看: 1495|回复: 10

[已解决]c语言设计学生成绩程序,求设计过程和思想

[复制链接]
发表于 2019-6-26 21:20:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
学生成绩管理系统,编写一个菜单驱动的学生成绩管理程序。要求如下:
1)能输入并显示n个学生的m门考试科目的成绩、总分和平均分。
2)按总分由高到低进行排序。
3)任意输入一个学号,能显示该学生的姓名、各门功课的成绩。
加分项目:
(1)        成绩可以保存到文件中,并将文件的数据输出到屏幕上。
(2)        用链表实现
最佳答案
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[g_count].m_Name;
        cout << "请输入性别:";
        cin >> contacts[g_count].m_Sex;
        cout << "请输入年龄:";
        cin >> contacts[g_count].m_Age;
        cout << "请输入电话:";
        cin >> contacts[g_count].m_Phone;
        cout << "请输入地址:";
        cin >> contacts[g_count].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[i].m_Name
                                  << "\t性别:" << contacts[i].m_Sex
                                  << "\t年龄:" << contacts[i].m_Age
                                  << "\t电话:" << contacts[i].m_Phone
                                  << "\t地址:" << contacts[i].m_Address << endl;
                }
        }

}

void deleteition(struct Contacts contacts[])
{
        string deletename;
        cout << "请输入删除联系人的姓名:";
        cin >> deletename;
        
        for(int i = 0; i < g_count; i++)
        {
                if(deletename == contacts[i].m_Name)
                {
                        for(int j = i; j < g_count-1; j++)
                        {
                                contacts[j] = contacts[j+1];
                        }
                        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[i].m_Name)
                {
                        cout << "姓名:" << contacts[i].m_Name
                                  << "\t性别:" << contacts[i].m_Sex
                                  << "\t年龄:" << contacts[i].m_Age
                                  << "\t电话:" << contacts[i].m_Phone
                                  << "\t地址:" << contacts[i].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[i].m_Name)
                {
                        cout << "请输入姓名:";
                        cin >> contacts[i].m_Name;
                        cout << "请输入性别:";
                        cin >> contacts[i].m_Sex;
                        cout << "请输入年龄:";
                        cin >> contacts[i].m_Age;
                        cout << "请输入电话:";
                        cin >> contacts[i].m_Phone;
                        cout << "请输入地址:";
                        cin >> contacts[i].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[MAX];
        
        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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-27 10:13:14 | 显示全部楼层
用C语言你就从上往下写就行了,写出来再慢慢优化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-27 10:16:31 | 显示全部楼层
这个感觉还是比较简单的,按着逻辑封装好函数,依次循环调用就好了

我之前倒是实现过一次类似的通讯管理,不过我没用文件操作,而且我是用数组实现的  那时候不会链表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

需要的话  给你找找  你当作参考
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-27 12:37:56 | 显示全部楼层
我叫MD 发表于 2019-6-27 10:17
需要的话  给你找找  你当作参考

想问用C++编写的学生档案管理系统吗,借鉴一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-27 12:42:49 | 显示全部楼层
我叫MD 发表于 2019-6-27 10:17
需要的话  给你找找  你当作参考

高手的作品,我当然想参考了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-27 18:39:31 | 显示全部楼层
预上分猛男 发表于 2019-6-27 12:37
想问用C++编写的学生档案管理系统吗,借鉴一下

发下面了   自己做个参考把   我也是个新手  一起学习  一起进步
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[g_count].m_Name;
        cout << "请输入性别:";
        cin >> contacts[g_count].m_Sex;
        cout << "请输入年龄:";
        cin >> contacts[g_count].m_Age;
        cout << "请输入电话:";
        cin >> contacts[g_count].m_Phone;
        cout << "请输入地址:";
        cin >> contacts[g_count].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[i].m_Name
                                  << "\t性别:" << contacts[i].m_Sex
                                  << "\t年龄:" << contacts[i].m_Age
                                  << "\t电话:" << contacts[i].m_Phone
                                  << "\t地址:" << contacts[i].m_Address << endl;
                }
        }

}

void deleteition(struct Contacts contacts[])
{
        string deletename;
        cout << "请输入删除联系人的姓名:";
        cin >> deletename;
        
        for(int i = 0; i < g_count; i++)
        {
                if(deletename == contacts[i].m_Name)
                {
                        for(int j = i; j < g_count-1; j++)
                        {
                                contacts[j] = contacts[j+1];
                        }
                        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[i].m_Name)
                {
                        cout << "姓名:" << contacts[i].m_Name
                                  << "\t性别:" << contacts[i].m_Sex
                                  << "\t年龄:" << contacts[i].m_Age
                                  << "\t电话:" << contacts[i].m_Phone
                                  << "\t地址:" << contacts[i].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[i].m_Name)
                {
                        cout << "请输入姓名:";
                        cin >> contacts[i].m_Name;
                        cout << "请输入性别:";
                        cin >> contacts[i].m_Sex;
                        cout << "请输入年龄:";
                        cin >> contacts[i].m_Age;
                        cout << "请输入电话:";
                        cin >> contacts[i].m_Phone;
                        cout << "请输入地址:";
                        cin >> contacts[i].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[MAX];
        
        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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

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

string  是定义字符串  其他都差不多  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢呀,一起加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-27 19:40:05 | 显示全部楼层
zhangyupeng 发表于 2019-6-27 19:30
谢谢呀,一起加油

有用的话麻烦给个最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-3 23:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表