C++学生成绩排名系统课程设计(附源码)
C语言-学生成绩管理系统报告及程序代码
![C语言-学生成绩管理系统报告及程序代码](https://img.taocdn.com/s3/m/1b50d53643323968011c92a8.png)
C语言课程设计:学生成绩管理系统学生包含以下信息项:学号、姓名、学院、班级、高数成绩、英语成绩、C 语言成绩,总分、平均分。
1. 创建学生成绩信息文件,根据提示输入学生的各项信息,计算出总分和平均语言成绩、总分、平均分。
系统的主要功能包括:然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。
2.增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息,要求:增加后的学生信息仍按学号排学序,并继续保存至原文件。
3.删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。
4. 修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。
5. 按不同条件对学生信息进行查询操作,输出满足条件的学生信息。
(1) 按学号查询,输入一个学号,输出对应的学生信息。
(2) 按姓名查询,包括精确查询(输入全名),模糊查询(输入姓)。
(3) 按学院查询,输入学院名称,输出该学院的全部学生的信息。
(4) 按班级查询,输入班级名称,输出该班级的全部学生的信息。
6. 按不同条件对学生成绩进行统计工作。
(1)按总分对学生信息进行排序(由高到低),输出排序后的信息,并将排序后的学生信息存放到一个新的二进制文件中。
(2) 按平均分统计各个分数段的学生人数(不及格,60-69,70-79,80-89,90-100)。
(3) 分别找出3门课程成绩最高的学生,并输出他们的信息。
(4) 分别统计出3门课程的不及格率,并输出。
3.详细设计说明主要模块描述:1)调用菜单函数形成操作界面:根据提示序号选择操作程序2)学生成绩写入及排序:输入学生成绩,系统将根据录入信息对信息计算出平均分和总分并对学生信息进行排序,输出排序后的信息存入student.dat文件中3)增加学生信息:输入需增加学生的信息,系统将新增加的学生信息与原信息进行排序后存入原文件中4)删除学生信息:输入需删除学生的学号,将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。
C语言课程设计 学生成绩管理系统 源代码
![C语言课程设计 学生成绩管理系统 源代码](https://img.taocdn.com/s3/m/482bc26a1eb91a37f1115c75.png)
//学生成绩管理系统//用户名: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语言源代码](https://img.taocdn.com/s3/m/2d56c149f56527d3240c844769eae009581ba2a6.png)
学生成绩管理系统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;}总结学生成绩管理系统是一个非常有用的工具,可以帮助学校、教师和学生高效地管理和查询学生成绩。
c语言成绩管理系统源代码
![c语言成绩管理系统源代码](https://img.taocdn.com/s3/m/a523480430126edb6f1aff00bed5b9f3f90f7230.png)
c语言成绩管理系统源代码C语言成绩管理系统源代码一、引言C语言是一门广泛应用于计算机编程领域的高级编程语言,其简洁明了、灵活易学的特点使得其成为了众多程序员的首选。
本文将介绍一个C语言成绩管理系统的源代码,该系统可实现学生信息录入、成绩查询、成绩修改等功能。
二、需求分析1. 学生信息录入:需要输入学生姓名、学号、性别等基本信息,并且需要输入每门课程的成绩。
2. 成绩查询:可以按照学号或者姓名进行查询,查询结果包括学生基本信息和各科成绩。
3. 成绩修改:可以根据学号或者姓名进行修改,修改后需要重新保存。
三、程序设计1. 结构体定义:定义一个结构体类型student,包含姓名、学号、性别和各科成绩等基本信息。
2. 学生信息录入函数:实现输入每个学生的基本信息和各科成绩,并将其保存到文件中。
3. 成绩查询函数:根据输入的姓名或者学号查找对应的学生信息,并输出其基本信息和各科成绩。
4. 成绩修改函数:根据输入的姓名或者学号查找对应的学生信息,然后可以选择修改某一科目的成绩或者全部成绩,并将修改后的结果保存到文件中。
四、源代码以下是C语言成绩管理系统的源代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_NUM 100#define FILE_NAME "student.dat"typedef struct{char name[20];char id[20];char sex[5];float score[3];}student;void input(student *stu,int num);void output(student *stu,int num);void modify(student *stu,int num);int main(){student stu[MAX_NUM];int num=0,flag=1;FILE *fp;fp=fopen(FILE_NAME,"rb");if(fp!=NULL){fread(&num,sizeof(int),1,fp);fread(stu,sizeof(student),num,fp);fclose(fp);}while(flag){printf("\n\n\t\t学生成绩管理系统\n"); printf("\t\t1. 学生信息录入\n");printf("\t\t2. 成绩查询\n");printf("\t\t3. 成绩修改\n");printf("\t\t4. 退出系统\n");printf("\t\t请选择功能:");int choice;scanf("%d",&choice);switch(choice){case 1:input(stu,num);break;case 2:output(stu,num);break;case 3:modify(stu,num);break;case 4:flag=0;break;default:printf("输入有误,请重新输入!"); break;}fp=fopen(FILE_NAME,"wb");fwrite(&num,sizeof(int),1,fp);fwrite(stu,sizeof(student),num,fp);fclose(fp);}return 0;}void input(student *stu,int num){printf("\n\n\t\t学生信息录入\n");printf("\t\t请输入学生人数:");int n;scanf("%d",&n);if(num+n<=MAX_NUM){for(int i=num;i<num+n;i++){printf("\t\t请输入第%d个学生的姓名:",i+1); scanf("%s",stu[i].name);printf("\t\t请输入第%d个学生的学号:",i+1); scanf("%s",stu[i].id);printf("\t\t请输入第%d个学生的性别:",i+1); scanf("%s",stu[i].sex);for(int j=0;j<3;j++){printf("\t\t请输入第%d个学生的第%d门课程成绩:",i+1,j+1);scanf("%f",&stu[i].score[j]);}}num+=n;printf("\n\n\t\t录入成功!\n");}else{printf("存储空间不足,无法录入!");}}void output(student *stu,int num){printf("\n\n\t\t成绩查询\n");printf("\t\t按照姓名查询输入1,按照学号查询输入2:");int choice;scanf("%d",&choice);if(choice==1){char name[20];printf("\t\t请输入要查询的姓名:");scanf("%s",name);for(int i=0;i<num;i++){if(strcmp(stu[i].name,name)==0){printf("\t\t姓名:%s\n",stu[i].name); printf("\t\t学号:%s\n",stu[i].id);printf("\t\t性别:%s\n",stu[i].sex); for(int j=0;j<3;j++){printf("\t\t第%d门课程成绩:%.2f\n",j+1,stu[i].score[j]);}flag=1;}}if(flag==0){printf("未找到该学生信息!");}}else if(choice==2){int flag=0;printf("\t\t请输入要查询的学号:");scanf("%s",id);for(int i=0;i<num;i++){if(strcmp(stu[i].id,id)==0){printf("\t\t姓名:%s\n",stu[i].name); printf("\t\t学号:%s\n",stu[i].id);printf("\t\t性别:%s\n",stu[i].sex); for(int j=0;j<3;j++){printf("\t\t第%d门课程成绩:%.2f\n",j+1,stu[i].score[j]);}flag=1;}}if(flag==0){printf("未找到该学生信息!");}}else{printf("输入有误,请重新输入!");}}void modify(student *stu,int num){printf("\n\n\t\t成绩修改\n");printf("\t\t按照姓名修改输入1,按照学号修改输入2:");int choice;scanf("%d",&choice);if(choice==1){char name[20];int flag=0;printf("\t\t请输入要修改的学生姓名:");scanf("%s",name);for(int i=0;i<num;i++){if(strcmp(stu[i].name,name)==0){printf("\t\t姓名:%s\n",stu[i].name);printf("\t\t学号:%s\n",stu[i].id);printf("\t\t性别:%s\n",stu[i].sex);for(int j=0;j<3;j++){printf("\t\t第%d门课程成绩:%.2f\n",j+1,stu[i].score[j]);}printf("\n\n\t\t请选择修改方式:\n");printf("\t\t1. 修改某一科目成绩\n");printf("\t\t2. 修改全部科目成绩\n");int m;scanf("%d",&m);if(m==1){int k;float score;printf("\t\t请输入要修改的科目编号:"); scanf("%d",&k);if(k>=1&&k<=3){printf("\t\t请输入新的成绩:");scanf("%f",&score);stu[i].score[k-1]=score;flag=1;break;}else{printf("输入有误,请重新输入!");break;}}else if(m==2){for(int j=0;j<3;j++){printf("\t\t请输入第%d门课程成绩:",j+1); scanf("%f",&stu[i].score[j]);}flag=1;break;}}}if(flag==0){printf("未找到该学生信息!");}else{printf("\n\n\t\t修改成功!\n");}}else if(choice==2){char id[20];int flag=0;printf("\t\t请输入要修改的学生学号:");scanf("%s",id);for(int i=0;i<num;i++){if(strcmp(stu[i].id,id)==0){printf("\t\t姓名:%s\n",stu[i].name); printf("\t\t学号:%s\n",stu[i].id);printf("\t\t性别:%s\n",stu[i].sex); for(int j=0;j<3;j++){printf("\t\t第%d门课程成绩:%.2f\n",j+1,stu[i].score[j]);}printf("\n\n\t\t请选择修改方式:\n"); printf("\t\t1. 修改某一科目成绩\n"); printf("\t\t2. 修改全部科目成绩\n");int m;scanf("%d",&m);if(m==1){int k;float score;printf("\t\t请输入要修改的科目编号:"); scanf("%d",&k);if(k>=1&&k<=3){printf("\t\t请输入新的成绩:");scanf("%f",&score);stu[i].score[k-1]=score;flag=1;break;}else{printf("输入有误,请重新输入!");break;}}else if(m==2){for(int j=0;j<3;j++){printf("\t\t请输入第%d门课程成绩:",j+1); scanf("%f",&stu[i].score[j]);}flag=1;break;}}}if(flag==0){printf("未找到该学生信息!");}else{printf("\n\n\t\t修改成功!\n");}}else{printf("输入有误,请重新输入!");}}五、总结本文介绍了一个C语言成绩管理系统的源代码,该系统可实现学生信息录入、成绩查询、成绩修改等功能。
学生成绩管理系统(数据结构C语言版源代码)
![学生成绩管理系统(数据结构C语言版源代码)](https://img.taocdn.com/s3/m/58cea3aae53a580216fcfefa.png)
让结局不留遗憾,让过程更加完美。
#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语言课程设计 200行代码 -学生成绩查询系统.doc
![C语言课程设计 200行代码 -学生成绩查询系统.doc](https://img.taocdn.com/s3/m/6d849ef05a8102d277a22fa0.png)
功能:查询修改统计成绩。
#include <stdio.h>struct student /*成绩表的结构声明*/{int num;char name[15];char sex;float WuLi;float ShuXue;float YingYu;float KuaiJi;float totle;};/*定义6个学生的信息:*/#define STU_NUMBER 6 /*宏定义学生数为6*/struct student Stu[STU_NUMBER]={{101,"yuchen", 'F', 98,85,96,89,0},{102,"xiaotong", 'F', 99,91,90,93,0},{103,"likanglong",'M', 76,83,74,82,0},{104,"yinger", 'F', 88,76,89,77,0},{105,"fengjiao", 'F', 97,100,94,96,0},{106,"sunyao", 'M', 87,89,66,84,0} };int SelectMainMenu(); /*显示并选择主菜单。
返回:被选择的菜单项*//*所有的函数声明:*/void Show(); /*成绩查询模块*/void Modify(); /*成绩修改模块*/void Stat(); /*成绩统计模块*/void StatAve(float *AveWuLi,float *AveShuXue,float *AveYingYu,float *AveKuaiJi);/*统计平均分*/int FindStudent(int num); /*根据学号查找某一学生*/void SetAllTotle(); /*计算所有学生总分*/void SetTotle(int No); /*计算第No个学生总分*/void ShowAllStudent(); /*显示所有成绩*/void ShowTitle(); /*显示表头信息*/void ShowStudent(int No); /*显示第No个的学生信息*/void main(){int isend=0,password=0; /*程序结束标志量,0表示不结束,1表示结束*/SetAllTotle(); /*计算所有学生总分*/while(password!=666){printf("qing shu ru mi ma:\n");scanf("%d",&password);}{switch(SelectMainMenu()) /*显示并选择主菜单*/{case 1: /*成绩查询*/Show(); /*调用成绩查询函数*/break;case 2: /*成绩修改*/Modify(); /*调用成绩修改函数*/break;case 3: /*成绩统计*/Stat(); /*调用成绩统计函数*/break;case 4: /*退出系统*/printf("\nxie xie nin de shi yong,zai jian!\n\n");isend = 1; /*设置程序结束标志*/break;}if(isend) break; /*程序结束*/}}int SelectMainMenu() /*显示并选择主菜单。
学生成绩管理系统c语言代码(供参考)
![学生成绩管理系统c语言代码(供参考)](https://img.taocdn.com/s3/m/557b9927974bcf84b9d528ea81c758f5f61f2924.png)
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语言(附完整源代码)](https://img.taocdn.com/s3/m/5a4c7bad541810a6f524ccbff121dd36a32dc4d8.png)
学生绩点计算系统C语言(附完整源代码)本文档提供了一个用于计算学生绩点的C语言程序的完整源代码。
程序简介该程序是一个学生绩点计算系统,它可以读取学生的课程成绩和学分信息,并计算出每门课程的绩点以及整个学期的绩点。
该程序可以帮助学生快速准确地计算自己的绩点,以便了解自己在学业上的表现。
源代码以下是该程序的完整源代码:include <stdio.h>int main() {int numCourses;float totalCredits = 0;float totalGradePoints = 0;printf("请输入您的课程数量:");scanf("%d", &numCourses);for (int i = 0; i < numCourses; i++) {int credits;float grade;printf("请输入第%d门课的学分:", i + 1); scanf("%d", &credits);printf("请输入第%d门课的成绩:", i + 1); scanf("%f", &grade);totalCredits += credits; totalGradePoints += credits * grade;}float gpa = totalGradePoints / totalCredits;printf("\n您的绩点为:%.2f\n", gpa);return 0;}该程序首先会要求用户输入课程数量,然后逐一询问每门课程的学分和成绩。
程序会根据用户输入的数据计算出总学分和总绩点,并最终计算出绩点(GPA),并将结果输出。
使用方法1. 运行该程序;2. 按照提示输入课程数量;3. 按照提示逐一输入每门课程的学分和成绩;4. 程序将会输出您的绩点(GPA)。
c语言学生成绩信息管理系统源代码
![c语言学生成绩信息管理系统源代码](https://img.taocdn.com/s3/m/297f4c9548649b6648d7c1c708a1284ac9500511.png)
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. 运行系统后,会出现一个菜单,根据需求选择相应的操作。
VC课程设计学生成绩管理系统详解和源码
![VC课程设计学生成绩管理系统详解和源码](https://img.taocdn.com/s3/m/c195953c581b6bd97f19eab0.png)
VC++课程设计设计项目:学生成绩管理系统设计者:张守阳(20102973)班级:计本10级二班使用软件: VC++6.0使用数据库: ACCESS设计流程一、设计理念开发一款学生成绩管理程序,实现学生基本信息的录入、查询及浏览和修改操作。
以及学生成绩的录入、查询、浏览以及统计分析等功能。
以上功能以可视化界面方式进行操作,并将学生成绩信息保存。
二、数据库设计在这个程序中,所用到的数据库是ACCESS数据库。
在数据库中,添加了8个表,分别是NO1OBJECT、NO1STUDENT、NO1STUINFO、NO1TEACHER、NO2OBJECT、NO2STUDENT、NO2STUINFO、NO2TEACHER.这8个表分别记录着两个班的:成绩概况、学生成绩、学生信息、教师信息。
三、程序设计此成绩管理系统共有两个模块:一个是学生成绩管理模块,一个是学生信息管理模块。
在登录成功后(登录用户名和密码都是:admin)会出现主窗口。
在主窗口中可以通过单击两个模块的按钮实现来实现两个模块间的切换。
学生成绩模块所实现的功能是:根据班级选项显示学上成绩信息,并且实现成绩的添加、修改、删除、查询功能。
学生信息模块能够实现学生信息的显示、添加、修改和删除功能。
四、此程序的介绍此程序是基于对话框的MFC程序。
所有的弹出式对话框是模态对话框,由于用到的对话框较多,所以定义的类较多,看起来有点眼花缭乱。
由于我对MFC掌握程度有限,这个程序做的有点粗糙,既不美观,在功能上也有许多不尽人意的地方,或许还会存在bug。
五、程序的实现1)、修改APP类由于此程序用到数据库,所以需要先连接数据源。
此程序通过采用代码来连接到所设计的数据源。
首先将设计的数据库复制到工程所在根目录下,再在APP中的initInstance()函数中添加如下代码:///////加载数据源if (!AfxSocketInit()){AfxMessageBox(IDP_SOCKETS_INIT_FAILED);return FALSE;}CString sPath;GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);sPath.ReleaseBuffer ();int nPos;nPos=sPath.ReverseFind ('\\');sPath=sPath.Left (nPos);nPos=sPath.ReverseFind('\\');sPath=sPath.Left (nPos);CString lpszFile = sPath + "\\mydb.mdb";char* szDesc;int mlen;szDesc=new char[256];sprintf(szDesc,"DSN=%s? DESCRIPTION=TOC support source? DBQ=%s?FIL=MicrosoftAccess? DEFAULTDIR=%s?? ","mydb",lpszFile,sPath);mlen = strlen(szDesc);for (int i=0; i<mlen; i++){if (szDesc[i] == '?')szDesc[i] = '\0';}if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc))AfxMessageBox("SQLConfigDataSource Failed");try{CString strConnect;strConnect.Format("DSN=mydb;");if(!m_DB.OpenEx(strConnect,CDatabase::useCursorLib)){AfxMessageBox("Unable to Connect to the Specified Data Source");return FALSE ;}}catch(CDBException *pE){pE->ReportError();pE->Delete();return FALSE;}//////////////////////////////其中m_DB是定义的一个CDatabase 对象,用来指向数据库mymdb。
学生成绩管理系统C语言课程设计源代码
![学生成绩管理系统C语言课程设计源代码](https://img.taocdn.com/s3/m/2d26b87b866fb84ae45c8dba.png)
#include<stdio.h>#include<string.h>#include<math.h>#include<conio.h>#include<stdlib.h>struct chengji /* 成绩结构体*/ {int point;char subject[20];};struct student /* 学生结构体*/ { int w;char name[20];int number;struct chengji cheng[30];float sum;float average;}stu[40];void pjun(); /*按平均分排序*/void pfen(); /*按总分排序*/ void addnew(); /*录入学生成绩*/void pall(); /*显示所有成绩*/ void check(); /*查询菜单*/ void pnum(); /*按学号排序*/ void pjing(); /*精确查找*//****************************************************************************** *************************//*主菜单*/main(){char choose;while(1){printf("\n\t\t**************************************");printf("\n\t\t* 欢迎使用成绩管理系统*");printf("\n\t\t* *");printf("\n\t\t* 请选择*");printf("\n\t\t* 1. 录入学生成绩*");printf("\n\t\t* 2. 查询学生成绩*");printf("\n\t\t* 3. 清屏*");printf("\n\t\t* 0. 退出程序*");printf("\n\t\t* *");printf("\n\t\t**************************************");printf("\n\n");printf("请选择:");scanf("%c",&choose);getchar();switch(choose){ case '1': addnew(); break;case '2': check(); break;case '3': system("cls"); break;case '0': exit(0); break;default: printf("输入错误,请从新输入!\n\n");}}}/****************************************************************************** **********************//*录入学生成绩*/void addnew(){int n,m,i,p;float sum;float average;FILE *file;sum=0.00000;average=0.00000;if((file=fopen("c:\\student.dat","rb"))==NULL){file = fopen("c:\\student.dat", "wb+"); /* 创建一个文件*/}printf("请输入需要录入的学生人数: ");scanf("%d",&n);for(i=0;i<n;i++){printf("输入第%d个同学信息:\n",i+1);printf("姓名:");scanf("%s",&stu[i].name);printf("学号:");scanf("%d",&stu[i].number);printf("输入科目个数:");scanf("%d",&m);stu[i].w=m;printf("按科目(回车)成绩(回车)……的顺序输入:\n"); /* 录入成绩*/for(p=0;p<m;p++){scanf("%s",&stu[i].cheng[p].subject);scanf("%d",&stu[i].cheng[p].point);stu[i].sum=stu[i].sum+stu[i].cheng[p].point;stu[i].average=stu[i].sum/m;}/* printf("总分%f , 平均分%f\n ",stu[i].sum,stu[i].average);*/fwrite(&stu[i],sizeof(stu),1,file); /* 把stu写入文件*/}fclose(file); /* 关闭文件*/fflush(stdin);system("cls");}/****************************************************************************** **********************//*查询菜单*/void check(){while(1){ char choose;printf("\n\t\t**************************************");printf("\n\t\t* 查询菜单*");printf("\n\t\t* *");printf("\n\t\t* 请选择*");printf("\n\t\t* 1. 按学号排列*");printf("\n\t\t* 2. 按总分排列*");printf("\n\t\t* 3. 按平均分排列*");printf("\n\t\t* 4. 精确查询*");printf("\n\t\t* 5. 显示所有学生成绩*");printf("\n\t\t* 6. 清屏*");printf("\n\t\t* 0. 返回*");printf("\n\t\t**************************************");printf("\n\n");printf("请选择:");scanf("%c",&choose);getchar();switch(choose){ case '1': pnum(); break;case '2': pfen(); break;case '3': pjun(); break;case '4': pjing(); break;case '5': pall(); break;case '6': system("cls"); break;case '0': main(); break;}}}/****************************************************************************** **********************//*显示所有成绩*/void pall(){int i=0,m;FILE *file;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error!!\n");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0)/* 循环整个文件*/{ printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++)/*显示各科成绩*/{printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}i++;fread(&stu[i],sizeof(stu),1,file);}fclose(file);}/****************************************************************************** *************************//*按学号排序*/void pnum(){ FILE *file;int j;int i=0;int n=0;int m=0;struct student bm; /*创建一个‘中间’结构体,用于交换*/if((file=fopen("c:\\student.dat","rb"))==NULL) /* 打开文件*/ { printf("Open error");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){i++;fread(&stu[i],sizeof(stu),1,file);}n=i;for(j=n-1;j>0;j--){ for(i=0;i<j;i++){ if(stu[i].number>stu[i+1].number) /*对比学号,对换stu*/{ bm=stu[i]; /*交换位置*/stu[i]=stu[i+1];stu[i+1]=bm;}}}for(i=0;i<n;i++)/* 交换后从新排序*/{ printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}}fclose(file);fflush(stdin);}/****************************************************************************** *************************//*按总分排序*/void pfen(){ FILE *file;int j;int i=0;int n=0;int m;struct student bm;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){i++;fread(&stu[i],sizeof(stu),1,file);}n=i;for(j=n-1;j>0;j--){ for(i=0;i<j;i++){ if(stu[i].sum<stu[i+1].sum){ bm=stu[i];stu[i]=stu[i+1];stu[i+1]=bm;}}}for(i=0;i<n;i++){ printf("姓名----学号----总分----平均分\n"); /*显示到屏幕*/printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}}fclose(file);fflush(stdin);}/*******************************************************************************************************//*按平均分排序*/void pjun(){ FILE *file;int j;struct student bm;int i=0;int n=0;int m;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){i++;fread(&stu[i],sizeof(stu),1,file);}n=i;for(j=n-1;j>0;j--){ for(i=0;i<j;i++){ if(stu[i].average<stu[i+1].average){ bm=stu[i];stu[i]=stu[i+1];stu[i+1]=bm;}}}for(i=0;i<n;i++){ printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}}fclose(file);fflush(stdin);}/****************************************************************************** *************************//*精确查找*/void pjing(){int n;int i=0;int m;FILE *file;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error");getch();exit(0);}printf("请输入要查询的学生的学号:");scanf("%d",&n);getchar();fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){ if(n==stu[i].number) /*输出对应的学号的学生成绩*/{printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}break;}i++;fread(&stu[i],sizeof(stu),1,file);}fclose(file);fflush(stdin);}/******************************************结束*******************************************************/。
c语言课程设计学生成绩管理系统代码
![c语言课程设计学生成绩管理系统代码](https://img.taocdn.com/s3/m/827eee8768dc5022aaea998fcc22bcd126ff42ea.png)
学生成绩管理系统是一个常见的C语言入门项目,可以帮助初学者了解循环、条件控制、结构体、文件操作等基本知识。
以下是一个简单的C语言学生成绩管理系统示例,实现了查询、添加、修改和删除学生成绩等功能。
您可以修改和扩展该代码以满足您的需求:#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct {int id;char name[20];float score;} Student;void display_menu();void add_student();void find_student();void edit_student();void delete_student();void save_data();void load_data();int student_count = 0;Student students[100];int main() {load_data();while (1) {display_menu();int choice;printf("请输入您的选择:");scanf("%d", &choice);switch (choice) {case 1:find_student();break;case 2:add_student();break;case 3:edit_student();break;case 4:delete_student();break;case 5:save_data();printf("数据已保存。
\n");exit(0);default:printf("无效的选项!\n");}}return 0;}void display_menu() {printf("学生成绩管理系统\n");printf("====================\n");printf("1. 查询学生成绩\n");printf("2. 添加学生成绩\n");printf("3. 修改学生成绩\n");printf("4. 删除学生成绩\n");printf("5. 退出系统\n");printf("====================\n");}void add_student() {printf("请输入学生ID:");scanf("%d", &students[student_count].id); printf("请输入学生姓名:");scanf("%s", students[student_count].name); printf("请输入学生成绩:");scanf("%f", &students[student_count].score); student_count++;printf("学生已添加成功!\n");}void find_student() {int id;printf("请输入要查询的学生ID:");scanf("%d", &id);for (int i = 0; i < student_count; ++i) {if (students[i].id == id) {printf("ID:%d, 姓名:%s, 成绩:%.2f\n", students[i].id, students[i].name, students[i].score);return;}}printf("未找到该学生。
c语言课程设计学生成绩管理系统源代码
![c语言课程设计学生成绩管理系统源代码](https://img.taocdn.com/s3/m/ede157af50e79b89680203d8ce2f0066f533649f.png)
c语言课程设计学生成绩管理系统源代码一、引言学生成绩管理系统是一个非常常见的应用程序,它可以帮助学校或教育机构轻松地管理学生的成绩信息。
在本文中,我们将介绍一个基于C语言的学生成绩管理系统源代码。
二、需求分析在开始编写代码之前,我们需要明确系统的需求和功能。
该系统应该能够完成以下任务:1. 添加新学生信息:包括姓名、性别、年龄等基本信息。
2. 添加课程信息:包括课程名称、授课教师等基本信息。
3. 输入学生的成绩:输入每个学生在每个课程中的成绩。
4. 计算总分和平均分:计算每个学生的总分和平均分,并将其存储在数据库中。
5. 查询成绩信息:查询某个学生或某门课程的成绩信息。
6. 修改成绩信息:修改某个学生或某门课程的成绩信息。
7. 删除成绩信息:删除某个学生或某门课程的成绩信息。
三、设计思路1. 数据库设计我们需要设计一个简单的数据库来存储所有的数据。
该数据库应该包括以下表:- 学生表(student):包含姓名、性别、年龄等基本信息。
- 课程表(course):包含课程名称、授课教师等基本信息。
- 成绩表(score):包含每个学生在每个课程中的成绩信息。
2. 界面设计我们需要设计一个简单的界面来让用户输入和查看数据。
该界面应该包括以下功能:- 添加新学生信息- 添加新课程信息- 输入学生成绩- 查询成绩信息- 修改成绩信息- 删除成绩信息3. 程序设计在程序设计方面,我们需要编写一些函数来执行以上功能。
这些函数应该包括:- add_student():添加新学生信息。
- add_course():添加新课程信息。
- input_score():输入学生成绩。
- calculate_score():计算总分和平均分。
- query_score():查询成绩信息。
- update_score():修改成绩信息。
- delete_score():删除成绩信息。
四、源代码实现在这里,我们提供一个C语言的学生成绩管理系统源代码,该代码可以满足以上需求。
c课程设计学生成绩管理系统源代码
![c课程设计学生成绩管理系统源代码](https://img.taocdn.com/s3/m/bd165c245901020207409cde.png)
#include <stdio.h>#include <stdlib.h>#include <string.h>int n=5;/*全局变量*/ struct student /*定义结构体数组*/ { char num[10];char name[10];int score;}stu[3];int menu_select() /*菜单选择函数*/ { char a;do{system("cls");printf("\t************学生成绩管理系统****************\n");printf("\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\t0.退出\n");printf("\t*********************************************\n");printf("\n");printf("给出你的选择(0-7):");a=getchar();}while(a<'0'||a>'7');return(a);}void input() /*定义输入函数*/char c;void menu();FILE *fp;if((fp=fopen("student message","w"))==NULL){printf("cannot open the file\n");exit(0);}printf("学号姓名分数(需要终止输入时请在该行结尾输入n)\n");for(i=0;;i++){ scanf("%s %s %d",stu[i].num,stu[i].name,&stu[i].score);fwrite(&stu[i],sizeof(struct student),1,fp);c=getchar();if(c=='n')break;}n=i+1;fclose(fp);system("pause");menu();}void display() /*定义显示函数*/ { int i;void menu();FILE *fp;if((fp=fopen("student message","r"))==NULL){printf("cannot open the file\n");exit(0);}printf("\t学号\t姓名\t分数\n");for(i=0;i<n;i++){ fread(&stu[i],sizeof(struct student),1,fp);printf("\t%s\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score); }fclose(fp);system("pause");}void sort() /*定义排序函数*/ { int i,j;struct student temp;void menu();FILE *fp;if((fp=fopen("student message","r"))==NULL){ printf("cannot open the file:\n");exit(0);}for(i=0;i<n;i++)fread(&stu[i],sizeof(struct student),1,fp);for(j=0;j<n-1;j++)for(i=0;i<n-1-j;i++)if(stu[i].score<stu[i+1].score){temp=stu[i];stu[i]=stu[i+1];stu[i+1]=temp;}for(i=0;i<n;i++)printf("\t%s\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score);fclose(fp);system("pause");menu();}void insert() /*定义插入函数*/ { int i;struct student st;void menu();FILE *fp;if((fp=fopen("student message","a"))==NULL){ printf("cannot open the file:\n");exit(0);}for(i=0;i<n;i++)fread(&stu[i],sizeof(struct student),1,fp);printf("输入要插入学生的信息:\n");printf("学号:");scanf("%s",st.num);printf("姓名:");scanf("%s",);printf("分数:");scanf("%d",&st.score);n++;fwrite(&st,sizeof(struct student),1,fp);fclose(fp);system("pause");menu();}void delet() /*定义删除函数*/ { int i,t;char name[10];void menu();FILE *fp,*fp1;if ((fp=fopen("student message","r"))==NULL){ printf("can not open file!\n");exit(0); }for(i=0;i<n;i++)fread(&stu[i],sizeof(struct student),1,fp);if ((fp1=fopen("student message","w"))==NULL){ printf("can not open file!\n");exit(0); }printf("请输入要删除学生的姓名:");scanf("%s",name);for(i=0;i<n;i++)if(strcmp(stu[i].name,name)==0)for(i=0;i<t;i++)fwrite(&stu[i],sizeof(struct student),1,fp1);for(i=t+1;i<n;i++)fwrite(&stu[i],sizeof(struct student),1,fp1);printf("该学生信息已删除!\n\n");fclose(fp);fclose(fp1);system("pause");menu();}void query() /*定义查询函数*/ { int i;char a[10];void menu();FILE *fp;if((fp=fopen("student message","r"))==NULL){ printf("cannot open file\n");exit(0); }for(i=0;i<n;i++)fread(&stu[i],sizeof(struct student),1,fp);printf("输入要查询学生的姓名:");scanf("%s",a);for(i=0;i<n;i++)if(strcmp(stu[i].name,a)==0)printf("\t%s\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score);fclose(fp);system("pause");menu();}void revise() /*定义修改函数*/char name[10];void menu();FILE *fp,*fp1;if((fp=fopen("student message","r"))==NULL){ printf("cannot open file\n");exit(0); }for(i=0;i<n;i++)fread(&stu[i],sizeof(struct student),1,fp);if ((fp1=fopen("student message","w"))==NULL){ printf("can not open file!\n");exit(0); }printf("请输入要修改学生的姓名:");scanf("%s",name);for(i=0;i<n;i++)if(strcmp(stu[i].name,name)==0)t=i;printf("依次输入要修改学生的学号、姓名、分数:");scanf("%s %s %d",stu[t].num,stu[t].name,&stu[t].score);for(i=0;i<n;i++)fwrite(&stu[i],sizeof(struct student),1,fp1);printf("该学生信息已修改成功!");fclose(fp);fclose(fp1);system("pause");menu();}void quite() /*退出*/ {printf("再见!!!\n\n");}void menu() /*定义菜单函数*/{ switch(menu_select()){ case '1': input();break;case '2': display();break;case '3': sort();break;case '4': insert();break;case '5': delet();break;case '6': query();break;case '7': revise();break;case '0': quite();break;}}void main() /*主函数*/ {menu();}。
学生成绩管理系统C语言(附完整源代码)
![学生成绩管理系统C语言(附完整源代码)](https://img.taocdn.com/s3/m/078d7d3a5e0e7cd184254b35eefdc8d376ee1498.png)
学生成绩管理系统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++学生成绩排名系统课程设计(附源码)](https://img.taocdn.com/s3/m/e350201855270722192ef760.png)
河南城建学院C++语言课程设计报告书专业:信息管理与信息系统课程设计名称:《面向对象程序设计》题目:学生成绩排名系统班级:0834131设计者学号:设计者姓名:同组人员:指导老师:张妍琰郭力争完成时间:2015 年1月9 日目录目录 (1)第一章开发环境和开发工具 (1)1.1 C++简介 (1)1.2 开发背景 (1)1.3 开发环境 (2)第二章设计目的与实现 (3)2.1 系统需求分析 (3)2.2系统功能分析 (3)2.3系统总体设计 (4)2.3.1编写要求 (4)2.3.2开发设计思想 (4)2.3.3系统功能模块分析与设计 (5)2.4程序实现流程 (5)2.5成绩统计模块算法思想 (7)第三章测试与分析 (9)3.1数据显示 (9)3.2结果分析 (9)总结 (11)心得体会 (12)参考文献 (13)第一章开发环境和开发工具1.1C++简介C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。
当C语言发展到顶峰的时刻,出现了一个版本叫C with Class,那就是C++最早的版本,在C语言中增加class 关键字和类,那个时候有很多版本的C都希望在C语言中增加类的概念;后来C标准委员会决定为这个版本的C起个新的名字,那个时候征集了很多种名字,最后采纳了其中一个人的意见,以C语言中的++运算符来体现它是C语言的进步,故而叫C++,成立了C++标准委员会。
C++应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。
它支持过程化程序设计,数据抽象,面向对象设计,制作图标等多种程序设计风格。
C++语言的主要特点表现在两个方面,一是尽量兼容C,二是支持面向对象的方法。
它操持了C的简洁、高效的接近汇编语言等特点,对C的类型系统进行了改革的扩充,因此C++比C更安全,C++的编译系统能检查出更多的类型错误.1.2开发背景随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。
c语言课程设计学生成绩管理系统源代码
![c语言课程设计学生成绩管理系统源代码](https://img.taocdn.com/s3/m/c0023f1f814d2b160b4e767f5acfa1c7aa00823a.png)
标题:C语言课程设计——学生成绩管理系统源代码摘要:本文介绍了一份用C语言编写的学生成绩管理系统源代码。
通过该系统,教师和学生可以方便地进行成绩录入、查询、修改和统计等操作。
文章从简单到复杂地介绍了系统的各个模块和功能,并提供了自己对该系统的理解和观点。
【序言】在现代教育系统中,学生成绩管理是一项重要任务。
为了方便教师进行成绩管理和学生了解自己的成绩情况,我们设计了一款学生成绩管理系统,使用C 语言实现。
该系统简洁易用,提供了多个功能模块,包括成绩录入、查询、修改和统计等。
通过本文,我们将逐步介绍该系统的具体实现和设计思路。
【正文】 1. 【模块1:登陆模块】在学生成绩管理系统中,首先需要实现登陆模块,以确保只有授权人员才能访问和管理成绩信息。
该模块要求用户输入用户名和密码,与预先存储的用户名和密码进行匹配。
一旦验证成功,用户将获得访问系统的权限。
我们在设计中使用了安全的密码存储方式,如hash算法等。
2.【模块2:成绩录入模块】学生成绩录入是该系统的核心功能之一。
在该模块中,教师可以输入学生的学号、尊称和各项科目的考试成绩。
我们使用了结构体数组来存储学生的相关信息,并通过循环和用户输入实现多次成绩录入,确保系统的灵活性和扩展性。
3.【模块3:成绩查询模块】为了便捷地查询学生成绩,我们设计了成绩查询模块。
该模块允许用户通过学号或尊称查询学生的成绩。
我们使用了线性搜索算法和条件判断来实现查询功能,并通过输出语句将查询结果展示给用户。
4.【模块4:成绩修改模块】在实际教学中,教师可能需要对学生的成绩进行修改。
为此,我们设计了成绩修改模块。
该模块允许用户根据学生的学号或尊称选择需要修改的学生,并提供修改学生各项科目成绩的功能。
我们使用了指针和条件判断等技术,确保修改操作的准确性和可靠性。
5.【模块5:成绩统计模块】学生成绩统计模块可以帮助教师对班级的整体成绩进行分析和评估。
该模块提供了课程总成绩、平均分、最高分、最低分等统计指标。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
当程序有学生记录时:
总结
此次课程设计,在小组各成员的共同努力下完 成,组长设计了成绩排序系统的成绩类,然后将各 个实现功能分给组员进行实现,由于我基础不太 好,给他们添了很大的麻烦。虽然课程设计结束 了,但其中还存在着很多问题。一方面,因为有关 文件储存这方面的知识欠缺,不太牢固,导致了我 们每次都要手动录入学生成绩信息,因此我们的程 序还需要进一步完善;另一方面,面向对象的程序 开发需要符合客观生活逻辑,所以程序在删除,统
5
第1章 开发环境和开发工具
.1 C++简介 C++是在C语言的基础上开发的一种集面向对象 编程、泛型编程和过程化编程于一体的编程语言。 当C语言发展到顶峰的时刻,出现了一个版本叫C with Class,那就是C++最早的版本,在C语言中增 加class关键字和类,那个时候有很多版本的C都希 望在C语言中增加类的概念;后来C标准委员会决定 为这个版本的C起个新的名字,那个时候征集了很 多种名字,最后采纳了其中一个人的意见,以C语 言中的++运算符来体现它是C语言的进步,故而叫 C++,成立了C++标准委员会。 C++应用较为广泛,是一种静态数据类型检查 的,支持多重编程的通用程序设计语言。它支持过 程化程序设计,数据抽象,面向对象设计,制作图 标等多种程序设计风格。C++语言的主要特点表现 在两个方面,一是尽量兼容C,二是支持面向对象的 方法。它操持了C的简洁、高效的接近汇编语言等 特点,对C的类型系统进行了改革的扩充,因此 C++比C更安全,C++的编译系统能检查出更多的类 型错误. 1.2 开发背景 随着科学技术的不断发展,计算机科学日渐成熟, 其强大的功能已为人们所深刻认识,它己进入人类社
河南城建学院 C++语言课程设计报告书
专 题 班
业:信息管理与信息系统 目:学生成绩排名系统 级: 0834131
课程设计名称: 《面向对象程序设计》
设 计 者 学 号: 设 计 者 姓 名: 同 组 人 员: 指 导 老 师:张妍琰 郭力争 完 成 时 间:2015 年 1月9 日
目录 目录 1 第一章 开发环境和开发工具 1 1.1 C++简介 1 1.2 开发背景 1 1.3 开发环境 2 第二章 设计目的与实现 3 2.1 系统需求分析 3 2.2系统功能分析 3 2.3系统总体设计 4 2.3.1编写要求 4 2.3.2开发设计思想 4 2.3.3系统功能模块分析与设计 2.4程序实现流程 5 2.5成绩统计模块算法思想 7 第三章 测试与分析 9 3.1数据显示 9 3.2结果分析 9 总结 11 心得体会 12 参考文献 13
的能力。培养了基本的、良好的程序设计技能以及合 作能力。这次课程设计同样提高了我的综合运用所学 知识的能力。并对VC6.0有了更深入的了解。《C++语 言程序设计》是一门实践性很强的课程,上机实习是 对学生全面综合素质进行训练的一种最基本的方法, 是与课堂听讲、自学和练习相辅相成的、必不可少的 一个教学环节。上机实习一方面能使书本上的知识 变“活”,起到深化理解和灵活掌握教学内容的目 的;另一方面,上机实习是对学生软件设计的综合能 力的训练,包括问题分析,总体结构设计,程序设计 基本技能和技巧的训练。此外,还有更重要的一点 是:机器是比任何教师更严厉的检查者。因此, 在“数据结构”的学习过程中,必须严格按照老师的 要求,主动地、积极地、认真地做好每一个实验,以 不断提高自己的编程能力与专业素质。 通过这段时间的课程设计,我认识到C++语言程 序设计是一门比较难的课程。需要多花时间上机练 习。这次的程序训练培养了我实际分析问题、编程和 动手能力,使我掌握了程序设计的基本技能,提高了 我适应实际,实践编程的能力。 总的来说,这次课程设计让我获益匪浅,对 C++语言程序设计也有了进一步的理解和认识。
学生成绩统计 学号不是0 Yes No
人数+1计入总分并判断是否及格 Yes No 及格人数+1 统计总分及格率等
. 2.4-4 【5】学生成绩查找
学生成绩查找 按姓名 按科目 按学号 按语文 按C++ 按总分 按数学 按英语 输入后与有成绩的数组的目标项对比,相等即输出
2.4-5 【6】主页面模块
2.3.3系统功能模块分析与设计
本系统分为五个模块:添加学生信息、删除学生 信息、学生成绩排序、学生成绩统计、学生成绩查 找。得到如图3-1所示的系统功能模块图。
学生成绩排序系统 学生成绩排序系统 删除学生信息 按数学 添加学生信息 学生成绩统计 学生成绩排序 学生成绩查找 按语文 按总分 按C++ 按课程 按姓名 按学号 按英语
会的各个领域并发挥着越来越重要的作用。采用计算 机进行信息化管理已成为衡量教学管理科学化和现代 化的重要标志,而学生成绩排名的全面自动化、信息 化则是其中重要的组成部分。学生成绩排名信息的好 坏对于教学管理者来说至关重要,在很大程度上影响 着教学管理者对学生的看法及学生个人考评。因此, 本文所研究的学生成绩排名系统具有一定的使用价值 和现实意义。 1.3 开发环境 本文所采用的开发环境主要是基于VC6.0。 VC++6.0是微软公司推出的开发Win32应用程序 (Windows 95/98/2000/XP/NT)的、面向对象的 可视化集成工具。它的最大优点就是提供了功能 强大的MFC类库,MFC是一个很大的C++类层次结 构,其中封装了大量的类及其函数,很多 Windows程序所共有的标准内容可以由MFC的类来 提供,MFC类为这些内容提供了用户接口的标准 实现方法,程序员所要做的就是通过预定义的接 口把具体应用程序特有的东西填入这个轮廓,这 将简化编程工作,大大的减少程序员编写的代码 数量,使编程工作变得更加轻松容易。
学生成绩统计 成绩查询 成绩统计 成绩管理
按课程 按姓名 按学号
2.4-6
2.5成绩统计模块算法思想 采用类的对象数组对类中的对象进行引用,在使 用对象数组时只能引用单个数组元素,每个数组元 素都是一个对象,通过这个对象,便可以访问到它 的公有成员。通过对其成员的访问实现统计功能。
void tongji() { int n1,n2=0,n_m=0,n_e=0,n_c=0,n_y=0,t_m=0,t_e=0,t_c=0,t_y=0,t_t=0;/ 计数,n2统计总人数 for(n1=0;n1<50;n1++) { if(student[n1].num!=0)//对类的对象数组中的成员 进行访问 { n2++; t_m=t_m+student[n1].m_num;//数学总分数 t_e=t_e+student[n1].e_num;//英语总分数 t_c=t_c+student[n1].c_num;//英语总分数 t_y=t_y+student[n1].y_num;//语文总成绩 t_t=t_t+student[n1].t_num;//总分数
2.2.2 成绩的统计功能
成绩统计功能:统计功能可以实现学生总人数 的统计,各科平均分以及各科及格率,另外,还包 括总分的平均分,可以研究整体学生的成绩。
2.2.3成绩的查找功能
成绩的查找功能:查找功能可以根据需求选 择三种方式中的一种进行查找,包括按学号查找, 按姓名查找,按科目查找,在按科目查找功能下, 又细分了按英语成绩,按数学成绩,按C++成绩, 按语文成绩查找。 2.3系统总体设计
2.2.1 成绩的管理功能
【1】添加学生信息:添加学生的成绩信息, 包括学生学号,姓名,各科成绩,输入功能操作结 束返回到主菜单。若员工信息输入有误,需及时修 改。 【2】删除学生信息:删除某个学生的成绩信 息,采用数组的方法,根据学号进行删除,删除功 能操作结束,返回到主菜单。 【3】学生信息排序:排序功能可以根据需求 分四种方式进行学生成绩的排序,包括按四科科目 的成绩分别进行排序以及按总成绩进行排序。排序 功能操作结束,返回到主页面。
} if(student[n1].m_num>=60) { n_m++; } if(student[n1].e_num>=60) { n_e++; } if(student[n1].c_num>=60) { n_c++; } if(student[n1].y_num>=60) { n_y++; } } if(n2==0) { cout<<"对不起,无记录"<<endl; main(); } else cout<<"总人数为:"<<n2<<endl<<"数学平均分为:" <<t_m/n2<<" 及格率为:"<<n_m*100/n2<<"%"<<endl<<"英 语平均分为:"<<t_e/n2<<" 及格率为:" <<n_e*100/n2<<"%"<<endl<<"C++平均分为:"<<t_c/n2<<" 及格率为:"<<n_c*100/n2<<"%"<<endl<<"语文平均分:" <<t_y/n2<<" 及格率为:"<<n_y*100/n2<<"%"<<endl<<"总 分平均分为:"<<t_t/n2<<endl;}