C语言编写学生成绩管理小系统

合集下载

c语言程序设计之学生成绩管理系统精华版

c语言程序设计之学生成绩管理系统精华版

// 111.cpp : 定义控制台应用程序的入口点。

//#include "stdafx.h"#include<stdlib.h>#include<conio.h>#include<string.h>#define A Ls->s[i].kaoshi*0.7+Ls->s[i].pingshi*0.3#define B Ls->s[i].kaoshi1*0.7+Ls->s[i].pingshi1*0.3#define MAX 1000#include <Windows.h>BOOL SetConsoleColor(WORD wAttributes){HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);if (hConsole == INVALID_HANDLE_VALUE)return FALSE;return SetConsoleTextAttribute(hConsole, wAttributes);}//使用色彩typedef struct{char name[20];int num;int classes;int age;char sex[10];int bianhao;char mingcheng[20];int xuefen;int kaoshi;int pingshi;int bianhao1;char mingcheng1[20];int xuefen1;int kaoshi1;int pingshi1;}student;typedef struct{student s[MAX];int length;}Lstudent;void welcome()/*界面函数*/{SetConsoleColor(FOREGROUND_RED);printf(" ◢▇▇▇▇▇▇▇▇▇▇▇▇◣\n");printf(" ▇欢迎进入成绩管理系统▇\n");printf(" ◥▇▇▇▇▇▇▇▇▇▇▇▇◤\n");printf(" \n"); SetConsoleColor(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); printf(" ◢▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇◣\n");printf(" ◢▇▇▇0.读取信息▇▇▇◣\n");printf(" ◢▇▇▇▇ 1.输入成绩▇▇▇▇◣\n");printf(" ◢▇▇▇▇▇ 2.输出成绩▇▇▇▇▇◣\n"); printf(" ◢▇▇ 3.插入成绩▇▇◣\n"); printf(" ◢▇▇▇ 4.删除成绩▇▇▇◣\n"); printf(" ▇▇▇▇ 5.查找成绩▇▇▇▇\n"); printf(" ▇▇▇▇ 6.修改成绩▇▇▇▇\n"); printf(" ◥▇▇▇7.不及格名单▇▇▇◤\n"); printf(" ◥▇▇8.平均成绩及排名▇▇◤\n"); printf(" ◥▇▇▇▇9.存储信息▇▇▇▇◤\n");printf(" ◥▇▇▇10.退出成绩管理系统▇▇▇◤\n");printf(" ◥▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇◤\n");}void read(Lstudent *Ls,FILE *fp){system("cls");if((fp=fopen("score system.txt","rt+"))==NULL){printf("无法打开此文件\n");printf("请按回车键返回主界面");getchar();}else{while(!feof(fp))putchar(getc(fp));printf("按回车键返回主界面");getchar();getchar();}fclose(fp);}void input(Lstudent *Ls)/*输入学生的成绩*/{ int n;int i;system("cls");printf(" 请输入学生数:");scanf("%d",&n);Ls->length=n;for(i=0;i<n;i++){printf(" 输入第%d个学生的数据:\n",i+1); printf(" 姓名:");scanf("%s",&Ls->s[i].name);printf(" 学号:");scanf("%d",&Ls->s[i].num);printf(" 班级:");scanf("%d",&Ls->s[i].classes);printf(" 年龄:");scanf("%d",&Ls->s[i].age);printf(" 性别:");scanf("%s",&Ls->s[i].sex);printf(" 课程编号:");scanf("%d",&Ls->s[i].bianhao);printf(" 课程名称:");scanf("%s",&Ls->s[i].mingcheng);printf(" 学分:");scanf("%d",&Ls->s[i].xuefen);printf(" 考试成绩:");scanf("%d",&Ls->s[i].kaoshi);printf(" 平时成绩:");scanf("%d",&Ls->s[i].pingshi);printf(" 课程编号:");scanf("%d",&Ls->s[i].bianhao1);printf(" 课程名称:");scanf("%s",&Ls->s[i].mingcheng1);printf(" 学分:");scanf("%d",&Ls->s[i].xuefen1);printf(" 考试成绩:");scanf("%d",&Ls->s[i].kaoshi1);printf(" 平时成绩:");scanf("%d",&Ls->s[i].pingshi1);}printf("录入成绩完成,请按回车键返回主界面"); getchar();getchar();}void output(Lstudent *Ls)/*输出学生的成绩信息*/ {int i;system("cls");for(i=0;i<Ls->length;i++){printf("┏━━━┳━━━┳━━━┳━━━┳━━━┳\n");printf("┃姓名┃学号┃班级┃年龄┃性别┃\n");printf("┣━━━╋━━━╋━━━╋━━━╋━━━╋\n");printf("┃%-6.6s┃%-4d ┃%-4d ┃%-4d ┃%-6.6s┃\n",Ls->s[i].name,Ls->s[i].num,Ls->s[i].classes,Ls->s[i].age,Ls->s[i].sex);printf("┣━━━╋━━━╋━━━╋━━━╋━━━┫\n");printf("┏━━━━━┳━━━┳━━━━━┳━━━━━┳━━━━┳━━━━┳\n");printf("┃课程1编号┃名称┃学分┃考试成绩┃平时成绩┃综合成绩┃\n");printf("┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");printf("┃%-4d ┃%-6.6s┃%-4d ┃%-4d ┃%-4d ┃%-4.1f ┃\n",Ls->s[i].bianhao,Ls->s[i].mingcheng,Ls->s[i].xuefen,Ls->s[i].kaoshi,Ls->s[i].pingshi,A);printf("┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");printf("┏━━━━━┳━━━┳━━━━━┳━━━━━┳━━━━┳━━━━┳\n");printf("┃课程2编号┃名称┃学分┃考试成绩┃平时成绩┃综合成绩┃\n");printf("┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");printf("┃%-4d ┃%-6.6s┃%-4d ┃%-4d ┃%-4d ┃%-4.1f ┃\n",Ls->s[i].bianhao1,Ls->s[i].mingcheng1,Ls->s[i].xuefen1,Ls->s[i].kaoshi1,Ls->s[i].pingshi1,B);printf("┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★");}printf("请按回车键回到主界面");getchar();getchar();}void insert(Lstudent *Ls)/*插入学生成绩信息*/{int n,i,l;system("cls");l=Ls->length;printf(" 请输入要插入的学生数:");scanf("%d",&n);for(i=0;i<n;i++){printf(" 请输入插入第%d个学生的数据:\n",i+1);printf(" 姓名:");scanf("%s",&Ls->s[i+1].name);printf(" 学号:");scanf("%d",&Ls->s[i+1].num);printf(" 班级:");scanf("%d",&Ls->s[i+1].classes);printf(" 年龄:");scanf("%d",&Ls->s[i+1].age);printf(" 性别:");scanf("%s",&Ls->s[i+1].sex);printf(" 课程编号:");scanf("%d",&Ls->s[i+1].bianhao);printf(" 课程名称:");scanf("%s",&Ls->s[i+1].mingcheng);printf(" 学分:");scanf("%d",&Ls->s[i+1].xuefen);printf(" 考试成绩:");scanf("%d",&Ls->s[i+1].kaoshi);printf(" 平时成绩:");scanf("%d",&Ls->s[i+1].pingshi);printf(" 课程编号:");scanf("%d",&Ls->s[i+1].bianhao1);printf(" 课程名称:");scanf("%s",&Ls->s[i+1].mingcheng1);printf(" 学分:");scanf("%d",&Ls->s[i+1].xuefen1);printf(" 考试成绩:");scanf("%d",&Ls->s[i+1].kaoshi1);printf(" 平时成绩:");scanf("%d",&Ls->s[i+1].pingshi1);}Ls->length+=n;printf("插入成绩完成,请按回车键返回主界面"); getchar();getchar();}void delet(Lstudent *Ls)/*按学号删除*/{int i=0,j,x;system("cls");printf(" 请输入要删除的学生的学号:"); scanf("%d",&x);while((i<Ls->length)&&(Ls->s[i].num!=x))i++;if(i<Ls->length){for(j=i;j<Ls->length;j++)Ls->s[j]=Ls->s[j+1];Ls->length--;printf(" 已成功删除");}elseprintf(" 对不起,无此学生成绩,无法删除\n");printf("请按回车键返回主界面");getchar();getchar();}void search(Lstudent *Ls)/*按学号查找*/{int i=0,x;system("cls");printf(" 请输入要查找学生的学号:");scanf("%d",&x);while((i<Ls->length)&&(Ls->s[i].num!=x))i++;if(i<Ls->length){printf("┏━━━┳━━━┳━━━┳━━━┳━━━┳\n");printf("┃姓名┃学号┃班级┃年龄┃性别┃\n");printf("┣━━━╋━━━╋━━━╋━━━╋━━━╋\n");printf("┃%-6.6s┃%-4d ┃%-4d ┃%-4d ┃%-6.6s┃\n",Ls->s[i].name,Ls->s[i].num,Ls->s[i].classes,Ls->s[i].age,Ls->s[i].sex);printf("┣━━━╋━━━╋━━━╋━━━╋━━━┫\n");printf("┏━━━━━┳━━━┳━━━━━┳━━━━━┳━━━━┳━━━━┳\n");printf("┃课程1编号┃名称┃学分┃考试成绩┃平时成绩┃综合成绩┃\n");printf("┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");printf("┃%-4d ┃%-6.6s┃%-4d ┃%-4d ┃%-4d ┃%-4.1f ┃\n",Ls->s[i].bianhao,Ls->s[i].mingcheng,Ls->s[i].xuefen,Ls->s[i].kaoshi,Ls->s[i].pingshi,A);printf("┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");printf("┏━━━━━┳━━━┳━━━━━┳━━━━━┳━━━━┳━━━━┳\n");printf("┃课程2编号┃名称┃学分┃考试成绩┃平时成绩┃综合成绩┃\n");printf("┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");printf("┃%-4d ┃%-6.6s┃%-4d ┃%-4d ┃%-4d ┃%-4.1f ┃\n",Ls->s[i].bianhao1,Ls->s[i].mingcheng1,Ls->s[i].xuefen1,Ls->s[i].kaoshi1,Ls->s[i].pingshi1,B);printf("┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");printf("☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★");}elseprintf(" 未找到此学生\n");printf("请按回车键回到主界面");getchar();getchar();}void save(Lstudent *Ls,FILE *fp)/*将学生成绩信息存储在文件score system.txt中*/{int i;system("cls");if((fp=fopen("score system.txt","wt+"))==NULL)printf("无法打开此文件\n");elsefor(i=0;i<Ls->length;i++){fprintf( fp,"┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━┳\n");fprintf( fp,"┃姓名┃学号┃班级┃年龄┃性别┃\n");fprintf( fp,"┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━╋\n");fprintf( fp,"┃%-6.6s┃%-4d ┃%-4d ┃%-4d ┃%-6.6s┃\n",Ls->s[i].name,Ls->s[i].num,Ls->s[i].classes,Ls->s[i].age,Ls->s[i].sex);fprintf( fp,"┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━┫\n");fprintf( fp,"┏━━━━━┳━━━┳━━━━━┳━━━━━┳━━━━┳━━━━┳\n");fprintf( fp,"┃课程1编号┃名称┃学分┃考试成绩┃平时成绩┃综合成绩┃\n");fprintf( fp,"┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");fprintf( fp,"┃%-4d ┃%-6.6s┃%-4d ┃%-4d ┃%-4d ┃%-4.1f ┃\n",Ls->s[i].bianhao,Ls->s[i].mingcheng,Ls->s[i].xuefen,Ls->s[i].kaoshi,Ls->s[i].pingshi,A);fprintf( fp,"┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");fprintf( fp,"┏━━━━━┳━━━┳━━━━━┳━━━━━┳━━━━┳━━━━┳\n");fprintf( fp,"┃课程2编号┃名称┃学分┃考试成绩┃平时成绩┃综合成绩┃\n");fprintf( fp,"┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");fprintf( fp,"┃%-4d ┃%-6.6s┃%-4d ┃%-4d ┃%-4d ┃%-4.1f ┃\n",Ls->s[i].bianhao1,Ls->s[i].mingcheng1,Ls->s[i].xuefen1,Ls->s[i].kaoshi1,Ls->s[i].pingshi1,B);fprintf( fp,"┣━━━━━╋━━━╋━━━━━╋━━━━━╋━━━━╋━━━━╋\n");fprintf( fp,"☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★");} //注中括号在循环语句中的使用printf("信息已存储在名为“score system.txt的文件中”,按回车键返回主界面");fclose(fp);getchar();getchar();}void aver(Lstudent *Ls)//计算平均分并排序{int i=0,n,j,k;float a[20],t;for(i=0;i<Ls->length;i++)//逐个赋值,千万不能少{a[i]=(A+B)/2;}system("cls");for(k=0;k<Ls->length;k++) //此处为冒泡排序法for(j=1;j<Ls->length;j++)for(i=0;i<Ls->length-j;i++)if(a[i]<a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("┏━━━┳━━━┳━━━━┳\n");printf("┃名次┃姓名┃平均分┃\n");printf("┣━━━╋━━━╋━━━━╋\n");for(i=0;i<Ls->length;i++)// 已输入学生长度为Ls->length{ printf("┃%-4d ┃%-6.6s┃%-4.1f ┃\n",i+1,Ls->s[i].name,a[i]);printf("┣━━━╋━━━╋━━━━╋\n");//注意有调用顺序问题}getchar();getchar();}void nopass(Lstudent *Ls)//? 列出不及格学生清单(学号、姓名、不及格的课程和成绩){int n;system("cls");int i;printf("不及格学生信息\n");for(i=0;i<Ls->length;i++){if(A<60){printf("┏━━━┳━━━━━┳━━━┳━━━━┳\n");printf("┃姓名┃学号┃课程┃考试成绩┃\n");printf("┣━━━╋━━━━━╋━━━╋━━━━╋\n");printf("┃%-6.6s┃%-4d ┃%-6.6s┃%-4.1f ┃\n",Ls->s[i].name,Ls->s[i].num,Ls->s[i].mingcheng,A);printf("┣━━━╋━━━━━╋━━━╋━━━━╋\n"); }if(B<60){ printf("┏━━━┳━━━━━┳━━━┳━━━━┳\n");printf("┃姓名┃学号┃课程┃考试成绩┃\n");printf("┣━━━╋━━━━━╋━━━╋━━━━╋\n");printf("┃%-6.6s┃%-4d ┃%-6.6s┃%-4.1f ┃\n",Ls->s[i].name,Ls->s[i].num,Ls->s[i].mingcheng1,B);}printf("┣━━━╋━━━━━╋━━━╋━━━━╋\n");}printf("请按回车键回到主界面");getchar();getchar();}void change(Lstudent *Ls)//修改成绩{int i=0,n;printf("请输入要修改的学号:");scanf("%d",&n);if(Ls->s[i].num==n){printf("\n 请输入学生姓名:");fflush(stdin);scanf("%s",&Ls->s[i].name);printf("\n 请输入学生班级:");fflush(stdin);scanf("%s",&Ls->s[i].classes);printf("\n 请输入学生年龄:");fflush(stdin);scanf("%d",&Ls->s[i].age);printf("\n 请输入学生性别:");fflush(stdin);scanf("%s",&Ls->s[i].sex);printf("\n 请输入课程1编号:");fflush(stdin);scanf("%d",&Ls->s[i].bianhao);printf("\n 请输入课程名称:");fflush(stdin);scanf("%s",&Ls->s[i].mingcheng);printf("\n 请输入课程学分:");fflush(stdin);scanf("%d",&Ls->s[i].xuefen);printf("\n 请输入课程考试成绩:");fflush(stdin);scanf("%d",&Ls->s[i].kaoshi);printf("\n 请输入课程平时成绩:");fflush(stdin);scanf("%d",&Ls->s[i].pingshi);printf("\n 请输入课程2编号:");fflush(stdin);scanf("%d",&Ls->s[i].bianhao1);printf("\n 请输入课程名称:");fflush(stdin);scanf("%s",&Ls->s[i].mingcheng1);printf("\n 请输入课程学分:");fflush(stdin);scanf("%d",&Ls->s[i].xuefen1);printf("\n 请输入课程考试成绩:");fflush(stdin);scanf("%d",&Ls->s[i].kaoshi1);printf("\n 请输入课程平时成绩:");fflush(stdin);scanf("%d",&Ls->s[i].pingshi1);printf("修改成功!");printf("\n");}elseprintf("未找到该学号\n");printf("请按回车键回到主界面");getchar();getchar();return;}int _tmain(int argc, _TCHAR* argv[]){printf("=====================================================\n");printf(" === 学生成绩管理系统===\n");printf(" === ===\n");printf(" === 设计者:===\n");printf(" === ===\n");printf(" === 指导老师:===\n");printf(" === ===\n");printf(" === 中南大学信息科学与工程学院===\n");printf(" === ===\n");printf(" === 2011级===\n");printf(" === ===\n");printf(" === 2012年6月===\n");printf("=====================================================\n");getchar();int choice;Lstudent Ls;FILE *fp=NULL;while(1){system("cls");welcome();printf("请选择您要的操作:");scanf("%d",&choice);switch(choice){case 0:read(&Ls,fp);break;case 1:input(&Ls);break;case 2:output(&Ls);break;case 3:insert(&Ls);break;case 4:delet(&Ls);break;case 5:search(&Ls);break;case 6: change (&Ls);break;case 7:nopass (&Ls);break;case 8:aver(&Ls);break;case 9:save(&Ls,fp);break;//修改成绩case 10:printf("谢谢使用!\n");exit(0); default:printf("选择有误,请重新输入\n"); }}return 0;}。

C语言课程设计_学生成绩管理系统

C语言课程设计_学生成绩管理系统

部署步骤:安装 操作系统、安装 数据库、安装应 用软件等
维护方案:定期 备份数据、定期 检查系统、定期 更新软件等
系统维护方案
定期备份数据: 确保数据安全, 防止数据丢失
定期更新系统: 确保系统安全, 防止病毒和恶意 软件攻击
定期检查硬件: 确保硬件正常运 行,防止硬件故 障
定期培训员工: 确保员工熟悉系 统操作,提高工 作效率
06 系统测试与优化
单元测试
目的:验证单个模块或功能的正确 性
测试内容:功能测试、性能测试、 兼容性测试、安全性测试
添加标题
添加标题
添加标题
添加标题
测试方法:白盒测试、黑盒测试、 灰盒测试
测 试 工 具 : JU n it 、 Te s t NG 、 Selenium等
集成测试
目的:验证系统各模块间的接口和交互是否正常 测试方法:黑盒测试、白盒测试、灰盒测试 测试内容:功能测试、性能测试、安全测试、兼容性测试 测试工具:JMeter、Selenium、Appium等
系统性能优化
性能测试:使用自 动化工具进行性能 测试,如JMeter、 LoadRunner等
性能瓶颈分析:分 析性能测试结果, 找出性能瓶颈,如 数据库查询、网络 延迟等
性能优化:针对性 能瓶颈进行优化, 如优化数据库查询 、减少网络延迟等
性能监控:建立性 能监控体系,实时 监控系统性能,及 时发现和解决性能 问题
学生成绩管理系统是一个用 于管理学生成绩的软件系统
Байду номын сангаас
系统采用模块化设计,易于 维护和扩展
系统支持多种数据格式,如 Excel、CSV等,方便数据
导入和导出
系统目标
提高学生成绩管理效率 方便教师查询、统计和分析学生成绩 提供个性化学习建议和指导 促进家校沟通,提高家长对学生成绩的了解

学生成绩管理系统c语言代码(供参考)

学生成绩管理系统c语言代码(供参考)

C程序学生管理系统以下是用C语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h"#include”stdlib。

h"#include"string。

h”typedefstruct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedefstruct unit//定义接点{studentdate;struct unit*next;}unit;unit大build()//建立链表并返回指针{unit*p;if((p=(unit*)malloc(sizeof(unit)))==NULL){printf("二>初始化失败!”);return0;}else{p—>next=NULL;p-〉date.number=O;//头结点存放学生人数printf("初始化成功!\n");return p;}}void add(unit大head)//增加学生{unit*p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”二〉请输入新生姓名!\n");gets(p—>);fflush(stdin);printf("二〉请输入学号!\n");while(n==0){scanf("%d",&m);fflush(stdin);if(q二二NULL)n二1;while(q){if(q->date.number==m){prinTf("二>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head-〉next;break;}else{q=q->next;if(q==NULL)n=1;}}}p一〉date。

C语言课程设计-学生成绩管理系统-完整版

C语言课程设计-学生成绩管理系统-完整版

#include<stdio.h> #include<stdlib.h>#include<io.h> #include<string.h> /* strcmp 函数原型包含 */#define N 100 /* 定义最大学生人数为 100*/ struct student /* 学生结构体定义 */ char no[11]; /* 学号 ,10 位 */ char name[10];/* 姓名, 3 个汉字 */ char grade[10];/* 班级 */ char pro[20];/* 专业 */float score[5];/* 储存 5 门功课的成绩 */ float ave;/* 储存平均分 */ int year;/* 入学年 *//* 通过 i 的值,判断信息要查找的信息是否存在 *//* 输出学生成绩函数(公共函数) */ /* 系统初始化函数 */ /* 建立新的数据文件 *//* 从数据文件中读取数据 */ /* 维护界面函数 */ /* 新增一个学生成绩函数 */ /* 修改学生成绩 */ /* 修改成绩 *//* 删除学生信息函数 */ /* 统计界面函数 */ /* 计算每个学生平均分 */ /* 计算每门课程的平均分 */ /* 排序函数 */ /* 按学号排序 */ /* 按平均分排序 */ /* 按单科成绩排序 *//* 交换结构体数组中的两个记录 *//* 选择输出单科成绩 */ /* 查找界面函数 */ /* 按学号查找 */ int findname(char cname[]);/* 按姓名查找 */ void findyear(int cyear); /* 按入学年查找 */ void save(); /* 保存文件 */ void stop(); /* 停顿函数 */void stop()/* 停顿函数 (公共函数) */{printf("Press Any Key To Continue...\n"); getchar();}}stu[N]; int num; void panduani(int); void output(); voidinit(); void newfile(); void read1(); void weihu(); void new1(); void xiugai(); void xgcj(int); void delete1(); void tongji(); void tongji1(); void tongji2(); void paixu1(); void paino(); void paiave(); void paidkcj(); voidchange(int,int); void outputx(int); void find1(); int find(char sno[]);void output() /* 输出学生成绩函数(公共函数) */{int i,j;printf("===================================================================\n");printf(" 学号姓名班级专业入学年 C 语言高数大物电路模电\n");printf("===================================================================\n");for(i=0;i<num;i++){printf("%s %s %s %s %d",stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year) Jfor(j=0;j<5;j++)printf(" %.1f",stu[i].score[j]);printf("\n");}stop();}void init() /* 系统初始化函数*/{if(access("stu.dat",0)) /* 判断文件是否存在*/newfile(); /* 若不存在,新建数据文件*/elseread1(); /* 若存在,读取数据*/}void newfile() /* 建立新的数据文件*/{int i;FILE *fp;if((fp=fopen("stu.dat","wb"))==NULL) /* 创建二进制文件*/{printf(" 创建文件失败,请重新运行程序.\n"); /* 显示" 创建文件失败,请重新运行程序"*/exit(0); /* 终止程序*/}printf(" 初次运行,进行数据初始化...\n");/* 显示" 初次运行,进行数据初始化..."*/ stop();printf(" 请输入学生人数:");/* 显示"请输入学生人数:"*/ scanf("%d",&num);for(i=0;i<num;i++){printf(" 请输入第%d 个学生的学号:",i+1); /* 显示"请输入第i+1 个学生的学号:"*/ getchar(); /* 吃回车*/gets(stu[i].no);printf(" 姓名:"); /* 显示"姓名:"*/gets(stu[i].name);printf(" 班级:"); /* 显示"班级:"*/gets(stu[i].grade);printf(" 专业:"); /* 显示"专业:"*/gets(stu[i].pro);printf(" 入学年n:");/* 显示" 入学年"*/scanf("%d",&stu[i].year);printf("C 语言成绩:");/* 显示"C 语言成绩"*/ scanf("%f",&stu[i].score[0]);printf(" 高数成绩:");/* 显示"高数成绩"*/ scanf("%f",&stu[i].score[1]);printf(" 大物成绩:");/* 显示" 大物成绩"*/ scanf("%f",&stu[i].score[2]);printf(" 电路成绩:");/* 显示" 电路成绩"*/ scanf("%f",&stu[i].score[3]);printf(" 模电成绩:");/* 显示" 模电成绩"*/scanf("%f",&stu[i].score[4]);fwrite(&stu[i],1,sizeof(struct student),fp); /* 把第i+1 名学生成绩写入文件*/ }fclose(fp);printf("========================\n");printf(" 刚才输入的%d 个数据为:\n",num); /*显示"刚才输入的num 个数据为:"*/ printf("========================\n\n");output();}void read1() /* 从数据文件中读取数据*/{FILE *fp;num=0; /*num 为数据文件中实际存储的学生人数*/fp=fopen("stu.dat","r");if(fp==NULL) /* 数据文件不存在*/{printf(" 文件打开失败!重新运行程序\n"); /* 显示"文件打开失败!重新运行程序"*/ exit(0);}while(!feof(fp)) /* 文件结束检测"*/{fread(&stu[num],1,sizeof(struct student),fp); num++;}num--; fclose(fp); printf("\t\t\t=======================================\n"); printf(" \t\t\t现有 %d 个学生的成绩: \n",num); /* 显示 "现有 NUM 个学生的成绩: "*/printf("\t\t\t=======================================\n\n"); output();}void weihu() /* 维护界面函数 */{char c1; while(1){getchar(); if(c1=='9') break; switch(c1) { case '1': new1(); break; case '2': delete1(); case '3': xiugai(); break; default:printf(" 选择有误,请重选! \n");/*" 选择有误,请重选! "*/} } }void new1() /* 新增一个学生成绩函数 */{printf(" 请输入学号 :"); /* 显示 "请输入学号 :"*/ gets(stu[num].no);printf("\t\t\t* 维护*\n");printf("\t\t\t* 1. 新增 *\n"); /*新增 */printf("\t\t\t* 2. 删除 *\n"); /* 删除(按学号)*/printf("\t\t\t* 3. 修改 *\n"); /* 修改 */ printf("\t\t\t*9. 返回*\n"); /* 返回 */printf("\t\t\t************************\n");printf("\t\t\t 请选\n");/* 请选*/printf("\n\n\n\t\t\t* ********************* **\n"); c1=getchar();printf(" 姓名:"); /* 显示"姓名:"*/ gets(stu[num].name);printf(" 班级:"); /* 显示" 班级:"*/ gets(stu[num].grade);printf(" 专业:"); /* 显示"专业:"*/ gets(stu[num].pro);printf(" 入学年:");/* 显示"入学年"*/ scanf("%d",&stu[num].year);printf("C 语言成绩:");/* 显示"C 语言成绩"*/ scanf("%f",&stu[num].score[0]); printf(" 高数成绩:");/* 显示"高数成绩"*/ scanf("%f",&stu[num].score[1]);printf(" 大物成绩:");/* 显示" 大物成绩"*/ scanf("%f",&stu[num].score[2]);printf(" 电路成绩:");/* 显示" 电路成绩"*/ scanf("%f",&stu[num].score[3]);printf(" 模电成绩:");/* 显示" 模电成绩"*/ scanf("%f",&stu[num].score[4]);num++; printf("\n======================================\n");"*/ printf(" 现有%d 个学生的成绩:\n",num); /* 显示"现有NUM 个学生的成绩:printf("======================================\n\n");output();}void xiugai() /* 修改学生成绩*/{char xg[11];int i;printf("\n 请输入要修改学生的学号 :\n\n"); gets(xg);for(i=0;i<num;i++)if(strcmp(stu[i].no,xg)==0)break; if(i==num){printf("\n 数据文件无该生信息 !\n\n 请重新输入学号 .\n\n"); stop(); return;}xgcj(i);} void xgcj(int x)/* 修改成绩 */{ char xueke[5][10]={"C 语言","高数 ","物理","电路","模电"}; char (*p)[10],c; int j,k; p=xueke; for(;;){**\n\n"); printf("\t\t\t 成绩 printf("\t\t\t 1.C 语言 printf("\t\t\t 2.高数printf("\t\t\t 3.物理 printf("\t\t\t 4.电路 printf("\t\t\t5.模电 printf("\t\t\t9.返回printf("\n");printf("\t\t\t** ******************************** printf("\t\t\t** ******************************** \n");\n"); /*C 语言 */ \n"); /*高数 */\n"); /* 大学物理 */ \n"); /*电路 */ \n"); /*模电 */ \n\n"); /* 返回上级 */**\n\n"); printf("\t 请选择要修改的成绩 (按 1.2.3.4.5.9):\n"); c=getchar(); getchar();if(c=='9')break; else if (c>='1'&&c<='5'){k=c-49;printf("\n 请输入 %s 成绩 :\n",p+k); scanf("%f",&stu[x].score[k]); printf("\n 修 息为 :\n");printf(" 学号 姓名 班级 专业 入学年 C 语言 高数 大物电路模电printf("===================================================================\n");printf("%s %s %s %s %d",stu[x].no,stu[x].name,stu[x].grade,stu[x].pro,stu[x].ye ar);for(j=0;j<5;j++)printf(" %.1f",stu[x].score[j]);printf("\n");}else printf("\n 选择有误,请重选!\n\n");stop();}}int find(char sno[]) /* 按学号查找*/{int i;for(i=0;i<num;i++)if(strcmp(stu[i].no,sno)==0) /* 判断两个字符串相等*/return i;/* 查找成功*/return -1;/* 查找失败*/}void delete1() /* 删除学生信息函数*/{char cno[11];int i,j;printf(" 请输入要删除的学生学号:"); /*" 请输入要删除的学生学号"*/gets(cno);i=find(cno);if(i!=-1){for(j=i;j<num;j++)stu[j]=stu[j+1];num--;printf(" 现有%d 个学生的成绩:\n",num); /* 显示" 现有NUM 个学生的成绩:"*/ output();}else {printf(" 请输入正确的学号. \n");stop();}}void tongji(){int i;char c2; while(1) {printf("\t\t\t 请选择 :\n");/* 请选择: */ c2=getchar(); getchar(); if(c2=='9') break; switch(c2){case '1': tongji1();printf("\n\n 学生平均分为 :\n");printf("===========================================\n"); printf(" 学号 姓名 入学年 平均分 \n");printf("===========================================\n"); for(i=0;i<num;i++)printf("%s %s %d %.2f\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave); stop(); break; case '2': tongji2(); break; default:printf(" 选择有误,请重选 \n");/*" 选择有误,请重选! "*/ }} }void tongji1() /* 计算每个学生平均分 */ { int i,j;for(i=0;i<num;i++){stu[i].ave=0; for(j=0;j<5;j++)stu[i].ave+=stu[i].score[j]; stu[i].ave=stu[i].ave/5;}}void tongji2()/* 计算每门课程的平均分 */{int i,j; float sum;printf("\t\t\t* 统计 *\n");printf("\t\t\t*1. 学生平均分 *\n"); /* 计算学生平均分 */ printf("\t\t\t*2. 课程平均分 *\n"); /* 计算每门课程平均分 */ printf("\t\t\t*9. 返回*\n"); /* 返回 */printf("\n\n\n\t\t\t ***************************** **\n"); printf("\t\t\t* **************************** **\n"); /* 统计界面函数 */float avec[5]; /* 储存每门课的平均分*/ for(j=0;j<5;j++){sum=0;for(i=0;i<num;i++)sum+=stu[i].score[j];avec[j]=sum/num;}printf("\n\n 各科平均分:\n");/*" 各科平均分:"*/printf("===================================\n"); printf("C 语言高数大物电路模电\n"); printf("===================================\n"); for(i=0;i<5;i++)printf("%-7.1f",avec[i]);printf("\n");stop();}void paixu1() /* 排序界面*/{char c3;for(;;){printf("\n\n\n");printf("\t\t\t***********************************\n");printf("\t\t\t* 排序* \n");printf("\t\t\t* 1. 按学号排序* \n"); /* 按学号排序*/printf("\t\t\t* 2. 按平均分排序* \n"); /* 按平均分排序*/printf("\t\t\t* 3. 按单科成绩排序* \n"); /* 按单科成绩排序*/printf("\t\t\t* 9. 返回* \n"); /* 返回*/printf("\t\t\t***********************************\n\n");printf("\t 请选(按 1.2.3.9):\n");/* 请选择:*/c3=getchar();getchar();if(c3=='9') break;switch(c3){case '1':paino();break;case '2':paiave();break;case '3':paidkcj();break; default:printf("\n 选择有误,请重选!\n\n");/* 选择有误,请重选!*/ stop();}}}void paino() /* 按学号排序*/{ /* 按学号从低到高冒泡法排序*/int i,j;for(i=0;i<num;i++)for(j=0;j<num-1-i;j++)if(strcmp(stu[j].no,stu[j+1].no)>0) change(j,j+1);printf("\n 排序后为:\n"); /*" 排序后为:"*/output();}void paiave() /* 按平均分排序*/{ /* 按平均分从高到低冒泡法排序*/int i,j;tongji1(); /* 计算平均成绩*/ for(i=0;i<num;i++) for(j=0;j<num-i-1;j++)if(stu[j].ave<stu[j+1].ave) change(j,j+1);printf("\n\t 排序后为:\n"); /*" 排序后为:"*/printf("\t===============================================\n"); printf("\t 学号姓名入学年平均分排名\n");printf("\t===============================================\n"); for(i=0;i<num;i++) printf("\t%s %s %d %.2f %4d\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave,i+1); stop();void paidkcj() /* 按单科成绩排序*/ {char c;int i,j,k;while(1){printf("\n");printf("\t\t\t************************************\n\n");printf("\t\t\t 单科成绩\n");printf("\t\t\t 1.C 语言\n"); /*C 语言*/printf("\t\t\t 2.高数\n"); /*高数*/printf("\t\t\t 3.物理\n"); /* 大学物理*/printf("\t\t\t 4.电路\n"); /*电路*/printf("\t\t\t 5.模电\n"); /*模电*/printf("\t\t\t 9.返回\n\n"); /* 返回上级*/printf("\t\t\t************************************\n\n");( 按 1.2.3.4.5.9):\n");printf("\t 请选择:c=getchar();getchar();else if (c>='1'&&c<='5'){k=c-49;for(i=0;i<num;i++) for(j=0;j<num-1-i;j++) if(stu[j].score[k]<stu[j+1].score[k])change(j,j+1);outputx(k);}else printf("\n 选择有误,请重选!\n\n"); stop();}}void change(int i,int j)/* 交换结构体数组中的两个记录*/{struct student temp; temp=stu[i]; stu[i]=stu[j]; stu[j]=temp;}void outputx(int k) /* 选择输出单科成绩*/char xueke[5][10]={"C 语言","高数 ","物理","电路","模电"}; char (*p)[10]; /* 定义一个指向包含 10 个字符型元素的一维数组的指针变量 */int i;p=xueke;printf("\n\t 排序后为 :\n");printf("\t===============================================\n"); printf("\t 学号 姓名入学年 %s 排名 \n",p+k);printf("\t===============================================\n"); for(i=0;i<num;i++)printf("\t%-11s% -10s%-11d%-6.1f%5d\n",stu[i].no, stu[i].name,stu[i].year,stu[i].score[k],i+1);}void find1() /* 查找界面函数 */{char c4;char cno[11],cname[10]; int i,cyear; while(1){printf("\t\t\t* ************************************\n"); printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* printf("\t\t\t* printf("\t\t\t请选择 :\n");/* 请选择:*/ c4=getchar();getchar(); if(c4==57) break; switch(c4){case '1':printf(" 输入学号 :\n");/*" 输入学号: "*/ gets(cno); i=find(cno); panduani(i); break; case '2':printf(" 输入姓名 :\n");/*" 输入姓名: "*/ gets(cname);i=findname(cname); panduani(i); break; case '3':printf(" 输入入学年 :\n");/*" 输入入学年 "*/ scanf("%d",&cyear);查找1. 按学号查找2. 按姓名查找3. 按入学年查找 9. 返回************************************\n");*\n");*\n"); /* 按学号查找 */ *\n"); /* 按姓名查找 */ *\n"); /* 按入学年查找 */findyear(cyear);stop();break;default:printf(" 选择有误,请重选!\n");/*" 选择有误,请重选!"*/}}} int findname(char cname[]) /* 按姓名查找*/{int i;for(i=0;i<num;i++)if(strcmp(stu[i].name,cname)==0) /* 判断两个字符串相等*/return i; /* 查找成功*/return -1; /* 查找失败*/}void findyear(int cyear){int i,j,flag=0;for(i=0;i<num;i++)if(stu[i].year==cyear){ flag=1;break;}if(flag==0){printf(" 要查找的学生不存在\n");stop(); }else{printf(" 查找到的学生信息为:\n");/*" 查找到的学生信息为:"*/printf(" 学号姓名班级专业入学年 C 语言高数大物电路模电\n");printf("================================================================ ===\n");for(i=0;i<num;i++){if(stu[i].year==cyear) /* 判断两个数值相等*/{printf("%s %s %s %s %d",stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year); for(j=0;j<5;j++) printf(" %.1f",stu[i].score[j]); printf("\n");}}}}void panduani(int i) /* 通过i 的值,判断信息要查找的信息是否存在*/{int j;if(i==-1){printf(" 要查找的学生不存在\n");/* 要查找的学生不存在*/ stop();}else{printf(" 查找到的学生信息为:\n");/*" 查找到的学生信息为:"*/ printf(" 学号姓名班级专业入学年 C 语言高数大物电路模电\n");printf("================================================================ ===\n");printf("%s %s %s %s %d",stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year)Jfor(j=0;j<5;j++)printf(" %.1f",stu[i].score[j]);printf("\n");stop();}}void save() /* 保存文件*/{int i;FILE *fp;if((fp=fopen("stu.dat","wb"))==NULL) /* 创建二进制文件*/{printf(" 创建文件失败,请重新运行程序.\n"); /* 显示" 创建文件失败,请重新运行程序"*/exit(0); /* 终止程序*/}for(i=0;i<num;i++)fwrite(&stu[i],1,sizeof(struct student),fp); /* 将I+1 名学生成绩写入文件*/ fclose(fp);}void main() /* 主控菜单*/{char c;init();while(1){printf("\t\t 请选择 :\n");/* 请选择: */ c=getchar(); getchar(); switch(c){case '1': weihu(); break; case '2': tongji(); break; case '3': paixu1(); break; case '4': find1(); break; case '9': save(); exit(0); break; default:printf(" 选择有误,请重选 !\n");/*" 选择有误,请重选! "*/printf("\n\t\t***制作:王清珍,陈超,路梓裕,卢诚知,****\n"); printf("\n\t\t*************************************************\n");printf("\t\t* 、 t t • I 、/, 主菜单*\n");printf("\t\t* 1. 维护 *\n"); /* 维护 */ printf("\t\t* 2. 统计 *\n"); /* 统计 */ printf("\t\t* 3. 排序 *\n"); /* 排序 */ printf("\t\t*4. 查找*\n"); /* 排序 */ printf("\t\t*9. 存盘退出*\n"); /* 存盘退出printf("\t\t************* 欢迎登陆学生成绩管理系统 ************\n"); printf("\t\t** ********************************************* **\n");。

学生成绩管理系统(c语言)

学生成绩管理系统(c语言)







printf(" ____________________________ \n"); printf(" │ ★主菜单★ │\n"); printf(" │ 0 退出系统 │\n"); printf(" │ 1 成绩录入 │\n"); printf(" │ 2 成绩修改 │\n"); printf(" │ 3 成绩查询 │\n"); printf(" │ 4 成绩汇总 │\n"); printf(" │ 5 成绩输出 │\n"); printf(" │ 6 成绩排名 │\n"); printf(" │ 7 修改密码 │\n"); printf("  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \n"); printf("请输入您的选择(0,1,2,3,4,5,6,7):"); scanf("%d",&c); switch(c){ case 1:GradeInput(&student); break; case 2:GradeCorrect(student); break; case 3:GradeInquire(student); break; case 4:GradeCollect(student); break; case 5:GradeOutput(student); break; case 6:GradePaixu(student); break; case 7:CodeCorrect(); break; case 0: printf("\n 谢谢使用!\n"); } }while(c!=0); printf("学生成绩管理系统已退出!\n"); } void GradeCode() { FILE *fp; char s[20],yhname[20],mima[20],ch; int i,j=39,flag1=0,flag2=0; do{ system("cls"); printf("\n*************************** 欢 迎 登 陆 学 生 成 绩 管 理 系 统 *****************************\n");

C语言-学生成绩管理系统

C语言-学生成绩管理系统

在TC环境下吧,界面是一片的黑。

可以实现成绩的录入、查询、排序、物理删除、永久删除……记不太清楚了,当时我们的报告要求手写的,也没留下什么电子资料。

C语言还是很好学很好用的,希望对大家有帮助!#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>struct student{int id;char name[10];int age;char sex[10];char birthady[20];char address[50];char tel[15];char E_mail[30];}st[50];int i=0;void shuru() {char a;do{printf("\ninput num:");scanf("%d",&st[i].id);fflush(stdin);printf("\ninput name:");gets(st[i].name);printf("\ninput age:");scanf("%d",&st[i].age);fflush(stdin);printf("\ninput sex:");gets(st[i].sex);fflush(stdin);printf("\ninput birth:");gets(st[i].birthady);fflush(stdin);printf("\ninput address:");gets(st[i].address);printf("\ninput tell:");scanf("%s",&st[i].tel);printf("\ninput E_mail:");scanf("%s",&st[i].E_mail);printf("\nWhether input another student's information ?(y/n)");fflush(stdin);a=getchar();i++;}while(a=='y' && i<=50);}void xianshi(){int j;printf("======================XUESHENGXINXIGUANLIXITONG=============================\n");printf("num\tname\tage\tsex\tbirth\taddr tell E_mail\n");for(j=0;j<i;j++)printf("%d\t%s\t%d\t%s\t%s\t%s%12s%18s\n",st[j].id,st[j].name,st[j].age,st[j].sex,st[j].birthady,st[j].address,st[j].tel,st[j].E_mail);printf("============================================ZHI ZUO REN:sunqi=========\n");}void clearscreen(){getchar();system("cls");}void paixu(){int j,k;int temp;for(j=0;j<i;j++){for(k=0;k<i-1-j;k++){if(st[k].age<st[k+1].age){temp=st[k].age;st[k].age=st[k+1].age;st[k+1].age=temp;}}}xianshi();}void chazhao(){int m=0;char name[20],b;do{printf("\ninput name of student:");fflush(stdin);gets(name);for(m=0;m<20;m++){if(strcmp(name,st[m].name)==0){printf("\n\tThe student is found in %d\n",m+1);break;}}if(m>=20)printf("\n\tCan not find this student\n");else{printf("num\tname\tage\tsex\tbirth\taddr tell E_mail\n");printf("%d\t%s\t%d\t%s\t%s\t%s%12s%18s\n",st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].address,st[m].tel,st[m].E_mail); }printf("\nFind another student?(y/n)");fflush(stdin);b=getchar();}while(b=='y');}void shanchu(){char name[20],c;int a,b;do{printf("\nInput the name of delet student:\n");fflush(stdin);gets(name);for(a=0;a<i;a++){if(strcmp(name,st[a].name)==0)break;}for(b=a;b<i;b++)st[b]=st[b+1];if(a>i)printf("\tCan not find this student\n");else{i--;xianshi();}printf("\nContinue delet a student?(y/n) ");fflush(stdin);c=getchar();}while(c=='y');}void charu(){shuru();paixu();}void main(){int change;do{system("cls");printf("*****************XUESHENG XINXI GUANLIXITONG *****************\n"); printf(" 1: shuru xuesheng xingxi\n");printf(" 2: xianshi xuesheng xinxi\n");printf(" 3: chazhao xuesheng xinxi\n");printf(" 4: shanchu xuesheng xinxi\n");printf(" 5: charu xuesheng xinxi\n");printf(" 6: paixu xuesheng xinxi\n");printf(" 7: tuichu chengxu\n");printf("***************************************************************\n"); fflush(stdin);printf("shuru gongneng xuanxiang:");scanf("%d",&change);switch(change){case 1:shuru(); break;case 2:xianshi(); break;case 3:chazhao(); break;case 4:shanchu(); break; case 5:charu(); break; case 6:paixu();break; case 7:break;}getch();}while(change!=7); }。

c语言学生成绩信息管理系统源代码

c语言学生成绩信息管理系统源代码

C语言学生成绩信息管理系统源代码一、概述在学校教学管理工作中,学生成绩信息管理是一个至关重要的环节。

为了方便高效地进行学生成绩信息的录入、查询和管理,我们可以利用C语言编写一个学生成绩信息管理系统。

本文将介绍该系统的源代码,并对其进行详细的解释和讲解。

二、系统功能需求1. 录入学生成绩信息2. 查询学生成绩信息3. 修改学生成绩信息4. 删除学生成绩信息5. 显示所有学生成绩信息三、系统源代码实现```c#include <stdio.h>#include <stdlib.h>#include <string.h>// 定义学生结构体typedef struct student {int id; // 学号char name[20]; // 尊称float score; // 成绩} Student;// 全局变量int count = 0; // 记录学生数量Student students[100]; // 学生数组// 录入学生成绩信息void inputStudentInfo() {printf("请输入学生学号:");scanf("d", students[count].id);printf("请输入学生尊称:");scanf("s", students[count].name); printf("请输入学生成绩:");scanf("f", students[count].score); count++;}// 查询学生成绩信息void queryStudentInfo(int id) {for (int i = 0; i < count; i++) {if (students[i].id == id) {printf("学生信息如下:\n");printf("学号:d\n", students[i].id);printf("尊称:s\n", students[i].name);printf("成绩:.2f\n", students[i].score);return;}}printf("未找到该学生信息!\n");}// 修改学生成绩信息void modifyStudentInfo(int id, char *name, float score) { for (int i = 0; i < count; i++) {if (students[i].id == id) {strcpy(students[i].name, name);students[i].score = score;printf("修改成功!\n");return;}}printf("未找到该学生信息!\n");}// 删除学生成绩信息void deleteStudentInfo(int id) {for (int i = 0; i < count; i++) {if (students[i].id == id) {for (int j = i; j < count - 1; j++) { students[j] = students[j + 1]; }count--;printf("删除成功!\n");return;}}printf("未找到该学生信息!\n");}// 显示所有学生成绩信息void displayAllStudentInfo() {if (count == 0) {printf("暂无学生信息!\n");return;}printf("学生成绩信息如下:\n");for (int i = 0; i < count; i++) {printf("学号:d,尊称:s,成绩:.2f\n", students[i].id, students[i].name, students[i].score);}}int m本人n() {int choice, id;char name[20];float score;while (1) {printf("欢迎使用学生成绩信息管理系统!\n");printf("1. 录入学生成绩信息\n");printf("2. 查询学生成绩信息\n");printf("3. 修改学生成绩信息\n");printf("4. 删除学生成绩信息\n");printf("5. 显示所有学生成绩信息\n");printf("6. 退出系统\n");printf("请选择操作:");scanf("d", choice);switch (choice) {case 1: // 录入学生成绩信息inputStudentInfo();break;case 2: // 查询学生成绩信息printf("请输入要查询的学生学号:"); scanf("d", id);queryStudentInfo(id);break;case 3: // 修改学生成绩信息printf("请输入要修改的学生学号:"); scanf("d", id);printf("请输入修改后的尊称:");scanf("s", name);printf("请输入修改后的成绩:");scanf("f", score);modifyStudentInfo(id, name, score); break;case 4: // 删除学生成绩信息printf("请输入要删除的学生学号:"); scanf("d", id);deleteStudentInfo(id);break;case 5: // 显示所有学生成绩信息displayAllStudentInfo();break;case 6: // 退出系统printf("感谢使用学生成绩信息管理系统!\n");exit(0);default:printf("请输入正确的操作!\n");}}return 0;}```四、系统运行效果1. 运行系统后,会出现一个菜单,根据需求选择相应的操作。

用c语言编写学生成绩管理系统

用c语言编写学生成绩管理系统

#include<conio.h> //定义通过控制台进行数据输入以及输出#define N 2000 //最多的人数人#define M 3 //统计定义{ 保存保存保存保存所有课程成绩float aver; //保存每个人的平均成绩float total; //总计成绩}STU;STU stu[N];int n;void inputscore(void); //学生成绩新建学生学生学生学生学生void searchscore(void); //学生成绩查询void statistic(void); //学生成绩统计void add(void); //学生成绩添加void modify(void); //学生成绩修改void delscore(void); //学生学生{{ case '1' : inputscore();break; //在菜单界面输入1,调用i函数nputscore()实现输入学生成绩信息功能case '2' : lookscore();break; //在菜单界面输入2,调用函数lookscore()实现学生成绩按平均分高低排序输出,同时lookscore()函数调用avregescore()函数实现各个学生的平均分计算case '3' : searchscore();break; //在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能case '4' : statistic();break; //在菜单界面输入4,调用statistic()函数输出每一门课程的最高分,平均分以及不及格人员case '5' : modify();break; //在菜单界面输入5,调用modify()add()函调用调用}printf("按任意键继续\n");getch(); //按任意键继续,起到暂停的作用,函数头文件conio.h已经定义过menu(); // 菜单}while (flag==1);}void menu(void){菜单成绩排序---------------------------2\n");printf(" ☆查询学生成绩---------------------------------3\n");printf(" ☆成绩统计-------------------------------------4\n");printf(" ☆修改成绩-------------------------------------5\n");printf(" ☆添加成绩-------------------------------------6\n");printf(" ☆删除成绩成绩系统}void inputscore(void) //输入成绩{ int i,j;system("cls"); //清屏专用,以下出现位置作用相同printf(" 已经转到输入成绩菜单\n");printf("请输入学生总数:\n");scanf("%d",&n); printf("提示:输入学号时请输入9位学生编号:图书借阅证上的学号\n");//因二维表上下需对正故有此要求printf("请输入学生成绩:\n");printf("高数分\t英语分\tC语言分\n");for(j=0;j<M;j++)scanf("%f",&stu[i].score[j]); //输入高数、英语、C语言的成绩}printf(" 成功输入(按任意键继续后请输入8进行保存)\n");}{stu[i].total+=stu[i].score[j];}}}/*****************计算各个同学的平均分*****************************/void avergescore(void){ int i,j; //定义变量i,j;i用来表示学生个数,j则用来表示学生每门课的分数for(i=0;i<n;i++)}/************查看学生成绩及根据平均分对学生进行排序*********************/void lookscore(void){ int i,j,k; // i,j,k都表示学生成绩比较用来调换顺序STU t;total(); // 此处用来对调用函数的声明avergescore();system("cls"); // 清屏专用printf(" 已经转到查看成绩及成绩排序菜单\n");}printf("名次\t学号\t\t姓名\t性别\t高数分\t英语分\tC语言分\t总分\t平均分\n");for(i=0;i<n;i++){ printf("%d\t%s\t%s\t%s\t",i+1,stu[i].number,stu[i].name,stu[i].sex);for(j=0;j<M;j++)printf("%4.2f\t",stu[i].score[j]);printf("%4.2f\t",stu[i].total);}{printf(" 已经转到查询学生成绩菜单\n");printf("请输入需查询的学生学号\n");scanf("%s",a);for(i=0;i<n;i++){ if(strcmp(a,stu[i].number)==0) //如果输入的学号为真则输出相关信息{ printf("名次\t学号\t\t姓名\t性别\t高数分\t英语分\tC语言分\t总分\t 平均分\n");printf("%d\t%s\t%s\t%s\t",i+1,stu[i].number,stu[i].name,stu[i].sex);循环printf("未找到该学生信息\n");}}/*******统计学生成绩信息,计算出每一门课的最高分****************/void statistic(){int i,j=0,k=0,c1;char str[2];{printf("请选择你要统计哪科的成绩 1.高数\t2.英语\t3.C语言\n"); scanf("%d",&c1);printf("\t一共有%d个记录\n",M); /*总共记录数*/switch(c1){case 1: //用来判断高数的最高分,平均分,输出不及格人员名单for(i=0;i<M;i++){分数printf("\t高数的最低分是:\n");printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stu[k].number,stu[k].name,stu[k].score[0]);printf("\t高数的平均分是 %5.2f\n",average[0]);printf("平均分低于60分的学生成员名单\n");for(i=0;i<M;i++){if(stu[i].score[0]<60)printf("%s\n",stu[i].name);average[1]=sum/M;printf("\t英语的最高分:\n");printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stu[j].number,stu[j].name,stu[j].score[1]);printf("\t英语的最低分是:\n");printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stu[k].number,stu[k].name,stu[k].score[1]);printf("\t英语的平均分是 %5.2f\n",average[1]);printf("平均分低于60分的学生成员名单\n");{sum+=stu[i].score[2];if(stu[k].score[2]>stu[i].score[2]) k=i;if(stu[j].score[2]<stu[i].score[2]) j=i;}average[2]=sum/M;printf("\tC语言的最高分:\n"); /*最高分*/printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stu[j].number,stu[j].name,stu[j].score[2]);分数printf("%s\n",stu[i].name);}break;default: //如果输入的数字不符合要求则显示错误信息printf("输入错误!请输入1~3之间的数\n"); }sum=0;getchar();}}{char a[10];int i,j;system("cls");printf(" 已经转到修改成绩菜单\n");printf("请输入需要修改成绩的学生学号\n");scanf("%s",a);for(i=0;i<n;i++)总分\tprintf("\n");printf("请重新输入该学生的姓名:\n");scanf("%%s",stu[i].number);printf("\n");scanf("%s",stu[i].name);printf("请输入该学生性别\n");scanf("%s",stu[i].sex);printf("请重新输入该学生成绩:\n");出}}/*****************添加学生成绩********************/ void add(void){int a,i,j; //i定义为学生,j为学生分数,a代表加入学生的数量system("cls");printf(" 已经转到添加成绩菜单\n");printf("输入该学生性别\n");scanf("%s",stu[i].sex);printf("请输入学生成绩:\n");printf("高数分\t英语分\tC语言分\n");for(j=0;j<M;j++)scanf("%f",&stu[i].score[j]);printf("添加成功\n");}}{scanf("%s",a);for(i=0;i<n;i++){ if(strcmp(a,stu[i].number)==0){ printf("名次\t学号\t\t姓名\t性别\t高数分\t英语分\tC语言分\t总分\t 平均分\n");printf("%d\t%s\t%s\t%s\t",i+1,stu[i].number,stu[i].name,stu[i].sex);for(j=0;j<M;j++)printf("未找到该学生信息\n");}printf("是否删除该学生成绩(y/n)\n");scanf("%s",&m);if(m=='y'){for(i=c;i<n-1;i++)stu[i]=stu[i+1]; //结构体整体赋值将后一位学生成绩信息拷贝进入前一位学生信息的存储位置}{FILE *fp; //定义指针int i,flag=1;char m;system("cls");printf(" 已经转到保存成绩菜单\n");puts("是否保存学生成绩(y/n)");scanf("%s",&m);从文件{ printf("保存失败\n");flag=0;}if(flag==1)printf("保存成功!\n");fclose(fp); //界面关闭}else}。

学生成绩管理系统C语言版

学生成绩管理系统C语言版

1、2、编一程序,能计算每个学生的总分和平均分。

3、编一程序,能按输入要求打印各门课程的最高分和最低分的同学。

4、编一程序,能将五个学生的成绩按总分进行降序排序。

5、编一程序,能删除一个学生的记录;6、编一程序,能增加一个学生的记录;建立一个菜单模式的学生信息管理系统,完成功能如下:一、建立主菜单*****学生信息管理系统*****1、输入学生信息2、输出学生信息3、计算每个同学成绩的总分与平均分4、对学生成绩进行排序5、输出每门功课最高分的同学信息6、输出每门功课最低分的同学信息7、退出系统主菜单界面:二、将综合练习一中的程序改写为子程序并能通过主菜单进行调用。

先上图开发环境windows 7,vc 6.0 开始贴代码:/*************** 张海山* 10软件2班* 安庆职业技术学院* QQ:136533295******************/#include"stdio.h"#include"stdlib.h"#include"malloc.h"#include"string.h"typedef struct lode{int id;char name[20];char sex[10];int score[4];struct lode *next;}lode,*linklist;linklist input(linklist head)//输入学生信息{char cmd='y';int t,i,l;char name[10];char sex[2];int score[3]={0};//int sum;linklist p;while(cmd=='y'||cmd=='Y'){p=(linklist)malloc(sizeof(lode));printf("请输入学生的编号\n");fflush(stdin);scanf("%d",&t);p->id=t;printf("请输入学生的姓名:\n");fflush(stdin);scanf("%s",p->name);/* l=strlen(p->name);p->sex[l]='\0';/* for(i=0;i<l;i++){p->name[i]=name[i];}*/printf("请输入学生的性别:\n");fflush(stdin);scanf("%s",p->sex);/* l=strlen(p->sex);p->sex[l]='\0';/* for(i=0;i<l;i++){p->sex[i]=sex[i];}*/fflush(stdin);printf("请依次输入学生的三门课成绩:\n");scanf("%d",&score[0]);p->score[0]=score[0];fflush(stdin);scanf("%d",&score[1]);p->score[1]=score[1];fflush(stdin);scanf("%d",&score[2]);p->score[2]=score[2];fflush(stdin);p->next=head->next;head->next=p;printf("是否继续(y)&返回主菜单(n) y&n\n");fflush(stdin);scanf("%c",&cmd);}return head;}linklist print(linklist head){linklist p;int i=1;p=head->next;printf("\t序号\t姓名\t性别\t英语\t数学\t语文\n");while(p!=NULL){printf("\t%d\t%s\t%s\t%d\t%d\t%d\n",p->id,p->name,p->sex,p->score[0],p->score[1],p->sco re[2]);p=p->next;/*if(p==NULL)break;printf("%d\n",i);*/}//printf("%d\n",i);//printf("i=%d\n",i);return 0;}void avg(linklist head){int sum=0;double avg=0;linklist p;p=head->next;while(p!=NULL){sum=0;sum=p->score[1]+p->score[2]+p->score[0];avg=sum/3;printf("%s的总分为:%d\t平均分为:%.2lf\n",p->name,sum,avg);p=p->next;}}void maxmin(linklist head){linklist p;intmax1=0,max1index,min1=head->next->score[0],min1index,max2=0,max2index,min2=head->nex t->score[1],min2index,max3=0,max3index,min3=head->next->score[2],min3index;p=head->next;while(p!=NULL){if(max1<(p->score[0])){max1=p->score[0];max1index=p->id;}if(min1>=(p->score[0])){min1=p->score[0];min1index=p->id;}if(max2<(p->score[1])){max2=p->score[1];max2index=p->id;}if(min2>=(p->score[1])){min2=p->score[1];min2index=p->id;}if(max3<(p->score[2])){max3=p->score[2];max3index=p->id;}if(min3>=(p->score[2])){min3=p->score[2];min3index=p->id;}p=p->next;}printf("英语:\n");p=head->next;while(p!=NULL){if((p->id)==max1index)printf("英语最高分为:%d\t姓名为:%s\n",p->score[0],p->name);if((p->id)==min1index)printf("英语最低分为:%d\t姓名为:%s\n",p->score[0],p->name);p=p->next;}printf("数学:\n");p=head->next;while(p!=NULL){if((p->id)==max2index)printf("数学最高分为:%d\t姓名为:%s\n",p->score[1],p->name);if((p->id)==min2index)printf("数学最低分为:%d\t姓名为:%s\n",p->score[1],p->name);p=p->next;}printf("语文:\n");p=head->next;while(p!=NULL){if((p->id)==max3index)printf("语文最高分为:%d\t姓名为:%s\n",p->score[2],p->name);if((p->id)==min3index)printf("语文最低分为:%d\t姓名为:%s\n",p->score[2],p->name);p=p->next;}}void rank(linklist head){linklist p;int i=0,j,k,n=0;int sum[100];p=head->next;while(p!=NULL){n++;sum[i]=p->score[1]+p->score[2]+p->score[0];i++;p=p->next;}printf("n=%d\n",n);for(i=1;i<6;i++){for(j=0;j<6-i;j++)if(sum[j]<sum[j+1]){k=sum[j];sum[j]=sum[j+1];sum[j+1]=k;}}printf("\t序号\t姓名\t性别\t英语\t数学\t语文\n");for(i=0;i<n;i++){p=head->next;while(p!=NULL){if(sum[i]==(p->score[1]+p->score[2]+p->score[0])){printf("\t%d\t%s\t%s\t%d\t%d\t%d\n",p->id,p->name,p->sex,p->score[0],p->score[1],p->sco re[2]);break;}p=p->next;}}}void add(linklist head){linklist p,q;p=head;q=(linklist)malloc(sizeof(lode));printf("请输入要插入学生的序号:\n");fflush(stdin);scanf("%d",&q->id);fflush(stdin);printf("请输入学生的姓名:\n");scanf("%s",q->name);fflush(stdin);printf("请输入学生性别:\n");scanf("%s",q->sex);fflush(stdin);printf("请依次输入学生的三门课成绩:\n");scanf("%d",&q->score[0]);fflush(stdin);scanf("%d",&q->score[1]);fflush(stdin);scanf("%d",&q->score[2]);fflush(stdin);q->next=NULL;while(p->next!=NULL){p=p->next;}p->next=q;//p->next=NULL;}void del(linklist head){linklist p,temp;int j;p=head->next;temp=head;printf("请输入要删除学生记录的序号:\n");scanf("%d",&j);while(p!=NULL){if(p->id!=j){p=p->next;temp=temp->next;}else{temp->next=p->next;free(p);break;}}}void main(){int cmd;linklist head;head=(linklist)malloc(sizeof(lode));head->next=NULL;do{printf("\n\n |***************学生成绩管理程序***************|\n");printf(" |----------------------------------------------|\n");printf(" | |\n");printf(" | 主菜单|\n");printf(" | |\n");printf(" |----------------------------------------------|\n");printf(" | |\n");printf(" | 请输入选择项目:|\n");printf(" | |\n");printf(" | 1、输入学生成绩|\n");printf(" | |\n");printf(" | 2、输出学生成绩|\n");printf(" | |\n");printf(" | 3、计算总成绩、平均成绩|\n");printf(" | |\n");printf(" | 4、求最高分、最低分|\n");printf(" | |\n");printf(" | 5、排序|\n");printf(" | |\n");printf(" | 6、增加记录|\n");printf(" | |\n");printf(" | 7、删除记录|\n");printf(" | |\n");printf(" | 0、退出系统|\n");printf(" | |\n");printf(" |----------------------------------------------|\n");scanf("%d",&cmd);switch(cmd){case 0:break; //退出系统case 1: input(head);break; //输入学生信息case 2: print(head);break; //输出学生信息case 3: avg(head);break; //求总成绩、平均数case 4: maxmin(head);break; //最高分case 5: rank(head);break; //排序case 6: add(head);break; //增加记录case 7: del(head);break; //删除记录default :printf("您输入错误!\n");}}while(cmd!=0);}因为是C语言版的要严格按照样子输入哦要不然就会出现不可预料的结果。

C语言版简单的成绩管理系统

C语言版简单的成绩管理系统

自己编写的一个简单版的 C语言版的成绩管理系统(附代码):可能有些细节问题没处理好,勿怪,有不懂的可以问!1.主菜单:2.排序浏览3.添加:4.删除5.查询代码如下:// fan1.cpp : Defines the entry point for the console application. //#include "stdafx.h"#include <stdio.h>#include <malloc.h>#include<windows.h>#include<process.h>#include<string.h>int cls(){system("cls");return 0;}struct SStud{int numb;char name[20];float English;float Math;};typedef SStud DATA;struct SNode{DATA data;SNode* next;}*head=NULL;SNode* GetTailPosition() ;int Add() ; // 函void AddTail( DATA data ) ;void RemoveAt(int nNum);int Menu(); // 数void RemoveAll();int Search();int Search_Numb( int nNum ); // 声int Search_Name( char str[20]);void Browse() ;void List_Select();void List_English(); // 明void List_Numb();void Load();void Save();void AddHead( DATA data ) // ---------向头部添加节点{SNode *p =(SNode *) malloc (sizeof(SNode));p ->data = data;p ->next = head;head = p;}SNode* GetTailPosition() // 获取尾部节点位置{SNode *p = head;if(!p)return NULL;while(p->next){p = p->next;}return p ;}void AddTail( DATA data ) // 向尾部添加节点{SNode *p = GetTailPosition();if(!p)return;p->next=(SNode*)malloc(sizeof(SNode));p = p->next;p->data =data;p->next=NULL;}int Search( ){printf("学生成绩查询:\n\n");printf(" \t\t********************************\n");printf(" \t\t*\t 1.按学号查询: *\n");printf(" \t\t*\t 2.按姓名查询: *\n");printf(" \t\t*\t 0.返回主菜单: *\n");printf(" \t\t********************************\n");printf(" \t\t请选择:");int i;scanf("%d",&i);cls();switch( i ){case 1:printf("请输入要查询的学号:");int n;scanf("%d",&n);Search_Numb(n);break;case 2:printf("请输入要查询的姓名:");char strname[20];scanf("%s",strname);Search_Name(strname);break;case 0:Menu();break;}return 0;}int Search_Numb( int nNum ) // 按学号查询{SNode *p=head;if(!p){printf("查询失败,这是一个空链表!\n");system("pause");return 0;}while(p){if(p->data.numb==nNum){printf("学号\t\t姓名\t\t英语\t\t数学\n");printf("%-3d%17s%16.1f%16.1f\n",p->data.numb,p->,p->data.English, p->data.Math);system("pause");return 0;}elsep = p->next;}printf("输入的学号不存在!\n");system("pause");return 0;}int Search_Name( char str[20] ) // 按姓名查询{SNode *p=head;if(!p){printf("查询失败,这是一个空链表!\n");system("pause");return 0;}while(p){if(!strcmp(p->,str)){printf("学号\t\t姓名\t\t英语\t\t数学\n");printf("%-3d%17s%16.1f%16.1f\n",p->data.numb,p->,p->data.English,p-> data.Math);system("pause");return 0;}elsep = p->next;}printf("输入的学号不存在!\n");system("pause");return 0;}void List_Select() // 排序.....{printf("学生成绩浏览\n\n");printf(" \t\t********************************\n");printf(" \t\t*\t 1.按学号排序: *\n");printf(" \t\t*\t 2.按英语排序: *\n");printf(" \t\t*\t 0.返回主菜单: *\n");printf(" \t\t********************************\n");printf(" \t\t请选择:");int i;scanf("%d",&i);switch (i){case 1: List_Numb();break;case 2: List_English();break;case 0: Menu();break;}}void List_Numb() // 按学号排序{SNode * p,*q,*min; // .......不可以用small ?p = head;if(!p)return ;while(p){min = p;q = p ->next;while(q){if(q->data.numb<min->data.numb)min = q;q = q->next;}if(min!=p){int temp = p->data.numb;p->data.numb = min->data.numb;min->data.numb = temp;}p = p ->next;}Browse();system("pause");}void List_English() // 按英语成绩排序{SNode * p,*q,*min;p = head;if(!p)return ;while(p){min = p;q = p ->next;while(q){if(q->data.English>min->data.English)min = q;q = q->next;}if(min!=p){float temp = p->data.English;p->data.English = min->data.English;min->data.English = temp;}p = p ->next;}Browse();system("pause");}void Browse() // 遍历...输出{// int data;// SStud stud;SNode* p = head ;printf("学号\t\t姓名\t\t英语\t\t数学\n");if(!p){printf("这是一个空链表!\n");}while (p){printf("%-3d%17s%16.1f%16.1f\n",p->data.numb,p->,p->data.English, p->data.Math);//scanf("%d %s %f %f",&stud.numb,&,&stud.English,&stud.Math);p = p->next; // 增量}// system("pause");}void RemoveAt(int nNum) // 删除指定节点{SNode* p = head ,*q=p;if(!p){printf("删除错误,这是空链表!\n");system("pause");return;}while(p){if(p->data.numb==nNum){//printf("%-3d%17s%16.1f%16.1f\n",p->data.numb,p->,p->data.English,p-> data.Math);// printf("是否真的删除该学生信息(Y/N)?按N返回主菜单: ");// system("pause");// char ch;// scanf("%c",&ch);// if(ch == 'Y')// {q->next = p->next ;free(p);printf("删除成功!");system("pause");return;// return ;// }// else// Menu();}q = p ;p = p->next;}}void RemoveAll() // 删除所有链表{SNode *p=head, *q = p ;while (p){q = p;p ->next =NULL;free(q);}head = NULL;}int Add() //添加节点---调用{SStud stud;stud.English=0.0f;stud.Math=0.0f;cls();// printf("请输入学号,姓名,英语,数学成绩:\n");//scanf("%d %s %f %f",&stud.numb,&,&stud.English,&stud.Math);printf("请选择添加方式: \n\n");printf(" \t\t********************************\n");printf(" \t\t*\t 1.从头部添加: *\n");printf(" \t\t*\t 2.从尾部添加: *\n");printf(" \t\t*\t 0.返回主菜单: *\n");printf(" \t\t********************************\n");printf(" \t\t请选择:");int i=0;scanf("%d",&i);cls();switch(i){case 1:printf("请输入学号,姓名,英语,数学成绩:\n");scanf("%d %s %f %f",&stud.numb,&,&stud.English,&stud.Math);AddHead(stud);break;case 2:printf("请输入学号,姓名,英语,数学成绩:\n");scanf("%d %s %f %f",&stud.numb,&,&stud.English,&stud.Math);AddTail(stud);break;case 0: Menu();break;}printf("继续添加请按1,返回主菜单请按0:");int a=0;scanf("%d",&a);// switch(a)// {// case 1:// case 0:// break;// default :// break;// }if (a==1)return a;elsereturn 0;}void Save(){FILE *fp=fopen("./fjj.txt","wb");if(!fp){printf("保存文件错误!\n");return ;}SNode * p ;p = head; //空链表特征是head是0while(p){//fwrite(&p ->data,1,sizeof(p->data),fp);fwrite(p,1,sizeof(p->data),fp);p=p ->next;}fclose(fp);}void Load() //注意加载过程的循环条件是什么{FILE* fp = fopen("./fjj.txt","rb");if(!fp)return;SStud stud;while(fread(&stud,1,sizeof(stud),fp) > 0){AddHead(stud);}}int Menu() // 主菜单{cls();printf("\n\n");printf("\t\t 学生成绩管理系统主菜单\n\n\n");printf(" \t\t********************************\n");printf(" \t\t*\t 1.浏览: *\n");printf(" \t\t*\t 2.查询: *\n");printf(" \t\t*\t 3.删除: *\n");printf(" \t\t*\t 4.添加: *\n");printf(" \t\t*\t 0.退出: *\n");printf(" \t\t********************************\n");printf(" \t\t请选择:");int n=0;scanf("%d",&n);while( n<0 || n >4 ){printf("错误,请重新输入!");printf("请选择:");scanf("%d",&n);}switch(n ){case 1: cls();List_Select();break;case 2: cls();Search();break;case 3:cls();Browse();printf("请输入要删除的学号:");int i;scanf("%d",&i);RemoveAt(i);break;case 4: while(Add());break;case 0: printf("\t\t谢谢使用!\n");break;}return n;}int main(int argc, char* argv[]) // 主函数{Load();while(Menu());Save();return 0;}。

c语言课程设计学生成绩管理系统

c语言课程设计学生成绩管理系统

C语言课程设计:学生成绩管理系统简介学生成绩是学校管理中至关重要的一项工作。

为了更好地管理学生成绩,提高教学质量,我们设计了一个基于C语言的学生成绩管理系统。

该系统可以帮助教师轻松地录入、查询和统计学生成绩,提供全面的学生成绩管理功能。

功能概述学生成绩管理系统主要包括以下功能:1.学生信息管理:可以添加、查询、修改、删除学生信息。

每个学生包括学号、姓名、性别、年龄等基本信息。

2.课程信息管理:可以添加、查询、修改、删除课程信息。

每门课程包括课程编号、课程名称、学分等基本信息。

3.成绩录入:可以根据学号和课程编号录入学生的课程成绩。

成绩包括平时成绩、期中成绩、期末成绩等。

4.成绩查询:可以根据学号或姓名查询学生的成绩,包括总成绩和各项成绩。

5.成绩统计:可以统计每门课程的平均成绩、最高成绩、最低成绩等统计数据。

6.成绩排序:可以按照总成绩对学生进行排序,以便了解学生的学习情况。

7.成绩报表:可以生成学生的成绩报表,以便于打印或导出。

系统设计学生成绩管理系统主要由以下几个模块组成:1.学生信息管理模块:通过该模块可以实现学生信息的添加、查询、修改和删除操作。

学生信息可以存储在文件中,使用文件读写函数实现对学生信息的操作。

2.课程信息管理模块:通过该模块可以实现课程信息的添加、查询、修改和删除操作。

课程信息可以存储在文件中,使用文件读写函数实现对课程信息的操作。

3.成绩录入模块:通过该模块可以根据学号和课程编号录入学生的课程成绩。

成绩信息可以存储在文件中,使用文件读写函数实现对成绩信息的操作。

4.成绩查询模块:通过该模块可以根据学号或姓名查询学生的成绩。

查询结果可以显示在屏幕上。

5.成绩统计模块:通过该模块可以统计每门课程的平均成绩、最高成绩、最低成绩等统计数据。

统计结果可以显示在屏幕上。

6.成绩排序模块:通过该模块可以按照总成绩对学生进行排序。

排序结果可以显示在屏幕上。

7.成绩报表模块:通过该模块可以生成学生的成绩报表,以便于打印或导出。

C语言编写的简单的学生成绩管理系统收藏

C语言编写的简单的学生成绩管理系统收藏

#include<stdio.h>#include<string.h>struct student{int num;char name[20];int score;}stu[6];int i;void main(){void in();void xianshi();void paixu();void charu();void shanchu();void chaxian();void g(); int n;while(n!=8){printf("\n\t\t\t学生管理系统");printf("\n\t\t1:输入一个班的学生信息\n");printf("\t\t2:显示所有学生的信息\n");printf("\t\t3:按学号对所有学生排序\n");printf("\t\t4:插入一条学生信息按学号排好\n");printf("\t\t5:按姓名查找,并删除一条信息\n");printf("\t\t6:查找并显示一条信息\n");printf("\t\t7:求出全班平均成绩,显示最高分最低分\n");printf("\t\t8:退出系统\n");printf("输入选项代码:");scanf("%d",&n);switch(n){case 1:in();break;case 2:xianshi();break;case 3:paixu();break;case 4:charu();break;case 5:shanchu();break;case 6:chaxian();break;case 7:g();break;case 8:printf("谢谢使用!\n");break;break;}}getchar();}void in() /* 输入一个班的学生信息*/{for(i=0;i<5;i++){ printf("请输入学号姓名成绩:\n");scanf("%d%s%d",&stu[i].num,stu[i].name,&stu[i].score);}}void xianshi(){ int i;printf("学号姓名成绩\n");for(i=0;i<5;i++)printf("%d%10.2s%10d\n",stu[i].num,stu[i].name,stu[i].score);}void paixu()/* 按学号对所有信息排序*/{ int a[5]={0,1,2,3,4};int i,j,temp;for(i=0;i<4-j;i++)if(stu[a[i]].num>stu[a[i+1]].num){ temp=a[i];a[i]=a[i+1];a[i+1]=temp;}printf("顺序为:\n");printf("学号姓名成绩\n");for(i=0;i<5;i++)printf("%d%10.2s%10d\n",stu[a[i]].num,stu[a[i]].name,stu[a[i]].score); printf("\n");}void charu()/*插入一条学生信息按学号排列*/{int i;printf("请输入要插入学生的学号姓名成绩:");scanf("%d%s%d",&stu[5].num,stu[5].name,&stu[5].score);for(i=0;i<5;i++)printf("%d%s%d\n",stu[i].num,stu[i].name,stu[i].score);{int a[6]={0,1,2,3,4,5};int i,j,temp;for(j=0;j<5;j++){ for(i=0;i<5-j;i++)if(stu[a[i]].num>stu[a[i+1]].num){ temp=a[i];a[i]=a[i+1]; a[i+1]=temp; }}printf("顺序为:\n");printf("学号姓名成绩\n");for(i=0;i<6;i++)printf("%d%10.2s%10d\n",stu[a[i]].num,stu[a[i]].name,stu[a[i]].score); printf("\n");}}void shanchu() /*按姓名查找,并删除一条信息*/{ int j=0,i=0,flag=0;char a[20];printf("请输入要删除学生的姓名:");scanf("%s",&a);for(i=0;i<5;i++){ if(strcmp((stu[i].name),a)==0){ flag=i; break;;}}for(j=flag;j<5;j++){ stu[j].num=stu[j+1].num; strcpy(stu[j].name,stu[j+1].name); stu[j].score=stu[j+1].score;}printf("学号姓名成绩\n");for(i=0;i<5;i++)printf("%d%10.2s%10d\n",stu[i].num,stu[i].name,stu[i].score); }void chaxian()/* 查找并显示一条信息*/{int j=0,i=0,flag=0;char a[20];printf("请输入要查找学生的姓名:");scanf("%s",&a);for(i=0;i<5;i++){if(strcmp((stu[i].name),a)==0){ flag=i; break; }}printf("您要查找的学生信息为:\n");printf("学号姓名成绩\n");printf("%d%11.2s%11d\n",stu[i].num,stu[i].name,stu[i].score);}void g()/* 求出全班平均成绩,显示最高分最低分信息*/{ int a[5]={0,1,2,3,4};int i,j,temp;float total=0;double ave;for(i=0;i<5;i++){total=total+stu[i].score;}ave=total/5.0;printf("ave=%f\n",ave);for(j=0;j<4;j++){ for(i=0;i<4-j;i++)if(stu[a[i]].num>stu[a[i+1]].num){ temp=a[i];a[i]=a[i+1]; a[i+1]=temp; } }printf("最高成绩为:\n");printf("学号姓名成绩\n");printf("%d%11.2s%11d\n",stu[a[4]].num,stu[a[4]].name,stu[a[4]].score); printf("最低成绩为:\n");printf("学号姓名成绩\n");printf("%d%11.2s%11d\n",stu[a[0]].num,stu[a[0]].name,stu[a[0]].score); }。

C语言写的简易成绩管理系统

C语言写的简易成绩管理系统
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Data //数据结构
{
int number;
char name[16];
float kemu1;
float kemu2;
float kemu3;
data[i].number,data[i].name,data[i].kemu1,data[i].kemu2,data[i].kemu3,data[i].kemu4,data[i].kemu5,data[i].zongfen);
}
}
void output4()//输出各科补考学生的学号和成绩
{
case 1:input();
break;
case 2:output1();
break;
case 3:output2();
return choise;
}
void input()
{
while(1)
{
if(id < 10)
{
printf("输入学号:");
scanf("%d",&data[id].number);
printf("输入名字:");
scanf("%s",data[id].name);
printf("输入科目1成绩:");
scanf("%f", &data[id].kemu1 );
printf("输入科目2成绩:");

c语言学生成绩管理系统使用说明书

c语言学生成绩管理系统使用说明书

c语言学生成绩管理系统使用说明书
学生成绩管理系统是一个常见的程序,它用于管理学生的成绩。

下面是一个简单的C语言学生成绩管理系统使用说明书:
1. 打开程序:打开学生成绩管理系统程序,您将看到一个主菜单,显示所有可用的选项。

2. 添加学生:使用“添加学生”选项,您可以输入学生的姓名、学号和成绩。

程序将把这些信息存储在一个结构体数组中。

3. 显示所有学生:使用“显示所有学生”选项,程序将打印出所有学生的姓名、学号和成绩。

4. 查找学生:使用“查找学生”选项,您可以输入学生的姓名或学号,程序将查找并打印出该学生的信息。

5. 修改学生成绩:使用“修改学生成绩”选项,您可以输入学生的姓名或学号,然后输入新的成绩。

程序将更新该学生的成绩。

6. 删除学生:使用“删除学生”选项,您可以输入学生的姓名或学号,程序将删除该学生的信息。

7. 保存数据:使用“保存数据”选项,程序将把结构体数组中的数据保存到一个文件中。

8. 退出程序:使用“退出程序”选项,您可以结束程序并退出。

注意事项:
1. 请确保在输入学生信息时输入正确的数据类型。

2. 在修改或删除学生信息之前,请确保您已经备份了原始数据。

3. 在使用“查找学生”选项时,请确保您输入的姓名或学号是正确的。

4. 在使用“保存数据”选项时,请确保您已经关闭了所有其他文件。

5. 如果您想再次使用程序,请确保您已经重新打开数据文件。

用c语言编写学生成绩管理系统

用c语言编写学生成绩管理系统

#include<stdio.h>#include<string.h>#include<process.h> #include<conio.h>#define N 30#define M 3 typedef struct student {char number[10];char name[20];float score[M];float aver;float total;}STU;STU stu[N];int n;void inputscore(void); void savescore(void); void avergescore(void); void total(void);void modifyscore(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);void main(){short int flag=0;menu();do{flag=1;switch(getch()){case'1' : inputscore();break; /*输入成绩*/ case'2' : lookscore();break; /*查看成绩*/case'3' : searchscore();break; /*查找成绩*/case'4' : statistic();break; /*成绩统计*/case'5' : modify();break; /*修改成绩*/case'6' : add();break; /*添加成绩*/case'7' : delscore();break; /*删除成绩*/case'8' : savescore();break; /*保存成绩*/case'9' :exit(0); break; /*退出程序*/default : printf("输入有误\n");}printf("按任意键继续\n");getch();menu();}while (flag==1);}void menu(void){system("cls"); //清屏printf("\n");printf(" *********欢迎进入学生会成绩管理系统**************\n");printf(" 菜单\n");printf(" 输入成绩-------------------------------------1\n");printf(" 查看成绩及成绩排序---------------------------2\n");printf(" 查询学生成绩---------------------------------3\n");printf(" 成绩统计-------------------------------------4\n");printf(" 修改成绩-------------------------------------5\n");printf(" 添加成绩-------------------------------------6\n");printf(" 删除成绩-------------------------------------7\n");printf(" 保存成绩-------------------------------------8\n");printf(" 退出系统-------------------------------------9\n");printf(" ***********************************************\n");printf(" 请输入您的选择(1~9)\n");}/***************输入各个同学的学生信息******************************/void inputscore(void){int i,j;system("cls");printf(" 已经转到输入成绩菜单\n");printf("请输入学生总数:\n");scanf("%d",&n);printf("提示:输入学号时请输入由1位大写字母和8位数字组成的学号,如P0*******\n"); /*因二维表上下需对正故有此要求*/for(i=0;i<n;i++){printf("\n");printf("请输入第%d位学生的学号:\n",i+1);scanf("%s",stu[i].number);printf("姓名:\n");scanf("%s",stu[i].name);printf("请输入学生成绩:\n");printf("出勤分\t值班分\t贡献分\n");for(j=0;j<M;j++)scanf("%f",&stu[i].score[j]);}printf(" 成功输入(按任意键继续后请输入8进行保存)\n"); }/*****************计算各个同学的总分*****************************/void total(void){int i,j;for(i=0;i<n;i++){stu[i].total=0;for(j=0;j<M;j++){stu[i].total+=stu[i].score[j];}}}/*****************计算各个同学的平均分*****************************/ void avergescore(void){int i,j;for(i=0;i<n;i++){stu[i].aver=0;for(j=0;j<M;j++){stu[i].aver+=stu[i].score[j];}stu[i].aver=stu[i].aver/M;}}/************查看学生成绩及根据平均分对学生进行排序*********************/ void lookscore(void){int i,j,k;STU t;total();avergescore();system("cls");printf(" 已经转到查看成绩及成绩排序菜单\n");for(i=0;i<n-1;i++){for(k=i,j=i+1;j<n;j++)if(stu[j].aver>stu[k].aver)k=j;if(k!=j){t=stu[k];stu[k]=stu[i];stu[i]=t;}}printf("名次\t学号\t\t姓名\t\t出勤分\t值班分\t贡献分\t总分\t平均分\n");for(i=0;i<n;i++){printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name);for(j=0;j<M;j++)printf("%4.2f\t",stu[i].score[j]);printf("%4.2f\t",stu[i].total);printf("%4.2f",stu[i].aver);printf("\n");}}/*****************通过输入学号查找学生成绩***************************/void searchscore(void){char a[10];int i,j;system("cls");printf(" 已经转到查询学生成绩菜单\n");printf("请输入需查询的学生学号\n");scanf("%s",a);for(i=0;i<n;i++){if(strcmp(a,stu[i].number)==0){printf("名次\t学号\t\t姓名\t\t出勤分\t值班分\t贡献分\t总分\t平均分\n");printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name);for(j=0;j<M;j++)printf("%4.2f\t",stu[i].score[j]);printf("%4.2f\t",stu[i].total);printf("%4.2f",stu[i].aver);printf("\n");break; /*找到该学生成绩信息后跳出for循环*/}elseprintf("未找到该学生信息\n");}}/*******统计学生成绩信息,平均分及格率,优秀率****************/void statistic(void){STU *p=stu;int i;float count=0.0,sum=0.0;system("cls");printf(" 已经转到成绩统计菜单\n");for(i=0;i<n;i++){sum+=(p+i)->aver;}printf("该学生会平均分为%4.2f\n",sum/n); /*平均分计算*/for(i=0;i<n;i++){if((p+i)->aver>=60)count++;}printf("该学生会及格率为%4.2f%%\n",count/n*100); /*及格率计算*/ count=0.0;for(i=0;i<n;i++){if((p+i)->aver>=90)count++;}printf("该学生会优秀率为%4.2f%%\n",count/n*100); /*优秀率计算*/ printf("平均分低于60的学生会成员名单\n");for(i=0;i<n;i++){if(stu[i].aver<60)printf("%s\n",stu[i].name);}/*统计不及格学生名单*/}/***************修改学生成绩*****************/void modify(void){char a[10];int i,j;system("cls");printf(" 已经转到修改成绩菜单\n");printf("请输入需要修改成绩的学生学号\n");scanf("%s",a);for(i=0;i<n;i++){if(strcmp(a,stu[i].number)==0){printf("名次\t学号\t\t姓名\t\t出勤分\t值班分\t贡献分\t总分\t平均分\n");printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name);for(j=0;j<M;j++)printf("%4.2f\t",stu[i].score[j]);printf("%4.2f",stu[i].total);printf("%4.2f",stu[i].aver);printf("\n");printf("请重新输入该学生的学号:\n");scanf("%%s",stu[i].number);printf("姓名:\n");scanf("%s",stu[i].name);printf("请重新输入学生成绩:\n");printf("出勤分\t值班分\t贡献分\n");for(j=0;j<M;j++)scanf("%f",&stu[i].score[j]);/*找到该学生成绩后进行修改,跳出for循环*/printf("修改成功\n");break;}elseprintf("请确认该学生是否为学生会学生!\n");}}/*****************添加学生成绩********************/void add(void){int a,i,j;system("cls");printf(" 已经转到添加成绩菜单\n");printf("请输入新增加的学生人数:\n");scanf("%d",&a);n=n+a;for(i=n-a;i<n;i++){printf("\n");printf("请输入第%d位学生的学号:\n",i+1);scanf("%s",stu[i].number);printf("姓名:\n");scanf("%s",stu[i].name);printf("请输入学生成绩:\n");printf("出勤分\t值班分\t贡献分\n");for(j=0;j<M;j++)scanf("%f",&stu[i].score[j]);printf("添加成功\n");}}/*******************删除学生成绩*************************/void delscore(void){int i,j,c;char m,a[10];system("cls");printf(" 已经转到删除成绩菜单\n");printf("请输入学生学号\n");scanf("%s",a);for(i=0;i<n;i++){if(strcmp(a,stu[i].number)==0){printf("名次\t学号\t\t姓名\t\t出勤分\t值班分\t贡献分\t总分\t平均分\n");printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name);for(j=0;j<M;j++)printf("%4.2f\t",stu[i].score[j]);printf("%4.2f\t",stu[i].total);printf("%4.2f",stu[i].aver);printf("\n");c=i;break;}elseprintf("未找到该学生信息\n");}printf("是否删除该学生成绩(y/n)\n");scanf("%s",&m);if(m=='y'){for(i=c;i<n-1;i++)stu[i]=stu[i+1]; /*结构体整体赋值将后一位学生成绩信息拷贝进入前一位学生信息的存储位置*/n=n-1; /*删除该学生信息后学生总数减一*/printf("删除成绩成功\n");}elseprintf("删除成绩失败\n");}/******************保存学生成绩************************/void savescore(void){FILE *fp;int i,flag=1;char m;system("cls");printf(" 已经转到保存成绩菜单\n");puts("是否保存学生成绩(y/n)");scanf("%s",&m);if(m=='y'){if((fp=fopen("score.dat","wb"))==NULL){printf("文件打开失败\n");return;}for(i=0;i<n;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1){printf("保存失败\n");flag=0;}if(flag==1)printf("保存成功!\n");fclose(fp);}elsereturn;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("该同学的最高成绩为:%.2f\n",Max_score(score,count));
getchar();getch();
system("cls");
Menu();
break;
case 5:Display(score,count);
printf("该同学的最低成绩为:%.2f\n",Min_score(score,count));
n++;
}while(s[n-1]!=0);
return n-1;
}
double Sum(double s[],int n)
{int i;
double sum=0;
for(i=0;i<n;i++)
sum+=s[i];
return sum;}
double Ave(double s[],int n)
getchar();getch();
system("cls");
Menu();
break;
case 6:Display(score,count);
getchar();getch();
system("cls");
Menu();
break;
case 7:puts("\t\t欢迎下次光临 ");exit(0);
#include "stdio.h"
#include "std Nhomakorabeaib.h"
#include "conio.h"
//若干位学生的C语言成绩管理
void Menu()
{
puts("\t\t-----欢迎进入学生成绩管理系统-----");
puts("\t\t 1----成绩录入");
}
void Display(double s[],int n)
{int i;
puts("该班级学生的C语言成绩为:");
for(i=0;i<n;i++)
printf("%.2lf\t",s[i]);
putchar('\n');
}
void main()
{int choice,count;
double score[10000];
Menu();
while(12)
{
scanf("%d",&choice);
switch(choice)
{case 1:count=Input(score);
getchar();getch();
system("cls");
{double average;
average=Sum(s,n)/n;
return average;}
double Max_score(double s[],int n)
{double max=s[0];
int i;
for(i=0;i<n;i++)
if(s[i]>max)
puts("\t\t 7----退出");
puts("\t\t 请选择……");
}
int Input(double s[])
{int n=0;
puts("请输入该班级学生的C语言成绩,以0分结束:");
do{
scanf("%lf",&s[n]);
max=s[i];
return max;
}
double Min_score(double s[],int n)
{double min=s[0];int i;
for(i=0;i<n;i++)
if(s[i]<min)
min=s[i];
return min;
break;
case 3:Display(score,count);
printf("该同学的平均成绩为:%.2f\n",Ave(score,count));
getchar();getch();
system("cls");
Menu();
break;
case 4:Display(score,count);
puts("\t\t 2----求总分");
puts("\t\t 3----求平均成绩");
puts("\t\t 4----求最高分");
puts("\t\t 5----求最低分");
puts("\t\t 6----成绩显示");
}
}
}
Menu();
break;
case 2:Display(score,count);
printf("该同学的总分为:%.2f\n",Sum(score,count));
getchar();getch();
system("cls");
Menu();
相关文档
最新文档