学生学分管理程序-c语言代码-学生成绩统计c语言代码之令狐采学创编之欧阳家百创编
学生成绩管理系统c语言代码(供)
C程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h"#include"stdlib.h"#include"string.h"typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>初始化失败!");return 0;}else{p->next=NULL;p->date.number=0;//头结点存放学生人数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.number=m;printf("=>请输入性别!\n");gets(p->date.sex);fflush(stdin);printf("=>请输入数学成绩\n");scanf("%d",&m);fflush(stdin);p->date.math=m;printf("=>请输入英语成绩\n");scanf("%d",&m);fflush(stdin);p->date.eglish=m;printf("=>请输入c语言成绩\n");scanf("%d",&m);fflush(stdin);p->date.clanguge=m;p->date.average=(p->date.math+p->date.eglish+p->date.clanguge );q=head->next;head->next=p;p->next=q;head->date.number++;}void deletion(unit *head)//删除一名学生{unit *p=head->next,*q=head;char N[10];printf("=>请输入你想删除的学生姓名!\n");gets(N);fflush(stdin);if(p==NULL)printf("=>系统无学生可删除!\n");while(p){if(strcmp(p->,N)==0){q->next=p->next;head->date.number--;printf("=>删除%s成功!\n",p->);free(p);break;}else{p=p->next;q=q->next;if(p==NULL)printf("=>你要删除的学生不存在,删除失败!\n");}}}int display(unit *head)//显示学生信息{unit *p=head->next;int m,n=0;char N[10];if(p==NULL){printf("=>系统无学生!\n");return 0;}while(n==0){printf("**************************************************************** **************\n");printf("=>请选择你的操作!\n");printf("=>\t\t\t1.显示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n");scanf("%d",&m);fflush(stdin);switch(m){case 1:printf("\n=>该系统拥有%d名学生!\n\n",head->date.number);p=head->next;printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n\n");while(p){printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);p=p->next;}break;case 2:printf("=>请输入查找姓名!\n");gets(N);fflush(stdin);p=head->next;while(p){if(strcmp(p->,N)==0){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date. number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!");}}break;case 3: printf("=>请输入查找学号!\n");scanf("%d",&m);fflush(stdin);p=head->next;while(p){if(p->date.number==m){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date. number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!\n");}}break;case 4:n=1;break;}}return 1;}int range(unit *head)//排序{unit *p=head,*q=head->next;int n,i,m=head->date.number;printf("**************************************************************** ***************\n");printf("\t\t\t1.按学号\t2.按成绩\n\n");printf("=>请选择操作!\n》");scanf("%d",&n);fflush(stdin);if(q==NULL){ printf("=>无学生可排序!\n");return 0;}switch(n){case 2:for(i=0;i<m;i++)//按总分排序{p=head;q=head->next;while(q->next){if((q->date.average)<(q->next->date.average)){p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next;}}}break;case 1:for(i=0;i<=m;i++)//按学号排序{p=head;q=head->next;while(q->next){if((q->date.number)>(q->next->date.number)){p->next=q->next;p=p->next;p->next=q;}else{p=p->next;q=q->next;}}}break;}printf("=>排序成功!\n");return 1;}void menu(){printf("\n********************************* 主菜单***************************************\n");printf("\t\t\t1.新建系统\t2.添加学生\n\t\t\t3.删除学生\t4.查看信息\n\t\t\t5.排列顺序\t6.读取信息\n\t\t\t7.保存信息\t8.退出系统\n");printf("=>请选择你的操作!\n");}int save(unit *head)//保存{FILE *fp;unit *p;p=head;if((fp=fopen("d:\\学生","wb+"))==NULL){printf("=>保存失败!");return 0;}while(p){fwrite(&(p->date),sizeof(student),1,fp);p=p->next;}printf("=>保存成功!");fclose(fp);return 1;}unit* read()//读入系统学生信息{int i;unit *p,*q,*head;FILE *fp;if((head=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>开辟空间失败!");exit(1);}else{head->next=NULL;head->date.number=0;//头结点存放学生人数}q=head;if((fp=fopen("d:\\学生","rb"))==NULL){printf("=>系统无学生!\n");return 0;}fread(&(q->date),sizeof(student),1,fp);for(i=0;i<head->date.number;i++){if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>读值失败!");exit(1);}fread(&(p->date),sizeof(student),1,fp);p->next=q->next;q->next=p;}fclose(fp);return head;}void main(){int m=0,n, i;unit *head;printf("******************************************************************** ************\n\n");printf("\t\t\t* 欢迎使用学生成绩管理系统* \n");printf("\n\t\t\t\t\t\t\t\t编译员:吹吹风\n\n");printf("=>正在读取系统信息......\n");if((head=read())==0){printf("=>是否新建?\n");printf("\t\t\t是(1)\t\t否(2)\n");scanf("%d",&i);fflush(stdin);if(i==1)head=build();else if(i==2)exit(1);}elseprintf("=>信息导入成功!");while(m==0){menu();scanf("%d",&n);fflush(stdin);switch(n){case 1: head=build();break;case 2:add(head);break;case 3:deletion(head);break;case 4:display(head);break;case 5: range(head);break;case 6:head=read();if(head!=0) printf("=>读取存盘成功!\n");break;case 7:save(head);break;case 8:m=1;break;}}}。
学生成绩管理系统c语言代码(供参考)
C程序学生管理系统以下是用C语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h"#include”stdlib。
h"#include"string。
h”typedefstruct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedefstruct unit//定义接点{studentdate;struct unit*next;}unit;unit大build()//建立链表并返回指针{unit*p;if((p=(unit*)malloc(sizeof(unit)))==NULL){printf("二>初始化失败!”);return0;}else{p—>next=NULL;p-〉date.number=O;//头结点存放学生人数printf("初始化成功!\n");return p;}}void add(unit大head)//增加学生{unit*p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”二〉请输入新生姓名!\n");gets(p—>);fflush(stdin);printf("二〉请输入学号!\n");while(n==0){scanf("%d",&m);fflush(stdin);if(q二二NULL)n二1;while(q){if(q->date.number==m){prinTf("二>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head-〉next;break;}else{q=q->next;if(q==NULL)n=1;}}}p一〉date。
学生成绩管理系统c语言代码(供参考)
C程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考) #include"stdio.h"#include”stdlib。
h"#include"string。
h”typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>初始化失败!”);return 0;}else{p—>next=NULL;p-〉date.number=0;//头结点存放学生人数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语言学生成绩管理系统代码
include<stdio.h>include<string.h>include<stdlib.h>define MAXN 100 //一个班最多的人数define MAXM 2 //成绩的课程门数int R;void input; //1.学生成绩新建void sort; //2.学生成绩插入void load; //3.学生成绩修改void print; //4.学生成绩删除void total; //5.学生成绩统计void search; //6.学生成绩查询void save; //7.学生成绩保存void end; //8.结束struct student{char name20; //保存全班姓名char num12; //保存全班学号float scoreMAXM; //保存全班所有课程成绩float sum; //保存全班每个人的总成绩float avg; //保存每个人的平均成绩};struct student sMAXN;struct http{char subject20; //保存全班所有课程};struct http cMAXM;void main //欢迎首界面{int select;l;system"color fC";printf"\n";printf"\n";printf"\n";printf"\n";printf" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n";printf" \n";printf" \n";printf" 欢迎进入终极一班学生管理系统\n";printf" \n";printf" ︻┳═一 cf ... \n";printf" ┈━═☆甘总管的多塔生活∝╬══→ \n";printf" \n";printf" 凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸 \n";printf" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n";printf" ╭v╮ ╔══╗╔╗ ╔╗╔╗╭'''╮\n";printf" ^o^╚╗╔╝║║╔═╦╦╦═╗║╚╝╠═╦╦╗~ : ~\n";printf" ~ : ~╔╝╚╗║╚╣║║║║╠╣╚╗╔╣║║║║~v ~\n";printf" ╚══╝╚═╩═╩═╩═╝╚╝╚═╩═╝ \n";printf"\n";printf"\n";printf" 请按任意键进入下一界面\n";printf"------------------------------------------------------------------\n";system"pause";system"color f2";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color f5";system"color f9";system"color f6";system"color fD";system"pause";system"color fC";system"cls"; //上面是第一个界面while1{system"cls";printf" 欢迎进入终极一班学生管理系统\n";printf" \n";printf" ∝╬══→ 1.学生成绩新建囧rz 欢\n";printf" ::======>> 2.学生成绩插入迎\n";printf" ┈━═☆ 3.学生成绩修改来\n";printf" ∝╬══→ 4.学生成绩删除到\n";printf" ∝╬══→ 5.学生成绩统计英\n";printf" ∝╬══→ 6.学生成绩查询雄\n";printf" ▄︻┻═┳ 7.学生成绩保存联\n";printf" ∝╬══→ 8.退出/撒拉嘿盟\n";printf" ⊙_⊙⊙_⊙⊙_⊙⊙_⊙⊙_⊙⊙_⊙ \n"; printf" \n";printf"\n"; printf"\n 请输入您的选择编号;回车键继续:\n";printf" ---------------------------------------------------------------------------\n";scanf"%d";&select;do{ifselect<1||select>8{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&select;}l=select;}whilel<1||l>8;switchselect{case 1:input;break; //1.学生成绩新建case 2:sort; break; //2.学生成绩插入case 3:load; break; //3.学生成绩修改case 4:print; break; //4.学生成绩删除case 5:total;break; //5.学生成绩统计case 6:search;break; //6.学生成绩查询case 7:save;break; //7.学生成绩保存case 8: end;break; //8.结束default:printf" 请按相应数学选择系统功能:";}}}void input //1学生成绩输入成绩模块{int i;j;b;float a=0;printf" 请输入该班同学的人数:\n";printf" 班同学的人数在1~%d之间:\n";MAXN;scanf"%d";&R;do{ifR<1||R>100{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&R;}b=R;}whileb<1||b>100;fori=0;i<MAXM;i++{printf" 请输入该班同学的第%d门课程名称为:\n";i+1;scanf"%s"; &ci.subject;}fori=0;i<R;i++{printf" 请输入第%d个同学的姓名:\n";i+1;scanf"%s";&;printf" 请输入第%d个同学的学号:\n";i+1;scanf"%s";&si.num;printf" 请依次输入%d门学科的成绩:\n";MAXM;forj=0;j<MAXM;j++{printf" 请输入课程%s的成绩为:\n";cj.subject;scanf"%f";&si.scorej;a=a+si.scorej;}si.sum=a;si.avg=si.sum/MAXM;a=0;}}void sort //2学生成绩插入成绩模块{int i;j;k;b;float a=0;printf" 请输入要插入的学生的位置1~%d号:\n";R;printf" 第几个学生的位置之后:\n";scanf"%d";&k;do{ifk<1||k>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&k;}b=k;}whileb<1||b>R;R=R+1;fori=R;i>k;i--{;;strcpysi.num;si-1.num;si.sum=si-1.sum;si.avg=si-1.avg;forj=0;j<MAXM;j++{si.scorej=si-1.scorej;}}printf" 请输入第%d个同学的姓名:\n";k+1;scanf"%s";&;printf" 请输入第%d个同学的学号:\n";k+1;scanf"%s";&sk.num;printf" 请依次输入%d门学科的成绩:\n";MAXM;forj=0;j<MAXM;j++printf" 请输入课程%s的成绩为:\n";&cj.subject;scanf"%f"; &sk.scorej;a=a+sk.scorej;}sk.sum=a;sk.avg=sk.sum/MAXM;}void load //3学生成绩修改{float a=0;hMAXM;int i;j;b;printf" 请输入修改学生的位置1~%d 号: \n";R;scanf"%d";&i;do{ifi<1||i>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&i;}b=i;}whileb<1||b>R;printf" 请输入%d号的新学号: \n";i;scanf"%s";&;printf" 请输入%d号的新姓名: \n";i;scanf"%s";&si-1.num;forj=0;j<MAXM;j++{printf" 请输入课程%s的成绩为:\n";&cj.subject;scanf"%f";&hj;si-1.scorej =hj;a=a+si-1.scorej;si-1.sum=a;si-1.avg=si-1.sum/MAXM;}void print //4学生成绩删除{int i;j;k;b;printf" 请输入删除学生的位置1~%d 号:\n";R;scanf"%d";&k;do{ifk<1||k>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&k;}b=k;}whileb<1||b>R;i=k-1;fori;i<R;i++{;si+;strcpysi.num;si+1.num;si.sum=si+1.sum;si.avg=si+1.avg;forj=0;j<MAXM;j++{si.scorej=si+1.scorej;}}R=R-1;printf"删除成功 \n";}void total //5.学生成绩统计{int i;j;float aMAXM;b=0;printf"学号:姓名:课程%s的分数:课程%s的分数: 总成绩:平均成绩:\n";c0.subject;c1.subject;fori=0;i<R;i++{printf"%s%10.2s%16.2f%16.2f%16.2f%16.2f\n";si.num;;si.score0 ;si.score1;si.sum;si.avg;}fori=0;i<MAXM;i++{forj=0;j<R;j++{b=b+sj.scorei;}ai=b/R;b=0;}fori=0;i<MAXM;i++{printf" 全班课程%s的平均分为:%f\n";ci.subject;ai;}printf"排序完毕.\n";system"pause";}void search //6查询成绩模块{int search1;int search2;int select;index;b;while1{printf" \n";printf" 1.按学号查询\n";printf" 2.按姓名查询\n";printf" 0.返回\n";printf" 请输入您的选择编号:\n";printf" \n";scanf"%d";&select;do{ifselect<0||select>2{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&select;}b=select;}whileb<0||b>2;switchselect{case 1:index=search1; break;case 2:index=search2;break;case 0:return;}ifindex=-1{int i;printf" \n";printf" 学号:%s \n"; sindex.num;printf" 姓名:%s \n"; ;printf" 总成绩:%f \n"; sindex.sum;printf" 平均成绩:%f \n"; sindex.avg;fori=0;i<MAXM;i++printf" 课程%s的成绩为:%f \n"; ci.subject;sindex.scorei;printf" \n";}else printf"没有这个同学..\n";}}int search1 //按学号查询模块{int i;char s_num12;printf" 请输入要查询的学号:";scanf"%s";&s_num;fori=0;i<MAXN;i++ifstrcmpsi.num;s_num==0break;ifi<MAXNreturn i;else return -1;}int search2 //按姓名查询模块{int i;char s_name10;printf" 请输入要查询的姓名:";scanf"%s";&s_name;fori=0;i<MAXN;i++;s_name==0break;ifi<MAXNreturn i;else return -1;}void save//7保存成绩模块{FILE fp;int i;j;k=0;char filename20;printf"请输入文件名请以 .txt 结束: ";scanf"%s";filename;iffp=fopenfilename; "w"==NULL{printf"打开文件失败.\n";return;}fprintffp; "该班学生数和所修课程数分别为:%d;%d\n\n";R;MAXM; fprintffp; "该班所修的课程有:\n";forj=0;j<MAXM;j++fprintffp; "课程%d:%s\n";1+j;cj.subject;fprintffp; "下面是该班学生信息:\n\n";fori=0;i<R;i++{fprintffp; "学号:%s 姓名:%s\n";si.num;;forj=0;j<MAXM;j++{fprintffp; "%s:%5.2f\n";cj.subject;sk.scorej;}fprintffp; "学生总成绩:%5.2f\n学生平均成绩:%5.2f\n\n";si.sum;si.avg;k++;}fclosefp;printf"\n\n 保存成功\n\n\n\n";fclosefp;printf"保存完毕.\n";}void end //8.结束{system"cls";system"color f4";printf"\n";printf"\n";printf"\n";printf" █◣◢█◣◢█◣◢█▁▁\n";printf"█████████████\\//\n";printf"\n";printf"◢█████████████◣//\\\n";printf"\n";printf"◢███████████████◣ ̄▌ ̄\n";printf"\n";printf" ██●███●██▌ \n";printf"\n";printf" ██◣◢███◣◢██▌\n";printf"\n";printf" ◥█████◤^◥█████◤▌\n";printf"\n";printf" ◥████◣/\◢████◤◢██\n";printf"\n";printf"◢█████████████◢██◤\n";printf"\n";printf"◢████████████████ \n";printf"\n";printf" ██◤◢███◤◥███◣\n";printf"\n";printf" ◢███◤◥███◣\n";printf"\n";printf" ████████ \n";printf"\n";printf"\n";printf"\n\n 谢谢您的使用..BYE\n\n\n\n\n\n\n\n";system"color f2";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color f5";system"color f9";system"color f6";exit0;}。
c语言学生成绩信息管理系统源代码
C语言学生成绩信息管理系统源代码一、概述在学校教学管理工作中,学生成绩信息管理是一个至关重要的环节。
为了方便高效地进行学生成绩信息的录入、查询和管理,我们可以利用C语言编写一个学生成绩信息管理系统。
本文将介绍该系统的源代码,并对其进行详细的解释和讲解。
二、系统功能需求1. 录入学生成绩信息2. 查询学生成绩信息3. 修改学生成绩信息4. 删除学生成绩信息5. 显示所有学生成绩信息三、系统源代码实现```c#include <stdio.h>#include <stdlib.h>#include <string.h>// 定义学生结构体typedef struct student {int id; // 学号char name[20]; // 尊称float score; // 成绩} Student;// 全局变量int count = 0; // 记录学生数量Student students[100]; // 学生数组// 录入学生成绩信息void inputStudentInfo() {printf("请输入学生学号:");scanf("d", students[count].id);printf("请输入学生尊称:");scanf("s", students[count].name); printf("请输入学生成绩:");scanf("f", students[count].score); count++;}// 查询学生成绩信息void queryStudentInfo(int id) {for (int i = 0; i < count; i++) {if (students[i].id == id) {printf("学生信息如下:\n");printf("学号:d\n", students[i].id);printf("尊称:s\n", students[i].name);printf("成绩:.2f\n", students[i].score);return;}}printf("未找到该学生信息!\n");}// 修改学生成绩信息void modifyStudentInfo(int id, char *name, float score) { for (int i = 0; i < count; i++) {if (students[i].id == id) {strcpy(students[i].name, name);students[i].score = score;printf("修改成功!\n");return;}}printf("未找到该学生信息!\n");}// 删除学生成绩信息void deleteStudentInfo(int id) {for (int i = 0; i < count; i++) {if (students[i].id == id) {for (int j = i; j < count - 1; j++) { students[j] = students[j + 1]; }count--;printf("删除成功!\n");return;}}printf("未找到该学生信息!\n");}// 显示所有学生成绩信息void displayAllStudentInfo() {if (count == 0) {printf("暂无学生信息!\n");return;}printf("学生成绩信息如下:\n");for (int i = 0; i < count; i++) {printf("学号:d,尊称:s,成绩:.2f\n", students[i].id, students[i].name, students[i].score);}}int m本人n() {int choice, id;char name[20];float score;while (1) {printf("欢迎使用学生成绩信息管理系统!\n");printf("1. 录入学生成绩信息\n");printf("2. 查询学生成绩信息\n");printf("3. 修改学生成绩信息\n");printf("4. 删除学生成绩信息\n");printf("5. 显示所有学生成绩信息\n");printf("6. 退出系统\n");printf("请选择操作:");scanf("d", choice);switch (choice) {case 1: // 录入学生成绩信息inputStudentInfo();break;case 2: // 查询学生成绩信息printf("请输入要查询的学生学号:"); scanf("d", id);queryStudentInfo(id);break;case 3: // 修改学生成绩信息printf("请输入要修改的学生学号:"); scanf("d", id);printf("请输入修改后的尊称:");scanf("s", name);printf("请输入修改后的成绩:");scanf("f", score);modifyStudentInfo(id, name, score); break;case 4: // 删除学生成绩信息printf("请输入要删除的学生学号:"); scanf("d", id);deleteStudentInfo(id);break;case 5: // 显示所有学生成绩信息displayAllStudentInfo();break;case 6: // 退出系统printf("感谢使用学生成绩信息管理系统!\n");exit(0);default:printf("请输入正确的操作!\n");}}return 0;}```四、系统运行效果1. 运行系统后,会出现一个菜单,根据需求选择相应的操作。
学生成绩统计管理C语言实现源代码
有两个,第二个写了些注释,你自己看一下觉得哪个理解的好方法一:#include<iostream>#include<string>#include<iomanip>#include<fstream>using namespace std;class CData{public:CData(){};virtual int comparename(CData &) =0;virtual void show()=0;virtual ~CData(){};};class CNode{public:CNode(){pdata=0;pnext=0;}CNode(CNode &n);void inputdata(CData *pd){pdata=pd;}void shownode(){pdata->show();}CData *getdata(){return pdata;}friend class CList;private:CData *pdata;CNode *pnext;};CNode::CNode(CNode &n){pdata=n.pdata;pnext=n.pnext;}class CList{public:CList(){phead=0;}~CList(){deletelist();}void addnode(CNode *pnode);void deletelist();CNode *deletenode(CNode *pnode);CNode *lookup(CData &data);CNode *getlisthead(){return phead;}void showlist();CNode *getnext(CNode *pnode); private:CNode * phead;};void CList::addnode(CNode *pnode){if(phead==0){phead=pnode;pnode->pnext=0;return;}else{pnode->pnext=phead;phead=pnode;}}void CList::deletelist(){CNode *p1,*p2;p1=phead;while(p1){delete p1->pdata;p2=p1;p1=p1->pnext;delete p2;}}CNode *CList::deletenode(CNode *pnode) {CNode *p1,*p2;p1=phead;while(p1!=pnode&&p1->pnext!=0){p2=p1;p1=p1->pnext;}if(p1==phead){phead=phead->pnext;return pnode;}p2->pnext=p1->pnext;return pnode;}CNode *CList::lookup(CData &data) {CNode *p1=phead;while(p1){if(p1->pdata->comparename(data)==0) return p1;p1=p1->pnext;}return 0;}void CList::showlist(){if(phead==0)cout<<"对不起,没有任何记录.\n"; else{CNode *p=phead;while(p){p->pdata->show();p=p->pnext;}}}CNode *CList::getnext(CNode *pnode) {CNode *p=pnode;p=p->pnext;return p;}class Student:public CData{private:char s_class[17];char s_num[17];char s_name[17];double ele_technique;double c_program;double mul_technique;double col_english;double sen_math;double col_gym;double marx_economy;double average;public:Student();virtual int comparename(CData &);void show();void set(char *c,char*n,char *nam,double e,double cp,double m,double ce,double sm,double cg,double mar,double aver);};Student::Student(){strcpy(s_class,"\0");strcpy(s_num,"\0");strcpy(s_name,"\0");ele_technique=0;c_program=0;mul_technique=0;col_english=0;sen_math=0;col_gym=0;marx_economy=0;}int Student::comparename(CData &data){Student &temp=(Student &)data;return strcmp(s_name,temp.s_name);}void Student::show(){cout<<setw(7)<<s_class<<setw(12)<<s_num<<setw(12)<<s_name;cout<<setw(6)<<ele_technique<<setw(6)<<c_program<<setw(6)<<mul_technique;cout<<setw(6)<<col_english<<setw(6)<<sen_math<<setw(6)<<col_gym;cout<<setw(6)<<marx_economy<<" "<<setw(3)<<average<<endl;;}void Student::set(char *c,char*n,char *nam,double e,double cp,double m,double ce,double sm,dou ble cg,double mar,double aver){strcpy(s_class,c);strcpy(s_num,n);strcpy(s_name,nam);ele_technique=e;c_program=cp;mul_technique=m;col_english=ce;sen_math=sm;col_gym=cg;marx_economy=mar;average=aver;}void print(){cout<<setw(7)<<"class"<<setw(12)<<"number"<<setw(12)<<"name"; cout<<setw(6)<<"ele"<<setw(6)<<"C++"<<setw(6)<<"media";cout<<setw(6)<<"eng"<<setw(6)<<"math"<<setw(6)<<"gym";cout<<setw(6)<<"marx"<<setw(6)<<"aver"<<endl;}void display(CList &stulist){print();stulist.showlist();cout<<endl;cout<<"按任意键返回主菜单";getchar();getchar();}void add(CList &stulist){CNode *p;Student *s;char c[17],n[17],nam[17];double e,cp,m,ce,sm,cg,mar;float aver;cout<<"请输入姓名(输入0结束):";cin.ignore();cin.getline(nam,17);while(strcmp(nam,"0")){cout<<"输入学号:";cin.getline(n,17);cout<<"输入班级:";cin.getline(c,17);cout<<"输入电子技术成绩:";cin>>e;cout<<"输入C++成绩:";cin>>cp;cout<<"输入多媒体技术成绩:";cin>>m;cout<<"输入大学英语成绩:";cin>>ce;cout<<"输入高等数学成绩:";cin>>sm;cout<<"输入大学体育成绩:";cin>>cg;cout<<"输入马克思政治经济学成绩:";cin>>mar;aver=((e+cp+m+ce+sm)*0.8/5+cg*0.15+mar*0.05);s=new Student;s->set(c,n,nam,e,cp,m,ce,sm,cg,mar,aver);p=new CNode;p->inputdata(s);stulist.addnode(p);cout<<"记录添加成功."<<endl;cout<<"请输入姓名(输入0结束):";cin.ignore();cin.getline(nam,17);}}void lookup(CList &stulist){CNode *plook;char name[17];cout<<"请输入你要查找的姓名(输入0结束):";cin.ignore();cin.getline(name,17);while(strcmp(name,"0")){Student s;s.set("0","0",name,0,0,0,0,0,0,0,0);plook=stulist.lookup(s);if(plook){print();plook->shownode();}elsecout<<"对不起,在学生记录中查找不到"<<name<<"的记录."<<endl; cout<<"请输入你要查找的姓名(输入0结束):";cin.getline(name,17);}}void deletes(CList &stulist){CNode *plook;char name[17];cout<<"请输入要删除的记录的学生姓名(输入0结束):";cin.ignore();cin.getline(name,17);while(strcmp(name,"0")){s.set("0","0",name,0,0,0,0,0,0,0,0);plook=stulist.lookup(s);if(plook){print();plook->shownode();stulist.deletenode(plook);cout<<name<<"的记录已经删除.\n";}elsecout<<"对不起,在学生记录中查找不到"<<name<<"的记录.\n"<<endl; cout<<"请输入要删除的记录的学生姓名(输入0结束):";cin.getline(name,17);}}void storefile(CList &stulist){ofstream outfile("student.dat",ios::binary);if(!outfile){cout<<"数据文件打开错误,数据存入文件失败!"<<endl;return;}CNode *p;Student *s;p=stulist.getlisthead();while(p){s=(Student *)p->getdata();outfile.write((char *)s,sizeof(Student));p=stulist.getnext(p);}outfile.close();}void loadfile(CList &stulist){ifstream infile("student.dat",ios::binary);if(!infile){cout<<"没有数据文件!"<<endl;return;}CNode *p;while(! infile.eof()){s=new Student;infile.read((char *)s,sizeof(Student));p=new CNode;p->inputdata(s);stulist.addnode(p);}stulist.deletenode(p);infile.close();}void operate(CList &stulist){int choice;do{system("cls");cout<<" →欢迎进入学生成绩管理系统←\n";cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~\n"<<" 1.输出所有学生成绩记录\n"<<" 2.增加学生成绩记录\n"<<" 3.删除学生成绩记录\n"<<" 4.查询学生成绩记录\n"<<" 0.退出学生能够成绩管理系统\n"<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~\n";cout<<"提示:按0-4进行选择您要的服务";cin>>choice;cout<<endl;switch(choice){case 1:display(stulist);break;case 2:add(stulist);break;case 3:deletes(stulist);break;case 4:lookup(stulist);break;case 0:storefile(stulist);break;default:cout<<"输入错误,请重新输入您的选择:";}}while(choice!=0);}int main(){loadfile(stulist);operate(stulist);cout<<"谢谢使用学生成绩管理系统,再见!";return 0;}方法二:#include<iostream>#include<string>#include <fstream>#include<sstream>#include<iomanip>using namespace std;//结点类,用于存放学生的各种数据class Node{public:int id; //学号string name; //姓名string grade; //等级double english; //英语double math; //数学double c; //C++double sum; //总分double average;Node *next; //指向下一结点的指针Node(int nid=0,string nname="noname", //构造函数,初始化变量double e=0,double m=0,double cl=0,double s=0 ,double a=0,string g="ng");};Node::Node(int nid,string nname,double e,double m,double cl,double s,double a,string g){ id=nid;name=nname;next=NULL;english=e;math=m;c=cl;sum=s;average=a;grade=g;}//class NOde结束//Link类,把数据以链表的形式存储,链表的每个结点为一个Node对象class Link{private:Node *head; //链表的头指针,为Node对象类型的指public :Link();//构造函数,初始化变量bool linkIsEmpty();//判断链表是否为空void linkInsert(Node *newnode);//向链表中插入新的结点bool linkDelete(int nid);//从链表中删除的结点void linkClear();//清空链表中数据void linkView();//查看链表中数据void linkGrade(Node *p1);//计算等级void linkAverageTotle();//按平均分统计Node* linkFind(int nid);//在链表中查找id为nid结点,返回指向该结点的指针Node* getHead();//获取头指针};Link::Link(){ //构造函数,初始化链表为空head=NULL;}bool Link::linkIsEmpty(){ //判断链表是否为空,空则返回truereturn(head==NULL);}void Link::linkInsert(Node *newnode){//按id值从小到大的顺序,插入新的结点Node *p1;if(!head)//链表为空的情况head=newnode;else if((head->id)>(newnode->id)){//插入到第一个结点的情况newnode->next=head;head=newnode;}else{//插入到第二个及以后情况p1=head;while(1){if(!(p1->next)){p1->next=newnode;break;}else if((p1->next)->id>newnode->id){newnode->next=p1->next;p1->next=newnode;break;}p1=p1->next;}}}bool Link::linkDelete(int nid){//删除结点,成功则返回trueNode *p;if(head==NULL)//链表为空的情况return false;if(head->id==nid){//删除的为第一个结点的情况head=head->next;return true;}p=head;while(p->next){//删除的为第二个及以后结点的情况if((p->next)->id==nid){p->next=(p->next)->next;return true;}p=p->next;}return false;}void Link::linkClear(){//清空链表head=NULL;}void Link::linkView(){//显示链表数据Node *p=head;cout<<setw(10)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"英语"<<setw(8)<<"数学"<<setw(8)<<"C++"<<setw(8)<<"总分"<<setw(8)<<"平均分"<<setw(8)<<"等级"<<endl;while(p){(p->sum)=(p->english)+(p->math)+(p->c);//计算总分(p->average)=((p->english)+(p->math)+(p->c))/3;//计算平均成绩linkGrade(p);//计算等级cout<<setw(10)<<p->id<<setw(8)<<p->name<<setw(8)<<p->english <<setw(8)<<p->math<<setw(8)<<p->c<<setw(8)<<p->sum<<setw(8) <<p->average<<setw(8)<<p->grade<<endl;p=p->next;}}void Link::linkGrade(Node *p1){ // 计算等级while(p1){if(p1->average>=90&&p1->average<=100)p1->grade="优";else if(p1->average>=80&&p1->average<90)p1->grade="良好";else if(p1->average>=70&&p1->average<80)p1->grade="中等";else if(p1->average>=60&&p1->average<=70)p1->grade="合格";elsep1->grade="不合格";p1=p1->next;}}void Link::linkAverageTotle(){//按学生平均分统计int a=0,b=0,c=0,d=0,e=0,f=0;double averagesum=0,asum=0,aaverage=0,paverage=0;Node *p3=head;while(p3){if(p3->average>=90&&p3->average<=100)a+=1;else if(p3->average>=80&&p3->average<90)b+=1;else if(p3->average>=70&&p3->average<80)c+=1;else if(p3->average>=60&&p3->average<70)d+=1;elsee+=1;asum+=p3->sum;aaverage+=p3->average;p3=p3->next;}f=a+b+c+d+e;averagesum=asum/f;paverage=aaverage/f;cout<<"|-------------------------------------------------------|"<<endl;cout<<"| 总人数:"<<f<<endl;cout<<"|-------------------------------------------------------|"<<endl;cout<<"| 优人数:"<<a<<" | "<<"优秀率: "<<a*100/f<<"%"<<endl;cout<<"|-------------------------------------------------------|"<<endl;cout<<"| 良好的人数:"<<b<<" | "<<"良好率: "<<b*100/f<<"%"<<endl;cout<<"|-------------------------------------------------------|"<<endl;cout<<"| 中等的人数:"<<c<<" | "<<"中等率: "<<c*100/f<<"%"<<endl;cout<<"|-------------------------------------------------------|"<<endl;cout<<"| 所有合格人数:"<<a+b+c+d<<" | "<<"合格率: "<<(a+b+c+d)*100/f<<"%"<<endl; cout<<"|-------------------------------------------------------|"<<endl;cout<<"| 不合格数:"<<e<<" | "<<"不合格率: "<<e*100/f<<"%"<<endl;cout<<"|-------------------------------------------------------|"<<endl;cout<<"| 总分的平均分:"<<averagesum<<" | "<<"所有科目的平均分:"<<paverage<<endl; cout<<"|-------------------------------------------------------|"<<endl;}Node* Link::linkFind(int nid){//查找id值为nid的结点,返回该结点的指针Node *p=head; //没找到符合条件的结点的话,返回的指针值为NULLwhile(p){if(p->id==nid)break;elsep=p->next;}return p;}Node* Link::getHead(){return head;}//class Link 结束//类Student,用于包装Link类及菜单操作class Student{private:Link slink;//Link对象成员bool k;//记录数据是否被修改public:Student();void studentClear();void studentInsert();void studentDelete();void studentFind();void studentView();void studentLoad();void studentSave();void studentAverageTotle();//按平均分数统计等级void Exit();//退出程序void showMenu();//显示菜单void showTip();//显示操作提示void doMenu(char n);//执行相应菜单项功能};Student::Student(){Link();//调用成员对象的构造函数studentLoad();//从文件中读取数据,创建链表k=false;//设置数据被修改}void Student::studentClear(){//清空学生记录slink.linkClear();cout<<"成功清空学生记录!"<<endl;}void Student::studentInsert(){//插入学生记录Node *p=new Node();cout<<"请输入学号:";cin>>p->id;cout<<"请输入姓名:";cin>>p->name;if(!slink.linkFind(p->id)){//判断学号是否存在slink.linkInsert(p);k=true;}elsecout<<"学号为"<<p->id<<"的学生已存在,插入失败!"<<endl; cout<<"请输入成绩:"<<endl;cout<<"英语:";cin>>p->english;cout<<endl;cout<<"数学:";cin>>p->math;cout<<endl;cout<<"C++:";cin>>p->c;cout<<endl;(p->sum)=(p->english)+(p->math)+(p->c);//计算总分(p->average)=((p->english)+(p->math)+(p->c))/3;//计算平均成绩}void Student::studentDelete(){//删除学生记录int i;if(slink.linkIsEmpty())//链表为空的情况cout<<"没有学生记录!"<<endl;else{cout<<"请输入学号:";cin>>i;if(slink.linkDelete(i)){cout<<"成功删除学号为"<<i<<"的学生记录!"<<endl;k=true;}elsecout<<"没有找到学号为"<<i<<"的学生!"<<endl;}}void Student::studentFind(){//查找某学号的学生记录int n;Node *p;if(slink.linkIsEmpty())//链表为空的情况cout<<"没有学生记录!"<<endl;else{cout<<"请输入要查找的学号:";cin>>n;p=slink.linkFind(n);//获得找到的结点的指针if(p){//指针值不为NULL时(p->sum)=(p->english)+(p->math)+(p->c);//计算总分(p->average)=((p->english)+(p->math)+(p->c))/3;//计算平均成绩slink.linkGrade(p);cout<<setw(6)<<"学号"<<setw(8)<<"姓名"<<setw(8)<<"英语"<<setw(8)<<"数学"<<setw(8)<<"C++"<<setw(8)<<"总分"<<setw(8)<<"平均分"<<setw(8)<<"等级"<<endl;cout<<setw(6)<<p->id<<setw(8)<<p->name<<setw(8)<<p->english<<setw(8)<<p->math<<setw(8)<<p->c<<setw(8)<<p->sum<<setw(8)<<p->average <<setw(8)<<p->grade<<endl;}else//指针值为NULL时cout<<"没有找到学号为"<<n<<"的学生记录!"<<endl;}}void Student::studentView(){//显示所有学生的记录if(slink.linkIsEmpty())cout<<"没有学生记录!"<<endl;elseslink.linkView();}void Student::studentLoad(){//从文件中读入数据,创建链表Node *p;int nid;ifstream infile("data.txt");if(!infile)cerr<<"错误:数据文件不能打开!\n";elsewhile(infile>>nid){//读取学号,直到读空p=new Node();p->id=nid;infile>>p->name>>p->english>>p->math>>p->c>>p->sum>>p->average>>p->grade;//读取姓名slink.linkInsert(p);}infile.close(); //关闭文件}void Student::studentSave(){//将数据保存到文件Node *p=slink.getHead();ofstream outfile("data.txt");if(!outfile)cerr<<"错误:数据文件不能打开!\n";else{while(p){outfile<<p->id<<' '<<p->name<<' '<<p->english<<' '<<p->math<<' '<<p->c<<' '<<p->sum<<' '<<p->average<<' '<<p->grade<<endl;p=p->next;}k=false;cout<<"保存成功!"<<endl;}}void Student::studentAverageTotle(){if(slink.linkIsEmpty())cout<<"没有学生记录!"<<endl;elseslink.linkAverageTotle();}void Student::Exit(){char s='Y';if(k){//判断数据是否修改cout<<"数据已经改变,是否保存?(y/n):";cin>>s;if(s=='y'||s=='Y')studentSave();}cout<<"已安全退出,";system("pause");exit(0);}void Student::showMenu(){cout<<" "<<"|------------------------------------------------|"<<endl;cout<<" "<<"| 学生信息管理系统 |"<<endl;cout<<" "<<"|------------------------------------------------|"<<endl;cout<<" "<<"| 1. 清空:清除所有学生数据 |"<<endl;cout<<" "<<"|------------------------------------------------|"<<endl;cout<<" "<<"| 2. 添加:插入一条学生数据 |"<<endl;cout<<" "<<"|------------------------------------------------|"<<endl;cout<<" "<<"| 3. 删除:删除指定学生数据 |"<<endl;cout<<" "<<"|------------------------------------------------|"<<endl;cout<<" "<<"| 4. 查找:查找指定学生数据 |"<<endl;cout<<" "<<"|------------------------------------------------|"<<endl;cout<<" "<<"| 5. 显示:显示所有学生数据 |"<<endl;cout<<" "<<"|------------------------------------------------|"<<endl;cout<<" "<<"| 6. 保存:保存所有学生数据 |"<<endl;cout<<" "<<"|------------------------------------------------|"<<endl;cout<<" "<<"| 7. 统计:按学生平均分统计 |"<<endl;cout<<" "<<"|------------------------------------------------|"<<endl;cout<<" "<<"| 0. 退出:安全的退出本系统 |"<<endl;cout<<" "<<"|------------------------------------------------|"<<endl<<endl; }void Student::showTip(){cout<<endl;cout<<"-------------------操作完成---------------------"<<endl;cout<<"-----------------选择0-7继续-------------------"<<endl;cout<<"请选择:";}void Student::doMenu(char n){ switch(n){case '1':studentClear();break;case '2':studentInsert();break;case '4':studentFind();break;case '3':studentDelete();break;case '5':studentView();break;case '6':studentSave();break;case '7':studentAverageTotle();break;case '0':Exit();break;default:cout<<"输入错误!";}}int main(){Student s;char i='9';s.showMenu();cout<<"选择对应数字进行操作:"; while(1){cin>>i;system("cls"); //清除屏幕s.showMenu();s.doMenu(i);s.showTip();}}。
学生成绩管理系统C语言版
1、2、编一程序,能计算每个学生的总分和平均分。
3、编一程序,能按输入要求打印各门课程的最高分和最低分的同学。
4、编一程序,能将五个学生的成绩按总分进行降序排序。
5、编一程序,能删除一个学生的记录;6、编一程序,能增加一个学生的记录;建立一个菜单模式的学生信息管理系统,完成功能如下:一、建立主菜单*****学生信息管理系统*****1、输入学生信息2、输出学生信息3、计算每个同学成绩的总分与平均分4、对学生成绩进行排序5、输出每门功课最高分的同学信息6、输出每门功课最低分的同学信息7、退出系统主菜单界面:二、将综合练习一中的程序改写为子程序并能通过主菜单进行调用。
先上图开发环境windows 7,vc 6.0 开始贴代码:/*************** 张海山* 10软件2班* 安庆职业技术学院* QQ:136533295******************/#include"stdio.h"#include"stdlib.h"#include"malloc.h"#include"string.h"typedef struct lode{int id;char name[20];char sex[10];int score[4];struct lode *next;}lode,*linklist;linklist input(linklist head)//输入学生信息{char cmd='y';int t,i,l;char name[10];char sex[2];int score[3]={0};//int sum;linklist p;while(cmd=='y'||cmd=='Y'){p=(linklist)malloc(sizeof(lode));printf("请输入学生的编号\n");fflush(stdin);scanf("%d",&t);p->id=t;printf("请输入学生的姓名:\n");fflush(stdin);scanf("%s",p->name);/* l=strlen(p->name);p->sex[l]='\0';/* for(i=0;i<l;i++){p->name[i]=name[i];}*/printf("请输入学生的性别:\n");fflush(stdin);scanf("%s",p->sex);/* l=strlen(p->sex);p->sex[l]='\0';/* for(i=0;i<l;i++){p->sex[i]=sex[i];}*/fflush(stdin);printf("请依次输入学生的三门课成绩:\n");scanf("%d",&score[0]);p->score[0]=score[0];fflush(stdin);scanf("%d",&score[1]);p->score[1]=score[1];fflush(stdin);scanf("%d",&score[2]);p->score[2]=score[2];fflush(stdin);p->next=head->next;head->next=p;printf("是否继续(y)&返回主菜单(n) y&n\n");fflush(stdin);scanf("%c",&cmd);}return head;}linklist print(linklist head){linklist p;int i=1;p=head->next;printf("\t序号\t姓名\t性别\t英语\t数学\t语文\n");while(p!=NULL){printf("\t%d\t%s\t%s\t%d\t%d\t%d\n",p->id,p->name,p->sex,p->score[0],p->score[1],p->sco re[2]);p=p->next;/*if(p==NULL)break;printf("%d\n",i);*/}//printf("%d\n",i);//printf("i=%d\n",i);return 0;}void avg(linklist head){int sum=0;double avg=0;linklist p;p=head->next;while(p!=NULL){sum=0;sum=p->score[1]+p->score[2]+p->score[0];avg=sum/3;printf("%s的总分为:%d\t平均分为:%.2lf\n",p->name,sum,avg);p=p->next;}}void maxmin(linklist head){linklist p;intmax1=0,max1index,min1=head->next->score[0],min1index,max2=0,max2index,min2=head->nex t->score[1],min2index,max3=0,max3index,min3=head->next->score[2],min3index;p=head->next;while(p!=NULL){if(max1<(p->score[0])){max1=p->score[0];max1index=p->id;}if(min1>=(p->score[0])){min1=p->score[0];min1index=p->id;}if(max2<(p->score[1])){max2=p->score[1];max2index=p->id;}if(min2>=(p->score[1])){min2=p->score[1];min2index=p->id;}if(max3<(p->score[2])){max3=p->score[2];max3index=p->id;}if(min3>=(p->score[2])){min3=p->score[2];min3index=p->id;}p=p->next;}printf("英语:\n");p=head->next;while(p!=NULL){if((p->id)==max1index)printf("英语最高分为:%d\t姓名为:%s\n",p->score[0],p->name);if((p->id)==min1index)printf("英语最低分为:%d\t姓名为:%s\n",p->score[0],p->name);p=p->next;}printf("数学:\n");p=head->next;while(p!=NULL){if((p->id)==max2index)printf("数学最高分为:%d\t姓名为:%s\n",p->score[1],p->name);if((p->id)==min2index)printf("数学最低分为:%d\t姓名为:%s\n",p->score[1],p->name);p=p->next;}printf("语文:\n");p=head->next;while(p!=NULL){if((p->id)==max3index)printf("语文最高分为:%d\t姓名为:%s\n",p->score[2],p->name);if((p->id)==min3index)printf("语文最低分为:%d\t姓名为:%s\n",p->score[2],p->name);p=p->next;}}void rank(linklist head){linklist p;int i=0,j,k,n=0;int sum[100];p=head->next;while(p!=NULL){n++;sum[i]=p->score[1]+p->score[2]+p->score[0];i++;p=p->next;}printf("n=%d\n",n);for(i=1;i<6;i++){for(j=0;j<6-i;j++)if(sum[j]<sum[j+1]){k=sum[j];sum[j]=sum[j+1];sum[j+1]=k;}}printf("\t序号\t姓名\t性别\t英语\t数学\t语文\n");for(i=0;i<n;i++){p=head->next;while(p!=NULL){if(sum[i]==(p->score[1]+p->score[2]+p->score[0])){printf("\t%d\t%s\t%s\t%d\t%d\t%d\n",p->id,p->name,p->sex,p->score[0],p->score[1],p->sco re[2]);break;}p=p->next;}}}void add(linklist head){linklist p,q;p=head;q=(linklist)malloc(sizeof(lode));printf("请输入要插入学生的序号:\n");fflush(stdin);scanf("%d",&q->id);fflush(stdin);printf("请输入学生的姓名:\n");scanf("%s",q->name);fflush(stdin);printf("请输入学生性别:\n");scanf("%s",q->sex);fflush(stdin);printf("请依次输入学生的三门课成绩:\n");scanf("%d",&q->score[0]);fflush(stdin);scanf("%d",&q->score[1]);fflush(stdin);scanf("%d",&q->score[2]);fflush(stdin);q->next=NULL;while(p->next!=NULL){p=p->next;}p->next=q;//p->next=NULL;}void del(linklist head){linklist p,temp;int j;p=head->next;temp=head;printf("请输入要删除学生记录的序号:\n");scanf("%d",&j);while(p!=NULL){if(p->id!=j){p=p->next;temp=temp->next;}else{temp->next=p->next;free(p);break;}}}void main(){int cmd;linklist head;head=(linklist)malloc(sizeof(lode));head->next=NULL;do{printf("\n\n |***************学生成绩管理程序***************|\n");printf(" |----------------------------------------------|\n");printf(" | |\n");printf(" | 主菜单|\n");printf(" | |\n");printf(" |----------------------------------------------|\n");printf(" | |\n");printf(" | 请输入选择项目:|\n");printf(" | |\n");printf(" | 1、输入学生成绩|\n");printf(" | |\n");printf(" | 2、输出学生成绩|\n");printf(" | |\n");printf(" | 3、计算总成绩、平均成绩|\n");printf(" | |\n");printf(" | 4、求最高分、最低分|\n");printf(" | |\n");printf(" | 5、排序|\n");printf(" | |\n");printf(" | 6、增加记录|\n");printf(" | |\n");printf(" | 7、删除记录|\n");printf(" | |\n");printf(" | 0、退出系统|\n");printf(" | |\n");printf(" |----------------------------------------------|\n");scanf("%d",&cmd);switch(cmd){case 0:break; //退出系统case 1: input(head);break; //输入学生信息case 2: print(head);break; //输出学生信息case 3: avg(head);break; //求总成绩、平均数case 4: maxmin(head);break; //最高分case 5: rank(head);break; //排序case 6: add(head);break; //增加记录case 7: del(head);break; //删除记录default :printf("您输入错误!\n");}}while(cmd!=0);}因为是C语言版的要严格按照样子输入哦要不然就会出现不可预料的结果。
学生成绩管理系统c语言代码(供参考)
C程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h"#include"stdlib.h"#include"string.h"typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>初始化失败!");return 0;}else{p->next=NULL;p->date.number=0;//头结点存放学生人数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.number=m;printf("=>请输入性别!\n");gets(p->date.sex);fflush(stdin);printf("=>请输入数学成绩\n");scanf("%d",&m);fflush(stdin);p->date.math=m;printf("=>请输入英语成绩\n");scanf("%d",&m);fflush(stdin);p->date.eglish=m;printf("=>请输入c语言成绩\n");scanf("%d",&m);fflush(stdin);p->date.clanguge=m;p->date.average=(p->date.math+p->date.eglish+p->date.clanguge );q=head->next;head->next=p;p->next=q;head->date.number++;}void deletion(unit *head)//删除一名学生{unit *p=head->next,*q=head;char N[10];printf("=>请输入你想删除的学生姓名!\n");gets(N);fflush(stdin);if(p==NULL)printf("=>系统无学生可删除!\n");while(p){if(strcmp(p->,N)==0){q->next=p->next;head->date.number--;printf("=>删除%s成功!\n",p->);free(p);break;}else{p=p->next;q=q->next;if(p==NULL)printf("=>你要删除的学生不存在,删除失败!\n");}}}int display(unit *head)//显示学生信息{unit *p=head->next;int m,n=0;char N[10];if(p==NULL){printf("=>系统无学生!\n");return 0;}while(n==0){printf("**************************************************************** **************\n");printf("=>请选择你的操作!\n");printf("=>\t\t\t1.显示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n");scanf("%d",&m);fflush(stdin);switch(m){case 1:printf("\n=>该系统拥有%d名学生!\n\n",head->date.number);p=head->next;printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n\n");while(p){printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);p=p->next;}break;case 2:printf("=>请输入查找姓名!\n");gets(N);fflush(stdin);p=head->next;while(p){if(strcmp(p->,N)==0){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date. number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!");}}break;case 3: printf("=>请输入查找学号!\n");scanf("%d",&m);fflush(stdin);p=head->next;while(p){if(p->date.number==m){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date. number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!\n");}}break;case 4:n=1;break;}}return 1;}int range(unit *head)//排序{unit *p=head,*q=head->next;int n,i,m=head->date.number;printf("**************************************************************** ***************\n");printf("\t\t\t1.按学号\t2.按成绩\n\n");printf("=>请选择操作!\n》");scanf("%d",&n);fflush(stdin);if(q==NULL){ printf("=>无学生可排序!\n");return 0;}switch(n){case 2:for(i=0;i<m;i++)//按总分排序{p=head;q=head->next;while(q->next){if((q->date.average)<(q->next->date.average)){p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next;}}}break;case 1:for(i=0;i<=m;i++)//按学号排序{p=head;q=head->next;while(q->next){if((q->date.number)>(q->next->date.number)){p->next=q->next;p=p->next;p->next=q;}else{p=p->next;q=q->next;}}}break;}printf("=>排序成功!\n");return 1;}void menu(){printf("\n********************************* 主菜单***************************************\n");printf("\t\t\t1.新建系统\t2.添加学生\n\t\t\t3.删除学生\t4.查看信息\n\t\t\t5.排列顺序\t6.读取信息\n\t\t\t7.保存信息\t8.退出系统\n");printf("=>请选择你的操作!\n");}int save(unit *head)//保存{FILE *fp;unit *p;p=head;if((fp=fopen("d:\\学生","wb+"))==NULL){printf("=>保存失败!");return 0;}while(p){fwrite(&(p->date),sizeof(student),1,fp);p=p->next;}printf("=>保存成功!");fclose(fp);return 1;}unit* read()//读入系统学生信息{int i;unit *p,*q,*head;FILE *fp;if((head=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>开辟空间失败!");exit(1);}else{head->next=NULL;head->date.number=0;//头结点存放学生人数}q=head;if((fp=fopen("d:\\学生","rb"))==NULL){printf("=>系统无学生!\n");return 0;}fread(&(q->date),sizeof(student),1,fp);for(i=0;i<head->date.number;i++){if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>读值失败!");exit(1);}fread(&(p->date),sizeof(student),1,fp);p->next=q->next;q->next=p;}fclose(fp);return head;}void main(){int m=0,n, i;unit *head;printf("******************************************************************** ************\n\n");printf("\t\t\t* 欢迎使用学生成绩管理系统* \n");printf("\n\t\t\t\t\t\t\t\t编译员:吹吹风\n\n");printf("=>正在读取系统信息......\n");if((head=read())==0){printf("=>是否新建?\n");printf("\t\t\t是(1)\t\t否(2)\n");scanf("%d",&i);fflush(stdin);if(i==1)head=build();else if(i==2)exit(1);}elseprintf("=>信息导入成功!");while(m==0){menu();scanf("%d",&n);fflush(stdin);switch(n){case 1: head=build();break;case 2:add(head);break;case 3:deletion(head);break;case 4:display(head);break;case 5: range(head);break;case 6:head=read();if(head!=0) printf("=>读取存盘成功!\n");break;case 7:save(head);break;case 8:m=1;break;}}}。
学生成绩管理系统c语言编程
#include<stdio。
h>#include<stdlib。
h〉#include〈string.h〉#define N 50#define M 8struct student{int number;/* 每个学生的学号*/ int score[M];/*每个学生M门功课的成绩*/int sum; /*每个学生的总成绩*/ float average; /*每个学生的平均成绩*/}s[N]={0,’ti’,0,0,0};typedef struct student STU;void input_stu()/*输入学生成绩*/{int i,j;printf("请输入数据:\n”);//输入学生成绩//for(i=0;i〈N;i++){ printf("学号:”);scanf(”%d”,&s[i].number);for(j=0;j<M;j++){printf("成绩:”);scanf("%d”,&s[i].score[j]);}}}void aver_stu() //计算每个学生的平均分//{int i,j;for(i=0;i〈N;i++)//求总分{for(j=0;j〈M;j++)s[i]。
sum=s[i]。
sum+s[i].score[j];}for(i=0;i〈N;i++)//计算每个学生的平均分//{s[i]。
average=(s[i]。
sum)/(float)(M);printf(”平均分%。
2f ",s[i]。
average);}}void aver_cour()//计算每门课的平均分//int i,j;for(i=0;i〈N;i++)//求总分{ for(j=0;j〈M;j++)s[i].sum=s[i]。
sum+s[i].score[j];}for(j=0;j〈M;j++)//计算每门课的平均分//{for(i=0;i<N;i++)s[i]。
学生录入成绩C语言代码,学生成绩管理系统C语言源代码.doc
学⽣录⼊成绩C语⾔代码,学⽣成绩管理系统C语⾔源代码.doc 学⽣成绩管理系统C语⾔源代码#include"stdio.h"#include#include#include"process.h"#include"ctype.h"typedef struct{char num[10];char name[10];int c;int math;int English;double aver;}Student;Student stu[99];int shuru(Student stud[],int n)/*输⼊若⼲条记录*/{int i=0;char sign,x[10];double a=0.0;while(sign!='n'&&sign!='N'){printf("输⼊学⽣学号:");scanf("%s",stu[n+i].num);printf("输⼊学⽣姓名:");scanf("%s",stu[n+i].name);printf("输⼊学⽣的C、数学、英语");scanf("%d%d%d",&stu[n+i].c,&stu[n+i].math,&stu[n+i].English);a=1.0*(stu[n+i].c+stu[n+i].math+stu[n+i].English/3);stu[n+i].aver=a;gets(x); /*清除多余的输⼊*/printf("是否继续输⼊?(Y/N):\n");scanf("%c",&sign);i++;}return(n+i);}void xianshi(Student stud[],int n) /*显⽰所有记录*/{int i ;printf("----------------------------------------------------------\n"); /*格式头*/printf("学号 姓名 C 数学 英语 平均成绩 \n");printf("----------------------------------------------------------\n");for(i=0;i{printf("%-10s%-10s%-10d%-10d%-10d%-10.2lf\n",stu[i].num,stu[i].name,stu[i].c,stu[i].math,stu[i].English,stu[i].aver); }}void xiugai(Student stud[],int n) /*修改*/{int i=0,choice=1;char x[10];while(choice!=0){printf("请输⼊您要修改的学⽣的学号:\n");scanf("%s",x);for(i=0;;i++){if(strcmp(stu[i].num,x)==0)break;}printf("请选择您要修改的内容:\n");printf(" ---------------------- \n");printf("| 姓名 请按 1 |\n");printf("| c 请按 2 |\n");printf("| 数学分数 请按 3 |\n");printf("| 英语分数 请按 4 |\n"); printf("| 退出 请按 0|\n"); printf("+-----。
学生成绩管理系统c语言代码(供参考)
C程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h”#include”stdlib.h”#include”string.h”typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf(”=〉初始化失败!”);return 0;}else{p->next=NULL;p-〉date.number=0;//头结点存放学生人数printf(”初始化成功!\n”);return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”=>请输入新生姓名!\n”);gets(p—〉);fflush(stdin);printf("=〉请输入学号!\n");while(n==0){scanf("%d”,&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q—〉date。
number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n”);q=head-〉next;break;}else{q=q->next;if(q==NULL) n=1;}}}p—〉date。
学生成绩管理系统c语言代码(供参考)之欧阳美创编
C程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用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//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>初始化失败!");return 0;}else{p->next=NULL;p->date.number=0;//头结点存放学生人数 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.number=m;printf("=>请输入性别!\n");gets(p->date.sex);fflush(stdin);printf("=>请输入数学成绩\n");scanf("%d",&m);fflush(stdin);p->date.math=m;printf("=>请输入英语成绩\n");scanf("%d",&m);fflush(stdin);p->date.eglish=m;printf("=>请输入c语言成绩\n");scanf("%d",&m);fflush(stdin);p->date.clanguge=m;p->date.average=(p->date.math+p->date.eglish+p->date.clanguge);q=head->next;head->next=p;p->next=q;head->date.number++;}void deletion(unit *head)//删除一名学生{unit *p=head->next,*q=head;char N[10];printf("=>请输入你想删除的学生姓名!\n");gets(N);fflush(stdin);if(p==NULL)printf("=>系统无学生可删除!\n");while(p){if(strcmp(p->,N)==0){q->next=p->next;head->date.number--;printf("=>删除%s成功!\n",p->);free(p);break;}else{p=p->next;q=q->next;if(p==NULL)printf("=>你要删除的学生不存在,删除失败!\n");}}}int display(unit *head)//显示学生信息{unit *p=head->next;int m,n=0;char N[10];if(p==NULL){printf("=>系统无学生!\n");return 0;}while(n==0){printf("****************************************** ************************************\n");printf("=>请选择你的操作!\n");printf("=>\t\t\t1.显示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n");scanf("%d",&m);fflush(stdin);switch(m){case 1:printf("\n=>该系统拥有%d名学生!\n\n",head->date.number);p=head->next;printf("\t姓名\t学号\t性别\t数学\t 英语\tc语言\t综合\n\n");while(p){printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);p=p->next;}break;case 2:printf("=>请输入查找姓名!\n");gets(N);fflush(stdin);p=head->next;while(p){if(strcmp(p->,N)==0){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!");}}break;case 3: printf("=>请输入查找学号!\n");scanf("%d",&m);fflush(stdin);p=head->next;while(p){if(p->date.number==m){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!\n");}}break;case 4:n=1;break;}}return 1;}int range(unit *head)//排序{unit *p=head,*q=head->next;int n,i,m=head->date.number;printf("****************************************** *************************************\n");printf("\t\t\t1.按学号\t2.按成绩\n\n");printf("=>请选择操作!\n》");scanf("%d",&n);fflush(stdin);if(q==NULL){ printf("=>无学生可排序!\n");return 0;}switch(n){case 2:for(i=0;i<m;i++)//按总分排序{p=head;q=head->next;while(q->next){if((q->date.average)<(q->next->date.average)){p->next=q->next;p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next; }}}break;case 1:for(i=0;i<=m;i++)//按学号排序{p=head;q=head->next;while(q->next){if((q->date.number)>(q->next->date.number)){p->next=q->next;p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next; }}}break;}printf("=>排序成功!\n");return 1;}void menu(){printf("\n********************************* 主菜单***************************************\n");printf("\t\t\t1.新建系统\t2.添加学生\n\t\t\t3.删除学生\t4.查看信息\n\t\t\t5.排列顺序\t6.读取信息\n\t\t\t7.保存信息\t8.退出系统\n");printf("=>请选择你的操作!\n");}int save(unit *head)//保存{FILE *fp;unit *p;p=head;if((fp=fopen("d:\\学生","wb+"))==NULL){printf("=>保存失败!");return 0;}while(p){fwrite(&(p->date),sizeof(student),1,fp);p=p->next;}printf("=>保存成功!");fclose(fp);return 1;}unit* read()//读入系统学生信息{int i;unit *p,*q,*head;FILE *fp;if((head=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>开辟空间失败!");exit(1);}else{head->next=NULL;head->date.number=0;//头结点存放学生人数}q=head;if((fp=fopen("d:\\学生","rb"))==NULL) {printf("=>系统无学生!\n");return 0;}fread(&(q->date),sizeof(student),1,fp);for(i=0;i<head->date.number;i++){if((p=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>读值失败!");exit(1);}fread(&(p->date),sizeof(student),1,fp); p->next=q->next;q->next=p;}fclose(fp);return head;}void main(){int m=0,n, i;unit *head;printf("*********************************************** *********************************\n\n");printf("\t\t\t* 欢迎使用学生成绩管理系统 * \n");printf("\n\t\t\t\t\t\t\t\t编译员:吹吹风\n\n"); printf("=>正在读取系统信息......\n");if((head=read())==0){printf("=>是否新建?\n");printf("\t\t\t是(1)\t\t否(2)\n");scanf("%d",&i);fflush(stdin);if(i==1)head=build();elseif(i==2)exit(1);}elseprintf("=>信息导入成功!");while(m==0){menu();scanf("%d",&n);fflush(stdin);switch(n){case 1: head=build();break;case 2:add(head);break;case 3:deletion(head);break;case 4:display(head);break;case 5: range(head);break;case 6:head=read();if(head!=0) printf("=>读取存盘成功!\n");break;case 7:save(head);break;case 8:m=1;break;}}}。
学生成绩管理系统代码(c语言编写)之欧阳美创编
C程序学生管理系统/* Note:Your choice is C IDE */#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//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>初始化失败!");return 0;}else{p>next=NULL;p>date.number=0;//头结点存放学生人数 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.number=m;printf("=>请输入性别!\n");gets(p>date.sex);fflush(stdin);printf("=>请输入数学成绩\n");scanf("%d",&m);fflush(stdin);p>date.math=m;printf("=>请输入英语成绩\n");scanf("%d",&m);fflush(stdin);p>date.eglish=m;printf("=>请输入c语言成绩\n");scanf("%d",&m);fflush(stdin);p>date.clanguge=m;p>date.average=(p>date.math+p>date.eglish+p>date.c languge);q=head>next;head>next=p;p>next=q;head>date.number++;}void deletion(unit *head)//删除一名学生{unit *p=head>next,*q=head;char N[10];printf("=>请输入你想删除的学生姓名!\n");gets(N);fflush(stdin);if(p==NULL)printf("=>系统无学生可删除!\n");while(p){if(strcmp(p>,N)==0){q>next=p>next;head>date.number;printf("=>删除%s成功!\n",p>);free(p);break;}else{p=p>next;q=q>next;if(p==NULL)printf("=>你要删除的学生不存在,删除失败!\n");}}}int display(unit *head)//显示学生信息{unit *p=head>next;int m,n=0;char N[10];if(p==NULL){printf("=>系统无学生!\n");return 0;}while(n==0){printf("****************************************** ************************************\n");printf("=>请选择你的操作!\n");printf("=>\t\t\t1.显示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n");scanf("%d",&m);fflush(stdin);switch(m){case 1:printf("\n=>该系统拥有%d名学生!\n\n",head>date.number);p=head>next;printf("\t姓名\t学号\t性别\t数学\t 英语\tc语言\t综合\n\n");while(p){printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p>date.nam e,p>date.number,p>date.sex,p>date.math,p>date.eglish,p>date.clanguge,p>date.average);p=p>next;}break;case 2:printf("=>请输入查找姓名!\n");gets(N);fflush(stdin);p=head>next;while(p){if(strcmp(p>,N)==0){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p>date.nam e,p>date.number,p>date.sex,p>date.math,p>date.eglish,p>date.clanguge,p>date.average); break;}else{p=p>next;if(p==NULL)printf("=>你要查的学生不存在!");}}break;case 3: printf("=>请输入查找学号!\n");scanf("%d",&m);fflush(stdin);p=head>next;while(p){if(p>date.number==m){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p>date.nam e,p>date.number,p>date.sex,p>date.math,p>date.eglish,p>date.clanguge,p>date.average); break;}else{p=p>next;if(p==NULL)printf("=>你要查的学生不存在!\n");}}break;case 4:n=1;break;}}return 1;}int range(unit *head)//排序{unit *p=head,*q=head>next;int n,i,m=head>date.number;printf("****************************************** *************************************\n");printf("\t\t\t1.按学号\t2.按成绩\n\n");printf("=>请选择操作!\n》");scanf("%d",&n);fflush(stdin);if(q==NULL){ printf("=>无学生可排序!\n");return 0;}switch(n){case 2:for(i=0;i<m;i++)//按总分排序{p=head;q=head>next;while(q>next){if((q>date.average)<(q>next>date.average)){p>next=q>next;p=p>next;q>next=p>next;p>next=q;}else{p=p>next;q=q>next; }}}break;case 1:for(i=0;i<=m;i++)//按学号排序{p=head;q=head>next;while(q>next){if((q>date.number)>(q>next>date.number)){p>next=q>next;p=p>next;q>next=p>next;p>next=q;}else{p=p>next;q=q>next; }}}break;}printf("=>排序成功!\n");return 1;}void menu(){printf("\n********************************* 主菜单***************************************\n");printf("\t\t\t1.新建系统\t2.添加学生\n\t\t\t3.删除学生\t4.查看信息\n\t\t\t5.排列顺序\t6.读取信息\n\t\t\t7.保存信息\t8.退出系统\n");printf("=>请选择你的操作!\n");}int save(unit *head)//保存{FILE *fp;unit *p;p=head;if((fp=fopen("d:\\学生","wb+"))==NULL){printf("=>保存失败!");return 0;}while(p){fwrite(&(p>date),sizeof(student),1,fp);p=p>next;}printf("=>保存成功!");fclose(fp);return 1;}unit* read()//读入系统学生信息{int i;unit *p,*q,*head;FILE *fp;if((head=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>开辟空间失败!");exit(1);}else{head>next=NULL;head>date.number=0;//头结点存放学生人数}q=head;if((fp=fopen("d:\\学生","rb"))==NULL){printf("=>系统无学生!\n");return 0;}fread(&(q>date),sizeof(student),1,fp);for(i=0;i<head>date.number;i++){if((p=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>读值失败!");exit(1);}fread(&(p>date),sizeof(student),1,fp); p>next=q>next;q>next=p;}fclose(fp);return head;}void main(){int m=0,n, i;unit *head;printf("*********************************************** *********************************\n\n");printf("\t\t\t* 欢迎使用学生成绩管理系统 * \n");printf("\n\t\t\t\t\t\t\t\t编译员:岳英明\n\n"); printf("=>正在读取系统信息......\n");if((head=read())==0){printf("=>是否新建?\n");printf("\t\t\t是(1)\t\t否(2)\n");scanf("%d",&i);fflush(stdin);if(i==1)head=build();elseif(i==2)exit(1);}elseprintf("=>信息导入成功!");while(m==0){menu();scanf("%d",&n);fflush(stdin);switch(n){case 1: head=build();break;case 2:add(head);break;case 3:deletion(head);break;case 4:display(head);break;case 5: range(head);break;case 6:head=read();if(head!=0) printf("=>读取存盘成功!\n");break;case 7:save(head);break;case 8:m=1;break;}}}。
学生成绩管理系统代码(c语言编写)之欧阳德创编
C程序学生管理系统/* Note:Your choice is C IDE */#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//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>初始化失败!");return 0;}else{p>next=NULL;p>date.number=0;//头结点存放学生人数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.number=m;printf("=>请输入性别!\n");gets(p>date.sex);fflush(stdin);printf("=>请输入数学成绩\n");scanf("%d",&m);fflush(stdin);p>date.math=m;printf("=>请输入英语成绩\n");scanf("%d",&m);fflush(stdin);p>date.eglish=m;printf("=>请输入c语言成绩\n");scanf("%d",&m);fflush(stdin);p>date.clanguge=m;p>date.average=(p>date.math+p>date.e glish+p>date.clanguge);q=head>next;head>next=p;p>next=q;head>date.number++;}void deletion(unit *head)//删除一名学生{unit *p=head>next,*q=head;char N[10];printf("=>请输入你想删除的学生姓名!\n");gets(N);fflush(stdin);if(p==NULL)printf("=>系统无学生可删除!\n");while(p){if(strcmp(p>,N)==0){q>next=p>next;head>date.number;printf("=>删除%s成功!\n",p>);free(p);break;}else{p=p>next;q=q>next;if(p==NULL)printf("=>你要删除的学生不存在,删除失败!\n");}}}int display(unit *head)//显示学生信息{unit *p=head>next;int m,n=0;char N[10];if(p==NULL){printf("=>系统无学生!\n");return 0;}while(n==0){printf("******************************************* ***********************************\n");printf("=>请选择你的操作!\n");printf("=>\t\t\t1.显示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n");scanf("%d",&m);fflush(stdin);switch(m){case 1:printf("\n=>该系统拥有%d名学生!\n\n",head>date.number);p=head>next;printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n\n");while(p){printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n", p>,p>date.number,p>date.sex,p>date.math,p>date.eglish,p>date.clanguge,p>date.av erage);p=p>next;}break;case 2:printf("=>请输入查找姓名!\n");gets(N);fflush(stdin);p=head>next;while(p){if(strcmp(p>,N)==0){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n", p>,p>date.number,p>date.sex,p>dat e.math,p>date.eglish,p>date.clanguge,p>date.av erage);break;}else{p=p>next;if(p==NULL)printf("=>你要查的学生不存在!");}}break;case 3: printf("=>请输入查找学号!\n");scanf("%d",&m);fflush(stdin);p=head>next;while(p){if(p>date.number==m){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n", p>,p>date.number,p>date.sex,p>dat e.math,p>date.eglish,p>date.clanguge,p>date.av erage);break;}else{p=p>next;if(p==NULL)printf("=>你要查的学生不存在!\n");}}break;case 4:n=1;break;}}return 1;}int range(unit *head)//排序{unit *p=head,*q=head>next;int n,i,m=head>date.number;printf("******************************************* ************************************\n");printf("\t\t\t1.按学号\t2.按成绩\n\n");printf("=>请选择操作!\n》");scanf("%d",&n);fflush(stdin);if(q==NULL){ printf("=>无学生可排序!\n");return 0;}switch(n){case 2:for(i=0;i<m;i++)//按总分排序{p=head;q=head>next;while(q>next){if((q>date.average)<(q>next>date.average)) {p>next=q>next;p=p>next;q>next=p>next;p>next=q;}else{p=p>next;q=q>next; }}}break;case 1:for(i=0;i<=m;i++)//按学号排序{p=head;q=head>next;while(q>next){if((q>date.number)>(q>next>date.number)) {p>next=q>next;p=p>next;q>next=p>next;p>next=q;}else{p=p>next;q=q>next; }}}break;}printf("=>排序成功!\n");return 1;}void menu(){printf("\n********************************* 主菜单 ***************************************\n");printf("\t\t\t1.新建系统\t2.添加学生\n\t\t\t3.删除学生\t4.查看信息\n\t\t\t5.排列顺序\t6.读取信息\n\t\t\t7.保存信息\t8.退出系统\n");printf("=>请选择你的操作!\n");}int save(unit *head)//保存{FILE *fp;unit *p;p=head;if((fp=fopen("d:\\学生","wb+"))==NULL){printf("=>保存失败!");return 0;}while(p){fwrite(&(p>date),sizeof(student),1,fp);p=p>next;}printf("=>保存成功!");fclose(fp);return 1;}unit* read()//读入系统学生信息{int i;unit *p,*q,*head;FILE *fp;if((head=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>开辟空间失败!");exit(1);}else{head>next=NULL;head>date.number=0;//头结点存放学生人数}q=head;if((fp=fopen("d:\\学生","rb"))==NULL) {printf("=>系统无学生!\n");return 0;}fread(&(q>date),sizeof(student),1,fp); for(i=0;i<head>date.number;i++){if((p=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>读值失败!");exit(1);}fread(&(p>date),sizeof(student),1,fp); p>next=q>next;q>next=p;}fclose(fp);return head;}void main(){int m=0,n, i;unit *head;printf("************************************************ ********************************\n\n");printf("\t\t\t* 欢迎使用学生成绩管理系统 * \n");printf("\n\t\t\t\t\t\t\t\t编译员:岳英明\n\n");printf("=>正在读取系统信息......\n");if((head=read())==0){printf("=>是否新建?\n");printf("\t\t\t是(1)\t\t否(2)\n");scanf("%d",&i);fflush(stdin);if(i==1)head=build();elseif(i==2)exit(1);}elseprintf("=>信息导入成功!");while(m==0){menu();scanf("%d",&n);fflush(stdin);switch(n){case 1: head=build();break;case 2:add(head);break;case 3:deletion(head);break;case 4:display(head);break;case 5: range(head);break;case 6:head=read();if(head!=0) printf("=>读取存盘成功!\n");break;case 7:save(head);break;case 8:m=1;break;}}}。
学生成绩管理系统代码(c语言编写)之令狐采学创编
C程序学生管理系统欧阳家百(2021.03.07)/* Note:Your choice is C IDE */#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//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>初始化失败!");return 0;}else{p>next=NULL;p>date.number=0;//头结点存放学生人数 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);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.number=m;gets(p>date.sex);fflush(stdin);printf("=>请输入数学成绩\n");scanf("%d",&m);fflush(stdin);p>date.math=m;printf("=>请输入英语成绩\n");scanf("%d",&m);fflush(stdin);p>date.eglish=m;printf("=>请输入c语言成绩\n");scanf("%d",&m);fflush(stdin);p>date.clanguge=m;p>date.average=(p>date.math+p>date.eglish+p>date.clanguge);q=head>next;head>next=p;p>next=q;head>date.number++;}void deletion(unit *head)//删除一名学生{unit *p=head>next,*q=head;char N[10];printf("=>请输入你想删除的学生姓名!\n");gets(N);fflush(stdin);if(p==NULL)printf("=>系统无学生可删除!\n");while(p){if(strcmp(p>,N)==0){q>next=p>next;head>date.number;printf("=>删除%s成功!\n",p>);free(p);break;}else{p=p>next;q=q>next;if(p==NULL)printf("=>你要删除的学生不存在,删除失败!\n");}}}int display(unit *head)//显示学生信息{unit *p=head>next;int m,n=0;char N[10];if(p==NULL){printf("=>系统无学生!\n");return 0;}while(n==0){printf("********************************************* *********************************\n");printf("=>请选择你的操作!\n");printf("=>\t\t\t1.显示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n");scanf("%d",&m);fflush(stdin);switch(m){case 1:printf("\n=>该系统拥有%d名学生!\n\n",head>date.number);p=head>next;printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n\n");while(p){printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p>,p>date .number,p>date.sex,p>date.math,p>date.eglish,p>date.clanguge,p>date.average);p=p>next;}break;case 2:printf("=>请输入查找姓名!\n");gets(N);fflush(stdin);p=head>next;while(p){if(strcmp(p>,N)==0){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p>,p>date .number,p>date.sex,p>date.math,p>date.eglish,p>date.clanguge,p>date.average);break;}else{p=p>next;if(p==NULL)printf("=>你要查的学生不存在!");}}break;case 3: printf("=>请输入查找学号!\n");scanf("%d",&m);fflush(stdin);p=head>next;while(p){if(p>date.number==m){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p>,p>date .number,p>date.sex,p>date.math,p>date.eglish,p>date.clanguge,p>date.average);break;}else{p=p>next;if(p==NULL)printf("=>你要查的学生不存在!\n");}}break;case 4:n=1;break;}}return 1;}int range(unit *head)//排序{unit *p=head,*q=head>next;int n,i,m=head>date.number;printf("********************************************* **********************************\n");printf("\t\t\t1.按学号\t2.按成绩\n\n");printf("=>请选择操作!\n》");scanf("%d",&n);fflush(stdin);if(q==NULL){ printf("=>无学生可排序!\n");return 0;}switch(n){case 2:for(i=0;i<m;i++)//按总分排序{p=head;q=head>next;while(q>next){if((q>date.average)<(q>next>date.average)){p>next=q>next;p=p>next;q>next=p>next;p>next=q;}else{p=p>next;q=q>next; }}}break;case 1:for(i=0;i<=m;i++)//按学号排序{p=head;q=head>next;while(q>next){if((q>date.number)>(q>next>date.number)){p>next=q>next;p=p>next;q>next=p>next;p>next=q;}else{p=p>next;q=q>next;}}}break;}printf("=>排序成功!\n");return 1;}void menu(){printf("\n********************************* 主菜单***************************************\n");printf("\t\t\t1.新建系统\t2.添加学生\n\t\t\t3.删除学生\t4.查看信息\n\t\t\t5.排列顺序\t6.读取信息\n\t\t\t7.保存信息\t8.退出系统\n");printf("=>请选择你的操作!\n");}int save(unit *head)//保存{FILE *fp;unit *p;p=head;if((fp=fopen("d:\\学生","wb+"))==NULL) {printf("=>保存失败!");return 0;}while(p){fwrite(&(p>date),sizeof(student),1,fp); p=p>next;}printf("=>保存成功!");fclose(fp);return 1;}unit* read()//读入系统学生信息{int i;unit *p,*q,*head;FILE *fp;if((head=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>开辟空间失败!");exit(1);}else{head>next=NULL;head>date.number=0;//头结点存放学生人数}q=head;if((fp=fopen("d:\\学生","rb"))==NULL){printf("=>系统无学生!\n");return 0;}fread(&(q>date),sizeof(student),1,fp);for(i=0;i<head>date.number;i++){if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>读值失败!");exit(1);}fread(&(p>date),sizeof(student),1,fp);p>next=q>next;q>next=p;}fclose(fp);return head;}void main(){int m=0,n, i;unit *head;printf("************************************************** ******************************\n\n");printf("\t\t\t* 欢迎使用学生成绩管理系统 * \n");printf("\n\t\t\t\t\t\t\t\t编译员:岳英明\n\n");printf("=>正在读取系统信息......\n");if((head=read())==0){printf("=>是否新建?\n");printf("\t\t\t是(1)\t\t否(2)\n");scanf("%d",&i);fflush(stdin);if(i==1)head=build();elseif(i==2)exit(1);}elseprintf("=>信息导入成功!");while(m==0){menu();scanf("%d",&n);fflush(stdin);switch(n){case 1: head=build();break;case 2:add(head);break;case 3:deletion(head);break;case 4:display(head);break;case 5: range(head);break;case 6:head=read();if(head!=0) printf("=>读取存盘成功!\n");break; case 7:save(head);break;case 8:m=1;break;}}}。
学生学分管理程序-c语言代码-学生成绩统计c语言代码之欧阳家百创编
欧阳家百(2021.03.07)项目名称:学生学分管理系别:计算机工程系专业:计算机网络技术班级:0922211学生姓名:指导教师:韦立蓉北京信息职业技术学院2010年 1 月日一、项目背景介绍(概要介绍此项目设计的意义和要求)本程序为学生学分管理系统。
本程序根据现实中的问题通过c 语言形式编程。
本程序要求能够登记学分,显示学分查询学分,修改学分,删除学分,统计学分。
二、程序功能描述:(描述基本程序中每个函数的功能,给处各函数流程图)1、登记单流程图2、显示学分流程图3、查询学分流程图是4、修改信息流程图5、删除信息流程图6、统计信息流程图2、界面设计(界面设计,函数的定义,功能设计、,罗列出所有需要解决的问题函数调用问题,循环问题,查找问题,修改问题,查询问题,删除问题,比较问题。
3、变量定义5、函数调用的类型四、测试与分析(简要介绍测试的作用及意义)测试可以知道所编写的程序是否可行,通过实际的测试可以找出程序是否符合现实。
通过测试和反复修改可以使程序更加人性化。
(一)测试列表(以表格的形式给出,不少于10个)(二)测试结果分析(根据以下表格,如实填写并签名)五、实训总结(总结实训过程中的所使用的知识和已实现的功能,总结自己掌握理论知识和动手能力的程度,提出自己的不足之处及改进措施)通过这一周的实训。
我们充分运用了所学的东西编出了解决实际问题的程序。
我们运用了函数的调用,循环,定义,比较,查找,删除等知识。
通过实际动手,我更加深入的了解了课本上的知识。
同时提高了我的动手能力。
实训中我找到了我许多的不足,以前我遇到不董的就会直接去问别人,不独自思考。
试训中我学会了独自思考和团队合作。
虽然我在编程当中遇到许多问题,但经过独自思考和学习解决了问题。
最后编出了管理程序。
C语言学生学分管理程序代码typedef struct student{ char num[11],name[7],class[10];int jichu,renwen,xuanxiu,zhuanye,shiyan;}STU;STU st[37];static int n;void menu();void input();void print();void query();void modi();void del();void count();main(){ int s;do{menu();printf("\n\t\t\t\t 请选择:"); scanf("%d",&s);switch(s){ case 0:break;case 1:input();break;case 2:print();break;case 3:query();break;case 4:modi();break;case 5:del();break;case 6:count();break;default:printf("选择无效!"); }}while(s!=0);getch();}void menu(){ clrscr();printf("\t\t\t****************************\n");printf("\t\t\t********欢迎您的使用********\n");printf("\t\t\t******学生学分管理程序******\n");printf("\t\t\t*** 1-登记学生学分 ***\n");printf("\t\t\t*** 2-显示学生学分 ***\n");printf("\t\t\t*** 3-查询学生学分 ***\n");printf("\t\t\t*** 4-修改学生学分 ***\n");printf("\t\t\t*** 5-删除学生学分 ***\n");printf("\t\t\t*** 6-统计学生学分 ***\n");printf("\t\t\t*** 0-退出 ***\n");printf("\t\t\t****************************\n");}void input(){ do{ printf("请输入学生信息:学号姓名班级基础课专业课选修课人文课实验课\n");scanf("%s%s%s%d%d%d%d%d",st[n].num,st[n].name,st[n].class,&st[n].jichu,&st[n].zhuanye,&st[n].xuanxiu,&st[n].renwen,&st[n].s hiyan);n++;printf("是否继续输入?(n-退出,任意键继续):");}while(getche()!='n');}void print(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void menu1(){ clrscr();printf("\t\t\t*****************************\n");printf("\t\t\t***********查询模块**********\n");printf("\t\t\t*** 1-按学号查询 ***\n");printf("\t\t\t*** 2-按姓名查询 ***\n");printf("\t\t\t*** 3-按班级查询 ***\n");printf("\t\t\t*** 0-退出 ***\n");printf("\t\t\t*****************************\n");}void query1(){ char sn[11];int i;printf("请输入要查询的学号:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].num)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\按任意键继续");break;}else printf("\n对不起!没有该学号,任意键继续");getch();}void query2(){ char sn[7];int i;printf("请输入要查询的姓名:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].name)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\按任意键继续");break;}else printf("\n对不起!没有该姓名,任意键继续");getch();}void query3(){ char sn[10];int i;printf("请输入要查询的班级:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].class)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\按任意键继续");break;}else printf("\n对不起!没有该班,任意键继续");getch();}void query(){ int s;do{menu1();printf("\n\t\t\t\t 请选择:");scanf("%d",&s);switch(s){ case 0:break;case 1:query1();break;case 2:query2();break;case 3:query3();break;default:printf("选择无效!");}}while(s!=0);getch();}void menu2(){ clrscr();printf("\t\t\t*****************************\n"); printf("\t\t\t***********修改模块**********\n"); printf("\t\t\t*** 1-按学号修改 ***\n");printf("\t\t\t*** 2-按姓名修改 ***\n");printf("\t\t\t*** 3-按班级修改 ***\n");printf("\t\t\t*** 0-退出 ***\n");printf("\t\t\t*****************************\n"); }void modi1(){ char sn[11];int i;printf("请输入要修改学分学生的学号:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].num)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);{printf("请输入学生学分信息:学号姓名班级基础课专业课选修课人文课实验课\n");scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&s t[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);printf("是否继续输入?(n-退出,任意键继续):");}while(getche()!='n');break;}getch();}void modi2(){ char sn[7];int i;printf("请输入要修改学分学生的姓名:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].name)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);{printf("请输入学生学分信息:学号姓名班级基础课专业课选修课人文课实验课\n");scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&s t[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);printf("是否继续输入?(n-退出,任意键继续):");}while(getche()!='n');break;}getch();}void modi3(){ char sn[10];int i;printf("请输入要修改学分学生的班级:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].class)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);{printf("请输入学生学分信息:学号姓名班级基础课专业课选修课人文课实验课\n");scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&s t[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);printf("是否继续输入?(n-退出,任意键继续):");} while(getche()!='n');break;}getch();}void modi(){ int s;do{menu2();printf("\n\t\t\t\t 请选择:");scanf("%d",&s);switch(s){ case 0:break;case 1:modi1();break;case 2:modi2();break;case 3:modi3();break;default:printf("选择无效!");}}while(s!=0);getch();}void menu3(){ clrscr();printf("\t\t\t*****************************\n"); printf("\t\t\t***********删除模块**********\n"); printf("\t\t\t*** 1-按学号删除 ***\n");printf("\t\t\t*** 2-按姓名删除 ***\n");printf("\t\t\t*** 3-按班级删除 ***\n");printf("\t\t\t*** 0-退出 ***\n");printf("\t\t\t*****************************\n"); }void del1(){ char sn[11];int i,j;printf("请输入要删除学分学生的学号:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].num)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\n是否删除(任意键确认,n\取消)");if(getche()!='n');{if(i!=n-1);for(j=i;j<n-1;j++)st[j]=st[j+1];n--;printf("\n该记录已删除");getch();break ;}}else printf("\n对不起!没有该学号,任意键继续");}void del2(){ char sn[7];int i,j;printf("请输入要删除学分学生的姓名:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].name)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\n是否删除(任意键确认,n\取消)");if(getche()!='n');{if(i!=n-1);for(j=i;j<n-1;j++)st[j]=st[j+1];n--;printf("\n该记录已删除");getch();break ;}}else printf("\n对不起!没有该学号,任意键继续");}void del3(){ char sn[10];int i,j;printf("请输入要删除学分学生的班级:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].class)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\n是否删除(任意键确认,n\取消)");if(getche()!='n');{if(i!=n-1);for(j=i;j<n-1;j++)st[j]=st[j+1];n--;printf("\n该记录已删除");getch();break ;}}else printf("\n对不起!没有该学号,任意键继续"); }void del(){ int s;do{menu3();printf("\n\t\t\t\t 请选择:");scanf("%d",&s);switch(s){ case 0:break;case 1:del1();break;case 2:del2();break;case 3:del3();break;default:printf("选择无效!");}}while(s!=0);getch();}void menu4(){ clrscr();printf("\t\t\t*****************************\n");printf("\t\t\t***********统计模块**********\n");printf("\t\t\t*** 1- 可升学的学生 ***\n");printf("\t\t\t*** 2-需补考基础课的 ***\n");printf("\t\t\t*** 3-需补考专业课的 ***\n");printf("\t\t\t*** 4-需补考选修课的 ***\n");printf("\t\t\t*** 5-需补考人文课的 ***\n");printf("\t\t\t*** 6-需补考实验课的 ***\n");printf("\t\t\t*** 0-退出 ***\n");printf("\t\t\t*****************************\n");}void count1(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].ren wen>=60&st[i].shiyan>=60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void count2(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu<60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].renw en>=60&st[i].shiyan>=60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void count3(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu>=60&st[i].zhuanye<60&st[i].xuanxiu>=60&st[i].renw en>=60&st[i].shiyan>=60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void count4(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu<60&st[i].renw en>=60&st[i].shiyan>=60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();void count5(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].ren wen<60&st[i].shiyan>=60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void count6(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].ren wen>=60&st[i].shiyan<60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void count(){ int s;do{menu4();printf("\n\t\t\t\t 请选择:");scanf("%d",&s);switch(s){ case 0:break;case 1:count1();break;case 2:count2();break;case 3:count3();break;case 4:count4();break;case 5:count5();break;case 6:count6();break;default:printf("选择无效!");}}while(s!=0);getch(); }。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计基础实训欧阳家百(2021.03.07)项目名称:学生学分管理系别:计算机工程系专业:计算机网络技术班级:0922211学生姓名:指导教师:韦立蓉北京信息职业技术学院1 月日一、项目背景介绍(概要介绍此项目设计的意义和要求)本程序为学生学分管理系统。
本程序根据现实中的问题通过c 语言形式编程。
本程序要求能够登记学分,显示学分查询学分,修改学分,删除学分,统计学分。
二、程序功能描述:(描述基本程序中每个函数的功能,给处各函数流程图)1、登记单流程图2、显示学分流程图3、查询学分流程图是4、修改信息流程图5、删除信息流程图6、统计信息流程图2、界面设计(界面设计,函数的定义,功能设计、,罗列出所有需要解决的问题函数调用问题,循环问题,查找问题,修改问题,查询问题,删除问题,比较问题。
3、变量定义5、函数调用的类型四、测试与分析(简要介绍测试的作用及意义)测试可以知道所编写的程序是否可行,通过实际的测试可以找出程序是否符合现实。
通过测试和反复修改可以使程序更加人性化。
(一)测试列表(以表格的形式给出,不少于10个)(二)测试结果分析(根据以下表格,如实填写并签名)五、实训总结(总结实训过程中的所使用的知识和已实现的功能,总结自己掌握理论知识和动手能力的程度,提出自己的不足之处及改进措施)通过这一周的实训。
我们充分运用了所学的东西编出了解决实际问题的程序。
我们运用了函数的调用,循环,定义,比较,查找,删除等知识。
通过实际动手,我更加深入的了解了课本上的知识。
同时提高了我的动手能力。
实训中我找到了我许多的不足,以前我遇到不董的就会直接去问别人,不独自思考。
试训中我学会了独自思考和团队合作。
虽然我在编程当中遇到许多问题,但经过独自思考和学习解决了问题。
最后编出了管理程序。
C语言学生学分管理程序代码typedef struct student{ char num[11],name[7],class[10];int jichu,renwen,xuanxiu,zhuanye,shiyan;}STU;STU st[37];static int n;void menu();void input();void print();void query();void modi();void del();void count();main(){ int s;do{menu();printf("\n\t\t\t\t 请选择:"); scanf("%d",&s);switch(s){ case 0:break;case 1:input();break;case 2:print();break;case 3:query();break;case 4:modi();break;case 5:del();break;case 6:count();break;default:printf("选择无效!"); }}while(s!=0);getch();}void menu(){ clrscr();printf("\t\t\t****************************\n");printf("\t\t\t********欢迎您的使用********\n");printf("\t\t\t******学生学分管理程序******\n");printf("\t\t\t*** 1登记学生学分 ***\n");printf("\t\t\t*** 2显示学生学分 ***\n");printf("\t\t\t*** 3查询学生学分 ***\n");printf("\t\t\t*** 4修改学生学分 ***\n");printf("\t\t\t*** 5删除学生学分 ***\n");printf("\t\t\t*** 6统计学生学分 ***\n");printf("\t\t\t*** 0退出 ***\n");printf("\t\t\t****************************\n");}void input(){ do{ printf("请输入学生信息:学号姓名班级基础课专业课选修课人文课实验课\n");scanf("%s%s%s%d%d%d%d%d",st[n].num,st[n].name,st[n].class,&st[n].jichu,&st[n].zhuanye,&st[n].xuanxiu,&st[n].renwen,&st[n].s hiyan);n++;printf("是否继续输入?(n退出,任意键继续):");}while(getche()!='n');}void print(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void menu1(){ clrscr();printf("\t\t\t*****************************\n");printf("\t\t\t***********查询模块**********\n");printf("\t\t\t*** 1按学号查询 ***\n");printf("\t\t\t*** 2按姓名查询 ***\n");printf("\t\t\t*** 3按班级查询 ***\n");printf("\t\t\t*** 0退出 ***\n");printf("\t\t\t*****************************\n");}void query1(){ char sn[11];int i;printf("请输入要查询的学号:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].num)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\按任意键继续");break;}else printf("\n对不起!没有该学号,任意键继续");getch();}void query2(){ char sn[7];int i;printf("请输入要查询的姓名:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].name)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\按任意键继续");break;}else printf("\n对不起!没有该姓名,任意键继续");getch();}void query3(){ char sn[10];int i;printf("请输入要查询的班级:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].class)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\按任意键继续");break;}else printf("\n对不起!没有该班,任意键继续");getch();}void query(){ int s;do{menu1();printf("\n\t\t\t\t 请选择:");scanf("%d",&s);switch(s){ case 0:break;case 1:query1();break;case 2:query2();break;case 3:query3();break;default:printf("选择无效!");}}while(s!=0);getch();}void menu2(){ clrscr();printf("\t\t\t*****************************\n"); printf("\t\t\t***********修改模块**********\n"); printf("\t\t\t*** 1按学号修改 ***\n");printf("\t\t\t*** 2按姓名修改 ***\n");printf("\t\t\t*** 3按班级修改 ***\n");printf("\t\t\t*** 0退出 ***\n");printf("\t\t\t*****************************\n"); }void modi1(){ char sn[11];int i;printf("请输入要修改学分学生的学号:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].num)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);{printf("请输入学生学分信息:学号姓名班级基础课专业课选修课人文课实验课\n");scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&s t[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);printf("是否继续输入?(n退出,任意键继续):");}while(getche()!='n');break;}getch();}void modi2(){ char sn[7];int i;printf("请输入要修改学分学生的姓名:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].name)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);{printf("请输入学生学分信息:学号姓名班级基础课专业课选修课人文课实验课\n");scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&s t[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);printf("是否继续输入?(n退出,任意键继续):");}while(getche()!='n');break;}getch();}void modi3(){ char sn[10];int i;printf("请输入要修改学分学生的班级:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].class)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);{printf("请输入学生学分信息:学号姓名班级基础课专业课选修课人文课实验课\n");scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&s t[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);printf("是否继续输入?(n退出,任意键继续):");} while(getche()!='n');break;}getch();}void modi(){ int s;do{menu2();printf("\n\t\t\t\t 请选择:");scanf("%d",&s);switch(s){ case 0:break;case 1:modi1();break;case 2:modi2();break;case 3:modi3();break;default:printf("选择无效!");}}while(s!=0);getch();}void menu3(){ clrscr();printf("\t\t\t*****************************\n"); printf("\t\t\t***********删除模块**********\n"); printf("\t\t\t*** 1按学号删除 ***\n");printf("\t\t\t*** 2按姓名删除 ***\n");printf("\t\t\t*** 3按班级删除 ***\n");printf("\t\t\t*** 0退出 ***\n");printf("\t\t\t*****************************\n"); }void del1(){ char sn[11];int i,j;printf("请输入要删除学分学生的学号:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].num)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\n是否删除(任意键确认,n\取消)");if(getche()!='n');{if(i!=n1);for(j=i;j<n1;j++)st[j]=st[j+1];n;printf("\n该记录已删除");getch();break ;}}else printf("\n对不起!没有该学号,任意键继续");}void del2(){ char sn[7];int i,j;printf("请输入要删除学分学生的姓名:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].name)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\n是否删除(任意键确认,n\取消)");if(getche()!='n');{if(i!=n1);for(j=i;j<n1;j++)st[j]=st[j+1];n;printf("\n该记录已删除");getch();break ;}}else printf("\n对不起!没有该学号,任意键继续");}void del3(){ char sn[10];int i,j;printf("请输入要删除学分学生的班级:");scanf("%s",sn);for(i=0;i<n;i++)if(strcmp(sn,st[i].class)==0){printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t 选修课\t人文课\t实验课\n");printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);printf("\n是否删除(任意键确认,n\取消)");if(getche()!='n');{if(i!=n1);for(j=i;j<n1;j++)st[j]=st[j+1];n;printf("\n该记录已删除");getch();break ;}}else printf("\n对不起!没有该学号,任意键继续"); }void del(){ int s;do{menu3();printf("\n\t\t\t\t 请选择:");scanf("%d",&s);switch(s){ case 0:break;case 1:del1();break;case 2:del2();break;case 3:del3();break;default:printf("选择无效!");}}while(s!=0);getch();}void menu4(){ clrscr();printf("\t\t\t*****************************\n");printf("\t\t\t***********统计模块**********\n");printf("\t\t\t*** 1 可升学的学生 ***\n");printf("\t\t\t*** 2需补考基础课的 ***\n");printf("\t\t\t*** 3需补考专业课的 ***\n");printf("\t\t\t*** 4需补考选修课的 ***\n");printf("\t\t\t*** 5需补考人文课的 ***\n");printf("\t\t\t*** 6需补考实验课的 ***\n");printf("\t\t\t*** 0退出 ***\n");printf("\t\t\t*****************************\n");}void count1(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].ren wen>=60&st[i].shiyan>=60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void count2(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu<60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].renw en>=60&st[i].shiyan>=60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void count3(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu>=60&st[i].zhuanye<60&st[i].xuanxiu>=60&st[i].renw en>=60&st[i].shiyan>=60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void count4(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu<60&st[i].renw en>=60&st[i].shiyan>=60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();void count5(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].ren wen<60&st[i].shiyan>=60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void count6(){ int i;printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");for(i=0;i<n;i++)if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].ren wen>=60&st[i].shiyan<60)printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1, st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu, st[i].renwen,st[i].shiyan);getch();}void count(){ int s;do{menu4();printf("\n\t\t\t\t 请选择:");scanf("%d",&s);switch(s){ case 0:break;case 1:count1();break;case 2:count2();break;case 3:count3();break;case 4:count4();break;case 5:count5();break;case 6:count6();break;default:printf("选择无效!");}}while(s!=0);getch(); }。