《学生信息管理系统报告》.doc

上传人:scccc 文档编号:14384938 上传时间:2022-02-05 格式:DOC 页数:22 大小:368KB
返回 下载 相关 举报
《学生信息管理系统报告》.doc_第1页
第1页 / 共22页
《学生信息管理系统报告》.doc_第2页
第2页 / 共22页
《学生信息管理系统报告》.doc_第3页
第3页 / 共22页
《学生信息管理系统报告》.doc_第4页
第4页 / 共22页
《学生信息管理系统报告》.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《《学生信息管理系统报告》.doc》由会员分享,可在线阅读,更多相关《《学生信息管理系统报告》.doc(22页珍藏版)》请在三一文库上搜索。

1、225552C程序设计课程设计报告 题目学生信息管理系统班 级: 计算机科学与技术(师范) 设 计 者: 学 号: 20101201053 指导老师: 刘怀愚 2011年3月30日一、设计目的与内容(1) 学生信息管理系统的功能为显示主要操作页面,通过密码验证登陆界面,学生信息处理功能。通过密码验证登陆,可实现安全登录,方便可靠。学生信息处理功能包括增加学生信息,显示学生信息,学生信息条件查询(分为:按学生姓名进行查询,按学生学号进行查询),修改学生信息,删除学生信息,读取保存学生信息。(2) 学生信息管理系统的功能模块有:用户名和密码验证登陆界面,输入正确的用户名和密码登陆主菜单选择界面,方

2、便用户对程序的功能进行选择,选择要实现的功能按enter键进入该功能。0. 系统帮助及说明1. 增加学生信息。2. 显示学生信息。3. 学生信息条件查询。4. 修改学生信息。5. 删除学生信息。6. 读取学生信息。7. 保存学生信息。8. 退出,谢谢使用!程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。二、总体设计流程图学生信息管理系统密码登陆界面登陆主菜单选择框架界面输入信息模块显示信息模块条件查询模块修改信息模块退出系统模块从键盘输入信息输出信息至屏幕按学生学号查询按学生姓名查询修改学生信息将退出界面显示删除信息模块读取保存信息模块读取文件信息保存文件信息删除学生信息该流程

3、图为此次学生信息管理系统的总体流程图,用户进入界面以后可以看到登陆密码界面,密码输入正确进入主菜单选择框架界面,0 为系统帮助及说明,1 为输入学生信息,2 为显示学生信息,3 为查找学生信息,4 为修改学生信息,5 为删除学生信息,6 为读取学生信息,7为保存学生信息,8为退出系统,谢谢使用! 用户可以根据自己的需求方便快捷的做出自己的选择。三、算法的基本思想1.头文件的引用和函数的声明#include /I/O函数#include /字符串函数#define N 100000 /最大学生人数,实际请更改/struct record /结构体 char code15; /学号 char na

4、me15; /姓名 char age3; /年龄 char sex8; /性别 char time15; /出生日期 char add30; /家庭地址 char tel15; /电话号码 char mail30; /电子邮件地址stuN;int k=1,n=0; /定义全局变量void password(); /验证密码函数void mainmenu(); /主菜单函数声明void help(); /系统帮助函数声明void insert(); /插入函数声明void display(); /显示函数声明void search(); /查找函数声明void search_by_num();

5、/通过学号查找函数声明void search_by_name(); /通过姓名查找函数声明void modify(); /修改函数声明void del(); /删除函数声明void readfile(); /读取文件函数声明void save(); /保存文件函数声明该函数是对头文件的加载和引用,定义结构体、常量和变量,并对他们进行初始化工作。2.系统主调函数void main() /*主函数*/printf(ttt+-+n); printf(ttt| |n); printf(ttt| 欢迎使用学生信息管理系统 |n); printf(ttt| |n); printf(ttt+-+n);pas

6、sword();该函数为程序的主函数,通过密码验证进入主菜单。3密码验证函数/*通过对比字符串数组比较实现密码校验*/void password() /*验证密码函数*/ int i; char Administrator15; char Password15; for(i=0; i3; i+) printf(n管理员初始用户名和密码均为adminn); printf(请输入您的用户名:); scanf(%s, Administrator); printf(请输入您的密码:); scanf(%s, Password); if(strcmp(Administrator,admin)=0)&(st

7、rcmp(Password,admin)=0) printf(登录成功!n); while(k) /*循环判断*/ mainmenu(); break; else if (i 2) printf(用户名或密码错误,请重新输入!n); else printf(您已连续3次将用户名或密码输错,系统将退出!n); 密码登陆函数流程图:密码函数开始登陆密码重新登陆密码错误密码输错3次,退出系统进入主菜单登陆密码该函数为密码登陆函数模块,当用户输入密码正确时,进入主菜单。当用户输入的密码不正确的时候,系统会提示“密码输入错误,请重新输入”。若用户连续输错3次密码,则退出系统。 4主菜单函数void ma

8、inmenu() /*主菜单函数*/ int num; printf(tt*系统功能菜单* n); printf(tt 友情提醒:查询前请先读取学生信息! n); printf(tt- - n); printf(tt* n); printf(tt* 0.系统帮助及说明 * * 1.增加学生信息 * n); printf(tt* n); printf(tt* 2.显示学生信息 * * 3.查找学生信息 * n); printf(tt* n); printf(tt* 4.修改学生信息 * * 5.删除学生信息 * n); printf(tt* n); printf(tt* 6.读取学生信息 * *

9、 7.保存学生信息 * n); printf(tt* * n); printf(tt* 8.退出系统 * * * n); printf(tt* * n); printf(tt- - n); printf(请选择菜单编号:); scanf(%d,&num); switch(num) case 0: help(); break; case 1: insert(); break; case 2: display(); break; case 3: search(); break; case 4: modify(); break; case 5: del(); break; case 6: readf

10、ile(); break; case 7: save(); break; case 8: k=0; break; default: printf(请在0-8之间选择!n);主菜单函数流程图:1输入信息2显示信息3查询信息4修改信息8退出系统5删除信息6、7读保信息主菜单开始用户选择进入学生信息管理系统时显示程序名称和主菜单,提示用户进行选择,完成相应任务。该函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。5输入学生信息函数void insert() /*插入学生信息函数*/ int i=n,j,flag; flag=1; while(flag) flag=0; printf(请输入

11、第 %d 个学生的学号:n,i+1); scanf(%s,stui.code); for(j=0;ji;j+) if(strcmp(stui.code,stuj.code)=0) printf(已有该学号,请检查后重新录入!n); flag=1; break; /*如有重复立即退出该层循环*/ printf(请输入第 %d 个学生的姓名:n,i+1); scanf(%s,stui.name); printf(请输入第 %d 个学生的年龄:n,i+1); scanf(%s,stui.age); printf(请输入第 %d 个学生的性别:n,i+1); scanf(%s,stui.sex); p

12、rintf(请输入第 %d 个学生的出生日期:(格式:年.月.日)n,i+1); scanf(%s,stui.time); printf(请输入第 %d 个学生的地址:n,i+1); scanf(%s,stui.add); printf(请输入第 %d 个学生的电话:n,i+1); scanf(%s,stui.tel); printf(请输入第 %d 个学生的E-mail:n,i+1); scanf(%s,stui.mail); if(flag=0) i+;n+; printf(录入完毕!nn);输入信息函数流程图:输入信息系统开始输入学号输入姓名输入出生日期输入地址输入电话输入电子邮件学号重

13、复重新输入输入学生信息函数模块,用户可以根据提示的信息来进行每一步的输入操作,当输入学号重复时,系统会自动提示,并让用户重新输入学号的操作。6显示学生信息函数void display()/*显示学生信息函数*/ int i; printf(所有学生的信息为:n); printf(学号 姓名 年龄 性别 出生日期 地址 电话 E-mailn ); printf(-); for(i=0;in;i+) printf(%-5s %-11s %-5s %-6s %-10s %-9s %-11s %-16s,stui.code, stui.name,stui.age,stui.sex,stui.time,

14、stui.add,stui.tel,stui.mail);printf(nn);显示信息函数流程图:显示信息函数开始输出学生信息结束当用户进入查询信息模块时,系统会显示内部存储的内容。7学生信息条件查询函数void search() /*查找学生信息函数*/ int item=-1;do printf(-n); printf(-1.按学号查询-n); printf(-2.按姓名查询-n); printf(-3.退出本菜单-n); printf(-n); printf(请选择子菜单编号:); scanf(%d,&item); switch(item) case 1: search_by_num(

15、); break; case 2: search_by_name(); break; case 3: return; default: printf(请在1-3之间选择!n); break; while(item!=3);void search_by_num() /*通过学号查找学生信息*/int i,flag=0;char s121;printf(请输入要查询的学生的学号:n); scanf(%s,s1); for(i=0;in;i+) if(strcmp(stui.code,s1)=0) flag=1; printf(学号 姓名 年龄 性别 出生日期 地址 电话 E-mailn ); pr

16、intf(-); printf(%-5s %-11s %-5s %-6s %-10s %-9s %-11s %-16sn,stui.code, stui.name,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail); if(flag=0) printf(该学号不存在!n);void search_by_name() /*通过姓名查找学生信息*/int i,flag=0;char s121;printf(请输入要查询的学生的姓名:n); scanf(%s,s1); for(i=0;in;i+) if(strcmp(stui.name,

17、s1)=0) flag=1; printf(学号 姓名 年龄 性别 出生日期 地址 电话 E-mailn ); printf(-); printf(%-5s %-11s %-5s %-6s %-10s %-9s %-11s %-16sn,stui.code, stui.name,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail); if(flag=0) printf(该姓名不存在!n);查询信息流程图:选择按学号还是姓名查询选择查询函数开始输入错误重新输入2按姓名查询输出信息输出信息1按学号查询当用户执行此查询任务时,系统会提醒用户

18、进行查询方式的选择,即按学号或姓名进行查询。若此学生信息记录存在,则会显示该学生的信息。若无此学生记录,则提示该学号或姓名不存在。8修改学生信息函数void modify() /*修改学生信息函数*/ int i,item,num; char sex18,s115,s215; printf(请输入要修改的学生的学号:n); scanf(%s,s1); for(i=0;in;i+) if(strcmp(stui.code,s1)=0) /*比较字符串是否相等*/ num=i; printf(该学生的信息为:n); printf(学号 姓名 年龄 性别 出生日期 地址 电话 E-mailn );

19、printf(-); printf(%-5s %-11s %-5s %-6s %-10s %-9s %-11s %-16s,stui.code, stui.name,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail); do printf(-n); printf(1.修改姓名n); printf(2.修改年龄n); printf(3.修改性别n); printf(4.修改出生日期n); printf(5.修改地址n); printf(6.修改电话号码n); printf(7.修改E-mail地址n); printf(8.退出本菜单n

20、); printf(-n); printf(请选择子菜单编号:); scanf(%d,&item); switch(item) case 1: printf(请输入新的姓名:n); scanf(%s,s2); strcpy(stunum.name,s2);printf(修改成功!n); break; case 2: printf(请输入新的年龄:n); scanf(%s,stunum.age);printf(修改成功!n); break; case 3: printf(请输入新的性别:n); scanf(%s,sex1); strcpy(stunum.sex,sex1);printf(修改成功

21、!n); break; case 4: printf(请输入新的出生日期:n); scanf(%s,s2); strcpy(stunum.time,s2);printf(修改成功!n); break; case 5: printf(请输入新的地址:n); scanf(%s,s2); strcpy(stunum.add,s2);printf(修改成功!n); break; case 6: printf(请输入新的电话号码:n); scanf(%s,s2); strcpy(stunum.tel,s2);printf(修改成功!n); break; case 7: printf(请输入新的E-mai

22、l地址:n); scanf(%s,s2); strcpy(stunum.mail,s2);printf(修改成功!n); break; case 8: return; default: printf(请在1-8之间选择!n); while(item!=8);if(i=n) printf(无此人信息!n);修改学生信息流程图:更改信息函数开始输入要更改的学号学号不存在输入更改后信息返回主菜单完成选择需要更改的信息在修改学生信息的操作中,系统会先按输入的学号查询到该学生信息记录,然后选择要修改的信息填入要信息。若用户输入的学号不存在,则提示无此人信息并返回主菜单。9删除学生信息函数void del

23、() /*删除学生信息函数*/ int i,j,flag=0; char s115; printf(请输入要删除学生的学号:n); scanf(%s,s1); for(i=0;in;i+) if(strcmp(stui.code,s1)=0) flag=1; for(j=i;jn-1;j+) stuj=stuj+1; if(flag=0) printf(该学号不存在!n); if(flag=1) printf(删除成功!n); n-;删除学生信息流程图:删除信息函数开始输入要删除的学号学号不存在返回主菜单完成当用户需要删除学生信息时,进入该函数操作,系统会先按输入的学号查询是否存在该学号的学生

24、信息记录,若存在该学号时,则删除该学生的信息。若该学号不存在时,则提示该学号不存在并返回主菜单。10读取或保存学生信息函数void readfile() /*读取学生信息函数*/ FILE *fp; char *p=student.txt; int i=0; if(fp=fopen(student.txt,r)=NULL) /*以只读方式打开文件,若文件打开失败,则返回NULL*/ printf(读取文件 %s 错误!n,p); return; while(fscanf(fp,%s %s %s %s %s %s %s %sn,stui.code,stui.name,stui.age,stui.

25、sex, stui.time,stui.add,stui.tel,stui.mail)=8) /*fscanf函数返回值是实际读取的数据个数*/ i+; fclose(fp); n=i; printf(读取学生信息成功!n); void save() /*保存学生信息函数*/ int i; FILE *fp; fp=fopen(student.txt,w); /*以只写方式打开文件*/ for(i=0;in;i+) fprintf(fp,%s %s %s %s %s %s %s %sn,stui.code,stui.name,stui.age,stui.sex, stui.time,stui.

26、add,stui.tel,stui.mail); printf(保存学生信息成功!n); fclose(fp);读取或保存函数流程图:读取或保存函数开始返回主菜单完成读取或保存文件成功读取文件错误当用户输入学生信息时,该保存函数会将学生信息保存在student.txt这个文件中。当用户需要从文件中读取学生信息时,该读取函数会从student.txt文件中读取学生信息。四、程序调试1. 密码登陆界面输入预先设定好的密码再按Enter进入系统。如果输入不正确,则显示“密码输入错误,请重新入”。图41密码登陆界面图2. 登陆主菜单界面进入主菜单选择框架界面后,用户可选择08,调用相应功能进行操作。当

27、输入为8时,退出学生信息管理系统。图42登陆主菜单界面图3. 输入信息模块当用户输入1并按Enter键后,即可进入数据输入界面。其数据输入过程如图所示图43所示,这里输入了一条学生的信息。图43输入信息界面图4. 显示信息模块当用户执行了输入记录后,退处输入信息模块后,输入2并按Enter键,查看当前学生的信息,如图44所示,此时表中有1条记录。图44显示信息界面图5. 条件查询模块当用户输入3并按Enter键后,即可进入条件查询界面。校验输入错误信息,可按学号或姓名进行信息查询。图451条件查询登陆界面图图452按学号进行查询界面图图453按姓名进行查询界面图6. 修改信息模块当用户输入4并

28、按Enter键后,即可进入修改信息界面。其修改过程如图461图462所示。图461修改信息前界面图图462修改信息后显示信息界面图7. 删除信息模块当用户输入5并按Enter键后,即可进入删除信息界面。如图47所示。图47删除信息界面图五、总结为了提高我们的实践能力,让我们学以致用,能灵活运用所学的知识进行再创造,学校特安排我们进行为期两周的C课程设计实习,并安排了指导老师帮助辅导,让我们在规范化、严谨化、实用化上面有了很大进展。在此次程序开发过程中,有很多东西值得我们思考并总结。开发过程大体可分为以下几个步骤: (1) 思考总体设计方案:总体结构和模块外部设计,功能分配。思考要实现整个程序大

29、体需要的几个模块和其中用到的 C语言基本操作符、语句等。(2) 画出总体设计方案流程图:用流程图的形式展现你的基本编程思想。(3) 流程图具体化:即将流程图中的几大模块的具体实现思考清楚,可以用流程图的形式展现并想好实现的关键代码。(4) 编辑程序代码:这是一个至关重要复杂而且需要反复修改的环节,在此环节中我发现总体设计和模块思想会存在很多问题,我会不断改进如何实现各函数功能,达到预期效果。(5)代码的调试:在C环境下输入代码并进行调试和正确运行。在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进完善程序。(6)最后修饰:程序可以正确运行之后,再不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化增强程序的新意与可行性。通过这次课程设计,使我们更加熟悉的掌握了C语言的运用。帮助我们熟悉了更多C语言的功能,提高了我们的动手能力,学到了许多解决实际问题的宝贵经验同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1