学生成绩管理系统c++源代码
#include struct student { int num; char name[20]; char sex; float score[2]; }stu[100]; struct student1 { int num; char name[20]; char sex; float score[2]; struct student1 *next; }; int main() { void browse(); void input(); void search(); void tongji(); void del(); int flag=1,n; while(flag) { printf("1----------学生录入\n"); printf("2----------学生浏览\n"); printf("3----------学生查询\n"); printf("4----------学生删除\n"); printf("5----------成绩统计\n"); printf("0----------退出系统\n"); printf("请选择(0----5)\n"); scanf("%d",&n); switch(n) { case 1:input();break; case 2:browse();break; case 3:search();break; case 4:del();break; case 5:tongji();break; case 0:flag=0;break; } } return 0; } void input() { FILE *fp; char filename[10]; char c,b; int k; printf("录入系统\n"); int flag1=1,i=0; printf("请输入学生学号,姓名,性别,英语成绩,c语言成绩\n"); while(flag1) { scanf("%d %s %c %f %f",&stu[i].num,stu[i].name,&stu[i].sex,&stu[i].score[0],&stu[i].score[1]); i++; scanf("%c",&b); printf("continue?Y/N"); scanf("%c",&c); if(c=='n'||c=='N') flag1=0; if(c=='y'||c=='Y') flag1=1; } printf("请输入文件名\n"); scanf("%s",filename); fp=fopen(filename,"ab+"); if(fp==NULL) exit(0); else { for(k=0;knext=p; q=p; p=(struct student1 *)malloc(sizeof(struct student1)); } q->next=NULL; q=head; p=q->next; // p=NULL; while(p!=NULL) { if(p->num==number) { q->next=p->next; free(p);break; } else { q=p; p=p->next; } } fclose(fp); printf("请输入文件名:\n"); scanf("%s",filename); fp=fopen(filename,"wb"); if(fp==NULL) exit(0); else { p=head->next; while(p!=NULL) { fwrite(p,sizeof(struct student),1,fp); p=p->next; } fclose(fp); } } void tongji() { FILE *fp; char filename[10]; int n,i=0; printf("请输入文件名:"); scanf("%s",filename); fp=fopen(filename,"rb"); struct student s1,temp[100]; while(fread(&s1,sizeof(struct student),1,fp)==1) temp[i++]=s1; int k; for(n=0;n<=100;n++) for(k=0;k<i;k++) { if(temp[k].score[1]==n) printf("学号%d 姓名%s 性别%c 英语成绩%f c语言成绩%f\n",temp[k].num,temp[k].name,temp[k].sex,temp[k].score[0],temp[k].score[1]); } } 撸主参考下!!好的话要给我分哦
c语言程序学生成绩管理系统源代码
展开全部 头文件:::#ifndef H_STUDENT_HH#define H_STUDENT_HH#include "stdio.h"#include "string.h"#include "malloc.h"#define LEN sizeof(struct message_student) /*一个结构体数组元素的长度*/#define numsubs 5 /*学科数目*/typedef struct message_student /*结构体定义*/{ char number[6]; char name[20]; char sex[4]; float subject[numsubs]; float score; float average; int index;}student;extern int numstus; /*学生数目*/extern student *pointer; /*指向结构体数组*/extern int lens;int menu_select(); /*函数声明*/int openfile(student stu[]);int findrecord(student stud[]);int writetotext(student stud[]);void welcome();void display1();void showtable();void sort(student stu[]); void deleterecord(student stu[],int i);void addrecord(student stud[]);void display(student stud[],int n1,int n2);void amendrecord(student stud[]);void count(student stud[]);void sortnum(student stud[]);void sortnum2(student stud[]);void sortname(student stud[]);void sortname2(student stud[]);void sortcount(student stud[]);void sortcount2(student stud[]);void statistic(student stud[]);void display1();#endif#include "head.h"int menu_select() { char c; printf("\n\n"); printf(" | 1. 增加学生记录 5.统计信息 |\n"); printf(" | 2. 查询学生记录 6.打开文件 |\n"); printf(" | 3. 修改学生记录 7.保存文件 |\n"); printf(" | 4. 学生纪录排序 8.显示记录 |\n"); printf(" | 0.退出系统 |\n"); printf("\n\n"); printf("请选择(0-8):"); c=getchar(); getchar(); return (c-'0');}#include "head.h"int findrecord(student stud[]) /*查找信息*/{ char str[2]; int i,num; if(numstus==0) { printf("没有可被查找的记录\n"); return -1; } else { printf("以何种方式查找?\n1.学号\t2.姓名\t3.名次\n"); gets(str); if(str[0]=='1') /*按学号查找*/ { printf("请输入学号:"); gets(str); for(i=0;inumstus) { printf("没有查找所要的信息。
\n"); return -1; } return i; }}#include"head.h"int openfile(student stu[]){ int i=0,j; FILE *fp; char filename[20],str[2]; if(numstus!=0) { printf("已经有记录存在,是否保存?(y/n)"); gets(str); if(str[0]=='y'||str[0]=='Y') writetotext(stu); } printf("请输入文件名:"); gets(filename); numstus=0; if((fp=fopen(filename,"rb+"))==NULL) { printf("无法打开该文件\n"); return(-1); } fscanf(fp,"%d",&numstus); fgetc(fp); while(i0) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } } } void sortnum2(student stud[]) { int i,j; student temp; student *p; p=stud; for(i=0;i0) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } } } void sortname(student stud[]) { int i,j; student temp; student *p; p=stud; for(i=0;i0) { temp=*...
学生成绩管理系统的代码是什么?
代码如下:for(i=0;iprintf("*"); printf("\n"); printf("1.Input record\n"); printf("2.Caculate totel and average score of every course\n"); printf("3.Caculate totel and average score of every student\n"); printf("4.Sort in descending order by total score of every student\n"); printf("5.Sort in ascending order by total score of every student\n"); printf("6.Sort in ascending order by number\n"); printf("7.Sort in ascending order by name\n"); printf("8.Search by number\n"); printf("9.Search by name\n"); printf("10.Statistic analysis for every course\n"); printf("11.List record\n"); printf("12.Write to a file\n"); printf("13.Read from a file\n"); printf("0.Exit\n"); for(i=0;iprintf("*"); printf("\n"); printf("Please enter your choice:"); printf("\n"); 输入函数:void Readscore (STU stu[],int n,int m) //1.输入数据 { int i,j; for(i=0;i{ printf("Input student's ID ,name and score"); scanf("%ld",&stu[i].studentID); scanf("%s",stu[i].studentName); for(j=0;jscanf("%d",&stu[i].score[j]); } } 数据处理函数:void Tota (STU stu[],int n,int m) //2.计算每门课程的总分和平均分 { int i,j,sum[M]; double ave[M]; for(j=0;j{ sum[j]=0; for(i=0;i{ sum[j]=sum[j]+stu[i].score[j]; } ave[j]=(double)sum[j]/n; } for(i=0;iprintf("Project %d 总分=%d,课程的平均分=%f\n",i+1,sum[i],ave[i]); } void Datasort_1 (STU stu[],int n,int m) //3.计算每个学生的总分和平均分 { int i,j,sum[N]; double ave[N]; for(i=0;i{ sum[i]=0; for(j=0;j{ sum[i]=sum[i]+stu[i].score[j]; } ave[i]=(double)sum[i]/m; } for(i=0;iprintf("ID:%10ld,Name: %s Allscore=%d,The ave=%f\n",stu[i].studentID,stu[i].studentName,sum[i],ave[i]); } 排序函数:void Datasort_2 (STU stu[],int n,int m) //4.按每个学生的总分由高到低排出名次表 { int i,j,k,h,sum[N]; STU t; for(i=0;i{ sum[i]=0; for(j=0;j{ sum[i]=sum[i]+stu[i].score[j]; } } for(i=0;i{ k=i; for(j=i+1;j{ if (sum[j]>sum[k]) k=j; } if(i!=k) { t=stu[i],h=sum[i]; stu[i]=stu[k],sum[i]=sum[k]; stu[k]=t,sum[k]=h; } } for(i=0;iprintf("ID:%10ld,Name:%s,Score:%d\n",stu[i].studentID,stu[i].studentName,sum[i]); } void Datasort_3 (STU stu[],int n,int m) //5.按每个学生的总分由低到高排出名次表 { int i,j,k,h,sum[N]; STU t; for(i=0;i{ sum[i]=0; for(j=0;j{ sum[i]=sum[i]+stu[i].score[j]; } } for(i=0;i{ k=i; for(j=i+1;j{ if (sum[j]k=j; } if(i!=k) { t=stu[i],h=sum[i]; stu[i]=stu[k],sum[i]=sum[k]; stu[k]=t,sum[k]=h; } } for(i=0;iprintf("ID:%10ld,Name:%s,score:%d\n",stu[i].studentID,stu[i].studentName,sum[i]); } void Datasort_4 (STU stu[],int n,int m) //6.按学号由小到大排出名次表 { int i,j,k; STU t; for(i=0;i{ k=i; for(j=i+1;j{ if (stu[j].studentIDk=j; } if(i!=k) t=stu[k],stu[k]=stu[i],stu[i]=t; } for(i=0;i{ printf("ID:%10ld,Name:%s\n",stu[i].studentID,stu[i].studentName); for(j=0;jprintf("Project %d Score:%d\n",j+1,stu[i].score[j]); } } 数据分析函数:void Statistis (STU stu[],int n,int m) //10.{ int i,j,count_1,count_2,count_3,count_4,count_5; for(j=0;j{ count_1=0,count_2=0,count_3=0,count_4=0,count_5=0; for(i=0;i{ if(stu[i].score[j]>=90) count_1++; else if(stu[i].score[j]>=80) count_2++; else if(stu[i].score[j]>=70) count_3++; else if(stu[i].score[j]>=60) count_4++; else count_5++; } printf("project %d\n",j+1); printf("优秀:%d\t优秀率:%f%\n",count_1,(float)count_1/n); printf("良好:%d\t良好率:%f%\n",count_2,(float)count_2/n); printf("中等:%d\t中等率:%f\n",count_3,(float)count_3/n); printf("及格:%d\t及格率:%f\n",count_4,(float)count_4/n); printf("不及格:%d\t不及格率:%f\n",count_5,(float)count_5/n); } } 数据界面打印函数:void List (STU stu[],int n,int m) //11.{ int i,j,sum[N]; double ave[N]; for(i=0;i{ sum[i]=0; for(j=0;j{ sum[i]=sum[i]+stu[i].score[j]; } ave[i]=(double)sum[i]/m; } for(i=0;i{ printf("ID:%10ld,Name:%s\n",stu[i].studentID,stu[i].studentName); for(j=0;j{ printf("Score %d :%d\n",j+1,stu[i].score[j]); } printf("Allscore=%d\n平均分%f\n",sum[i],ave[i]); } } 文件处理函数:void WritetoFile(STU stu[],int n,int m) //将每个学生的记录信息写入文件 { Tota(stu,n,m); Datasort_2 (stu,n,m); FILE *fp; if((fp=fopen("student.txt","w"))==NULL) { printf("Failure to open student.txt!\n"); exit(0); } fwrite(stu,sizeof(STU),n,fp); fclose(fp); } int ReadfromFile(STU stu[],int n,int m)//从文件中读出每个学生的记录信息并显示 { FILE *fp; int i; if((fp=fopen("student.txt","r"))==NULL) { printf("Failure to open student.txt!\n"); exit(0); } for(i=0;!feof(fp);i++) { fread(&stu[i],sizeof(STU),1,fp); } fclose(fp); printf("Total student is %d.\n",i-1); n=i-1; List(stu,n,m); //输出从文件中读出的信息到屏幕上 return i-1; }
学生成绩管理系统C语言代码
#include #include#include#include #include#define MAX 80void input();void sort();void display();void insert();void del();void average();void find();;void read();;void average();void modify();int now_no=0;struct student{ int no; char name[20]; char sex[4]; float score1; float score2; float score3; float sort; float ave; float sum;};void average()/*求平均数*/{ int i; for(i=0;i { stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3; stu[i].ave=stu[i].sum/3; }}struct student stu[MAX],*p;main()/*主函数*/{ int as; start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n"); /*一下为功能选择模块*/ do { printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.修改学员信息\n\t\t\t\t7.查询学员信息\n\t\t\t\t8.退出\n"); printf("\t\t\t\t选择功能选项:"); fflush(stdin); scanf("%d",&as); switch(as) { case 1:system("cls");input();break; case 2:system("cls");display();break; case 3:system("cls");sort();break; case 4:system("cls");insert();break; case 5:system("cls");del();break; case 6:system("cls");modify();break; case 7:system("cls");find();break;; case 8:system("exit");exit(0); default:system("cls");goto start; } }while(1); /*至此功能选择结束*/}void input()/*原始数据录入模块*/{ int i=0; char ch; do { printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1); printf("\n输入学生编号:"); scanf("%d",&stu[i].no); fflush(stdin); printf("\n输入学员姓名:"); fflush(stdin); gets(stu[i].name); printf("\n输入学员性别:"); fflush(stdin); gets(stu[i].sex); printf("\n输入学员成绩1:"); fflush(stdin); scanf("%f",&stu[i].score1); printf("\n输入学员成绩2:"); fflush(stdin); scanf("%f",&stu[i].score2); printf("\n输入学员成绩3:"); fflush(stdin); scanf("%f",&stu[i].score3); printf("\n\n"); i++; now_no=i; printf("是否继续输入?(Y/N)"); fflush(stdin); ch=getch(); system("cls"); } while(ch!='n'&&ch!='N'); system("cls");}void sort()/*排序数据函数*/{ struct student temp; int i,j; average(); for(i=1;i { for(j=1;j { if(stu[j-1].ave { temp=stu[j]; stu[j]=stu[j-1]; stu[j-1]=temp; } } }}void display()/*显示数据函数*/{ int i; char as; average(); do { printf("\t\t\t班级学员信息列表\n"); printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n"); for(i=0;i printf("\t\t按任意键返回主菜单."); fflush(stdin); as=getch(); } while(!as); system("cls");}void insert()/*插入数据函数*/{ char ch; do { printf("\n\t\t输入新插入学员队信息\n"); printf("\n输入学生编号:"); scanf("%d",&stu[now_no].no); fflush(stdin); printf("\n输入学员姓名:"); fflush(stdin); gets(stu[now_no].name); printf("\n输入学员性别:"); fflush(stdin); gets(stu[now_no].sex); printf("\n输入学员成绩1:"); fflush(stdin); scanf("%f",&stu[now_no].score1); printf("\n输入学员成绩2:"); fflush(stdin); scanf("%f",&stu[now_no].score2); printf("\n输入学员成绩3:"); fflush(stdin); scanf("%f",&stu[now_no].score3); printf("\n\n"); now_no=now_no+1; sort(); printf("是否继续输入?(Y/N)"); fflush(stdin); ch=getch(); system("cls"); } while(ch!='n'&&ch!='N');}void del()/*删除数据函数*/{ int inum,i,j; printf("输入要删除学员的编号:"); fflush(stdin); scanf("%d",&inum); for(i=0;i { if(stu[i].no==inum) { if(i==now_no)now_no-=1; else { stu[i]=stu[now_no-1]; now_no-=1; } sort(); break; } } system("cls");}void find()/*查询函数*/{ int i; char str[20],as; do { printf("输入要查询的学生姓名:"); fflush(stdin); gets(str); for(i=0;i if(!strcmp(stu[i].name,str)) { printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n"); printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave); } printf("\t\t按任意键返回主菜单."); fflush(stdin); as=getch(); } while(!as); system("cls");}void modify()/*修改数据函数*/{ int i; char str[20],as; printf("输入要修改的学生姓名:"); fflush(stdin); gets(str); for(i=0;i if(!strcmp(stu[i].name,str)) { system("cls"); printf("\n\t\t输入修改学员信息\n"); printf("\n输入学生编号:"); fflush(stdin); scanf("%d",&stu[i].no); printf("\n输入学员性别:"); fflush(stdin); gets(stu[i].sex); printf("\n输入学员成绩1:"); fflush(stdin); scanf("%f",&stu[i].score1); printf("\n输入学员成绩2:"); fflush(stdin); scanf("%f",&stu[i].score2); printf("\n输入学员成绩3:"); fflush(stdin); scanf("%f",&stu[i].score3); printf("\n\n"); sort(); break; } system("cls");}
求学生成绩管理系统的源代码
展开全部 #include #include #define FILENAME "student.dat"typedef enum{MAN, WOMAN} SEX;typedef struct tagStudent{ int num; //学生的编号 char name[20]; //学生的姓名 SEX sex; //学生的性别 int age; //学生的年龄 char major[20]; //学生的专业 struct tagStudent *next;//下一个节点的指针}STUDENT, *PSTUDENT;STUDENT g_head; //头节点//1.显示菜单void ShowMenu();//2.获取用户选择的菜单的编号int GetMenuChoose();//3.创建一个节点,它会返回一个新创建的学生信息节点的指针PSTUDENT CreateStudent();//4.把学生信息节点加入到链表中int AddStudent(PSTUDENT pstu);//5.返回指定编号学生节点的上一个节点的指针PSTUDENT GetPrevAddr(int num);//6.显示所有学生信息void ShowAll();//7.显示信息数量int ShowStudentCount();//8.修改学生信息,参数为要修改的学生的编号void ModityStudent(int num);//9.获取用户的选择int Question(const char *pstr);//10.获取用户输入的学生的编号int GetInputNum();//11.删除编号为num的学生信息void DelStudent(int num);//12.删除所有的学生信息void DelAll();//13.把学生信息保存到文件当中void SaveToFile();//14.从文件中读取学生信息void LoadFromFile();int main(){ int running = 1; while(running) { switch(GetMenuChoose()) { case 0: running = 0; break; case 1:// printf("你选择了菜单1\n"); AddStudent(CreateStudent()); break; case 2:// printf("你选择了菜单2\n"); DelStudent(GetInputNum()); break; case 3: printf("你选择了菜单3\n"); break; case 4:// printf("你选择了菜单4\n"); ModityStudent(GetInputNum()); break; case 5:// printf("你选择了菜单5\n"); DelAll(); break; case 6:// printf("你选择了菜单6\n"); ShowAll(); break; case 7:// printf("你选择了菜单7\n"); ShowStudentCount(); break; case 8:// printf("你选择了菜单8\n"); LoadFromFile(); break; case 9:// printf("你选择了菜单9\n"); SaveToFile(); break; } system("pause"); } return 0;}//1.显示菜单void ShowMenu(){ system("cls"); printf("-----------------------------学生管理系统--------------------------------\n"); printf("\n\t1.添加学生信息 2.删除某个学生信息 3.显示某个学生信息\n"); printf("\t4.修改学生信息 5.删除所有学生信息 6.显示所有学生信息\n"); printf("\t7.显示信息数量 8.读取文件学生信息 9.保存学生信息至文件\n"); printf("\t0.退出系统\n"); printf("\n-------------------------------------------------------------------------\n");}//2.获取用户选择的菜单的编号int GetMenuChoose(){ int num;//保存用户选择的菜单编号 ShowMenu(); printf("请选择菜单(0 ~ 9):"); while(1 != scanf("%d", &num) || num 9) { ShowMenu(); printf("选择菜单错误,请重新选择(0 ~ 9):"); fflush(stdin);//清空输入缓冲区 } return num;}//3.创建一个节点,它会返回一个新创建的学生信息节点的指针PSTUDENT CreateStudent(){ int sex; PSTUDENT pstu = (PSTUDENT)malloc(sizeof(STUDENT));//在堆内存申请空间,存储学生信息 if(!pstu) { printf("申请内存空间失败!\n"); return NULL; } printf("请输入学生的编号(整型):"); while(1 != scanf("%d", &pstu->num) || GetPrevAddr(pstu->num)) { printf("学生编号输入错误或已经存在,请重新输入学生的编号(整型):"); fflush(stdin); } printf("请输入学生的姓名(小于20字符):"); scanf("%20s", pstu->name);//(*pstu).name printf("请选择学生的性别(1.男 2.女):"); while(1 != scanf("%d", &sex) || sex 2) { printf("性别选择错误,请重新选择学生的性别(1.男 2.女):"); fflush(stdin); } if(1 == sex) pstu->sex = MAN; else pstu->sex = WOMAN; printf("请输入学生的年龄(10 ~ 40):"); while(1 != scanf("%d", &pstu->age) || pstu->age age > 40) { printf("年龄输入错误!请重新输入学生的年龄(10 ~ 40):"); fflush(stdin); } printf("请输入学生的专业(小于20字符):"); scanf("%20s", pstu->major); pstu->next = NULL; return pstu; }//4.把学生信息节点加入到链表中int AddStudent(PSTUDENT pstu){ PSTUDENT ps = &g_head; if(!pstu) { return 0; } //判断一下该学生信息是不是已经存在 if(GetPrevAddr(pstu->num)) { printf("编号为%d的学生信息已经存在!\n", pstu->num); free(pstu);//释放该节点内存空间 return 0; } //while循环的作用是找到当前链表的最后一个节点 while(ps->next) ps = ps->next; //把新节点加入到最后那个节点的后面 ps->next = pstu; pstu->next = NULL; return 1; }//5.返回指定编号学生节点的上一个节点的指针PSTUDENT GetPrevAddr(int num){ PSTUDENT pstu = &g_head; while(pstu->next) { if(pstu->next->num == num) return pstu; pstu = pstu->next; } return NULL; }//6.显示所有学生信息void ShowAll(){ PSTUDENT pstu = &g_head; printf("--------------------------------------------------------------------\n"); printf(" 编号 姓名 性别 年龄 专业\n"); printf("--------------------------------------------------------------------\n"); while(pstu->next) { printf(" %-8d ", pstu->n...
C语言学生成绩管理系统代码 急!!!!!!
展开全部 参考#include "stdio.h" /*定义学生结构体*/ struct Student { char ID[20]; char Name[20]; float Mark1; float Mark2; float Mark3; float Average; }; /*声明学生数组及学生数量*/ struct Student students[1000]; 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<num;i++) { if (strcmp(students[i].ID,id)==0) { return i; } } return -1; } /*通过姓名返回数组下标*/ int Student_SearchByName(char name[]) { int i; for (i=0;i<num;i++) { if (strcmp(students[i].Name,name)==0) { return i; } } return -1; } /*显示单条学生记录*/ void Student_DisplaySingle(int index) { printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩"); printf("-------------------------------------------------------------\n"); printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[index].ID,students[index].Name, students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average); } /*插入学生信息*/ void Student_Insert() { while(1) { printf("请输入学号:"); scanf("%s",&students[num].ID); getchar(); printf("请输入姓名:"); scanf("%s",&students[num].Name); getchar(); printf("请输入成绩:"); scanf("%f",&students[num].Mark1); getchar(); printf("请输入成绩:"); scanf("%f",&students[num].Mark2); getchar(); printf("请输入成绩:"); scanf("%f",&students[num].Mark3); getchar(); students[num].Average=Avg(students[num]); num++; printf("是否继续?(y/n)"); if (getchar()=='n') { break; } } } /*修改学生信息*/ void Student_Modify() { float mark1,mark2,mark3; while(1) { char id[20]; int index; printf("请输入要修改的学生的学号:"); scanf("%s",&id); getchar(); index=Student_SearchByIndex(id); if (index==-1) { printf("学生不存在!\n"); } else { printf("你要修改的学生信息为:\n"); Student_DisplaySingle(index); printf("-- 请输入新值--\n"); printf("请输入学号:"); scanf("%s",&students[index].ID); getchar(); printf("请输入姓名:"); scanf("%s",&students[index].Name); getchar(); printf("请输入成绩:"); scanf("%f",&students[index].Mark1); getchar(); printf("请输入成绩:"); scanf("%f",&students[index].Mark2); getchar(); printf("请输入成绩:"); scanf("%f",&students[index].Mark3); getchar(); students[index].Average=Avg(students[index]); } printf("是否继续?(y/n)"); if (getchar()=='n') { break; } } } /*删除学生信息*/ void Student_Delete() { int i; while(1) { char id[20]; int index; printf("请输入要删除的学生的学号:"); scanf("%s",&id); getchar(); index=Student_SearchByIndex(id); if (index==-1) { printf("学生不存在!\n"); } else { printf("你要删除的学生信息为:\n"); Student_DisplaySingle(index); printf("是否真的要删除?(y/n)"); if (getchar()=='y') { for (i=index;i<num-1;i++) { students[i]=students[i+1]; } num--; } getchar(); } printf("是否继续?(y/n)"); if (getchar()=='n') { break; } } } /*按姓名查询*/ void Student_Select() { while(1) { char name[20]; int index; printf("请输入要查询的学生的姓名:"); scanf("%s",&name); getchar(); index=Student_SearchByName(name); if (index==-1) { printf("学生不存在!\n"); } else { printf("你要查询的学生信息为:\n"); Student_DisplaySingle(index); } printf("是否继续?(y/n)"); if (getchar()=='n') { break; } } } /*按平均值排序*/ void Student_SortByAverage() { int i,j; struct Student tmp; for (i=0;i<num;i++) { for (j=1;j<num-i;j++) { if (students[j-1].Average<students[j].Average) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; } } } } /*显示学生信息*/ void Student_Display() { int i; printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩"); printf("-------------------------------------------------------------\n"); for (i=0;i<num;i++) { printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[i].ID,students[i].Name, students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average); } } /*将学生信息从文件读出*/ void IO_ReadInfo() { FILE *fp; int i; if ((fp=fopen("Database.txt","rb"))==NULL) { printf("不能打开文件!\n"); return; } if (fread(&num,sizeof(int),1,fp)!=1) { num=-1; } else { for(i=0;i<num;i++) { fread(&students[i],sizeof(struct Student),1,fp); } } fclose(fp); } /*将学生信息写入文件*/ void IO_WriteInfo() { FILE *fp; int i; if ((fp=fopen("Database.txt","wb"))==NULL) { printf("不能打开文件!\n"); return; } if (fwrite(&num,sizeof(int),1,fp)!=1) { printf("写入文件错误!\n"); } for (i=0;i<num;i++) { if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1) { printf("写入文件错误!\n"); } } fclose(fp); } /*主程序*/ main() { int choice; IO_ReadInfo(); while(1) { /...
求C语言学生成绩管理系统代码。
要能用的。
展开全部 #include"stdio.h"#include"stdlib.h"#include"string.h"#define N 3typedef struct z1{ char no[11]; char name[15]; int score[N]; float sum; float average; int order; struct z1 *next;}STUDENT;STUDENT *init();STUDENT *create();STUDENT *del(STUDENT *h);void print(STUDENT *h);void search1(STUDENT *h);void search2(STUDENT *h);STUDENT *insert(STUDENT *h);void sort(STUDENT *h);void save(STUDENT *h);void tongji(STUDENT *h);int menu_select();STUDENT *load();void inputs(char *prompt,char *s,int count);STUDENT *load();main(){ int i; STUDENT *head; head=init(); for(;;) { switch(menu_select()) { case 0:head=init();break; case 1:head=create();break; case 2:head=insert(head);break; case 3:save(head);break; case 4:print(head);break; case 5:search1(head);break; case 6:head=del(head);break; case 7:sort(head);break; case 8:tongji(head);break; case 9:search2(head);break; case 10:exit(0); } }}int menu_select(){ char *menu[]={"************菜单************", "0. 初始化链表", "1. 输入学生成绩", "2. 插入学生成绩", "3. 保存学生记录", "4. 显示学生记录", "5. 按学号查找学生信息", "6. 删除指定学号的学生信息", "7. 按某一门课对学生成绩排序", "8. 统计某门课程的学生成绩", "9. 按姓名查找学生信息", "10. 退出系统"}; char s[3]; int c,i; for(i=0;i10); return c;}STUDENT *init(){ return NULL;}STUDENT *create(){ int i;int s; STUDENT *h=NULL,*info; for(;;) { info=(STUDENT *)malloc(sizeof(STUDENT)); if(!info) { printf("\n内存不足"); return NULL; } inputs("输入学号:",info->no,11); if(info->no[0]=='@')break; inputs("输入姓名:",info->name,15); printf("开始输入%d门课的成绩\n",N); s=0; for(i=0;iscore[i]); if(info->score[i]>100||info->score[i]score[i]>100||info->score[i]score[i]; } info->sum=s; info->average=(float)s/N; info->order=0; info->next=h; h=info; } return h;}void inputs(char *prompt,char *s,int count){ char p[255]; do { printf(prompt); scanf("%s",p); if(strlen(p)>count) printf("\n太长了!\n"); }while(strlen(p)>count); strcpy(s,p);}void print(STUDENT *h){ int i=0; STUDENT *p; p=h; printf("\n\n\n***********************学生***********************\n"); printf("|序号|学号 | 姓名 | 语文 | 英语 |数学 | 总分 |平均分 |名次 |\n"); printf("|---|-------|--------|----|----|----|------|------|---|\n"); while(p!=NULL) { i++; printf("|%3d |%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",i,p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order); p=p->next; } printf("***********************end***********************\n");}STUDENT *del(STUDENT *h){ STUDENT *p,*q; char s[11]; printf("请输入要删除的学生的学号\n"); scanf("%s",s); q=p=h; while(strcmp(p->no,s)&&p!=NULL) { q=p; p=p->next; } if(p==NULL) printf("\n链表中没有学号为%s的学生\n",s); else { printf("\n\n\n***********************找到了***********************\n"); printf("|学号 | 姓名 | 语文 | 英语 | 数学 | 总分 | 平均分 | 名次 |\n"); printf("|----------|----------|----|----|----|------|------|---|\n"); printf("|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order); printf("***********************end***********************\n"); printf("请按任意键删除\n"); getchar(); if(p==h) h=p->next; else q->next=p->next; free(p); printf("\n已经删除学号为%s的学生\n",s); printf("不要忘了保存数据\n"); } return h;}void search1(STUDENT *h){ STUDENT *p; char s[11]; printf("请输入你要查找的同学的学号\n"); scanf("%s",s); p=h; while(strcmp(p->no,s)&&p!=NULL) p=p->next; if(p==NULL) printf("'n没有学号为%s的学生\n",s); else { printf("\n\n\n***********************找到了***********************\n"); printf("|学号 | 姓名 | 语文 | 英语 | 数学 | 总分 | 平均分 | 名次 |\n"); printf("|----------|-----------|----|----|----|------|------|---|\n"); printf("|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order); printf("***********************end***********************\n"); }}void search2(STUDENT *h){ STUDENT *p; char s[11]; printf("请输入你要查找的同学的姓名\n"); scanf("%s",s); p=h; while(strcmp(p->name,s)&&p!=NULL) p=p->next; if(p==NULL) printf("\n没有姓名为%s的学生\n",s); else { printf("\n\n\n***********************找到了***********************\n"); printf("|学号 | 姓名 | 语文 | 英语 | 数学 | 总分 | 平均分 | 名次 |\n"); printf("|----------|-----------|----|----|----|------|------|---|\n"); printf("|%...
求用Java编写的学生成绩管理系统的完整代码,要能运行的
展开全部 以下方法实现了用户界面登陆import java.awt.*;import java.awt.event.*;public class DengLuJieMian extends Frame implements ActionListener{ Label username=new Label("用户名:");//使用文本创建一个用户名标签 TextField t1=new TextField();//创建一个文本框对象 Label password=new Label("密码:");//创建一个密码标签 TextField t2=new TextField(); Button b1=new Button("登陆");//创建登陆按钮 Button b2=new Button("取消");//创建取消按钮 public DengLuJieMian() { this.setTitle("学生信息管理系统");//设置窗口标题 this.setLayout(null);//设置窗口布局管理器 username.setBounds(50,40,60,20);//设置姓名标签的初始位置 this.add(username);// 将姓名标签组件添加到容器 t1.setBounds(120,40,80,20);// 设置文本框的初始位置 this.add(t1);// 将文本框组件添加到容器 password.setBounds(50,100,60,20);//密码标签的初始位置 this.add(password);//将密码标签组件添加到容器 t2.setBounds(120,100,80,20);//设置密码标签的初始位置 this.add(t2);//将密码标签组件添加到容器 b1.setBounds(50,150,60,20);//设置登陆按钮的初始位置 this.add(b1);//将登陆按钮组件添加到容器 b2.setBounds(120,150,60,20);//设置取消按钮的初始位置 this.add(b2);// 将取消按钮组件添加到容器 b1.addActionListener(this);//给登陆按钮添加监听器 b2.addActionListener(this);// 给取消按钮添加监听器 this.setVisible(true);//设置窗口的可见性 this.setSize(300,200);//设置窗口的大小 addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });//通过内部类重写关闭窗体的方法 } public void actionPerformed(ActionEvent e) { if(e.getSource()==b1)//处理登陆事件 { String name=t1.getText(); String pass=t2.getText(); if(name!=null&&pass.equals("000123"))//判断语句 { new StudentJieMian(); } } } public static void main(String args[])//主函数 { new DengLuJieMian(); }}以下方法实现了学生界面设计import java.awt.*;import java.awt.event.*;class StudentJieMian extends Frame implements ActionListener{ MenuBar m=new MenuBar();//创建菜单栏 Menu m1=new Menu("信息");//创建菜单“信息” MenuItem m11=new MenuItem("插入");//创建“插入”的菜单项 MenuItem m12=new MenuItem("查询"); Menu m2=new Menu("成绩");//创建菜单“成绩” MenuItem m21=new MenuItem("查询"); public StudentJieMian() { this.setTitle("学生界面");//设置窗口标题 this.setLayout(new CardLayout());//设置窗口布局管理器 this.setMenuBar(m);//将菜单栏组件添加到容器 m.add(m1);//将信息菜单放入菜单栏 m.add(m2); m1.add(m11);//将“插入”菜单项添加到“信息”菜单 m1.add(m12); //将“查询”菜单项添加到“信息”菜单 m2.add(m21); //将“查询”菜单项添加到“成绩”菜单 m11.addActionListener(this); //给“插入”菜单项添加监听器m12.addActionListener(this); //给“查询”菜单项添加监听器 m21.addActionListener(this); //给“查询”菜单项添加监听器 this.setVisible(true); //设置窗口的可见性 this.setSize(300,200); //设置窗口的大小 addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0);//关闭窗口 } }); } public void actionPerformed(ActionEvent e) { if(e.getSource()==m11) //处理“添加信息”事件 { new AddStudent(); } if(e.getSource()==m12) //处理“查询信息”事件 { new SelectStudent(); } if(e.getSource()==m21) //处理“查询成绩”事件 { new ChengJiStudent(); } } public static void main(String args[]) { new StudentJieMian(); //创建一个对象 }
转载请注明出处51数据库 » 学生成绩管理软件源码