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

下载本文档

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

文档简介

1、编译预处理定义处理字宏指令的声/定义通过控最多的人数统计成绩定义类型保存所有人保存学生姓保存性别保存所有课程保存每个人的总计成绩学生成绩新建学生成绩保存 学生平均成绩 学生成绩总计学生成绩修改 学生成绩查看 学生成绩查询学生成绩统计学生成绩添学生成绩修/学生成绩删除 学生成绩菜#include<stdio.h>指令#include<string.h>符串函数#include<process.h>明#include<conio.h>制台进行数据输入以及输出#define N 2000人#define M 3typedef struct studen

2、t char number10;的学号char name20;名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);void searchscore(void);void statistic(void);void add(void);加void modi

3、fy(void);改void delscore(void);void menu(void);单void main() short int flag=0;menu();do flag=1;switch(getch() case '1': inputscore();break;/在菜单界面输入 1,调用 i 函数 nputscore()实现输入学生成绩信息功能case '2': lookscore();break;在菜单界面输入 2,调用函数lookscore()实现学生成绩按平均分高低排序输出,同时lookscore()函数调用avregescore()函数实现各

4、个学生的平均分计算case '3' : searchscore();break;通过学号查找学生成绩信息功能case '4' : statistic();break;门课程的最高分,平均分以及不及格人员case '5' : modify();break;学号修改学生成绩的功能case '6' : add();break;加学生成绩case '7' : delscore();break;指定学生的成绩case '8' : savescore();break;成绩信息保存/在菜单界面输入 3,调用sea

5、rchscore()函数实现在菜单界面输入 4,调用statistic。函数输出每一在菜单界面输入5,调用modify()函数实现通过在菜单界面输入6,调用add()函数实现添在菜单界面输入 7,调用delscore()函数实现删除在菜单界面输入8,调用savescore()函数将学生case '9':exit(0); break;在菜单界面输入 9,退出成绩管理系统default : printf("输入有误 n");printf("按任意键继续n");getch();按任意键继续,起到暂停的作用,函数头文件conio.h已经定义过me

6、nu(); / 菜单while (flag=1); void menu(void)system("cls");清屏printf("n");printf("欢迎进入学生成绩管理系统n");printf("菜单n");printf("输入成绩 1n");printf("查看成绩及成绩排序 2n");printf("查询学生成绩 3n");printf("成绩统计4n");printf("修改成绩5n");printf(&

7、quot;添加成绩6n");printf("删除成绩7n");printf("保存成绩8n");printf("退出系统9n");printf("n");printf("请输入您的选择(19) n");输入成绩/*输入各个同学的学生信息*/ void inputscore(void) int i,j;system("cls");清屏专用,以下出现位置作用相同printf("已经转到输入成绩菜单n");printf("请输入学生总数:n&

8、quot;);scanf("%d",&n);printf("提示:输入学号时请输入9位学生编号:图书借阅证上的学号n"); 因二维表上下需对正故有此要求for(i=0;i<n;i+) printf("n");printf("请输入第%d位学生的学号:n",i+1);scanf("%s",stui.number);输入学生学号printf("姓名:n");scanf("%s",);输入学生名字printf("请输入该

9、学生性别n");scanf("%s",stui.sex);输入性别printf("请输入学生成绩:n");printf("高数分t英语分tC语言分n");for(j=0;j<M;j+)输入高数、英语、C语言的成绩 printf("/* void total(void) int i,j; 课的分数成功输入(按任意键继续后请输入8进行保存)n");计算各个同学的总分*/定义变量i, j; i用来表示学生个数,j则用来表示学生每门scanf("%f",&stui.scorej)

10、;for(i=0;i<n;i+) stui.total=0;for(j=0;j<M;j+)/M表示科目在头文件出已经定义stui.total+=stui.scorej;/*计算各个同学的平均分*/定义变量i, j; i用来表示学生个数,j则用来表示学生每门课的void avergescore(void) int i,j;分数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;计算平均分/*查看学生成绩及根据平均分对学生

11、进行排序*/void lookscore(void) int i,j,k; / i, j, k都表示学生成绩比较用来调换顺序STU t;total(); /此处用来对调用函数的声明avergescore();system("cls"); / 清屏专用printf("已经转到查看成绩及成绩排序菜单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学

12、号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("%4.2ft",stui.scorej);printf("%4.2ft",stui.total);printf("%4.2f",stui.aver); printf("n");/*通过输入学号查找学生成绩*/void

13、searchscore(void) char a10; 定义数组a的类型可输入数字,字母或字符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");printf(&qu

14、ot;%dt%st%st%st",i+1,stui.number,,stui.sex);for(j=0;j<M;j+)printf("%4.2ft",stui.scorej);printf("%4.2ft",stui.total);printf("%4.2f",stui.aver);printf("n");break;找到该学生成绩信息后跳出for循环 else printf("未找到该学生信息n");/*统计学生成绩信息,计算出每一门课的最高分*/void s

15、 i,j=0,k=0,c1;char str2;float averageM,sum=0; printf("没有可被查找的记录n");/system("cls");if(M=0)如果没有输入成绩则输出没有可查找的记录printf("没有可被查找的记录n");elsewhile(1)printf("下面将统计考试成绩 n");printf("请选择你要统计哪科的成绩1.高数t2.英语t3.C语言n");scanf("%d",&c1);printf

16、("t 一共有%d个记录n",M); /*总共记录数*/ switch(c1)case 1: 用来判断高数的最高分,平均分,输出不及格人员名单for(i=0;i<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,,st

17、uj.score0);printf("t高数的最低分是:n");printf("tt 学号:%s 姓名:%s 分数:.2fn",stuk.number,,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: /用来判断英语的最高分

18、,平均分,输出不及格人员名单for(i=0;i<M;i+)sum+=stui.score1;if(stuk.score1>stui.score1) k=i;if(stuj.score1<stui.score1) j=i;average1=sum/M;printf("t英语的最高分:n");printf("tt 学号:s 姓名:s 分数:.2fn",stuj.number,,stuj.score1);printf("t英语的最低分是:n");printf("tt 学号:s 姓名:s 分数:.

19、2fn",stuk.number,,stuk.score1);printf("t 英语的平均分是5.2fn",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.scor

20、e2>stui.score2) k=i;if(stuj.score2<stui.score2) j=i;average2=sum/M;printf("tC 语言的最高分:n"); /*最高分*/printf("tt 学号:%s 姓名:%s 分数:%.2fn",stuj.number,,stuj.score2);printf("tC语言的最低分是:n"); /*最低分*/printf("tt 学号:%s 姓名:%s 分数:.2fn",stuk.number,,stuk.

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

22、str0=y|str0='Y') statistic。;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

23、");printf("%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);prin

24、tf("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);找到该学生成绩后进行修改,跳出forprintf("修改成功 n"); break;循环elseprintf(

25、"请确认该学生是否为该校学生!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("请输入第%d位学生的学号:n",i+1);s

26、canf("%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);printf("添加成功 n");/*

27、删除学生成绩 */ void delscore(void) int i,j,c;char m,a10;/m用来存放后面输入删除的字母y或nsystem("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.sex);for(j=0;

温馨提示

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

最新文档

评论

0/150

提交评论