c语音程序设计—学生成绩管理系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语音程序设计—学生成绩管理系统相关的知识,希望对你有一定的参考价值。

#include"stdio.h"
#include "stdlib.h"
#include "string.h"

typedef struct

char num[15];
char name[8];
int score[4]; //数组成员0、1、2为三门成绩,3为平均成绩
messege;

typedef struct

messege student[100];
int len;
lis;
lis list;

void menu();

void input_mune(char num);
void input();

void sort_menu();
void sort(char order);

void browse();
void exchange(); //结构体message成员变量互换函数

void del_menu();
void del();

main()

list.len=0;
menu();


void menu()

char num='6';
while (num!='0')

system("cls"); //清屏

printf("\n\n");
printf(" 学生成绩管理 \n");
printf("\n\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(" 0.退出 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 请输入操作序号: ");
scanf("%s",&num);

if((num=='1')||(num=='4'))
input_mune(num);
else
if(num=='2')
sort_menu();
else
if(num=='3')
browse();
else
if(num=='5')
del_menu();



void input_mune(char num)

char n='2';
while (n!='0')

system("cls");

printf("\n\n");
printf(" 添加记录 \n");
printf("\n\n");
printf(" **************************************************** \n");
printf("\n");
printf(" 1.添加记录 \n");
printf("\n");
printf(" 0.返回主界面 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");

printf(" 请输入操作序号: ");
scanf("%s",&n);

if(n=='1')

if(list.len>=100)
printf(" 学生信息表已满,无法添加\n");
else

input();
if(num=='4')
sort('1');

printf(" 输入任意键回车添加信息,返回主界面请输入0: ");
scanf("%s",&n);




void input()

int i;
printf(" 输入学生学号: ");
scanf("%s",&list.student[list.len].num);
printf("\n");
printf(" 输入学生姓名: ");
scanf("%s",&list.student[list.len].name);
printf("\n");
for(i=0;i<3;i++)

printf(" 输入成绩%d: ",i+1);
scanf("%d",&list.student[list.len].score[i]);

list.student[list.len].score[3]=(list.student[list.len].score[0]+list.student[list.len].score[1]+list.student[list.len].score[2])/3;
printf(" 你输入的信息为:\n");
printf(" 学号:%s",list.student[list.len].num);
printf(" 姓名:%s",list.student[list.len].name);
printf(" 成绩:%d %d %d",list.student[list.len].score[0],list.student[list.len].score[1],list.student[list.len].score[2]);
printf(" 平均成绩:%d\n",list.student[list.len].score[3]);
list.len=list.len+1;


void sort_menu()

char n='3';
while(n!='0')

system("cls");

printf("\n\n");
printf(" 排序 \n");
printf("\n\n");
printf(" **************************************************** \n");
printf("\n");

if(list.len==0)

printf(" 0.返回主界面 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 记录为空,无法排序");
printf("\n\n");
printf(" 请输入操作序号: ");
scanf("%s",&n);


else
if(list.len==1)

printf(" 0.退出 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 只有一条记录,无需排序");
printf("\n\n");
printf(" 请输入操作序号: ");
scanf("%s",&n);


else

printf(" 1.升序 \n");
printf("\n");
printf(" 2.降序 \n");
printf("\n");
printf(" 0.退出 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 请输入操作序号: ");
scanf("%s",&n);

if((n=='1')||(n=='2'))

sort(n);
printf(" 排序完成,输入任意键回车添加信息,返回主界面请输入0: ");
scanf("%s",&n);





void sort(char order)

int i,j;
if(order=='1')
for(i=0;i<list.len-1;i++)

for(j=i+1;j<list.len;j++)

if(list.student[i].score[3]>list.student[j].score[3])

exchange(i,j);



else

if(order=='2')
for(i=0;i<list.len-1;i++)

for(j=i+1;j<list.len;j++)

if(list.student[i].score[3]<list.student[j].score[3])

exchange(i,j);






void exchange(int i,int j)

messege temp;
temp.score[0]=list.student[i].score[0];
temp.score[1]=list.student[i].score[1];
temp.score[2]=list.student[i].score[2];
temp.score[3]=list.student[i].score[3];

strcpy(temp.num,list.student[i].num);
strcpy(temp.name,list.student[i].name);

list.student[i].score[0]=list.student[j].score[0];
list.student[i].score[1]=list.student[j].score[1];
list.student[i].score[2]=list.student[j].score[2];
list.student[i].score[3]=list.student[j].score[3];

strcpy(list.student[i].num,list.student[j].num);
strcpy(list.student[i].name,list.student[j].name);

list.student[j].score[0]=temp.score[0];
list.student[j].score[1]=temp.score[1];
list.student[j].score[2]=temp.score[2];
list.student[j].score[3]=temp.score[3];

strcpy(list.student[j].num,temp.num);
strcpy(list.student[j].name,temp.name);


void browse()

int i;
char n='1';

while(n!='0')

system("cls");

printf("\n\n");
printf(" 浏览记录 \n");
printf("\n\n");
printf(" **************************************************** \n");
printf("\n");
printf(" 学号 姓名 成绩1 成绩2 成绩3 平均成绩 \n");

for(i=0;i<list.len;i++)

printf(" %-15s",list.student[i].num);
printf("%-8s",list.student[i].name);
printf("%5d",list.student[i].score[0]);
printf(" %5d",list.student[i].score[1]);
printf(" %5d",list.student[i].score[2]);
printf(" %8d\n",list.student[i].score[3]);

printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 输入任意键回车刷新,返回主界面请输入0: ");
scanf("%s",&n);



void del_menu()

char n='2';
while (n!='0')

system("cls");

printf("\n\n");
printf(" 删除记录 \n");
printf("\n\n");
printf(" **************************************************** \n");
printf("\n");
printf(" 1.删除记录 \n");
printf("\n");
printf(" 0.返回主界面 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");

printf(" 请输入操作序号: ");
scanf("%s",&n);

if(n=='1')

del();
printf(" 输入任意键回车删除记录,返回主界面请输入0: ");
scanf("%s",&n);




void del()

int i,j;
char name[8];
printf(" 请输入学生姓名: ");
scanf("%s",name);
for(i=0;i<list.len;i++)

if(strcmp(name,list.student[i].name)==0)

for(j=i;j<list.len-1;j++)

list.student[j].score[0]=list.student[j+1].score[0];
list.student[j].score[1]=list.student[j+1].score[1];
list.student[j].score[2]=list.student[j+1].score[2];
list.student[j].score[3]=list.student[j+1].score[3];

strcpy(list.student[j].num,list.student[j+1].num);
strcpy(list.student[j].name,list.student[j+1].name);

list.len=list.len-1;


参考技术A 我们以前也做过

以上是关于c语音程序设计—学生成绩管理系统的主要内容,如果未能解决你的问题,请参考以下文章

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

c语言学生成绩管理系统设计

学生成绩管理系统c

C语言学生成绩管理系统

C语言程序设计 学生成绩管理信息系统

学生成绩管理程序