用语言编写学生成绩管理系统_第1页
用语言编写学生成绩管理系统_第2页
用语言编写学生成绩管理系统_第3页
用语言编写学生成绩管理系统_第4页
用语言编写学生成绩管理系统_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include<stdio.h>/编译预处定义处理宏指令的 定义通过 最多的人 统计成绩定义类型 保存所有 保存学生 保存性别保存所有 保存每个 总计成绩学生成绩 学生成绩 学生平均 学生成绩 学生成绩 学生成绩理指令#include<string.h> / 字符串函数#include<process.h> / 声明#include<conio.h> / 控制台进行数据输入以及输出#define N 2000/数人#define M 3 / typedef struct student / char number10;/人的学号char nam

2、e20;/姓名char sex10; /float scoreM; / 课程成绩float aver;/人的平均成绩float total;/STU;STU stuN;int n;void inputscore(void);/新建void savescore(void);/保存void avergescore(void); / 成绩void total(void); / 总计void modifyscore(void); / 修改void lookscore(void); / 查看getch(); /按任意键继续,起到暂停的作用,函数头文件conio.h 已经定义void searchscor

3、e(void);查询void statistic(void);统计void add(void);添加void modify(void);修改void delscore(void);删除void menu(void);菜单void main() short int flag=0; menu(); do/学生成绩学生成绩学生成绩学生成绩学生成绩 学生成绩 flag=1;在菜单界面输入 1 ,调用 i 函数/ 在菜单界面输入 2,调 用函数 lookscore() 函数调用 avregescore()switch(getch() case '1' : inputscore();bre

4、ak; / nputscore() 实现输入学生成绩信息功能 case '2' : lookscore();break; lookscore() 实现学生成绩按平均分高低排序输出,同时 函数实现各个学生的平均分计算case '3' : searchscore();break; /在 菜 单 界 面 输 入 3, 调 用searchscore() 函数实现通过学号查找学生成绩信息功能case '4' : statistic();break;函数输出每一门课程的最高分,平均分以及不及格人员/在菜单界面输入4,调用 statistic()case &#

5、39;5' : modify();break;数实现通过学号修改学生成绩的功能/ 在菜单界面输入5,调用 modify() 函case '6' : add();break;现添加学生成绩/在菜单界面输入6,调用 add() 函数实case '7' : delscore();break;函数实现删除指定学生的成绩/在菜单界面输入7,调用 delscore()case '8' : savescore();break;函数将学生成绩信息保存/在菜单界面输入8,调用 savescore()case '9' :exit(0); br

6、eak;/统default : printf("输入有误 n");在菜单界面输入9,退出成绩管理系printf(" 按任意键继续 n");过menu(); /菜单while (flag=1);void menu(void) system("cls"); / printf("n");printf("n");printf("printf("1n"); printf("2n");printf("3n"); printf("

7、4n"); printf("5n"); printf("6n"); printf("7n"); printf("8n"); printf("9n"); printf("n");清屏欢迎进入学生成绩管理系统菜单 n");输入成绩 查 看 成 绩 及 成 绩 排 序查询学生成绩成绩统计修改成绩添加成绩删除成绩保存成绩退出系统printf("请输入您的选择( 19) n");*输入各个同学的学生信息*输入学生学号输入学生名字输入性别输入高数、

8、英语、C语言的成绩输入成绩void inputscore(void) / int i,j;system("cls"); / 清屏专用,以下出现位置作用相同 printf(" 已经转到输入成绩菜单 n");printf(" 请输入学生总数: n");scanf("%d",&n);printf(" 提示:输入学号时请输入 9 位学生编号:图书借阅证上的学号 n"); / 因 维表上下需对正故有此要求for(i=0;i<n;i+) printf("n");printf

9、(”请输入第c位学生的学号:n",i+1);scanf("%s",stui.number);/printf(" 姓名 :n");scanf("%s",);/printf(" 请输入该学生性别 n");scanf("%s",stui.sex);/printf("请输入学生成绩 :n");printf("高数分 t 英语分 tC 语言分 n");for(j=0;j<M;j+)scanf("%f",&

10、stui.scorej); /printf("成功输入(按任意键继续后请输入 8 进行保存) n");*计算各个同学的总分*定义变量 i ,j ;i 用来表示学生个数, j 则用来表示学表示科目在头文件出已经定义void total(void) int i,j;/生每门课的分数for(i=0;i<n;i+) stui.total=0;for(j=0;j<M;j+)/Mstui.total+=stui.scorej;*计算各个同学的平均分*void avergescore(void) int i,j; / 门课的分数定义变量 i ,j ;i 用来表示学生个数,j

11、则用来表示学生每for(i=0;i<n;i+) stui.aver=0;for(j=0;j<M;j+) /M 表示科目在头文件出已经定义 stui.aver+=stui.scorej;stui.aver=stui.aver/M; / 计算平均分/* 查看学生成绩及根据平均分对学生进行排序 *void lookscore(void) int i,j,k; / i,j,k 都表示学生成绩比较用来调换顺序STU t;total(); / 此处用来对调用函数的声明avergescore();system("cls"); / 清屏专用 printf("已经转到查

12、看成绩及成绩排序菜单n");for(i=0;i<n-1;i+) for(k=i,j=i+1;j<n;j+) if(stuj.aver>stuk.aver) k=j; if(k!=j) t=stuk; stuk=stui; stui=t;printf(”名次t学号tt姓名t性别t高数分t英语分tC语言分t总分t平均分n");for(i=0;i<n;i+) printf("%dt%st%st%st",i+1,stui.number,,stui.sex);for(j=0;j<M;j+)printf("%

13、4.2ft",stui.scorej);printf("%4.2ft",stui.total);printf("%4.2f",stui.aver);printf("n");*通过输入学号查找学生成绩*定义数组 a 的类型可输入数字,字母或字符清屏已经转到查询学生成绩菜单 n");void searchscore(void) char a10; /int i,j;system("cls"); / printf("printf(" 请输入需查询的学生学号 n");sca

14、nf("%s",a);for(i=0;i<n;i+) if(strcmp(a,stui.number)=0) / 如果输入的学号为真则输出相关信息 printf(" 名次 t 学号 tt 姓名 t 性别 t 高数分 t 英语分 tC 语言分 t 总分 t 平 均分 n");printf("%dt%st%st%st",i+1,stui.number,,stui.sex);for(j=0;j<M;j+) printf("%4.2ft",stui.scorej); printf("

15、%4.2ft",stui.total); printf("%4.2f",stui.aver); printf("n");break; / 找到该学生成绩信息后跳出 for 循环 elseprintf(" 未找到该学生信息 n"); /* 统计学生成绩信息,计算出每一门课的最高分 */ void statistic()int i,j=0,k=0,c1;char str2;float averageM,sum=0; printf("没有可被查找的记录 n"); /system("cls")

16、;if(M=0) / 如果没有输入成绩则输出没有可查找的记录 printf(" 没有可被查找的记录 n");elsewhile(1)printf(" 下面将统计考试成绩 n");printf(" 请选择你要统计哪科的成绩 1. 高数 t2. 英语 t3.C 语言 n"); scanf("%d",&c1);printf("t 一共有 %d 个记录 n",M); /* 总共记录数 */switch(c1)case 1: / 用来判断高数的最高分,平均分,输出不及格人员名单 for(i=0;i

17、<M;i+)sum+=stui.score0;if(stuk.score0>stui.score0) k=i;if(stuj.score0<stui.score0) j=i;average0=sum/M;printf("t高数的最高分 :n");printf("tt 学 号 :%s 姓 名 :%s数:.2fn",stuj. number,stuj. name,stuj.score0);printf("t高数的最低分是 :n");printf("tt学号:%s姓名:%s数:.2fn",stuk. n

18、umber,stuk .n ame,stuk.score0);printf("t高数的平均分是 %5.2fn",average0);printf(" 平均分低于 60 分的学生成员名单 n"); for(i=0;i<M;i+)if(stui.score0<60) printf("%sn",);break;case 2:/用来判断英语的最高分,平均分,输出不及格人员名单for(i=0;i<M;i+)sum+=stui.score1;if(stuk.score1>stui.score1) k=i;

19、if(stuj.score1<stui.score1) j=i;average1=sum/M;printf("t英语的最高分 :n");printf("tt学号:%s姓名:%s数:%.2fn",stuj. number,stuj. name,stuj.score1);printf("t 英语的最低分是 :n");printf("tt 学 号 :%s 姓 名 :%s 数:.2fn",stuk. number,stuk .n ame,stuk.score1);printf("t 英语的平均分是 %5.2

20、fn",average1); printf(" 平均分低于 60 分的学生成员名单 n");for(i=0;i<M;i+) if(stui.score1<60) printf("%sn",);break;case 3:/用来判断 C 语言的最高分,平均分,输出不及格人员名单for(i=0;i<M;i+) /*循环输入判断 */sum+=stui.score2;if(stuk.score2>stui.score2) k=i;if(stuj.score2<stui.score2) j=i; avera

21、ge2=sum/M;printf("tC 语言的最高分 :n"); /* 最高分 */printf("tt学号:%s姓名:%s数:%.2fn",stuj. number,stuj. name,stuj.score2);printf("tC 语言的最低分是 :n"); /* 最低分 */printf("tt学号:%s姓名:%s数:.2fn",stuk. number,stuk .n ame,stuk.score2);printf("tC 语言的平均分是 %5.2fn",average2); pri

22、ntf(" 平均分低于 60 分的学生成员名单 n");for(i=0;i<M;i+) if(stui.score2<60) printf("%sn",);break;default: /如果输入的数字不符合要求则显示错误信息printf(" 输入错误!请输入 1 3之间的数 n");sum=0;getchar();printf(" 是否继续进行统计 ?(y/n)");gets(str);if(str0='y'|str0='Y') statistic()

23、;else break;/*修改学生成绩 */void modify(void)char a10;int i,j;system("cls");printf(" 已经转到修改成绩菜单 n"); printf(" 请输入需要修改成绩的学生学号 n");scanf("%s",a);for(i=0;i<n;i+) if(strcmp(a,stui.number)=0) printf(" 名次 t 学号 tt 姓名 t 性别 t 高数分 t 英语分 tC 语言分 t 总分 t 平 均分 n");pr

24、intf("%dt%st%st%st",i+1,stui.number,,stui.sex);for(j=0;j<M;j+) printf("%4.2ft",stui.scorej);printf("%4.2f",stui.total); printf("%4.2f",stui.aver);printf("n");printf(" 请重新输入该学生的姓名 :n");scanf("%s",stui.number); printf(&q

25、uot;n");scanf("%s",); printf(" 请输入该学生性别 n");scanf("%s",stui.sex);printf(" 请重新输入该学生成绩 :n"); printf(" 高数分 t 英语分 tC 语言分 n");for(j=0;j<M;j+) scanf("%f",&stui.scorej);printf(" 修改成功 n");break; / 找到该学生成绩后进行修改,跳出 for

26、循环 elseprintf(" 请确认该学生是否为该校学生! n");*添加学生成绩 *void add(void)int a,i,j; /i 定义为学生, j 为学生分数, a 代表加入学生的数量 system("cls");printf(" 已经转到添加成绩菜单 n"); printf(" 请输入新增加的学生人数: n");scanf("%d",&a);n=n+a;for(i=n-a;i<n;i+) printf("n");printf(”请输入第c位学生的

27、学号:n",i+1);scanf("%s",stui.number);printf(" 姓名 :n");scanf("%s",);printf("输入该学生性别 n");scanf("%s",stui.sex);printf("请输入学生成绩 :n");printf("高数分 t 英语分 tC 语言分n");for(j=0;j<M;j+)scanf("%f",&stui.scorej);prin

28、tf(" 添加成功 n");*删除学生成绩 *void delscore(void)int i,j,c;char m,a10; /m 用来存放后面输入删除的字母 y 或 n system("cls");printf("已经转到删除成绩菜单 n");printf(" 请输入学生学号 n");scanf("%s",a);for(i=0;i<n;i+) if(strcmp(a,stui.number)=0) printf(" 名次 t 学号 tt 姓名 t 性别 t 高数分 t 英语分 tC 语言分 t 总分 t 平均分 n");printf("%dt%st%st%st",i+1,stui.number,stui.n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论