成绩管理系统c语言程序设计,学生成绩管理系统(C语言)

C语言课程设计报告

一、实践的目的和要求

加深对《C语言程序设计》课程所学知识的理解,进一步巩固C语言讲法规则。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力

二、实践内容

在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);函数的使用,结构体和文件的操作等。

三、设计说明

学生成绩管理系统

建立一个学生成绩管理系统。

程序运行时显示一个简单的菜单。

例如:

1.信息输入(INPUT)

2.信息的删除与修改

3.显示当前学生成绩的记录信息,若无记录,则给出提示信息

4.学生或者各个班级各门课程总分、平均分、最低分、最高分等的统计

5.可以按照班级、姓名、性别、分数(可以有区间)等方式进行查询

6.具有良好的交互功能

7.能使用图形函数进行简单的界面设计

8.具有良好的纠错功能

9.退出等等

程序:

#include      /*文件操作(读文件)*/

#include

#include     /*其它说明*/

#include     /*字符串函数*/

#include        /*内存操作函数*/

#include /*屏幕操作函数*/

#include      /*字符操作函数*/

#include      /*动态地址分配函数*/

#include

#define LEN sizeof(STUDENT)

#define N   3

typedef struct stu     /*定义结构体数组用于缓存数据*/

{char grade[6];

char name[5];

char sex[4] ;

int score[N];

int sum;

float average;

int order;

struct stu *next;

}STUDENT;

/*以下是函数原型*/

STUDENT  *init();      /*初始化函数*/

STUDENT *create();   /*创建链表*/

STUDENT *delete(STUDENT *head);   /*删除记录*/

STUDENT *sort(STUDENT *head);      /*按平均分排序*/

void print(STUDENT *head);   /* 显示所有记录*/

void name(STUDENT *head);    /*姓名查找*/

void grade(STUDENT *head);    /*班级查找*/

void sex(STUDENT *head);    /*性别查找*/

void average(STUDENT *head);     /*按平均分查找在那个分数里*/

STUDENT *statistciam(STUDENT *head);/*统计记录*/

void save(STUDENT *head);     /*保存文件*/

STUDENT *load();        /*读文件*/

STUDENT *insert(STUDENT *head,STUDENT *new);   /*插入记录*/

int menu_select();           /*菜单函数*/

int menu_search();          /*查询菜单*/

void code(); /*密码验证*/

/*主函数界面*/

main()

{

int i,j,n,m;

STUDENT *head,new;  /*链表定义头指针*/

randomize();/*开启扬声器,发出声音*/

while(!bioskey(1))

{

j=rand()*5000;

sound(j);

delay(10);

}

nosound();/*关闭声音文件*/

code();/*密码输入*/

clrscr();            /*清屏*/

for(;;)             /*无限循环*/

{

switch(menu_select())     /*调用主菜单函数,返回值整数作开关语句的条件*/

{                     /*值不同,执行的函数不同,break 不能省略*/

case 0:head=init();break;   /*执行初始化*/

case 1:head=create();break; /*创建链表*/

case 2:head=delete(head);break; /*删除记录*/

case 3:print(head);break;   /*显示全部记录*/

case 4:

loop:

printf("sreach:\n 1.grade\n 2.name\n 3.sex\n 4.average\n 5.quit\n Enter you choice(0~5):");

scanf("%d",&n);

switch(n)

{

case 1:grade(head);

goto loop;

case 2:name(head);

goto loop;

case 3:sex(head);

goto loop;

case 4:average(head);

goto loop;

case 5: break;

}

break;

/*查找记录*/

case 5:sort(head);break;  /*排序*/

case 6:save(head);break;  /*保存文件*/

case 7:head=load(); break;  /*读文件*/

case 8:head=insert(head,&new);  break; /*插入记录*/

case 9:head=statistciam(head);  break; /*统计记录*/

case 10:exit(0);       /*如菜单返回值为10程序结束*/

}

}

}

/*密码输入*/

void code()

{

int i;

char number[20];

const w=10;

printf("\n\t\t\t--------------------------------------------------");

printf("\n\t\t\tBecause this system is busywork,Code is: 123456");

printf("\n\t\t\t----------------------------------------------- ");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n\t*********************************");

printf("\n\t    Please Enter The Code  :     ");

printf("\n\t*********************************\n");

scanf("%s",number);

printf("\n\t\t\tExamining!");

for(i=0;i<=w;i++)

{

printf("*");

}

if(strcmp(number,"123456")==0)

{

printf("\n\t\t\tCode is right!press any key enter menu......");

clrscr();

}

else

{

printf("\n\t\t\tCode is wrong!Please enter again : ");

clrscr();

code();

}

}

/*初始化函数*/

STUDENT *init()

{

return NULL;    /*返回空指针*/

}

/*菜单选择函数*/

menu_select()

{

char *menu[]={"********************************************",

"              Welcome to          ",

"   The student score manage system!",

"*****************MENU***********************",  /*定义菜单字符串数组*/

"      0. Init list",    /*初始化*/

"      1. Input list",   /*输入记录*/

"      2. Delete a record from list",  /*从表中删除记录*/

"      3. Print list ",       /*显示当前学生成绩的记录信息*/

"      4. Search record ",   /*查询学生记录*/

"      5. Sort to make new a file ", /*排序*/

"      6. Save the file",          /*将单链表中记录保存到文件中*/

"      7. Load the file",        /*从文件中读入记录*/

"      8. insert record to list ",   /*插入记录到表中*/

"      9. statistciam record to list ",   /*统计记录到表中*/

"      10. Quit",                    /*退出*/

"********************************************",

"     Producer:ZengWenyan ZhaoJingxiu        ",

"     Faculty Adviser:XiaoFengrui          ",};              /*退出*/

char s[3];       /*以字符形式保存选择号*/

int c,i;        /*定义整形变量*/

textbackground(MAGENTA);   /*设置背景颜色为粉色*/

gotoxy(1,50);        /*移动光标*/

printf("press any key enter menu......\n");   /*压任一键进入主菜单*/

getch();                       /*输入任一键*/

clrscr();                     /*

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值