(桂电)学生成绩管理系统(论文加源代码) 数据结构与算法课设(4)

2019-08-31 19:33

需在功程里新建个ni.txt.内容如下 7

004 sun 98.0 89.0 97.0 94.7 284.0 005 li 98.0 48.0 78.0 74.7 224.0 002 zhao 98.0 78.0 59.0 78.3 235.0 006 zhou 89.0 97.0 86.0 90.7 272.0 003 qian 78.0 98.0 89.0 88.3 265.0 001 chen 59.0 60.0 98.0 68.3 205.0 007 wu 57.0 76.0 87.0 73.3 220.0 代码

# include //使程序包含头文件 # include //使程序包含头文件 # include //使程序包含头文件 # define SIZE 50 //定义常量SIZE来控制数组的长度

void input_num(struct Student stud[], int n, int i); //声明学号输入函数 void input_name(struct Student stud[], int n, int i); //声明姓名输入函数 void input_score(struct Student stud[], int n, int i); //声明成绩输入函数 void output_stu(struct Student stud[], int n, int i); //声明输出函数 void stat_stu(struct Student stud[], int n, int o); //声明统计函数 float class_avr(struct Student stud[], int n, int o); //声明排序函数 void chenji_stu(struct Student stud[], int n, int o);

void desc_stu(struct Student stud[], int n, int o); //声明降序函数 int find_stu(struct Student stud[], int n); //声明查找函数 void delete_stu(struct Student stud[], int n, int y); //声明删除函数 void amend_stu(struct Student stud[], int n, int y); //声明修改函数 void write_text(struct Student stud[], int n); //声明保存文件函数 int add_text(struct Student stud[], int n); //声明读取文件函数

struct Student /*声明结构体*/ {

char num[10]; char name[20]; float score[5]; };

void main() /*主函数,是程序的入口*/ {

struct Student stu[SIZE]; //定义一个结构数组

int count = 0; //定义整型变量count用来存放学生信息的个数,初始化为0

int choice; //定义choice用于存放用户对主菜单的选择 int a; //用于接收主选单中scanf()函数的返回值 char judge; //用于帮助判断输入的选择是否正确

int flag_main; //用于判断主菜单用户输入的选择是否有误 int stat_choice = 0; //定义stat_choice用于用户对统计项目的选择,初始化为0

int flag_stat; //用于接收scanf()函数的返回值

int flag_find; //定义flag_find用于接收查寻函数的返回值 char man_choice; //定义man_choice用于接收用户对是否进行修改删除的选择 int con_choice; //定义con_choice用于接收用户对修改或删除的选择

15

char sign_main; //定义sign_main接收用户对是否离开程序的选择

char sign_input; //定义sign_main接收用户对是否继续输入的选择

int i; //定义i,j作为控制循环的变量

while (1) //形成一个死循环 {

system(\设置输出显示颜色

/*输出主选菜单*/

printf(\欢迎使用班级成绩管理系统============================\\n\\n\

printf(\请选择您要使用的功能==============================\\n\\n\

printf(\◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆-\\n\ printf(\★※★\\t\\t 1:班级成绩录入 ★※★\\n\\n\ printf(\★※★\\t\\t 2:班级成绩显示 ★※★\\n\\n\ printf(\★※★\\t\\t 3:班级成绩统计 ★※★\\n\\n\ printf(\★※★\\t\\t 4:班级成绩查询 ★※★\\n\\n\ printf(\★※★\\t\\t 5:班级成绩修改 ★※★\\n\\n\ printf(\★※★\\t\\t 6:班级成绩表 ★※★\\n\\n\ printf(\★※★\\t\\t 7:班级成绩存档 ★※★\\n\\n\ printf(\★※★\\t\\t 8:班级成绩读入 ★※★\\n\\n\ printf(\★※★\\t\\t 0:退出 ★※★\\n\\n\ printf(\◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆-\

printf(\=====\

/*输入对菜单的选择*/ do {

flag_main = 0;

printf(\请您选择需要的操作(0-6):\ fflush(stdin);

a = scanf(\ if (a<2 || judge != '\\n') {

printf(\您的选择有误,请重新输入!\\n\ flag_main--; }

}while (flag_main < 0); printf(\

system(\令屏幕暂停待输入任意键后恢复运行 system(\清屏

system(\设置输出显示颜色

switch (choice) //把用户对主菜单的选择作为switch结构的判断条件 {

case (1):

printf(\请录入学生信息:\\n\

i=0; //循环前对i清零 do {

16

if (count+i == 50) {

break; }

input_num(stu, count, i); //输入学号 input_name(stu, count, i); //输入姓名

input_score(stu, count, i); //录入成绩及总成绩平均成绩 i++; //每录入一个学员信息i加1

printf(\还需要继续录入吗?(Y/N)\产生是否继续录入的条件*/

fflush(stdin);

sign_input = getchar();

}while(sign_input == 'y' || sign_input== 'Y' ); //判断

count=count+i; //计算出本次录入后总的已录入成员个数

printf(\ break; case (2):

/* printf(\显示班级成绩信息:\\n\

printf(\---------\

printf(\学号\\t\\t姓名\\t\\t数据库\\t算法\\tC语言\\t总成绩\\t平均成绩\/*格式化输出提示信息*/

printf(\学生信息表\\n\

printf(\

printf(\┏━━━━━━┳━━━━━━━━┳━━━┳━━━┳━━━┳━━━┳━━━━━┓\\n\

printf(\┃学号 ┃ 姓名 ┃数据库┃ 算法 ┃ C语言┃总成绩┃ 平均成绩 ┃\\n\

printf(\┣━━━━━━╋━━━━━━━━╋━━━╋━━━╋━━━╋━━━╋━━━━━┫\\n\

for (i = 0; i < count; i++) /*循环输出学员信息*/ {

output_stu(stu, count, i); //输出单个学员信息 }

printf(\┗━━━━━━┻━━━━━━━━┻━━━┻━━━┻━━━┻━━━┻━━━━━┛\\n\ break; case (3):

while (stat_choice != 4) /*循环统计直到用户选择退出结束*/ {

printf(\数据库\\n\ printf(\算法\\n\ printf(\语言\\n\ printf(\平均成绩\\n\ printf(\结束统计\\n\

printf(\请选择成绩统计的项目\

17

fflush(stdin);

flag_stat = scanf(\接收用户选择并返回值给flag_stat*/

if (flag_stat == 2 && a == '\\n') /*如果成功接收用户选择则根据选择进行统计若选择有误提示重新输入*/ {

if (stat_choice == 0) /*根据选择0进行统计*/ {

desc_stu(stu, count, stat_choice); stat_stu(stu, count, stat_choice); }

else if (stat_choice == 1) /*根据选择1进行统计*/ {

desc_stu(stu, count, stat_choice); stat_stu(stu, count, stat_choice); }

else if (stat_choice == 2) /*根据选择2进行统计*/ {

desc_stu(stu, count, stat_choice); stat_stu(stu, count, stat_choice); }

else if (stat_choice == 3) /*根据选择3进行统计*/ {

desc_stu(stu, count, stat_choice); stat_stu(stu, count, stat_choice); }

else if (stat_choice == 4) /*选择4则break循环退出*/ {

break; }

else /*其它错误选择提示重新输入*/ {

printf(\您的输入有误,请重新输入!\ } }

else /*若没成功接收用户选择则提示重新输入*/

{

printf(\您的输入有误,请重新输入!\ } }

stat_choice =getchar(); //每次循环结束stat_choice归0

printf(\ break;

case (4):

flag_find = find_stu(stu, count); //实现用户的查找功能

/*根据查找函数的返回值为用户显示查找的信息*/

if (flag_find > 0) /*返回值大于0,用户选择的是姓名查找方式*/ {

printf(\学号\\t\\t姓名\\t\\t数据库\\t算法\\tC语言\\t总成绩\\t平均成绩\\n\

output_stu(stu, count, flag_find-1);

18

printf(\-----------\ }

else if (flag_find == 0) /*查找失败返回失败信息*/ {

printf(\对不起没有找到您的成绩!\\n\ }

else /*返回值大于0,用户选择的是学号查找方式*/ {

printf(\学号\\t\\t姓名\\t\\t数据库\\t算法\\tC语言\\t总成绩\\t平均成绩\\n\

output_stu(stu, count, -flag_find-1);

printf(\-----------\ }

break; case (5):

flag_find = find_stu(stu, count); //实现用户的查找功能

/*根据查找函数的返回值为用户显示查找的信息*/

if (flag_find > 0) /*返回值大于0,用户选择的是姓名查找方式*/ {

printf(\学号\\t\\t姓名\\t\\t数据库\\t算法\\tC语言\\t总成绩\\t平均成绩\\n\

output_stu(stu, count, flag_find-1);

printf(\-----------\ }

else if (flag_find == 0) /*查找失败返回失败信息*/ {

printf(\对不起没有找到您的成绩!\\n\ }

else /*返回值大于0,用户选择的是学号查找方式*/ {

printf(\学号\\t\\t姓名\\t\\t数据库\\t算法\\tC语言\\t总成绩\\t平均成绩\\n\

output_stu(stu, count, -flag_find-1);

printf(\-----------\ }

if (flag_find != 0) /*查找成功的情况下用户可选择修改或删除操作*/ {

fflush(stdin);

man_choice = getchar(); /*接收用户选择是否进行下一步操作*/

while (man_choice) /*判断用户的选择*/ {

printf(\修改\\n\ printf(\删除\\n\ printf(\退出\\n\

printf(\请选择您的操作\

19


(桂电)学生成绩管理系统(论文加源代码) 数据结构与算法课设(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学生理想信念教育计划 - 小学教育 - 教育专区

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: