学生公寓管理系统设计

2023-04-29

第一篇:学生公寓管理系统设计

高校学生公寓管理系统设计

毕业设计(论文)开题报告

高校学生公寓管理系统设计

学生姓名

学号

系别

专业计算机毕业设计

届别

指导教师

职称

年月日

第二篇:学生管理系统 设计总结

概述

随着计算机技术的发展,特别是计算机网络技术与数据库技术的发展,使用人们的生活与工作方式发生了很大的改变。现代化管理高效、简洁,

数据库始于20世纪60年代,经过40多年的发展,现在已经形成了理论体系,成为计算机软件的一个重要分支。数据库技术体现了当代先进的数据管理方法,使计算机的应用真正渗透到国民经济各个部门,在数据处理领域发挥着越来越大的作用。

而互联网技术的出现,更是进一步丰富的人类生活,数字化生存已经一步步走进我们的生活与工作。互联网技术与数据库技术的结合为计算的在人类生活中的应用带来了巨大的影响。产业信息化,管理现代化,科学化已经成为行业发展的重要课题,这不仅是企业提高自身竞争力,甚至是国家提高综合国力,走向国民富强的重要手段。

我国人口众多,学生数目庞大,要进行信息化管理就需要建立合适的信息管理系统,在实现基础的管理功能的同时做好数据的整理、安全功能。通过使用信息管理系统,可以极大提高工作效率。

背景分析

学生信息是学校管理中一项繁琐的工作。管理人员需要建立学生的学籍,汇总每学期没有拿到规定学分的学生,及这些学生的详细情况;学生完成一门课程的学习后,教师学要录入学生的考试成绩,计算平均成绩,汇总各分数段的人数;学生需要查询已结业的各门课程的成绩;班主任需要查询本班学生的学习情况,包括每个课程的平均成绩和每个学生的考试通过情况。为此,设计一套实用的学生信息管理系统就可以大大简化管理人员、班主任和任课教师的工作,方便学生查询自己的学习情况。此外还需要具备良好的扩充能力,以应付未来可能添加的新需求。

在账户管理方面需要分别处理老师和学生的账户,合理分配权限,做好系统安全。

总结

学生管理系统是一个典型的数据库管理系统应用。在制作过程中遇到的困难并不太多,主要是规划文档期间经验不足的问题,需要改很多遍。

接触了软件工程这门课程,我认为软件工程和我们平时上专业课相对来讲一个是宏观一个是微观。平时写软件是一个微观的,讲的是如何来实现各个功能的细微细节。而软件工程就相对来讲是一个宏观调控,从整体方面来分析系统的结构,可行性等等。

写软件我们是照着一定的思想一定思路去写下去,有人说其实写软件并不难,只要给你一个思路你就可以不断地往下写。我觉得确是如此,其实我们平时写软件我觉得并不是很难的事,平时即使遇到处理不了的技术问题,哪里编译出现错误等等其实都可以在网上提问。技术问题一般我们都可以在网上得到答案,但软件的思想不是我们看了一下就能真正理解的。

不论采用哪种方法来开发软件,分析的过程都是提取系统需求的过程。分析工作主要包括3项内容,这就是理解,表达和验证。首先,系统分析员通过用户及领域专家的充分交流,力求完全理解用户需求和该应用邻域中的关键性的背景知识,并用某种无二义性的方式把这种理解表达成文档资料。分析过程得出的最重要的文档资料是软件需求规格说明(在面向对象分析中,主要由对象模型,动态模型和功能模型组成)。

由于问题复杂,而且人与人之间的交流带有随意性和非形式化的特点,上述理解过程通常不能一次就达到理解的效果。因此,还必须进一步验证软件需求规格说明的正确性,完整性和有效性,如果发现了问题则进行修正。显然,需求分析过程是系统分析员与用户及领域

专家反复交流和多次修正的过程。也就是说,理解和验证的过程通常交替进行,反复迭代,而且往往需要利用原型系统作为辅助工具。

由此可见,软件工程在构筑、编写文档方面的工作实际上并不比编写代码的工作量要少,相反,有时候编写代码尤其是初步编写代码的工作量在整个工程中只占了很少的一部分工作。我们需要改变传统的编写软件的观点,从软件工程的角度来看待问题,这也是我学习软件工程这门课最大的收获。

第三篇:学生考勤管理系统设计报告

C/C++程序设计专题实验

报告

题目:学生考勤管理系统设计

班级:电子信息科学与技术131 姓名: 邬

目录

目录 ...................................................................... 1 摘要........................................................................2 1.设计要求和目的 ......................................................................................... 错误!未定义书签。

1.1设计目的................................................................3 1.2问题描述................................................................3 1.3功能要求................................................................3 1.4问题的解决方案..........................................................3 2 设计思路和方法 ........................................................................................................................... 4 3 主模块设计....................................................................................................................................5 4.运行测试及结果 ......................................................................................................................... 13 5. 总结........................................................................................................................................... 16 参考文献......................................................................................................................................... 16 源代码..............................................................................................................................................17

1

摘要

随着信息技术在管理上越来越深入的应用,管理信息系统的实施在技术上已经逐步成熟。管理信息系统是一个不断发展的学科,任何单位要生存要发展,要提高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的信息管理系统。

由于学校的学生管理系统缺乏开发,而学生人数不断增加,学生信息的不断更新,所以,学生考勤管理系统的建立就显得非常重要了。

本设计是基于Visual basic C++ 6.0开发环境,至上而下,层次化地设计学生考勤管理,综合考虑学生考勤管理所涉及的多方面问题,结合学校和教师的情况,有步骤,条理清晰的设计,操作简单,很方便的实现了学校和老师对学生考勤的管理。

关键词:学生考勤管理 C++ 信息录入 查询

2

1.设计要求和目的

1.1设计目的

(1)进一步锻炼学生对C++课程基础知识和实践技能的掌握和运用;

(2)要求学生基本掌握面向对象程序设计的基本思路和方法;

(3)要求学生能够利用所学的基础知识和技能,解决简单的面向对象设计问题。

1.2问题描述

学生信息包括:学号、姓名、性别、年龄、班级等信息。

考勤信息包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假和旷课)。

1.3功能要求

(1)添加功能:程序能够添加学生的记录和缺课记录,提供选择界面供用户选择所要添加的类别。添加学生记录时,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。还可以按课程名、学生姓名对缺课记录进行查询。

(3)显示功能:可显示当前系统中所有学生的记录和缺课记录,每条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。

(5)删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。

(6)统计功能:能根据多种参数进行统计。能按课程名统计出学生旷课的信息、还可以按姓名统计出任一学生的旷课情况。需要排序。

(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。 (8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。

1.4问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义;

3

(6)完成系统的应用模块; (7)功能调试;

(8)完成系统总结报告。 (7)功能调试;

(8)完成系统总结报告。

2.设计思路和方法

2.1设计思路

根据设计要求,经分析可将整个系统划分为7个功能模块。数据管理中可以对学生的基本信息、课程的基本信息、学生缺课的查询、添加、删除和修改。查询管理通过根据学生姓名,课程姓名 时间段儿等信息,查询单个学生的缺课记录,单科课的旷课记录,单个学生的旷课记录。功能模块图如下图所示:

学生考勤管理程序建立学生缺课记录修改学生缺课记录查询学生缺课记录查看单科旷课记录查看学生旷课记录载入学生旷课记录储存学生旷课记录

2.2数据结构设计

struct xueke {char xueke_name[50]; int people_num; }; 这是定义了一个xueke结构体,用来存放一个学科名及其相应的旷课人数;

struct student { char name[50]; long time; int lesson_time; char lesson_name[50]; int chidao_num;

4

int zaotui_num; int qingjia_num; int kuangke_num; struct student *next; };这是定义了一个student的结构体,用来存放一个学生的考勤记录, 其中有,字符数组name[50],lesson_name[50],分别存放学生名字,

缺课课程名字;int型变量lesson_time,chidao_num,zaotui_num,qingjia_num, kuangke_num,分别来存放,缺课节次,迟到次数,早退次数,请假次数,旷课次数 long型变量time,记录时间。

3.主模块设计

3.1建立学生缺课记录子模块

建立的学生人数,学生基本信息(包括缺课时间、学生姓名、课程名称、节次、迟到次数、早退次数、请假次数、旷课次数),用creat()函数,如下图:

开始int i,b;struct student *head,*p1,*p2; printf("请输入要建立资料的学生人数:");scanf("%d",&b);head=p2=NULL;p1=(struct student *)malloc(LEN);输入第一个学生成绩head=p1;p2=p1;i=0;student_num++;inext=p1;p2=p1;student_num++;i++p2->next=NULL结束

3.2修改学生缺课记录子模块

开始char xiugai_name[50];char xiugai_xueke_name[50];int k;printf("请输入要修改的学生姓名与学科名称:"); scanf("%s%s",xiugai_name,xiugai_xueke_name);struct student *p1,*p2; p2=(struct student *)malloc(LEN); p1=head;p1=p1->next;strcmp(xiugai_name,p1->name)!=0&&(p1->next!=NULL)&&strcmp(xiugai_xueke_name,p1->lesson_name)!strcmp(xiugai_name,p1->name)==0&&strcmp(xiugai_xueke_name,p1->lesson_name)==0显示修改菜单选择修改项目并完成修改结束

3.3修改学生缺课记录子模块

开始int i=0;char chaxun_name[50];struct student *p;p=head;printf("请输入要查询的人名:"); scanf("%s",chaxun_name);iname)==0输出p所指向的结构体数据结束

3.4查看单科旷课记录子模块

根据学科名称和时间范围查出所有在该范围内旷课的学生以及次数,

如下图:

开始struct student *p1,*p2,*p3; char lesson[50];long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(LEN);p1=head;p2=p1->nextxunhuan_numkuangke_num>p1->kuangke_numYp1=head;p2=p1->next;xunhuan_num++;p1=p2;p2=p2->next;交换p1与p2指向数据printf("请输入要查看的学科名称:");scanf("%s",lesson);printf("请输入要查看的时间范围"); scanf("%ld%ld",&look_time1,&look_time2);p1=head;p1!=NULLp1=p1->next;strcmp(lesson,p1->lesson_name)==0&&look_time1<=p1->time&&p1->time<=look_time2输出学生姓名和旷课次数结束

3.5查看学生旷课记录子模块

根据要查询的学科名称及时间段查出在改时间段内该门课上旷课的人数,如下图:

8

开始int n,i,j,zhongjian;struct student *p1;char zhongjian_name[50];long look_time1,look_time2;printf("请输入第%d个学科名称:",i+1);scanf("%s",a[i].xueke_name);a[i].people_num=0;printf("请输入要查看的时间范围由小到大");scanf("%ld%ld",&look_time1,&look_time2);p1=head;i=0;Yitime && p1->time<=look_time2Yp1=head;i++;Ni=0p1=p1->next;N(strcmp(a[i].xueke_name,p1->lesson_name)==0Ya[i].people_num+=p1->kuangke_num;Yj3.6载入学生旷课记录子模块

可以载入实现储存在当前文件夹中txt文件中所储存的数据,如下图:

9

开始struct student *p1=NULL,*p2=NULL,*head=NULL;struct student student_ziliao[100];int i=0,n=0;打开文件!feof(fp1)将文件里的数据存入结构体数组通过结构体数组建立链表结束

3.7储存学生旷课记录子模快

进入系统界面,进行数据的输入,信息的保存调用相应的函数打开相应的地址,查询各项信息。如下图:

10

开始struct student *p1;p1=head;打开文件xueshengziliao.txtp1!=NULLN将数据写入文件p1=p1->next;结束

Y

4.运行测试与结果

4.1开始菜单

4.2主菜单

12

4.3创建学生缺课记录库

4.4修改学生缺课记录

13

4.5查询学生缺课记录

4.6查看单科旷课记录

4.7查看学生旷课记录

14

4.8载入旷课记录

4.9储存旷课记录

5.总结

在老师同学的细心帮助下,结合网上的参考资料,这次设计总算顺利完成。通过本次设计,让我对C++基础课程有了更加深刻的理解,在相关的能力上有了很大的提高,虽然在设计过程中遇到很大的困难,但是经过不断的修改和调试,在此过程中受益匪浅。

这次的程序设计相对于平时的训练还是有了进步的。学生考勤管理系统要求至少要有四个类,在起初,对于定义哪四个类我是不清楚的,通过仔细的研读问题描叙终于在脑海里确定了这四个类。既然是学生考勤管理系统,那由学生缺课信息中的日期我想到了时间类,这是一个很简单的类。从系统的几大功能我又想到了系统的基础就是缺课学生的缺课信息,于是我又想到了一个信息类,还有两个类是根据两个统计功能想到的,在现在看来似乎有些不妥。通过这次的课程设计我明白了学习程序设计语言必须要勤做实验,通过实验总结经验。

15

平时遇到的一些小问题一定要重视,越是基础的知识越要理解透彻。比如指针与数组方面的知识,一旦没有弄清楚,在设计程序时就会吃亏。这次的课设中,我遇到了很多的问题,有的通过思考或查看书本解决了,有的还留在脑子里,只有通过孜孜不倦的求索我们才会有进步,不懂得思考就不能真正的掌握一门知识。这次的实验给以了我警示,让我明白我所掌握的知识还很欠缺,对于继承与派生这一章的知识,我以为自己勉强掌握了,这次实验后我发现我掌握得还不够。基类的保护成员公有继承到派生类,类外是否可以通过对象来访问呢,原先我认为是可以的,经过这次程序设计,我知道我错了。总之,我觉得做学问不应该马虎,对于所学一定要有深入的理解,这也是我这次课设得到的启示。

参考文献:

刘锐宇.Visual C++从入门到精通.清华大学出版社 谭浩强.C++语言程序设计.清华大学出版社

16

设计源程序代码:

#include

//stdio.h的内容用C++头文件的形式表示 #include

#include

//动态内存分配 #include

#include

//I/O流控制头文件 #define NULL 0 #define guding 10 #define LEN sizeof(struct student)

//定义了一个常数宏LEN,它的值等于结构体student的所占内存大小 using namespace std; int student_num; FILE *fp1;

//定义指针类型文件 struct xueke {

char xueke_name[50]; int people_num; };

struct student {

char name[50]; long time; int lesson_time; char lesson_name[50]; int chidao_num; int zaotui_num; int qingjia_num; int kuangke_num; struct student *next; }; void chaxun(struct student *head) {

int i; char chaxun_name[50]; cout<<"请输入要查询的人名:";

cin>>chaxun_name; struct student *p;

17

if(head==NULL)

cout<<"联系人为空"; p=head; for(i=0;i

if(strcmp(chaxun_name,p->name)==0) {

cout<<"缺课时间:"

早退次数:"

p=p->next;

//p的指针内容变成了p->next

}

} struct student *xiugai(struct student *head) {

char xiugai_name[50]; char xiugai_xueke_name[50]; int k; cout<<"请输入要修改的学生姓名与学科名称【格式:学生姓名(空格)学科名称】:"; cin>>xiugai_name>>xiugai_xueke_name; struct student *p1,*p2;

p2=(struct student *)malloc(LEN); p1=head; if(head==NULL) {

cout<<"没有学生信息 ";

return head; } while((strcmp(xiugai_name,p1->name)!=0||strcmp(xiugai_xueke_name,p1->lesson_name)!=0)&&(p1->next!=NULL))

p1=p1->next;

if(strcmp(xiugai_name,p1->name)==0&&strcmp(xiugai_xueke_name,p1->lesson_name)==0) {

cout<<"===================================修改信息 ================================= ";

cout<<" 1-修改缺课时间 ";

cout<<" 2-修改学生姓名 ";

cout<<" 3-修改课程名称 ";

cout<<" 4-修改第几节缺课 ";

cout<<" 5-修改迟到次数 ";

18

cout<<" 6-修改早退次数 ";

cout<<" 7-修改请假次数 ";

cout<<" 8-修改旷课次数 ";

cout<<"================================== ";

cin>>k;

switch(k)

{

case 1:

cout<<"请输入新的缺课时间:";

cin>>p1->time;

break;

case 2:

cout<<"请输入新的学生姓名:";

cin>>p1->name;

break;

case 3:

cout<<"请输入新的课程名称:";

cin>>p1->lesson_name;

break;

case 4:

cout<<"请输入新的缺课节次:";

cin>>p1->lesson_time;

break;

case 5:

cout<<"请输入新的迟到次数:";

cin>>p1->chidao_num;

break;

case 6:

cout<<"请输入新的早退次数:";

cin>>p1->zaotui_num;

break;

case 7:

cout<<"请输入新的请假次数:";

cin>>p1->qingjia_num;

break;

case 8:

cout<<"请输入新的旷课次数:";

cin>>p1->kuangke_num;

break;

} } return head;

19

} struct student *creat() { int i,b;

struct student *head,*p1,*p2;

cout<<"请输入要建立资料的学生人数:";

cin>>b;

head=p2=NULL;

p1=(struct student *)malloc(LEN);

cout<<"【输入格式:缺课时间(空格)学生姓名(空格)课程名称(空格)第几节(空格)迟到次数(空格)早退次数(空格)请假次数(空格)旷课次数】 ";

cout<<"请输入第1名学生信息:";

cin>>p1->time>>p1->name>>p1->lesson_name>>p1->lesson_time>>p1->chidao_num>>p1->zaotui_num>>p1->qingjia_num>>p1->kuangke_num;

head=p1;

p2=p1;

student_num+=1;

for(i=1;i

{

p1=(struct student*)malloc(LEN);

cout<<"请输入第"<

cin>>p1->time>>p1->name>>p1->lesson_name>>p1->lesson_time>>p1->chidao_num>>p1->zaotui_num>>p1->qingjia_num>>p1->kuangke_num;

p2->next=p1;

p2=p1;

student_num+=1;

}

p2->next=NULL;

return head; } void print(struct student *head) {

struct student *p; p=head; if(p==NULL)

cout<<"没有学生信息 "; while(p!=NULL)

{

cout<<"缺课时间:"

p=p->next; } } struct student *tongji_lesson(struct student *head) {

struct student *p1,*p2,*p3; char lesson[50]; long look_time1,look_time2; int xunhuan_num=0; p3=(struct student *)malloc(LEN); if(head==NULL) {

cout<<"没有学生信息";

return(head); } p1=head; p2=p1->next; while(xunhuan_num

while(p2!=NULL)

{

if(p2->kuangke_num>p1->kuangke_num)

{

p3->chidao_num=p2->chidao_num;

p3->kuangke_num=p2->kuangke_num;

p3->qingjia_num=p2->qingjia_num;

p3->zaotui_num=p2->zaotui_num;

p3->lesson_time=p2->lesson_time;

p3->time=p2->time;

strcpy(p3->lesson_name,p2->lesson_name);

strcpy(p3->name,p2->name);

p2->chidao_num=p1->chidao_num;

p2->kuangke_num=p1->kuangke_num;

p2->qingjia_num=p1->qingjia_num;

p2->zaotui_num=p1->zaotui_num;

p2->lesson_time=p1->lesson_time;

p2->time=p1->time;

strcpy(p2->lesson_name,p1->lesson_name);

strcpy(p2->name,p1->name);

p1->chidao_num=p3->chidao_num;

p1->kuangke_num=p3->kuangke_num;

p1->qingjia_num=p3->qingjia_num;

p1->zaotui_num=p3->zaotui_num;

21

p1->lesson_time=p3->lesson_time;

p1->time=p3->time;

strcpy(p1->lesson_name,p3->lesson_name);

strcpy(p1->name,p3->name);

}

p1=p2;

p2=p2->next;

}

p1=head;

p2=p1->next;

xunhuan_num++; } cout<<"请输入要查看的学科名称:"; cin>>lesson; cout<<"请输入要查看的时间范围【输入格式:时间(空格)时间】"; cin>>look_time1>>look_time2; p1=head;

while(p1!=NULL) {

if(strcmp(lesson,p1->lesson_name)==0&&look_time1<=p1->time&&p1->time<=look_time2)

cout<<"学生姓名:"

p1=p1->next; } return head; } struct student *tongji_student(struct student *head) {

struct xueke a[10]; int n,i,j,zhongjian; struct student *p1; char zhongjian_name[50]; long look_time1,look_time2; if(head==NULL) {

cout<<"没有学生信息 "; return head;

} cout<<"请输入一共的学科数:"; cin>>n; for(i=0;i

cout<<"请输入第"<>a[i].xueke_name; a[i].people_num=0;

}

22

cout<<"请输入要查看的时间范围由小到大【输入格式:时间(空格)时间】"; cin>>look_time1>>look_time2; p1=head; for(i=0;i

while(p1!=NULL&&look_time1<=p1->time&&p1->time<=look_time2)

{

if(a[i].xueke_name==p1->lesson_name)

a[i].people_num+=p1->kuangke_num;

p1=p1->next; }

p1=head;

}

for(j=0;j

for(i=0;i

{

if(a[i].people_num

{

zhongjian=a[i+1].people_num;

a[i+1].people_num=a[i].people_num;

a[i].people_num=zhongjian;

strcpy(zhongjian_name,a[i+1].xueke_name);

strcpy(a[i+1].xueke_name,a[i].xueke_name);

strcpy(a[i].xueke_name,zhongjian_name); }

else if(a[i].people_num==a[i+1].people_num&&strcmp(a[i].xueke_name,a[i+1].xueke_name)>0)

{

zhongjian=a[i+1].people_num;

a[i+1].people_num=a[i].people_num;

a[i].people_num=zhongjian;

strcpy(zhongjian_name,a[i+1].xueke_name);

strcpy(a[i+1].xueke_name,a[i].xueke_name);

strcpy(a[i].xueke_name,zhongjian_name); }

} for(i=0;i23

struct student student_ziliao[100]; int i=0,n=0; if((fp1=fopen("xueshengziliao.txt","rb+"))==NULL) { printf("cannot open file ");

return(head); }

while(!feof(fp1)) {if(fread(&student_ziliao[i],LEN,1,fp1)!=1)

{if(feof(fp1))

{fclose(fp1);

break; }

printf("file read error ");}

i++; } n=i; student_num=n; p1=p2=(struct student *)malloc(LEN); head=p1; for(i=0;ichidao_num=student_ziliao[i].chidao_num;

p1->kuangke_num=student_ziliao[i].kuangke_num;

strcpy(p1->lesson_name,student_ziliao[i].lesson_name);

p1->lesson_time=student_ziliao[i].lesson_time;

strcpy(p1->name,student_ziliao[i].name);

p1->qingjia_num=student_ziliao[i].qingjia_num;

p1->time=student_ziliao[i].time;

p1->zaotui_num=student_ziliao[i].zaotui_num;

p2->next=p1;

p2=p1;

p1=(struct student*)malloc(LEN); } p2->next=NULL; return(head); } void chucun(struct student *head) { struct student *p1; p1=head; fp1=fopen("xueshengziliao.txt","wb+"); while(p1!=NULL) {fwrite(p1,LEN,1,fp1);

p1=p1->next; } fclose(fp1); cout<<"

储存成功 "; } void main() {

24

struct student *head; int a,b,c; zhuye: cout<<"**********************

欢迎使用学生考勤管理系统

************************ ";

cout<<"

1_进入管理 ";

cout<<"

2_查看系统相关信息 "; cout<<"******************************************************************************** ";

cin>>a;

if(a==1)

{

do

{

cout<<"******************************************************************************** ";

cout<<"

1_建立学生缺课记录 ";

cout<<"

2_修改学生缺课记录 ";

cout<<"

3_查询学生缺课记录 ";

cout<<"

4_查看单科旷课记录 ";

cout<<"

5_查看学生旷课记录 ";

cout<<"

6_载入学生旷课记录 ";

cout<<"

7_储存学生旷课记录 ";

cout<<"

8_退出考勤管理程序 "; cout<<"******************************************************************************** ";

cin>>b;

switch(b)

{

case 1:

head=creat();

print(head);

break;

case 2:

head=xiugai(head);

print(head);

break;

case 3:

chaxun(head);

break;

case 4:

head=tongji_lesson(head);

break;

case 5:

head=tongji_student(head);

25

break;

case 6:

head=zairu();print(head);

break;

case 7:

chucun(head);

break;}

}while(b!=8);

}

else

{cout<<"******************************************************************** ";

cout<<"******************************1************************************* ";

cin>>c;

if(c==1)

goto zhuye;

}

}

26

欢迎使用本返

系统请

第四篇:语言课程设计-学生成绩管理系统

1、 课程设计的目的、任务

《汇编语言》课程设计对于巩固汇编语言理论知识,加强学生的实际动手能力和提高学生综合素质十分必要。课程设计的目的主要是通过程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。

2、 软件需求分析和设计

2.1学生成绩管理系统是对学生成绩的管理,其中包括以下几个模块: (1).插入一个数据(插入学生学号以及语数外三个成绩)。 (2)修改一个数据。 (3)删除学生成绩数据。 (4)查找学生成绩。 (5)查看学生成绩的排名 (6)查看学生成绩分布 (7)按esc键退出系统

2.2学生成绩管理系统应该包含以下信息:学号,语文成绩,英语成绩,数学成绩。因此,系统应该提供以下功能: (1)输出显示菜单。 (2)输入学生的成绩 (3)修改学生成绩 (4)删除学生成绩 (5)查询学生成绩 (6)显示学生成绩排名 (7)显示成绩分布统计 (8)按esc键退出系统

2.3依据程序的功能需求,该系统的功能结构图如下

系统功能结构图

2.4 程序流程图:

主程序流程图

查找学生成绩

插入学生学号及成绩

修改学生的成绩

显示各个学科各分数段的人数

3、 程序实现说明

3.1学生管理系统中各子程序如下:

(1).输入全部学生学号以及语文,英语,数学三科的成绩。 子程序名:insert 子程序描述:该子程序为输入字程序。系统在开始的时候是没有数据的,通过该子程序可以初始化系统,将学生的学号及成绩输入系统。

代码:

insert proc near ;定义进程子程序:插入学生,学号及 成绩 call input ;调用input add n,1 ret insert endp

(2).修改输入的成绩。 子程序名:modify 子程序描述:通过子程序修改学生的成绩 代码:

modify proc near ;定义进程子程序:修改学生学号,成绩 md1:output mess1 ;输出mess1 shuru ;调用宏shuru:二位数据输入 mov bl,n mov bh,0 mov al,dl mov si,0 md: cmp al,xh[si] ;先查找输入的学生是否存在

je qq1_1 ;查到的话,就跳转到qq1_1输入修改的值,

也就是重新输入。;结果相等则跳转到qq1_1 add si,1

cmp si,bx jbe md ;小于等于则跳转到md output mess ;输出mess jmp md1 ;不相等继续输入学号

qq1_1: ;转入修改的值重新输入。 mov di,si output mess2 output mess4 mov si,0 mov cx,3

qq3_1:shuruu ; cmp dx,78h ;

jbe qq2_1 ; output ts3 ; jmp qq1_1 ;qq2_1:mov buf[si],dl output bg ; add si,1 loop qq3_1 mov al,buf[0] ; mov chi[di],al mov al,buf[1]

分别输入语文,英语,数学成绩,并将其放 在缓冲区buf中 比较输入的成绩是否大于120,如果大于120的 话,那么重 新输入成绩 小于等于则转移到qq2_1 输出ts3 跳转到qq1_1 输出空格 将存入buf中的成绩,分别赋值给存放对应科 目的成绩的数组

mov eng[di],al mov al,buf[2] mov mat[di],al ret modify endp

(3).删除学生的成绩。 子程序名:delete 子程序描述:通过子程序删除学生的成绩 代码:

de proc near ;删除某个学生的记录 sc1:output mess1 shuru ;调用宏shuru,接受输入的学号 mov bl,n mov bh,0 mov al,dl mov si,0 sc: cmp al,xh[si] ;查询输入学号的学生信息是否存在,不存在的

话,重新输入学号 je sc2 ;相等则转移到sc2 add si,1 cmp si,bx jbe sc ;小于等于则转移到sc output mess ;输出mess jmp sc1 sc2: sub bx,si cmp bx,0 je sc3 ;相等则转移到sc3 mov cx,bx

sc4:mov dl,chi[si+1] mov chi[si],dl mov dl,eng[si+1] mov eng[si],dl mov dl,mat[si+1] mov mat[si],dl mov dl,xh[si+1] mov xh[si],dl add si,1 loop sc4 ;loop循环指令,执行操作(cx)<--(cx)-1.若 cx!=0,跳转到标号sc处循环执行;cx=0,则推出

循环,执行loop的下一条指令 sub n,1 sc3: ret de endp

(3).查询学生的成绩。 子程序名:find 子程序描述:通过子程序查询学生的成绩 代码:

find proc near ;定义进程子程序:查找学生成绩 call sum ;求学生的总成绩 call ping ;求学生的平均成绩

bj1:output mess1 ;输出mess1 shuru ;二位数数据输入 mov bl,n mov bh,0 mov al,dl

mov si,0

bj: cmp al,xh[si] ;将输入的学号与输入的学号相比,

je i ;存在的话,将此学生的成绩输出。je表示结果相

等则转移。 add si,1 cmp si,bx jbe bj ; output mess jmp bj1 i: output strr2 shuzi xh[si] ;shuzi output bg ; mov al,chi[si] cbw ; shuzii ax ;shuzii output bg ; mov al,eng[si] cbw ; shuzii ax ;shuzii output bg

mov al,mat[si] cbw shuzii ax output bg ;

mov al,pj[si] cbw

小于等于则转移到bj 为二位数据输出 输出空格 将字节变为字

为三位数据输出。 输出空格 将字节变为字

为三位数据输出 输出空格的字符串,用于与标题栏对齐

shuzii ax output bg

mov ax,si mov bl,2 mul bl mov bx,ax shuzii zc[bx] ;shuzii为三位数据输出

output bg ;输出空格的字符串,用于与标题栏对齐 shuzi mc[si] ;shuzi为二位数据输出 ret find endp

(4).显示学生的成绩排名。 子程序名:show 子程序描述:通过子程序显示学生的成绩排名 代码:

show proc near ;定义进程子程序:显示结果排名 call sum ;调用宏sum call ping ;调用宏ping call rank ;调用宏rank call shuchu ;调用宏shuchu ret show endp

3.2程序运行抓图:

主菜单

修改学生成绩

删除学生成绩

显示各个学科各分数段的人数

4、 程序总结

通过两个星期的学习,努力,终于完成了报告。系统可以很好的运行。这两个多星期的时间,几乎每天不是在敲代码,就是在看代码,查书,上网。系统中用到了很多最近才学习的知识,比如宏,子程序。这些都使得代码的运行效率提高了,代码行数减少了。系统还用到了bios的清屏功能。这些功能如果不是做课程设计,我想我很难会接触到这些知识。

由于自己对知识掌握的不是很牢固,其中也会碰到一些困难。每当遇到问题的时候,我会先上网去查找,看看有没有人提过这方面的问题。互联网是强大的,大部分的问题通过网络都可以解决。部分找不到的问题,我就去请教班里学得好的同学。他们对知识的掌握远超过我。这样下来,很多问题都迎刃而解了。

课程设计是一个很好的掌握书本上知识的过程。平时上课之后,自己都不会想着去敲一些代码联系联系。通过做课程设计,将理论与实践结合了起来,对知识的理解更加深入了。

第五篇:毕业设计 学生成绩管理系统

目 录

要 ....................................................................................... 错误!未定义书签。 Abstract .................................................................................... 错误!未定义书签。 目 录 ..........................................................................................................................Ⅲ 第一章 引言 ............................................................................ 错误!未定义书签。

1.1 课题的背景 .................................................................. 错误!未定义书签。 1.2 课题研究的内容 .............................................................................................1

1.2.1 课题来源 ...............................................................................................1 1.2.2 课题的意义 ...........................................................................................2 1.2.3 系统开发的可行性分析和预期目标 ...................................................2

第二章

关键技术分析 ............................................................................................5

2.1 Microsoft Visual Studio 2005 ...........................................................................5 2.2 C#.NET简介 ....................................................................................................5 2.3 ADO.NET对象 ................................................................................................6 2.4 使用SQL Sever 2000 实现关系型数据库 ....................................................7

2.4.1 SQL Server 2000数据库 .......................................................................7 2.4.2 SQL Server 2000的主要功能 ...............................................................8 2.4.3 客户端应用程序开发 .........................................................................10 2.4.4 服务器应用程序开发 .........................................................................11

第三章

系统设计与分析 .....................................................................................13

3.1 需求分析 .......................................................................................................13 3.2 系统总体设计原则 .......................................................................................13 3.3 系统业务流程图 ...........................................................................................15 第四章

数据库设计 ..............................................................................................17

4.1 系统功能描述 ...............................................................................................17 4.2 功能模块划分 ...............................................................................................18 4.3 系统数据库的组成 .......................................................................................19

4.3.1系统的实体关系模型 ..........................................................................19 4.3.2 数据库的具体设计 .............................................................................20 4.4 系统安全性设计 ...........................................................................................22

4.4.1 系统安全性构成 .................................................................................22 4.4.2 系统安全性设计 .................................................................................23

III

第五章

各功能模块的设计与实现 ....................................................................24

5.1 登陆界面。 ...................................................................................................24 5.2 主窗体页面。 ...............................................................................................27 5.3 管理员模块设计 ...........................................................................................28

5.3.1 管理员权限设计 .................................................................................28 5.3.2 学生成绩管理 .....................................................................................30 5.4 教师模块设计………………………………………………………………33

5.4.1 教师权限设计 .....................................................................................33 5.4.2 学生成绩管理页面 .............................................................................34 5.4.3 学生成绩查询页面 .............................................................................38 5.5 学生模块设计 .............................................................. 错误!未定义书签。

5.5.1学生权限设计 ..................................................... 错误!未定义书签。 5.5.2学生成绩查询 ..................................................... 错误!未定义书签。 5.6 系统管理 .......................................................................................................39

5.7.1密码修改页面 ......................................................................................39 5.7.2密码修改代码 ......................................................................................40

论 ........................................................................................................................43 参考文献 ....................................................................................................................44 致

谢 ........................................................................................................................45

IV

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:学生会文娱部工作总结下一篇:巡视工作会上表态发言