精华内容
下载资源
问答
  • 小结小结小结小结小结小结小结小结实践报告小结实践报告小结实践报告小结
  • 管理信息系统实践报告在分析了企业整体结构和业务流程后,如何让每一个数据变成有用资源,是这个过程要考虑的关键问题。 任何企业都不应该拒绝管理信息系统,也不会拒绝管理信息系统
  • 现代企业管理信息系统课程实践考核题目 设计一简易选课系统实现如下功能 每个系有多门课程每门课程可以由多个老师教授每个老师可以教授多门课比 如陈刚老师可以教授企业管理信息系统和计算机基础 并且他可以教授企业...
  • C语言图书管理信息系统,c语言课程设计实践
  • 陕西省 西安电子科技大学 计算机应用实践报告 管理信息系统 doc
  • 学习《管理信息系统》这门课时,去当地的医院做调查做的一个报告,仅作参考!
  • 学生信息管理系统(SQL+VB)实践报告
  • 有关MIS的实验。如:项目计划编制、可行性分析方法、业务流程图的绘制等等。
  • 实用文档 北 京 师 范 大 学 珠 海 分 校 C 程序设计实践报告 题目 图 书 管 理 系 统 学 院 信息技术学院 专 业 计算机科学与技术 学 生 姓 名 龙海恩郑少彬张鑫麦淑玲 指导教师姓名 肖红玉 指导教师单位 信息技术...
  • 1. 了解和熟悉信息网络管理系统的基本架构 2. 熟悉和实践VB.NET、SQL数据库以及串口操作的基本原理和编程方法 3. 掌握软硬件相关编程技能,为找工作做好准备 二.设计平台 硬件:IC读卡器、IC卡与PC机 软件:...
  • 实践报告 目的通过此次综合编程实践使大学生进一步熟悉和掌握C语言的基本知识基本编程原理学习用C语言开发应用程序的方法进一步熟悉计算机程序设计的基本方法步骤培养大学生设计调试测试程序能力 程序功能介绍该程序...
  • word word资料 企业管理信息系统报告 关于XX集团费控系统项目的实践报告 目 录 八 刖 言 -3 - 1.XX集团简介 -3 - 2.行业竟争分析 -3 - 3.实施费控系统必要性 -4 - 4.实践内容及项目目标 -5 - 1实践内容 -5 - 2项目...
  • 《PHP实训实践报告》由会员分享,可在线阅读,更多相关《PHP实训实践报告(10页珍藏版)》请在人人文库网上搜索。1、浙江万里学院集中实践课程报告课程名称: 程序设计综合训练 实践方向: PHP开发 专业班级: 计算机...

    《PHP实训实践报告》由会员分享,可在线阅读,更多相关《PHP实训实践报告(10页珍藏版)》请在人人文库网上搜索。

    1、浙江万里学院集中实践课程报告课程名称: 程序设计综合训练 实践方向: PHP开发 专业班级: 计算机专业2016级164班 姓名: 林文辉 学号: 起止日期: 2018年7月2日-2018年7月12日 一、背景介绍项目名称:PHP用户信息管理系统面向群体:个人用户、小型企业、小型团队开发环境:PHP结合MYSQL数据库背景介绍:随着信息化时代的不断推进,人们不断意识到海量的信息实际上也是一种重要资源,如何将这些信息进行利用,信息管理应运而生。信息管理诞生的目的就是为了提高信息利用效率、最大限度地实现信息效用价值,如今信息遍布社会的方方面面,成为社会发展的中坚力量,谁把握了信息谁就把握了时代,无。

    2、论是企业管理者,还是团队领导者,都需要重视信息的把握及信息的管理。而信息的管理是一件不太容易的事情,为了让非专业的人也能轻松的管理信息,于是便有了信息管理系统,它由多个学科交叉,应用多种技术,像计算机技术、数据库技术、通信技术等等。它使得信息管理更加高效,也让信息管理的同时能够事实的共享,便于协同工作。本项目就是一个信息管理系统,虽然只是用户信息管理系统,加以修改也可以很轻松的调整为其他信息的管理系统。二、需求分析分析: 该项目是由PHP结合MYSQL开发的小型用户信息管理系统。MYSQL需要能够与PHP进行链接,在链接的基础上,系统应当能够获取到数据库中的相关信息,并且直观简洁的形式呈现在前。

    3、端界面提供给使用者。与此同时,应当提供一定的编辑功能,使用者可以通过前端的交互操作来对数据库的内容进行增加删除修改,并且这个过程应当是简单明了的,点击网页上的按钮即可完成实现对应的功能。另外,需配有简易的后台登录功能,即数据库后台存放管理员信息,使用者需要填写正确的管理员账号及密码方可进入信息管理系统,在未登录的情况下,对操作进行拦截并跳转到登录界面。最后,项目上传至服务器后,需要能够切实可用,而且使用者可以随时随地,方便快捷的进行管理用户信息数据,并支持多端同步。根据上述分析,总结本项目需要具备如下功能:管理员账号的登录与退出管理员账号、密码的验证当且仅当管理员登录时方可进入数据管理系统可以。

    4、查看数据库的用户信息表,具备简易分页功能可以对数据库用户信息表的内容进行增加可以对数据库用户信息表的内容进行删除可以对数据库用户信息表的内容进行修改可视化的UI界面,对应的操作都至少具备按钮、超链接等交互方式3、 概要设计PHP方面:【用户信息模块】此模块又分为四部分:用户信息查询:该部分暂时只具备分页查询,按ID依次排序展示到前端界面,不具备按条件/索引查询等其他功能,在链接数据库的基础上,对数据库总记录数进行统计,并设置对应变量(每页显示条数、偏移量等),通过数学逻辑运算,对变量进行整合可以实现分页查询。用户信息添加:单独写一个前端界面提供该功能,利用html的submit表单提交,met。

    5、hod=“post”可以实现将用户前端填写的数据传到后台,结合数据库链接操作,配置对应的sql语句即可实现该部分功能。用户信息删除: 删除操作比较简单,获取需要删除记录的id,在数据库中删除对应id的数据即可实现。用户信息修改:与添加操作基本一致,也是单独写一个前端界面提供该功能,也是利用html的submit表单提交,method=“post”结合数据库链接实现的,不同之处就是对应的sql语句不同。【登录模块】 数据库方面:由于项目体量问题,初步设定为两张表。第一张表为user表,主要负责存放用户信息,以便于提供给php进行增删改查的相关操作。表中应至少具备编号、姓名、性别以及其他常用信息等。

    6、若干个字段信息。第二张表为admin_user表,主要负责存放管理员账号信息,提供给php登录时进行匹配判断输入的账号密码是否正确。表中应至少具备,编号、账号、密码三个字段信息。4、 详细设计PHP目录结构及对应功能:project (项目工程文件根目录,压缩包内wl_project.sql为数据库文件) config.php (项目中一些常量,主要是一些数据库的配置信息,单独处理在该文件,方便init.php调用) index.php (整个项目的主页 本身没有什么内容,调用menu.php显示一个导航栏) init.php (项目的初始化文件,该文件通过拼接的方式定义了两个常用的地址类常量。

    7、 ADMIN_URL和ADMIN_PATH 在后面涉及地址跳转等操作的文件中经常性使用) login.php (登录界面 样式如下图) logindo.php (登录的逻辑在这里实现,主要是与数据库amdin_user表中的账号密码字段进行匹配,分开匹配,先判断账号,密码在之后判断,同时SESSION数组实现了对登录状态的存储,配合redirect可以实现非登录状态自动跳转到登录界面) logout.php (登出,实现比较简单,只需要将SESSION数组对应存储登录状态的部分清除即可)imgs(子目录,项目暂时没有用到)include(项目的一个子目录,主要存放一些经常被调用的文件,函数、导。

    8、航、跳转页等等.) function.php(项目的一些常用函数在这个文件夹内,包括 将测试常用的var_dump定义为函数、以及跳转用的redirect、还有所有对数据库的增加、删除、修改、查询都在此处统一为了函数,方便其他文件调用) menu.php(导航条,样式如项目首页,可以跳转到用户管理和用户添加界面) page.php(分页查询有关的一些的html样式,例如提示当前页码记录数,以及上一页、下一页等标签都是在这里写的) redirect.php (通过html的refresh实现的界面跳转,此文件下还定义了一些css样式,对其他文件的某些标签样式有一定影响)public (子目录,项。

    9、目暂时没有用到)user(子目录,用户信息管理系统的主要界面和主要功能)action.php(调用function.php实际调用的是init.php,由于init.php调用了function.php 故不用重复调用,并提供对应的sql语句来具体实现增删改查的操作)add.php(用户信息增加界面的前端html代码)edit.php(用户编辑增加界面的前端html代码)index.php(用户信息管理系统的主界面 样式如图)数据库表结构admin_user表字段名 字段类型 长度 允许空值 Id int 10 主键name varchar 255 password varchar 255 u。

    10、ser表字段名 字段类型 长度 允许空值 id int 10 主键name varchar 255 sex varchar 255 address varchar 255 hobby varchar 255 五、总结我选择的方向是PHP开发,本次实训的形式是老师带领我们做一个PHP项目,其实在此之前的专业课上的数据库课程大作业和这次实训比较类似,只不过前者是用Java+Mysql,后者是用PHP+Mysql,虽然使用的开发环境有所不同,但是万变不离其宗,其实仔细想想,业务逻辑上还是有很多相似之处的。加上这次实训考虑到我们的基础和时间问题,项目复杂度还是不高的,所以整体下来,有一定的经验,再加上。

    11、难度适宜,所以给我的感觉还是比较良好的。感觉自己也切实学到很多东西,在项目的结构构建方面尤为明显,万事开头难,一个好的项目结构,能够帮助自己厘清思路,项目的构建与完善也会更顺利。老师讲的很细,之前几天的基础课也让我对PHP的语法、规范有了一定的了解,而后由浅入深的带我们做简单项目,也让我对PHP的应用有了更充分的的认识。做项目的过程中也不乏遇到很多问题,有语法错误,也有粗心落下符号字母的错误,也有逻辑上理解不到位引起的一些错误,多半都在摸索中解决了,剩下的也在老师的帮助之下解决了,最终顺利的完成了整个项目的构建,并且还余有一定的时间,帮助了一下其他没有完成的同班同学,感觉自己对整个流程的感悟又深刻了不少。最后,这次实训还是非常有收获的,和平时上课的形式说像也像,都是老师先讲基础,然后老师带我们完成一定的任务(这里是项目),说不像也有点不像,课上很少这样有目的性的,系统性的去统一完成一件事情,相信这样的经历会为以后真正自己做项目增添不少助力。

    展开全文
  • 管理信息系统上机实践报告 统 人力资源管理系 人力资源管理信息 系统 上机实践报告 - 1 - 管理信息系统上机实践报告 统 人力资源管理系 目录 1 系 统 分 析 报 告 ------------------------------------------------...
  • 管理信息实验报告

    2008-06-22 19:03:54
    关于某个具体行业的分析实践报告
  • 企业管理信息系统报告 关于 XX 集团费控系统项目的实践报告 - 1 - 目录 前言 - 3 - 1.XX 集团简介 - 3 - 2. 行业竟争分析 . - 3 - 3. 实施费控系统必要性 . - 4 - 4. 实践内容及项目目标 . - 4 - 1实践内容 . - 4 - ...
  • 福建工程学院信息科学与工程学院 实验报告 2013 2014 学年第 1 学期 任课老师 蒋建辉 课程名称 数据库开发技术 班级 座号 姓名 实验题目 认识Oracle常用管理工具和DDLDML实践 实验时间 实验开始日期 2013.10....
  • 程序设计实践期末作业,配学生信息管理系统,希望对大家有用
  • 文章目录实践项目1—学生成绩档案管理系统实验内容编程语言及开发环境实验思路一、建立学生成绩档案数据库二、编写学生信息录入函数三、编写学生信息浏览及修改函数四、学生成绩排名及输出五、学生信息查询六、文件...

    实验内容

    1、实现学生成绩档案管理系统的基本功能,能对学生成绩进行浏览、查询及修改。
    2、通过对学生信息集合的导入与导出,实现文件存取学生信息

    编程语言及开发环境

    编程语言:JAVA
    开发环境:JDK15

    实验思路

    一、建立学生成绩档案集合

    创建StudentDatebase类,在构造方法中对集合的数据进行初始化。
    通过ArrayList方法将学生信息添加至集合。

    二、编写学生信息录入函数

    编写录入函数insert(),通过调用学生信息集合中的studentdatebase.getStudentsList().add(students)方法进行对学生信息的录入。

    三、编写学生信息浏览及修改函数

    1、浏览:编写print()函数,通过for循环对学生信息集合进行遍历,打印输出。
    2、增加:通过insert()函数,对集合中学生信息进行增加。
    3、删除:编写delete()函数,通过学生的学号,对学生信息进行删除。
    4、修改:编写modify()函数,通过学生学号查找到该学生,通过set方法,对该学生的分数进行修改。

    四、学生成绩排名及输出

    1、排序
    (1)双向冒泡排序:
    ①、传统冒泡气泡排序的双向进行,先让气泡排序由左向右进行,再来让气泡排由右往左进行,如此完成一次排序的动作;
    ②、使用left与right两个旗标来记录左右两端已排序的元素位置。
    (2)希尔排序:
    ①、先取一个正整数d1<n,把所有序号相隔d1的数组元素放一组,组内进行直接插入排序;
    ②、然后取d2<d1,重复上述分组和排序操作;
    ③、直至di=1,即所有记录放进一个组中排序为止。
    (3)快速排序:
    ①、先从数列中取出一个数作为基准数;
    ②、区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边;
    ③、再对左右区间重复第二步,直到各区间只有一个数。
    (4)堆排序:
    ①、创建一个堆 H[0……n-1];
    ②、把堆首(最大值)和堆尾互换;
    ③、把堆的尺寸缩小 1,并调用 shift_down(0),目的是把新的数组顶端数据调整到相应位置;
    ④、重复第二个步骤 ,直到堆的尺寸为 1。
    2、输出
    通过排序方法,将名次结果放入RankList链表中,通过for循环对链表内容依次输出打印。

    五、学生信息查询

    1、编写findByID()函数,通过输入将要查询的学生的学号,系统遍历学生信息集合,找到相同的学号,打印输出该学生的信息。
    2、编写findByName()函数,通过输入将要查询的学生的姓名,系统遍历学生信息集合,找到相同的姓名,打印输出该学生的信息。

    六、文件存取学生信息

    FileOutputStream:OutputStream的子类,用于存储文件当中的数据。
    FileInputStream:InputStream的子类,用于读取文件当中的数据。

    展开全文
  • 声明:本课程报告比较简陋,仅供学习参考哦!!(源码见文章末尾) 目录 1. 引言 1.1 研究背景 1.2 研究意义 2. 需求分析 3.概要设计设计 3.1 功能模块设计 3.2 主函数的流程设计 4. 详细设计和实施 4.1 ...

    声明:本课程报告比较简陋,仅供学习参考哦!!(源码见文章末尾)


    目录

    1. 引言

    1.1  研究背景

    1.2  研究意义

    2. 需求分析

    3. 概要设计设计

    3.1 功能模块设计

    3.2 主函数的流程设计

    4.  详细设计和实施

    4.1 主界面设计

    4.2 录入信息

    4.3 查询信息

    4.4 修改信息

    4.5 添加学生

    4.6 删除学生信息

    4.7 统计学生信息

    5.   测试数据与测试结果

    5.1 系统测试

    5.2 问题分析

    5.3 总结

    参考文献


     

    1. 引言

    1.1  研究背景

    随着科技的不断发展,计算机的应用领域越来越广。在我国的各类学校,尤其是高等院校,近些年由于阔招生员,大大增加了学校的管理体制的负担,管理信息系统已经进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的,统一的系统。因此,开发一套适合、 兼容性好的系统是很有必要的。

    1.2  研究意义

    根据开发要求,学生成绩管理系统全要应用于教育系统,完成对学生成绩信息的计算机管理,使学院职员工轻工作压力,同时,可以减少劳动力的使用,加快查询速度、加强管理,加快国家和部门关于信息化的步伐,使管理更加规范化。学生成绩管理系统是时代发展的必然产物。

    2. 需求分析

    编写一个学生成绩管理系统,每个学生信息包括:姓名、学号、C语言、编译原理、数据库以及离散数学的成绩。具体功能如下:

    (1)创建学生信息并以磁盘文件保存;

    (2)读取磁盘文件并显示输出所有学生的成绩;

    (3)按学号或姓名查询成绩;

    (4)添加成绩记录;

    (5)修改指定姓名或学号的学生的成绩并可存盘;

    (6)删除指定姓名或学号的学生成绩并可存盘;

    (6)只显示C语言成绩60分以下、60~79、80~89、90分以上各分数段的学生信息;

    (7)打印所有学生成绩单。

    3. 概要设计设计

    3.1 功能模块设计

    功能模块如下图1所示:

                                                                                             图1 功能模块结构图

    3.2 主函数的流程设计

    (1)主界面系统

      可分别输入0—7数字来实现对学生信息的执行。各个按键的功能如下:

    “0”:可退出程序;

    “1”:录入信息,调用input()函数;

    “2”:查询信息,先调用search()函数,根据姓名或学号分别调用xingming()和xuehao()函数;

    “3”:修改信息,先调用modiway()函数,根据姓名或学号分别调用modify1 ()和modify2()函数;

    “4”:添加学生信息,直接调用insert()函数;

    “5”:删除学生信息,先调用deleteway()函数,根据姓名或学号分别调用delete1 ()和delete2()函数;

    “6”:显示打印成绩,直接调用print()函数;

    “7”:统计C语言成绩,直接调用count()函数。

     

    4.  详细设计和实施

    4.1 主界面设计

    (1)  功能介绍

    本模块主要是调用以上每个自定义函数,在界面中输入相对应的数字便可进入相关模块。保证了本程序的完美运行。

    (2)  关键函数及其描述

    void main()

    {

        char ch;

        while(1)

        {

          menu();// 显示菜单

          ch=getch();//选择菜单

          if(ch=='0')

              break;

          switch(ch)//判断功能项

          {

          case '1':input();break;

          case '2':search();break;

          case '3':modiway();break;

          case '4':insert();break;

          case '5':deleteway();break;

          case '6':print();break;

          case '7':count();break;

          }

        }

        printf("\n\n\n\t\t\t\tWelcome to use,Goodbye!\02!\n");

    }

    4.2 录入信息

    (1)功能简介

    该模块主要实现学生信息的录入。在界面中输入“1 ”进入学生成绩的录入,录入信息是一直到姓名为“End”时结束录入。

    (2)流程图

    录入信息模块流程图如图2所示:

                                                                                      图2 录入信息

     

    (3) 关键代码及其描述

    void input()

    {

        FILE *fp;

        stu xs;           /*定义一个结构体变量来装从文件中读出来的数据*/

        if((fp=fopen("student.dat","ab"))==NULL)  //判断文件能否打开

        {

           printf("can't open the file!\n");exit(0);     //正常退出

        }

        printf("\n录入格式: 姓名 学号 C语言 编译原理 数据库 离散数学 \n");

        printf("当输入姓名为<End>结束录入\n");

        while(1)                               

        {

            scanf("%s",xs.name);

            if(strcmp(xs.name,"End")==0) break; //判断姓名是否为END,用字符串判断

            scanf("%d%f%f%f%f",&xs.num,&xs.c,&xs.by,&xs.sjk,&xs.lssx);

            fwrite(&xs,sizeof(stu),1,fp);        //将成绩信息写入文件

        }

        fclose(fp);

    }

    4.3 查询信息

    (1) 功能简介

    本模块先定义了学生姓名和学号两项信息,然后再自定义一个search函数,利用switch函数来通过这两种方式来查询。在界面中输入“2”进入查询信息模块。接着输入“1”则是按姓名查询,输入“2”则是按学号查询。

    (2)流程图

    查询信息模块流程图如图3所示:

     

                                                                                      图3 查询信息

    (3) 关键代码及其描述

    void search()

    {

           char ch1;

           system("cls");

        printf("请选择何种方式查询<编号>:\n");

        printf("1->姓名,2->学号:");

        ch1=getchar();              /*用字符接收*/

        switch(ch1)                 /*判断*/

      {

        case '1':xingming();break;

        case '2':xuehao();break;

      }

    getch(); 

    4.4 修改信息

    (1) 功能简介

    本模块主要实现修改学生信息的功能,modify1和modify2分别定义两种修改信息的方式,然后利用modiway函数,使用switch函数判断选择修改的方式,在界面中输入“3”进入修改成绩模块,接着输入“1”则是按姓名修改成绩,输入“2”则是按学号修改成绩。

    (2)流程图

    修改信息模块流程图如图4所示:

                                                                                     图4 修改信息

     

    (3) 关键代码及其描述

    void modiway()

    {

        char ch1;

        system("cls");

        printf("请输入按何种方式修改<编号>:\n");

        printf("1->姓名,2->学号:");

        ch1=getchar();       /*用字符接收*/

        switch(ch1)          /*判断*/

           {

          case '1':modify1();break;

          case '2':modify2();break;

           }

     

        getch();/*让屏幕停留同时按任意键返回*/

    }

    4.5 添加学生

    (1)功能简介

    本模块主要实现了学生的添加,在界面中输入“4”进入添加学生模块,依次输入姓名、学号、C语言,编译原理,数据库以及离散数学成绩、和插入的位置。

    (2)流程图

    添加学生模块流程图如图5所示:

                                                                                     图5 添加学生

     

    (3) 关键代码及其描述

    void insert()

    {

           int i=0,j,k,lenth;

        FILE *fp;

        stu s,xs[N];

        system("cls");

        printf("\n请输入添加的学生的姓名:");

           scanf("%s",&s.name);

        printf("\n学生的学号:");scanf("%d",&s.num);

        printf("\n学生的成绩:C语言、编译原理、数据库、离散数学:");scanf("%f %f %f %f",&s.c,&s.by,&s.sjk,&s.lssx);

        printf("\n请输入插入到第几行:");scanf("%d",&k);

        if((fp=fopen("student.dat","rb"))==NULL)

           {

               printf("can't open the file!\n");exit(0);

           }

        while(!feof(fp))

           {

            fread(&xs[i],sizeof(stu),1,fp);/*把数据读入到结构体数组中*/

            if(feof(fp)) break;

            i++;

           }

        fclose(fp);

        lenth=i;                            //记录此时lenth最大

        if(k<lenth && k>=0)                 /*k的位置要位于数组范围之内*/

           {

           for(j=lenth-1;j>=k;j--)

               xs[j+1]=xs[j];               /*一开始j是最大的,往后移一个这样移动避免数据被覆盖*/

               xs[k]=s;                     /*将输入的学生信息加入这个k位置*/

               lenth++;                   //增加一个学生空间,否则会少一个数据

           if((fp=fopen("student.dat","wb"))==NULL)

              {

                   printf("不能建立文件!!\n");exit(0);

              }

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

           fwrite(&xs[i],sizeof(stu),1,fp);  //存入数据

           }

        else/*不再数组范围之内*/

           {

            if((fp=fopen("student.dat","ab"))==NULL)

                  {

                  printf("不能建立文件!!\n");exit(0);

                  }

        fwrite(&s,sizeof(stu),1,fp);

           }

           fclose(fp);

    }

    4.6 删除学生信息

    (1) 功能介绍

    根据学生的姓名或学号来删除学生的信息,在主界面点击“6”,接着选择删除学生信息的方式。

    (2)删除学生模块流程图如图6所示:

                                                                                     图6 删除学生

    (3) 关键代码及其描述

    //删除:输入学生学号,若该学生存在,则删除,并显示删除后余下的学生成绩信息

    void deleteway()

    {

        char ch1;

        system("cls");

        printf("请输入按何种方式删除:\n");

        printf("1->姓名,2->学号:");

        ch1=getchar();/*用字符接收*/

        switch(ch1)/*判断*/

           {

           case '1':delete1();break;

        case '2':delete2();break;

           }

           getch();/*让屏幕停留同时按任意键返回*/

    }

    4.7 统计学生信息

    (1) 功能介绍

    本模块主要实现了对学生成绩的统计,对不同分数段的学生进行划分并逐个显示。在界面中输入“6”,则进入统计学生信息模块。按任意键退出。

    (2)流程图

    统计学生模块流程图如图7所示:

                                                                                    图7 统计学生

    (3)  关键代码及其描述

    void count()

    {

    int i=0,j=0,k=0,l=0,m=0,n,p,q,r,t,u;

    stu s[N], *p1[N],*p2[N],*p3[N],*p4[N];   /*用指针数组*/

    fread(&s[i++],sizeof(stu),1,fp);         /*读入数据*/

    t=i;i=0;

    for(u=0;u<t;u++)/*以下每个指针数组用于指向各分数段的学生信息*/

    {

    if(s[i].c<60) {p1[j++]=&s[i++];continue;

    } /*每个学生信息只能位于一个分数段,各分数段都是如此*/

    printf("不及格:姓名 学号 C语言\n");

    printf("%10s %6d %6.2f\n",p1[n]->name,p1[n]->num,p1[n]->c}//显示指针内的信息

    //显示不及格学生成绩,各分数段都是如此

     

    5.   测试数据与测试结果

    5.1 系统测试

    (1)主界面设计

    具体效果如图8所示。

     

                                                                                   图8 主函数界面

    (2)学生成绩信息录入测试

    学生成绩录入界面如图9所示。

                                                                                      图9 学生成绩录入

    (3) 查询信息系统测试

        可以通过姓名和学号两种方式来查询信息。图10为通过姓名来查询,图11为通过学号来查询。

                                                                                   图10姓名查询

                                                                                   图11学号查询

    (4) 修改信息系统测试

         可以通过学生姓名和学号来修改信息,图12为通过姓名修改信息,图13为通过学号来修改信息。

                                                                                   图12 姓名修改

                                                                                   图13 学号修改

    (5)添加学生系统测试

    添加学生的界面如图14所示。

                                                                                   图14 添加学生

    (6)删除学生信息系统测试

    可以通过学生姓名和学号来删除学生信息,图15为通过姓名修改信息,图16为按学号删除学生信息。最终看下所剩下的学生信息,如图17所示:

                                                                                   图15 按姓名删除

                                                                                   图16按学号删除

                                                                                   图17查询删除后的信息

     

     

    (7)显示成绩系统测试

    对添加、修改、删除学生信息的所有学生成绩单进行统计打印,具体如图18所示:

                                                                                   图18 显示打印成绩

    (8)统计成绩系统截图

         因为C语言课程需要单独统计学生成绩情况,所以对学生C语言成绩进行分类。具体的统计后界面如图19所示。

                                                                                   图19 统计C语言

    5.2 问题分析

    1、编写程序的过程中有很多问题,首先就是总的大体布局,该如何构造函数,该构造哪些函数……解决的办法其实也很简单,大概看书上的学生信息管理系统的布局,然后根据自己的构思在纸上简单写出来。最好先画好流程图,然后才慢慢地编写程序。

    2、接着就有很多小问题接踵而来,虽然这只是个小程序,但是运用的东西还真不少。整个程序中都需要定义文件指针,这就需要对文件指针的概念及运用有着深入的了解。这就需要看书了,具体的细节就需要百度来获取了。例如while(!feof)就是读取文件失败的情况。还有fread和fwrite的格式。而且本程序中大部分都运用指针,对于指针的运用,还不能熟练的掌握,例如P1[i++]=&s[i++],将s[i++]赋值给指针P1,这就需要对指针的表示和指针所指向的内容要了解。

    3、除了指针,还有struct结构体类型的定义。每一个地址对应必须要准确,稍不留意就会出错。例如在printf()和scanf()中,后面的地址就容易出错。尤其地址符&经常会忘。这就需要自己细心,反复编译查找出错的地方。

    4、另外,再录入信息时,需要输入一定的数据后中断程序。一时不清楚如何解决,百度了一下。可以利用strcmp函数来检查name是否与LAST一致,一致后就可以中断程序。并且在使用strcmp函数时要注意字符要加引号,而引用的变量可不加。

    5、还有就是如何保存修改后的学生的成绩,之前无论如何都保存不了学生信息,后来查了百度,可以利用“fseek(fp,-sizeof(stu),1);fwrite(&xs,sizeof(stu),1,fp”,这就可以覆盖之前的信息并显示修改后的信息。

     

    5.3 总结

    通过本次实训,我对C语言程序设计有了更深入的了解。虽然实训的只有两天,但是从上周我就开始考虑并设计程序了。C语言是真的有趣,复杂却有条理的代码是真的有意思。虽然免不了枯燥乏味,但是将程序编写出来是非常有成就感的。本次实训我选择这个题目,就是因为题目中包含C语言,想着如何将这个程序编好,作为我学习C语言的结束的标志。在编写程序的过程中,当然陆陆续续地出现很多问题,出了参观以下别人写的程序外,还得专门百度来解决个别问题,这样就可以深入地了解这个问题,处理起来就比较容易。尤其对文件有了更深入的了解。更重要的是,通过这次实训,培养了自己的逻辑能力和独立思考的能力,我想这个才是最重要的。

     

     

    参考文献

    [1] 陈珂,陈静.实用C语言程序设计教程.中国电力出版社.2016.6

    [2] 谭浩强.软件工程导论[M].清华大学出版社,2013.6

    [3] 姜仲秋. C语言程序设计.南京大学出版社,1998.1.

    [4] K.N.King. C语言程序设计.人民邮电出版社.1998.2

     

    参考源码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
    #define N 20
    typedef struct
    {
      char name[10];
      int num;
      float c;
      float by;
      float sjk;
      float lssx;
    }stu;
    void menu() 
    {
       system("cls");  //清屏
       printf("\n\n\n\n\t\t\t*********   学生成绩管理系统  ***********\n");
       printf("\t\t\t             Time:2020年6月6日              \n");       
       printf("\t\t\t|==========================================|\n");
       printf("\t\t\t|*************1.  录入信息  ***************|\n");
       printf("\t\t\t|*************2.  查询成绩  ***************|\n");
       printf("\t\t\t|*************3.  修改信息  ***************|\n");
       printf("\t\t\t|*************4.  添加学生  ***************|\n");
       printf("\t\t\t|*************5.  删除成绩  ***************|\n");
       printf("\t\t\t|*************6.  显示成绩  ***************|\n");
       printf("\t\t\t|*************7.    统计    ***************|\n");
       printf("\t\t\t|*************0.    退出    ***************|\n");
       printf("\t\t\t|==========================================|\n");
       printf("\t\t\t|******************************************|\n");
       printf("\n\n\t\t\t      请选择相应的功能<输入编号>:");
    }
    //录入信息
    
    void input()
    {
        FILE *fp;
        stu xs;                                   /*定义一个结构体变量来装从文件中读出来的数据*/
        if((fp=fopen("student.dat","ab"))==NULL)  //判断文件能否打开
    	{
    	   printf("can't open the file!\n");exit(0);     //正常退出
    	}
        printf("\n录入格式: 姓名 学号 C语言 编译原理 数据库 离散数学 \n");
    	printf("当输入姓名为<End>结束录入\n");
        while(1)                                
    	{
            scanf("%s",xs.name);
            if(strcmp(xs.name,"End")==0) break;   //判断姓名是否为LAST,用字符串判断
            scanf("%d%f%f%f%f",&xs.num,&xs.c,&xs.by,&xs.sjk,&xs.lssx);
            fwrite(&xs,sizeof(stu),1,fp);        //将成绩信息写入文件
    	}
        fclose(fp);
    }
    //姓名定义
    
    void xingming()
    {
        FILE *fp;
        stu xs;
        char name[10];
        printf("\n请输入需要查询的学生姓名: ");
    	scanf("%s",name);
        if((fp=fopen("student.dat","rb"))==NULL) 
    	{
    	   printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))                           //判断文件是否到达末尾,即读取文件失败时
    	{
            fread(&xs,sizeof(stu),1,fp);
            if(strcmp(xs.name,name)==0)//按姓名查询时判断输入的姓名是否存在,会循环从数据中找取
    		{
               printf(" 学生的信息如下:\n");
               printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
               printf("%10s %6d %6.2f %6.2f   %6.2f  %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
               break;
    		}
    	}
        if(feof(fp))
    		printf("ERROR,查找失败!!!"); /*学生不存在*/
        fclose(fp);
    }
    
    //学号定义
    
    void xuehao()
    {
        FILE *fp;
        stu xs;
        int num;
        printf("\n请输入需要查询的学生学号: ");
    	scanf("%d",&num);
        if((fp=fopen("student.dat","rb"))==NULL)
    	{
    	    printf("can't open the file");exit(0);
    	}
        while(!feof(fp))
    	{
            fread(&xs,sizeof(stu),1,fp);
            if(xs.num==num)/*按学号查询时判断输入的学号是否存在,会循环从数据中找取*/
    		{
                 printf(" 学生的信息如下:\n");
               printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
               printf("%10s %6d %6.2f %6.2f   %6.2f   %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
                 break;
    		}
    	}
         if(feof(fp)) 
    		 printf("ERROR,查找失败!!!");
         fclose(fp);
    }
    
    //查询
    
    void search()
    {
    	char ch1;
    	system("cls");
        printf("请选择何种方式查询<编号>:\n");
        printf("1->姓名,2->学号:");
        ch1=getchar();              /*用字符接收*/
        switch(ch1)                 /*判断*/
      {
        case '1':xingming();break;
        case '2':xuehao();break;
      }
    getch();                       /*让屏幕停留同时按任意键返回*/ }
    
    //修改:输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;
    
    void modify1()
    {
    
        stu xs;
        FILE *fp;
        char name[10];
        printf("\n请输入要修改的学生姓名: ");
    	scanf("%s",name);
        if((fp=fopen("student.dat","rb+"))==NULL)
    	{
         	printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))
    	{
             fread(&xs,sizeof(stu),1,fp);
             if(strcmp(xs.name,name)==0)                      /*判断输入要修改的姓名是否存在*/
    		 {
                printf(" 修改前学生的信息:\n");
                printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
                printf("%10s %6d %6.2f %6.2f  %6.2f  %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
                printf("\n请依次输入 C语言 编译原理 数据库 离散数学的成绩:");
    			scanf("%f%f%f%f",&xs.c,&xs.by,&xs.sjk,&xs.lssx);
                break;
    		 }
    	}
        if(!feof(fp))
    	{
             printf(" \n 修改后的学生的信息如下:\n");
             printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
             printf("%10s %6d %6.2f %6.2f  %6.2f  %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
    		 fseek(fp,-sizeof(stu),1);   //负号表示后退,1表示文件当前位置
    		 fwrite(&xs,sizeof(stu),1,fp);  //再重新写入,同时把之前的要修改的覆盖掉
    	}
        else
             printf("\nERROR,学生不存在,修改失败!!");
        fclose(fp);
    	getch();
        
    }
    
    //修改:输入学生的学号,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;
    
    void modify2()
    {
        stu xs;
        FILE *fp;
        int num;
        printf("\n请输入要修改的学生学号: ");
    	scanf("%d",&num);
        if((fp=fopen("student.dat","rb+"))==NULL)
    	{
    	    printf("can't open the file!\n");exit(0);
    	}
    
        while(!feof(fp))
    	{
           fread(&xs,sizeof(stu),1,fp);
             if(xs.num==num)/*判断输入要修改的姓名是否存在*/
    		 {
                printf(" 修改前学生的信息如下:\n");
                printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
                printf("%10s %6d %6.2f %6.2f  %6.2f  %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
                printf("\n请依次输入C语言 编译原理 数据库以及离散数学的成绩:");
    			scanf("%f%f%f%f",&xs.c,&xs.by,&xs.sjk,&xs.lssx);
                break;
    		 }
    	}
        if(!feof(fp))
    	{
            printf(" \n 修改后的学生的信息如下:\n");
             printf("\n%10s %6s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
             printf("%10s %6d %6.2f %6.2f  %6.2f  %6.2f \n",xs.name,xs.num,xs.c,xs.by,xs.sjk,xs.lssx);
    		fseek(fp,-sizeof(stu),1);
    		fwrite(&xs,sizeof(stu),1,fp);
    	}
        else
            printf("\nERROR,学生不存在,修改失败!!");
    	getch();
        fclose(fp);
        
    }
    //选择修改方式
    void modiway()
    {
        char ch1;
        system("cls");
        printf("请输入按何种方式修改<编号>:\n");
        printf("1->姓名,2->学号:");
        ch1=getchar();       /*用字符接收*/
        switch(ch1)          /*判断*/
    	{
          case '1':modify1();break;
          case '2':modify2();break;
    	}
    
        getch();/*让屏幕停留同时按任意键返回*/ 
    }
    
    //插入:输入学生的平时的各项成绩,插入到指定位置;当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果
    void insert()
    {
    	int i=0,j,k,lenth;
        FILE *fp;
        stu s,xs[N];
        system("cls");
        printf("\n请输入添加的学生的姓名:");
    	scanf("%s",&s.name);
        printf("\n学生的学号:");scanf("%d",&s.num);
        printf("\n学生的成绩:C语言、编译原理、数据库、离散数学:");scanf("%f %f %f %f",&s.c,&s.by,&s.sjk,&s.lssx);
        printf("\n请输入插入到第几行:");scanf("%d",&k); 
        if((fp=fopen("student.dat","rb"))==NULL)
    	{
    	    printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))
    	{
            fread(&xs[i],sizeof(stu),1,fp);/*把数据读入到结构体数组中*/
            if(feof(fp)) break;
            i++;
    	}
        fclose(fp);
        lenth=i;                            //记录此时lenth最大
        if(k<lenth && k>=0)                 /*k的位置要位于数组范围之内*/
    	{
           for(j=lenth-1;j>=k;j--)
               xs[j+1]=xs[j];               /*一开始j是最大的,往后移一个这样移动避免数据被覆盖*/
               xs[k]=s;                     /*将输入的学生信息加入这个k位置*/
               lenth++;                   //增加一个学生空间,否则会少一个数据
           if((fp=fopen("student.dat","wb"))==NULL)
    	   {
    	        printf("不能建立文件!!\n");exit(0);
    	   }
           for(i=0;i<lenth;i++)
           fwrite(&xs[i],sizeof(stu),1,fp);  //存入数据
    	}
        else/*不再数组范围之内*/
    	{
            if((fp=fopen("student.dat","ab"))==NULL) 
    		{
    	       printf("不能建立文件!!\n");exit(0);
    		}
        fwrite(&s,sizeof(stu),1,fp);
    	}
    	fclose(fp);
    }
    
    //显示
    
    void print()
    {
        FILE *fp;
        stu s;
        system("cls");
        if((fp=fopen("student.dat","rb"))==NULL)
    	{
    	    printf("can't open the file!\n");exit(0);
    	}
        printf("\n%10s %s %6s %6s %6s %6s \n","姓名","学号","C语言","编译原理","数据库","离散数学");
        while(!feof(fp))
    	{
            fread(&s,sizeof(stu),1,fp);  //从文件中读取成绩信息
               if(feof(fp)) break;       //判断是否文件尾
                  printf("%10s %4d %6.2f %6.2f  %6.2f  %6.2f \n",s.name,s.num,s.c,s.by,s.sjk,s.lssx);
    	}
        fclose(fp);
        getch();
    }
    
    //删除:输入学生姓名,若该学生存在,则删除,并显示删除后余下的学生成绩信息
    
    void delete1()
    {
    
        stu xs[N];
        FILE *fp;
        char name[10];
        int i=0,len,k=-1/*k<0是为后面if判断用的*/;
        system("cls");
        printf("\n请输入要删除的学生姓名: ");scanf("%s",name);
        if((fp=fopen("student.dat","rb+"))==NULL) 
    	{
    	    printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))
    	{
           fread(&xs[i],sizeof(stu),1,fp);
           if(feof(fp)) break;
           if(strcmp(xs[i].name,name)==0) k=i;
           i++;
    	}
        fclose(fp);
    
    //以下是删除后重新写文件
    
        len=i;/*结构体数组上限*/
        if(k>=0)/*k>0说明找到删除学生位置*/
    	{
          if((fp=fopen("student.dat","wb+"))==NULL) 
    	  {
    	      printf("can't open the file!\n");exit(0);
    	  }
          for(i=0;i<len;i++)
    	  {
          if(i==k) continue;/*从这个位置开始写入*/
          fwrite(&xs[i],sizeof(stu),1,fp);
    	  }
          fclose(fp);
    	}
          else {printf("ERROR,删除失败!!!\n");getch();} /*失败后重新返回菜单*/
          print();
    }
    
    
    //删除:输入学生学号,若该学生存在,则删除,并显示删除后余下的学生成绩信息
    
    void delete2()
    {
        stu xs[N];
        FILE *fp;
        int num;
        int i=0,len,k=-1/*k<0是为后面if判断用的*/;
        system("cls");
        printf("\n请输入要删除的学生学号: ");
    	scanf("%d",&num);
        if((fp=fopen("student.dat","rb+"))==NULL) 
    	{
    	printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))
    	{
            fread(&xs[i],sizeof(stu),1,fp);
            if(feof(fp)) break;
            if(xs[i].num==num)
    			k=i;
                i++;
    	}
        fclose(fp);
    //以下是删除后重新写文件
    
        len=i;/*结构体数组上限*/
        if(k>=0)/*k>0说明找到删除学生位置*/
    	{
        if((fp=fopen("student.dat","wb+"))==NULL) 
    	{
    	     printf("can't openfile!\n");exit(0);
    	}
        for(i=0;i<len;i++)
    	{
           if(i==k) continue;/*从这个位置开始写入*/
           fwrite(&xs[i],sizeof(stu),1,fp);
    	}
        fclose(fp);
    	}
        else {printf("ERROR,删除失败!!!\n");getch();} /*失败后重新返回菜单*/
        print();
    }
    
    
    //删除
    
    void deleteway()
    {
        char ch1;
        system("cls");
        printf("请输入按何种方式删除:\n");
        printf("1->姓名,2->学号:");
        ch1=getchar();/*用字符接收*/
        switch(ch1)/*判断*/
    	{
    	case '1':delete1();break;
        case '2':delete2();break;
    	}
    	getch();/*让屏幕停留同时按任意键返回*/
    }
    
    //统计C语言成绩情况
    
    void count() 
    {
        int i=0,j=0,k=0,l=0,m=0,n,p,q,r,t,u;   //j,k,m,l分别是指各个分数段,n,p,q,r也是
        FILE *fp;
        stu s[N], *p1[N],*p2[N],*p3[N],*p4[N];/*用指针数组*/
        system("cls");
        if((fp=fopen("student.dat","rb"))==NULL)
    	{
    	    printf("can't open the file!\n");exit(0);
    	}
        while(!feof(fp))
    	{
            fread(&s[i++],sizeof(stu),1,fp);/*读入数据*/
            if(feof(fp)) break;  //到文件末尾中断程序
    	}
        t=i;i=0;           //t 指最大
        for(u=0;u<t;u++)/*以下每个指针数组用于指向各分数段的学生信息*/
    	{
            if(s[i].c<60) 
    		{
    			p1[j++]=&s[i++];continue;
    		}                                     /*每个学生信息只能位于一个分数段*/
            if(s[i].c>=60 && s[i].c<80) 
    		{
    			p2[k++]=&s[i++];continue;
    		}
            if(s[i].c>=80 && s[i].c<90) 
    		{
    			p3[l++]=&s[i++];continue;
    		}
            if(s[i].c>=90)
    		{
    			p4[m++]=&s[i++];continue;
    		}
    	}
        printf("     不及格:姓名 学号 C语言\n");
        for(n=0;n<j-1;n++)
    	{
            printf("%14s %4d %6.2f\n",p1[n]->name,p1[n]->num,p1[n]->c);      //逐个显示个分数段信息,显示上面指针的内容
    	}
        printf(" 60-79分之间:姓名 学号 C语言\n");
        for(p=0;p<k;p++)
    	{
            printf("%16s %4d %6.2f\n",p2[p]->name,p2[p]->num,p2[p]->c);
    	}
        printf(" 80-89分之间:姓名 学号 C语言\n");
        for(q=0;q<l;q++)
    	{
            printf("%16s %4d %6.2f\n",p3[q]->name,p3[q]->num,p3[q]->c);
    	}
        printf("90以上:姓名 学号 C语言\n");
        for(r=0;r<m;r++)
    	{
            printf("%12s %4d %6.2f\n",p4[r]->name,p4[r]->num,p4[r]->c);
    	}
        fclose(fp);
        getch();
    }
    
    
    //菜单选择
    
    void main()
    {
    	char ch;
        while(1)
    	{
          menu();// 显示菜单
          ch=getch();//选择菜单
          if(ch=='0') 
    		  break;
          switch(ch)//判断功能项
    	  {
          case '1':input();break;
          case '2':search();break;
          case '3':modiway();break;
          case '4':insert();break;
    	  case '5':deleteway();break;
          case '6':print();break;
    	  case '7':count();break;
    	  }
    	} 
    	printf("\n\n\n\t\t\t\tWelcome to use,Goodbye!\02!\n");
    }
    

     

    展开全文
  • 关于三银龙公司的实践报告 关于三银龙公司的实践报告 为了响应学校的号召参加社会实践活动,随便也让自己的暑期生活变的丰富起来。所以决定利用我在学校学到的办公信息化知识到公司进行实习。我在北京三银龙科贸有限...
  • 集中实践课程报告 课程名称 程序设计综合训练 实践方向 PHP开发 专业班级 计算机专业 2016级164班 姓名 林文辉 学号 2016011147 起止日期2018年7月2日-2018年7月12日 一背景介绍 项目名称PHP用户信息管理系统 ...
  • 暑假社会实践学习报告,主要是针对信息管理与信息系统方面的报告
  • 浙江万里学院集中实践课程报告课程名称: 程序设计综合训练实践方向: PHP开发专业班级: 计算机专业2016级164班姓名: 林文辉 学号: 2016011147起止日期: 2018年7月2日-2018年7月12日一、背景介绍项目名称:PHP...

    浙江万里学院

    集中实践课程报告

    课程名称:  程序设计综合训练

    实践方向: PHP开发

    专业班级: 计算机专业2016级164班

    姓名: 林文辉 学号: 2016011147

    起止日期: 2018年7月2日-2018年7月12日

    一、背景介绍

    项目名称:PHP用户信息管理系统

    面向群体:个人用户、小型企业、小型团队

    开发环境:PHP结合MYSQL数据库

    背景介绍:随着信息化时代的不断推进,人们不断意识到海量的信息实际上也是一种重要资源,如何将这些信息进行利用,信息管理应运而生。信息管理诞生的目的就是为了提高信息利用效率、最大限度地实现信息效用价值,如今信息遍布社会的方方面面,成为社会发展的中坚力量,谁把握了信息谁就把握了时代,无论是企业管理者,还是团队领导者,都需要重视信息的把握及信息的管理。而信息的管理是一件不太容易的事情,为了让非专业的人也能轻松的管理信息,于是便有了信息管理系统,它由多个学科交叉,应用多种技术,像计算机技术、数据库技术、通信技术等等。它使得信息管理更加高效,也让信息管理的同时能够事实的共享,便于协同工作。本项目就是一个信息管理系统,虽然只是用户信息管理系统,加以修改也可以很轻松的调整为其他信息的管理系统。

    二、需求分析

    分析: 该项目是由PHP结合MYSQL开发的小型用户信息管理系统。

    MYSQL需要能够与PHP进行链接,在链接的基础上,系统应当能够获取到数据库中的相关信息,并且直观简洁的形式呈现在前端界面提供给使用者。与此同时,应当提供一定的编辑功能,使用者可以通过前端的交互操作来对数据库的内容进行增加删除修改,并且这个过程应当是简单明了的,点击网页上的按钮即可完成实现对应的功能。

    另外,需配有简易的后台登录功能,即数据库后台存放管理员信息,使用者需要填写正确的管理员账号及密码方可进入信息管理系统,在未登录的情况下,对操作进行拦截并跳转到登录界面。

    最后,项目上传至服务器后,需要能够切实可用,而且使用者可以随时随地,方便快捷的进行管理用户信息数据,并支持多端同步。

    根据上述分析,总结本项目需要具备如下功能:

    ·管理员账号的登录与退出

    ·管理员账号、密码的验证

    ·当且仅当管理员登录时方可进入数据管理系统

    ·可以查看数据库的用户信息表,具备简易分页功能

    ·可以对数据库用户信息表的内容进行增加

    ·可以对数据库用户信息表的内容进行删除

    ··可以对数据库用户信息表的内容进行修改

    ·可视化的UI界面,对应的操作都至少具备按钮、超链接等交互方式

    概要设计

    PHP方面:

    【用户信息模块】

    此模块又分为四部分:

    用户信息查询:该部分暂时只具备分页查询,按ID依次排序展示到前端界面,不具备按条件/索引查询等其他功能,在链接数据库的基础上,对数据库总记录数进行统计,并设置对应变量(每页显示条数、偏移量等),通过数学逻辑运算,对变量进行整合可以实现分页查询。

    用户信息添加:单独写一个前端界面提供该功能,利用html的submit表单提交,method=“post”可以实现将用户前端填写的数据传到后台,结合数据库链接操作,配置对应的sql语句即可实现该部分功能。

    用户信息删除: 删除操作比较简单,获取需要删除记录的id,在数据库中删除对应id的数据即可实现。

    用户信息修改:与添加操作基本一致,也是单独写一个前端界面提供该功能,也是利用html的submit表单提交,method=“post”结合数据库链接实现的,不同之处就是对应的sql语句不同。

    【登录模块】

    数据库方面:

    由于项目体量问题,初步设定为两张表。

    第一张表为user表,主要负责存放用户信息,以便于提供给php进行增删改查的相关操作。表中应至少具备编号、姓名、性别以及其他常用信息等若干个字段信息。

    第二张表为admin_user表,主要负责存放管理员账号信息,提供给php登录时进行匹配判断输入的账号密码是否正确。表中应至少具备,编号、账号、密码三个字段信息。

    详细设计

    PHP目录结构及对应功能:

    └─project (项目工程文件根目录,压缩包内wl_project.sql为数据库文件)

    │ config.php (项目中一些常量,主要是一些数据库的配置信息,单独处理在该文件,方便init.php调用)

    │ index.php (整个项目的主页 本身没有什么内容,调用menu.php显示一个导航栏)

    │ init.php (项目的初始化文件,该文件通过拼接的方式定义了两个常用的地址类常量 ADMIN_URL和ADMIN_PATH 在后面涉及地址跳转等操作的文件中经常性使

    展开全文
  • 随着密码学在网络信息系统的广泛应用,密码技术的标准化和管理的规范化也初具雏形,为信息安全保障提供了坚实的后盾。本实践通过介绍对称加密算法和非对称加密算法,并利用CrypTool软件模拟算法,来提高我们生活中的...
  • 人力资源管理信息 系统 上机实践报告 目录 1系统分析报告 3 1.1 系统详细调查 3 1.1.1 系统开发背景 3 1.1.2 信息系统范围 4 1.1.3 项目开发方法概述 4 1.1.4 组织结构图 4 1.2 业务流程图 5 1.2.1 业务流程分析 5 ...
  • 20XX计算机系学生社会实践报告范例 通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,了解设计专题的主要内容,为毕业设计的顺利进行做好充分的准备,并为自己能顺利与社会环境接轨做准备。 [实践任务]...
  • 计算机大学生的社会实践报告参考 通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,了解设计专题的主要内容,为毕业设计的顺利进行做好充分的准备,并为自己能顺利与社会环境接轨做准备。 [实习任务] ...
  • 学生成绩档案管理系统的主要实现有以下几点: 1.学生信息录入。 2.对学生信息的浏览、增加、删除和修改。 3.按照学生成绩确定名次并输出信息,其中将使用到排序算法。 4.要求可对学生进行信息查询,根据学号或姓名...
  • 一:获得与专业有关知识技能,接受实习单位文化熏陶,了解政府和事业单位管理模式。进一步加深对所学理论知识的理解,进一步熟悉理论和技能在实践中的应用。以让自己理论知识更加扎实,专业技能更加过硬,更加善于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 484
精华内容 193
关键字:

信息管理实践报告