c语言班级成绩管理系统
C语言学生成绩管理系统(输入输出删除插入查找排序)

if (count==0 || count==1)
{
return;
}
list *p, *temp;
while(i > 0)
{p=head;
for(j=0; j<i-1; j++)
{
if(p->next->num > p->next->next->num)
/*
p=(list *)malloc(sizeof(list));
p->next=Null;
*/
r=head;
printf("请输入学生人数.\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
p=(list *)malloc(sizeof(list));
scanf("%d",&k);
while (p && p->num!=k)
p=p->next;
if(p)
{
printf("学号\t姓名\t性别\t语文成绩\t数学成绩\t英语成绩\t计算机成绩\t平均成绩\t总成绩\n");
printf("%d\t%s\t%s\t%d\t%d\t%d\t%d%5.1f\t%5.1f\n",p->num,p->name,p->sex,p->chinese,p->math,p->english,p->computer,p->ave,p->sum);
C语言课程设计---班级成绩管理系统

课程设计报告课程名称C语言程序设计课题名称班级成绩管理系统专业班级学号姓名指导教师年月日湖南工程学院课程设计任务书课程名称C语言程序设计课题班级成绩管理系统专业班级学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日目录一、引言 (1)二、总体设计 (2)三、详细设计 (4)四、问题分析及总结 (13)五、参考文献 (15)六、附件 (15)一、设计内容与设计要求1. 设计内容:班级成绩管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。
③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。
⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。
2.设计要求:1)用C语言实现系统;利用结构体数组实现班级成绩的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。
2) 建立一个班级学生成绩数据库,文件名为bjcjk.txt,并从该文件中读取数据;3) 班级成绩管理系统应能提供以下功能:(1)主菜单界面设计。
通过提示用户输入一个数字选项,调用相应的功能函数。
(2)学生成绩显示:完成班级全部学生成绩的显示,显示时按表格的形式,且应有表头;(3)学生成绩追加:完成新增一个(或多个)学生的成绩记录,要求在追加过程中有相应的提示信息,完成追加后能重新计算学生平均成绩并显示;(4)学生成绩修改:要求能按学号和按姓名两种定位方式,且可以按用户要求修改记录中除学号和姓名以外的指定内容,并重新计算学生的平均成绩;(5)学生成绩信息的查询;要示系统能按学号、按姓名查询以及能查总分在某一指定范围内的学生信息,且能显示符合条件的所的记录,若所需查询的信息不存在时应有相应的提示信息。
C语言实现简单班级成绩管理系统

C语⾔实现简单班级成绩管理系统前⾔:有朋友最近在做c语⾔课设,要求写⼀个班级成绩管理系统,便写份简单的代码来玩。
代码原创,未参考任何其他⼈的代码程序要求说明本程序主要采⽤结构体数组本⽂件采⽤多⽂件编写,由于程序规模⼩,故未采⽤编写头⽂件的⽅式使⽤ #pragma once 来防⽌头⽂件重复包含代码怎么使⽤本程序看看注释应该就知道了。
run main.c 就⾏。
其他各⽂件作⽤:def.c 定义了⼀些常量和全局变量,结构体myIO.c 实现了成绩录⼊和成绩打印输出file.c 实现了将成绩保存为⽂件menu.c 实现了菜单功能function.c 包含其他⼀些要⽤的函数main.c#include "menu.c"int main(){select();return 0;}def.c// 相同头⽂件只包含⼀次,后不赘述#pragma once#include <stdio.h>#include <stdlib.h>#include <string.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define Status int// 课程typedef struct Course{char name[30];int score;} Course, *pCourse;// 学⽣typedef struct Student{char number[30];char name[30];pCourse pC;} Student, *pStudent;// n是学⽣数, m是课程数int n, m;char courseName[30], studentName[30], course[20][30];pStudent pS = NULL;myIO.c#pragma once#include "def.c"pStudent inputStudentInfo(void);void printStudentInfo(pStudent pS);// 录⼊学⽣信息pStudent inputStudentInfo(void){int i, j;printf("Please input the number of students and courses: "); scanf("%d %d", &n, &m);printf("Please input the name of courses: ");for (i = 0; i < m; i++){scanf("%s", course[i]);}pStudent pS = (pStudent)malloc(sizeof(Student) * n);if (!pS)return NULL;printf("Please input the info: \n");for (i = 0; i < n; i++){pS[i].pC = (pCourse)malloc(sizeof(Course) * m);if (!pS[i].pC)return NULL;scanf("%s %s", pS[i].name, pS[i].number);for (j = 0; j < m; j++){strcpy(pS[i].pC[j].name, course[j]);scanf("%d", &pS[i].pC[j].score);}}return pS;}// 打印所有学⽣信息void printStudentInfo(pStudent pS){int i, j;// 打印标题printf("Name\tnumber\t");for (i = 0; i < m - 1; i++)printf("%s\t", course[i]);printf("%s\n", course[i]);// 显⽰信息for (i = 0; i < n; i++){printf("%s\t%s\t", pS[i].name, pS[i].number);for (j = 0; j < m - 1; j++)printf("%d\t", pS[i].pC[j].score);printf("%d\n", pS[i].pC[j].score);}}file.c#pragma once#include "def.c"Status saveStudentInfo(pStudent pS);Status saveStudentInfo(pStudent pS){FILE *fp;int i, j;char filename[30], str[100] = "student number";printf("please input the filename: ");scanf("%s", filename);fp = fopen(filename, "w");if (!fp)return ERROR;for (i = 0; i < m; i++){strcat(str, " ");strcat(str, course[i]);}strcat(str, "\n");for (i = 0; i < n; i++){strcat(str, pS[i].name);strcat(str, " ");strcat(str, pS[i].number);for (j = 0; j < m; j++){char score[30];itoa(pS[i].pC[j].score, score, 10);strcat(str, " ");strcat(str, score);}strcat(str, "\n");}fputs(str, fp);fclose(fp);return OK;}menu.c#pragma once#include "def.c"#include "myIO.c"#include "file.c"#include "function.c"void menu();void select();// 菜单void menu(){printf("------------------------------------\n");printf("| Menu |\n");printf("| 1. input |\n");printf("| 2. show |\n");printf("| 3. save |\n");printf("| 4. sort |\n");printf("| 5. modify |\n");printf("| 6. count |\n");printf("| 0. exit |\n");printf("------------------------------------\n");}void select(){int branch;while (TRUE){system("cls");menu();printf("[Input]: ");scanf("%d", &branch);if (!branch)break;switch (branch){case 1:{pS = inputStudentInfo();if (pS == NULL)printf("input error! please input again\n"); elseprintf("Input success!\n");system("pause");break;}case 2:{printStudentInfo(pS);system("pause");break;}case 3:{if (OK == saveStudentInfo(pS))printf("Save success!\n");elseprintf("Save fail!\n");system("pause");break;}case 4:{sort(pS);printf("sort success\n");system("pause");break;}case 5:{int res = modify(pS);if (res){printf("change success!\n");}else{printf("change fail!\n");}system("pause");break;}case 6:{int choose;// 输⼊1 显⽰每门课程最⾼成绩信息// 输⼊2 显⽰每门课程平均成绩信息printf("choose 1 for the highest score: \n ");printf("choose 2 for the average score: \n");printf("[Input]: ");scanf("%d", &choose);if (choose == 1){showMax(pS);}else if (choose == 2){showAverage(pS);}else{// 输⼊⾮法提⽰信息printf("Input error!\n");}system("pause");break;}}}}function.c#include "def.c"void sort(pStudent pS);void Swap(pStudent s1, pStudent s2);void showAverage(pStudent pS);void showMax(pStudent pS);Status modify(pStudent pS);// 按课程成绩排序void sort(pStudent pS){int courseNumber, i, j, k;char courseName[30];printf("please input the course name which you want to sort: "); scanf("%s", courseName);for (courseNumber = 0; courseNumber < m; courseNumber++) if (strcmp(course[courseNumber], courseName) == 0)break;// 如果找不到课程,则认为是按总分排序if (courseNumber == m){printf("Sort as total score: \n");// 选择排序for (i = 0; i < n - 1; i++){int flag = i;for (j = i + 1; j < n; j++){int totalScore_1 = 0, totalScore_2 = 0;for (k = 0; k < m; k++){totalScore_1 += pS[j].pC[k].score;totalScore_2 += pS[flag].pC[k].score;}if (totalScore_1 > totalScore_2){flag = j;}}Swap(&pS[i], &pS[flag]);}}else{// 选择排序for (i = 0; i < n - 1; i++){int flag = i;for (j = i + 1; j < n; j++){if (pS[j].pC[courseNumber].score > pS[flag].pC[courseNumber].score) {flag = j;}}Swap(&pS[i], &pS[flag]);}}}// 修改学⽣信息Status modify(pStudent pS){// 密码是1314char password[30] = "1314", psd[30];char number[30];int score, i, j;printf("please input password: ");scanf("%s", psd);// 密码正确才继续,否则返回ERRORif (strcmp(password, psd) == 0){printf("please input the student's number: ");scanf("%s", number);for (i = 0; i < n; i++){// 找到学⽣则继续,否则返回ERRORif (strcmp(pS[i].number, number) == 0){printf("please input the course and score one by one: \n");scanf("%s %d", courseName, &score);for (j = 0; j < m; j++){// 找到课程才继续,否则返回ERRORif (strcmp(pS[i].pC[j].name, courseName) == 0){// 修改课程成绩pS[i].pC[j].score = score;return OK;}}return ERROR;}}return ERROR;}elsereturn ERROR;}// 输出各课程最⾼分的学⽣void showMax(pStudent pS){int i, j, max;for (i = 0; i < m; i++){max = 0;for (j = 0; j < n; j++){if (pS[j].pC[i].score > pS[max].pC[i].score)max = j;}printf("%s\t%s\t%s\t%d\n", course[i], pS[max].name, pS[max].number, pS[max].pC[i].score); }}// 显⽰各课程的平均成绩void showAverage(pStudent pS){int i, j;double ave;for (i = 0; i < m; i++){ave = 0;for (j = 0; j < n; j++){ave += pS[j].pC[i].score;}printf("%s\t%.2lf\n", course[i], ave / n);}}void Swap(pStudent s1, pStudent s2){int i;char studentName[30], number[30];// 交换姓名strcpy(studentName, s1->name);strcpy(s1->name, s2->name);strcpy(s2->name, studentName);// 交换学号strcpy(number, s1->number);strcpy(s1->number, s2->number);strcpy(s2->number, number);// 交换成绩for (i = 0; i < m; i++){int temp = s1->pC[i].score;s1->pC[i].score = s2->pC[i].score;s2->pC[i].score = temp;}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
c语言学生成绩管理系统(含源代码)

{int i,j,k;
STU t;
total();
avergescore();
system("cls”);
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)
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);
printf(”平均分低于60的学生名单\n");
for(i=0;i〈n;i++)
{
if(stu[i].aver〈60)
printf(”%s\n”,stu[i]。name);
}/*统计不及格学生名单*/
}
/***************修改学生成绩*****************/
void modify(void)
printf("菜单\n");
printf("输入成绩-———-----—-————-—-——-—-——-—--—-—————-1\n");
printf(”查看成绩及成绩排序—---—--——-—-———---—--—--———2\n”);
学生成绩管理系统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语⾔实现班级成绩管理系统C语⾔课程设计——班级成绩管理系统,供⼤家参考,具体内容如下题⽬:对⼀个有N个学⽣的班级,每个学⽣有M门课程。
该系统实现对班级成绩的录⼊、显⽰、修改、排序、保存等操作的管理。
功能要求:(1)本系统采⽤⼀个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。
(2)本系统显⽰这样的菜单:请选择系统功能项:a、成绩录⼊b、成绩显⽰c、成绩保存d、成绩排序e、成绩修改(要求先输⼊密码)f、成绩统计1)显⽰每门课程成绩最⾼的学⽣的基本信息2)显⽰每门课程的平均成绩3)显⽰超过某门课程平均成绩的学⽣⼈数g、退出系统1)执⾏⼀个具体的功能之后,程序将重新显⽰菜单。
2)将学⽣成绩保存到⽂件中。
代码:#include<vector>#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cstring>#include<string>using namespace std;typedef struct Student{int ID; /*学⽣学号*/char name[15]; /*学⽣姓名*/vector<double> subject; /*因未知课程数量,所以课程数量采⽤动态数组vector*/double sum; /*学⽣各科成绩总分*/}Student;struct Rule{ /*排序规则*/bool operator()(const Student &stu1,const Student &stu2)const{if(stu1.sum!=stu2.sum) /*总分不相等按照总分从⼤到⼩排序*/return stu1.sum>stu2.sum;return stu1.ID>stu2.ID; /*总分相等按照学号从⼤到⼩排序*/}};int N,M,i,j; /*N为学⽣⼈数,M为课程数量*/double score; /*临时变量*/Student temp; /*临时变量*/vector<Student> Stu; /*本课设采⽤动态数组vector,防⽌浪费内存空间*/bool condition=true; /*系统运⾏状态*/char choice; /*⽤于输⼊来选择功能*//*---------------------------------------------a.成绩录⼊---------------------------------------------*/void InsertScore(){cout<<"请输⼊班级学⽣数量和课程数量:";cin>>N>>M;cout<<endl<<"现在请依次输⼊每个学⽣的学号、姓名和"<<M<<"门课程的成绩:"<<endl<<endl; for(i=0;i<N;++i){cin>>temp.ID>>;for(j=0;j<M;++j){cin>>score;temp.subject.push_back(score);}Stu.push_back(temp);/*------------------------------这⼀⾏很重要------------------------------*//*------------------------------这⼀⾏很重要------------------------------*/vector<double>().swap(temp.subject);/*------------------------------这⼀⾏很重要------------------------------*//*------------------------------这⼀⾏很重要------------------------------*/}cout<<endl<<"成绩录⼊成功!"<<endl;}/*---------------------------------------------b.成绩显⽰---------------------------------------------*/void ShowScore(){cout<<"学号\t\t"<<"姓名\t\t";for(i=0;i<M;++i)cout<<"课程"<<i+1<<"\t";cout<<endl;for(i=0;i<N;++i){cout<<Stu[i].ID<<"\t"<<Stu[i].name<<"\t";for(int j=0;j<M;++j)cout<<Stu[i].subject[j]<<"\t";cout<<endl;}}/*---------------------------------------------c.成绩保存---------------------------------------------*/void SaveScore(){FILE *fp;if((fp=fopen("stu.dat","wb"))==NULL){cout<<"⽂件打开错误";return;}for(i=0;i<N;++i){if(fwrite(&Stu[i],sizeof(Student),1,fp)!=1)cout<<"写⼊错误!"<<endl;}fclose(fp);cout<<"成绩保存成功!"<<endl;}/*---------------------------------------------d.成绩排序---------------------------------------------*/void SortScore(){for(i=0;i<N;++i){ /*计算每个⼈的总成绩*/Stu[i].sum=0;for(j=0;j<M;++j)Stu[i].sum+=Stu[i].subject[j];}sort(Stu.begin(),Stu.end(),Rule()); /*使⽤排序函数排序*/cout<<"成绩排序成功!"<<endl;}/*---------------------------------------------e.成绩修改---------------------------------------------*/void ModifyScore(){string password;int id,no;cout<<"请输⼊密码开启成绩修改权限:";cin>>password;/*------------------------------密码输⼊错误------------------------------*/while(password!="GUXUNMEI"){cout<<endl<<"密码错误,请重新输⼊,若输⼊Q则中⽌进⼊成绩修改功能:";cin>>password;if(password=="Q")return;}/*------------------------------密码输⼊正确------------------------------*/cout<<endl<<"成功进⼊成绩修改功能,若学号输⼊-1则退出成绩修改功能!"<<endl; while(1){cout<<endl<<"请输⼊需要修改成绩的学⽣的学号,第⼏门课程以及修改后的分数:";cin>>id;if(id==-1){cout<<endl<<"已成功退出成绩修改功能!"<<endl;return;}cin>>no>>score;if(no>M){ /*课程不存在*/cout<<endl<<"不存在此课程!"<<endl;continue;}for(i=0;i<N;++i){if(Stu[i].ID==id){Stu[i].subject[no-1]=score;break;}}if(i==N){ /*学⽣不存在*/cout<<endl<<"不存在此学⽣!"<<endl;continue;}cout<<endl<<"修改成功!"<<endl;}}/*---------------------------------------------f.成绩统计---------------------------------------------*/void CountScore(){int maxn[M],count[M];double k,average[M];memset(maxn,0,sizeof(maxn));/*--------------------显⽰每门课程成绩最⾼的学⽣的基本信息--------------------*/for(i=0;i<N;++i){for(j=0;j<M;++j){if(Stu[i].subject[j]>Stu[i].subject[maxn[j]])maxn[j]=i;}}for(i=0;i<M;++i){cout<<"课程"<<i+1<<"成绩最⾼分学⽣信息:"<<Stu[i].ID<<"\t"<<Stu[i].name<<"\t"; for(j=0;j<M;++j)cout<<Stu[i].subject[j]<<"\t";cout<<endl;}cout<<endl;/*---------------------------显⽰每门课程的平均成绩---------------------------*/for(j=0;j<M;++j){k=0;for(i=0;i<N;++i)k+=Stu[i].subject[j];average[j]=k/N;cout<<"课程"<<j+1<<"的平均成绩为:"<<average[j]<<endl;}cout<<endl;/*---------------------显⽰超过某门课程平均成绩的学⽣⼈数---------------------*/for(j=0;j<M;++j){count[j]=0;for(i=0;i<N;++i){if(Stu[i].subject[j]>average[j])++count[j];}cout<<"超过课程"<<j+1<<"平均成绩的学⽣⼈数为:"<<count[j]<<endl;}}/*---------------------------------------------g.退出系统---------------------------------------------*/void ExitSystem(){condition=false; /*全局变量condition控制程序运⾏*/cout<<"已退出班级成绩管理系统"<<endl;}int main(){while(condition){/*-----------------------------------系统菜单-----------------------------------*/cout<<" "<<endl;cout<<"-------------------------系统菜单-------------------------"<<endl;cout<<" "<<endl;cout<<" 请选择系统功能项: "<<endl;cout<<" a.成绩录⼊ "<<endl;cout<<" b.成绩显⽰ "<<endl;cout<<" c.成绩保存 "<<endl;cout<<" d.成绩排序 "<<endl;cout<<" e.成绩修改 "<<endl;cout<<" f.成绩统计 "<<endl;cout<<" g.退出系统 "<<endl;cout<<" "<<endl;cout<<"----------------------------------------------------------"<<endl;cout<<" "<<endl;/*-----------------------------------选择系统功能项-----------------------------------*/cout<<"请输⼊选项:";cin>>choice;cout<<endl;switch(choice){case 'a':InsertScore(); break;case 'b':ShowScore(); break;case 'c':SaveScore(); break;case 'd':SortScore(); break;case 'e':ModifyScore(); break;case 'f':CountScore(); break;case 'g':ExitSystem(); break;default:cout<<"不存在此项功能!"<<endl;}}return 0;}关于管理系统的更多内容请点击进⾏学习以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
班级成绩管理系统C语言

#include <stdio.h>#include<stdlib.h> //清屏函数所在的头文件#include<string.h>float score[10][8]; //定义一个10行8列的全局数组,10为学生总人数,8为每个学生的项数//作用:用来存放从文件中读出的数据,存放数据的文件为:shuju void main(){int n=10,cn; //n为学生人数char s[2];void save(); //主函数在前,子函数在后故void load(); //在主函数中要对使用的子函数先申明;void load1(); //共用到11个子函数,都要申明void fun2(float score[][8],int n);void fun3(float score[][8],int n);void fun4(float score[][8],int n);void fun5(float score[][8],int n);void fun6(float score[][8],int n);void fun7(float score[][8],int n);void fun8(float score[][8],int n);void fun9(float score[][8],int n);for(;;) //死循环{printf("\n");printf("!***********************************************************!\n");printf("! ** 班级成绩管理系统** !\n");printf("! ** ** 指导教师:** ** !\n");printf("! ** 09221班张三!\n");printf("!***********************************************************!\n");printf("! !\n");printf("! 1——从文件(shuju)中读出原始数据!\n");printf("! 2——求每个学生的总分及平均分!\n");printf("! 3——按总分排名次(总分相同名次相同)!\n");printf("! 4——按学号查询学生成绩!\n");printf("! 5——查找并显示有一科以上不及格学生的清单!\n");printf("! 6——统计每科成绩大于80以及大于90分的学生的比例!\n");printf("! 7——计算单科平均分!\n");printf("! 8——显示所有学生成绩清单并写入文件(chengji)中!\n");printf("! 9——显示单科85分以上平均成绩90分以上的成绩清单!\n");printf("! 10——读出chengji中的数据!\n");printf("! 0 ——退出系统!\n");printf("!***********************************************************!\n");printf("! 说明:运行此程序后,应先做1、2步,否则没有数据!!\n");printf("!***********************************************************!\n");printf(" 【请认真阅读主菜单】");printf("\n请输入项目编号[0—10]:");gets(s);cn=atoi(s); //此函数将非数字键都转换为0if (cn==0 && (strcmp(s,"0")==0)) break;//此语句处理键入的非数字键,过滤出数字0switch(cn) //多分支语句{case 0:system("cls");break;case 1:system("cls"); //清屏语句printf("\n从文件shuju中读出的学生原始数据清单为:\n\n");load(score); //从文件“shuju”中读出数据到全局的二维数组中,以便处理break;case 2:system("cls"); //清屏语句fun2(score,n); /*求每个学生的总分及平均分*/break;case 3:system("cls"); //清屏语句fun3(score,n); /*按总分排名次,总分相同,名次相同*/break;case 4:system("cls"); //清屏语句fun4(score,n); /*以学号查询学生成绩,输入0结束查询*/break;case 5:system("cls"); //清屏语句fun5(score,n); /*查找有一门课以上不及格的学生,输出他们的全部成绩,并统计不及格总科次*/break;case 6:system("cls"); //清屏语句fun6(score,n); /*统计各科都不低于80分和各科都不低于90分学生的比例*/break;case 7:system("cls"); //清屏语句fun7(score,n); //求5门单科平均分break;case 8:system("cls"); //清屏语句fun8(score,n); //显示所有学生成绩清单break;case 9:system("cls"); //清屏语句fun9(score,n); //显示单科成绩85分以上,平均成绩90分以上的学生信息break;case 10:system("cls"); //清屏语句printf("\n从文件chengji中读出的学生数据清单为:\n\n");load1(); //从文件“chengji”中读出数据到全局的二维数组中,看是否正确break;default:system("cls"); //清屏语句printf("\n\n");printf("不是合法的输入值!重输\n");}}}void load() //从文件shuju中读出数据函数{FILE *fp;int i;fp=fopen("shuju","rb");printf(" 学号课程1 课程2 课程3 课程4 课程5 总分平均分\n");for(i=0;i<10;i++){fread(&score,sizeof(score),1,fp);printf("%6.0f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f\n",score[i][0],score[i][1],score[i][2],sco re[i][3],score[i][4],score[i][5],score[i][6],score[i][7]);}fclose (fp);}void load1() //从文件chengji中读出数据函数{FILE *fp;int i;fp=fopen("chengji","rb");printf(" 学号课程1 课程2 课程3 课程4 课程5 总分平均分\n");for(i=0;i<10;i++){fread(&score,sizeof(score),1,fp);printf("%6.0f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f\n",score[i][0],score[i][1],score[i][2],sco re[i][3],score[i][4],score[i][5],score[i][6],score[i][7]);}fclose (fp);}void fun2(float score[][8],int n) //求总分、平均分函数{float a,b,c;printf(" 学号课程1 课程2 课程3 课程4 课程5 总分平均分\n");for(n=0;n<=9;n++){a=score[n][1]+score[n][2]+score[n][3]+score[n][4]+score[n][5];score[n][6]=a;b=score[n][6]/5;score[n][7]=b;printf("%6.0f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f\n",score[n][0],score[n][1],score[n][2],s core[n][3],score[n][4],score[n][5],score[n][6],score[n][7]);}}void fun3(float score[][8],int n) //排序函数{int i,j,k;float temp[10][3],x[3]; //定义了一个临时二维数组和一个一维数组for (i=0;i<n;i++){temp[i][0]=score[i][0]; //将学号赋给临时二维数组的0列temp[i][1]=score[i][6]; //将总分赋给临时二维数组的1列}for (i=0;i<n;i++) /*条件也可为:i<n-1*/{k=i;for (j=i+1;j<n;j++)if (temp[j][1]>temp[k][1])k=j;if (i!=k) /*此语句不要也可*/{x[0]=temp[k][0]; //以下就是交换学号和总分x[1]=temp[k][1];x[2]=temp[k][2]; /*些语句不要也可*/temp[k][0]=temp[i][0];temp[k][1]=temp[i][1];temp[k][2]=temp[i][2];temp[i][0]=x[0];temp[i][1]=x[1];temp[i][2]=x[2]; /*些语句不要也可*/}}j=1;temp[0][2]=j;for (i=1;i<n;i++)if (temp[i][1]==temp[i-1][1])temp[i][2]=j;else{j++;temp[i][2]=j;}printf("按总分排列的名次\n");printf("原学号总分名次\n");for (i=0;i<n;i++)printf("%4g%10g%7g\n",temp[i][0],temp[i][1],temp[i][2]);}void fun4(float score[][8],int n) //查询学生成绩函数{int a,b;printf(" 请输入学生学号:\n");printf("【按0退出查询】");scanf("%d",&b);while(1){for(a=0;a<=9;a++)if(b==score[a][0]){printf("你要查询的学生成绩为:\n\n\n");printf(" 学号课程1 课程2 课程3 课程4 课程5 总分平均分\n");printf("%6.0f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f\n",score[a][0],score[a][1],score[a][2],score[ a][3],score[a][4],score[a][5],score[a][6],score[a][7]);continue;system("cls");}if(b!=score[a][0]&&b!=0){printf("请重新输入【学生编号为(1001-1010)】");scanf("%d",&b);system("cls");}if (b==0)break;}}void fun5(float score[][8],int n) //显示不及格学生成绩函数{int a,c,b;printf(" 学号课程1 课程2 课程3 课程4 课程5 总分平均分不及格科数\n");for(a=0;a<=9;a++)for(c=1,b=0;c<=5;c++)if(score[a][c]<60){b++;if(c==5){printf("%6.0f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f %d\n",score[a][0],score[a][1],sc ore[a][2],score[a][3],score[a][4],score[a][5],score[a][6],score[a][7],b);}}}void fun6(float score[][8],int n) //统计比例函数{int a,b,i;float c,d;printf(" 课程1 课程2 课程3 课程4 课程5 \n");printf("单科成绩大于80的学生所占比例:");for(b=1;b<=5;b++){c=0;for(a=0;a<10;a++){if(score[a][b]>=80)c++;if(a==9)printf("%.1f%% ",c*10);}}printf("\n");printf("单科成绩大于90的学生所占比例:");for(b=1;b<=5;b++){d=0;for(a=0;a<10;a++){if(score[a][b]>=90)d++;if(a==9)printf("%.1f%% ",d*10);}}i=0;for(a=0;a<10;a++){for(b=1;b<=5;b++){if(score[a][b]<90)break;if(b==5)i++;}}printf("\n\n\n\n各科都不低于90分学生的比例%d%%",i*10);}void fun7(float score[][8],int n) //求单科平均分函数{int b;float a;printf(" 课程1 课程2 课程3 课程4 课程5 \n");printf("单科平均分:");for(b=1;b<=5;b++){a=score[0][b]+score[1][b]+score[2][b]+score[3][b]+score[4][b]+score[5][b]+score[6][b]+scor e[7][b]+score[8][b]+score[9][b]+score[9][b];printf("%.2f ",a/10.0);}}void fun8(float score[][8],int n) //显示学生成绩清单函数{int a,b;printf(" 学号课程1 课程2 课程3 课程4 课程5 总分平均分\n");for(b=0;b<=5;b++){for(a=0;a<10;a++)if(b==5)printf("%6.0f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f%6.1f\n",score[a][0],score[a][1],score[a][2],sc ore[a][3],score[a][4],score[a][5],score[a][6],score[a][7]);} save();}void fun9(float score[][8],int n) //统计并显示单科大于85分平均分大于90分的学生{int a,b,c;printf(" 查询结果\n\n");printf("单科大于85分平均分大于90分的学生学号为:");for(a=0,c=0;a<10;a++){for(b=1;b<=5;b++)if(score[a][b]>85)if(score[a][7]>90)if(b==5){c++;printf("%.0f ",score[a][0]);}}printf("\n单科大于85分平均分大于90分的学生的学生总数为:%d",c);}void save() //写入文件函数{FILE *fp1;int i;if( (fp1=fopen("chengji","wb"))==NULL){printf("cannot open file\n");return;}for(i=0;i<8;i++)if(fwrite(&score,sizeof(score),1,fp1)!=1)printf("file write error\n");fclose(fp1);}。
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语言编写一个学生成绩信息管理系统。
本文将介绍该系统的源代码,并对其进行详细的解释和讲解。
二、系统功能需求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语言课程设计班级成绩管理系统

性能测试:评估系统在不同 负载下的性能表现
功能测试:验证系统功能是 否满足需求
安全性测试:检查系统是否 存在安全漏洞
用户体验测试:评估系统的 易用性和用户满意度
硬件要求:服务 器、网络设备、 存储设备等
软件要求:操作 系统、数据库管 理系统、Web服 务器等
部署步骤:安装 操作系统、安装 数据库管理系统、 安装Web服务器、 部署应用程序等
未来展望:继续 优化和完善班级 成绩管理系统, 提高系统的稳定 性和易用性,为 更多的学生提供 更好的学习平台。
汇报人:
,a click to unlimited possibilities
汇报人:
01
02
ቤተ መጻሕፍቲ ባይዱ
03
04
05
06
目标:实现班级成绩管理系统,提高教学管理效率 功能:学生信息管理、课程信息管理、成绩管理、统计分析、报表打印等
操作简单:用户界面友好,易 于操作
数据安全:数据加密存储,保 证数据安全
功能全面:包括成绩录入、查 询、统计等功能
扩展性强:可以根据需要添加 新的功能模块
适用于C语言课程 设计
适用于班级成绩管 理
适用于教师和学生 使用
适用于学校或培训 机构使用
用户角色:学生、 教师、管理员
用户需求:学生查 看成绩、教师录入 成绩、管理员管理 用户
系统功能:成绩查 询、成绩录入、用 户管理
性能要求:系统稳 定、响应速度快、 数据安全
系统性能:运行稳定,响应速度快,数据安全可靠
系统改进:未来可以增加更多的功能,如成绩分析、成绩预警等,以提高系统的实用性和便捷 性
课程设计目标: 提高学生C语言 编程能力,培养 团队合作精神
班级成绩管理系统C语言编程解决方案

班级成绩管理系统C语言编程解决方案班级成绩管理系统是一种常见的教育领域应用程序,它能够有效地记录和管理学生的成绩信息。
本文将从深度和广度两个方面探讨班级成绩管理系统的C语言编程解决方案。
一、基本概述1.1 系统功能需求班级成绩管理系统需要实现以下基本功能:(1)学生信息管理:包括学生尊称、学号、班级等基本信息。
(2)成绩录入:提供录入学生各科成绩的功能。
(3)成绩查询:能够根据学生尊称或学号快速查询学生的成绩。
(4)成绩统计:能够对学生的成绩进行统计分析,如计算总分、平均分等。
(5)成绩报表打印:生成学生的成绩报表,方便教师进行查看或打印。
1.2 系统设计思路为了实现上述功能,可以采用模块化设计思路,将系统拆分为若干个模块,如学生信息管理模块、成绩录入模块、成绩查询模块等。
每个模块负责完成特定的功能,并与其他模块进行交互。
二、具体实现2.1 学生信息管理模块(1)定义结构体:使用结构体存储学生的基本信息,如尊称、学号、班级等。
(2)添加学生信息:通过输入学生信息,将学生信息添加到系统中。
(3)删除学生信息:根据学号或尊称,删除指定学生的信息。
(4)修改学生信息:根据学号或尊称,修改指定学生的信息。
(5)显示学生信息:将当前系统中的所有学生信息显示出来。
2.2 成绩录入模块(1)录入学生成绩:通过输入学生的学号或尊称,录入该学生各科的成绩。
(2)更新学生成绩:根据学号或尊称,更新指定学生的成绩信息。
2.3 成绩查询模块(1)按学号查询:输入学生的学号,查找该学生的成绩信息。
(2)按尊称查询:输入学生的尊称,查找该学生的成绩信息。
2.4 成绩统计模块(1)计算总分:将指定学生各科的成绩相加,得到总分。
(2)计算平均分:将总分除以科目数量,得到平均分。
2.5 成绩报表打印模块(1)生成报表:将学生的成绩信息按照一定格式生成报表。
(2)打印报表:将生成的报表打印出来,方便教师进行查看或备份。
三、个人观点和理解班级成绩管理系统是一种有效地管理学生成绩的工具,适合用于中小学教育领域。
班级成绩管理系统 C语言

for(i=0;i<N;i++)
if(strcmp(str,stu[i].num)==0)
{
for(j=i;j<N;j++)
stu[j]=stu[j+1];
printf("删除成功!\n");
printf("是否继续输入(Y/N):");
void Sort();
/*void Modi();*/
void main()
{
int n,k;
char str[10];
printf( "\n ");
printf( "*********************************************\n ");
printf(" \n");
printf( "请输入密码继续!");
printf("\n");
/* for(k=0;k<3;k++)
{
printf("请输入密码:");
for(n=0;(str[n]=getch())!='\r';n++)
putchar('*');
if(l=='n'||l=='N')
flag=0;
else if(l=='Y')
Input();
else break;
}
system("cls");
学生成绩管理系统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.成绩统计:系统会计算所有学生对应科目的平均分和总分,并输出统计结果。
设计思路主菜单首先,用户将进入主菜单,可以通过输入相应的数字选择不同的功能。
根据用户的选择,程序将进入对应的功能模块。
主菜单功能的设计如下所示:1. 学生信息管理2. 成绩录入3. 成绩查询4. 成绩统计5. 退出系统学生信息管理在学生信息管理模块中,用户可以选择添加、修改、删除或显示全部学生的信息,这些功能将通过以下流程图实现:1. 显示全部学生信息2. 添加学生信息3. 修改学生信息4. 删除学生信息5. 返回主菜单成绩录入成绩录入模块允许用户选择学生并输入其对应科目的成绩。
以下是成绩录入的流程图:1. 选择学生2. 输入科目3. 输入成绩4. 返回主菜单成绩查询成绩查询模块允许用户选择学生并查询其对应科目的成绩。
以下是成绩查询的流程图:1. 选择学生2. 查询科目3. 输出成绩4. 返回主菜单成绩统计成绩统计模块将计算所有学生对应科目的平均分和总分,并输出统计结果。
以下是成绩统计的流程图:1. 计算平均分和总分2. 输出统计结果3. 返回主菜单退出系统当用户选择退出系统时,程序将结束执行。
总结通过以上的程序设计流程图,我们可以清楚地了解班级成绩管理系统的工作流程。
该系统可以方便地录入学生信息、录入成绩、查询成绩和统计成绩,为学校或班级提供了一个简单而实用的成绩管理工具。
学生成绩管理系统C语言(附完整源代码)

学生成绩管理系统C语言(附完整源代码)学生成绩管理系统C语言(附完整源代码)课程设计报告学生成绩管理系统院系:专业:班级:完成日期: 2009年1月03日设计题目:学生成绩管理系统目录1、题目描述2、算法设计/设计思想3、结构框图、各模块的功能描述4、主体思想:5、程序的,,,流程图6、源代码1.题目描述设计一个简单的学生成绩管理系统,要求有简单的界面,程序段要分清模块,该程序应该:(1)输入学生成绩,求总分,平均分,以及排序。
(2)查询学生单科成绩,总分和平均成绩;(3)添加、修改学生成绩具有下列功能:(4)实现保存与查看功能2.算法设计/设计思想利用二维数组——定义stu[][]存储学生学号、各科成绩,总分,平均分,名次,利用文件来存储,读取数据。
详细合作是::负责inputx(),print1(),input();:卖力文件的储备和读取,main(),System(),Idea()和各挪用函数之间的连;:卖力find1(),find2(),find3(),find31(),Find();:负责del(),add(),change1(),Change();前期调试由小组配合卖力。
3.结构框图、各模块的功能描述3.1建立成就表3.1.1 input()功用是输退学生的信息,便于当前的查询、欣赏。
3.2增加3.2.1 add( )功用是向inputy()增加新的内容。
3.3.2 chance( )对单科成绩进行修改。
3.3查询3.3.1可根据学号,科目,名次,进行查询。
3.3.2查询内容包孕:该学生的各课成就、、均匀分。
3.4删除3.4.1能够输退学号删除一逻辑学生的一课成就。
3.5浏览成绩单3.5.1通过此print1()可以查看所有学生的各课成绩、总分、平均分和名次。
3.6文件()3.6.1保存以上所输入的信息以达到既是关闭窗口信息也不会丢失信息的目的。
3.6.2随时打开,修改文件。
3.7.退出功用是退出主菜单退出系意见评述功能菜单统输入增加及改查找功用退出功用菜单成就功用查输排查找学学添修某某生生加改XXX某成成就绩科绩绩绩成就按按按名学科次号目查查查找找找四、主体思想:1、斟酌到此步伐量大代码多,以是用函数挪用,分几小我去完成。
原创班级成绩管理系统c语言程序设计流程图

原创班级成绩管理系统C语言程序设计流程图引言班级成绩管理系统是一种在学校和教育机构中常用的程序,它能够方便地存储和管理学生的成绩信息。
本文将介绍一个采用C语言开发的班级成绩管理系统的设计流程图。
设计目标班级成绩管理系统的设计目标是实现以下功能: - 学生信息的录入和管理 - 课程信息的录入和管理 - 成绩信息的录入和管理 - 成绩查询和统计功能设计流程图1. 系统初始化// 初始化学生信息数据结构struct student {int student_id;char name[50];// 其他学生信息字段} students[MAX_STUDENTS];// 初始化课程信息数据结构struct course {int course_id;char name[50];// 其他课程信息字段} courses[MAX_COURSES];// 初始化成绩信息数据结构struct grade {int student_id;int course_id;float score;// 其他成绩信息字段} grades[MAX_GRADES];// 初始化学生、课程和成绩数量int num_students = 0;int num_courses = 0;int num_grades = 0;// 系统初始化完毕2. 学生信息管理// 学生信息录入void addStudent() {// 获取用户输入的学生信息// 创建并初始化新的学生结构体// 将新学生结构体添加到学生信息数据结构中// 更新学生数量}// 学生信息修改void editStudent() {// 获取用户输入的学生ID// 查找对应学生结构体// 根据用户输入修改学生信息}// 学生信息删除void deleteStudent() {// 获取用户输入的学生ID// 查找对应学生结构体// 从学生信息数据结构中删除学生结构体// 更新学生数量}// 学生信息查询void queryStudent() {// 获取用户输入的学生信息查询条件// 根据查询条件在学生信息数据结构中查找学生结构体// 打印查询结果}3. 课程信息管理// 课程信息录入void addCourse() {// 获取用户输入的课程信息// 创建并初始化新的课程结构体// 将新课程结构体添加到课程信息数据结构中// 更新课程数量}// 课程信息修改void editCourse() {// 获取用户输入的课程ID// 查找对应课程结构体// 根据用户输入修改课程信息}// 课程信息删除void deleteCourse() {// 获取用户输入的课程ID// 查找对应课程结构体// 从课程信息数据结构中删除课程结构体// 更新课程数量}// 课程信息查询void queryCourse() {// 获取用户输入的课程信息查询条件// 根据查询条件在课程信息数据结构中查找课程结构体// 打印查询结果}4. 成绩信息管理// 成绩信息录入void addGrade() {// 获取用户输入的成绩信息// 创建并初始化新的成绩结构体// 将新成绩结构体添加到成绩信息数据结构中// 更新成绩数量}// 成绩信息修改void editGrade() {// 获取用户输入的学生ID和课程ID// 查找对应成绩结构体// 根据用户输入修改成绩信息}// 成绩信息删除void deleteGrade() {// 获取用户输入的学生ID和课程ID// 查找对应成绩结构体// 从成绩信息数据结构中删除成绩结构体// 更新成绩数量}// 成绩信息查询void queryGrade() {// 获取用户输入的成绩信息查询条件// 根据查询条件在成绩信息数据结构中查找成绩结构体// 打印查询结果}// 成绩统计void statistics() {// 统计各科目成绩的最高分、最低分和平均分// 统计每个学生的总分和平均分// 打印统计结果}5. 主程序流程int main() {// 系统初始化// 进入主菜单的循环int choice;while (1) {// 显示菜单选项// 获取用户选择// 根据用户选择执行相应的功能}return0;}总结通过以上流程图,我们实现了一个简单的班级成绩管理系统。
用c语言编写学生成绩管理系统

include<>umber;ame;ex;corej;otal=0;forj=0;j<M;j++otal+=stui.scorej;}}}/计算各个同学的平均分/voidavergescorevoid{ inti,j;ver=0;forj=0;j<M;j++ver+=stui.scorej;}stui.aver=stui.aver/M;ver>stuk.averk=j;ifk=j{ t=stuk;stuk=stui;stui=t;}}printf"名次\t学号\t\t姓名\t性别\t高数分\t英语分\tC语言分\t总分\t平均分\n";fori=0;i<n;i++{ printf"%d\t%s\t%s\t%s\t",i+1,stui.number,,stui.sex;forj=0;j<M;j++printf"%\t",stui.scorej;printf"%\t",stui.total;printf"%",stui.aver;printf"\n";}}/通过输入学号查找学生成绩/voidsearchscorevoid{ chara10;umber==0umber,,stui.sex;forj=0;j<M;j++printf"%\t",stui.scorej;printf"%\t",stui.total;printf"%",stui.aver;printf"\n";break; 数\t2.英语\语言\n";scanf"%d",&c1;printf"\t一共有%d个记录\n",M;/总共记录数/switchc1{case1:core0;ifstuk.score0>stui.score0k=i;ifstuj.score0<stui.score0j=i;}average0=sum/M;printf"\t高数的最高分:\n";printf"\t\t学号:%s姓名:%s分数:%.2f\n",stuj.number,,stuj.score0; printf"\t高数的最低分是:\n";printf"\t\t学号:%s姓名:%s分数:%.2f\n",stuk.number,,stuk.score0; printf"\t高数的平均分是%\n",average0;printf"平均分低于60分的学生成员名单\n";fori=0;i<M;i++{ifstui.score0<60printf"%s\n",;}break;case2:core1;ifstuk.score1>stui.score1k=i;ifstuj.score1<stui.score1j=i;}average1=sum/M;printf"\t英语的最高分:\n";printf"\t\t学号:%s姓名:%s分数:%.2f\n",stuj.number,,stuj.score1; printf"\t英语的最低分是:\n";printf"\t\t学号:%s姓名:%s分数:%.2f\n",stuk.number,,stuk.score1; printf"\t英语的平均分是%\n",average1;printf"平均分低于60分的学生成员名单\n";fori=0;i<M;i++{ifstui.score1<60printf"%s\n",;}break;case3:core2;ifstuk.score2>stui.score2k=i;ifstuj.score2<stui.score2j=i;}average2=sum/M;printf"\tC语言的最高分:\n";/最高分/printf"\t\t学号:%s姓名:%s分数:%.2f\n",stuj.number,,stuj.score2;printf"\tC语言的最低分是:\n";/最低分/printf"\t\t学号:%s姓名:%s分数:%.2f\n",stuk.number,,stuk.score2; printf"\tC语言的平均分是%\n",average2;printf"平均分低于60分的学生成员名单\n";fori=0;i<M;i++{ifstui.score2<60printf"%s\n",;}break;printf"输入错误请输入1~3之间的数\n";}sum=0;getchar;printf"是否继续进行统计y/n";getsstr;ifstr0=='y'||str0=='Y'statistic;elsebreak;}}}/修改学生成绩/voidmodifyvoid{chara10;inti,j;system"cls";printf"已经转到修改成绩菜单\n";printf"请输入需要修改成绩的学生学号\n";scanf"%s",a;fori=0;i<n;i++{ ifstrcmpa,stui.number==0{ printf"名次\t学号\t\t姓名\t性别\t高数分\t英语分\tC语言分\t总分\t平均分\n";printf"%d\t%s\t%s\t%s\t",i+1,stui.number,,stui.sex;forj=0;j<M;j++printf"%\t",stui.scorej;printf"%",stui.total;printf"%",stui.aver;printf"\n";printf"请重新输入该学生的姓名:\n";scanf"%%s",stui.number;printf"\n";scanf"%s",;printf"请输入该学生性别\n";scanf"%s",stui.sex;printf"请重新输入该学生成绩:\n";printf"高数分\t英语分\tC语言分\n";forj=0;j<M;j++scanf"%f",&stui.scorej;printf"修改成功\n";break;umber;printf"姓名:\n";scanf"%s",;printf"输入该学生性别\n";scanf"%s",stui.sex;printf"请输入学生成绩:\n";printf"高数分\t英语分\tC语言分\n";forj=0;j<M;j++scanf"%f",&stui.scorej;printf"添加成功\n";}}/删除学生成绩/voiddelscorevoid{inti,j,c;charm,a10;umber==0{ printf"名次\t学号\t\t姓名\t性别\t高数分\t英语分\tC语言分\t总分\t平均分\n";printf"%d\t%s\t%s\t%s\t",i+1,stui.number,,stui.sex;forj=0;j<M;j++printf"%\t",stui.scorej;printf"%\t",stui.total;printf"%",stui.aver;printf"\n";c=i;break;}elseprintf"未找到该学生信息\n";}printf"是否删除该学生成绩y/n\n";scanf"%s",&m;ifm=='y'{fori=c;i<n-1;i++stui=stui+1; //结构体整体赋值将后一位学生成绩信息拷贝进入前一位学生信息的存储位置n=n-1; //删除该学生信息后学生总数减一printf"删除成绩成功\n";}elseprintf"删除成绩失败\n";}/保存学生成绩/voidsavescorevoid{FILEfp;//定义指针inti,flag=1;charm;system"cls";printf"已经转到保存成绩菜单\n";puts"是否保存学生成绩y/n";scanf"%s",&m;ifm=='y'{ iffp=fopen"","wb"==NULL//从文件score中打开{ printf"文件打开失败\n";return;}fori=0;i<n;i++iffwrite&stui,sizeofstructstudent,1,fp=1//学生成绩写入{ printf"保存失败\n";flag=0;}ifflag==1printf"保存成功\n";fclosefp;//界面关闭}elsereturn;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程名称C语言程序设计课题名称班级成绩管理系统专业网络工程班级1001学号姓名张剑指导教师唐北平、陈淑红、谭小兰2011年6月20日湖南工程学院课程设计任务书课程名称C语言程序设计课题班级成绩管理系统专业班级网络工程学生姓名张剑学号指导老师唐北平、陈淑红、谭小兰审批任务书下达日期2011年6月20日任务完成日期2011年7月03日一、设计内容与设计要求1.设计内容:对一个有N个学生的班级,每个学生有M门课程。
该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。
1、本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。
2、本系统显示这样的菜单:请选择系统功能项:a、成绩录入、显示b、成绩修改c、成绩查询d、成绩排序、统计e、退出系统3、执行一个具体的功能之后,程序将重新显示菜单。
2.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。
1.设计正确,方案合理。
2.界面友好,使用方便。
3.程序精炼,结构清晰。
4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
5.上机演示。
6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。
源程序及编译生成各文件均保存在软盘中;7.按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。
并用A4的复印纸打印并装订;二、进度安排第十八周星期18时00分——11时30分星期214时30分——18时00分星期38时00分——11时30分星期48时00分——11时30分第十九周星期18时00分——11时30分星期二14时30分——18时00分目录主要功能介二、概要设计程序的模块程序流程三、详细设计系统总体结构学生信息录入成绩查询系统成绩删除模块排序统计系统退出系统四、课程设计总结课程设计心得在程序设计中的问题和解决附录源程序清单(带注释)计算机与通信学院课程设计评分表一、功能简介主要功能介绍1、本系统采用一个结构体数组,每个数据的结构包括:学号、姓名、M门课程名称。
2、本程序具有:(1)成绩录入(2)成绩显示(3)成绩删除(4)成绩排序、三、详细设计系统总体结构学生信息录入成绩查询系统成绩删除模块排序统计系统退出系统六、课程设计总结课程设计心得:课程设计给我一个学以致用的机会,刚开始的时候还以为学这黑黑的东西没用,只是一些简单的计算。
经过了这次的练习我才发现原来的黑屏有它自己的好处,通过学习也发现原来这种黑屏就是那些应用程序的原型,不论你以后学程序开发还是网页的制作都有很好大好处,这些基础是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
通过这次的学习我发现以后不管是哪一科我们尽量要把它拿过来使用,只有把知识应用到实际生活中才能说这知识是自己的啦。
在以后找工作中这些作品就会是我的学习凭证,是我的能力的体现,不难想象一个公司要的是一些实际的东西不需要太多的理论。
在程序设计中的问题和解决:在调试过程中我们也遇到过不少的错误,警告等,有些错误多达二十多个,改得头都是晕的,有时就想放弃了,但是在老师的帮助下,我慢慢的将程序调好,这都归功于老师的帮助。
有时我们在调试的时候无意间多打了一个空格或者是无意间删了一个字符,导致程序很多的错误,还有就是在建库的时候不能出错,一但出了一点错就得重新输入。
所以,希望以后程序设计者一定要注意这点,一定要小心,三思而后行。
还有就是程序本身存在很多不足,有待改进。
比如修改模块,一次只能改一项数据。
附录源程序清单(带注释)#include<>#include<>#include<>#include<>voidhomepage();;Sleep(100);}system("cls");homepage();break;}elseprintf("\n用户名或密码无效请重新输入:\n");continue;}if(k==0)printf("\n连续输入错误3次将退出程序\n");Sleep(2000);quit();}voidhomepage(){charn;printf("\n\n");printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"); printf("\t┃************************************************************┃\n"); printf("\t┃***┃\n");printf("\t┃*1.录入成绩*2.显示成绩*┃\n");printf("\t┃***┃\n");printf("\t┃************************************************************┃\n"); printf("\t┃***┃\n");printf("\t┃*3.删除记录*4.排序成绩*┃\n");printf("\t┃***┃\n");printf("\t┃************************************************************┃\n"); printf("\t┃**┃\n");printf("\t┃*0.退出程序*┃\n");printf("\t┃**┃\n");printf("\t┃************************************************************┃\n"); printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"); while((n!='1')&&(n!='2')&&(n!='3')&&(n!='4')&&(n!='0')){printf("\n请选择:");fflush(stdin);scanf("%c",&n);switch(n){case'1':input();break;case'2':if(count<10)display();else{printf("记录数已满\n");Sleep(2000);system("cls");homepage();}break;case'3':del();break;case'4':sort();case'0':quit();break;default:printf("\n选项错误\n");}}}voiddisplay(){inti;charc;system("cls");switch(sort_type){case0:printf("\t\t未排序:\n\n");break;case1:printf("\t\t按学号排序:\n\n");break;case2:printf("\t\t按c语言成绩排序:\n\n");break;case3:printf("\t\t按数学成绩排序:\n\n");break;case4:printf("\t\t按英语成绩排序:\n\n");break;case5:printf("\t\t按平均成绩排序:\n\n");break;}printf("\t学号\t姓名\tc语言\t数学\t英语\t平均成绩\n");for(i=0;i<count;i++){printf("\t%d\t%s\t%\t%\t%\t%\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].sc ore[2],stu[i].avg);}printf("\n\n按任意键返回\n");c=getch();system("cls");homepage();}voidinput(){inti,numcheck;charc;system("cls");do{printf("学号:\n");scanf("%d",&stu[count].num);numcheck=1;if(stu[count].num<0)printf("请输入正整数:\n");for(i=0;i<count;i++){if(stu[count].num==stu[i].num){numcheck=0;printf("学号重复,重新输入:\n");}}}while(!numcheck);printf("姓名:\n");fflush(stdin);gets(stu[count].name);for(i=0;i<3;i++){printf("第%d门课成绩:\n",i+1);scanf("%f",&stu[count].score[i]);}stu[count].avg=(stu[count].score[0]+stu[count].score[1]+stu[count].score[2])/3; printf("是否继续输入(y/n):\n");do{c=getchar();if(c=='y'||c=='Y'){count++;if(count<10)input();else{printf("记录数已满\n");Sleep(2000);system("cls");homepage();}}elseif(c=='n'||c=='N'){count++;system("cls");homepage();}else;}while((c!='y')&&(c!='n')&&(c!='Y')&&(c!='N'));}voiddel(){inti,j,del_num,match=0;charc;system("cls");printf("请输入要删除的学生学号:\n"); scanf("%d",&del_num);waiting();for(i=0;i<count;i++){if(stu[i].num==del_num){match=1;for(j=i;j<count;j++)/*{stu[j].num=stu[j+1].num;strcpy(stu[j].name,stu[j+1].name);stu[j].score[0]=stu[j+1].score[0];stu[j].score[1]=stu[j+1].score[1];stu[j].score[2]=stu[j+1].score[2];stu[j].avg=stu[j+1].avg;}*/stu[j]=stu[j+1];}}if(!match)printf("没有要找的学号.\n");printf("是否继续删除?(y/n)");fflush(stdin);do{c=getchar();if(c=='y'||c=='Y'){count--;del();}elseif(c=='n'||c=='N'){count--;system("cls");homepage();}else;}while((c!='y')&&(c!='n'));}voidsort()inti,j;intchoice;structstudenttemp;system("cls");printf("\t\t请选择排序功能:\n");printf("\t1.按学号排序\n");printf("\t2.按c语言成绩排序\n");printf("\t3.按数学成绩排序\n");printf("\t4.按英语成绩排序\n");printf("\t5.按平均成绩排序\n");do{scanf("%d",&choice);}while((choice!=1)&&(choice!=2)&&(choice!=3)&&(choice!=4)&&(choice!=5)); switch(choice){case1:{for(i=0;i<count-1;i++){for(j=0;j<count-i-1;j++){if(stu[j].num>stu[j+1].num){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}sort_type=1;break;}case2:{for(i=0;i<count-1;i++){for(j=0;j<count-i-1;j++){if(stu[j].score[0]<stu[j+1].score[0]){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}sort_type=2;break;}case3:{for(i=0;i<count-1;i++){for(j=0;j<count-i-1;j++){if(stu[j].score[1]<stu[j+1].score[1]) {temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}sort_type=3;break;}case4:{for(i=0;i<count-1;i++){for(j=0;j<count-i-1;j++){if(stu[j].score[2]<stu[j+1].score[2]) {temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}sort_type=4;break;}case5:{for(i=0;i<count-1;i++){for(j=0;j<count-i-1;j++)if(stu[j].avg<stu[j+1].avg){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}sort_type=5;break;}}system("cls");waiting();homepage();}voidwaiting(){inti;printf("\n\t请稍侯...........");for(i=0;i<25;i++){switch(i%4){case1:printf("\b\\");break;case2:printf("\b-");break;case3:printf("\b/");break;case0:printf("\b|");break;}Sleep(100);}system("cls");}voidquit(){system("cls");printf("\n\n");printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"); printf("\t┃************************************************************┃\n"); printf("\t┃**┃\n");printf("\t┃**^__^*谢谢使用班级成绩管理系统*^__^**┃\n");printf("\t┃**┃\n");printf("\t┃**^__^*开心每一天*^__^**┃\n");printf("\t┃**┃\n");printf("\t┃*湖南工程学院*┃\n");printf("\t┃*计算机与通信学院网络工程1001班*┃\n");printf("\t┃************************************************************┃\n"); printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n");}附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。