×

学生成绩管理系统的设计与实现

学生成绩管理系统的设计与实现(c语言编程 学生成绩管理系统的设计与实现)

admin admin 发表于2023-11-14 13:35:55 浏览41 评论0

抢沙发发表评论

本文目录

c语言编程 学生成绩管理系统的设计与实现

#include《stdio.h》#include《stdlib.h》typedef struct Student {int num;char name;char sex;int age;float computer;float math;float english;float sum_score;}Stu;int cmp(const void *x, const void *y) {return (*(Stu *)x).sum_score 《 (*(Stu *)y).sum_score?1 : -1;}int cmp_by_computer(const void *x, const void *y) {return (*(Stu *)x).computer 《 (*(Stu *)y).computer?1 : -1;}int cmp_by_english(const void *x, const void *y) {return (*(Stu *)x).english 《 (*(Stu *)y).english?1 : -1;}int cmp_by_math(const void *x, const void *y) {return (*(Stu *)x).math 《 (*(Stu *)y).math?1 : -1;}Stu stus;int SIZE;// 计算总分 void sum_score(Stu* stu) {stu-》sum_score = stu-》computer + stu-》english + stu-》math; }// 初始化学生数组,N为学生数目 void init() {int i = 0;while (i 《 SIZE) {printf(“请输入第%d个学生信息:\n“, i + 1);printf(“Input num: “);scanf(“%d“, &stus;j ++;next ++;}}i ++;} SIZE --;} // 列出菜单 void list_menu() {printf(“---学生管理系统---\n“);printf(“1. 输出学生基本信息\n“);printf(“2. 求每位同学总分\n“);printf(“3. 求总分最高的学生基本信息\n“);printf(“4. 按总分排序\n“);printf(“5. 按某一科排序\n“);printf(“6. 按学号查询某位同学\n“); printf(“7. 从键盘输入某位学生信息,插入到数组中\n“); printf(“8. 从键盘输入学号,删除该学号的学生信息\n“);printf(“0. 退出\n\n“);printf(“请选择操作: \n“);} void command() {int option;while (scanf(“%d“, &option) != EOF) {if (option == 0) //退出 return;switch (option) {case 1: printAll();break;case 2:printAll();break; case 3:{Stu stu = best();print(&stu);}break;case 4: {Sort();break;}case 5:{printf(“1. computer\n“);printf(“2. english\n“);printf(“3. math\n“);printf(“请选择排序科目: “);int option;scanf(“%d“, &option);if (option == 1) {sort_by_computer();} else if (option == 2) {sort_by_english();} else if (option == 3)sort_by_math();else {printf(“erro!\n“); }break;}case 6: {int num;printf(“请输入要查询的学号: “);scanf(“%d“, &num); Stu* stu = search(num);print(stu);break;}case 7: {Stu stu; printf(“Input num: “);scanf(“%d“, &stu.num);printf(“Input name: “);scanf(“%s“, stu.name);printf(“Input sex: “);getchar();scanf(“%c“, &stu.sex);printf(“Input age: “);scanf(“%d“, &stu.age);printf(“Input computer: “);scanf(“%f“, &stu.computer);printf(“Input math: “);scanf(“%f“, &stu.math);printf(“Input english: “);scanf(“%f“, &stu.english);sum_score(&stu); insert(stu);break;}case 8: {int num;printf(“请输入要删除的学号: “);scanf(“%d“, &num); _delete(num);break;}}}}int main() {printf(“请输入学生总数:“);scanf(“%d“, &SIZE); init();list_menu();command();}

设计一个简单的学生成绩管理系统,

我没写,只能和你说说怎么写。可以由类模板和数组写。我说说类模板的吧。定义一个Student类存放学生信息(姓名,初始排名,各科成绩,个人总分);初始排名由输入顺序排,在计算名字的时候就可以通过冒泡排序。在里面定义计算总分的函数。下面定义一个Caozuo类,用学生链表的做。你可以去找下这个例子。数组的就很简单了,你只要想想。先定义数组(姓名,成绩),总分就是个人每科成绩的和,下面5个函数都可以通过数组遍历实现。如cout《《“请输入你要查询的学生的名字:“《《endl;cin》》n;for(int i=0;i《=Maxsize;i++){if(Student.Print();}

学生成绩管理系统 C语言程序设计 急!

我自己写了一个关于C语言的链表程序,,里面有插入学生信息和和成绩排名。。也有查找和删除,插入,但是我没有做修改的功能。。。 是没有界面的我还不会图形的。但是我觉得基本代码也应该还是有用的。你给看下我的。看可不可以帮到你。以后希望多多交流 。。。#include “iostream.h“#include “stdio.h“ #define manfen 150typedef struct student { char name; double fen; struct student * next;} student; int i=1;int strcmp(char *a, char *b) { while((*a++ == *b++)&&(*a)) ; if((*a==NULL)&&(*b==NULL)) return 1; else return 0;}void SqlistStudent(student *&L,int j=1){ void heli(student *,int); int a; student *p,*q; q=p=L=new student; for(a=0;a《j;a++) { cout《《endl; cout《《“请输入第“; cout《《i; cout《《“位学生的名字:“; cin》》q-》name; cout《《“ 语文分数:“; cin》》q-》fen; heli(q,0); cout《《“ 数学分数:“; cin》》q-》fen; heli(q,1); cout《《“ 英语分数:“; cin》》q-》fen; heli(q,2); q-》fen=q-》fen+q-》fen+q-》fen; q=new student(); p-》next=q; p=q; q-》next=NULL; i++; } cout《《“输入截止“《《endl;}void heli(student *t,int e){ while(t-》fen-》fen《《endl; cout《《endl; }}void main(){ student *head; int a=1,b=1,c=1,d; char na; cout《《“请输入需要保存的学生人数:“《《endl; cin》》a; SqlistStudent(head,a); while(a!=0) { cout《《endl; cout《《“退出请输入:0“《《endl; cout《《“要查询请输入:1“《《endl; cout《《“要插入学生信息请输入:2“《《endl; cout《《“要查询各科排名情况:3“《《endl; cout《《“要删除学生信息请输入4“《《endl; cin》》a; if(a==0) break; if(a==1) { cout《《“根据分数查询请输入1“《《endl; cout《《“根据名字查询请输入2“《《endl; cout《《“查询所有学生请输入3“《《endl; cin》》b; if(b==1) { cout《《“根据语文分数查询请输入0“《《endl; cout《《“根据数学分数查询请输入1“《《endl; cout《《“根据英语分数查询请输入2“《《endl; cout《《“根据总分数查询请输入3“《《endl; cin》》c; cout《《“请输入要查找科目分数:“《《endl; cin》》d; anfencha(c,d,head); } if(b==2) { cout《《“请输入要查询学生名字:“《《endl; cin》》na; anmin(na,head); } if(b==3) print(head); } if(a==2) { charu(head); } if(a==3) { cout《《“根据语文分数查询请输入0“《《endl; cout《《“根据数学分数查询请输入1“《《endl; cout《《“根据英语分数查询请输入2“《《endl; cout《《“根据总分数查询请输入3“《《endl; cin》》c; paixu(head,c); } if(a==4) shanchu(head); }}

用C++语言编写一个简单的“学生成绩管理系统”

好好看看课本吧。。真是的 现在的孩子,书上有的东西都懒怠打到电脑里。1、 对C++设计的《学生成绩管理系统》总体说明 系统上采用BC31编译器作为开发环境,这个环境是我们在学习C++的平台,这个编译器功能完善,使用方便。我作的这次课程设计是《学生成绩管理系统》,它的主要功能是对学生的成绩进行修改和管理,而且方便快速,这个程序虽然简单,但是可以作为老师的辅助软件,对学生的各种成绩进行管理。 系统功能要求: (1)界面 **************************** 学生成绩管理系统 **************************** ************************************ ** F1 --帮助 ** ** F2 --输入数据并存入文件 ** ** F3 --根据学号查询成绩 ** ** F4 --根据姓名查询成绩 ** ** F5 --输出文件内容 ** ** F6 --统计及格和优秀人数 ** ** ESC--退出系统 ** ************************************ (2)功能 这个程序的主要功能是输入学生的学号、姓名对其进行存储,在存储后可以对学生的成绩按学号和姓名进行查寻。该系统具有存贮学生数据,按学号、姓名查询,列出学生成绩和统计功能。使用方法:系统输入数据后,将在当前目录中建立一个名为stu.dat文件,用于保存输入的数据。学号输入只能用数字输入,并且学号只能是10位。姓名输入符合中国人的姓名,只能用中文,且最长为5个汉字。此程序在BC2.0下运行通过由于是第一次用C++编写,所以水平有限此系统还有许多不够完整和严密性,敬请老师指正! (3)实用性 《学生成绩管理系统》是对学生的成绩进行修改和管理,而且方便快速,这个程序虽然简单,但是可以作为老师的辅助软件,对学生的各种成绩进行管理。 目的: 通过课程设计培养了我的动手能力以及综合运用所学的C++语言基础理论,基础知识,基本技能,进行程序分析和程序开发,提高在实际开发中解决问题的能力,达到了能够利用C++语言进行应用程序的规划,分析,设计和实施,更能进一步使我对这门语言有深刻的理解和更好的得到巩固,更能对我所学的知识得到检验。 2、对《学生成绩管理系统》的介绍 具体的功能: (1)帮助 (2)输入数据并存入文件 (3)根据学号查询成绩 (4)根据姓名查询成绩 (5)输出文件内容 (6)统计及格和优秀人数 (7)退出 (1)帮助 运行程序,屏幕出现该程序界面,第一项就是帮助,在按下“F1”后出现帮助信息,“此系统是应老师所布置的作业编制而成,该系统具有存贮学生数据,按学号、姓名查询,列出学生成绩和统计功能。使用方法:系统输入数据后,将在当前目录中建立一个名为stu.dat文件,用于保存输入的数据。学号输入只能用数字输入,并且学号只能是10位。姓名输入符合中国人的姓名,只能用中文,且最长为5个汉字。” (2)输入数据并存入文件 在界面状态下,按下“F2”后出现“请输入学号:”,若输入“#”,则返回真值结束输入。在其后面可以输入学生的学号,长度要求10位而且必须是数字,这里用到了结构体变量和函数,对输入的字符进行判断,如果输入字母和汉字会出现“非法学号!请重新输入。”,如果学号长度不为10,则返回重新输入提示“学号长度不对。”, 如果学号后面的字符不是回车符,则学号长度大于10提示“学号长度大于10个!请重新输入!” 输入完学号后会出现提示“请输入姓名:”,在其后面可以输入学生的姓名,姓名必须是汉字而且长度必须是5, 这里也用到了结构体变量和函数,对输入的字符进行判断,如果输入为字母和数字会提示“姓名只能用中文,请重新输入!”,如果输入的汉字长度大于5会提示“姓名长度大于5个!请重新输入!”,输入姓名后会出现“请输入数学成绩:”、“ 请输入英语成绩:”和“请输入总评成绩:”输入规则也和前面输入学号、姓名的类似,判断输入的是否为数字,如果不是就会出现提示,重新输入,直到输入正确为止。都输入完成后,改系统会调用写文件函数对指定的文件进行写操作,把输入的学生信息写入到文件中。 (3)根据学号查询成绩 在界面状态下,在按下“F3”后会出现“请输入要查询的学号:” 输入“#”结束查询,若文件打不开则输出下面的信息,“文件打开失败!按任意键返回...”,如果文件打开会按照用户的要求从文件头开始查询满足要求的学号,找到即显示该学生的基本信息和成绩。如果未找到就会显示“无此学号”。 (4)根据姓名查询成绩 在界面状态下,在按下“F4”后会出现“请输入要查询的学生姓名:” 输入“#”结束查询,若文件打不开则输出下面的信息,“文件打开失败!按任意键返回...”,如果文件打开会按照用户的要求从文件头开始查询满足要求的姓名,找到即显示该学生的基本信息和成绩。如果未找到就会显示“无此学生!”。 (5)输出文件内容 输出文件,列出所有学生成绩。如果文件未打开会出现“文件打开失败!按任意键返回...”打开成功会每输出20个学生成绩,停一下提示,“请按任意键继续...”,关闭文件。 (6)统计及格和优秀人数 这里用到结构体函数和变量,判断成绩大于等于60分的为及格,并统计人数,判断成绩大于等于80分的为优秀,并统计人数,最后统计出来,显示在屏幕上。 (7)退出 在界面状态下,按下“ESC”会退出该学生成绩管理系统。返回源程序。 程序清单 /*-------------1-------------*/ #include《bios.h》 #include《dos.h》 /*头文件*/ #include《conio.h》 #include《ctype.h》 #include《process.h》 #include《stdlib.h》 #include《stdio.h》 #include《string.h》 #define NULL 0 #define ESC 0x001b /* 退出 */ #define F1 0x3b00 /* 查看帮助信息,调用HelpMassage()函数 */ #define F2 0x3c00 /*输入学生成绩*/ #define F3 0x3d00 /*按学号查找*/ #define F4 0x3e00 /*按姓名查找*/ #define F5 0x3f00 /*列出所有学生成绩*/ #define F6 0x4000 /*统计*/ struct stuType /*定义结构体变量*/ { char NO; /*学号长度为10*/ char XM; float CJ; /*包含4门成绩*/ }; /*-------------2-------------*/ int JY_NO(char *stu_num,FILE *fp) /*检验学号的正确性*/ { struct stuType stud; int NO; char *p=stu_num; if(strcmp(stu_num,“#“)==0) return 1; /*若输入“#“返回真值,不再循环输入*/ while(*p!=’\0’) /*学号必须是数字,否则返回重新输入*/ { NO=(int)*p; if(NO《48||NO》57) { puts(“\t\t\t非法学号!请重新输入!\n“); return 0; } else p++; /*指针加1*/ } if(strlen(stu_num)!=10) /*若学号长度不为10,则返回重新输入*/ { puts(“\t\t\t学号长度不对!\n“); return 0; } if(getchar()!=’\n’) /*若学号后面的字符不是回车符,则学号长度大于10*/ { printf(“\t\t\t学号长度大于10个!请重新输入!\n“); do{}while(getchar()!=’\n’); /*用getchar接收多余的字符*/ return 0; } else { rewind(fp); /*使文件指针指向头*/ while(!feof(fp)) /*若文件指针未到结尾,就继续执行下面的循环,feof遇到文件结束符返回非零值,否则返回0*/ { fread(&stud,sizeof(struct stuType),1,fp); /*读取一定长度的数据*/ if(strcmp(stu_num,stud.NO)==0) /*学号的唯一性*/ { printf(“\t\t\t学号重复,请重新输入!\n“); printf(“\t\t\t该学生成绩如下:\n“); printf(“\t\t\t语文:%.1f\n“,stud.CJ); printf(“\t\t\t数学:%.1f\n“,stud.CJ); printf(“\t\t\t英语:%.1f\n“,stud.CJ); printf(“\t\t\t总评:%.1f\n“,stud.CJ); return 0; } } } return 1; } /*-------------3-------------*/ int JY_NO2(char *stu_num) /*检验学号*/ { int NO; char *p=stu_num; if(strcmp(stu_num,“#“)==0)return 1; /*若输入“#”,则返回真值结束*/ if(strlen(stu_num)!=10) /*学号长度为10*/ { puts(“\t\t\t学号长度不对!\n“); return 0; } while(*p!=’\0’) /*学号必须用数字,若包含有字母,或其它字符则返回假值重新输入*/ { NO=(int)*p; if(NO《48||NO》57) { puts(“\t\t\t非法学号!请重新输入!\n“); return 0; } else p++; /*指针加1*/ } if(getchar()!=’\n’) /*检验学号长度是否大于10,并把多余的字符去掉*/ { printf(“\t\t\t学号长度大于10个!请重新输入!\n“); do{}while(getchar()!=’\n’); return 0; } return 1; } /*-------------4-------------*/ int JY_XM(char *stu_XM) /*检验姓名*/ { int PD; char *p; p=stu_XM; while(*p!=’\0’) /*姓名只能用中文*/ { PD=(int)*p; if(PD》0) { puts(“\t\t\t姓名只能用中文,请重新输入!\n“); return 0; } else p++; /*使指针加1,指向下一汉字*/ } if(getchar()!=’\n’) /*姓名长度不得大于5个*/ { printf(“\t\t\t姓名长度大于5个!请重新输入!\n“); do{}while(getchar()!=’\n’); return 0; } return 1; /*字符串全为汉字返回真*/ } /*-------------5-------------*/ int JY_CJ(float stu_CJ) /*学生成绩只能在0~100之间*/ { if(stu_CJ《0||stu_CJ》100) { printf(“\t\t\t输入错误,成绩只能在0~100之间!\n“); return 0; } return 1; } /*-------------6-------------*/ void CreatFile() /*输入文件*/ { FILE *fp; struct stuType stu,stu0={““,““,}; /*对stu0先赋值*/ fp=fopen(“stu.dat“,“wb+“); /*打开或创建一个二进制文件,打开时将原来的内容删除*/ if(fp==NULL) { printf(“\t\t\t文件打开失败!\n\t\t\t按任意键返回...“); getch(); return; } else { while(1) { stu=stu0; do{ printf(“\n\t\t\t请输入学号:“); /*输入学号并检验其正确性*/ scanf(“%10s“,stu.NO); }while(!JY_NO(stu.NO,fp)); if(strcmp(stu.NO,“#“)==0)break; do{ printf(“\n\t\t\t请输入姓名:“); /*输入姓名并检验其正确性*/ scanf(“%10s“,stu.XM); }while(!JY_XM(stu.XM)); do{ printf(“\n\t\t\t请输入语文成绩:“); /*输入成绩并检验其正确性*/ scanf(“%f“,&stu.CJ); }while(!JY_CJ(stu.CJ)); do{ printf(“\n\t\t\t请输入数学成绩:“); /*同上*/ scanf(“%f“,&stu.CJ); }while(!JY_CJ(stu.CJ)); do{ printf(“\n\t\t\t请输入英语成绩:“); scanf(“%f“,&stu.CJ); }while(!JY_CJ(stu.CJ)); do{ printf(“\n\t\t\t请输入总评成绩:“); scanf(“%f“,&stu.CJ); }while(!JY_CJ(stu.CJ)); fwrite(&stu,sizeof(struct stuType),1,fp); /*写文件*/ } } fclose(fp); /*关闭文件*/ } /*-------------7-------------*/ void Search_Xuehao() /*按学号查询*/ { FILE *fp; int flag; struct stuType stu,stud; fp=fopen(“stu.dat“,“rb“); if(fp==NULL) /*若文件打不开则输出下面的信息*/ { printf(“\t\t\t文件打开失败!\n\t\t\t按任意键返回...“); getch(); return; } else { do{ puts(“\n\t\t\t输入“#”结束查询“); do{ printf(“\t\t\t请输入要查询的学号:“); scanf(“%10s“,stu.NO); }while(!JY_NO2(stu.NO)); if(strcmp(stu.NO,“#“)==0)break; /*若输入“#”则结束循环*/ flag=0; rewind(fp); while(fread(&stud,sizeof(struct stuType),1,fp)) /*检查文件指针结束*/ { if(strcmp(stu.NO,stud.NO)==0) /*比较学号*/ { puts(“\t\t\t该学生成绩如下:“); printf(“\t\t\t学号:%s\n“,stud.NO); printf(“\t\t\t姓名:%s\n“,stud.XM); printf(“\t\t\t语文:%.1f\n“,stud.CJ); printf(“\t\t\t数学:%.1f\n“,stud.CJ); printf(“\t\t\t英语:%.1f\n“,stud.CJ); printf(“\t\t\t总评:%.1f\n“,stud.CJ); flag=1; /*记录学号是否查到*/ } } if(flag==0)puts(“\t\t\t无此学号!“); }while(strcmp(stu.NO,“#“)!=0); } fclose(fp); /*关闭文件*/ } /*-------------8-------------*/ void Search_Xingming() /*按姓名查找*/ { FILE *fp; int flag=0; struct stuType stu,stud; fp=fopen(“stu.dat“,“rb“); if(fp==NULL) { printf(“\t\t\t文件打开失败!\n\t\t\t按任意键返回...“); getch(); return; } else { do{ do{ printf(“\t\t\t请输入要查询的学生姓名:“); scanf(“%10s“,stu.XM); }while(!JY_XM(stu.XM)); rewind(fp); /*文件指针指向头*/ while(fread(&stud,sizeof(struct stuType),1,fp)) { if(strcmp(stu.XM,stud.XM)==0) /*比较姓名是否相同*/ { puts(“\t\t\t该学生姓名如下:“); printf(“\t\t\t学号:%s\n“,stud.NO); printf(“\t\t\t姓名:%s\n“,stud.XM); printf(“\t\t\t语文:%.1f\n“,stud.CJ); printf(“\t\t\t数学:%.1f\n“,stud.CJ); printf(“\t\t\t英语:%.1f\n“,stud.CJ); printf(“\t\t\t总评:%.1f\n“,stud.CJ); flag=1; /*记录姓名是否被查到*/ } } if(flag==0)puts(“\n\t\t\t无此学生!“); puts(“\t\t\t是否继续(y--继续,其他返回)?“); }while(getch()==’y’); } fclose(fp); /* puts(“\t\t\t请按任意键继续...“);*/ /* getch();*/ } /*-------------9-------------*/ int ListFile(void) /*输出文件,列出所有学生成绩*/ { FILE *fp; int REC=0; /*记录学生人数*/ struct stuType stu; fp=fopen(“stu.dat“,“rb“); if(fp==NULL) { printf(“\t\t\t文件打开失败!\n\t\t\t按任意键返回...“); getch(); return 1; } else{ printf(“\t\t\t学生成绩如下:\n“); printf(“\t\t\t学号\t\t姓名\t语文\t数学\t英语\t总评\n“); rewind(fp); while(fread(&stu,sizeof(struct stuType),1,fp)) { /*每读取一个长度的数据就输出*/ printf(“\t\t\t%s“,stu.NO); printf(“\t%s“,stu.XM); printf(“\t%.1f“,stu.CJ); printf(“\t%.1f“,stu.CJ); printf(“\t%.1f“,stu.CJ); printf(“\t%.1f“,stu.CJ); printf(“\n“); REC++; if(REC%20==0) /*每输出20个学生成绩,停一下*/ { printf(“\t\t\t请按任意键继续...\n“); getch(); } } } fclose(fp); /*关闭文件*/ printf(“\t\t\t请按任意键继续...“); getch(); } /*-------------10-------------*/ void Statistics() /*统计及格和优秀人数*/ { FILE *fp; int REC=0,pass={0},good={0}; /*REC--记录个数,即人数,pass--及格人数,good--优秀人数*/ float highest={0},score={0}; /*highest--最高分,score--总分*/ struct stuType stu; fp=fopen(“stu.dat“,“rb“); if(fp==NULL) { printf(“\t\t\t文件打开失败!\n\t\t\t按任意键返回...“); getch(); return; } else { rewind(fp); while(fread(&stu,sizeof(struct stuType),1,fp)) { REC++; score=score+stu.CJ; /*语文*/ if(stu.CJ》=60)pass++; if(stu.CJ》=80)good++; if(highest《stu.CJ)highest=stu.CJ; score=score+stu.CJ; /*数学*/ if(stu.CJ》=60)pass++; if(stu.CJ》=80)good++; if(highest《stu.CJ)highest=stu.CJ; score=score+stu.CJ; /*英语*/ if(stu.CJ》=60)pass++; if(stu.CJ》=80)good++; if(highest《stu.CJ)highest=stu.CJ; score=score+stu.CJ; /*总评*/ if(stu.CJ》=60)pass++; if(stu.CJ》=80)good++; if(highest《stu.CJ)highest=stu.CJ; } if(REC==0) /*可以防止记录为0是REC作除数而造成的错误*/ { printf(“\t\t\t未输入学生记录!按任意键返回...“); getch(); return; } else{ printf(“\t\t\t\t 语文\t 数学\t 英语\t 总评\n“); /*输出统计信息*/ printf(“\t\t\t平均分: %.1f\t %.1f\t %.1f\t %.1f\n“,score/REC,score/REC,score/REC,score/REC); printf(“\t\t\t最高分: %.1f\t %.1f\t %.1f\t %.1f\n“,highest,highest,highest,highest); printf(“\t\t\t优秀人数:%d\t %d\t %d\t %d\n“,good,good,good,good); printf(“\t\t\t及格人数:%d\t %d\t %d\t %d\n“,pass,pass,pass,pass); } } fclose(fp); printf(“\n\t\t\t请按任意键继续...“); getch(); } /*-------------11-------------*/ void HelpMessage() { clrscr(); printf(“\n\n\n\n\n 此系统是应老师所布置的作业编制而成,该系统具有存贮学生数据,按学号、姓名查询,列出学生成绩和统计功能。\n \n 使用方法:系统输入数据后,将在当前目录中建立一个名为stu.dat文件,用于保存输入的数据。学号输入只能用数字输入,并且学号只能是10位。姓名输入符合中国人的姓名,只能用中文,且最长为5个汉字。\n 此程序在Turbo C2.0下运行通过\n\n 由于是初学者,水平有限此系统还有许多不够完整和严密性,敬请指正!“); getch(); } /*-------------12-------------*/ int GetKey(void) /*此函数返回一个按键的数值*/ { int key; key=bioskey(0); /*bioskey为调用BIOS键盘接口*/ if(key《《8) /*位移*/ { key=key&0x00ff; } return key; /*返回按键*/ } /*-------------13-------------*/ void main() { int key; struct date d; /*定义时间结构体*/ getdate(&d); /*读取系统日期并把它放到结构体d中*/ clrscr(); /*清除屏幕*/ printf(“\n\n\n\n\n“); printf(“\t\t\t****************************\n“); /*版本信息*/ printf(“\t\t\t 学生成绩管理系统1.0 \n“); printf(“\t\t\t****************************\n“); printf(“\t\t\t 制作人:张春覃 \n“); printf(“\t\t\t 指导老师:杨宇晶 于宏伟 \n“); printf(“\t\t\t 制作时间:2005年9月 \n“); printf(“\t\t\t****************************\n“); printf(“\t\t\t请按任意键继续...“); /*while(!kbhit());*/ getch(); /*从键盘读取一个字符,但不显示于屏幕*/ system(“cls“); /*调用DOS的清屏函数,TC中可用clrscr代替*/ while(1) /*主菜单*/ { printf(“\n\n\n\n\n“); printf(“\t\t\t************************************\n“); printf(“\t\t\t**\tF1 --帮助 **\n“); printf(“\t\t\t**\tF2 --输入数据并存入文件 **\n“); printf(“\t\t\t**\tF3 --根据学号查询成绩 **\n“); printf(“\t\t\t**\tF4 --根据姓名查询成绩 **\n“); printf(“\t\t\t**\tF5 --输出文件内容 **\n“); printf(“\t\t\t**\tF6 --统计及格和优秀人数 **\n“); printf(“\t\t\t**\tESC--退出系统 **\n“); printf(“\t\t\t************************************\n“); printf(“\n\t\t\t请输入选项\t\t%d年%d月%d日\n\n“,d.da_year,d.da_mon,d.da_day); /*提示信息,并显示当前系统日期*/ key=GetKey(); /*调用自定义函数,读取一个键*/ switch(key) { case F1: HelpMessage(); break; case F2: CreatFile(); break; case F3: Search_Xuehao(); break; case F4: Search_Xingming();break; case F5: ListFile(); break; case F6: Statistics(); break; case ESC:exit(1); break; /*default: puts(“\t\t\t输入错误选项!“); printf(“\t\t\t按任意键返回...“); getch();*/ } clrscr(); /*每执行完一项功能后,自动清屏*/ } } 1. 总结 通过本次的C++课程设计,让我学会了把书本上的知识应用到了实际中来。虽然在这几周中有过挫折和坎坷,有的问题一直到了最后才被解决,但是我认为这未必就不是好事,这样能锻炼我的意志,磨练我的耐心,失败是成功之母,这话一点都没错,没有失败就没有成功。 让我没有失去信心的是关怀我们的老师,当我们有了问题和疑问,老师就很耐心的给予讲解,让我们有了一个良好的学习氛围。 2. 参考文献 《C++程序设计》 钱能 清华大学出版社 《C++程序设计试验指导》 钱能 清华大学出版社 《C程序设计》 谭浩强 清华大学出版社

设计学生成绩管理系统

#include #include #include #define MAX 1000 /*定义学生成绩信息结构*/ struct stu { char id; char name; double Chinese; double Math; double English; double average; double total; }; /*学生结构数组,用于存储学生成绩信息*/ struct stu students.average); mark = 0; break; } } if (mark == 1) puts(“不存在该学生记录“); } void print_menu() { system(“cls“); printf(“1.输入学生信息\n“); puts(“2.统计全班学生成绩“); puts(“3.按学号查询学生成绩“); puts(“4.按姓名查询学生成绩“); puts(“5.输出不及格情况“); puts(“6.输出优等生名单“); puts(“0.退出本程序“); printf(“\n\n 请输入你的选择:“); } int main(int argc, char **argv) { char ch = 0; char id, name; while (ch != ’0’) { print_menu(); ch = getchar(); switch (ch) { case ’1’: { system(“cls“); input(); sort(students, current); break; } case ’2’: { system(“cls“); print_score(students, current); break; } case ’3’: { system(“cls“); printf(“请输入学号:“); scanf(“%s“, id); search_id(students, current, id); break; } case ’4’: { system(“cls“); printf(“请输入姓名:“); scanf(“%s“, name); search_name(students, current, name); break; } case ’5’: { system(“cls“); print_unreach(students, current); break; } case ’6’: { system(“cls“); print_good(students, current); break; } case ’0’: exit(0); } printf(“\n\n按任意键返回主菜单……“); getchar(); getchar(); } return 0; }

学生成绩管理系统的设计与实现

给一个我以前写过的吧,功能应该差不多#include #include #include #include #include #include #include #include #include using namespace std;/*定义学生结构体*/struct Student{ char ID; char Name; float Mark1; float Mark2; float Mark3; float Average;};/*声明学生数组及学生数量*/struct Student students;int num=0; /*求平均值*/float Avg(struct Student stu){ return (stu.Mark1+stu.Mark2+stu.Mark3)/3;} /*通过学号返回数组下标*/int Student_SearchByIndex(char id){ int i; for (i=0;i

c语言实现设计一个学生成绩管理系统课程

参考代码如下,不过还是建议自己写一写比较好:#include 《stdio.h》#include 《string.h》#include 《stdlib.h》struct student //结构体{ char name; //姓名 char number; //学号 double math; //数学 double english; //英语 double chinese; //语文 double program; //程序 }s;void head() //界面{ printf( “**********************************************************************\n“ “** **\n“ “** **\n“ “** 学生成绩管理系统 **\n“ “** **\n“ “** 1.信息录入 **\n“ “** 2.信息统计 **\n“ “** 3.信息浏览 **\n“ “** 4.信息查询 **\n“ “** 5.信息排序 **\n“ “** 6.信息删除 **\n“ “** 0.退出系统 **\n“ “** **\n“ “**********************************************************************\n“ );}void daoru(struct student s, int* n) //文件导入函数{ FILE *p; int i=*n; if((p=fopen(“数据.txt“, “r“))==NULL) { n=n; } else { while(!feof(p)) { fscanf(p, “%s%s%lf%lf%lf%lf\n“, s.math==min) { counter++; } } printf(“\n最低分信息:\n“); printf(“数学最低分为:%.1lf, 人数为:%d人\n“, min, counter); printf(“英语最低分为:%.1lf, 人数为:%d人\n“, min, counter); printf(“语文最低分为:%.1lf, 人数为:%d人\n“, min, counter); printf(“程序最低分为:%.1lf, 人数为:%d人\n“, min, counter);}void tongji(struct student s, int n) //统计函数 { printf(“统计信息如下:\n“); printf(“\n姓名\t\t学号\t\t总分\t平均分\n“); allAndAver(s, n); Max(s, n); Min(s, n) ; Fail(s, n); }int main() //主函数{ int k, n=0; daoru(s, &n); daochu(s, n); while (1) { head(); printf(“\n请按对应的键选择相应的功能:“); scanf(“%d“,&k); switch (k) { case 1: shuru(s, &n); break; case 2: tongji(s, n); break; case 3: dayin(s, n); break; case 4: chazhao(s, n); break; case 5: paixu(s, n); break; case 6: shanchu(s, &n); break; case 0: exit(1); break; default : printf(“请输入正确的命令!\n“); } system(“pause“); system(“cls“); } return 0;}