大学生成绩管理系统(C语言)
功能:成绩管理系统包含了学生的全部信息,每个学生是一个记录,包括学号,姓名,性别,班级,各科成绩(语数外)。
系统功能:
1.信息录入——录入学生信息;
2.信息输出——显示所有信息;
3.信息查询——查询单个学生信息(按学号或按姓名),按性别,班级查询;
4.信息排序——分别按各科成绩,平均成绩,学号,姓名,总分排名;
5.信息插入——插入一学生信息(中间插入和最后插入);
6.信息删除——删除一学生信息;(先打出学生信息然后确认删除);
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #define MAXSIZE 1000
- typedef struct
- {
- int no;
- char name[];
- char sex[];
- char cla[];
- int Chinese,math,Eng,sum,average;
- }Datatype;
- typedef struct
- {
- Datatype data[MAXSIZE];
- int len;
- }SeqList;
- /*录入学生信息*/
- void input(SeqList *L)
- {
- int i;
- printf("请输入学生的人数:");
- scanf("%d",&L->len);
- printf("请输入学生的学号、姓名、性别、班级、语数英成绩:\n");
- printf("(之间用Tab键隔开)\n\n");
- printf("学号 姓名 性别 班级 语文 数学 英语\n");
- for(i=;i<=L->len;i++)
- {
- scanf("%d%s%s%s%d%d%d",&L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,&L->data[i].Chinese,&L->data[i].math,&L->data[i].Eng);
- L->data[i].sum=L->data[i].Chinese+L->data[i].math+L->data[i].Eng;
- L->data[i].average=(int)L->data[i].sum/;
- }
- }
- /*浏览学生信息*/
- void display(SeqList *L)
- {
- int i;
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- for(i=;i<=L->len;i++)
- {
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average);
- }
- }
- /*按学号查找学生信息*/
- int search_no(SeqList *L,Datatype x)
- {
- int i=;
- while(i<=L->len&&L->data[i].no!=x.no)
- {
- i++;
- }
- if(i>L->len)
- {
- return ;
- }
- else
- {
- return i;
- }
- }
- /*按姓名查找学生信息*/
- int search_name(SeqList *L,Datatype x)
- {
- int i=;
- while(i<=L->len&&strcmp(L->data[i].name,x.name)!=)
- {
- i++;
- }
- if(i>L->len)
- {
- return ;
- }
- else
- {
- return i;
- }
- }
- /*按性别查找学生信息*/
- void search_sex(SeqList *L,Datatype x)
- {
- int i;
- for(i=;i<=L->len;i++)
- {
- if(i<=L->len&&strcmp(L->data[i].sex,x.sex)==)
- {
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average);
- }
- }
- }
- /*按班级查找学生信息*/
- void search_cla(SeqList *L,Datatype x)
- {
- int i;
- for(i=;i<=L->len;i++)
- {
- if(i<=L->len&&strcmp(L->data[i].cla,x.cla)==)
- {
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average);
- }
- }
- }
- /*按语文成绩排序*/
- void sort_Chinese(SeqList *L)
- {
- Datatype hold;
- int pass,i;
- for(pass=;pass<((L->len)-);pass++)
- {
- for(i=;i<L->len;i++)
- {
- if(L->data[i].Chinese<L->data[i+].Chinese)
- {
- hold=L->data[i];
- L->data[i]=L->data[i+];
- L->data[i+]=hold;
- }
- }
- }
- }
- /*按数学成绩排序*/
- void sort_math(SeqList *L)
- {
- Datatype hold;
- int pass,i;
- for(pass=;pass<((L->len)-);pass++)
- {
- for(i=;i<L->len;i++)
- {
- if(L->data[i].math<L->data[i+].math)
- {
- hold=L->data[i];
- L->data[i]=L->data[i+];
- L->data[i+]=hold;
- }
- }
- }
- }
- /*按英语成绩排序*/
- void sort_Eng(SeqList *L)
- {
- Datatype hold;
- int pass,i;
- for(pass=;pass<((L->len)-);pass++)
- {
- for(i=;i<L->len;i++)
- {
- if(L->data[i].Eng<L->data[i+].Eng)
- {
- hold=L->data[i];
- L->data[i]=L->data[i+];
- L->data[i+]=hold;
- }
- }
- }
- }
- /*按平均分成绩排序*/
- void sort_average(SeqList *L)
- {
- Datatype hold;
- int pass,i;
- for(pass=;pass<((L->len)-);pass++)
- {
- for(i=;i<L->len;i++)
- {
- if(L->data[i].average<L->data[i+].average)
- {
- hold=L->data[i];
- L->data[i]=L->data[i+];
- L->data[i+]=hold;
- }
- }
- }
- }
- /*按学号排序*/
- void sort_no(SeqList *L)
- {
- Datatype hold;
- int pass,i;
- for(pass=;pass<((L->len)-);pass++)
- {
- for(i=;i<L->len;i++)
- {
- if(L->data[i].no>L->data[i+].no)
- {
- hold=L->data[i];
- L->data[i]=L->data[i+];
- L->data[i+]=hold;
- }
- }
- }
- }
- /*按姓名排序*/
- void sort_name(SeqList *L)
- {
- Datatype hold;
- int pass,i;
- for(pass=;pass<((L->len)-);pass++)
- {
- for(i=;i<L->len;i++)
- {
- if(strcmp(L->data[i].name,L->data[i+].name)>)
- {
- hold=L->data[i];
- L->data[i]=L->data[i+];
- L->data[i+]=hold;
- }
- }
- }
- }
- /*按总分排序*/
- void sort_sum(SeqList *L)
- {
- Datatype hold;
- int pass,i;
- for(pass=;pass<((L->len)-);pass++)
- {
- for(i=;i<L->len;i++)
- {
- if(L->data[i].sum<L->data[i+].sum)
- {
- hold=L->data[i];
- L->data[i]=L->data[i+];
- L->data[i+]=hold;
- }
- }
- }
- }
- /*插入学生信息*/
- void insert(SeqList *L,Datatype x)
- {
- int i=,j;
- while(i<=L->len&&(L->data[i].no<x.no))
- {
- i++;
- }
- if(L->len==MAXSIZE-)
- {
- printf("系统存储空间已满,无法增加学生信息!!");
- }
- else
- {
- for(j=L->len;j>=i;j--)
- {
- L->data[j+]=L->data[j];
- }
- L->data[i]=x;
- L->len++;
- }
- }
- /*删除学生信息*/
- void del(SeqList *L,Datatype x)
- {
- int i,j;
- i=search_no(L,x);
- if(i==)
- {
- printf("学号有误!!\n");
- }
- else
- {
- for(j=i+;j<=(L->len);j++)
- {
- L->data[j-]=L->data[j];
- }
- L->len--;
- }
- }
- void menu()
- {
- printf("*************************************\n");
- printf("* 大学生成绩管理系统 *\n");
- printf("*1----------------------录入学生信息*\n");
- printf("*2----------------------浏览学生信息*\n");
- printf("*3----------------------查找学生信息*\n");
- printf("*4------------------------------排序*\n");
- printf("*5----------------------插入学生信息*\n");
- printf("*6----------------------删除学生信息*\n");
- printf("*0----------------------退出管理系统*\n");
- printf("*************************************\n");
- }
- int main()
- {
- Datatype x;
- SeqList *L;
- int sel,k,s,i;
- L=(SeqList *)malloc(sizeof(SeqList));
- L->len=;
- printf(" 欢迎使用大学生成绩管理系统 \n");
- do
- {
- menu();
- printf("\n请输入你的选择:");
- scanf("%d",&sel);
- switch(sel)
- {
- case :printf("\n你选择了录入学生信息:\n\n");
- input(L);
- break;
- case :printf("\n你选择了浏览学生信息:\n\n");
- display(L);
- break;
- case :printf("\n你选择了查找学生信息:\n\n");
- printf("**************************************\n");
- printf("*按<学号>查找请按1,按<姓名>查找请按2*\n");
- printf("*按<性别>查找请按3,按<班级>查找请按4*\n");
- printf("**************************************\n");
- scanf("%d",&s);
- if(s==)
- {
- printf("请输入要查找的学生的学号:");
- scanf("%d",&x.no);
- k=search_no(L,x);
- if(k==)
- {
- printf("学号有误!!\n");
- }
- else
- {
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[k].no,L->data[k].name,L->data[k].sex,L->data[k].cla,L->data[k].Chinese,L->data[k].math,L->data[k].Eng,L->data[k].sum,L->data[k].average);
- }
- }
- else if(s==)
- {
- printf("请输入要查找的学生的姓名:");
- scanf("%s",x.name);
- k=search_name(L,x);
- if(k==)
- {
- printf("姓名有误!!\n");
- }
- else
- {
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[k].no,L->data[k].name,L->data[k].sex,L->data[k].cla,L->data[k].Chinese,L->data[k].math,L->data[k].Eng,L->data[k].sum,L->data[k].average);
- }
- }
- else if(s==)
- {
- printf("请输入性别(男或女):\n");
- scanf("%s",x.sex);
- search_sex(L,x);
- }
- else
- {
- printf("请输入班级:\n");
- scanf("%s",x.cla);
- search_cla(L,x);
- }
- break;
- case :printf("\n你选择了排序:\n\n");
- printf("*********************************************\n");
- printf("*按<语文成绩>排序请按1,按<数学成绩>排序请按2*\n");
- printf("*按<英语成绩>排序请按3,按<平均成绩>排序请按4*\n");
- printf("* 按<学号>排序请按5,按<姓名>排序请按6 *\n");
- printf("* 按<总分>排序请按7 *\n");
- printf("*********************************************\n");
- scanf("%d",&s);
- if(s==)
- {
- sort_Chinese(L);
- printf("按语文成绩排序:\n");
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- for(i=;i<=L->len;i++)
- {
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average);
- }
- }
- if(s==)
- {
- sort_math(L);
- printf("按数学成绩排序:\n");
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- for(i=;i<=L->len;i++)
- {
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average);
- }
- }
- if(s==)
- {
- sort_Eng(L);
- printf("按英语成绩排序:\n");
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- for(i=;i<=L->len;i++)
- {
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average);
- }
- }
- if(s==)
- {
- sort_average(L);
- printf("按平均分排序:\n");
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- for(i=;i<=L->len;i++)
- {
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average);
- }
- }
- if(s==)
- {
- sort_no(L);
- printf("按学号排序:\n");
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- for(i=;i<=L->len;i++)
- {
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average);
- }
- }
- if(s==)
- {
- sort_name(L);
- printf("按姓名排序:\n");
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- for(i=;i<=L->len;i++)
- {
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average);
- }
- }
- if(s==)
- {
- sort_sum(L);
- printf("按总分排序:\n");
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- for(i=;i<=L->len;i++)
- {
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average);
- }
- }
- break;
- case :printf("\n你选择了插入学生信息:\n\n");
- printf("请输入要插入的学生的学号、姓名、性别、班级、语数英成绩:\n");
- printf("学号 姓名 性别 班级 语文 数学 英语\n");
- scanf("%d%s%s%s%d%d%d",&x.no,x.name,x.sex,x.cla,&x.Chinese,&x.math,&x.Eng);
- x.sum=x.Chinese+x.math+x.Eng;
- x.average=(int)x.sum/;
- insert(L,x);
- break;
- case :printf("\n你选择了删除学生信息:\n\n");
- printf("请输入要删除的学生的学号:");
- scanf("%d",&x.no);
- k=search_no(L,x);
- if(k==)
- {
- printf("学号有误!!\n");
- }
- else
- {
- printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n");
- printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[k].no,L->data[k].name,L->data[k].sex,L->data[k].cla,L->data[k].Chinese,L->data[k].math,L->data[k].Eng,L->data[k].sum,L->data[k].average);
- printf("\n是否要删除此学生的信息?\n");
- printf("(是请按1,否请按0)\n");
- printf("你的选择是:");
- scanf("%d",&s);
- if(s==)
- {
- del(L,x);
- }
- }
- break;
- }
- }while(sel!=);
- printf("谢谢使用此系统!!");
- return ;
- }
大学生成绩管理系统(C语言)的更多相关文章
- 学生成绩管理系统-JAVA语言测试
首先右键新建一个工程project 选择Java Project,单击next下一步 project命名为“学生成绩管理系统”,点击finish继续 右键src文件夹新建Package包,取名为te ...
- 学生成绩管理系统——C语言实现
一.功能实现: 0.浏览学生信息 1.输入学生信息 2.增加学生信息 3.修改学生信息 4.删除学生信息 5.按学号查询 6.按班级查询 7.按姓名查询 8.按课堂名称查询 9.按总分高低排序 10. ...
- 【学生成绩管理系统】 大二c语言作业
几年前写的了,只能在命令行窗口运行,虽然比较挫,还是有一定参考价值... #include <cstdio> #include <conio.h> #include <i ...
- C语言课程设计(成绩管理系统)
C语言课程设计(成绩管理系统) 翻到了大学写的C语言课程设计,缅怀一下 内容: 增加学生成绩 查询学生成绩 删除 按照学生成绩进行排序 等 #include <stdio.h> #incl ...
- C语言项目:学生成绩管理系统
C语言项目:学生成绩管理系统 1.数据结构:学生信息:学号.姓名.年龄.性别.3课成绩 2.功能: (1)增加学生记录 (2) 删除学生记录 (3) 查找学生信息(学号 ...
- C语言实现---学生成绩管理系统
C语言实现了学生成绩管理系统,可以进行学生成绩的增加,删除,更新,查询,计算和展示. 完整代码如下: #include<stdio.h> #include<stdlib.h> ...
- 第一次写C语言小程序,可以初步理解学生成绩管理系统的概念
1 成绩管理系统概述 1.1 管理信息系统的概念 管理信息系统(Management Information Systems,简称MIS),是一个不断发展的新型学科,MIS的定义随着科技的进步也在 ...
- C/C++编程笔记:C语言成绩管理系统!链式结构的管理系统源码分享
最近很多同学因为学校的要求,需要完成自己的那个C语言课程设计,于是就有很多人私信或者加我私聊我,问的最多的还是<学生成绩管理系统>,其实当你项目写多了你就会发现:其实各类的管理系统都离不开 ...
- C语言利用结构体数组实现学生成绩管理系统
这篇文章主要为大家详细介绍了C语言利用结构体数组实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 要求: 某班有最多不超过30人(具体人数由键盘输入) ...
随机推荐
- uva 11324 The Largest Clique
vjudge 上题目链接:uva 11324 scc + dp,根据大白书上的思路:" 同一个强连通分量中的点要么都选,要么不选.把强连通分量收缩点后得到SCC图,让每个SCC结点的权等于它 ...
- VS2013和VS2008项目的互通
VS2013和VS2008项目的互通,大家可能都查到了百度经验里面的一个帖子: http://jingyan.baidu.com/article/f54ae2fc3c3adc1e92b849de.ht ...
- IE7浏览器下CSS属性选择器二三事
一.为何专门说起IE7 以前,或者说数年前,我们从事桌面端网页开发的时候,基本上都还要兼顾IE6浏览器, 即使有些特性,IE7支持,我们也会忽略之.于是,我们会不自然地把IE6和IE7浏览器归为一路货 ...
- css归纳
css文本框与按钮不对齐解决方案: 文字要包含在label标签中,并设置行高,否则文字会与文本框的顶 端对齐:文本框要设置vertical-align:middle;否则文本框与button顶端对齐: ...
- [Hadoop 周边] Hadoop资料收集【转】
原文网址: http://www.iteblog.com/archives/851 最直接的学习参考网站当然是官网啦: http://hadoop.apache.org/ Hadoop http:// ...
- struts 标签库注解
在struts2中有着一套像html一样的标签,俗称struts2标签,大多数公司使用ssh都是使用html标签,但为了保持项目的统一性,有的公司还是使用的struts2的标签,下面是一些常用的str ...
- python中字符串与列表的相互转换
列表转字符串 list1 = ['abc' , 'def' , 'ghi'] str1 = ','.join(list1) str1 = '##'.join(list1) 字符串转列表 str1 = ...
- 18. 4Sum -- 找到数组中和为target的4个数
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...
- Android之ScrollView嵌套ListView
在ScrollView中嵌套使用ListView,ListView只会显示的内容只有一行多一点 解决方案: public class Utility { public void setListView ...
- jquery json 操作(转)
原文:http://www.vososo.com/?p=919 Jquery-json 是 jQuery 的一个插件,可轻松实现对象和 JSON 字符串之间的转换.可序列化 JavaScript 对象 ...