1. #include<iostream>
  2. using namespace std;
  3. typedef struct student{
  4. int id;//学号
  5. string sex;
  6. string name;
  7. int cpp;//c++成绩
  8. struct student *next;
  9. }stu;
  10. stu *head=NULL;
  11. void test(); // 测试头指针是否为空
  12. void record();//记录成绩
  13. void modify();//修改成绩
  14. void print();//打印单科成绩
  15. void aver();//求各科的平均成绩
  16. void Count();//成绩统计
  17. void add();//添加学生
  18. void delt();//删除学生
  19. void print();//打印成绩
  20. int main()
  21. {
  22. int choice;
  23. cout<<"\t\t\t学生成绩管理系统\n\n\n";
  24. cout<<"0.退出系统 1.记录信息 2.修改信息 3.平均成绩 4.统计成绩 5.添加信息 6.删除信息 7.打印成绩\n";
  25. cout<<"输入选择(0-7): ";
  26. cin>>choice;
  27. while(1)
  28. {
  29. switch(choice)
  30. {
  31. case 0: exit(0);
  32. case 1: record(); break;
  33. case 2: modify(); break;
  34. case 3: aver (); break;
  35. case 4: Count (); break;
  36. case 5: add (); break;
  37. case 6: delt (); break;
  38. case 7: print (); break;
  39. default: cout<<"输入有误!\n"; break;
  40. }
  41. cout<<"输入选择(0-7): ";
  42. cin>>choice;
  43. }
  44. return 0;
  45. }
  46. void test() {
  47. if (!head) {
  48. cout << "head NULL\n";
  49. exit(-1);
  50. }
  51. }
  52. void record()
  53. {
  54. stu *p,*q;
  55. int i,n;
  56. cout<<"输入学生人数: ";
  57. cin>>n;
  58. i=0;
  59. cout<<"输入学生信息:姓名 学号 性别 成绩\n";
  60. while(i<n)
  61. {
  62. p=new stu;
  63. if(head==NULL)
  64. {
  65. head=p;
  66. q=head;
  67. }
  68. else
  69. {
  70. cin>>p->name>>p->id>>p->sex>>p->cpp;
  71. q->next=p;
  72. q=p;
  73. i++;
  74. }
  75. }
  76. }
  77. void modify()
  78. {
  79. cout<<"输入要修改学生的学号: ";
  80. int id;
  81. cin>>id;
  82. stu *p;
  83. test();
  84. p=head->next;
  85. while(p)
  86. {
  87. if(p->id==id)
  88. {
  89. cout<<"请选择要修改的内容:\n";
  90. cout<<"1.id 2.name 3.sex 4.cpp\n";
  91. int choice;
  92. cin>>choice;
  93. switch(choice)
  94. {
  95. case 1:
  96. {
  97. int newid;
  98. cout<<"输入新学号: ";
  99. cin>>newid;
  100. p->id=newid;
  101. break;
  102. }
  103. case 2:
  104. {
  105. string newname;
  106. cout<<"输入新名字: ";
  107. cin>>newname;
  108. p->name=newname;
  109. break;
  110. }
  111. case 3:
  112. {
  113. string newsex;
  114. cout<<"输入新性别: ";
  115. cin>>newsex;
  116. p->sex=newsex;
  117. break;
  118. }
  119. case 4:
  120. {
  121. int newcpp;
  122. cout<<"输入新成绩: ";
  123. cin>>newcpp;
  124. p->cpp=newcpp;
  125. break;
  126. }
  127. default:cout<<"输入有误!\n"; break;
  128. }
  129. break;
  130. }
  131. p=p->next;
  132. }
  133. }
  134. void aver()
  135. {
  136. stu *p;
  137. int sum,i;
  138. sum=0;
  139. i=0;
  140. test();
  141. p=head->next;
  142. while(p)
  143. {
  144. sum+=p->cpp;
  145. i++;
  146. p=p->next;
  147. }
  148. cout<<"所有同学c++的平均成绩为: "<<sum/i<<endl;
  149. }
  150. void Count()
  151. {
  152. int max;
  153. stu *p,*q;
  154. test();
  155. p=head->next;
  156. max=p->cpp;
  157. q=p;
  158. while(1)
  159. {
  160. p=p->next;
  161. if(p==NULL)
  162. break;
  163. if(max<p->cpp)
  164. {
  165. max=p->cpp;
  166. q=p;
  167. }
  168. }
  169. cout<<q->name<<"的c++获得了第一名\n"<<"最高分为: "<<max<<endl;
  170. }
  171. void add()
  172. {
  173. stu *p,*q;
  174. p=new stu;
  175. cout<<"输入新加同学的名字 学号 性别 c++成绩: ";
  176. cin>>p->name>>p->id>>p->sex>>p->cpp;
  177. p->next=head->next;
  178. head->next=p;
  179. }
  180. void delt()
  181. {
  182. //system("cls");
  183. stu *p,*q;
  184. int id;
  185. cout<<"输入要删除学生的学号: ";
  186. cin>>id;
  187. test();
  188. q=head;
  189. p=q->next;
  190. while(1)
  191. {
  192. if(p->id==id)
  193. {
  194. q->next=p->next;
  195. delete p;
  196. break;
  197. }
  198. q=p;
  199. p=q->next;
  200. }
  201. }
  202. void print()
  203. {
  204. stu *p;
  205. test();
  206. p=head->next;
  207. while(p)
  208. {
  209. cout<<p->name<<" "<<p->cpp<<endl;
  210. p=p->next;
  211. }
  212. }

c++链表实现学生成绩管理系统(简易版)的更多相关文章

  1. 使用C++名单在文档处理和学生成绩管理系统相结合

    对于学生成绩管理系统,我并不陌生,几乎学习C人的语言.做项目会想到学生成绩管理系统,我也不例外.在研究中的一段时间C语言之后,还用C语言到学生管理系统,然后做几个链接.计数,这个系统是以前的系统上的改 ...

  2. C语言学生成绩管理系统(简易版)

    #include<stdio.h> #include<stdlib.h> #include<string.h> int readstudents(struct st ...

  3. 简易的学生成绩管理系统(C++实现)

    最近浅显的学习了C++的基础知识,想来练练手,于是就用单链表写了最经典的小项目,存粹学习,所以就在控制台下写了,写的有点简陋,码了大概400多行. 下面上代码: #include <cstdli ...

  4. 学生成绩管理系统(C++指针、链表、文件及面向对象的运用)

    学生成绩管理系统 功能页面显示:    实现源码: #include<iostream> #include<fstream> #include<cstring> # ...

  5. 从零开始的C程序设计大作业——学生成绩管理系统

    前言 学生成绩管理系统可以说是C语言程序设计的结课的必备大作业了.花了些时间,费了些头发肝了下,完成了两个系统,一个是控制台版本的,另一个用easyx图形库进行了优化. 先放出完成后的演示图片占个坑. ...

  6. 学生成绩管理系统 1.0(Java+MySql)

    真难…… 数据库建立不会,中文编码不会,插入数据不会,删除不会…… Java读入数据不会……数据库连接不会…… 你也好意思说自己是学计算机的啊魂淡…… 我会慢慢写2.0,3.0版的……噗…… src/ ...

  7. 《C语言编写 学生成绩管理系统》

    /* (程序头部凝视開始) * 程序的版权和版本号声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名: 学生成绩管理 ...

  8. c++学生成绩管理系统

    虽然比较水 =.= 但是写了两节课+一个中午 都是强迫症的锅 http://www.cnblogs.com/wenruo/p/4940182.html #include <cstdio> ...

  9. 《C语言 学生成绩管理系统》

    /* (盯着先拔头筹程序) * 该计划的版权声明和版本号 * Copyright (c) 2011, 烟台大学计算机学院学生的学校 * All rights reserved. * 文件名: 学生成绩 ...

随机推荐

  1. 获取HTML代码用 像阿里巴巴

         public string GetHtml(string url)         {               string html = String .Empty;          ...

  2. QQ链接病毒分析

    QQ链接病毒分析 特征 点击病毒链接后,自动会在每一时刻范围内通过所有途径群发新的病毒链接(途径包括Qzone,群聊等) 分析 首先看一下病毒链接的一个样例 http://news.soso.com/ ...

  3. PIE SDK矢量数据简单渲染

    1. 功能简介 PIE SDK对数据的符号化分为矢量数据渲染和栅格数据渲染两大类. 目前PIE SDK中针对矢量数据渲染包括简单渲染.唯一值渲染.分级渲染.自定义渲染:针对栅格数据渲染包括拉伸渲染.R ...

  4. Ignite cahce 存储object类型数据和object类型数据序列化后string存储区别

    Ignite cache在存储时 object类型的数据和 序列化该object成string类型 两者存储时间差不多. 但是这两者在读取出来的时候,string类型比object类型快很多. 以下为 ...

  5. MVC参数自动装配

    在拿到一个类型的所有属性以及字段的描述信息后,就可以通过循环的方式,根据这些数据成员的名字去QueryString,Form,Session,Cookie读取所需的数据了. 就是遍历参数,然后用反射遍 ...

  6. TimesTen客户端DSN配置

    打开控制面板\管理工具 1.打开数据源(ODBC) 2.选择系统DSN 3.选择添加: 4.单击完成 5.Servers

  7. Eclipse/Myeclipse/Scala IDEA for Eclipse里两种添加插件的方法(在线和离线)

    不多说,直接上干货! 方法1:在线安装 第一步,在eclipse菜单栏下,选中help ---->Install New Software 第二步,点击图中 add 添加软件下载地址 第三步 , ...

  8. ubuntu系统在安装好mysql后,出现ERROR 2002(HY000: Can't to local MySQL server through socket '/var/run/mysqld/mysqld.sock')(2)(图文详解)

    不多说,直接上干货! 问题详情 我在写此博客之前,看了网上各种资料,写的太冗余和繁琐杂乱.最简单的解决方法莫过于我这篇博客.直接如下. 这是liux套接字网络的特性,win平台不会有这个问题. 解决方 ...

  9. php中的$_GET如何获取带有“#”的参数

    <?php echo $_GET['key']; ?> 当url为http://test.com/c.php?key=999时,正常输出:999 当url为http://test.com/ ...

  10. jquery获取元素与屏幕高度距离

    a. onscroll事件 scroll是css样式中overflow的一个值,意思是显示滚动条;当一个元素的实际高度超过他的最大高度是,只要设置了overflow为scroll b. $(..).s ...