c语言学生成绩管理系统毕业论文(数据结构课程设计)

1.数据结构课程设计

#include #include #include struct student{char name[60];char ID[7];int score;}; int dq(struct student st[]);void xianshi();void bc(struct student st[]);void add(); void select();void zz();void chazhao();void xhcz();void xmcz();void del();void xmsc();void xhsc();void tj();void px();void bjg();void xg();void xhxg(); void xmxg();void bca();void fh();struct student st[300]; //这个数组用来保存所有的学生信息 和文件里面的一致int Number=0; //记录总的学生人数 也就是数组/文件里面的学生人数void main(){int choose=0;FILE *fp=NULL;char yesorno; if((fp=fopen("C://student.dat","rb"))==NULL){printf("\n=========>提示:文件不存在,是否要创建一个?(y/n)\n");scanf("%c",&yesorno);if(yesorno=='y'||yesorno=='Y'){ //这里仅为了建立文件fp=fopen("C://student.dat","wb");fclose(fp);}elseexit(0);}else{Number=dq(st); //要是文件只能够已经有数据 将数据初始化到数组中}system("cls");while(true) { xianshi();printf("\t\t====>请选择:");scanf("%d",&choose);system("cls");switch(choose){case 0: exit(0);//退出 break; case 1: add();fh();//增加学生成绩break; case 2: select();fh();//查看学生成绩break; case 3: chazhao();fh();// 查找 break;case 4: del(); fh();//删除 break;case 5: tj();fh();//统计break;case 6: px();fh();//排序 break;case 7: bjg();fh();//输出不及格 break;case 8: xg();fh();//修改break; case 9:zz();fh();//作者break;case 10:bca();fh();//保存 break;default:break;}fflush(stdin);getchar();system("cls");}}void bca(){printf("\t=====程序在运行时已自动保存。

..\n");}void fh(){printf("\t===>按Enter键返回主菜单\n");}void xg() //修改学生信息{int way=0;printf("请选择修改查找方式\n");printf("1 按姓名查找修改\n"); printf("2 按学号查找修改\n"); scanf("%d",&way);switch(way){case 1: xmxg();break;case 2: xhxg();break;default: printf("输入有误,结束!\n");break;} } //按姓名修改void xmxg() {FILE *fp=NULL;char name[60];int i=0;int changeIndex=0;int index=0;printf("请输入要修改的学生姓名:");scanf("%s",name);for (i=0;i修改成功\n");} void bjg() //输出不及格人数 {int i=0;printf("以下是不及格:\n");printf("\t姓名\t学号\t成绩\n");for (i=0;ist[j+1].score){temp=st[j];st[j]=st[j+1];st[j+1]=temp;}} }printf("你想输出前几名的成绩:");scanf("%d",&wantNUmber);if (wantNUmber>Number){wantNUmber=Number;} printf("\t姓名\t学号\t成绩\n");for(i=0;i

c语言学生成绩管理系统毕业论文摘要,基于java的学生成绩管理系统毕业论文,基于web的学生成绩管理系统毕业论文

2.学生信息包括学号、姓名、高数,英语,计算机三门考试成绩

#include #include #include #include #pragma warning(disable:4996) struct Student/*定义一个结构体*/ { char Name[25];/*姓名*/ int Age; /*年龄*/ int Num; /*学号*/ float Score[3];/*三科成绩*/ float Total;/*总分*/ float Ave;/*平均分*/ }; int num;//学生人数//得到学生人数 int Num(void);/*定义一个输入函数,用于输入学生的信息*/ struct Student* Input(struct Student *pArr, int len);/*定义一个输出函数,用于输出学生的信息*/ void Output(struct Student *pArr, int len);/*定义一个删除函数用于删除学生信息*/ void Delete(struct Student *pArr, int len);/*定义一个查找函数,用于查找结构体*/ void Search(struct Student *pArr, int len);/*定义一个函数,用于修改结构体*/ void Change(struct Student *pArr, int len);//定义一个函数,用于添加学生信息 void Add(struct Student *pArr, int len);/*定义一个排序函数,用于对语文成绩排序*/ void ScoreChinese(struct Student *pArr, int len);/*定义一个排序函数,用于对数学成绩排序*/ void ScoreMath(struct Student *pArr, int len);/*定义一个排序函数,用于对英语成绩排序*/ void ScoreEnglish(struct Student *pArr, int len);/*定义一个排序函数,用于对总成绩排序*/ void ScoreTotal(struct Student *pArr, int len); int main() { int num, Item; struct Student *pArr = NULL; struct Student *p = NULL; printf("*************************欢迎使用学生成绩管理系统*******************************\n\n"); printf("请按任意将进入学生管理系统:\n"); getchar(); system("cls"); printf("------------------------ 请选择要操作的命令:-----------------------------------\n\n"); printf("-------------------------- 1 输入学生信息---------------------------------------\n\n"); printf("-------------------------- 2 输出学生信息---------------------------------------\n\n"); printf("-------------------------- 3 删除学生信息---------------------------------------\n\n"); printf("-------------------------- 4 查找学生信息---------------------------------------\n\n"); printf("-------------------------- 5 修改学生信息---------------------------------------\n\n"); printf("-------------------------- 6 增加学生信息---------------------------------------\n\n"); printf("-------------------------- 7 将学生的语文成绩按从大到小排-----------------------\n\n"); printf("-------------------------- 8 将学生的数学成绩按从大到小排-----------------------\n\n"); printf("-------------------------- 9 将学生的英语成绩按从大到小排-----------------------\n\n"); printf("-------------------------- 10 将学生的总成绩按从大到小排------------------------\n\n"); while (1) { printf("\n请选择操作命令;\n"); scanf("%d", &Item); switch (Item) { case 1://输入学生信息 { system("cls"); num = Num(); p = Input(pArr, num); } break; case 2://输出学生信息 { system("cls"); Output(p, num); } break; case 3://删除学生信息 { system("cls"); Delete(p, num); } break; case 4://查找学生信息 { system("cls"); Search(p, num); } break; case 5://修改学生信息 { system("cls"); Change(p, num); } break; case 6://添加学生信息 { system("cls"); Add(p, num); } break; case 7://将学生的语文成绩按从大到小排序 { system("cls"); ScoreChinese(p, num); } break; case 8://将学生的数学成绩按从大到小排序 { system("cls"); ScoreMath(p, num); } break; case 9://将学生的英语成绩按从大到小排序 { system("cls"); ScoreEnglish(p, num); } break; case 10://将学生的总成绩按从大到小排序 { system("cls"); ScoreTotal(p, num); } break; } } return 0; }//得到学生人数 int Num(void) { printf("请输入学生的人数\n"); scanf("%d", &num); return num;//返回学生人数 } struct Student* Input(struct Student *pArr, int len)/*定义一个输入函数,用于输入学生的信息*/ { pArr = (struct Student*)malloc(len*sizeof(struct Student));/*为学生分配内存*/ int i; for (i = 0; i { printf("请输入第%d个学生的姓名:\n", i+1);/*输入学生的姓名*/ scanf("%s", pArr[i].Name); printf("请输入第%d个学生的年龄:\n", i+1);/*输入学生的年龄*/ scanf("%d", &pArr[i].Age); printf("请输入第%d个学生的学号:\n",i+1);/*输入学生的学号*/ scanf("%d", &pArr[i].Num); printf("请输入第%d个学生的语文成绩:\n", i+1);/*输入学生的语文成绩*/ scanf("%f", &pArr[i].Score[0]); printf("请输入第%d个学生的数学成绩:\n", i+1);/*输入学生的数学成绩*/ scanf("%f", &pArr[i].Score[1]); printf("请输入第%d个学生的英语成绩:\n", i+1);/*输入学生的英语成绩*/ scanf("%f", &pArr[i].Score[2]);//计算总分 pArr[i].Total = pArr[i].Score[0] + pArr[i].Score[1] + pArr[i].Score[2];//计算平均分 pArr[i].Ave = pArr[i].Total / 3.0f; } return pArr; /*返回学生的信息*/ }/*定义一个输出函数,用于输出学生的信息*/ void Output(struct Student *pArr, int len) { printf("姓名\t年龄\t学号\t语文\t数学\t英语\t总分\t平均分\n"); for (int i = 0; i < len; i++) { printf("%s\t%d\t%d\t%g\t%g\t%g\t%g\t%g\n", pArr[i].Name, pArr[i].Age, pArr[i].Num, pArr[i].Score[0], pArr[i]。

毕业论文,语言,成绩管理系统,学生

3.学生成绩管理系统c语言编辑的毕业设计 〔20分〕

#include #include#define MENU_NUM 7#define N 3 typedef struct s1 { char no[11]; /*学号由10个字符组成*/ char name[15]; /*学生姓名*/ float score[N]; /*各门课成绩*/ float sum; /*总分*/ float average; /*平均分*/ int order; /*名次*/ struct s1 *next; /*指向后继结点的指针*/ }STUDENT; /*定义结构体类型*/ STUDENT * head=NULL; void InputData( STUDENT * ptr ); void PrintMenu( ); int Menu_Select( ); void Init( ); void create( ); void print( ) ; void Delete( ); void append(); void computer(); main() { int key; while(1) { key=Menu_Select(); switch(key) { case 0: Init(); //初试化链表。

也就是若链表不为空则释放链表中所有数据,将head置为空(NULL) break; case 1: create(); //创建链表,输入数据 break; case 2: Delete(); //删除一个指定学号的记录数据 break; case 3: print(); //打印链表中所有数据 break; case 4: computer(); //计算链表中所有人的总分和平均分 break; case 5: append(); //追加一个数据到链表的尾部 break; case 6: Init(); //释放链表 exit(0); } }; } void PrintMenu( ) { int i; char * menu[]={ "0. Init list", "1. Enter list", "2. Delete a record from list", "3. Print list", "4. Compute the score", "5. Insert record to list", "6. Quit" }; printf("\n\n"); for (i=0;i printf("%s\n",menu[i]); printf("\nEnter your choice(0-6):"); } int Menu_Select( ) { int key; PrintMenu( ); scanf("%d",&key); return key; } void Init( ) //初始化单链表。也就是释放链表中的所有数据 { STUDENT *p,*ptr;//定义两个临时指针变量p,ptr p=head;ptr=head;//将两个临时变量指向头指针head ; while(ptr!=NULL) { ptr=ptr->next;//ptr指向下一个结构数据 free(p);//释放p所指向的结构数据的内存 p=ptr;//将p指向ptr所指向的数据 } head=NULL;//将head指向NULL } void create( ) //创建单链表 { STUDENT *pt, *pth=NULL; //定义两个指针变量:pt指向即将申请新的数据内存,pth指向当前数据 while(1) { pt=(STUDENT *)malloc(sizeof(STUDENT));//让pt指向新申请的内存空间 InputData(pt);//输入数据,存放到pt所指向的结构数据。

注意让pt的next指向NULL if (strcmp(pt->no,"@")==0) { free(pt);//释放pt所指向的内存空间 break;//退出循环 } else if (head==NULL) { pth=pt; head=pt;//将头指针head和pth指向pt } else { pth->next=pt; //将pth的next指向pt; pth=pt; //将pth指向pt; } }; } void print( ) //打印单链表中所有数据 { int i=0; STUDENT *p;//第一个指针p p=head;//将p指向head printf("\n"); printf("******************************STUDENT******************************\n"); printf("|rec|no | name | sc1| sc2| sc3| sum | ave |order|\n"); printf("|---|----------|----------------|----|----|----|------|-----|-----|\n"); //打印表头 while (p!=NULL) { printf("|%3d|%10s|%-16s|%4.1f|%4.1f|%4.1f|%6.2f|%5.1f|%5d|\n", ++i,p->no,p->name,p->score[0],p->score[1],p->score[2], p->sum,p->average,p->order); //打印p所指向的结构中的所有数据。注意打印数据间的分隔线 p=p->next;//将p指向p的下一个结构数据 } printf("********************************END********************************\n");//打印表尾 } void Delete( ) //删除一个记录 { STUDENT *p,*pth;//定义两个指针p,pth char no[11];//定义一个整数no(用来存储输入的学号) printf("intput delete no\n"); scanf("%s",no);//用输入语句输入一个学号存储到no中 p=head;pth=head;//将p和pth都指向头指针 if (strcmp(p->no,no)==0) //也就是若头指针指向的数据需要删除 { head=head->next;//将head指针指向head的下一个数据; free(p);//释放p所指向的数据 } else { p=p->next;//将p指向p的下一个数据 while ( p!=NULL) { if (strcmp(p->no,no)==0) //找到了要删除的数据 { pth->next=p->next;//将pth的next指向p的next free(p);//释放p break;//退出循环 } else { pth=pth->next;//将pth指向pth的next 或 将pth指向p p=p->next;//将p指向p的next } } } } void append() { STUDENT *p,*pth;//定义两个指针变量p,pth pth=head;//将pth指向head while ( pth->next!=NULL) { pth=pth->next;//ptr指向ptr的next } p=(STUDENT *)malloc(sizeof(STUDENT));//将p指向新申请的内存空间 InputData(p);p->next=NULL;//数据数据存储到p所指向的内存空间,注意将p的next置为NULL pth->next=p;//将ptr的next指向p } void InputData( STUDENT *ptr ) { int i; printf("enter no:"); scanf("%s",ptr->no); if (strcmp(ptr->no,"@")==0 ) return; printf("enter name:"); scanf("%s",ptr->name); for(i=0;i { printf("shuru chengji\n"); scanf("%f",&ptr->score[i]); } ptr->sum=0; ptr->average=0; ptr->order=0; ptr->next=NULL; } void computer() { STUDENT *p; p=head; for(;p;p=p->next) { p->sum=p->score[0]+p->score[1]+p->score[2]; p->average=(p->score[0]+p->score[1]+p->score[2])/3; } }。

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

参考代码如下,不过还是建议自己写一写比较好:#include #include #include struct student //结构体 { char name[20]; //姓名 char number[20]; //学号 double math; //数学 double english; //英语 double chinese; //语文 double program; //程序 }s[50]; 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[i].name, s[i].number, &s[i].math, &s[i].english, &s[i].chinese, &s[i].program); i++; *n=*n+1; } } fclose(p); } void daochu(struct student s[], int n) { FILE *p; int i=0; if((p=fopen("数据.txt", "w"))==NULL) { printf("无法打开此文件!"); } else { while(i

5.C语言课程设计

主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出#include /*引用库函数*/ #include #include #include typedef struct /*定义结构体数组*/ { char num[10]; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ }Student; Student stu[80]; /*结构体数组变量*/ int menu_select() /*菜单函数*/ { char c; do{ system("cls"); /*运行前清屏*/ printf("\t\t****Students' Grade Management System****\n"); /*菜单选择*/ printf("\t\t | 1. Input Records |\n"); printf("\t\t | 2. Display All Records |\n"); printf("\t\t | 3. Sort |\n"); printf("\t\t | 4. Insert a Record |\n"); printf("\t\t | 5. Delete a Record |\n"); printf("\t\t | 6. Query |\n"); printf("\t\t | 7. Statistic |\n"); printf("\t\t | 8. Add Records from a Text File|\n"); printf("\t\t | 9. Write to a Text file |\n"); printf("\t\t | 0. Quit |\n"); printf("\t\t*****************************************\n"); printf("\t\t\tGive your Choice(0-9):"); c=getchar(); /*读入选择*/ }while(c'9'); return(c-'0'); /*返回选择*/ } int Input(Student stud[],int n) /*输入若干条记录*/ {int i=0; char sign,x[10]; /*x[10]为清除多余的数据所用*/ while(sign!='n'&&sign!='N') /*判断*/ { printf("\t\t\tstudent's num:"); /*交互输入*/ scanf("\t\t\t%s",stud[n+i].num); printf("\t\t\tstudent's name:"); scanf("\t\t\t%s",stud[n+i].name); printf("\t\t\tstudent's score:"); scanf("\t\t\t%d",&stud[n+i].score); gets(x); /*清除多余的输入*/ printf("\t\t\tany more records?(Y/N)"); scanf("\t\t\t%c",&sign); /*输入判断*/ i++; } return(n+i); } void Display(Student stud[],int n) /*显示所有记录*/ { int i; printf("\t\t\t-----------------------------------\n"); /*格式头*/ printf("\t\t\tnumber name score\n"); printf("\t\t\t-----------------------------------\n"); for(i=1;i1&&i%10==0) /*每十个暂停*/ {printf("\t\t\t-----------------------------------\n"); /*格式*/ printf("\t\t\t"); system("pause"); printf("\t\t\t-----------------------------------\n"); } } printf("\t\t\t"); system("pause"); } void Sort_by_num(Student stud[],int n) /*按学号排序*/ { int i,j,*p,*q,s; char t[10]; for(i=0;i0) {strcpy(t,stud[j+1].num); strcpy(stud[j+1].num,stud[j].num); strcpy(stud[j].num,t); strcpy(t,stud[j+1].name); strcpy(stud[j+1].name,stud[j].name); strcpy(stud[j].name,t); p=&stud[j+1].score; q=&stud[j].score; s=*p; *p=*q; *q=s; } } int Insert_a_record(Student stud[],int n) /*插入一条记录*/ {char x[10]; /*清除多余输入所用*/ printf("\t\t\tstudent's num:"); /*交互式输入*/ scanf("\t\t\t%s",stud[n].num); printf("\t\t\tstudent's name:"); scanf("\t\t\t%s",stud[n].name); printf("\t\t\tstudent's score:"); scanf("\t\t\t%d",&stud[n].score); gets(x); n++; Sort_by_num(stud,n); /*调用排序函数*/ printf("\t\t\tInsert Successed!\n"); /*返回成功信息*/ return(n); } int Delete_a_record(Student stud[],int n) /*按姓名查找,删除一条记录*/ { char s[20]; int i=0,j; printf("\t\t\ttell me his(her) name:"); /*交互式问寻*/ scanf("%s",s); while(strcmp(stud[i].name,s)!=0&&istud[i].score) j=i; if(stud[k].score 评论0 0 0。

6.C语言学生成绩管理系统设计

你太搞笑了!我半个月前提了个类似的问题,也是学生管理系统,比你的还简单,悬赏150分都没人答.你才悬5分,有人答才怪呢.自己慢慢写吧,别等了噢.唉,过了这么久都没人答,你还在等??我把我的那个程序给你作参考吧,题目有点不同,你自己改一下啦。

#include#include#includestruct corse{ char course[10]; int score;};class Stu{ int Class; int id; char name[10]; corse p[10]; public: void getdate(int a,int b,char c[10],char d[10][10],int e[10]) { int i; Class=a; id=b; strcpy(name,c); for(i=0;i<10;i++) { strcpy(p[i].course,d[i]); p[i].score=e[i];} } void sortdate(); void output_failor(char a[10]); void output_first5(char a[10]); void output_average(char a[10]); void output_gradelist_ofoneclass(char a[10],int c); void output() {int k; cout<stu[k].id)) { Stu m=stu[i]; stu[i].copy(stu[k]); stu[k].copy(m); } } for(i=0;i<50;i++) for(j=0;j<10;j++) if((strcmp(stu[i].p[j].course,a)==0)&&(stu[i].Class==c)) stu[i].output();}void Stu:: output_average(char a[10]){ int k,i=0, j=0 , g,b,c[5]={1,2,3,4,5}, r[5]={0,0,0,0,0},sum[5]={0,0,0,0,0}; double m[5]; for (k=0;k<5;k++) for(i=0;i<50;i++) for(j=0;j<10;j++) { if ((strcmp(stu[i].p[j].course,a)==0 )&&( stu[i].Class==c[k])) { sum[k]+=stu[i].p[j].score; r[k]++; } } for(g=0;g<4;g++) for(b=g+1;b<5;b++) { if(sum[g]>x; switch(x) { case 1: cout<<"请输入学生信息: (输入-1时结束输入)"<>f; if(f==-1)goto loop; cin>>g; cin>>e; for(j=0;j<10;j++) { cin>>h[j]; cin>>l[j]; mark=cin.get(); if(mark=='\n') break; } stu[y].getdate(f,g,e,h,l); }goto loop;break; case 2: cout<<"输入您想要哪门课程的不及格名单:"<>a; cout<<"班级\t学号\t姓名\t选修课\t成绩\t"<>b; stu[0].output_first5(b); goto loop;break; case 4:cout<<"输入您想要哪门课程的每班平均成绩:"<>c; stu[0].output_average(c); goto loop; break; case 5: cout<<"输入您想要哪门课程、哪个班级的成绩单:"; cin>>d>>z; stu[0].output_gradelist_ofoneclass(d,z); goto loop;break; default:cout<<"输入错误,请重新输入."<

7.用C语言 设计一学生成绩管理系统,要求: 1. 学生成绩的信息包括:

#include #include #include #define MAXLEN 100#define Null 0 typedef struct node { int num; // 学号 char name[MAXLEN]; // 姓名 int score; // 分数 struct node *next; // 指针域 }list; list *creat() { list *head,*p,*r; int i,n; // n 为学生人数 head=(list *)malloc(sizeof(list)); head->next=Null; r=head; printf("请输入学生人数.\n"); scanf("%d",&n); for(i=1;i<=n;i++) { p=(list *)malloc(sizeof(list)); printf("请输入学生学号:\n"); scanf("%d",&p->num); printf("请输入学生姓名:\n"); scanf("%s",&p->name); printf("请输入学生成绩:\n"); scanf("%d",&p->score); p->next=Null; r->next=p; // 这个地方我总是不明白,是怎样让结点下移一个的呢? r=r->next; } return (head); } void find (list *h) { int k; // 要找的学生学号 list *p; p=h->next; printf("请输入要查找的学生学号:\n"); scanf("%d",&k); while (p && p->num!=k) p=p->next; if(p) { printf("学号\t姓名\t成绩\n"); printf("%d\t%s\t%d\n",p->num,p->name,p->score); } else printf("目标没找到\n"); } list *del (list *h) { int k; // 要删除的学生学号 list *p,*q; // 为什么要两个指针呢? q=h; p=h->next; printf("请输入待删除的学生学号:\n"); scanf("%d",&k); while (p && p->num!=k) { q=p; p=p->next; } if(p) { q->next=p->next; free(p); } else printf("没有此学生的记录,无法删除!\n"); return (h); } list *insert(list *h) { list *p,*q,*r,*head; head=h; r=h; p=h->next; // 下面构造一个学生的信息 q=(list *)malloc(sizeof(list)); printf("请输入待插入学生的学号:\n"); scanf("%d",&q->num); printf("请输入待插入学生的姓名:\n"); scanf("%s",&q->name); printf("请输入待插入学生的成绩:\n"); scanf("%d",&q->score); q->next=Null; // 找到链表的结尾结点 while(p!=Null) { r=p; p=p->next; } // 将新结点插入表尾 r->next=q; r=r->next; return (head); } void output(list *h) { list *p; printf("学号\t姓名\t成绩\n"); p=h->next; while (p!=NULL) { printf("%d\t%s\t%d\n",p->num,p->name,p->score); p=p->next; } } void main() { list *p; int k; // 控制循环的标志 while (1) { printf(" ---------------------------------------\n"); printf(" | 学生成绩管理系统 |\n"); printf(" ---------------------------------------\n"); printf(" | 1. 登记成绩 |\n"); printf(" | 2. 查询成绩 |\n"); printf(" | 3. 插入成绩 |\n"); printf(" | 4. 删除成绩 |\n"); printf(" | 5. 输出所有学生成绩 |\n"); printf(" | 0. 退出系统 |\n"); printf(" ---------------------------------------\n"); printf("请输入你的选择:\n"); scanf("%d",&k); switch(k) { case 1: p=creat(); break; case 2: find(p); break; case 3: p=insert(p); break; case 4: p=del(p); break; case 5: output(p); break; case 0: exit(0); default : printf("选择错误,重新开始!\n"); } }// while }。

8.学生成绩管理系统设计 1 设计目的 通过开发学生成绩管理系统,进一

输入五名学生四门课程的成绩,统计每个学生的总分,及确定每个学生的名次:

#include "stdio.h"

struct student

{

int num; //学号

double mark[4]; //4门成绩

double erea; //总分

};

void fun()

{

int i,j;

double dtemp=0.0;

int itemp=0;

struct student stu[5];

//输入每个学生的学号,和四门成绩

for (i=0; i<5; i++)

{

printf("输入第%i个学生的学号和4门成绩\n",i+1);

scanf("%d%lf%lf%lf%lf",&stu[i].num,

&stu[i].mark[0],&stu[i].mark[1],&stu[i].mark[2],&stu[i].mark[3]);

}

//统计总分

for (i=0; i<5; i++)

{

stu[i].erea = stu[i].mark[0] + stu[i].mark[1] +

stu[i].mark[2] + stu[i].mark[3];

}

//排名次

for (i=0; i<5; i++)

{

for (j=i+1; j<5; j++)

{

if (stu[i].erea < stu[j].erea)

{

dtemp = stu[i].erea; stu[i].erea = stu[j].erea; stu[j].erea = dtemp;//换总分

itemp = stu[i].num; stu[i].num = stu[j].num; stu[j].num = itemp; //换学号

}

}

}

//输出排名结果和成绩

printf("\n排名结果如下:\n");

for (i=0; i<5; i++)

{

printf("第%d名 学号:%d 总分:%lf 平均分:%lf\n",i+1,stu[i].num,stu[i].erea,stu[i].erea/4);

}

}

void main()

{

fun();

}

9.C语言程序设计 班级学生成绩管理系统

设计课题一:班级成绩管理系统 一、问题描述: 对一个有N个学生的班级,每个学生有M门课程。

该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。 二、功能要求: 1、本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。

2、本系统显示这样的菜单: 请选择系统功能项: a、成绩录入 b、成绩显示 c、成绩保存 d、成绩排序 e、成绩修改(要求先输入密码) f、成绩统计 (1) 显示每门课程成绩最高的学生的基本信息 (2) 显示每门课程的平均成绩 (3) 显示超过某门课程平均成绩的学生人数 g、退出系统 3、执行一个具体的功能之后,程序将重新显示菜单。 4、将学生成绩保存到文件中。

三、算法提示: 1、数据结构:结构体类型数组。 2、数据库结构:下表构成该系统的基本数据库。

姓名 学号 课程名称1 课程名称2 ●●●●●● char Char float float 四、测试数据: 学生人数N=10 课程门数M=4 课程名:数学、语文、英语、政治 五、其它 对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。 问题补充: 今天谁能给我答案啊!!!!!!!!!!!!!! 提问者: 342123465 - 一级 最佳答案 C语言课程设计报告—班级成绩管理系统 需要分析: 学生成绩管理系统有13种功能。

把这13个功能做成13个子函数。在主函当数中设计一个菜单对这13个子数进行管理。

来实现对整个系统的操作。 根据课题的要求。

每一个学生的包括姓名(char)、学号(char)、M门课程的成绩(float).再加上系统功能上的要求每一学生的信息还要总分和名次等。所以自然的想到要用结构体来定义每一个学生的信息结构。

然后用链表把它们组成一个有序的整体。用对链表的操作来实现对所有学生信息的统一管理(成绩显示、成绩排序、成绩修改等)。

最后为了以后按照处理后的顺序保存到文件中。 . 各函数的功能: 概要设计: 程序的模块组成: 主 函 数: int main() 新建函数:STUDENT *init() 输入函数 :STUDENT *create() 显示函数: void print(STUDENT *head) 删除函数: STUDENT *delete(STUDENT *head) 按名字寻找函数: void lookup(STUDENT *head) 保存函数: void save(STUDENT *head) 按总分排序函数: STUDENT *sort(STUDENT *head) 计算总分和均分函数: void computer(STUDENT *h) 修改函数: STUDENT *Modify(STUDENT *head,STUDENT *new) 按学号排序函数: STUDENT *index(STUDENT *h) 菜单函数:int menu_select() 各个函数的主要功能: 输入函数: 随时输入数据。

菜单函数:显示系统主菜单。 显示函数: 显示所有学生的信息。

寻找函数: 方便学生查找自己的成绩。 删除函数: 删除某学生的信息。

排序函数: 按总成绩排序。 按学号排序函数: 按学号排序。

插入函数: 可以插入新的信息。 保存函数: 保存好学生成绩,以免丢失。

统计函数: l 显示每门课程成绩最高的学生的基本信息。 l 显示每门课程的平均成绩。

l 显示超过某门课程平均成绩的学生人数。 课题的功能模块的划分: 开始 菜单界面 功能选择 初始化函数 输入学生信息 删除学生信息 显示学生信息 查找学生信息 按成绩排序 保存到文件 从文件读数据 插入学生成绩 分类合计 退出系统 结束 详细设计: 整个系统除了主函数外,另外还有14个函数,实现八大功能:输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能。

各个函数的详细设计说明分别如下: 主函数 main() 利用无限次循环for(;;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。 菜单选择函数 int menu_select() 这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择。

等执行完每一个函数功能后,返回菜单。 代码设计: 初始化函数 STUDENT *init() 这是一个无参函数,里面只有两个语句,它的作用是使链表初始化,使head的值为NULL和一个清屏语句。

比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码! 输入记录函数 STUDENT *create() 这是一个无参函数,用来执行学生成绩记录的输入,当学生为@时停止输入,函数结束后,带回一个链表头的指针指向一下个学生的信息插在表头。 N-S流程图如下: head=NULL无条件循环 指针p指向新开辟的单元 指针p是否为空 是 否 输入学号p->num 输出 p->num是否为@ 内存 是 否 溢出 输入姓名p->name 停止 for(i=0;i<3;i++) 输入 输入成绩 返回 p->sum=s; 菜单 p->average=(float)s/3; 显示记录函数 void print(STUDENT *head) 这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。

算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。

重复执行此步聚直到p指针指向NULL为止。 N-S流程图如下: p=head,使指向第一个结。

10.c语言学生成绩管理系统

自己拿回去改改。

/*11.3.2 源程序*//***********xuesheng.c***********//******头文件(.h)***********/#include "stdio.h" /*I/O函数*/#include "stdlib.h" /*其它说明*/#include "string.h" /*字符串函数*/#include "conio.h" /*屏幕操作函数*/#include "mem.h" /*内存操作函数*/#include "ctype.h" /*字符操作函数*/#include "alloc.h" /*动态地址分配函数*/#define N 3 /*定义常数*/typedef 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 *delete(STUDENT *h); /*删除记录*/void print(STUDENT *h); /* 显示所有记录*/void search(STUDENT *h); /*查找*/void save(STUDENT *h); /*保存*/STUDENT *load(); /*读入记录*/void computer(STUDENT *h); /*计算总分和均分*/STUDENT *insert(STUDENT *h); /*插入记录*/void append(); /*追加记录*/void copy(); /*复制文件*/STUDENT *sort(STUDENT *h); /*排序*/STUDENT *index(STUDENT *h); /*索引*/void total(STUDENT *h); /*分类合计*/int menu_select(); /*菜单函数*//******主函数开始*******/main(){ int i; STUDENT *head; /*链表定义头指针*/ head=init(); /*初始化链表*/ clrscr(); /*清屏*/ for(;;) /*无限循环*/ { switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ { /*值不同,执行的函数不同,break 不能省略*/ case 0:head=init();break; /*执行初始化*/ case 1:head=create();break; /*创建链表*/ case 2:head=delete(head);break; /*删除记录*/ case 3:print(head);break; /*显示全部记录*/ case 4:search(head);break; /*查找记录*/ case 5:save(head);break; /*保存文件*/ case 6:head=load(); break; /*读文件*/ case 7:computer(head);break; /*计算总分和均分*/ case 8:head=insert(head); break; /*插入记录*/ case 9:copy();break; /*复制文件*/ case 10:head=sort(head);break; /*排序*/ case 11:append();break; /*追加记录*/ case 12:head=index(head);break; /*索引*/ case 13:total(head);break; /*分类合计*/ case 14:exit(0); /*如菜单返回值为14程序结束*/ } }}/*菜单函数,返回值为整数*/menu_select(){ char *menu[]={"***************MENU***************", /*定义菜单字符串数组*/ " 0. init list", /*初始化*/ " 1. Enter list", /*输入记录*/ " 2. Delete a record from list", /*从表中删除记录*/ " 3. print list ", /*显示单链表中所有记录*/ " 4. Search record on name", /*按照姓名查找记录*/ " 5. Save the file", /*将单链表中记录保存到文件中*/ " 6. Load the file", /*从文件中读入记录*/ " 7. compute the score", /*计算所有学生的总分和均分*/ " 8. insert record to list ", /*插入记录到表中*/ " 9. copy the file to new file", /*复制文件*/ " 10. sort to make new file", /*排序*/ " 11. append record to file", /*追加记录到文件中*/ " 12. index on nomber", /*索引*/ " 13. total on nomber", /*分类合计*/ " 14. Quit"}; /*退出*/ char s[3]; /*以字符形式保存选择号*/ int c,i; /*定义整形变量*/ gotoxy(1,25); /*移动光标*/ printf("press any key enter menu。

\n"); /*压任一键进入主菜单*/ getch(); /*输入任一键*/ clrscr(); /*清屏幕*/ gotoxy(1,1); /*移动光标*/ textcolor(YELLOW); /*设置文本显示颜色为黄色*/ textbackground(BLUE); /*设置背景颜色为蓝色*/ gotoxy(10,2); /*移动光标*/ putch(0xc9); /*输出左上角边框┏*/ for(i=1;i<44;i++) putch(0xcd); /*输出上边框水平线*/ putch(0xbb); /*输出右上角边框 ┓*/ for(i=3;i<20;i++) { gotoxy(10,i);putch(0xba); /*输出左垂直线*/ gotoxy(54,i);putch(0xba); } /*输出右垂直线*/ gotoxy(10,20);putch(0xc8); /*输出左上角边框┗*/ for(i=1;i<44;i++) putch(0xcd); /*输出下边框水平线*/ putch(0xbc); /*输出右下角边框┛*/ window(11,3,53,19); /* 制作显示菜单的窗口,大小根据菜单条数设计*/ clrscr(); /*清屏*/ for(i=0;i<16;i++) /*输出主菜单数组*/ { gotoxy(10,i+1); cprintf("%s",menu[i]); } textbackground(BLACK); /*设置背景颜色为黑色*/ window(1,1,80,25); /*恢复原窗口大小*/ gotoxy(10,21); /*移动光标*/ do{ printf("\n Enter you choice(0~14):"); /*在菜单窗口外显示提示信息*/ scanf("%s",s); /*输入选择项*/ c=atoi(s); /*将输入的字符串转化为整形数*/ }while(c<0||c>14); /*选择项不在0~14之间重输*/ return c; /*返回选择项,主程序根据该数调用相应的函数*/}STUDENT *init(){ return NULL;}/*创建链表*/STUDENT *create(){ int i; int s; STUDENT *h=NULL,*info; /* STUDENT指向结构体的指针*/ for(;;) { info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!info) /*如果指针info为空*/ { printf("\nout of memory"); /*输出内存溢出*/ return NULL; /*返回空指针*/ } inputs("enter no:",info->no,11); /*输入学号并校验*/ if(info->no[0]=='@') break; /*如果学号首字符为@则结束输入*/ inputs("enter name:",。

c语言学生成绩管理系统毕业论文

转载请注明出处众文网 » c语言学生成绩管理系统毕业论文(数据结构课程设计)

资讯

毕业论文开题报告课题研究工作进度(科研的项目进度安排)

阅读(75)

本文主要为您介绍毕业论文开题报告课题研究工作进度,内容包括论文研究工作进度安排怎么写,科研的项目进度安排,毕设开题报告怎么写。课题研究开题报告格式 目录说明:目录至少包含到二级目录课题目的、意义二、国内外研究现状三、课题研究纲

资讯

工商管理相关的毕业论文(工商管理专业毕业论文写什么好呢?)

阅读(69)

本文主要为您介绍工商管理相关的毕业论文,内容包括工商管理专业毕业论文写什么好呢?,工商管理学毕业论文求免费的工商管理专业毕业论文下载!!!要工,工商管理专业,急求毕业论文一篇。可以写的方面还是比较多的,还是比较容易写的。 首先,要写与

资讯

毕业论文里面的引用有限制次数吗(论文引用次数能说明什么)

阅读(81)

本文主要为您介绍毕业论文里面的引用有限制次数吗,内容包括中国期刊论文怎么查看被引用次数啊,重复引用同一文献请哪位高人指点一下写论文时,在同一本书中引用,如何查询国内论文被引用数次(以中国科技核心期刊发布为准)百度。中国论文数量

资讯

本科毕业论文字数要求包括(本科论文一般字数要求多少?)

阅读(76)

本文主要为您介绍本科毕业论文字数要求包括,内容包括本科论文一般字数要求多少?,一般情况下学士学位毕业论文的字数要求是多少字啊?,毕业论文字数包括什么呢?是指正文还是包括摘要(中英文)、前言等。本科论文正文的写作要求(5000-8000字) 对

资讯

九江学院毕业写论文流程(大学毕业论文怎样写)

阅读(69)

本文主要为您介绍九江学院毕业写论文流程,内容包括我需要一个毕业论文的流程,希望各位帮我一把,大学毕业论文怎样写(急),大学本科毕业论文需要花多长时间来写。政府危机管理绩效评估是对各级政府、政府职能部门及其公务员在危机管理中的行为

资讯

毕业论文开题报告课题研究工作进度(科研的项目进度安排)

阅读(75)

本文主要为您介绍毕业论文开题报告课题研究工作进度,内容包括论文研究工作进度安排怎么写,科研的项目进度安排,毕设开题报告怎么写。课题研究开题报告格式 目录说明:目录至少包含到二级目录课题目的、意义二、国内外研究现状三、课题研究纲

资讯

工商管理相关的毕业论文(工商管理专业毕业论文写什么好呢?)

阅读(69)

本文主要为您介绍工商管理相关的毕业论文,内容包括工商管理专业毕业论文写什么好呢?,工商管理学毕业论文求免费的工商管理专业毕业论文下载!!!要工,工商管理专业,急求毕业论文一篇。可以写的方面还是比较多的,还是比较容易写的。 首先,要写与

资讯

毕业论文里面的引用有限制次数吗(论文引用次数能说明什么)

阅读(81)

本文主要为您介绍毕业论文里面的引用有限制次数吗,内容包括中国期刊论文怎么查看被引用次数啊,重复引用同一文献请哪位高人指点一下写论文时,在同一本书中引用,如何查询国内论文被引用数次(以中国科技核心期刊发布为准)百度。中国论文数量

资讯

本科毕业论文字数要求包括(本科论文一般字数要求多少?)

阅读(76)

本文主要为您介绍本科毕业论文字数要求包括,内容包括本科论文一般字数要求多少?,一般情况下学士学位毕业论文的字数要求是多少字啊?,毕业论文字数包括什么呢?是指正文还是包括摘要(中英文)、前言等。本科论文正文的写作要求(5000-8000字) 对

资讯

各高校毕业论文写作时间(大学论文的规范是怎样的)

阅读(68)

本文主要为您介绍各高校毕业论文写作时间,内容包括大学论文一般是写什么,,是怎样写的,多长时间写一篇,毕业论文一般要写多久,毕业论文用多长时间写完。你的论文准备往什么方向写,选题老师审核通过了没,有没有列个大纲让老师看一下写作方向? 老

资讯

导师问有关毕业论文答案模版(毕业答辩老师会问什么问题呀)

阅读(68)

本文主要为您介绍导师问有关毕业论文答案模版,内容包括毕业论文开题答辩怎么回答,毕业答辩老师会问什么问题呀,毕业论文答辩一般老师会问关于程序的问题吗。恭喜毕业!!答辩完好好享受最后的一个月吧!答辩老师一般是围绕你写的自己论文或者设计