学生考试成绩查询系统

程序代码:

源码:

// main.c

// 学生信息管理系统

// Created by kys-23 on 15/12/24.

// Copyright ? 2015年 kys-23. All rights reserved.

#include

#include

#include

#define MAXN 35

#define MAX_NAME 255

//学生结构体

typedef struct Student{

int id;//学号

char name[MAX_NAME];//姓名

double Chinese;//语文

double Math;//数学

double English;//英语

double Biological;//生物

double Physical;//物理

double Chemical;//化学

double average;//平均分

double totalScore;//总分

}STUDENT;

//输入模块:输入学生相关信息,如学号,姓名,成绩

void inPut(STUDENT *data,int *len){

int id;

putchar('\n');

printf("请录入新的信息,退出请输入-1.\n");

printf("格式:\n学号:\n\n");

printf("姓名 语文 数学 英语 物理 化学 生物\n");

putchar('\n');

printf("如\n1\n小明 93 95 89 87 56 89\n");

scanf("%d",&id);

while (id!=-1) {

data[*len].id = id;

scanf("%s %lf %lf %lf %lf %lf %lf",data[*len].name,&data[*len].Chinese,&data[*len].Math,&data[*len].English,&data[*len].Biological,&data[*len].Chemical,&data[*len].Physical);

data[*len].average = (data[*len].Chinese+data[*len].Math+data[*len].English+data[*len].Chemical+data[*len].Biological+data[*len].Physical)/6.0;

data[*len].totalScore = data[*len].Chinese+data[*len].Math+data[*len].English+data[*len].Physical+data[*len].Biological+data[*len].Chemical;

(*len)++;

scanf("%d",&id);

}

}

//输出模块:输出学生相关信息

void outPut(STUDENT *data,int len){

int i;

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%10s","数学");

printf("%10s","英语");

printf("%10s","生物");

printf("%10s","物理");

printf("%10s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

for (i = 0; i

}

putchar('\n');

for (i = 0; i

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

}

for (i = 0; i

}

putchar('\n');

printf("按回车键继续");

getchar();

getchar();

}

//排序模块:按照平均成绩排序

//冒泡法排序两次循环把较小的放到最前面

void sort(STUDENT *data,int len){ int i,j,k;

STUDENT temp;

for (i = 0; i

for (k = i,j=i+1; j

if(data[k].average>data[j].averag

e) {k=j;

}

if (k!=i) {temp = data[i];

data[i] = data[k];

data[k] = temp;

}

}

}

}

//查找模块:查找对应的学生信息

void find(STUDENT *data,int len){

int function_id ;

int find_id , find_re , result;

char find_sub;

int i;

lab:result = 0;

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%s\n","1.按学号查找\n2.按成绩查找");

for (i=0; i

putchar('*');

}

putchar('\n');

//按学号查找

scanf("%d",&function_id);

if (function_id == 1) {

printf("%s\n","请输入需要查找的学生的学号,退出当前菜单请输入-1");

scanf("%d",&find_id);

if (find_id == -1) {

return;

}

while (data[result].id!=find_id&&result

result++;

if (result>=len) { printf("%s\n","未查到相关信息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1f",data[i].Chinese);

printf("%10.f",data[i].Math);

printf("%10.1f",data[i].English);

printf("%10.1f",data[i].Biological);

printf("%10.1f",data[i].Physical);

printf("%10.1f",data[i].Chemical);

printf("%12.1f",data[i].average);

printf("%10.1f",data[i].totalScore);

putchar('\n');

for (i=0; i

}

putchar('\n');

goto lab;

}

}

}else{

for (i=0; i

}

putchar('\n');

printf("%s\n","A.Chinese\nB.Math\nC.English\nD.Biological\nE.Physical\nF.Chemical\n");

for (i=0; i

}

putchar('\n');

printf("%s\n","请输入需要查找科目,退出当前菜单请输入-1");

scanf("%s",&find_sub);

if (find_sub == -1) {return;

}

switch (find_sub) {

case 'A':

printf("%s\n","请输入需要查找的成绩,退出当前菜单请输入-1");

scanf("%d",&find_re);

while (data[result].Chinese!=find_re&&result

result++;

if (result>=len) {

printf("%s\n","未查到相关信

息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

putchar('*');

}

putchar('\n');

goto lab;

}

}

break;

case 'B':

while (data[result].Math!=find_re&&result

result++;

if (result>=len) {printf("%s\n","未查到相关信息");

goto lab;

}else{printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

putchar('*');

}

putchar('\n');

goto lab;

}

}

break;

case 'C':

while (data[result].English!=find_re&&result

result++;

if (result>=len) {

printf("%s\n","未查到相关信息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

putchar('*');

}

putchar('\n');

goto lab;

}

}

break;

case 'D':

while (data[result].Biological!=find_re&&result

result++;

if (result>=len) {

printf("%s\n","未查到相关信息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

putchar('*');

}

putchar('\n');

goto lab;

}

}

break;

case 'E':

while (data[result].Physical!=find_re&&result

result++;

if (result>=len) {

printf("%s\n","未查到相关信息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chem

ical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

putchar('*');

}

putchar('\n');

goto lab;

}

}

break;

default:

while (data[result].Chemical!=find_re&&result

result++;

if (result>=len) {

printf("%s\n","未查到相关信息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

}

putchar('\n');

goto lab;

}

}

break;

}

}

}

//插入模块:插入新的学生信息

void insert(STUDENT *data,int *len){

int id,pos;

double Chinese,math,English,Biological,Physical,Chemical,average,totalScore;

int i;

char name[MAX_NAME];

lab:printf("%s\n","输入新的学生信息,退出当前菜单请输入-1");

printf("%s\n","格式:学号");

printf("%s\n"," 姓名 语文 数学 英语 生物 物理 化学");

scanf("%d",&id);

if (id == -1) {return;

}

data[*len].id = id;

scanf("%s %lf %lf %lf %lf %lf %lf",name,&Chinese,&math,&English,&Biological,&Physical,&Chemical);

average = (Chinese+math+English+Biological+Physical+Che

mical)/6.0;

totalScore = Chinese+math+English+Biological+Physical+Chemical;

pos = 0;

while ((data[pos].average

}

for (i = *len-1; i>=pos; i--) { data[i+1]=data[i];

}

data[pos].id = id;

strcpy(data[pos].name, name);

data[pos].Chinese = Chinese;

data[pos].Math = math;

data[pos].English = English;

data[pos].Biological = Biological;

data[pos].Physical = Physical;

data[pos].Chemical = Chemical;

data[pos].average = average;

data[pos].totalScore = totalScore;

(*len)++;

goto lab;

}

//删除模块:按照学生的学号删除相应的信息

void delete_item(STUDENT *data,int *len){

int id,i ,pos ;

lab:pos = 0;

printf("%s\n","输入需要删除的学生的学号,退出当前菜单请输入-1");

scanf("%d",&id);

if (id == -1) {return;

}

while ((data[pos].id!=id)&&(pos

}

if (pos >=*len) {printf("%s\n","未找到需要删除的学生信息");

goto lab;

}else{

for (i = pos + 1; i

}

*len = *len-1;

if (*len==0) {printf("%s\n","没有任何信息,请按回车键返回");

getchar();

getchar();

return;

}

goto lab;

}

}

//统计模块:统计各分段的人数()

void Stat(STUDENT *data,int len)

{

int no_59=0,no_69=0,no_79=0,no_89=0,no_100=0;

int i;

for (i = 0; i

if (data[i].average

no_59++;

}else if (data[i].average

no_69++;

}else if (data[i].average

no_79++;

}else if (data[i].average

no_89++;

}else {

no_100++;

}

for (i = 0; i

}

putchar('\n');

printf("%10s","分数");

printf("%10s","0--59");

printf("%10s","60--69");

printf("%10s","70--79");

printf("%10s","80--89");

printf("%10s","90--100");

putchar('\n');

putchar('\n');

printf("%10s","学生");

printf("%10d",no_59);

printf("%10d",no_69);

printf("%10d",no_79);

printf("%10d",no_89);

printf("%10d",no_100);

putchar('\n');

for (i = 0; i

}

putchar('\n');

printf("按回车键返回");

getchar();

getchar();

}

}

//开始界面:显示该程序的功能和相关信息

void paint(){

int i;

printf("%55s\n","河北北方学院学生成绩管理系统\n");

for (i = 0; i

putchar('*');

}

putchar('\n');

printf(" 1输入信息\n");

printf(" 2输出信息\n");

printf(" 3按平均分排序\n");

printf(" 4按学号查找\n");

printf(" 5插入新

学生信息\n");

printf(" 6按学号删除\n");

printf(" 7按平均分输出统计信息\n");

printf(" 8保存\n");

printf(" 0退出程序\n");

for (i = 0; i

}

putchar('\n');

printf("%s\n","请输入功能序号:");

}

//保存模块:将输入的信息保存到text文件中

void save(STUDENT *data,int len)//将数据保存到文件

{ int i;

FILE *fp;

fp = fopen("成绩统计表.txt", "w");

fprintf(fp, "%8s","学号");

fprintf(fp, "%8s","姓名");

fprintf(fp, "%8s","语文");

fprintf(fp, "%8s","数学");

fprintf(fp, "%10s","英语");

fprintf(fp, "%8s","生物");

fprintf(fp, "%8s","物理");

fprintf(fp, "%8s","化学");

fprintf(fp, "%12s","平均分");

fprintf(fp, "%10s\n","总分");

fprintf(fp, "*************************************\n");

putchar('\n');

for (i = 0; i

fprintf(fp,"%8d", data[i].id);

fprintf(fp,"%8s", data[i].name);

fprintf(fp,"%8.1lf", data[i].Chinese);

fprintf(fp,"%8.1lf", data[i].Math);

fprintf(fp,"%10.1lf", data[i].English);

fprintf(fp,"%8.1lf",data[i].Biological);

fprintf(fp,"%8.1lf",data[i].Physical);

fprintf(fp,"%8.1lf",data[i].Chemical);

fprintf(fp,"%12.1lf", data[i].average);

fprintf(fp,"%10.1lf\n", data[i].totalScore);

}

fprintf(fp, "*************************************\n");

fclose(fp);

printf("文件已保存到\"成绩统计表.txt\"");

getchar();

getchar();

}

int main(int argc, const char * argv[]) {

STUDENT data[MAXN];//创建学生信息数组

int len = 0;

char ctrl_ch;

paint();

scanf("%c", &ctrl_ch);

while (ctrl_ch != '0') {//选择功能

switch(ctrl_ch) {

case '1': inPut(data, &len);

break;

case '2': outPut(data, len);

break;

case '3': sort(data, len);

break;

case '4': find(data, len);

break;

case '5': insert(data, &len);

break;

case '6': delete_item(data, &len);

break;

case '7': Stat(data, len);

break;

case '8': save(data, len);

break;

default:

if (ctrl_ch != '\n')

printf("%s\n", "输入错误!");

break;

}

if (ctrl_ch != '\n')

paint();

scanf("%c", &ctrl_ch);

}

}

程序代码:

源码:

// main.c

// 学生信息管理系统

// Created by kys-23 on 15/12/24.

// Copyright ? 2015年 kys-23. All rights reserved.

#include

#include

#include

#define MAXN 35

#define MAX_NAME 255

//学生结构体

typedef struct Student{

int id;//学号

char name[MAX_NAME];//姓名

double Chinese;//语文

double Math;//数学

double English;//英语

double Biological;//生物

double Physical;//物理

double Chemical;//化学

double average;//平均分

double totalScore;//总分

}STUDENT;

//输入模块:输入学生相关信息,如学号,姓名,成绩

void inPut(STUDENT *data,int *len){

int id;

putchar('\n');

printf("请录入新的信息,退出请输入-1.\n");

printf("格式:\n学号:\n\n");

printf("姓名 语文 数学 英语 物理 化学 生物\n");

putchar('\n');

printf("如\n1\n小明 93 95 89 87 56 89\n");

scanf("%d",&id);

while (id!=-1) {

data[*len].id = id;

scanf("%s %lf %lf %lf %lf %lf %lf",data[*len].name,&data[*len].Chinese,&data[*len].Math,&data[*len].English,&data[*len].Biological,&data[*len].Chemical,&data[*len].Physical);

data[*len].average = (data[*len].Chinese+data[*len].Math+data[*len].English+data[*len].Chemical+data[*len].Biological+data[*len].Physical)/6.0;

data[*len].totalScore = data[*len].Chinese+data[*len].Math+data[*len].English+data[*len].Physical+data[*len].Biological+data[*len].Chemical;

(*len)++;

scanf("%d",&id);

}

}

//输出模块:输出学生相关信息

void outPut(STUDENT *data,int len){

int i;

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%10s","数学");

printf("%10s","英语");

printf("%10s","生物");

printf("%10s","物理");

printf("%10s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

for (i = 0; i

}

putchar('\n');

for (i = 0; i

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

}

for (i = 0; i

}

putchar('\n');

printf("按回车键继续");

getchar();

getchar();

}

//排序模块:按照平均成绩排序

//冒泡法排序两次循环把较小的放到最前面

void sort(STUDENT *data,int len){ int i,j,k;

STUDENT temp;

for (i = 0; i

for (k = i,j=i+1; j

if(data[k].average>data[j].averag

e) {k=j;

}

if (k!=i) {temp = data[i];

data[i] = data[k];

data[k] = temp;

}

}

}

}

//查找模块:查找对应的学生信息

void find(STUDENT *data,int len){

int function_id ;

int find_id , find_re , result;

char find_sub;

int i;

lab:result = 0;

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%s\n","1.按学号查找\n2.按成绩查找");

for (i=0; i

putchar('*');

}

putchar('\n');

//按学号查找

scanf("%d",&function_id);

if (function_id == 1) {

printf("%s\n","请输入需要查找的学生的学号,退出当前菜单请输入-1");

scanf("%d",&find_id);

if (find_id == -1) {

return;

}

while (data[result].id!=find_id&&result

result++;

if (result>=len) { printf("%s\n","未查到相关信息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1f",data[i].Chinese);

printf("%10.f",data[i].Math);

printf("%10.1f",data[i].English);

printf("%10.1f",data[i].Biological);

printf("%10.1f",data[i].Physical);

printf("%10.1f",data[i].Chemical);

printf("%12.1f",data[i].average);

printf("%10.1f",data[i].totalScore);

putchar('\n');

for (i=0; i

}

putchar('\n');

goto lab;

}

}

}else{

for (i=0; i

}

putchar('\n');

printf("%s\n","A.Chinese\nB.Math\nC.English\nD.Biological\nE.Physical\nF.Chemical\n");

for (i=0; i

}

putchar('\n');

printf("%s\n","请输入需要查找科目,退出当前菜单请输入-1");

scanf("%s",&find_sub);

if (find_sub == -1) {return;

}

switch (find_sub) {

case 'A':

printf("%s\n","请输入需要查找的成绩,退出当前菜单请输入-1");

scanf("%d",&find_re);

while (data[result].Chinese!=find_re&&result

result++;

if (result>=len) {

printf("%s\n","未查到相关信

息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

putchar('*');

}

putchar('\n');

goto lab;

}

}

break;

case 'B':

while (data[result].Math!=find_re&&result

result++;

if (result>=len) {printf("%s\n","未查到相关信息");

goto lab;

}else{printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

putchar('*');

}

putchar('\n');

goto lab;

}

}

break;

case 'C':

while (data[result].English!=find_re&&result

result++;

if (result>=len) {

printf("%s\n","未查到相关信息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

putchar('*');

}

putchar('\n');

goto lab;

}

}

break;

case 'D':

while (data[result].Biological!=find_re&&result

result++;

if (result>=len) {

printf("%s\n","未查到相关信息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

putchar('*');

}

putchar('\n');

goto lab;

}

}

break;

case 'E':

while (data[result].Physical!=find_re&&result

result++;

if (result>=len) {

printf("%s\n","未查到相关信息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chem

ical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

putchar('*');

}

putchar('\n');

goto lab;

}

}

break;

default:

while (data[result].Chemical!=find_re&&result

result++;

if (result>=len) {

printf("%s\n","未查到相关信息");

goto lab;

}else{

printf("%s\n","查询信息如下:");

for (i=0; i

putchar('*');

}

putchar('\n');

printf("%8s","学号");

printf("%8s","姓名");

printf("%8s","语文");

printf("%8s","数学");

printf("%10s","英语");

printf("%8s","生物");

printf("%8s","物理");

printf("%8s","化学");

printf("%12s","平均分");

printf("%10s","总分");

putchar('\n');

printf("%8d",data[i].id);

printf("%8s",data[i].name);

printf("%8.1lf",data[i].Chinese);

printf("%10.1lf",data[i].Math);

printf("%10.1lf",data[i].English);

printf("%10.1lf",data[i].Biological);

printf("%10.1lf",data[i].Physical);

printf("%10.1lf",data[i].Chemical);

printf("%12.1lf",data[i].average);

printf("%10.1lf",data[i].totalScore);

putchar('\n');

for (i=0; i

}

putchar('\n');

goto lab;

}

}

break;

}

}

}

//插入模块:插入新的学生信息

void insert(STUDENT *data,int *len){

int id,pos;

double Chinese,math,English,Biological,Physical,Chemical,average,totalScore;

int i;

char name[MAX_NAME];

lab:printf("%s\n","输入新的学生信息,退出当前菜单请输入-1");

printf("%s\n","格式:学号");

printf("%s\n"," 姓名 语文 数学 英语 生物 物理 化学");

scanf("%d",&id);

if (id == -1) {return;

}

data[*len].id = id;

scanf("%s %lf %lf %lf %lf %lf %lf",name,&Chinese,&math,&English,&Biological,&Physical,&Chemical);

average = (Chinese+math+English+Biological+Physical+Che

mical)/6.0;

totalScore = Chinese+math+English+Biological+Physical+Chemical;

pos = 0;

while ((data[pos].average

}

for (i = *len-1; i>=pos; i--) { data[i+1]=data[i];

}

data[pos].id = id;

strcpy(data[pos].name, name);

data[pos].Chinese = Chinese;

data[pos].Math = math;

data[pos].English = English;

data[pos].Biological = Biological;

data[pos].Physical = Physical;

data[pos].Chemical = Chemical;

data[pos].average = average;

data[pos].totalScore = totalScore;

(*len)++;

goto lab;

}

//删除模块:按照学生的学号删除相应的信息

void delete_item(STUDENT *data,int *len){

int id,i ,pos ;

lab:pos = 0;

printf("%s\n","输入需要删除的学生的学号,退出当前菜单请输入-1");

scanf("%d",&id);

if (id == -1) {return;

}

while ((data[pos].id!=id)&&(pos

}

if (pos >=*len) {printf("%s\n","未找到需要删除的学生信息");

goto lab;

}else{

for (i = pos + 1; i

}

*len = *len-1;

if (*len==0) {printf("%s\n","没有任何信息,请按回车键返回");

getchar();

getchar();

return;

}

goto lab;

}

}

//统计模块:统计各分段的人数()

void Stat(STUDENT *data,int len)

{

int no_59=0,no_69=0,no_79=0,no_89=0,no_100=0;

int i;

for (i = 0; i

if (data[i].average

no_59++;

}else if (data[i].average

no_69++;

}else if (data[i].average

no_79++;

}else if (data[i].average

no_89++;

}else {

no_100++;

}

for (i = 0; i

}

putchar('\n');

printf("%10s","分数");

printf("%10s","0--59");

printf("%10s","60--69");

printf("%10s","70--79");

printf("%10s","80--89");

printf("%10s","90--100");

putchar('\n');

putchar('\n');

printf("%10s","学生");

printf("%10d",no_59);

printf("%10d",no_69);

printf("%10d",no_79);

printf("%10d",no_89);

printf("%10d",no_100);

putchar('\n');

for (i = 0; i

}

putchar('\n');

printf("按回车键返回");

getchar();

getchar();

}

}

//开始界面:显示该程序的功能和相关信息

void paint(){

int i;

printf("%55s\n","河北北方学院学生成绩管理系统\n");

for (i = 0; i

putchar('*');

}

putchar('\n');

printf(" 1输入信息\n");

printf(" 2输出信息\n");

printf(" 3按平均分排序\n");

printf(" 4按学号查找\n");

printf(" 5插入新

学生信息\n");

printf(" 6按学号删除\n");

printf(" 7按平均分输出统计信息\n");

printf(" 8保存\n");

printf(" 0退出程序\n");

for (i = 0; i

}

putchar('\n');

printf("%s\n","请输入功能序号:");

}

//保存模块:将输入的信息保存到text文件中

void save(STUDENT *data,int len)//将数据保存到文件

{ int i;

FILE *fp;

fp = fopen("成绩统计表.txt", "w");

fprintf(fp, "%8s","学号");

fprintf(fp, "%8s","姓名");

fprintf(fp, "%8s","语文");

fprintf(fp, "%8s","数学");

fprintf(fp, "%10s","英语");

fprintf(fp, "%8s","生物");

fprintf(fp, "%8s","物理");

fprintf(fp, "%8s","化学");

fprintf(fp, "%12s","平均分");

fprintf(fp, "%10s\n","总分");

fprintf(fp, "*************************************\n");

putchar('\n');

for (i = 0; i

fprintf(fp,"%8d", data[i].id);

fprintf(fp,"%8s", data[i].name);

fprintf(fp,"%8.1lf", data[i].Chinese);

fprintf(fp,"%8.1lf", data[i].Math);

fprintf(fp,"%10.1lf", data[i].English);

fprintf(fp,"%8.1lf",data[i].Biological);

fprintf(fp,"%8.1lf",data[i].Physical);

fprintf(fp,"%8.1lf",data[i].Chemical);

fprintf(fp,"%12.1lf", data[i].average);

fprintf(fp,"%10.1lf\n", data[i].totalScore);

}

fprintf(fp, "*************************************\n");

fclose(fp);

printf("文件已保存到\"成绩统计表.txt\"");

getchar();

getchar();

}

int main(int argc, const char * argv[]) {

STUDENT data[MAXN];//创建学生信息数组

int len = 0;

char ctrl_ch;

paint();

scanf("%c", &ctrl_ch);

while (ctrl_ch != '0') {//选择功能

switch(ctrl_ch) {

case '1': inPut(data, &len);

break;

case '2': outPut(data, len);

break;

case '3': sort(data, len);

break;

case '4': find(data, len);

break;

case '5': insert(data, &len);

break;

case '6': delete_item(data, &len);

break;

case '7': Stat(data, len);

break;

case '8': save(data, len);

break;

default:

if (ctrl_ch != '\n')

printf("%s\n", "输入错误!");

break;

}

if (ctrl_ch != '\n')

paint();

scanf("%c", &ctrl_ch);

}

}


相关文章

  • 教务管理系统 - 软件需求分析
  • 软件需求分析报告 教务管理系统 学生姓名 __ __ 学 号 专业班级 院 (系) 指导教师 完成时间 成 绩 前 言 项目小组分工: 需求分析.文档的整理及后期的功能测试. 教务管理系统的建模实现. 伴随着高校信息化建设的日益完善,高等学 ...查看


  • 在线考试系统
  • <.NET 应用案例> --在线考试系统的设计与实现 所在班级: 计算机12-3班 学 号: 1004010718 姓 名: 厚朴 年 月 日 目 录 1项目的来源.目的和意义 . ....................... ...查看


  • [快讯]最新消息:安徽省2018级考生高二可参加高考!
  • 阜阳共青团 安徽省2018年入学的高中生,从高二起就可以提前参加高考地理.生物科目的考试了.昨天下午,"皖版高考改革方案"两大配套办法--<安徽省普通高中学业水平考试实施办法>和<安徽省普通高中学生综合 ...查看


  • 学生选课管理系统毕业论文
  • 毕业设计(论文) 题 目 学生选课管理系统 英文题目 Student enrollment management system 学生姓名 刘小亮 班 级1140302 专 业[1**********]6 东华理工大学高职学院 2014年 5 ...查看


  • 学生综合测评评分系统需求分析报告
  • 08 级信息管理与信息系统 学生综合测评评分系统需 求分析报告 需求分析 [摘要]该报告简要介绍了学生综合测评评分系统的设计目的.背景.以及对该系统的 需求做出了相应的规定和运行环境的规定 1. 引言 1.1 目的 在管理员完成成绩输入等操 ...查看


  • 尔雅学生手册
  • 尔雅通识课学习系统 使用手册(学生) 功能表 如何在通识课系统完成学习和获得学分 如何登录系统 如何查看公告信息 如何查看正在进行课程的进度情况 如何继续学习正在进行的课程 如何查看已结束的课程 如何查看正在进行课程的作业 如何查看已结束课 ...查看


  • 关于印发山东大学威海分校本
  • 关于印发<山东大学威海分校本.专科学生成绩 管理规定>的通知 各教学单位: <山东大学威海分校本.专科学生成绩管理规定>业经学校研究通过,现予印发,请遵照执行. 二〇〇八年三月二十六日 山东大学威海分校本.专科学生成 ...查看


  • 软件工程(需求分析报告)
  • 学生学籍管理系统需求分析报告 1 引言 1.1编写目的 学籍管理信息系统以计算机为工具,通过对教务管理所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检 ...查看


  • 在线考试系统l论文
  • 2015届毕业生毕业设计 <数据结构>课程在线考试系统 学生姓名 阿娜尔古丽·台外库力 学 号 5011110112 所属学院 信息工程学院 专 业 计算机科学与技术 班 级 计算机15-1 指导教师 2015年 5月 4 日 ...查看


  • 成绩管理系统软件需求规格说明书
  • 软件开发方向 "成绩管理系统"软件需求规约 --教育集团 修订历史记录 目录 1 引言................................................................... ...查看


热门内容