1、武 汉 工 商 学 院信 息 工 程 学 院项 目 名 称 : 学 生 成 绩 管 理 系 统 学 生 姓 名 : 黄 继 文 学 号 : 14401033 班 级 : 实 验 班 指 导 教 师 : 肖 丹 丹 2015 年 3 月 23 日目录前言 .11.系统设计 .21.1 系统设计目标 .21.2 系统功能分析 .21.3 系统功能模块设计 .22.系统功能 .32.1 学生登陆系统 .32.2 主菜单 .52.3 学生信息的录入 .72.4 学生信息浏览 .92.5 学生信息查询 .112.6 学生成绩统计 .142.7 学生信息修改 .222.8 学生信息删除 .252.9 学生
2、信息插入 .283.上机操作 .303.1 登陆管理 .303.2 主菜单 .313.3 录入学生信息 .323.4 学生信息浏览 .333.5 学生信息查询 .343.6 学生成绩统计 .353.6 学生信息修改 .383.7 学生信息删除 .393.8 学生信息插入 .40结论 .41参考文献 .42附录 .43前言本系统主要用于学校学生信息管理,总体任务是实现学生信息的系统化、规范化和自动化,其主要任务还是用计算机对学生信息进行日常管理,如录入、查询、统计、修改、删除学生信息,另外还考虑到用户登录的权限,针对学生信息和权限登录的学生成绩管系统.本系统主要包括登录管理、界面管理、学生信息录
3、入、查询、统计、修改、删除、添加等部分.其功能主要有:1.学生信息录入,包括输入学生基本信息和成绩.2.学生信息浏览,包括浏览学生的所有信息.3.学生信息查询,包括查询学生基本信息和成绩.4.学生成绩统计,包括各科成绩的最高分、最低分、平均分、及格率和 1-100各段分数比.5.学生信息修改,包括修改学生基本信息和成绩.6.学生信息删除,包括删除学生基本信息和成绩.7.学生信息插入,包括在指定地方插入信息.8.退出系统.本系统是用 c语言编写的,采用的编写工具是 vc+6.0.1.系统设计1.1 系统设计目标能对实现对学生信息进行录入、保存、查询、修改、删除、插入和统计学生成绩等功能.1.2
4、系统功能分析本系统使用于对学生的基本信息进行处理,其主要功能如下:用户登陆:使用密码的暗文处理,防止密码的泄露,学生信息被外泄.学生信息管理:添加、删除、修改等操作.学生信息查询:可以使用姓名或学号查询两种方式.学生成绩管理:输出各科最高分、最低分、平均分、及格率和分数段人数比.1.3 系统功能模块设计本系统的整体框架如图 1-1所示.主 模 块学生信息录入学生信息浏览学生信息查询成绩排列统计学生信息修改学生信息删除学生信息插入退出系统登录界面主菜单图 1-12.系统功能2.1 学生登陆系统设计思路:首先定义系统密码,而且本系统的密码系统经过暗文处理.具体方法是设计一个 for 循环,然后在里
5、面设计一个 while 循环,首先判断人输入的是否为回车键,若是跳出 while 循环,并把人输入的密码和预先定义的密码进行匹配,若匹配成功,进入主菜单,若失败,重新输入,并且系统提示输入错误次数.当输入的不是回车键,接着次判断是否为退格键,若是,系统退格,再次进行 while 循环;若不是 ,输出*号,再次进行 while 循环.当密码 3 次不能匹配正确,退出系统.函数图像如图 2-1所示图 2-1是是否登录菜单输入密码进 行 码 匹 对 验 证进入主菜单界面int i=0i3退出系统否i+代码如下: void menu1(); for( ;j4;j+)if(j=3)printf(“n“)
6、;printf(“n“);printf(“n“);printf(“密码错误三次,系统锁定n“);return 0;while(pi=getch() if(pi=r) break; if(pi!=b) printf(“*“); i+; else printf(“b b“); i-; pi=0; if(strcmp(p,PASSWORD)=0) break; else printf(“n“);printf(“n“);printf(“n“);printf(“n“);printf(“您已错误了%d 次(共三次)“,j+1);getchar();system(“cls“);menu1(); 2.2 主菜
7、单设计思路:这里就是一个选择菜单,用了 do-while循环结构,选择相应的数字进入功能子函数,执行功能.函数图像如图 2-2所示图 2-2学生登陆菜单按 1-6 数字键进入各选项1.输入学生的信息2.学生信息浏览3.学生信息查询4.成绩排序统计5.学生信息修改6.学生信息删除7.学生信息插入8.退出系统进入所选目标代码如下:int menu2()system(“cls“);int f;printf(“n“); printf(“ 管 理 菜 单 n“);printf(“n“);printf(“ *n“);printf(“ * *n“);printf(“ * - *n“);printf(“ *
8、*n“);printf(“ * 1.输入学生的信息 *n“);printf(“ * 2.学生信息浏览 *n“);printf(“ * 3.学生信息查询 *n“);printf(“ * 4.成绩排序统计 *n“);printf(“ * 5.学生信息修改 *n“);printf(“ * 6.学生信息删除 *n“);printf(“ * 7.插入学生信息 *n“);printf(“ * 8.退出系统 *n“);printf(“ * *n“);printf(“ * - *n“);printf(“ * *n“);printf(“ *n“);printf(“n“);printf(“n“);printf(“
9、n“);printf(“请输入您要执行的操作:“);scanf(“%d“,return f;2.3 学生信息的录入设计思路:首先定义一个存放学生信息的结构体数组,把输入的学生信息存到数组中,当进入学生信息录入函数,一个学生信息输入完成,提示是否继续输入,如果继续输入,继续循环输入,并且指向输入具体输入人数的指针加 1,然后继续输入学生信息.否则返回主函数,并把学生信息保存在文件中.代码如下:int InputInformation(int *p,int *p1)此函数用于录入学生信息int k,i;char ch;i=*p;for(;)srand(time(NULL);/此语句作用使每次产生的
10、随机数不同k=rand()%1000+2014000;printf(“请输入学生的名字:“);scanf(“%s“,printf(“学生的学号为:%dn“,k);ai.id=k;printf(“请输入学生的性别:“);scanf(“%s“,printf(“请输入计算机分数:“);scanf(“%f“,printf(“请输入数学分数:“);scanf(“%f“,printf(“请输入英语分数:“);scanf(“%f“,printf(“n“);printf(“是否继续输入学生信息?(y/n)“);scanf(“%s“,if(y=ch) system(“cls“);i+;*p=*p+1;*p1=*
11、p1+1;if(n=ch) *p=*p+1;return 0; 函数图像如图 2-3所示输入学生信息struct studentchar name10;int id;char sex5;float computer;float math;float english;/定义一个结构体存放学生信息Int ii+,*p+否return 0 Ch=ysrand(time(NULL); k=rand()%1000+2014000;printf(“请输入学生的名字:“);scanf(“%s“,printf(“学生的学号为:%dn“,k);ai.id=k;printf(“请输入学生的性别:“);scanf(“%s“,printf(“请输入计算机分数:“);scanf(“%f“,printf(“请输入数学分数:“);scanf(“%f“,printf(“请输入英语分数:“);scanf(“%f“,是