PHP成绩管理系统,课程设计报告

课程设计报告

课程设计名称:  Php web课程设计

系部名称:中印计算机软件学院

学生姓名:  苟祥明                 

班   级:  11级软件1班           

学   号:  201101080026           

成   绩:                         

指导教师:  董小刚                 

开课时间:  2013  学年第 二 学期


目录

1、需求与功能分析                                         3

2、系统总体框架                                          4

3、模块设计与分析                                        4

4、类的设计与分析                                        6

7、存在的不足与对策                                     8

9、体会感受                                             10

10、参考文献                                            10


1需求与功能分析

(1)需求分析

学生成绩管理系统主要提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息,查看留言、提交留言。教师可以通过成绩管理系统查阅学生成绩信息,教师信息,查看教师留言、学生留言、提交留言、留言的管理等相关操作。系统管理员可以实现以上的所有功能,还有对学生的添加、删除、修改、教师的添加、删除、修改,数据库的备份、数据库的还原等相关操作。

(2)功能分析
   “学生成绩管理系统”包括九个模块:输入学生资料,输出学生资料,学生姓名按顺序排列,添加学生资料,按姓名查找,删除该学生资料,查找并显示学生资料,按姓名查找,修改该学生资料,从文件中读入数据,储存学生资料并退出系统。

本系统根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方便对成绩的各项管理操作。本系统能对成绩进行输入和输出;能按姓名对学生进行排序,并显示学生资料、成绩等,不过得以系统输入学生资料、成绩为前提;能添加学生成绩资料;能根据学生的姓名来查询该学生的成绩资料,并修改或是删除该学生信息;能够从文件中读取学生信息,并且添加到系统中;能把对系统所进行的操作进行保存,以及时更新系。

3、模块设计与分析

    (1)输入学生资料模块:

主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。在准确输入学生资料后,就可以对该学生的各科成绩进行录入。该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。  

(2)输出学生资料模块:

主要功能用来对学生的成绩进行输出。在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的班级,学号,姓名和各科成绩。在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。  

(3) 按学生姓名进行排列模块

 主要功能是用来对学生的资料按姓名进行排序。在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏相同或是相近的同学的资料。

  (4) 添加学生资料模块

主要功能是用来添加学生资料,成绩。如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。

主要功能是用来删除学生资料。在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化

(6)查找并显示学生资料模块

主要功能是用来查找学生资料。在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息

(7)按姓名查找,修改学生资料模块

主要功能是用来修改学生资料。在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息。

(8)从文件中读入数据模块

主要功能是用来从文件中读入学生数据。由于一些资料可以用Word文档或Excel表格输入,故在此模块中增加了导入数据的功能。这样就方便很多,不用把学生资料一个一个添加,节省了很多时间精力。

(9)储存学生资料并退出系统模块

   主要功能是用来储存学生资料。在对系统进行一系列操作,比如添加、删除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。

4、类的设计与分析

Student类类图

typedef class

{

       public:

 char num[10];

 char cla[10];

 char name[20];

 char byyl[10];

 char jsjzc[20];

 char sjk[10];

 char jsjyy[20];

}Student;

表1  Student类说明表

*         

  代码:

void main()         //主函数调用。

{

 int n=0;

 for(;;)

 {

  switch(menu())

  {

   case 1:

    cout<<setw(15)<<" "<<"输入学生资料"<<endl;

    n=Input(stu,n);

    break;

   case 2:

    cout<<setw(15)<<" "<<"输出所有学生资料"<<endl;

    Display(stu,n);

    break;

   case 3:

    cout<<setw(15)<<" "<<"按姓名排序"<<endl;

    Sort(stu,n);

    cout<<setw(15)<<" ";

    system("pause");

    break;

   case 4:

    cout<<setw(15)<<" "<<"插入学生资料"<<endl;

    n=Insert(stu,n);

    cout<<setw(15)<<" ";

    system("pause");

       break;

   case 5:

    cout<<setw(15)<<" "<<"删除学生资料"<<endl;

    cout<<setw(15)<<" "<<"输入他(她)的姓名:";

    n=Delete(stu,n);

    cout<<setw(15)<<" ";

    system("pause");

    break;

   case 6:

    cout<<setw(15)<<" "<<"查找学生"<<endl;

    Query(stu,n);

    cout<<setw(15)<<" ";

    system("pause");

    break;

   case 7:

    cout<<setw(15)<<" "<<"修改学生资料"<<endl;

    cout<<setw(15)<<" "<<"输入你要修改的学生的姓名:";

    n=Xiugai(stu,n);

    system("pause");

    break;

   case 8:

    cout<<setw(15)<<" "<<"从文件中读入数据"<<endl;

    n=AddfromText(stu,n);

    break;

   case 0:

    cout<<setw(15)<<" "<<"将所有资料写入文件"<<endl;

    WritetoText(stu,n);

    cout<<setw(15)<<" ";

    system("pause");

    break;

 

  }

 }

}

5、存在的不足与对策

本学生成绩管理系统由九个模块组成,每个模块相互联系又相互独立。这个学生成绩管理系统存在着很多不足之处,由于自己本身编程能力的问题,这个系统可以实现的功能非常有限。只能实现学生管理系统最基本的功能,可以进行简单的输入、输出学生资料,查询和修改学生信息,能直接从文件中读入数据,能对系统所作的修改、操作进行保存等。而且在每个模块也有不足的地方,比如在输入学生资料时,对每个信息项没有严格的规定,可以输入任何的字符。同时有些模块还不能实现本应该有的功能,这有待以后努力,争能够实现该有的功能。

在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用。如今,不管是小学、初中、高中、甚至是很多大学生的学生成绩管理基本上是靠人工进行管理,但随着时间的变化,学校规模的扩大,有关学生成绩管理工作和所涉及到的数据量越来越大越来越多,大多数学校不得不靠增加人力、物力、财力来进行学生成绩管理。但是人工管理成绩档案具有效率低、查找麻烦、可靠性不高、保密性低等因素。因此开发出一个不仅仅是适用于大中专院校以及其它高校通用的学生成绩管理系统是必要的。
    开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平。为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化。现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素。在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替。一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息、高效、安全,学生在能方便的查看自己的成绩。

6、程序源代码

#include<iostream>

#include<stdio.h>

#include<ctype.h>

#include<stdlib.h>

#include<string.h>

#include<iostream>

#include<iomanip>

using namespace std;

typedef class

{

    public:

 char num[10];

 char cla[10];

 char name[20];

 char byyl[10];

 char jsjzc[20];

 char sjk[10];

 char jsjyy[20];

}Student;

Student stu[80];

int menu()

{

 char c;

 for(;c<'0'||c>'8';)

 {

  system("cls");

        cout<<"                           欢迎使用本学生成绩管理系统!!"<<endl;

  cout<<"编程人员:纪欣吉";

  cout<<endl;

  cout<<"******************************  学生成绩管理系统  ****************************** "<<endl;

  cout<<setw(32)<<" "<<"1.输入学生资料"<<endl;

  cout<<setw(32)<<" "<<"2.输出学生资料"<<endl;

  cout<<setw(32)<<" "<<"3.按学生姓名进行排列"<<endl;

  cout<<setw(32)<<" "<<"4.添加学生资料"<<endl;

  cout<<setw(32)<<" "<<"5.按姓名查找,删除该学生资料"<<endl;

  cout<<setw(32)<<" "<<"6.查找并显示学生资料"<<endl;

  cout<<setw(32)<<" "<<"7.按姓名查找,修改该学生资料"<<endl;

  cout<<setw(32)<<" "<<"8.从文件中读入数据"<<endl;

  cout<<setw(32)<<" "<<"0.储存学生资料并退出系统"<<endl;

     cout<<setfill('=')<<setw(48)<<"="<<endl;

  cout<<setw(15)<<" ";

  cout<<"请选择(0-8):";

  c=getchar();

 }

 return(c-'0');

}

int Input(Student stud[],int n)      //输入数据。

{

 int i=0;

 char sign,x[10];

 for(;sign != 'n' && sign != 'N';)

 {

  cout<<setw(15)<<" "<<"班级:";

  cin>>stud[n+i].cla;

  cout<<setw(15)<<" "<<"学号:";

  cin>>stud[n+i].num;

  cout<<setw(15)<<" "<<"姓名:";

  cin>>stud[n+i].name;

  cout<<setw(15)<<" "<<"编译原理:";

  cin>>stud[n+i].byyl;

  cout<<setw(15)<<" "<<"计算机组成原理:";

  cin>>stud[n+i].jsjzc;

  cout<<setw(15)<<" "<<"数据库:";

  cin>>stud[n+i].sjk;

  cout<<setw(15)<<" "<<"计算机英语:";

  cin>>stud[n+i].jsjyy;

7、体会感受

首先我觉得设计的先后顺序有了一定的认识,对于做软件设计来说,首要的就是要搞清用
户需求,也就是别人要干什么,然后再决定怎么干!一般情况下这时候要知道,谁来用这个系统,什么时候用这个系统,什么地方用这个系统,为什么用这个系统,用这个系统干什么,最后再搞清楚怎么做这个系统.在做需求分析的时候首先得跟客户沟通得出大致的需求,形成一个资料,然后再与客户探讨看看自己理解的业务有没有问题.我认为在与客户沟通之前最好对这个系统的概况有个大体的了解,这样也有利于交流,但不管怎么做与客户交流都是最重要的,如果一开始与客户的交流出了问题,以后作的过程中业务就会出问题,轻则反反复复的改,重则系统失败.需求设计以后就是概要设计,也就是考虑具体怎么做的时候.这时候做的方法有可能不同,但有一点应该是一样的,就是系统细化成各个小的功能块,同时决定数据库,之后就可以对每个功能块做详细设计了.概要设计时也要紧紧围绕业务来做,也要多交流,多与客户交流,同时项目组里也要多讨论!

8、参考文献

《TIPI:深入理解PHP内核》清华大学出版社

《C++程序设计试验指导》 钱能  清华大学出版社

《PHP和MySQL Web开发》   清华大学出版社

相关推荐