【c语言】学生获奖信息收集与管理系统
一、主体功能点要求:
1、基本信息:
(1)学生基本信息:学院、专业、年级、学号、姓名
(2)获奖信息:
a.获奖时间(年、月、日)
b.竞赛名称
c.获奖等级(如:国家级一等奖;省级二等奖)
d.指导老师
e.授奖部门
2、设计主菜单实现用户交互
(1)学生角色
a. 添加功能:学生可添加新的获奖信息
例如,输入:
计算机工程学院,软件工程专业,2015级,201500000001,张三,20181222,全国大学生软件设计大赛,国家级一等奖,李四老师,高等教育学会
则屏幕打印:
输入1条获奖信息!
b. 浏览功能:学生可浏览目前为止已有的获奖信息,按时间排序
例如,若现在再输入1条获奖信息:
机械工程学院,工业设计专业,2016级,201600000001,王五,20180108,广东省工业设计大赛,省级二等奖,林良老师,广东省工业设计学会
则选择浏览功能后,屏幕打印:
1.机械工程学院,工业设计专业,2016级,201600000001,王五,20180108,广东省工业设计大赛,省级二等奖,林良老师,广东省工业设计学会,未审核
2.计算机工程学院,软件工程专业,2015级,201500000001,张三,20181222,全国大学生软件设计大赛,国家级一等奖,李四老师,高等教育学会,未审核
共有2条获奖信息!
c. 搜索功能:学生可以任意字段搜索已有的获奖信息,按时间排序
例如,输入:计算机
则屏幕打印:
计算机工程学院,软件工程专业,2015级,201500000001,张三,20181222,全国大学生软件设计大赛,国家级一等奖,李四老师,高等教育学会,未审核
共搜索到1条获奖信息!
d. 删除功能:学生可删除已有的获奖信息
例如,输入:2(2表示获奖信息的序号)
则屏幕打印:
已删除1条获奖信息!
e. 修改功能:学生可修改任一已有获奖信息的任意字段
例如,输入:1
则屏幕打印:请指出想修改的记录的字段:
- 获奖时间 2. 竞赛名称 3. 获奖等级 4. 指导老师 5. 授奖部门
输入:3
则屏幕打印:请输入新的获奖等级:
输入:省级三等奖
则屏幕打印:
已修改1条获奖信息!
1.机械工程学院,工业设计专业,2016级,201600000001,王五,20180108,广东省工业设计大赛,省级三等奖,林良老师,广东省工业设计学会,未审核
(2)年级辅导员角色
a.浏览功能:年级辅导员可浏览目前为止已有的获奖信息,按时间排序(同学生的浏览功能一致)
b. 审核功能:年级辅导员可审核任意获奖信息
例如,输入:1(表示审核第1条获奖信息)
则屏幕打印:
1.机械工程学院,工业设计专业,2016级,201600000001,王五,20180108,广东省工业设计大赛,省级三等奖,林良老师,广东省工业设计学会,已审核
没实现功能:按照时间排序,从txt文件删除功能
由于添加功能是用指针完成的,就有点小问题就是,重新添加信息会覆盖,就不会是追加
#include<stdio.h>
#include<string.h>
#include<windows.h>
const int N=3;
//学生:学号(id)、姓名(name),年级(grade)、专业(major)、学院(college)
/*获奖时间(prtime),竞赛名称(prname),获奖等级(prgrade),指导老师(prteacher),e.授奖部门(prplace)*/
struct student{
char id[100];
char name[100];
char grade[100];
char major[100];
char college[100];
char prtime[100];
char prname[100];
char prgrade[100];
char prteacher[100];
char prplace[100];
char check[100];
};
//函数声明
void firstMenu();
void studentMenu(); //学生功能页面菜单
void teacherMenu();//老师功能页面菜单
void addStudent(student *stu);//添加学生获奖信息功能
void delStudent(student stu[]); //删除学生获奖信息功能
void modifyStudent(student stu[]); //修改学生获奖信息
void watchStudent(student stu[]); //浏览目前已经有的获奖信息。(辅导员也有这个功能)
void searchStudent(student stu[]); //学生可以搜索已经有了的获奖信息
void checkStudent(student stu[]); //辅导员功能:审核学生的获奖信息
void save(); //导出到文件
void load();
struct student stu[N]={
0};
int count=0;
int main(){
system("color F0");
while(true){
firstMenu();
int i;
scanf("%d",&i);
switch(i){
case 1:teacherMenu();break;
case 2:studentMenu();break;
case 3:exit(0);break;
default:printf("输入格式错误,需要重新输入。");
}}
}
void firstMenu(){
printf("**************欢迎进入学生信息获奖系统********************\n");
printf("如果你是老师请输入1");
printf("如果你是学生请输入2\n");
printf("结束程序请输入3\n");
printf("***********************************************************************\n");
printf("请输入你的选择:");
int i;
scanf("%d",&i);
switch(i){
case 1:teacherMenu();break;
case 2:studentMenu();break;
case 3:exit(0);break;
default:printf("输入格式错误,需要重新输入。");
}
}
void studentMenu(){
while(true){
printf("***********************************************************************\n");
printf("输入1进入添加信息功能\n");
printf("输入2进入查看信息功能\n");
printf("输入3进入删除信息功能\n");
printf("输入4进入修改信息功能\n");
printf("输入5进入查找信息功能\n");
printf("输入6返回原始页面。\n");;
printf("输入9结束程序\n");
printf("如果你不是学生,则输入7,进入辅导员功能。\n");
printf("***********************************************************************\n");
printf("请输入你的选择:");
int j;
scanf(