学生信息管理系统课程设计

/**************************************************************************************************************************************
*版权所有(C)2017.安凯
*文件名称:student.c
*文件标识:无
*内容摘要:对于学生的各项信心输入输出等
*其他说明:无
*作者:安凯
*完成日期:20171220
***************************************************************************************************************************************
#include <windows.h>
#include <malloc.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
#include "student.h"
LinkList *L=NULL;
/******************************************/
//这些变量用于输入学生相关的信息
char nam[10];//名字
char nu[10];//学号
char s;//性别
int ag;//年龄
char ph[10];//号码
int sc;//成绩
int wf;//出生年月
int bal;//地址


/*********************************************************
* 功能描述: 功能菜单
* 输入描述: 无
* 输出描述: 无
* 返回值  : 无
* 其它说明: 根据菜单选择相应的操作
************************************************************/
void menu()//功能菜单
{


    printf("                                                              \n");
    printf("                学生信息管理系统                              \n");
    printf("                                                              \n");
    printf("               0、 退出系统                                   \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("                                                              \n");

    return ;
}
/*********************************************************
* 功能描述: 执行操作
* 输入描述: 要进行的操作数字
* 输出描述: 相应的函数执行情况
* 返回值  : 无
* 其它说明: 无
************************************************************/
void carry()//执行阶段
{
    LinkList *L;
    InitList(L);//初始化链表
    int choose;
    while(1)
    {
        printf("请输入您要选择的功能键:\n");
        menu();//功能菜单
        scanf("%d",&choose);
        switch(choose)
        {
        case 0://退出系统
            printf("谢谢使用!欢迎下次光临");
            break;
        case 1://增加学生信息
            addstu(L);//增加新的学生
            break;
        case 2://删除所有学生信息
            deletestu(L);//删除学生
            break;
        case 3://改变个学生的信息
            changestu(L);//改变学生信息
            break;
        case 4://查找某个学生的信息
            findstu(L);//按学号查找学生并输出该生信息
            break;

        case 5://输出所有学生的信息
            display(L);
            break;
        default:
            printf("请输入正确的选择\n");
            break;
        }
    }
}
/*********************************************************
* 功能描述: 初始化链表
* 输入描述: 无
* 输出描述: 无
* 返回值  : 无
* 其它说明: 头结点本无信息,在这里给头结点附相应的值是为了读取文件那不读入头结点的内容
************************************************************/
void InitList( LinkList *&L)//初始化链表
{
    L=(LinkList *)malloc(sizeof(LinkList));
    strcpy(L->data.number,"xx");//把后者的内容拷贝到前者中
    strcpy(L->data.name,"xx");//把后者的内容拷贝到前者中
    L->data.sex=0;
    L->data.age=0;
    strcpy(L->data.phone,"xx");//把后者的内容拷贝到前者中
    L->data.score=0;
    L->data.wangfei=0;
    L->data.banlance=0;
    L->next=NULL;
}
/*********************************************************
* 功能描述: 插入新的节点
* 输入描述: 无
* 输出描述: 无
* 返回值  : 无
* 其它说明: 尾插法
************************************************************/
void ListInsert(LinkList *&L,LinkList *p)//插入新的节点
{
    LinkList *q=NULL;
    q=L;
    if(q->next==NULL)
    {
        q->next=p;
        p->next=NULL;
    }
    else
    {
        p->next=q->next;
        q->next=p;
    }
}
/*********************************************************
* 功能描述: 增加新的学生
* 输入描述: 新增的学生相关信息
* 输出描述: 此生存在会输出"该生已存在"
* 返回值  : 无
* 其它说明:
************************************************************/
void addstu(LinkList *&L)//增加新的学生
{

    printf("请输入学生的信息:\n");
    printf("学号:");
    scanf("%s",nu);
    printf("%s\n",nu) ;
    //判断
    LinkList *q=L->next;
    while(q!=NULL )
    {
        if(strcmp(q->data.number,nu)==0)
        {
            printf("该生已存在\n");
            break;
        }
        q=q->next;
    }
    if(q==NULL)
    {
        LinkList *p;
        InitList(p);
        strcpy(p->data.number,nu);//把后者的内容拷贝到前者中
        printf("姓名:") ;
        scanf("%s",nam) ;
        strcpy(p->data.name,nam);//把后者的内容拷贝到前者中
        printf("性别:(w为男 m为女)");
        scanf(" %c",&s);
        p->data.sex=s;
        printf("年龄:");
        scanf("%d",&ag);
        p->data.age=ag;
        printf("总成绩:");
        scanf("%d",&sc);
        p->data.score=sc;
        printf("出生年月:");
        scanf("%d",&wf);
        p->data.wangfei=wf;
        printf("地址:");
        scanf("%d",&bal);
        p->data.banlance=bal;
        printf("电话号码:");
        scanf("%s",ph);
        strcpy(p->data.phone,ph);//把后者的内容拷贝到前者中
        ListInsert(L,p);
        saveStuDentFile(L);//保存学生信息到文件
    }
}
/*********************************************************
* 功能描述: 删除学生
* 输入描述: 要删除学生的学号
* 输出描述: 此生不存在时会输出“此生不存在” 链表本身为空时会输出"还没有学生信息请增加学生信息"
* 返回值  : 无
* 其它说明:
************************************************************/
void deletestu(LinkList *L)//删除某个学生
{

    printf("请输入您要删除的学生的学号:");
    scanf("%s",nu);
    LinkList *p,*pre;
    if(L->next==NULL)
    {
        printf("还没有学生信息,请增加学生信息\n");
        return;
    }
    pre=L;
    p=pre->next;
    int judge=0;
    while(p)
    {
        if(strcmp(p->data.number,nu)==0)
        {
            judge=1;
            pre->next =p->next;
            free(p);
            p=NULL;
            printf("删除学生成功\n");
                saveStuDentFile(L);//保存学生信息到文件
            break;
        }
        pre=p;
        p=p->next;
    }
    if(judge==0)
        printf("该生不存在\n");
}
/*********************************************************
* 功能描述: 修改学生信息
* 输入描述: 要修改学生的学号
* 输出描述: 此生不存在时会输出“此生不存在” 存在会输出相应的修改信息的语句
* 返回值  : 无
* 其它说明:
************************************************************/
void changestu(LinkList *L)//改变学生信息
{
    int judge=1;
    printf("请输入您要修改学生的学号:\n");
    scanf("%s",nu);
    LinkList *q=L->next;
    while(q!=NULL )
    {
        if(strcmp(q->data.number,nu)==0)
        {
            judge=0;
            printf("请输入您要修改的信息选项:1.姓名 2. 电话号码 3. 总成绩  4.年龄   \n");
            int n;
            scanf("%d",&n);
            switch(n)
            {
            case 1:
                printf("请输入您要修改的名字:");
                scanf("%s",nam);
                printf("修改的名字为:%s\n",nam);
                strcpy(q->data.name,nam);//把后者的内容拷贝到前者中
                printf("修改名字成功!\n");
               saveStuDentFile(L);//保存学生信息到文件
                break;
            case 2:
                printf("请输入您要修改的电话号码:");
                scanf("%s",ph);
                printf("修改的电话号码为:%s\n",ph);
                strcpy(q->data.phone,ph);//把后者的内容拷贝到前者中
                printf("修改电话号码成功!\n");
               saveStuDentFile(L);//保存学生信息到文件
                break;
            case 3:
                printf("请输入您要修改的总成绩");
                scanf("%d",&sc);
                printf("修改的总成绩为:%d\n",sc);
                q->data.score=sc;
                printf("修改总成绩成功!\n");
                saveStuDentFile(L);//保存学生信息到文件
                break;
            case 4:
                printf("请输入您要修改的年龄:");
                scanf("%d",&ag);
                printf("修改的年龄为:%d\n",ag);
                q->data.age=ag;
                printf("修改年龄成功!\n");
             saveStuDentFile(L);//保存学生信息到文件
                break;
            default :
                printf("请输入正确的选项\n");
                break;
            }
        }
        q=q->next;
    }
    if(judge==1)
    {
        printf("该生不存在\n");
    }

}
/*********************************************************
* 功能描述: 查找学生信息
* 输入描述: 要查找学生的学号
* 输出描述: 此生不存在时会输出“此生不存在” 存在会输出该生的相应修改信息
* 返回值  : 无
* 其它说明:
************************************************************/
void findstu(LinkList *L)//按学号查找学生并输出该生信息
{
    printf("请输入您要查找的学生的学号:");
    scanf("%s",nu);
    LinkList *q=L->next;
    while(q!=NULL )
    {
        if(strcmp(q->data.number,nu)==0)
        {
            printf("姓名:%s\n",q->data.name);
            printf("学号:%s\n",q->data.number);
            printf("性别:%c\n",q->data.sex);
            printf("年龄:%d\n",q->data.age);
            printf("电话号码:%s\n",q->data.phone);
            printf("总成绩:%d\n",q->data.score);
            printf("出生年月:%d\n",q->data.wangfei);
            printf("地址:%d\n",q->data.banlance);
            break;
        }
        q=q->next;
    }
    if(q==NULL)
        printf("该生不存在\n");
}
/*********************************************************
* 功能描述: 浏览全部学生信息
* 输入描述:
* 输出描述:  不存在学生时会输出"还没有学生信息,请增加学生信息" 不然就输出所有学生信息
* 返回值  : 无
* 其它说明:
************************************************************/
void display(LinkList *&L)//浏览全部学生信息
{
    LinkList *q=L->next;
    if(q==NULL)
    {
        printf("还没有学生信息,请增加学生信息\n");
        return;
    }
    while(q)
    {

        printf(" 学号:%s 名字:%s 年龄:%d 性别:%c 电话号码:%s  总成绩:%d  出生年月: %d  地址:%d \n",q->data.number,q->data.name,q->data.age,q->data.sex,
               q->data.phone,q->data.score,q->data.wangfei,q->data.banlance);
        q=q->next;
    }
}
void saveStuDentFile(LinkList * &L)//保存学生信息到文件
{
    FILE *fp;
    LinkList *p=L->next;
    if((fp=fopen("student.txt","w"))==NULL)// 以可写的方式打开当前目录下的.txt
    {
        printf("Can not open the file,press any key exit!");
        exit(1);
    }
    while(p)
    {

        fprintf(fp,"%s  %s  %c  %d  %s  %d  %d  %d\n",p->data.number,p->data.name,p->data.sex,p->data.age,p->data.phone,p->data.score,p->data.wangfei,p->data.banlance);
        p=p->next;
    }
    fclose(fp);
}










#ifndef STUDENT_H_INCLUDED
#define STUDENT_H_INCLUDED



#endif // STUDENT_H_INCLUDED
#ifndef SHTUDENT_H_INCLUDED
#define SHTUDENT_H_INCLUDED
#include <stdio.h>
typedef struct student
{
 char name[10];
 char number[10];
 char sex;
int age;
 char phone[10];
int score;
intwangfei;
intbanlance;
}stu;
typedef struct LNode
{
stu data;

    struct LNode *next;

}LinkList;
typedef struct manage
{
   char zhanghao[10];
   char password[10];

}mag;

void InitList(LinkList *&L);//初始化链表
void ListInsert(LinkList *&L,LinkList *P);//插入新的节点
void menu();//功能菜单
void addstu(LinkList *&L);//增加新的学生
void deletestu(LinkList *L);//删除学生
void changestu(LinkList *L);//改变学生信息
void findstu(LinkList *L);//按学号查找学生并输出该生信息
void rechange(LinkList *L);//输入学号进行充值功能
void paixu(LinkList *L);//按成绩排序
void display(LinkList *&L);//浏览全部学生信息
void saveStuDentFile(LinkList *&L);//保存学生信息到文件
void welocome();//首界面
void wel1();//管理员登陆界面
void carry();//执行阶段


#endif // SHTUDENT_H_INCLUDED














#include <iostream>
#include <stdio.h>
#include "student.h"
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>

using namespace std;
intmain()
{
system("cls");///清屏
mag a;


carry();//执行阶段

return 0;

}








/


  • 11
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
摘要 现在高校的学生信息管理趋向于复杂化和多元化,随着计算机的广泛应用,越来越多的高校均采用了计算机化的管理模式。查询、修改、录入、删除等基本操作都采用了计算机的数据库技术。比起以前使用卡片的方法有了很大的进步,方便管理,易于更新,极大的方便了学生信息管理工作。 关键词:学生信息;数据库; 系统维护 Abstract:The management of the student of the university of now information trends to complicate and pluralism, with the wide application of the computer, more and more universities have adopted the management mode of computerization。Have inquired about, revised, input, deleted etc. and operated and adopted the database technology of the computer basically. Using the method of the card to been greatly improved compared with before, it is convenient to manage, easy to upgrade, the great management of facilitating student's information. Key words: system maintain, database 一、引言 1.1介绍本课题的目的和意义 学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段 1.2在国内外发展概况及存在问题 一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 本课题采用ASP语言,一方面适应大众的需求,另一方面在系统设计方面更加流畅,方便。 因此,开发这样一套管理软件是很有必要的事情。。 1.3本课题应解决的主要问题、指导思想及应达到的技术要求 1能够实现对数据库中的基本信息的各种查询和维护(增、删、改),同时注意用户的权限。 2. 能够生成并打印各种报表。如学生基本信息表、学生点名薄.可完成教师成绩录入及打印,学生成绩查询。 3.具有统计功能,如计算各班的英语四六级通过率等。 4.系统相关的功能,如系统维护,界面友好,用户操作简单方便。 5.系统运行模式是基于B/S体系结构。 二、系统概述 2.1系统设计背景 随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增加。面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。 2.2系统的功能简介

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值