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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

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

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

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

二、设计思想;
[1]:分别把学生信息、科目信息和教师一科目信息建立三个链表。

//科目信息
typedef struct
{
float SUB_notes[3]; 〃科目成绩
int SUB_csscore; 〃科目学分
char SUB_cs name[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」d;
char TCH_ name[32];
char TCH_psword[32];
SUB subject[1]; struct
list_head list; }TEC;
〃管理员信息
typedef struct ADM_i nfo
{
char ADM_use name[8];
char ADM_psword[6];
}ADM; //名次
//姓名
//密码
//工号
//姓名
//密码
ADM use[1];
#defi ne Y 'y'
#defi ne N 'n'
#defi ne S_ _FLAG 's'
#de nfine T_ FLAG 't'
#defi ne A FLAG 'a'
void gettime();
void main_me nu();
void stu_logi n();
void ope nf (char *file name);
void tec_logi n();
void adm」ogin();
void adm_ nextme nu();
void a_updt_stu info();
void a_updt_teci nfo();
void a_updt_ myin fo();
息〃获取当前时间
//主菜单
//学生登录
//判断文件是否存在//老师登录
〃管理员登录
〃管理员2级菜单〃操作学生信息
〃操作老师信息
//操作管理员自身信
//添加学生信息
//添加老师信息
//修改学生信息
〃删除信息
//修改老师信息
//查找学生信息
//查找老师信息
〃显示信息
//保存信息
//验证密码
//公用函数集合
〃显示信息
//查找信息
//修改学生或老师信
//学生菜单
//老师菜单
//学生显示自己信息//教师显示自己信息//学生更新自己信息//学生选课
//教授更新自己信息//教授显示自己信息//从文件中读取信息//对学生链表排序〃求平均成绩
//
//输入密码回显*
E:exit 1: student
2:teacer 3:admin
void a_add_stu info(); void a_add_teci nfo();
void a_mdify_stui nfo(); void a_del_ in fo(char flag);
void a_mdify_teci nfo(); void a_seek_stu info();
void a_seek_teci nfo(); void show (char flag);
void save (char flag,char system); void check(char flag);
void commom();
void a_show(char flag);
void a_seek_ in fo(char flag); void a_mdify_i nfo(char flag);

void stu_ nextme nu(i nt tmpid); void tec_ nextme nu(i nt tmpid); void s_show_ myin fo(i nt tmpid); void t_show_ myin fo(i nt tmpid); void
s_updt_m yin fo(i nt tmpid); void s_select_subject(i nt tmpid); void t_updt_stu in fo(i nt tmpid); void t_updt_ myin fo(i nt tmpid); void readf();
void stu_sort();
float ave (float core[3]); float (*f)(float core[3]); int in putpsword(char *pass);
[2]:模块分析
tec n ext me nu()
[3]:流程图
1、2.、3、4
updt_stu info
三、总结
《学生选课管理系统》,5天。

这之前学的C语言基础及C语言高级编程。

对于程序设计来说这些就是指导性的理论,我学的还算认真,自我感觉良好。

听说要做《学生选课管理系统》的时候,都有着霍霍欲试的冲动。

然而5天的历程却诉说着理论与实践结合并非易事。

开始拿到这个小项目时候还真不知道怎么下手,像猎到刺猬的饿狼,虽饥渴难耐却又无从
下嘴,只好看着猎物徘徊、踌躇。

后经老师指教总算有点了头绪,真是“山重水复疑无路,柳暗花明又一村”。

我首先采取的就是化整为零的模块化分析,把整个系统分为:管理员模块、教师模块及学
生三大模块,然后各个模块再按照不同的功能细分成不同的模块。

然而我在运用此思想时有
点误解。

我在写代码时,把代码模块化过了头了。

我把每个函数都单列在每个相对应的文件里,搞得有点乱乱的。

又经老师指点后,我把各模块下相应的函数都归并到一个文件里,这样就显得疏朗多了。

修正这点失误着实用了我不少时间,然而,接下来我又卡住了。

因为系统需要操作大量的
数据,所以就牵涉到如何把这些数据保存、读取、修改等操作。

我最初的思想是把这么多数
据在建立后就存入文件里,然后在需要操作时再读取文件信息进行操作。

时间毕竟有限,这
样想就这样做,然而结果并不像我预期的那样,我不知道哪里出了问题,先是梳理思路后是
检查代码再者就是上网查找相关信息。

几经曲折,总算离我预期结果不远时,又卡住了!
这已经是第四天了,无奈,只好在去吃饭的路上向我同桌取经。

听了他说,“你连软件设
计的基本思想都不懂”之后我一脸迷惘。

经他细心讲解才明白我这种思路做出来的程序要不断的存取数据,需要较多的系统资源,效率会很低。

他给我提供了另外一种思想:在程序启
动时把所需要的数据从文件里读到内存,然后直接在内存里操作,在需要时在进行保存。

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

这时,离时限还有一天半的时间,而我只是实现了程序的基本框架。

但换了思路之后,我速度明显提高了,在剩下的时间里把程序的基本功能都实现了。

看样子,交流真的很重要,遇到问题时最好不要一个人绞尽脑汁,要多交流请教啊!。

相关文档
最新文档