您的当前位置:首页正文

学生选课管理系统-流程图

2023-10-31 来源:星星旅游
学生管理系统

关仁杰

一、简介:

本系统称为“学生选课管理系统”,主要功能是实现对学生信息和教师信息的管理,以及学生成绩的管理。

该系统分为三级身份:管理员、教师、学生。

其中管理员的权限有:1)、添加学生或老师的信息,2)、删除学生或老师信息,3、修改学生或老师信息,4)查找学生或老师信息。

教师的权限:1)仅可以修改自己密码,2)查看所有关于自身的信息,3)修改其所授科目的学生科目的成绩。

学生的权限:仅可以修改自己的密码,查看所有有关自己的信息,另外还要可以选课。

二、设计思想;

[1]:分别把学生信息、科目信息和教师—科目信息建立三个链表。

//科目信息

typedef struct subject_info

float SUB_notes[3]; //科目成绩

int SUB_csscore; //科

第 1 页

目学分

char SUB_csname[32]; 名称

struct list_head list; }SUB; //学生信息

typedef struct STU_info

float STU_totalscore; 分

int STU_id; int STU_age; int STU_grade; int STU_place; char STU_name[32]; char STU_psword[32]; 码

SUB subject[3]; struct list_head list; }STU;

//教师信息:

typedef struct TCH_info

int TCH_id; 第 2 页

//科目 //总 //学号 //年龄 //年级 //名次 //姓名 //密 //工号

char TCH_name[32]; char TCH_psword[32]; 码

SUB subject[1]; struct list_head list; }TEC;

//管理员信息

typedef struct ADM_info char ADM_usename[8]; char ADM_psword[6]; }ADM;

ADM use[1];

#define Y 'y' #define N 'n' #define S_FLAG 's' #denfine T_FLAG 't' #define A_FLAG 'a'

void gettime(); 取当前时间

void main_menu(); 菜单

void stu_login(); 第 3 页

//姓名 //密 //获 //主 //学

生登录

void openf (char *); 文件是否存在

void tec_login(); 师登录

void adm_login(); 理员登录

void adm_nextmenu(); 理员2级菜单

void a_updt_stuinfo(); 作学生信息

void a_updt_tecinfo(); 作老师信息

void a_updt_myinfo(); 作管理员自身信息

void a_add_stuinfo(); 加学生信息

void a_add_tecinfo(); 加老师信息

void a_mdify_stuinfo(); 修改学生信息

void a_del_info(char flag); 第 4 页

//判断 //老 //管 //管 //操 //操 //操 //添 //添 // //

删除信息

void a_mdify_tecinfo(); 修改老师信息

void a_seek_stuinfo(); 找学生信息

void a_seek_tecinfo(); 找老师信息

void show (char flag); 示信息

void save (char flag,char system); //保存信息

void check(char flag); 证密码

void commom(); 函数集合

void a_show(char flag); 显示信息

void a_seek_info(char flag); //查找信息

void a_mdify_info(char flag); //修改学生或老师信息

void stu_nextmenu(int tmpid); 第 5 页

// //查 //查 //显 //验//公用 // //

学生菜单

void tec_nextmenu(int tmpid); 老师菜单

void s_show_myinfo(int tmpid); 学生显示自己信息

void t_show_myinfo(int tmpid); 教师显示自己信息

void s_updt_myinfo(int tmpid); 学生更新自己信息

void s_select_subject(int tmpid); //学生选课

void t_updt_stuinfo(int tmpid); //教授更新自己信息

void t_updt_myinfo(int tmpid); 教授显示自己信息

void readf(); 件中读取信息

void stu_sort(); 生链表排序

float ave (float core[3]); //求平均成绩

float (*f)(float core[3]); 第 6 页

// // // // ////从文//对学

//

int inputpsword(char *pass); //输入密码回显 * [2]: 模块分析

开始 主界面 E:exit 1:student 2:teacer 3:admin 退出 stu_login tec_login amd_login

student_nextmenu teacher_menu adminmenu

student_nextmenu

stu_show_myinfo stu_update_mypsword stu_select_mysubject 返回上一级

\eacher

tec_show_myinfo() tec_update_mypsword(); tec_next_menu(); 返回上一级

tec_next_menu()

tec_ show_stuinfo() tec__update_stuscore(); 返回上一级

输入信息、保存 修改

第 7 页

保存

adm_nextmenu

ADM_update_stuinfo ADM_update_tecinfo ADM_updat_myinfo 返回上一级

Add del update show Add del update show change_mypsword [3]: 流程图

开始 主界面 1 2 3 4

stu_ltec_1、2、adm_loexit 3、N log Y Y log

log Y Y Y logY

q

N Y 1 2 3 1、2.、3、第 8 页 4

Y

N

N

N chag_ps Y Y Y

Y 1 2 3 1、2.、3、4 Y show_in N up_stui N chag_ps N 第 9 页 Y Y Y

Y

1 2 3 4

1、2.、3、 Y

updt_teN chag_psN

updt_stN

Y Y Y

三、

总结

《学生选课管理系统》,5天。

这之前学的C语言基础及C语言高级编程。对于程序设计来说这些就是指导性的理论,我学的还算认真,自我感觉良好。听说要做《学生选课管理系统》的时候,都有着霍霍欲试的冲动。然而5天的历程却诉说着理论及实践结合并非易事。

开始拿到这个小项目时候还真不知道怎么下手,像猎到刺猬的饿狼,虽饥渴难耐却又无从下嘴,只好看着猎物徘徊、踌躇。后经老师指教总算有点了头绪,真是“山重水复疑无路,柳暗花明

第 10 页

又一村”。

我首先采取的就是化整为零的模块化分析,把整个系统分为:管理员模块、教师模块及学生三大模块,然后各个模块再按照不同的功能细分成不同的模块。然而我在运用此思想时有点误解。 我在写代码时,把代码模块化过了头了。我把每个函数都单列在每个相对应的文件里,搞得有点乱乱的。又经老师指点后,我把各模块下相应的函数都归并到一个文件里,这样就显得疏朗多了。

修正这点失误着实用了我不少时间,然而,接下来我又卡住了。因为系统需要操作大量的数据,所以就牵涉到如何把这些数据保存、读取、修改等操作。我最初的思想是把这么多数据在建立后就存入文件里,然后在需要操作时再读取文件信息进行操作。时间毕竟有限,这样想就这样做,然而结果并不像我预期的那样,我不知道哪里出了问题,先是梳理思路后是检查代码再者就是上网查找相关信息。几经曲折,总算离我预期结果不远时,又卡住了!

这已经是第四天了,无奈,只好在去吃饭的路上向我同桌取经。听了他说,“你连软件设计的基本思想都不懂”之后我一脸迷惘。经他细心讲解才明白我这种思路做出来的程序要不断的存取数据,需要较多的系统资源,效率会很低。他给我提供了另外一种思想:在程序启动时把所需要的数据从文件里读到内存,然后直接在内存里操作,在需要时在进行保存。

第 11 页

呵呵,从我向他请教还没有10分钟,他就把我从迷惘中带回了透彻的光明。

这时,离时限还有一天半的时间,而我只是实现了程序的基本框架。但换了思路之后,我速度明显提高了,在剩下的时间里把程序的基本功能都实现了。看样子,交流真的很重要,遇到问题时最好不要一个人绞尽脑汁,要多交流请教啊!

第 12 页

因篇幅问题不能全部显示,请点此查看更多更全内容