精华内容
下载资源
问答
  • c语言课程设计,学生信息管理系统

    万次阅读 多人点赞 2019-03-06 21:20:50
    学生信息管理系统 题目: 新生入学,需要管理学生信息,要求如下: 能够通过键盘进行输入学生的信息,比如:学生姓名,学号,性别,班级,专业,入学成绩; 能够通过键盘输入要录入的学生的个数; 能够...

    C语言课程设计(上)

                                                 学生信息管理系统
    

    题目:
    新生入学,需要管理学生信息,要求如下:

    1. 能够通过键盘进行输入学生的信息,比如:学生姓名,学号,性别,班级,专业,入学成绩;
    2. 能够通过键盘输入要录入的学生的个数;
    3. 能够增加学生;
    4. 能够删除某一个或多个学生的所有信息;
    5. 能够进行查找某个学生的所有信息;
    6. 能够进行修改学生的信息;
    7. 能够将学生的信息保存到文件中,并且可以将文件中的学生信息读出;
    8. 能够实现注册账号,密码,并且能够实现登录…
      代码如下;
    #include<stdio.h>
    #include<stdlib.h>
    #include<windows.h>
    #include<string.h> 
    #include<conio.h>
    #include<time.h>
    struct student//先定义一个结构体数组 
    {
     int num; 
     char name[20]; 
     int score;
     int banji;
     char xibie[20]; 
     struct student *next;//一个结构体指针 
    };
    void insert(struct student *head)//输入学生信息 
    {
     FILE *fp;//将学生信息直接写到文件中
     int n;
     fp=fopen("D:\\wenjian.txt","w");
     struct student *l=head;
     struct student *p=head->next;//使用链表## 标题
     printf("请输入你要输入的学生的个数:");
     scanf("%d",&n);
     printf("\n");
     for(int i=1;i<=n;i++)
     {
      {
      struct student *p=(struct student *)malloc(sizeof(struct student));
      printf("请输入该生的学号:");
      scanf("%d",&p->num);
         printf("请输入该生的姓名:");
      scanf("%s",p->name);
      printf("请输入该生的成绩:");
      scanf("%d",&p->score);
      printf("请输入该生的班级:"); 
      scanf("%d",&p->banji);
      printf("请输入该生的系别:");
      scanf("%s",p->xibie);
      printf("\n\n");   
      p->next=NULL;
      l->next=p;
      l=l->next;
      }
      p=head->next;//返回头 
      {
       fprintf(fp,"%d\t%s\t%d\t%d\t%s\t",l->num,l->name,l->score,l->banji,l->xibie);
           fputs("\n",fp);
      }  
     }
     fclose(fp);
     system("cls");
     printf("     输入完成!\n\n");
    }
    void add(struct student *head)//添加学生信息 
    {
     FILE *fp;
     int n;
     fp=fopen("D:\\wenjian.txt","a+");
     struct student *l=head;
     while(l->next)
     l=l->next;
     printf("请输入你要添加的学生的个数:");
     scanf("%d",&n);
     printf("\n");
      for(int i=1;i<=n;i++)
      {
         struct student *p=(struct student *)malloc(sizeof(struct student));
         printf("请输入该生的学号:");
         scanf("%d",&p->num);
         printf("请输入该生的姓名:");
         scanf("%s",p->name);
         printf("请输入该生的成绩:");
         scanf("%d",&p->score);
         printf("请输入该生的班级:"); 
         scanf("%d",&p->banji);
         printf("请输入该生的系别:");
         scanf("%s",p->xibie);
         printf("\n\n");   
         p->next=NULL;
         l->next=p;
         l=l->next;
      }
     l=head->next;   
     fclose(fp);
     fp=fopen("D:\\wenjian.txt","w");
     
     while(l!=NULL)
     {
      fprintf(fp,"%d\t%s\t%d\t%d\t%s\t",l->num,l->name,l->score,l->banji,l->xibie);
       fputs("\n",fp);
         l=l->next;
        }
        fclose(fp);
     system("cls");
     printf("     添加完成!\n\n");
    }
    

    项目截图:
    1

    2

    3

    4
    代码过多就不继续放在上面了,有需要可以联系我,谢谢!1787798327

    展开全文
  • 数据库课程设计 ——酒店管理系统

    万次阅读 多人点赞 2019-05-31 10:36:11
    (1)酒店管理系统用于满足酒店工作人员和管理人员的需求。 (2)酒店管理人员和工作人员可以为酒店房间加入入住和退房记录,并生成相应的报表用于查阅,确认和保存,酒店工作人员可以浏览、查询、统计、添加酒店...

    一、 需求分析

    1.软件需求

    (1)酒店管理系统用于满足酒店工作人员和管理人员的需求。
    (2)酒店管理人员和工作人员可以为酒店房间加入入住和退房记录,并生成相应的报表用于查阅,确认和保存,酒店工作人员可以浏览、查询、统计、添加酒店房间的入住离开信息。管理员可以查询房间信息、查询员工信息、更改房间信息、更改员工信息等。
    (3) 客户可以申请入住酒店,酒店工作人员需要对客户的姓名、性别、身份证号、房间号、入住时间、联系方式等信息进行记录,客户退房时进行退房记录。
    4、管理员和员工可以通过姓名、入住日期、身份证号、房间号、联系方式等信息查询客户入住和离开情况。
    从客户角度考虑业务流程如图1-1所示。
    在这里插入图片描述

                                                         图1-1 酒店管理业务流程图

    2.功能描述

    根据需求分析,得到系统的功能需求。作为一个酒店管理系统,应满足入住办理、入住信息查询、房间查询、退房办理等功能,其功能要求如下:
    (1)入住办理。客户凭借会员卡入住,每当有客人需要入住时进行办理程序。工作人员需要记录客人的姓名、性别、身份证号、入住时间、联系方式等。若办理入住的房间不为空则不允许办理入住。
    (2)入住信息查询。工作人员可以对已入住的客户进行信息查询。需要支持精准查询,如通过房间号查询、通过姓名查询、通过入住日期查询、通过联系方式查询等,也要支持模糊查询,如通过姓氏查询、通过入住年月查询、通过性别查询等。
    (3)房间查询。管理员可以查询某个房间是否为空以及历史入住/退房信息等。可以查询的信息有:房间类型、房间价格、房间当前是否为空等,若当前房间已被入住,则需要额外显示入住人姓名、入住人联系方式、入住人入住时间等信息。
    (4)退房办理。当客户退房时进行退房办理。工作人员需要记录入住人退房时间、罚款等信息。若退房的房间为空,则不允许办理。
    (5)员工查询。 管理员可以对酒店员工信息进行查询,可查询员工姓名、性别、联系方式等。
    (6)更改房间信息。 管理员可以更改房间信息,如房间类型、价格、增加房间、删除房间等。
    (7)更改员工信息。管理员可以更改员工信息,如姓名、性别、职位、增加员工、删除员工等。

    3.数据流图和数据字典

    Ⅰ.数据流图
    (1)顶层数据流图
    通过对用户需求进行分析并对其进行归纳和总结,得到用户的顶层数据流图,如图1-2所示。
    在这里插入图片描述
                                                                            图1-2 顶层数据流图

    (2)对顶层数据从流图进行分解,形成第2层的数据流图,如图1-3所示。
    在这里插入图片描述

                                                                            图1-3 第二层数据流图
    第二层数据流图得到客户申请入住,客户申请退房,工作人员查询,管理员查询,管理员修改等业务的数据流程图,为进一步设计奠定基础。
    (3)第三层数据流图
    将第二层的数据流图中的每个业务进行分解,得到各业务的子数据流图,就形成第三层的数据流图。第三层数据流图分为入住申请,退房申请,工作人员查询,房间信息维护,员工信息维护。
    在这里插入图片描述
                                                                            图1-4 第三层数据流图(客户入住)

    1) 客户入住数据流图(图1-4)。客户入住数据流包括审核员工信息,审核入住信息,审核现有房间信息,修改房间信息/入住记录。
    2) 客户退房数据流图(图1-5)。客户退房数据流包括退房申请,退房超期处理,修改房间信息/退房记录。
    在这里插入图片描述
                                                                            1-5 第三层数据流图(客户退房)
    3) 工作人员查询业务流图(图1-6)。工作人员查询业务流包括入住记录查询,房间信息查询。
    在这里插入图片描述

                                                                         图1-6 第三层数据流图(工作人员查询业务)

    4) 管理员查询业务流图(图1-7)。管理员查询业务流包括入住记录查询,房间信息查询,员工信息查询。
    在这里插入图片描述
                                                                         图1-7 第三层数据流图(管理员查询)
    5) 管理员管理业务流图(图1-8)管理员管理业务流包括入住信息管理,房间信息管理,员工信息管理。
    在这里插入图片描述
                                                                         图1-8 第三层数据流图(管理员管理)

    Ⅱ.数据字典
    (1)数据项
    酒店管理系统的数据流图中,系统涉及的数据项具体内容如下所述。
    数据项:客户编号
    含义说明:唯一识别客户
    别名:编号
    类型:字符型
    长度:18
    取值范围:000000000000000001~999999999999999999

    数据项:客户姓名
    含义说明:客户的姓名
    别名:姓名
    类型:字符型
    长度:12

    数据项:客户性别
    含义说明:客户的性别
    别名:性别
    类型:字符型
    长度:1
    取值范围:男 或 女

    数据项:客户身份证号
    含义说明:客户的身份证号
    别名:身份证号
    类型:字符型
    长度:18
    取值范围:000000000000000001~999999999999999999

    数据项:客户类型
    含义说明:客户的会员卡类型
    别名:类型
    类型:字符型
    长度:10

    数据项:客户入住时间
    含义说明:客户的入住时间
    别名:入住时间
    类型:日期

    数据项:客户联系方式
    含义说明:客户的联系方式,如手机号
    别名:联系方式
    类型:字符型
    长度:11
    取值范围:00000000000~99999999999

    数据项:罚款金额
    含义说明:客户超期的罚款
    别名:罚金
    类型:数值型
    小数位数:1
    取值范围:0.1~9999.9

    其他数据项此处不再一一描述,如表1-1所示。
                                                                         表1-1 数据项列表
    在这里插入图片描述

    (2)数据结构
    数据结构:客户。
    含义说明:酒店管理系统的主题数据结构,定义一个入住客户的信息。
    组成:客户编号,客户姓名,客户性别,客户类别,客户身份证号,客户联系方式。

    数据结构:房间。
    含义说明:酒店管理系统的主体数据结构,定义一个房间的有关信息。
    组成:房间号,房间类型,房间价格。

    数据结构:员工。
    含义说明:酒店管理系统的主体数据结构,定义一个员工的有关信息。
    组成:员工编号,员工姓名,员工性别,员工身份证号,员工职位,员工工资,员工密码。

    数据结构:管理员。
    含义说明:酒店管理系统的主体数据结构,定义一个管理员的有关信息。
    组成:管理员编号,管理员姓名,管理员密码。

    数据结构:入住记录。
    含义说明:定义一个客户的入住有关信息。
    组成:入住编号,客户姓名,客户类型,客户入住时间,客户应退房时间,房间号,办理人。

    数据结构:退房记录。
    含义说明:定义一个客户的退房有关信息。
    组成:退房编号,客户姓名,客户类型,客户入住时间,客户退房时间,房间号,罚款金额,办理人。

    数据结构:客户类别。
    含义说明:定义一个客户分类有关的信息。
    组成:类别编号,类别名称,超时罚款金额,折扣。

    (3)处理逻辑描述
    处理逻辑描述如表1-2表示。
    在这里插入图片描述
                                                                         表1-2 处理逻辑列表

    二、 概念结构设计阶段

    1. 局部E-R图

    根据不同的对象,从第三层数据流图开始,分别设计各分E-R图。
    (1) 由图1-4第三层数据流图(客户入住)和图1-5第三层数据流图(客户退房)抽象出的分E-R图如图1-9所示。
    在这里插入图片描述
                                                                      图1-9 分E-R图1
    (2) 由图10-3 第二层数据的数据流图中抽象出客户注册的分E-R图如图1-10所示。
    在这里插入图片描述
                                                                      图1-10 分E-R图2

    (3)由图1-2的数据流图抽象出的分E-R图见图1-11、图1-12和图1-13。

    在这里插入图片描述

                      图1-11 分E-R图3                     图1-12 分E-R图4                                           图1-13 分E-R图5

    2. 整体E-R图

    合并各分E-R图,消除属性冲突、命名冲突和结构冲突等三类冲突,再消除不必要的冗余,得到系统初步E-R图。如图1-14所示。
    在这里插入图片描述
                                                                图1-14 系统初步E-R图

    系统E-R图各实体的属性如下:
    (1) 房间(room):房间号,房间类型,房间价格。
    (2) 客户(customer):客户编号,客户姓名,客户性别,客户身份证号,客户联系方式,办卡日期。
    (3) 员工(worker):员工编号,员工姓名,员工性别,员工身份证号,员工职位,员工工资,员工密码。
    (4) 管理员(manager):管理员编号,管理员姓名,管理员联系方式,管理员密码。
    (5) 客户类别(customer type):类别名称,折扣,超时罚款金额。
    各E-R图中联系的属性如下:
    (1) 入住记录(in history):入住编号,客户姓名,入住时间,应退房时间,客户类别,办理人。
    (2)退房记录(out history):退房编号,客户姓名,入住时间,退房时间,罚款,办理人。

    三、逻辑结构设计阶段

    1.E-R图向关系模式转换

    (1)生成关系模式
    客户类别和客户的联系是1:n,可以将它们之间的联系与n端实体客户合并;管理员与客户、员工、房间也是1:n,同样可以将其中的联系与n端实体合并,而客户与房间之间的入住和退房联系方式是n:m,将其联系转化称独立的关系模式。具体的基本E-R图向关系模式的转化如下所述。

    1. 房间:房间(房间号,房间类型,房间价格)。
    2. 客户:客户(客户编号,客户姓名,客户性别,客户身份证号,客户类别,客户联系方式,办证时间)。
    3. 员工:员工(员工编号,员工姓名,员工性别,员工身份证号,员工职位,员工工资,员工密码)。
    4. 管理员:管理员(管理员编号,管理员姓名,管理员密码)。
    5. 客户类别:客户类别(类别编号,类别名称,超时罚款金额,折扣)。
    6. 入住记录:入住记录(入住编号,客户姓名,客户类型,客户入住时间,客户应退房时间,房间号,办理人)。
    7. 退房记录:退房记录(退房编号,客户姓名,客户类型,客户入住时间,客户退房时间,房间号,罚款金额,办理人)。
      (2) 关系模式的优化
      关系模式room,customer,,manager,customer type,in history,out history不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到3NF 。但worker存在传递函数依赖,优化为员工(员工编号,员工姓名,员工性别,员工身份证号,员工职位,员工密码)。
      (3) 数据库模式的定义
      根据上述关系模式和转换原则,可得到数据库模式和用户子模式。为了方便理解和使用,表明和列名采用驼峰命名法,数据库的模式如表1-3~~表1-9所示,用户子模式如表1-10~1-14表所示。
                                                              表1-3 房间信息表
      在这里插入图片描述

                                                                    表1-4 客户信息表
    在这里插入图片描述

                                                                    表1-5 员工信息表
    在这里插入图片描述

                                                                    表1-6 管理员信息表

    在这里插入图片描述
                                                                    表1-7 客户类别表
    在这里插入图片描述
                                                                    表1-8 入住记录表
    在这里插入图片描述
                                                                    表1-9 退房记录表
    在这里插入图片描述
    (4) 用户子模式定义
    子模式是用户视图,根据用户需求,系统一共设计四个子模式。每个子模式的作用如表10-10所示。
                                                                    表10-10 子模式定义

    在这里插入图片描述

                                                                    表1-11 客户基本信息视图

    在这里插入图片描述
                                                                    表1-12 房间基本信息视图

    在这里插入图片描述
                                                                    表1-13 客户入住记录视图
    在这里插入图片描述

                                                                    表1-14 客户退房记录视图

    在这里插入图片描述

    2. 施加约束

    (1) 域约束
    域是属性可能具有的值的集合。域定义包括语义成分和物理成分,除了满足一定的物理成分外,还必须满足一定的语义要求。例如,性别的取值为字符型,宽度为2个字符.只要满足上述两个条件就满足物理要求。但是满足物理成分的数据不一定是有意义的。因此域还必须满足一定的语义要求。
    另一种约束类型为值是否为必填项,即值是否为空。对于某些值必须设计为必填项,才能确保数据有意义。例如客户的姓名必须为必填项。
    (2) 唯一性约束
    唯一性约束是约束的另一种类型。这种约束一班由DBMS来施加,因为它能创建数据结构来使唯一性检查更快地进行。为了达到这个目的,可以使用唯一性索引。
    在本系统中,客户编号,客户身份证号,员工编号等必须不重复,可通过为客户编号,客户身份证号,员工编号等分别创建唯一性索引,以实现唯一性索引。
    (3) 联系约束
    1) 参照完整性约束
    所有的参照完整性约束都限制在外键上。如关系模式入住记录:入住记录(入住编号,客户姓名,客户类型,客户入住时间,客户应退房时间,房间号,办理人)。
    客户姓名作为外键,约束说明它的值必须在客户信息表中存在,否则这条数据就没有意义。
    2) 联系基数
    联系基数约束来源于对象连接属性的基数设定。在本系统中,客户类型与客户是1:n的约束,因此一个用户一定与一个用户类型相联系,一个用户类型有多个用户。
    4. 业务规则约束
    业务规则约束是针对指定应用的逻辑和要求的,它们来源于使用数据库组织中的应用程序和策略。酒店管理应用中的业务规则是:
     房间的价格为0~99999
     性别的取值是‘男’或‘女’
     如果房间已订出就不能再被申请入住
     如果房间没有订出就不能申请退房
     如果入住超期,按天收取罚金
    由于业务规则是依赖于应用的,因此在SQL Server中,通过创建触发器来实现业务规则的校验和限制。

    四、数据库的建立

    1. 数据库存储结构

    将酒店管理系统的数据库名称设为HotelManagementLibrary,数据库只有一个数据文件和一个日志文件,保存在默认路径下。
    创建数据库命令为
    CREATE DATABASE HotelManagementLibrary
    为数据库中各基本表建立的索引如下所述。
    (1)基本表Room,Customer,Worker,Manager的主码RoomID,CustomerID,WorkerID,ManagerID的值唯一,且经常出现在连接、查询条件和操作中出现,建立唯一性索引。
    (2)基本表Room、Customer的属性RoomType和CustomerType经常在查询条件中出现,因此建立唯一性索引。
    (3)入住记录表InHistory和退房记录表OutHistory的属性CustomerName和RoomID经常在查询条件中出现,考虑建立索引。

    2.表和视图的创建

    (1)建立数据表
    1)客户信息表的建立

    CREATE TABLE Customer (
    	CustomerID nvarchar(10) PRIMARY KEY,
    	CustomerName nvarchar(10) NOT NULL,
    	CustomerSex nvarchar(2) DEFAULT '男' CHECK (CustomerSex = '男'
    	OR CustomerSex = '女'),
    	CustomerIDNumber nvarchar(18) NOT NULL,
    	CustomerType nvarchar(10) NOT NULL,
    	CustomerPhone nvarchar(11) NOT NULL,
    	CustomerCreateDate date NOT NULL,
    	FOREIGN KEY (CustomerType)
    		REFERENCES CustomerType (TypeName)
    );
    

    2) 员工信息表的建立

    CREATE TABLE Worker (
    	WorkerID nvarchar(10) PRIMARY KEY,
    	WorkerName nvarchar(10) NOT NULL,
    	WorkerSex nvarchar(2) DEFAULT '男' CHECK (WorkerSex = '男'
    	OR WorkerSex = '女'),
    	WorkerIDNumber nvarchar(18) NOT NULL,
    	WorkerPosition nvarchar(10) NOT NULL,
    	WorkerPassword nvarchar(20) NOT NULL
    );
    

    3)房间信息表的建立

    CREATE TABLE Room (
    	RoomID nvarchar(10) PRIMARY KEY,
    	RoomType nvarchar(10) NOT NULL,
    	RoomPrice float NOT NULL,
    	RoomState nvarchar(10) DEFAULT '未入住' CHECK (RoomState = '已入住'
    	OR RoomState = '未入住')
    );
    

    4)管理员信息表的建立

    CREATE TABLE Manager (
    	ManagerID nvarchar(10) PRIMARY KEY,
    	ManagerName nvarchar(10) NOT NULL,
    	ManagerPassword nvarchar(20) NOT NULL
    );
    

    5) 客户类型表的建立

    CREATE TABLE CustomerType (
    	TypeName nvarchar(10) PRIMARY KEY,
    	Discount float NOT NULL,
    	Fine float NOT NULL
    );
    

    6) 入住记录表的建立

    CREATE TABLE InHistory (
    	InID nvarchar(10) PRIMARY KEY,
    	CustomerID nvarchar(10) NOT NULL,
    	CustomerType nvarchar(10) NOT NULL,
    	CustomerInDate date NOT NULL,
    	CustomerOutDate date NOT NULL,
    	RoomID nvarchar(10) NOT NULL,
    	Worker nvarchar(10) NOT NULL,
    	FOREIGN KEY (CustomerID)
    		REFERENCES Customer (CustomerID),
    	FOREIGN KEY (CustomerType)
    		REFERENCES CustomerType (TypeName),
    	FOREIGN KEY (RoomID)
    		REFERENCES Room (RoomID),
    	FOREIGN KEY (Worker)
    		REFERENCES Worker (WorkerID)
    );
    

    7)退房记录表的建立

    CREATE TABLE OutHistory (
    	OutID nvarchar(10) PRIMARY KEY,
    	CustomerID nvarchar(10) NOT NULL,
    	CustomerType nvarchar(10) NOT NULL,
    	CustomerInDate nvarchar(10) NOT NULL,
    	CustomerOutDate nvarchar(10) NOT NULL,
    	RoomID nvarchar(10) NOT NULL,
    	Worker nvarchar(10) NOT NULL,
    	FOREIGN KEY (CustomerID)
    		REFERENCES Customer (CustomerID),
    	FOREIGN KEY (CustomerType)
    		REFERENCES CustomerType (TypeName),
    	FOREIGN KEY (RoomID)
    		REFERENCES Room (RoomID),
    	FOREIGN KEY (Worker)
    		REFERENCES Worker (WorkerID)
    );
    

    (2)建立视图
    1)客户基本信息视图
    用于查询客户基本信息的视图定义如下:

    CREATE VIEW CustomerView (
    	客户编号, 
    	客户姓名, 
    	客户性别, 
    	客户类型, 
    	客户联系方式, 
    	办卡时间
    )
    AS
    SELECT CustomerID, CustomerName, CustomerSex, CustomerType, CustomerPhone
    	, CustomerCreateDate
    FROM Customer
    

    2)房间基本信息视图
    用于查询房间基本信息的视图定义如下:

    CREATE VIEW RoomView (
    	房间号, 
    	房间类型, 
    	房间价格
    )
    AS
    SELECT RoomID, RoomType, RoomPrice
    FROM Room
    

    3)入住记录基本信息视图
    用于查询入住记录的视图定义如下:

    CREATE VIEW InHistoryView (
    	入住编号, 
    	客户编号, 
    	客户类型, 
    	客户入住时间, 
    	客户应退房时间, 
    	房间号
    )
    AS
    SELECT InID, CustomerID, CustomerType, CustomerInDate, CustomerOutDate
    	, RoomID
    FROM InHistory
    

    4)退房记录基本信息视图
    用于查询退房记录的视图定义如下:

    CREATE VIEW OutHistoryView (
    	退房编号, 
    	客户编号, 
    	客户类型, 
    	客户入住时间, 
    	客户退房时间, 
    	房间号, 
    	超时罚款
    )
    AS
    SELECT OutID, CustomerID, CustomerType, CustomerInDate, CustomerOutDate
    	, RoomID, Fine
    FROM OutHistory
    

    五、窗体设计

    在这里插入图片描述

    ==================2021.6.22 ===========
    当初写这篇文章本意是做个记录,当时作为一个大二小白刚刚接触C#没学习过软件工程随手做的一个课设,之后也并没有朝C#方向继续发展。现在回顾感觉代码质量较低且不规范,逻辑也不够清晰,私认为并没有什么值得学习的地方,也怕误人子弟本想雪藏,但最近越来越多的同学希望我分享源码学习,现在分享给大家。由于时间久远、能力不足等原因不提供答疑希望大家理解。
    源码地址:https://github.com/majunbo2044/Hotel-Management-System/tree/master
    码字不易,欢迎投喂
    在这里插入图片描述在这里插入图片描述

    展开全文
  • C++课程设计:学生信息管理系统

    万次阅读 多人点赞 2015-04-26 18:55:58
    C++课程设计:学生信息管理系统

    课程设计内容

    1.)学生信息的录入:录入新的学生的信息;

    2.)学生信息的添加:添加新的学生的信息;

    3.) 学生信息的删除:删除不需要的学生的信息。

    4.)学生信息的查找:查找你需要的学生的信息。

    5.)学生信息的修改:修改错误的学生的信息。

    6.)学生信息的显示:显示所有学生的信息。

       7.)学生信息的保存:把学生的信息保存到文件并退出。

    8.)学生信息的读取:从文件中读取所有学生的信息。

    功能描述

    1.添加、删除

    系统将提示用户输入新添加学生的信息;由用户输入要删除的学生的学号,然后调用删除函数,删除该名学生的资料。

    2.查找

    3.首先由用户输入要查找的学生的学号,系统用查找函数查找,然后系统就调用输出函数。

    4.修改

    首先由用户输入要修改的学生的学号,然后系统用修改函数查找,显示该名学生的资料,然后系统提示用户输入需要修改的项目和新的资料。

    代码:

    #include<iostream>

    #include<fstream>

    #include<iomanip>

    #include<cstring> 

    using namespace std;

    int n=0;

     

    class Student 

    {

    public:

     int num; 

     char name[12];

     char study[12]; 

     char classe[12]; 

     int score[3];

     int s; 

     Student *next;  

    }; 

     

    class Studentmanage

    {

    private:

      Student *head,*p1,*p2,*p3;  

    public:

      Studentmanage (){};

      Student *creat();

      Student *add(Student *head);

      Student *delet(Student *head);

      void *search(Student *head);

      Student *modify(Student *head);

      void display(Student *head);

      void write_file(Student *head);

      Student * read_file();

      ~Studentmanage (){};   

    };

     

    Student *Studentmanage::creat()

    {

       p1=p2=new Student;

       head=NULL;

       cout<<"请输入学生的基本信息:以学号为0结束。\n";

       while(1)

        {

           cout<<"学号:";

           cin>>p1->num;

           if(p1->num==0)

           {

               break;

           }

       cout<<"姓名:";

       cin>>p1->name;

       cout<<"院系:";

       cin>>p1->study;

       cout<<"班级:";

       cin>>p1->classe;

       cout<<"C++成绩:";

       cin>>p1->score[0];

           cout<<"高数成绩:";

           cin>> p1->score[1];

           cout<<"英语成绩:";

           cin>>p1->score[2];

           p1->s=p1->score[0]+p1->score[1]+p1->score[2]; 

           n=n+1;

           if(n==1)

             head=p1;

           else

             p2->next=p1; 

             p2=p1;

             p1=new Student;         

        }

           p2->next=NULL;

           return head;

    }

    Student *Studentmanage::add(Student *head)

    {

       long int Num; 

       p1=p2=new Student;

       p3=new Student;

       p1=head;

       int j=0;

       cout<<"请输入你要添加学生的位置:\n";

       cout<<"如果想放在头,请输入0,  否则请输入要添加前一个学生的学号:\n";

       cin>>Num;

       if(Num==0)

       {  

        cout<<"请输入要添加学生的信息!\n学号:";

        cin>>p3->num; 

        cout<<"姓名:";

        cin>>p3->name;

        cout<<"院系:";

        cin>>p3->study;

        cout<<"班级:";

        cin>>p3->classe;

        cout<<"C++成绩:"; 

        cin>>p3->score[0]; 

        cout<<"高数成绩:";

        cin>>p3->score[1];

        cout<<"英语成绩:";

        cin>>p3->score[2];

        p3->s=p3->score[0]+p3->score[1]+p3->score[2];

        p1=head;

        head=p3;

        p3->next=p1;

        n++;

        j=1;

       }

       else

       {

         p1=head;

         p2=p1->next;

         while(p1!=NULL)

         {

          if(p1->num==Num)

          {

           cout<<"请输入要添加学生的信息!\n学号:";

           cin>>p3->num;  

           cout<<"姓名:";

           cin>>p3->name;

           cout<<"院系:";

           cin>>p3->study;

           cout<<"班级:";

           cin>>p3->classe;

           cout<<"C++成绩:"; 

           cin>>p3->score[0]; 

           cout<<"高数成绩:";

           cin>>p3->score[1];

           cout<<"英语成绩:";

           cin>>p3->score[2];

           p3->s=p3->score[0]+p3->score[1]+p3->score[2];     

           p1->next=p3;

           p3->next=p2;

       n++;

       j=1;

       break;

      }

      else

          { 

           p1=p2;

           p2=p1->next;

          }

         }

        }

       if(j==0)

        cout<<"你要添加的位置不存在,添加失败!\n";

    else

        cout<<"添加成功!\n";

        return head;

    }

    Student *Studentmanage::delet(Student *head) 

    {

       long int Num;

       p2=p1=new Student;

       cout<<"请输入要删除学生的学号:\n";

       cin>>Num;

       p2=p1=head;

       int j=0;

       if(head->num==Num&&head!=NULL) 

       {   

          head=head->next;

          delete(p1);

      j=1;

      n--; 

       }

       else

       {  

          p1=head->next;

          while(p1!=NULL)

          {

            if(p1->num==Num)

            {

              p2->next=p1->next;

              free(p1);

              j=1;

          n--; 

              break;               

            } 

            else  

            {

              p2=p1;

              p1=p2->next; 

            }              

          }

       }

       if(j==0)

     cout<<"此学生不存在,删除的失败!\n";

       else

     cout<<"删除成功!\n";

       return head;            

    }

     

    void *Studentmanage::search(Student *head)

    {

      long int Num;

      p1=new Student;

      cout<<"请输入要查找学生的学号:\n";

      cin>>Num;

      p1=head;

      int j=0;

      while(p1!=NULL)

      {

        if(p1->num==Num) 

    {  

           cout<<"学号:"<<p1->num;

           cout<<" 姓名:"<<p1->name;

           cout<<" 院系:"<<p1->study;

           cout<<" 班级:"<<p1->classe;

           cout<<" C++成绩:"<<p1->score[0];

           cout<<" 高数成绩:"<<p1->score[1];

           cout<<" 英语成绩:"<<p1->score[2];

           cout<<" 总成绩:"<<p1->s<<endl;

           j=1;

       break;

    }

    p1=p1->next;

      }

      if(j==0)

      cout<<"没有找到你要查找学生的信息。\n";

      else

      cout<<"这是你要查找学生的信息:\n";           

    }

     

    Student *Studentmanage::modify(Student *head)

    {

       long int Num; 

       long int num1;

       char name1[12];

       char study1[12]; 

       char classe1[12];

       int score1[3]; 

       p1=new Student;

       int j=0;

       cout<<"请输入你要更改学生的学号:\n";

       cin>>Num;

       p1=head;

       if(head->num==Num) 

        {

         cout<<"显示要修改学生的信息:\n";

         cout<<"学号:"<<head->num<<" 姓名:"<<head->name<<" 院系:"<<head->study;

         cout<<" 班级:"<<head->classe<<"C++成绩:"<<head->score[0];

         cout<<" 高数成绩:"<<head->score[1]<<" 英语成绩:"<<head->score[2];

         cout<<"总成绩:"<<head->s<<endl; 

         cout<<"请输入要更改学生的信息:\n";

         cout<<"学号:";

         cin>>num1; 

         cout<<"姓名:";

         cin>>name1;

         cout<<"院系:";

         cin>>study1;

         cout<<"班级:";

         cin>>classe1;

         cout<<"C++成绩:";

         cin>>score1[0];

         cout<<"高数成绩:";

         cin>>score1[1];

         cout<<"英语成绩:";

         cin>>score1[2];                     

         head->num=num1;

         strcpy(head->name,name1);

         strcpy(head->study,study1);

         strcpy(head->classe,classe1);

         head->score[0]=score1[0];

         head->score[1]=score1[1];

         head->score[2]=score1[2];

         head->s=head->score[0]+head->score[1]+head->score[2];

         j=1;

        }

       else

        { 

         p1=head->next; 

     while(p1!=NULL)

     {

          if(p1->num!=Num)

          {

           p1=p1->next;

          }

          else

          {

            cout<<"显示要修改学生的信息:\n";

            cout<<"学号:"<<p1->num<<" 姓名:"<<p1->name<<" 院系:"<<p1->study;

            cout<<" 班级:"<<p1->classe<<"C++成绩:"<<p1->score[0];

            cout<<" 高数成绩:"<<p1->score[1]<<" 英语成绩:"<<p1->score[2]<<endl;

            cout<<"请输入要更改学生的信息:\n";

            cout<<"学号:";

            cin>>num1; 

            cout<<"姓名:";

            cin>>name1;

            cout<<"院系:";

            cin>>study1;

            cout<<"班级:";

            cin>>classe1;

            cout<<"C++成绩:";

            cin>>score1[0];

            cout<<"高数成绩:";

            cin>>score1[1];

            cout<<"英语成绩:";

            cin>>score1[2];                     

            p1->num=num1;

            strcpy(p1->name,name1);

            strcpy(p1->study,study1);

            strcpy(p1->classe,classe1);

            p1->score[0]=score1[0];

            p1->score[1]=score1[1];

            p1->score[2]=score1[2];

            p1->s=p1->score[0]+p1->score[1]+p1->score[2];

        j=1;

        break;

     }

        }

       }

    if(j==0)

    cout<<"没有找到你要更改的学生,更改失败!\n";

    else

    cout<<"更改成功!\n";

        return head;             

    }

     

    void Studentmanage::display(Student *head)

    {

        int i;

        i=n;

      cout<<"这里有"<<n<<"个学生的信息:"<<endl;

      p1=head;

      if(p1==NULL)

      cout<<"这是一个空表!请先输入学生信息。"<<endl;

      else

      {

          while(i>0)

          { 

          cout<<"学号:"<<p1->num<<" 姓名:"<<p1->name<<" 院系:"<<p1->study;

          cout<<" 班级:"<<p1->classe<<" C++成绩:"<<p1->score[0];

          cout<<" 高数成绩:"<<p1->score[1]<<" 英语成绩:"<<p1->score[2];

          cout<<" 总成绩:"<<p1->s<<endl;

          p1=p1->next;

          i--;             

          }

      }           

    }

    Student *Studentmanage::read_file()

    {

        int num;

        int i=0;

        char name[12];

        char study[12];

        char classe[12];

        int score[3];

        int s;

        p1=p2=new Student;

        head=NULL;

        ifstream in;

        in.open("yyy.txt");

        if(!in)

        {

            cout<<"打开文件失败!"<<endl;

        }

        while(in)

        {

            

            in>>num>>name>>study>>classe>>score[0]>>score[1]>>score[2]>>s;

            p1->num=num;

            strcpy(p1->name,name);

            strcpy(p1->study,study);

            strcpy(p1->classe,classe);

            p1->score[0]=score[0];

            p1->score[1]=score[1];

            p1->score[2]=score[2];

            p1->s=s;

            i++;

            if(i==1)

            {

               head=p2=p1;

            }

           else

           {

             p2->next=p1; 

           }

             p2=p1;

             p1=new Student;

             n=i-1;

        }

        return head;

    }

    void Studentmanage::write_file(Student *head)

    {

        

        ofstream out;

        out.open("yyy.txt");

        if(!out)

        {

            cout<<"打开文件失败!"<<endl;

        }

        p1=NULL;

        p1=head;

        while(p1)

        {

            out<<p1->num<<setw(5)<<p1->name<<setw(5)<<p1->study<<setw(5)<<p1->classe<<setw(5)<<p1->score[0]<<setw(5)<<p1->score[1]<<setw(5)<<p1->score[2]<<setw(5)<<p1->s<<endl;

            p1=p1->next;

        }

        out.close();

    }

    char menu()

    {  

        system("cls");

        char ch;

        cout<<"\t\t\t---------请选择:-----------\n";

        cout<<"\t\t\t---------1.录入功能-------\n";

        cout<<"\t\t\t---------2.添加功能:-------\n";

        cout<<"\t\t\t---------3.删除功能:-------\n";

        cout<<"\t\t\t---------4.查找功能:-------\n";

        cout<<"\t\t\t---------5.修改功能:-------\n";

        cout<<"\t\t\t---------6.显示功能:----\n";

        cout<<"\t\t\t---------7.保存并退出:----------\n";

        cout<<"\t\t\t---------8读出文件-----------\n";

        cin>>ch;

        return ch;

    }

     

    int main ()

    {

      Studentmanage s;

      Student *head;

      char c;

        cout<<"欢迎使用学生信息管理系统!\n"; 

        cout<<"**********************************作者:于洋洋\n";

        cout<<"----------------------- 祝你使用愉快!\n";

    system("pause");

      while(1)

    switch (menu())

    {

       case'1':head=s.creat();system("pause");break;

       case'2':head=s.add(head);system("pause");break;

       case'3':head=s.delet(head);system("pause");break;

       case'4':s.search(head);system("pause");break;

       case'5':head=s.modify(head);system("pause");break;

       case'6':s.display(head);system("pause");break;

     case'7':s.write_file(head);cout<<"谢谢使用!再见!\n";system("pause");return 0;

       case'8':head=s.read_file();system("pause");break;

       default:cout<<"选择有错,请重新选择\n";

       }

      return 0;       

    }



    展开全文
  • Java_web期末课程设计学生信息管理系统

    千次阅读 多人点赞 2018-12-31 21:19:17
    Java_web期末课程设计学生信息管理系统 一、系统开发的意义 随着计算机和网络的普及,学生信息从纸质类变为电子信息类,管理电子类信息变得尤为重要。学生信息管理系统是学校内部重要的工具之一,不仅可以提高管理...

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

    一、系统开发的意义

    随着计算机和网络的普及,学生信息从纸质类变为电子信息类,管理电子类信息变得尤为重要。学生信息管理系统是学校内部重要的工具之一,不仅可以提高管理学生信息的效率和水平,还能够促进教育事业改革,推广更为便捷高效的管理方式。

    二、系统的功能

    1、实现登录、注册功能。

    2、录入学生成绩、修改学生成绩功能。

    3、学籍注册功能。

    4、按学号查找成绩。

    5、分页显示班级内部学生成绩。

    三、数据库设计

    users用户登录表:

    字段编号-------用户名(name)-----------密码(pwd)

    students 表:

    字段编号-------姓名(username)------学号(num)------性别(sex)—手机(phone)-----邮箱(email)—班级(class)

    grades学生成绩表

    字段编号-----姓名(username)–学号(num)----语文(chinese)----数学(math)-----英语(english)-----地理(geography)

    四、系统设计

    1、采用jsp+java+servlet+mysql+jdbc模式进行系统设计

    2、系统开发环境

    (1)操作系统:windows7及以上

    (2)开发软件:ecplise 2018-9

    (3)运行软件:Tomcat 8.5+ecplise

    (4)数据库软件:MySql+Navicat

    五、详细实现

    在这里插入图片描述
    六、成果展示

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    关注微信公众号:让我爱上它Computer
    回复 java_web 获得学生信息管理系统的源码。

    下载链接:下载链接

    展开全文
  • 通过此文档,以保证业务需求提出者需求分析人员、开发人员、测试人员及其也相关利益人对需求达成共识。 2. 本文档供需求提出者、需求分析人员、开发人员、测试人员阅读。 1.1.2 项目背景 a.项目的委托单位:哈...
  • java课程设计学生信息管理系统

    万次阅读 多人点赞 2018-04-18 14:45:14
    Reader r=new FileReader("f:\\信息系统账号\\"+s); String b=null; char cs[]=new char[10]; int len=0; while ((len=r.read(cs))!=-1) { b=new String(cs,0,len); } if (pf.getText().equals(b)) { ...
  • 学生信息管理系统数据库课程设计

    万次阅读 多人点赞 2018-06-12 14:48:25
    概述学生信息管理系统是学校管理的重要工具,是学校不可或缺的一部分。随着在校人数的不断增加,教务系统的数量也不断的上涨。学校工作繁杂,资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,...
  • 求软件工程课程设计 医院加粗样式药品信息管理系统
  • 数据库课程设计——学生宿舍信息管理系统

    万次阅读 多人点赞 2018-09-17 23:33:00
    数据库课程设计——学生宿舍信息管理系统 目录  1.设计目的... 2 2、任务要求... 2 3、学生宿舍管理系统课程设计... 2 3.1 引言... 2 3.2需求分析... 2 3.2.1....
  • C语言课程设计之学生信息管理系统

    万次阅读 多人点赞 2014-11-29 11:25:18
    大一什么都不懂的时候,做一个课程设计还是挺不易的,不过还是得到了老师的高分,特发来大家一起分享我的经验。不要笑,毕竟是大一写的!^_^
  • 停车场管理系统 课程设计 C语言

    万次阅读 多人点赞 2019-06-28 16:53:28
    停车场管理系统课程设计 数据结构 C语言 设计内容: 设有一个可以停放n(n>=5)辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一...
  • 信息系统分析与设计课程心得

    万次阅读 2017-02-28 13:41:39
    信息系统分析与设计课程心得此博客为信息系统分析与设计课程的学习心得记录。一、绪论1概念1.1信息要了解信息系统,首先要了解信息的概念。信息是我们理解世界的重要概念,我对它的定义是:信息是对客观事物及其相互...
  • http://download.csdn.net/download/qq_36326947/9974229 代码下载地址:http://download.csdn.net/download/qq_36326947/9984118 csdn下载需要c币,没有c币可从微信公众号【无心有云】 发送【c语言学生信息管理系统】...
  • C++课程设计学生宿舍管理信息系统

    千次阅读 多人点赞 2018-10-29 21:43:18
    青岛农业大学c++课 程 设 计报 告         ... 计算机科学技术 ... 课程设计科目 ... 面向对象程序课程设计 学生姓名: 董松 指导教师: ...
  • Java课程设计-学籍信息管理系统

    万次阅读 多人点赞 2015-12-15 21:08:23
     学生的学籍信息是记录学生的重要信息档案,如何以电子文档形式记录下学生的学籍信息是每个学校必须做的事情,该学生学籍信息管理系统就是为了方便学校记录下每一个学生的基本信息,生成电子数据库,并且能够做到...
  • C++ 学生信息管理系统课程设计报告

    千次阅读 2020-06-13 11:22:27
    《面向对象课程设计》报告学生信息管理系统设计一、问题描述二、需求分析和概要设计三、功能模块描述和设计思路四、具体实现过程五、收获展望 一、问题描述 学生信息管理系统设计 学生信息包括:学号,姓名,年龄...
  • 汽车销售信息管理系统 系统功能基本要求 : 1. 轿车信息,包括轿车的编号、型号、颜色、生产厂家、出厂日期、价格等 2. 员工信息,包括员工编号、姓名、性别、年龄、籍贯、学历等 3. 客户信息,包括客户名称、联系...
  • 人员信息管理系统: 以一个小型公司的人员管理为例,说明类及成员函数的设计。提示: 类的设计: 某小型公司,需要存储雇员的编号、级别、月薪,并显示全部信息。根据这些需求,设计一个类employee,在该类中,...
  • 课程设计—————学生信息管理系统
  • C语言学生成绩信息管理系统课程设计报告

    万次阅读 多人点赞 2016-10-07 22:19:22
    C语言课程设计报告 一 .设计目的 学生成绩管理系统 主要功能: (1)能按学期、按班级完成对学生成绩的录入、 修改,删除 (2)能按班级统计学生的成绩,求学生的总分及 平均分,并能根据学生的...
  • C语言 课程设计——职工信息管理系统

    千次阅读 多人点赞 2020-12-26 21:14:39
    C语言 课程设计——职工信息管理系统 提示:该课程设计是本人第一次制作,有诸多不足之处,希望王对你有些许帮助!!! 文章目录C语言 课程设计——职工信息管理系统前言一、首先定义一个结构体数组二、定义主函数...
  • 管理系统课程设计】美少女手把手教你后台管理

    万次阅读 多人点赞 2019-11-19 09:44:48
    【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,...
  • 基于学生信息管理系统的数据库系统课程设计(MySQL)

    万次阅读 多人点赞 2020-03-22 17:32:40
    根据上一节的数据流程图,可以列出以下记录学生信息所需的数据项和数据结构:  学生:学号、姓名、性别、生日、籍贯、所在院系、所在班级。  处罚记录:记录号、级别、处罚对象、记录时间、详细描述...
  • Java课程设计【学生信息管理系统

    千次阅读 多人点赞 2020-06-01 13:48:20
    课程设计目录一、问题描述二、基本要求三、需求分析四、概要设计1、类之间的调用关系2、学生信息模块3、管理系统模块4、详细设计①主程序LoginGUI的代码②程序View的代码③程序Student的代码④程序ConnectSQLServer...
  • 《考勤信息管理系统》数据库课程设计

    千次阅读 多人点赞 2021-01-09 17:11:19
    考勤信息管理系统 目 录 一、课程设计目的和要求 2 二、课程设计过程 2 数据库设计的基本步骤如下: 3 1.需求分析阶段 3 1.1应用背景 3 1.2需求分析目标 4 1.3系统设计概要 4 1.4软件处理对象: 4 1.5系统可行性分析...
  • 学生信息管理系统课程设计

    千次阅读 2017-12-22 16:04:05
    printf(" 学生信息管理系统 \n"); printf(" \n"); printf(" 0、 退出系统 \n"); printf(" \n"); printf(" 1、 增加学生信息 \n"); printf(" \n"); printf(" 2、 删除某个学生信息 \n"); printf(" \n"); ...
  • 学生信息管理系统的数据库系统课程设计(Java)

    千次阅读 多人点赞 2020-04-15 22:04:42
    前言: 博主在深入了解Java的语法后,觉得前段时间数据库课设写的代码有点菜了,于是决定重写界面设计部分(数据库的dao层没改),原来的可以参见之前我写的这篇文章:... 顺便总结一下这次写的和之前的对比有哪些...
  • 课程设计管理系统

    千次阅读 2019-01-04 14:38:33
    课程设计管理系统 功能:(1)实现学院、系、专业、班级等基础信息管理;(2)实现学生管理;(3)实现指导教师管理;(4)实现课程设计管理,如组织选题、下达任务书、课程设计成绩评定等;(5)实现相关信息的...
  • 图书管理系统UML课程设计

    万次阅读 多人点赞 2018-11-12 17:37:50
    这是本人在学习UML建模语言时的课程设计,个人感觉学的还不错,我采用了用例建模、对象建模、交互建模去分析该图书管理系统。下面是我的文档。文档较长,大概将近90页。 关注下面的微信公众号,将会有更多的学习...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,893
精华内容 38,757
关键字:

信息管理与信息系统课程设计