学生管理系统--面向对象程序设计

学生信息基本管理系统

一 实验目的

应用《C语言程序设计》课程的所有知识点,开发一个学生信息管理系统,采用计算机对学生信息进行管理,进一步提高了办学效益和现代化水平.为广大教师和学生提高工作效率,实现学生信息管理工作流程的系统化,规范化和自动化.现在我国的大中专院校的学生信息管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素.在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替.一个高效的学生信息管理系统可以存储历届的学生信息档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息,高效,安全,学生在能方便的查看自己的信息。

二 实验内容和主要任务

学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计学生信息管理系统,使之能提供以下功能:

1)    安全模块

2)    信息录入

3)   信息浏览

4)    学号查询

5)    姓名查询

6)    信息排序

7)    信息删除

8)    信息修改

9)    保存文件

10)   退出系统

11)   系统菜单形式显示

 

三 实验设计及步骤

 

总体设计:

  1. 1.该系统可以按功能进行模块划分,其模块图如下:

 

 

 

其中:

信息输入模块完成学生信息的输入功能,输入信息包括学生号、姓名、性别、出生年月、成绩、专业. 住址、电话等

信息浏览模块完成已录入学生信息的显示;

信息查询模块完成学生信息的查询,查询时对应有按姓名查询和按学号查询两种方式;

信息修改模块完成学生信息的修改功能;

信息删除模块完成学生信息的删除功能;

安全模块 是进入系统需要用户名字 和密码;

菜单选择模块完成用户命令的接收,此模块也是职工信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;

2数据结构

本系统中主要的数据结构就是学生的信息,包含学生号、姓名、性别、出生年月、成绩 、专业、住址、电话等,在处理过程中各项可以作为一个学生的不同属性来进行处理

3程序流程

 

系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程图如下:

 

详细设计:

对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:

1 安全模块

printf("                         请输入用户名,\n");

scanf("%s",x);

if(strcmp(x,y)==0)

{

printf("                         请输入密码,\n");

scanf("%d",&ma);

while (ma==123456)

通过比较语句 来判定输入人名和密码的正确  如果正确进入菜单模块;

2           菜单模块

通过while语句

给出信息提示;

清屏;

绘制菜单(包含输入,浏览,查询,修改,删除,排序,保存,退出);

提示菜单选择并读入到变量;

根据读入变量的值调用不同的模块函数;

3           信息录入模块

打开文件

While()

{  清屏;

按照提示输入各种信息;

While

显示各种信息;

通过选择1.确认并继续  2.重新填写  3.放弃并返回  4.确认并返回

选择四种功能;

}

}

4           信息浏览模块

打开文件

While()

{   清屏;

用for语句依次按照顺序输出学生信息

通过选择可以翻页 1.上一页 2.下一页 0.退出

}

5           信息查询

While()

{ 通过菜单式的选择 是学号查询 还是姓名

printf("******学生信息管理系统******");

printf("\n----------检    索----------");

printf("\n您想要:");

printf("\n       1.按学号检索");

printf("\n       2.按姓名检索");

printf("\n       3.返回主菜单");

printf("\n****************************\n");

}

如果选择学号进入学号模块

通过输入学号

If( 学号存在继续)

{输出学生信息

}

Else 输出无此学生

如果选择姓名进入姓名模块

If(根据比较姓名判断学生是否存在)

{输出学生信息

}

Else 输出无此学生

6           删除模块

while( 继续删除 )

{

提示并读入待删除的学生的学生号;

显示要删除的信息

}

删除成功

7           信息修改模块

输入要修改学生信息的学号:

If (判断是否有此学生)

{  菜单形式显示要修改的项目

printf("\n1.姓名 2.年龄 3.性别 4.出生年月 5.地址 6.电话 7.E-mail \n");

printf("\n8.数学 9.英语 \n");

}

Swich()

{ 选择要修改的项目进行修改

}

8           打开文件模块

void fileopen()

{

FILE *fp;

int n;

if((fp=fopen("data","r+"))==NULL)

fp=fopen("data","w+");

for(n=0;n<100;n++)

fread(&stu[n],sizeof(struct student),1,fp);

fread(&stunum,4,1,fp);

fclose(fp);

}

9           保存文件模块

void filesave()

{

int n;

FILE *fp;

fp=fopen("data","r+");

for(n=0;n<100;n++)

fwrite(&stu[n],sizeof(struct student),1,fp);

fwrite(&stunum,4,1,fp);

fclose(fp);

printf("保存成功!press Enter to continue..");

getch();

}

10       退出模块

case ‘8‘:ma=0;break;

用的是跳出while语句

回到安全模块

11       排序模块

通过 冒泡排序法

for(m=0;m<y-1;m++)

for(x=m+1;x<y;x++)

if(stu[m].sum<stu[x].sum)

{

stu[99]=stu[m];

stu[m]=stu[x];

stu[x]=stu[99];

stu[99].id=stu[x].id ;

stu[x].id =stu[m].id;

stu[m].id =stu[99].id ;

}

printf("排序后的顺序为:\n");

然后显示排序好后的学生信息;

学生基本信息结构体是

struct student

{

int id;

char name[30];

int age;

char sex[6];

char birthday[12];

char add[80];

char tel[15];

char email[25];

int  math;

int  english;

int  sum;

}stu[100]

 

程序测试

1  安全模块

通过输入正确的用户名才能进入此系统

2        菜单显示

进入系统后便来到菜单界面  通过选择进入不同的模块

3  录入函数;

通过选择菜单1进入录入模块  下面是录入信息的界面

4浏览模块

如果选择2  可以进入浏览模块  包括学生的课中基本信息

5修改模块

修改模块 可以通过选择分别修改姓名 年龄 性别 等信息依次修改

修改后的信息

6排序模块

通过总分的大小从大到小排序

排序前的截图

排序后的截图

7删除模块

11退出模块

回到安全模块

实验结论

通过此次课程设计,我基本上对制作一个相对来说比较完整的程序有了一定的认识和了解。这一周多来的制作,不但对C语言的知识有了一定的巩固,还增加了我们的动手能力。

学生信息管理系统,涉及到结构体,链表,文件和循环的知识,所以尤其对这几个方面有所加深和巩固。其中又包括结构体的赋值,写到文件中。从文件中赋值给结构体。

等等。

还能够通过编译时出现的出错提示信息,进行初步的纠错。

完成一个程序的一般步骤为设计,录入,编译,如果出错,则修改,然后

再编译,编译成功后,看看结果是否正确,如果结果不正确,则再重复以上步骤。

从这次编程序的过程中,我学到了编程所必须具备的专业技能,更领会编译

程序所需要的细心和耐心。

六github地址链接:https://github.com/daishimin/test/tree/master

时间: 2024-10-02 20:18:27

学生管理系统--面向对象程序设计的相关文章

图书管理系统——面向对象程序设计

一.登陆系统模块的实现本模块主要是用户通过图书馆管理系统的首页进入该系统.用户输入正确的用户名和密码,如果登录信息有错误,则系统提示登录错误信息,并且禁止系统用户进行任何操作.若登录信息正确,系统会根据用户的身份进行相应权限的判断,读者进入前台系统,管理员进入后台系统.二.图书管理系统代码:1.(1)图书馆系统登录主页面 Action层: public String login() {   boolean flag = iss.login(admin);   if(flag) {  return

图书馆管理系统 面向对象程序设计

1.概要设计 Reader 读者类.RDatabase 读者库类.Book 图书类.BDatabase 图书库类 2.详细设计 1)类的原型描述 class Reader //读者类 int tag;//删除标记 1:已删 0:未删 int no;//读者编号 char name[10];//读者姓名 int borbook[Maxbor];//所借图书 class RDatabase //读者库类 int top;// 读者记录指针 Reader read[Maxr];// 读者记录 RDat

面向对象程序设计

一.实验目的 (1)要求学生能够熟练掌握C++语言的基本知识和技能. (2)基本掌握面向对象程序设计的基本思路和方法.  (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题设计 二.实验要求 (1)  以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理 (2)每一组输入数据包括三个数据项:汽车“到达”或“离去”信息.汽车牌照号码及到达或离去的时刻 (3)对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置:若是

2017面向对象程序设计(Java)第二周学习总结

2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为第一周学长正在家里吃西瓜吹空调.好了,闲言少叙.我先为你们介绍一下助教的职责,而后再对你们的学习情况进行总结! 身为你们本学期Java课程的助教...之一,我的任务是:指导你们学习,批改我所负责学习小组的实验作业.阅读博文并回复.其他学习小组会有另外三位助教负责.由于我们每周五都会汇总你们的情况,其

你好,C++(31)我终于找到对象啦!6.1 从结构化设计到面向对象程序设计

http://www.kuqin.com/shuoit/20150809/347546.html 当C++爱上面向对象 很多第一次进入C++世界的人都会问:C++中的那两个加号到底是什么意思啊? C++是由C语言发展而来的,它比C语言多出的两个加号,实际上是C语言的自增操作符,表示C++语言是在C语言的基础上添加了新的内容而发展形成的.如果其中一个加号代表C++在C语言的基础上增加了模板.异常处理等现代程序设计语言的新特性的话,那么另外一个加号则代表C++在C语言的基础上增加了对面向对象程序设计

Python基础(16)_面向对象程序设计(类、继承、派生、组合、接口)

一.面向过程程序设计与面向对象程序设计 面向过程的程序设计:核心是过程,过程就解决问题的步骤,基于该思想设计程序就像是在设计一条流水线,是一种机械式的思维方式 优点:复杂的问题的简单化,流程化 缺点:扩展性差 面向对象的程序设计:核心是对象,对象是特征(变量)与技能(函数)的结合体,是一种上帝式的思维方式 优点:解决了程序的扩展性 缺点:可控性差 二.类和对象 以游戏举例,基于面向对象设计一个款游戏:英雄联盟,每个玩家选一个英雄,每个英雄都有自己的特征和和技能,特征即数据属性,技能即方法属性,特

学生管理系统-火车订票系统 c语言课程设计

概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描述: 学生信息: 基本信息: 学号: int 姓名: char 128 密码: char 32 年龄: int 班级: int 成绩信息: 数学成绩: int C 语言成绩:int 语文成绩: int 名次: int 1.  实现对学生信息基本信息的录入,其中名次根据成绩自动计算(添加).学号不能

sdut 面向对象程序设计上机练习九(对象指针)

面向对象程序设计上机练习九(对象指针) Time Limit: 1000MS Memory limit: 65536K 题目描述 建立对象数组,内放5个学生数据(学号是字符串类型.成绩是整型),设立max函数,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号和成绩. 输入 输入5个学生数据. 输出 输出5个学生中成绩最高者的学号和成绩. 示例输入 01 89 02 78 03 56 04 92 05 76 示例输出 04 92 来源 #include <iostr

设计模式李建忠(面向对象程序设计部分)

面向对象 面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流.面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围.如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理结构.CAD技术.人工智能等领域.       谈到面向对象,这方面的文章非常多.但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现.其初,“面向对象”是专指在程序设计中采用封装.继承.抽象等设计方法.可是,这个定义显然不能再适