C学生成绩管理系统源代码
- 格式:docx
- 大小:197.65 KB
- 文档页数:10
//学生成绩管理系统//用户名:xdxy 密码:700619#include<stdio.h>#include<conio.h> /*清屏*/#include <stdlib.h> /*显示目录*/#include<string.h>#define MAX 1000void menu();void input(); /*输入数据函数*/ void sort(); /*排序数据函数*/ void display(); /*显示数据函数*/ void display1(); /*显示各科成绩函数*/ void insert(); /*插入数据函数*/ void del(); /*删除数据函数*/ void average(); /*平均值函数*/void find(); /*查找数据函数*/ void save(); /*保存数据函数*/ void read(); /*读出数据函数*/ void del_file(); /*删除文件函数*/void modify(); /*修改文件函数*/int now_no=0;struct student //定义学生信息{int no; // 学号char name[20]; //姓名char sex[4]; //性别float score1; //成绩1float score2; //成绩2float score3; //成绩3float sort; //排序成绩float ave; //平均分float sum; //总分};void main(){int h,flag1,flag2;char name[20]="xdxy",password[10]="700619";char person[20],password1[10];printf ("\t\t ******** 欢迎进入学生成绩管理系统!********\n\n");printf ("\t\t\t 用户登录\n\n");for(h=0;h!=5;){printf("\t\t\t\t 用户名:");gets(person);flag1=strcmp(person,name);printf("\t\t\t\t 密码:");gets(password1);flag2=strcmp(password,password1);if(flag1==0 && flag2==0){printf("\t\t\t\t 登陆成功!\n\n");menu();break;}else{printf ("\t\t\t 用户名或密码错误!\n\n");printf ("\t\t\t 请注意:您还剩%d次机会!\n\n",4-h);h++;}}if (h=5)printf ("对不起,您输入的用户名或密码有误,已被强制退出。
学生成绩管理系统c语言源代码介绍学生成绩管理系统是一个能够帮助学校、教师和学生管理和查询学生成绩的软件系统。
通过该系统,教师可以录入学生的考试成绩,并进行统计和分析;学生可以查询自己的成绩和排名;学校可以通过系统生成各种报表和分析数据。
本文将介绍一个使用C语言编写的学生成绩管理系统的源代码实现。
功能设计学生成绩管理系统的功能设计可以分为以下几个主要模块:登录模块1.输入用户名和密码;2.验证用户名和密码是否匹配;3.登录成功后进入主菜单。
学生管理模块1.输入学生信息(学号、姓名、性别、年龄等);2.添加学生信息到系统中;3.删除指定学号的学生信息;4.修改指定学号的学生信息;5.查询指定学号的学生信息;6.显示所有学生的信息。
课程管理模块1.输入课程信息(课程号、课程名称、授课教师等);2.添加课程信息到系统中;3.删除指定课程号的课程信息;4.修改指定课程号的课程信息;5.查询指定课程号的课程信息;6.显示所有课程的信息。
成绩管理模块1.输入学号和课程号;2.输入成绩信息(平时成绩、期末成绩、总评成绩等);3.添加成绩信息到系统中;4.修改指定学号和课程号的成绩信息;5.查询指定学号和课程号的成绩信息;6.统计指定课程的平均成绩、最高成绩和最低成绩;7.统计指定学生的平均成绩、最高成绩和最低成绩。
数据导入与导出模块1.从文件导入学生信息和成绩信息;2.将学生信息和成绩信息导出到文件。
源代码实现以下是一个使用C语言实现的学生成绩管理系统的源代码实例:#include <stdio.h>#include <stdlib.h>#include <string.h>// 定义学生结构体typedef struct {int id;char name[100];char gender[10];int age;} Student;// 定义课程结构体typedef struct {int id;char name[100];char teacher[100];} Course;// 定义成绩结构体typedef struct {int studentId;int courseId;float ordinaryGrade;float finalGrade;float totalGrade;} Grade;// 学生管理函数void addStudent(Student *students, int *studentCount) {// 添加学生信息到系统}void deleteStudent(Student *students, int *studentCount, int studentId) { // 删除指定学号的学生信息}void modifyStudent(Student *students, int studentId) {// 修改指定学号的学生信息}void queryStudent(Student *students, int studentId) {// 查询指定学号的学生信息}void displayAllStudents(Student *students, int studentCount) { // 显示所有学生的信息}// 课程管理函数void addCourse(Course *courses, int *courseCount) {// 添加课程信息到系统}void deleteCourse(Course *courses, int *courseCount, int courseId) { // 删除指定课程号的课程信息}void modifyCourse(Course *courses, int courseId) {// 修改指定课程号的课程信息}void queryCourse(Course *courses, int courseId) {// 查询指定课程号的课程信息}void displayAllCourses(Course *courses, int courseCount) {// 显示所有课程的信息}// 成绩管理函数void addGrade(Grade *grades, int *gradeCount) {// 添加成绩信息到系统}void modifyGrade(Grade *grades, int gradeCount, int studentId, int courseId) { // 修改指定学号和课程号的成绩信息}void queryGrade(Grade *grades, int gradeCount, int studentId, int courseId) { // 查询指定学号和课程号的成绩信息}void calculateCourseStatistics(Grade *grades, int gradeCount, int courseId) { // 统计指定课程的平均成绩、最高成绩和最低成绩}void calculateStudentStatistics(Grade *grades, int gradeCount, int studentId) {// 统计指定学生的平均成绩、最高成绩和最低成绩}// 数据导入与导出函数void importData() {// 从文件导入学生信息和成绩信息}void exportData() {// 将学生信息和成绩信息导出到文件}int main() {// 主程序菜单return 0;}总结学生成绩管理系统是一个非常有用的工具,可以帮助学校、教师和学生高效地管理和查询学生成绩。
让结局不留遗憾,让过程更加完美。
#include<stdio.h>#include<string.h>#include<stdlib.h>struct students{char Num[10]; /*字符型学生学号*/char Name[20]; /*字符型学生姓名*/char Sex[3]; /*字符型学生性别*/double English; /*双精度实型英语成绩*/double Java; /*双精度实型Java成绩*/double Sjjg; /*双精度实数据结构*/double Szdl; /*双精度实型数字电路*/double Jsj; /*计算机组成原理*/struct students *next; /*用与构建连表指向下一结点*/};FILE *fp; /*定义全局变量fp*/void Revisemenu();/*修改菜单*/void Sortmenu();/*排序菜单*/void menu();/*主菜单*/void secret();/*安全验证*/struct students * Input();/*新建学生信息*/void fprint(struct students *head);/*将信息导入文件可追加*/void fprint_(struct students *head);/*将信息导入文件并覆盖*/void Browse(struct students *head);/*浏览全部学生信息*/struct students * create(struct students *headint *n);/*从tushu_list中读取数据构建链表*/void FindofNum(struct students *head);/*按学号查询学生信息*/void FindofNname(struct students *head);/*按姓名查询学生信息*/void SortEnglish(struct students * head);/*按英语成绩排序*/void SortJava(struct students * head);/*按Java成绩排序*/void SortSjjg(struct students * head);/*按数据结构成绩排序*/void SortSzdl(struct students * head);/*按数字逻辑电路成绩排序*/ void SortJsj(struct students * head);/*按计算机组成原理成绩排序*/ struct students * Delete(struct students * headchar m[15]);/*按学号删除学生成绩信息*/struct students * Revise();/*修改学生信息(按编号修改)*//*主菜单*/void menu(){printf("\n\n");printf("***************************************************\n");printf(" 学生成绩管理系统 \n");printf("---------------------------------------------------\n");printf(" 1-添加新同学 2-浏览学生信息 \n");printf(" 3-按学号查询 4-按姓名查询 \n");printf(" 5-按成绩排序 6-修改学生信息 \n");printf(" 7-删除学生信息 0-退出系统 \n");printf("---------------------------------------------------\n");printf("___________________________________________________\n"); }/*排序菜单*/void Sortmenu(){printf("\n\n");printf("***************************************************\n");printf(" 按成绩排序 \n");printf(" 1-大学英语 2-JAVA编程 \n");printf(" 3-数据结构 4-数字逻辑电路 \n");printf(" 5-计算机组成原理 0-返回上级菜单 \n");printf("***************************************************\n"); }/*修改菜单*/void Revisemenu(){printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf(" 1--修改学生姓名 2--修改学生学号 \n"); printf(" 3--修改学生性别 4--修改英语成绩 \n"); printf(" 5--修改JAVA成绩 6--修改数据结构 \n"); printf(" 7--修改数字电路 8--修改计算计 \n");printf(" 0--返回上级菜单 \n"); printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); }/*安全验证*/void secret(){char a[20];printf("**欢迎来到学生信息管理系统进入系统前请先进行密码验证---");printf(" ");do{gets(a); /*输入密码*/system("cls"); /*调用库函数清屏*/printf("对不起!您输入的密码有误请重新输入---");}while(strcmp(a"0605")!=0); /*单一密码"0605"*/system("cls");}/*新建学生信息*/struct students * Input(){struct students *p1*p2*head; /*建立辅助结点及头结点*/char Name;int n=0x;printf("\n请按对应项输入学生信息以#结束:\n");printf("姓名学号性别英语 Java 数据结构数字电路计算机组成原理\n");p1=(struct students *)malloc(sizeof(struct students));head=p2=p1;do{ /*使用do while语句输入学生信息*/scanf("%s"&p1->Name);if(strcmp(p1->Name"#")==0)break; /*判断结束符*/elsescanf("%s%s%lf%lf%lf%lf%lf"p1->Nump1->Sex&p1->English&p1->Java&p1->Sjjg&p1->Szdl&p1->Jsj);Name='#';p1=(struct students *)malloc(sizeof(struct students));p2->next=p1;p2=p1;n++;}while(1);p1->next=NULL;printf("学生信息输入结束!\n");getchar();printf("是否保存学生信息?(1.是/2.否):");scanf("%d"&x);if(x==1)fprint(head); /*调用函数保存至文件*/ elseprintf("\n文件没有被保存!\n");return head; /*返回头指针*/}/*将信息导入文件可追加*/void fprint(struct students *head){struct students *p1;if((fp=fopen("students_list.txt""a"))==NULL){printf("File open error!\n");exit(0);}for(p1=head;p1->next!=NULL;p1=p1->next) /*遍历*/fprintf(fp"%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p1->Namep1->Nump1->Sexp1->Englishp1->Javap1->Sjjgp1->Szdlp1->Jsj);/*将学生信息写入文件*/fclose(fp); /*关闭文件*/printf("\n学生信息已成功保存到文件 students_list.txt 中!\n");getchar();}/*将信息导入文件并覆盖*/void fprint_(struct students *head){struct students *p1;if((fp=fopen("students_list.txt""w"))==NULL)printf("File open error!\n");exit(0);}for(p1=head;p1!=NULL;p1=p1->next) /*遍历*/fprintf(fp"%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p1->Namep1->Nump1->Sexp1->Englishp1->Javap1->Sjjgp1->Szdlp1->Jsj);/*将学生信息写入文件*/fclose(fp); /*关闭文件*/;getchar();}/*浏览全部学生信息*/void Browse(struct students *head){char Num[10]; /*字符型学生学号*/char Name[20]; /*字符型学生姓名*/char Sex[3]; /*字符型学生性别*/double English; /*双精度实型英语成绩*/double Java; /*双精度实型Java成绩*/double Sjjg; /*双精度实数据结构*/double Szdl; /*双精度实型数字电路*/double Jsj; /*计算机组成原理*/if((fp=fopen("students_list.txt""a+"))==NULL){printf("File open error!\n");exit(0);}printf("-------------------------------------------------------------\n");printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(!feof(fp))/*读取并输出*/{fscanf(fp"%s%s%s%lf%lf%lf%lf%lf"NameNum&English&Java&Sjjg&Szdl&Jsj);printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"NameNumSexEnglishJavaSjjgSzdlJsj);};if(fclose(fp)){printf("Can not close the file!\n");exit(0);}}/*从tushu_list中读取数据构建链表*/struct students * create(struct students * headint *n){FILE *fp;struct students*p*p1*p2;if((fp=fopen("students_list.txt""a+"))==NULL){printf("File open error!\n");exit(0);}while(!feof(fp)){(*n)++;p=(struct students *)malloc(sizeof(struct students));fscanf(fp"%s%s%s%lf%lf%lf%lf%lf"p->Namep->Nump->Sex&p->English&p->Java&p->Sjjg&p->Szdl&p->Jsj);if(head==NULL){head=p;p1=p;}else{p1->next=p;p2=p1;p1=p;}}p2->next=NULL;free(p);(*n)--;fclose(fp);return head;}/*按姓名查询学生信息*/void FindofName(struct students *head) {int i=0n=0;char b[20];struct students *p;head=create(head&n);p=head;printf("\n请输入要查询的学生姓名:");scanf("%s"b);while(p!=NULL){if(strcmp(p->Nameb)==0){printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);i++;}p=p->next;}if(i==0)printf("\n对不起!没有找到名为"%s"的学生信息!\n"b);}/*按学号查询学生信息*/void FindofNum(struct students *head){int i=0n;char b[20];struct students *p;head=create(head&n);p=head;printf("\n请输入要查询的学生学号:");scanf("%s"b);while(p!=NULL){if(strcmp(p->Numb)==0){printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);i++;}p=p->next;}if(i==0)printf("\n对不起!没有找到学号为"%s"学生信息!\n"b);}/*按英语成绩排序*/void SortEnglish(struct students * head){struct students *p*tail; /*定义中间变量*/int n;double English;p=(struct students *)malloc(sizeof(struct students));head=create(head&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;English=p->English; /*将链表中第一个成绩赋给English*/while(p!=NULL){if((p->English)>English)/*比较*/English=p->English;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->English==English){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->English==English){ /*分数相同时无需比较*/ printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/ printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);/*浏览排序后的信息*/printf("按英语成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按JAVA成绩排序*/void SortJava(struct students * head){struct students *p*tail; /*定义中间变量*/int n;double Java;p=(struct students *)malloc(sizeof(struct students));head=create(head&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Java=p->Java; /*将链表中第一个成绩赋给Java*/while(p!=NULL){if((p->Java)>Java)/*比较*/Java=p->Java;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Java==Java){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Java==Java){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);/*浏览排序后的信息*/printf("按Java成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按数据结构排序*/void SortSjjg(struct students * head){struct students *p*tail; /*定义中间变量*/int n;double Sjjg;p=(struct students *)malloc(sizeof(struct students));head=create(head&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Sjjg=p->Sjjg; /*将链表中第一个成绩赋给Sjjg*/while(p!=NULL){if((p->Sjjg)>Sjjg)/*比较*/Sjjg=p->Sjjg;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Sjjg==Sjjg){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Sjjg==Sjjg){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);/*浏览排序后的信息*/printf("按数据结构成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按数字电路排序*/void SortSzdl(struct students * head){struct students *p*tail; /*定义中间变量*/int n;double Szdl;p=(struct students *)malloc(sizeof(struct students));head=create(head&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Szdl=p->Szdl; /*将链表中第一个成绩赋给Szdl*/while(p!=NULL){if((p->Szdl)>Szdl)/*比较*/Szdl=p->Szdl;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Szdl==Szdl){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Szdl==Szdl){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);/*浏览排序后的信息*/printf("按数字电路成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按计算机组成原理排序*/void SortJsj(struct students * head){struct students *p*tail; /*定义中间变量*/int n;double Jsj;p=(struct students *)malloc(sizeof(struct students));head=create(head&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Jsj=p->Jsj; /*将链表中第一个成绩赋给Jsj*/while(p!=NULL){if((p->Jsj)>Jsj)/*比较*/Jsj=p->Jsj;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Jsj==Jsj){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Jsj==Jsj){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);/*浏览排序后的信息*/printf("按计算机组成原理成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按学号删除学生成绩信息*/struct students * Delete(struct students * headchar m[15]){struct students *ptr1*ptr2;int n;printf("\n所有学生信息如下:\n");Browse(head);printf("\n请输入想要删除的学生学号:");scanf("%s"m);head=create(head&n);if(head==NULL){printf("无学生信息!\n");return head;}if((strcmp(head->Numm)==0)&&head!=NULL){ptr2=head;head=head->next;free(ptr2);}if(strcmp(head->Numm)!=0){ptr1=head;ptr2=head->next;while(ptr2!=NULL){if(strcmp(ptr2->Numm)==0){ptr1->next=ptr2->next;free(ptr2);}elseptr1=ptr2;ptr2=ptr1->next;}}fprint_(head);printf("\n学号为' %s '学生信息已被删除并保存至文件!\n"m);return head;}/*修改学生信息(按编号修改)*/struct students * Revise(){int n=0t;char num[10];char Num[10]; /*字符型学生学号*/char Name[20]; /*字符型学生姓名*/char Sex[3]; /*字符型学生性别*/double English; /*双精度实型英语成绩*/double Java; /*双精度实型Java成绩*/double Sjjg; /*双精度实数据结构*/double Szdl; /*双精度实型数字电路*/double Jsj; /*计算机组成原理*/struct students *head=NULL;struct students *p;printf("\n所有学生信息如下:\n");Browse(head);head=create(head&n);printf("\n输入需要修改的学生的学号:");scanf("%s"num);p=head;while(head!=NULL){if(strcmp(p->Numnum)==0){system("cls");Revisemenu();printf("编号为%s的学生信息如下:\n"num);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n"p->Namep->Nump->Sexp->Englishp->Javap->Sjjgp->Szdlp->Jsj);while(1){printf("请选择需要修改的信息:");scanf("%d"&t);switch(t){case 1:printf("请输入新姓名:");scanf("%s"Name);strcpy(p->NameName);break;case 2:printf("请输入新学号:");scanf("%s"&Num);strcpy(p->NumNum);break;case 3:printf("请输入新性别:");scanf("%s"Sex);strcpy(p->SexSex);break;case 4:printf("请输入新英语成绩:");scanf("%lf"&English);p->English=English;break;case 5:printf("请输入新Java成绩:");scanf("%lf"&Java);p->Java=Java;break;case 6:printf("请输入新数据结构成绩:");scanf("%lf"&Sjjg);p->Sjjg=Sjjg;break;case 7:printf("请输入新数字电路成绩:");scanf("%lf"&Szdl);p->Szdl=Szdl;break;case 8:printf("请输入新计算机组成原理成绩:");scanf("%lf"&Jsj);p->Jsj=Jsj;break;case 0:system("cls");menu();goto lab;break;default:printf("对不起输入有误!");break;}}}elsep=p->next;}lab:fprint_(head);printf("修改完成并储存至文件!\n");return head;}/*主函数*/void main(){int choicech;char m[15];struct students *head=NULL;secret();menu();while(1){printf("请输入选项:");scanf("%d"&choice);switch(choice){case 1:Input();break;case 2:system("cls");menu();Browse(head);break;case 3:system("cls");menu();FindofNum(head);break;case 4:system("cls");menu();FindofName(head);break;case 5:system("cls");Sortmenu();do{printf("请输入您的选择:");scanf("%d"&ch);switch(ch){case 1:system("cls");Sortmenu();SortEnglish(head);break;case 2:system("cls");Sortmenu();SortJava(head);break;case 3:system("cls");Sortmenu();SortSjjg(head);break;case 4:system("cls");Sortmenu();SortSzdl(head);break;case 5:system("cls");Sortmenu();SortJsj(head);break;}}while(ch!=0);system("cls");menu();break;case 6:system("cls");menu();Revise();break;case 7:system("cls");menu();head=Delete(headm);break;case 0:system("cls");printf("\t\t欢迎下次再来!");exit(0);default:printf("对不起输入有误!");break;}}return ;}。
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语⾔学⽣成绩管理系统,供⼤家参考,具体内容如下1234567 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56#include<stdio.h>#include<string.h>#include<math.h>struct student{int num;char name[20];float pingshi;float shiyan;float kaoshi;double zongping;}stu[4];void main(){void a();void b();void c();void d();void e();int n;while(n!=6){ printf("\t⼤学计算机基础成绩管理系统\n");printf("1:输⼊⼀个班学⽣⼤学计算机基础成绩记录\n");printf("2:显⽰所有成绩记录\n");printf("3:计算并输出平均成绩,均⽅差\n");printf("4:输出成绩与排名\n");printf("5:结果存⼊⽂件chengji.txt\n");printf("6:退出系统\n");printf("输⼊选项代码:");scanf("%d",&n);switch(n){case1:a();break;case2:b();break;case3:c();break;case4:d();break;case5:e();break;case6:printf("\n*******************谢谢使⽤!*******************\n");break; break;}}getchar();}/* ⼦函数*/void a() /* 输⼊⼀个班的学⽣记录*/{int i;for(i=0;i<4;i++){printf("请输⼊学号姓名平时成绩实验成绩考试成绩:");57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].pingshi,&stu[i].shiyan,&stu[i].kaoshi);}for(i=0;i<4;i++)stu[i].zongping=0.1*stu[i].pingshi+0.3*stu[i].shiyan+0.6*stu[i].kaoshi;}void b()/* 显⽰所有记录*/{int i;printf("学号姓名平时成绩实验成绩考试成绩总评成绩\n");for(i=0;i<4;i++)printf("%d%14.2s%14.2f%14.2f%14.2f%14.2f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaoshi,stu[i].zongping); }void c()/* 求出全班平均成绩,显⽰均⽅差*/{int a[4]={0,1,2,3};int i,j;double total=0,pfc=0,bzc=0;double ave;for(i=0;i<4;i++){total=total+stu[i].zongping;}ave=total/4.0;printf("总评平均成绩是%f\n",ave);for(i=0;i<4;i++){pfc=pow((stu[i].zongping-ave),2)/4;}bzc=sqrt(pfc);printf("\n平⽅差是%f\n",pfc);printf("\n标准差是%f\n",bzc);}void d(){int a[4]={0,1,2,3};int i,j,temp;for(j=0;j<3;j++){for(i=0;i<3-j;i++)if(stu[a[i]].zongping>stu[a[i+1]].zongping){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}}printf("顺序为:\n");printf("学号姓名总评成绩\n");for(i=0;i<4;i++)printf("%d%10.2s%15.2f\n",stu[a[i]].num,stu[a[i]].name,stu[a[i]].zongping);printf("\n");}void e(){int i;FILE*fp;fp=fopen("chengji.txt","w");119120121122123124125126127128129130131132133fprintf(fp,"学号 姓名 平时成绩 实验成绩 考试成绩 总评成绩\n");for(i=0;i<4;i++)fprintf(fp,"%d%14.2s%14.2f%14.2f%14.2f%14.2f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaoshi,stu[i].zongping); printf("\n\n*******************恭喜,保存完成!*******************\n\n");}简单记录。
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学生成绩管理系统源代码SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN##i n c l u d e<>#include<>#include<>#include<>#include<>class Person{ public:char name[8];};class student:public Person lass_0<<" "<<stud[i].num<<""<<stud[i].name<<" "<<stud[i].c_program<<" "<<stud[i].english<<""<<stud[i].math<<" "<<stud[i].average<<endl;}();}int Read(student stud[])lass_0>>stud[i].num>>stud[i].name>>stud[i].c_program>>stud[i].english>>stud[ i].math >>stud[i].average;}();return count ;}void Input(student stud[]) lass_0;loop:cout<<"学号:";cin>>stud[i].num;int c=0;while(c<i){c++;if(stud[i].num==stud[i-c].num){cout<<"你输入的学号已经存在!请重新输入!"<<endl;goto loop;}}cout<<"姓名:";cin>>stud[i].name;do{flag=0;cout<<"C++成绩:";cin>>stud[i].c_program;if(stud[i].c_program>100 ||stud[i].c_program<1)cout<<"请输入1-100之间的数字!\n";elseflag=1;}while(flag==0);do{flag=0;cout<<"英语成绩:";cin>>stud[i].english;if(stud[i].english>100 ||stud[i].english<1)cout<<"请输入1-100之间的数字!\n";elseflag=1;}while(flag==0);do{flag=0;cout<<"数学成绩:";cin>>stud[i].math;if(stud[i].math>100 ||stud[i].math<1)cout<<"请输入1-100之间的数字!\n";elseflag=1;}while(flag==0);stud[i].average=(stud[i].c_program+stud[i].english+stud[i].math)/3;cout<<"平均分:"<<stud[i].average<<endl;cout<<"继续录入学生成绩(y/n)";cin>>sign; /*输入判断*/i++;}Write(stud,i);}void Statistic(student stud[])lass_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].average<<endl;system("pause");}void Lookup(student stud[]) 学号查找 2.按姓名查找"<<endl;cin>>p;if(p==1){system("cls"); /*运行前清屏*/int n=Read(stud);int s;int i=0;cout<<endl<<">>>>>>>> 查找学生成绩 <<<<<<<<\n"<<endl;cout<<"请输入查找学生的学号:"<<endl;cin>>s;while((stud[i].num-s)!=0&&i<n) i++; /*查找判断*/if(i==n){cout<<"没有该学生的信息!"<<endl; /*输入失败信息*/ }else{cout<<"---------------------------"<<endl;cout<<"班级:"<<stud[i].class_0<<endl; /*输出该学生信息*/cout<<"学号:"<<stud[i].num<<endl;cout<<"姓名:"<<stud[i].name<<endl;cout<<"C++:"<<stud[i].c_program<<endl;cout<<"英语:"<<stud[i].english<<endl;cout<<"数学:"<<stud[i].math<<endl;cout<<"平均分:"<<stud[i].average<<endl;}}if(p==2){system("cls"); /*运行前清屏*/int m=Read(stud);char t;int i=0;cout<<endl<<">>>>>>>> 查找学生成绩 <<<<<<<<\n"<<endl;cout<<"请输入查找学生的姓名:"<<endl;cin>>t;while(strcmp(stud[i].name-t,stud[i].name)==0&&i<m) i++; /*查找判断*/ {cout<<"---------------------------"<<endl;cout<<"班级:"<<stud[i].class_0<<endl; /*输出该学生信息*/cout<<"学号:"<<stud[i].num<<endl;cout<<"姓名:"<<stud[i].name<<endl;cout<<"C++:"<<stud[i].c_program<<endl;cout<<"英语:"<<stud[i].english<<endl;cout<<"数学:"<<stud[i].math<<endl;cout<<"平均分:"<<stud[i].average<<endl;}}}void Modify(student stud[]) um-s)!=0&&i<n) i++; /*查找判断*/ if(i==n){cout<<"没有该学生的成绩!"<<endl; /*输入失败信息*/}else{cout<<"----------该学生的信息----------\n"<<endl; /*格式头*/ cout<<"班级"<<"\t"<<"学号 "<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<endl;cout<<"---------------------------------"<<endl;cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i]. c_program<<"\t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].average< <endl;cout<<"---------------------------------"<<endl;cout<<"请输入要修改的课程号"<<endl;cout<<"语言 2.英语 3.数学"<<endl;cin>>a;cout<<"重新输入分数"<<endl;cin>>q;if(a==1) stud[i].c_program=q;if(a==2)stud[i].english=q;if(a==3)stud[i].math=q;stud[i].average=(stud[i].c_program+stud[i].english+stud[i].math)/3; cout<<"----------该学生的信息----------\n"<<endl; /*格式头*/ cout<<"班级"<<"\t"<<"学号 "<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<endl;cout<<"---------------------------------"<<endl;cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<st ud[i].c_program<<"\t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].av erage<<endl;char c;cout<<"是否保存数据(y/n)"<<endl;cin>>c;if(c!='n'&&c!='N')Write(stud,n);}}void Insert(student stud[]) lass_0;cout<<"学号:";cin>>stud[n].num;cout<<"姓名:";cin>>stud[n].name;cout<<"C++成绩:";cin>>stud[n].c_program;cout<<"英语成绩:";cin>>stud[n].english;cout<<"数学成绩:";cin>>stud[n].math;stud[n].average=(stud[n].c_program+stud[n].english+ stud[n].math)/3;cout<<"平均分"<<stud[n].average;n++;cout<<"插入成功!"<<endl; /*返回成功信息*/cout<<"是否继续输入(y/n)"<<endl;cin>>s;}Write(stud,n);}void Manage(student stud[]) verage<stud[j+1].average){strcpy(t,stud[j+1].class_0);strcpy(stud[j+1].class_0,stud[j].class_0);strcpy(stud[j].class_0,t);k=stud[j+1].num;stud[j+1].num=stud[j].num;stud[j].num=k;strcpy(t,stud[j+1].name);strcpy(stud[j+1].name,stud[j].name);strcpy(stud[j].name,t);s=stud[j+1].c_program;stud[j+1].c_program=stud[j].c_program;stud[j].c_program=s;s=stud[j+1].english;stud[j+1].english=stud[j].english;stud[j].english=s;s=stud[j+1].math;stud[j+1].math=stud[j].math;s=stud[j+1].average;stud[j+1].average=stud[j].average;stud[j].average=s;}cout<<"-------------------------------------"<<endl; /*格式头*/cout<<"班级"<<"\t "<<"学号"<<"\t "<<"姓名"<<"\t"<<"C++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<"\t"<<"名次"<<endl;for(i=0;i<n;i++) /*循环输入*/{stud[i].order=i+1;cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<st ud[i].c_program<<"\t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].av erage<<"\t "<<stud[i].order<<endl;}Write(stud,n);}void Output(student stud[])lass_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].c_program<<"\t "<<stud[i].english<<"\t " <<stud[i].math<<"\t"<<stud[i].average<<endl;}cout<<"-------------------------------------------------------------------------"<<endl;}}int menu() /*菜单函数*/{char c;do{system("cls"); /*运行前清屏*/cout<<"*******************************************************\n"<<endl;cout<<" -----------------欢迎使用学生成绩管理系统-------------\n"<<endl;cout<<" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl; cout<<" * 【1】输入学生成绩 * "<<endl;cout<<" * 【2】显示学生成绩 *"<<endl;cout<<" * 【3】查找学生成绩 *"<<endl;cout<<" * 【4】修改学生成绩 *"<<endl;cout<<" * 【5】插入学生成绩 *"<<endl;cout<<" * 【6】排列管理成绩 *"<<endl;cout<<" * 【7】显示班级学生成绩 * "<<endl;cout<<" * 【0】退出本系统 * "<<endl;cout<<" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "<<endl;cout<<"请你选择(0-7):"<<endl;c=getchar(); /*读入选择*/}while(c<'0'||c>'8');return(c-'0'); /*返回选择*/}void main() /*主函数*/{for(;;){switch(menu()) /*选择判断*/{case 1:Input(stud);/*输入学生成绩*/break;case 2:Statistic(stud); /*输出学生统计数据*/break;case 3:Lookup(stud); /*查找学生成绩*/cout<<"\t\t\t";system("pause");break;case 4:Modify(stud); /*修改学生成绩*/cout<<"\t\t\t";system("pause");break;case 5:Insert(stud);/*增加学生成绩*/cout<<"\t\t\t";system("pause");break;case 6:Manage(stud); /*按平均分对成绩记录项进行降序排序*/cout<<"\t\t\t";system("pause");break;case 7:Output(stud); /*显示全部学生成绩*/cout<<"\t\t\t";system("pause");break;case 0:cout<<endl<<" ===========================感谢您使用学生成绩管理系统==========================\n"<<endl; /*结束程序*/cout<<"\t\t\t";system("pause");exit(0);}}}。
C学生成绩管理系统源代码集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN##i n c l u d e<> #include<>#include<>#include<>#include<>class Person{ public:char name[8];};class student:public Person lass_0<<" "<<stud[i].num<<" "<<stud[i].name<<""<<stud[i].c_program<<" "<<stud[i].english<<" "<<stud[i].math<<" "<<stud[i].average<<endl;}();}int Read(student stud[])lass_0>>stud[i].num>>stud[i].name>>stud[i].c_program>>stud[i].english>>stud[i].math >>stu d[i].average;}();return count ;}void Input(student stud[]) lass_0;loop:cout<<"学号:";cin>>stud[i].num;int c=0;while(c<i){c++;if(stud[i].num==stud[i-c].num){cout<<"你输入的学号已经存在!请重新输入!"<<endl;goto loop;}}cout<<"姓名:";cin>>stud[i].name;do{flag=0;cout<<"C++成绩:";cin>>stud[i].c_program;if(stud[i].c_program>100 ||stud[i].c_program<1)cout<<"请输入1-100之间的数字!\n";elseflag=1;}while(flag==0);do{flag=0;cout<<"英语成绩:";cin>>stud[i].english;if(stud[i].english>100 ||stud[i].english<1)cout<<"请输入1-100之间的数字!\n";elseflag=1;}while(flag==0);do{flag=0;cout<<"数学成绩:";cin>>stud[i].math;if(stud[i].math>100 ||stud[i].math<1)cout<<"请输入1-100之间的数字!\n";elseflag=1;}while(flag==0);stud[i].average=(stud[i].c_program+stud[i].english+stud[i].math)/3;cout<<"平均分:"<<stud[i].average<<endl;cout<<"继续录入学生成绩(y/n)";cin>>sign; /*输入判断*/i++;}Write(stud,i);}void Statistic(student stud[]) lass_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t "<<stud[i].average<<endl;system("pause");}void Lookup(student stud[]) 学号查找 2.按姓名查找"<<endl;cin>>p;if(p==1){system("cls"); /*运行前清屏*/int n=Read(stud);int s;int i=0;cout<<endl<<">>>>>>>> 查找学生成绩 <<<<<<<<\n"<<endl;cout<<"请输入查找学生的学号:"<<endl;cin>>s;while((stud[i].num-s)!=0&&i<n) i++; /*查找判断*/if(i==n){cout<<"没有该学生的信息!"<<endl; /*输入失败信息*/ }else{cout<<"---------------------------"<<endl;cout<<"班级:"<<stud[i].class_0<<endl; /*输出该学生信息*/cout<<"学号:"<<stud[i].num<<endl;cout<<"姓名:"<<stud[i].name<<endl;cout<<"C++:"<<stud[i].c_program<<endl;cout<<"英语:"<<stud[i].english<<endl;cout<<"数学:"<<stud[i].math<<endl;cout<<"平均分:"<<stud[i].average<<endl;}}if(p==2){system("cls"); /*运行前清屏*/int m=Read(stud);char t;int i=0;cout<<endl<<">>>>>>>> 查找学生成绩 <<<<<<<<\n"<<endl;cout<<"请输入查找学生的姓名:"<<endl;cin>>t;while(strcmp(stud[i].name-t,stud[i].name)==0&&i<m) i++; /*查找判断*/{cout<<"---------------------------"<<endl;cout<<"班级:"<<stud[i].class_0<<endl; /*输出该学生信息*/cout<<"学号:"<<stud[i].num<<endl;cout<<"姓名:"<<stud[i].name<<endl;cout<<"C++:"<<stud[i].c_program<<endl;cout<<"英语:"<<stud[i].english<<endl;cout<<"数学:"<<stud[i].math<<endl;cout<<"平均分:"<<stud[i].average<<endl;}}}void Modify(student stud[]) um-s)!=0&&i<n) i++; /*查找判断*/if(i==n){cout<<"没有该学生的成绩!"<<endl; /*输入失败信息*/}else{cout<<"----------该学生的信息----------\n"<<endl; /*格式头*/cout<<"班级"<<"\t"<<"学号 "<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<endl;cout<<"---------------------------------"<<endl;cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].c_program<<"\ t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].average<<endl;cout<<"---------------------------------"<<endl;cout<<"请输入要修改的课程号"<<endl;cout<<"语言 2.英语 3.数学"<<endl;cin>>a;cout<<"重新输入分数"<<endl;cin>>q;if(a==1) stud[i].c_program=q;if(a==2)stud[i].english=q;if(a==3)stud[i].math=q;stud[i].average=(stud[i].c_program+stud[i].english+stud[i].math)/3;cout<<"----------该学生的信息----------\n"<<endl; /*格式头*/cout<<"班级"<<"\t"<<"学号 "<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<endl;cout<<"---------------------------------"<<endl;cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].c_progr am<<"\t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].average<<endl;char c;cout<<"是否保存数据(y/n)"<<endl;cin>>c;if(c!='n'&&c!='N')Write(stud,n);}}void Insert(student stud[]) lass_0;cout<<"学号:";cin>>stud[n].num;cout<<"姓名:";cin>>stud[n].name;cout<<"C++成绩:";cin>>stud[n].c_program;cout<<"英语成绩:";cin>>stud[n].english;cout<<"数学成绩:";cin>>stud[n].math;stud[n].average=(stud[n].c_program+stud[n].english+ stud[n].math)/3;cout<<"平均分"<<stud[n].average;n++;cout<<"插入成功!"<<endl; /*返回成功信息*/cout<<"是否继续输入(y/n)"<<endl;cin>>s;}Write(stud,n);}void Manage(student stud[]) verage<stud[j+1].average){strcpy(t,stud[j+1].class_0);strcpy(stud[j+1].class_0,stud[j].class_0);strcpy(stud[j].class_0,t);k=stud[j+1].num;stud[j+1].num=stud[j].num;stud[j].num=k;strcpy(t,stud[j+1].name);strcpy(stud[j+1].name,stud[j].name);strcpy(stud[j].name,t);s=stud[j+1].c_program;stud[j+1].c_program=stud[j].c_program;stud[j].c_program=s;s=stud[j+1].english;stud[j+1].english=stud[j].english;stud[j].english=s;s=stud[j+1].math;stud[j+1].math=stud[j].math;s=stud[j+1].average;stud[j+1].average=stud[j].average;stud[j].average=s;}cout<<"-------------------------------------"<<endl; /*格式头*/cout<<"班级"<<"\t "<<"学号"<<"\t "<<"姓名"<<"\t"<<"C++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<"\t"<<"名次"<<endl;for(i=0;i<n;i++) /*循环输入*/{stud[i].order=i+1;cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].c_progr am<<"\t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].average<<"\t"<<stud[i].order<<endl;}Write(stud,n);}void Output(student stud[])lass_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].c_program<<"\t"<<stud[i].english<<"\t " <<stud[i].math<<"\t"<<stud[i].average<<endl;}cout<<"-------------------------------------------------------------------------"<<endl;}}int menu() /*菜单函数*/{char c;do{system("cls"); /*运行前清屏*/cout<<"*******************************************************\n"<<endl; cout<<" -----------------欢迎使用学生成绩管理系统-------------\n"<<endl;cout<<" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;cout<<" * 【1】输入学生成绩 * "<<endl;cout<<" * 【2】显示学生成绩 * "<<endl;cout<<" * 【3】查找学生成绩 * "<<endl;cout<<" * 【4】修改学生成绩 * "<<endl;cout<<" * 【5】插入学生成绩 * "<<endl;cout<<" * 【6】排列管理成绩 * "<<endl;cout<<" * 【7】显示班级学生成绩 * "<<endl;cout<<" * 【0】退出本系统 * " <<endl;cout<<" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "<<endl;cout<<"请你选择(0-7):"<<endl;c=getchar(); /*读入选择*/}while(c<'0'||c>'8');return(c-'0'); /*返回选择*/}void main() /*主函数*/{for(;;){switch(menu()) /*选择判断*/{case 1:Input(stud);/*输入学生成绩*/break;case 2:Statistic(stud); /*输出学生统计数据*/break;case 3:Lookup(stud); /*查找学生成绩*/cout<<"\t\t\t";system("pause");break;case 4:Modify(stud); /*修改学生成绩*/cout<<"\t\t\t";system("pause");break;case 5:Insert(stud);/*增加学生成绩*/cout<<"\t\t\t";system("pause");break;case 6:Manage(stud); /*按平均分对成绩记录项进行降序排序*/cout<<"\t\t\t";system("pause");break;case 7:Output(stud); /*显示全部学生成绩*/cout<<"\t\t\t";system("pause");break;case 0:cout<<endl<<" ===========================感谢您使用学生成绩管理系统==========================\n"<<endl; /*结束程序*/cout<<"\t\t\t";system("pause");exit(0);}}}。