鱼C论坛

 找回密码
 立即注册
查看: 1873|回复: 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
高手的作品,我当然想参考了

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


  1. #include <iostream>
  2. #include <string>

  3. #define MAX 1000

  4. using namespace std;

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

  12. struct Contacts
  13. {
  14.         string m_Name;
  15.         string m_Sex;
  16.         string m_Age;
  17.         string m_Phone;
  18.         string m_Address;
  19. };

  20. int g_count = 0;

  21. void showMenu()
  22. {
  23.         cout << "*******************************************" << endl;
  24.         cout << "************** 1、添加联系人 **************" << endl;
  25.         cout << "************** 2、显示联系人 **************" << endl;
  26.         cout << "************** 3、删除联系人 **************" << endl;
  27.         cout << "************** 4、查找联系人 **************" << endl;
  28.         cout << "************** 5、修改联系人 **************" << endl;
  29.         cout << "************** 6、清空联系人 **************" << endl;
  30.         cout << "************** 0、退出通讯录 **************" << endl;
  31.         cout << "*******************************************" << endl;
  32. }

  33. void addition(struct Contacts contacts[])
  34. {
  35.         cout << "请输入姓名:";
  36.         cin >> contacts[g_count].m_Name;
  37.         cout << "请输入性别:";
  38.         cin >> contacts[g_count].m_Sex;
  39.         cout << "请输入年龄:";
  40.         cin >> contacts[g_count].m_Age;
  41.         cout << "请输入电话:";
  42.         cin >> contacts[g_count].m_Phone;
  43.         cout << "请输入地址:";
  44.         cin >> contacts[g_count].m_Address;
  45.        
  46.         g_count++;
  47. }

  48. void show(struct Contacts contacts[])
  49. {
  50.         if(g_count == 0)
  51.         {
  52.                 cout << "您还没有联系人,请添加..." << endl;
  53.                 cout << endl;
  54.                 return;
  55.         }
  56.         else
  57.         {
  58.                 for(int i = 0; i < g_count; i++)
  59.                 {
  60.                         cout << "姓名:" << contacts[i].m_Name
  61.                                   << "\t性别:" << contacts[i].m_Sex
  62.                                   << "\t年龄:" << contacts[i].m_Age
  63.                                   << "\t电话:" << contacts[i].m_Phone
  64.                                   << "\t地址:" << contacts[i].m_Address << endl;
  65.                 }
  66.         }

  67. }

  68. void deleteition(struct Contacts contacts[])
  69. {
  70.         string deletename;
  71.         cout << "请输入删除联系人的姓名:";
  72.         cin >> deletename;
  73.        
  74.         for(int i = 0; i < g_count; i++)
  75.         {
  76.                 if(deletename == contacts[i].m_Name)
  77.                 {
  78.                         for(int j = i; j < g_count-1; j++)
  79.                         {
  80.                                 contacts[j] = contacts[j+1];
  81.                         }
  82.                         cout << "删除成功!" << endl;
  83.                         g_count--;
  84.                         return;
  85.                 }
  86.         }
  87.        
  88.         cout << "删除失败!" << endl;
  89.         cout << "原因:没有找到该联系人" << endl;
  90.         return;
  91. }

  92. void loctition(struct Contacts contacts[])
  93. {
  94.         string deletename;
  95.         cout << "请输入查找联系人的姓名:";
  96.         cin >> deletename;
  97.        
  98.         for(int i = 0; i < g_count; i++)
  99.         {
  100.                 if(deletename == contacts[i].m_Name)
  101.                 {
  102.                         cout << "姓名:" << contacts[i].m_Name
  103.                                   << "\t性别:" << contacts[i].m_Sex
  104.                                   << "\t年龄:" << contacts[i].m_Age
  105.                                   << "\t电话:" << contacts[i].m_Phone
  106.                                   << "\t地址:" << contacts[i].m_Address << endl;
  107.                         return;
  108.                 }
  109.         }
  110.        
  111.         cout << "抱歉,没有找到该联系人!" << endl;
  112. }

  113. void change(struct Contacts contacts[])
  114. {
  115.         string deletename;
  116.         cout << "请输入修改联系人的姓名:";
  117.         cin >> deletename;
  118.        
  119.         for(int i = 0; i < g_count; i++)
  120.         {
  121.                 if(deletename == contacts[i].m_Name)
  122.                 {
  123.                         cout << "请输入姓名:";
  124.                         cin >> contacts[i].m_Name;
  125.                         cout << "请输入性别:";
  126.                         cin >> contacts[i].m_Sex;
  127.                         cout << "请输入年龄:";
  128.                         cin >> contacts[i].m_Age;
  129.                         cout << "请输入电话:";
  130.                         cin >> contacts[i].m_Phone;
  131.                         cout << "请输入地址:";
  132.                         cin >> contacts[i].m_Address;
  133.                         cout << "修改成功" << endl;
  134.                         return;
  135.                 }
  136.         }
  137.        
  138.         cout << "抱歉,没有找到该联系人!" << endl;
  139.         return;
  140. }

  141. void empty()
  142. {
  143.         if(g_count == 0)
  144.         {
  145.                 cout << "你当前没有任何联系人,已是清空状态" << endl;
  146.         }
  147.         else
  148.         {
  149.                 g_count = 0;
  150.                 cout << "通讯录已清空" << endl;
  151.         }
  152. }

  153. int main()
  154. {
  155.         int order = 0;
  156.         struct Contacts contacts[MAX];
  157.        
  158.         while(true)
  159.         {
  160.                 showMenu();
  161.                
  162.                 cout << "请输入你要操作功能的序号:";
  163.                 cin >> order;
  164.                
  165.                 while(order < 0 || order > 6)
  166.                 {
  167.                         cout << "输入错误,请重新输入:";
  168.                         cin >> order;
  169.                 }

  170.                 switch(order)
  171.                 {
  172.                         case 1:
  173.                                 addition(contacts);
  174.                                 break;
  175.                         case 2:
  176.                                 show(contacts);
  177.                                 system("pause");
  178.                                 break;
  179.                         case 3:
  180.                                 deleteition(contacts);
  181.                                 system("pause");
  182.                                 break;
  183.                         case 4:
  184.                                 loctition(contacts);
  185.                                 system("pause");
  186.                                 break;
  187.                         case 5:
  188.                                 change(contacts);
  189.                                 system("pause");
  190.                                 break;
  191.                         case 6:
  192.                                 empty();
  193.                                 system("pause");
  194.                                 break;
  195.                         case 0:
  196.                                 cout << "欢迎下次使用" << endl;
  197.                                 return 0;

  198.                 }
  199.                 system("CLS");
  200.         }
  201.        
  202.         return 0;
  203. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-27 10:13:14 | 显示全部楼层
用C语言你就从上往下写就行了,写出来再慢慢优化
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我之前倒是实现过一次类似的通讯管理,不过我没用文件操作,而且我是用数组实现的  那时候不会链表
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

需要的话  给你找找  你当作参考
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

想问用C++编写的学生档案管理系统吗,借鉴一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

高手的作品,我当然想参考了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

发下面了   自己做个参考把   我也是个新手  一起学习  一起进步
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-27 18:43:31 | 显示全部楼层    本楼为最佳答案   
zhangyupeng 发表于 2019-6-27 12:42
高手的作品,我当然想参考了

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


  1. #include <iostream>
  2. #include <string>

  3. #define MAX 1000

  4. using namespace std;

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

  12. struct Contacts
  13. {
  14.         string m_Name;
  15.         string m_Sex;
  16.         string m_Age;
  17.         string m_Phone;
  18.         string m_Address;
  19. };

  20. int g_count = 0;

  21. void showMenu()
  22. {
  23.         cout << "*******************************************" << endl;
  24.         cout << "************** 1、添加联系人 **************" << endl;
  25.         cout << "************** 2、显示联系人 **************" << endl;
  26.         cout << "************** 3、删除联系人 **************" << endl;
  27.         cout << "************** 4、查找联系人 **************" << endl;
  28.         cout << "************** 5、修改联系人 **************" << endl;
  29.         cout << "************** 6、清空联系人 **************" << endl;
  30.         cout << "************** 0、退出通讯录 **************" << endl;
  31.         cout << "*******************************************" << endl;
  32. }

  33. void addition(struct Contacts contacts[])
  34. {
  35.         cout << "请输入姓名:";
  36.         cin >> contacts[g_count].m_Name;
  37.         cout << "请输入性别:";
  38.         cin >> contacts[g_count].m_Sex;
  39.         cout << "请输入年龄:";
  40.         cin >> contacts[g_count].m_Age;
  41.         cout << "请输入电话:";
  42.         cin >> contacts[g_count].m_Phone;
  43.         cout << "请输入地址:";
  44.         cin >> contacts[g_count].m_Address;
  45.        
  46.         g_count++;
  47. }

  48. void show(struct Contacts contacts[])
  49. {
  50.         if(g_count == 0)
  51.         {
  52.                 cout << "您还没有联系人,请添加..." << endl;
  53.                 cout << endl;
  54.                 return;
  55.         }
  56.         else
  57.         {
  58.                 for(int i = 0; i < g_count; i++)
  59.                 {
  60.                         cout << "姓名:" << contacts[i].m_Name
  61.                                   << "\t性别:" << contacts[i].m_Sex
  62.                                   << "\t年龄:" << contacts[i].m_Age
  63.                                   << "\t电话:" << contacts[i].m_Phone
  64.                                   << "\t地址:" << contacts[i].m_Address << endl;
  65.                 }
  66.         }

  67. }

  68. void deleteition(struct Contacts contacts[])
  69. {
  70.         string deletename;
  71.         cout << "请输入删除联系人的姓名:";
  72.         cin >> deletename;
  73.        
  74.         for(int i = 0; i < g_count; i++)
  75.         {
  76.                 if(deletename == contacts[i].m_Name)
  77.                 {
  78.                         for(int j = i; j < g_count-1; j++)
  79.                         {
  80.                                 contacts[j] = contacts[j+1];
  81.                         }
  82.                         cout << "删除成功!" << endl;
  83.                         g_count--;
  84.                         return;
  85.                 }
  86.         }
  87.        
  88.         cout << "删除失败!" << endl;
  89.         cout << "原因:没有找到该联系人" << endl;
  90.         return;
  91. }

  92. void loctition(struct Contacts contacts[])
  93. {
  94.         string deletename;
  95.         cout << "请输入查找联系人的姓名:";
  96.         cin >> deletename;
  97.        
  98.         for(int i = 0; i < g_count; i++)
  99.         {
  100.                 if(deletename == contacts[i].m_Name)
  101.                 {
  102.                         cout << "姓名:" << contacts[i].m_Name
  103.                                   << "\t性别:" << contacts[i].m_Sex
  104.                                   << "\t年龄:" << contacts[i].m_Age
  105.                                   << "\t电话:" << contacts[i].m_Phone
  106.                                   << "\t地址:" << contacts[i].m_Address << endl;
  107.                         return;
  108.                 }
  109.         }
  110.        
  111.         cout << "抱歉,没有找到该联系人!" << endl;
  112. }

  113. void change(struct Contacts contacts[])
  114. {
  115.         string deletename;
  116.         cout << "请输入修改联系人的姓名:";
  117.         cin >> deletename;
  118.        
  119.         for(int i = 0; i < g_count; i++)
  120.         {
  121.                 if(deletename == contacts[i].m_Name)
  122.                 {
  123.                         cout << "请输入姓名:";
  124.                         cin >> contacts[i].m_Name;
  125.                         cout << "请输入性别:";
  126.                         cin >> contacts[i].m_Sex;
  127.                         cout << "请输入年龄:";
  128.                         cin >> contacts[i].m_Age;
  129.                         cout << "请输入电话:";
  130.                         cin >> contacts[i].m_Phone;
  131.                         cout << "请输入地址:";
  132.                         cin >> contacts[i].m_Address;
  133.                         cout << "修改成功" << endl;
  134.                         return;
  135.                 }
  136.         }
  137.        
  138.         cout << "抱歉,没有找到该联系人!" << endl;
  139.         return;
  140. }

  141. void empty()
  142. {
  143.         if(g_count == 0)
  144.         {
  145.                 cout << "你当前没有任何联系人,已是清空状态" << endl;
  146.         }
  147.         else
  148.         {
  149.                 g_count = 0;
  150.                 cout << "通讯录已清空" << endl;
  151.         }
  152. }

  153. int main()
  154. {
  155.         int order = 0;
  156.         struct Contacts contacts[MAX];
  157.        
  158.         while(true)
  159.         {
  160.                 showMenu();
  161.                
  162.                 cout << "请输入你要操作功能的序号:";
  163.                 cin >> order;
  164.                
  165.                 while(order < 0 || order > 6)
  166.                 {
  167.                         cout << "输入错误,请重新输入:";
  168.                         cin >> order;
  169.                 }

  170.                 switch(order)
  171.                 {
  172.                         case 1:
  173.                                 addition(contacts);
  174.                                 break;
  175.                         case 2:
  176.                                 show(contacts);
  177.                                 system("pause");
  178.                                 break;
  179.                         case 3:
  180.                                 deleteition(contacts);
  181.                                 system("pause");
  182.                                 break;
  183.                         case 4:
  184.                                 loctition(contacts);
  185.                                 system("pause");
  186.                                 break;
  187.                         case 5:
  188.                                 change(contacts);
  189.                                 system("pause");
  190.                                 break;
  191.                         case 6:
  192.                                 empty();
  193.                                 system("pause");
  194.                                 break;
  195.                         case 0:
  196.                                 cout << "欢迎下次使用" << endl;
  197.                                 return 0;

  198.                 }
  199.                 system("CLS");
  200.         }
  201.        
  202.         return 0;
  203. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

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

string  是定义字符串  其他都差不多  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢呀,一起加油
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

有用的话麻烦给个最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-13 10:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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