学生成绩管理系统设计

   

学生成绩管理系统设计

    一问题描述

    某班有30个学生,每个学生的只要信息包含学号、姓名、各科(计算机、英语、数学等)成绩。要求通过计算机对这些数据信息进行管理,设计出一个学生成绩管理系统。

二实验目的

1、掌握线性表的基本运算(插入、删除、修改等)。

2、进一步学习C语言程序设计方法与技巧。

三实验内容与要求

学生信息表如下

学号

姓名

计算机

英语

数学

98032001

李华

85

65

97

98032002

王平

87

70

90

98032003

张小娟

76

76

88

98032004

赵静

95

85

76

……

……

……

……

……

98032030

王海

89

90

78

1、 要求同学们首先建立学生的姓名、学号、课程表,将每个学生的姓名、学号录入,成绩下来后根据学号将录入每人的成绩;

2、 班上若有退学或留级的,将删除该学生的信息;

3、 若有新插入本班的则将该学生的信息加到该表中;

4、 日常可能由于各种原因需要浏览所有学生的成绩信息,也有可能修改学生信息。

5、 以上所有的功能都是随机的。需要设计一个合理的输入输出界面或者功能菜单。

四. 对系统的评价

该学生成绩管理系统的亮点在于具有足够的合理性检验,对用户可能的错误输入进行判断和检验,并给出提示,很大程度上避免了用户由于操作失误造成的错误。各个模块之间的关系通过设置标志位作为条件,使整个系统显得紧凑而不失灵活性。在编程的始终,尽可能的使界面人性化。在这里感谢我的朋友对系统进行的测试,对系统的改进起了很大作用。

但是,还是有缺点的,很大一部分原因是时间问题,各个模块没有在细分,没有将数据存盘,界面怎么做也没有VB的界面华丽,其实不是不可以,但水平有限,不过预见在不久的将来有所成。

附录

/*

♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀

♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂

 ● Date  : 2011-11-05   

 ● Author :laodaren

 ● Description  : This program privide a plat to keep memory of the student's preformance in school subject.

 ● subscribe: 该系统设有初始密码:需要输入正确密码(asdf)才可进入该系统进行操作。  

 

 ● Introduction:初始化——将每个学生的姓名、学号录入。

 ●               录入成绩——成绩下来后根据学号将录入每人的成绩

 ●               插    入——若有新插入本班的则将该学生的信息加到该表中

 ●               删    除——若有新插入本班的则将该学生的信息添加  

 ●               修    改——成绩录入错误可以进行修改修改    

 ●               显    示——按位置浏览学生信息   

 ●               汇    总——计算平均分 和 单科排名    

 ●               退    出——退出系统  

♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀♀

♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂♂

*/

//----------------包含头文件---------------------------------

//#include "stdafx.h"

#include"stdio.h"

#include "stdlib.h"

#include "string.h"

//=----------------定义常量-----------------------------------

#define MaxLen  100 //======定义一个常量来约束线性表的存储空间

//----------------自定义数据类型-----------------------------

typedef struct student{//======定义一个结构体变量类型的变量“型elemtype

    char name[15],no[15];

    int math,eng,comp;

}elemtype;

typedef struct{      //======定义一个顺序存储结构的线性表 “型sqList存储学生信息

    elemtype stu[MaxLen];  // 表中元素data[i]elemtype“型的结构体

    int length;            //线性表的实际长度

}sqList;

//-----------------全局变量定义-------------------------------

int init_flag=0;

math_input_flag=0;//math输入完毕标志

eng_input_flag=0;//eng输入完毕标志

comp_input_flag=0;//comp输入完毕标志

math_sort_flag=0;

eng_sort_flag=0;

comp_sort_flag=0;

//--------------变量定义-------------------------------------

sqList Stu_L; 

//--------------基本函数声明---------------------------------

//1初始化顺序表initlist(Stu_L)

//2求线性表长度Getlen(Stu_L)

//3按序号取元素Getelem(Stu_L,i)

//4查找运算locate(Stu_L,x)//两种不同的查找位置方式

int Locate(sqList *Stu_L,char t[10]);

int Locate1(sqList *Stu_L,char t[10]);

//5顺序表的插入算法inselem(Stu_L,i,x)

void Inselem(sqList *Stu_L,int position,elemtype x);

//6顺序表的删除运算Delelem(Stu_L,i)

int Delete_L(sqList *Stu_L,int pos);

//-------------函数声明---------------------------------------

void Init_Fcn(void);//初始化 

void Input_information(void);

void Add_Student(void);

void Delete_Student(void);

void Show_Information(void);

int Delete_L(sqList *Stu_L,int pos);

void Modify_Information(void);

void Huizong(void);

void Average(void);

void Sort(void);

//###################################################### main

int main(void)

{

int sel,i=4;

char code[8];

printf("\n>>请输入密码>> ");

scanf("%s",&code);i--;

while(strcmp(code,"asdf")!=0)

{

if(i<=0)

{

printf("\n!警告:您输入的次数超过限定次数,系统将自动记录此信息,并退出\n");

return 0;

}

printf("\nXXXXX密码错误!!!!,您还有%d次机会 请输入密码>> ",i);//密码验证  

scanf("%s",&code);i--;

getchar();

}

do{

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

        printf("*  主菜单                                             #\n");

    printf("*     ◎ <1>-----------→ 初始化    (输入学生人数)    #\n");

        printf("*     ● <2>-----------→ 录入成绩  (录入单科成绩)  #\n");

        printf("*     ◎ 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值