700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言程序设计——学生学籍管理系统

C语言程序设计——学生学籍管理系统

时间:2022-10-29 11:50:21

相关推荐

C语言程序设计——学生学籍管理系统

一、题目设计及其要求

1、题目:学生学籍管理系统

用数据文件存放学生的学籍,可对学生学籍进行注册、修改、查找、统计、学籍变化等操作。(用文件保存)

2、功能要求:

(1)系统以菜单方式工作;

(2)登记学生的学号,姓名,性别,年龄,籍贯,学院,专业,班级;

(3)修改已知学号的学生信息;

(4)查找已知学号的学生信息;

(5)按学号和专业输出学生籍贯表;

(6)查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。

二、设计平台

Visual C++ 6.0

三、设计思路及过程

1、初步完成总体结构设计,主要运用结构体及函数调用的知识设计程序框架,根据功能确定函数个数及储备每个功能所需的知识;

2、创建工程,同时在工程路径下创建记事本保存文件数据,写出程序的主要框架;

3、写主函数以及被调用函数,完成上述登记、修改、查找、输出学生信息等功能;

4、调试代码,不断修改以达到运行成功和取得最佳效果。

四、运行结果

(1)系统以菜单方式工作

(2)登记学生的学号、姓名、性别、年龄、籍贯、学院、专业、班级,并用文件保存

(3)修改已知学号的学生信息

(4)查找已知学号的学生信息

(5)按学号和专业输出学生籍贯表

(6)查询学生学籍变化,比如入学、转专业、退学、降级、休学、毕业

(7)退出系统

、程序代码

#include<stdio.h>#include<stdlib.h>#include<string.h>//头文件#define LEN 20//学号和姓名最大字符数,20#define N 50//最大的学生人数int M = 0;//当前已经有的学生数量//函数声明void insert(); //录入学生信息void modify(); //修改学生信息void search(); //查询学生信息void menu(); //主菜单函数void save(); //保存学生信息void jiguanbiao(); //输出学生籍贯信息void xueji(); //查询学生学籍变化信息//结构体保存学生信息struct student{long int Id; //学号char Name[LEN+1]; //姓名char Sex[LEN+1]; //性别int Age;//年龄char BirthPlace[LEN+1]; //籍贯char YuanXi[LEN+1];//院系char ZhuanYe[LEN+1]; //专业int BanJi;//班级char xueji[LEN+1];//学籍变化信息}stu[N];//主函数int main(){while (1){menu();}system("pause");return 0;}void menu()//菜单函数{int num;printf("\n");printf("——————————————————————————\n");printf("*************欢迎使用学生信息管理系统***************\n");printf("**\n");printf("********************系统功能菜单********************\n");printf("**\n");printf("* 1.添加学生信息 *\n");printf("* 2.修改学生信息 *\n");printf("* 3.查找学生信息 *\n");printf("* 4.输出学生籍贯表 *\n");printf("* 5.保存信息到文件 *\n");printf("* 6.查看学生学籍变化*\n");printf("* 7.退出系统 *\n");printf("——————————————————————————\n");printf("请选择菜单编号:");scanf("%d", &num);switch (num){case 1:printf("Input student number(M<=50):\n");scanf("%d", &M);insert();break;case 2:modify();break;case 3:search();break;case 4:jiguanbiao();break;case 5:save();break;case 6:xueji();break;case 7:printf("退出程序成功!\n");exit(0);default:printf("请在1-8之间选择\n");system("pause");//提示完成之后显示按任意键继续}}void insert()//添加学生信息{int i;for(i=1;i<=M;i++){printf("请输入第%d个学生的学号:",i);scanf("%ld",&stu[i].Id);printf("请输入第%d个学生的姓名:",i);scanf("%s",&stu[i].Name);printf("请输入第%d个学生的性别:",i);scanf("%s",&stu[i].Sex);printf("请输入第%d个学生的年龄:",i);scanf("%d",&stu[i].Age);printf("请输入第%d个学生的籍贯:",i);scanf("%s",&stu[i].BirthPlace);printf("请输入第%d个学生的学院:",i);scanf("%s",&stu[i].YuanXi);printf("请输入第%d个学生的专业:",i);scanf("%s",&stu[i].ZhuanYe);printf("请输入第%d个学生的班级:",i);scanf("%d",&stu[i].BanJi);printf("请输入第%d个学生的学籍(如入学、转专业、退学、降级、休学、毕业):",i);scanf("%s",&stu[i].xueji);}printf("学生信息添加完毕!请立即保存数据信息到文件!");}void modify()//修改学生信息{int i, item;long int a;printf("请输入要修改学生的学号:\n");scanf("%ld",&a);for (i=1; i<=M; i++){if (stu[i].Id==a){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("0.End of program!\n");while (1){printf("please choose:");scanf("%d", &item);switch (item){case 1:printf("Please input new name:\n");scanf("%s", &stu[i].Name);break;case 2:printf("Please input sex:\n ");scanf("%s", &stu[i].Sex);break;case 3:printf("Please input new age:\n");scanf("%d", &stu[i].Age);break;case 4:printf("Please input BirthPlace:\n");scanf("%s", &stu[i].BirthPlace);break;case 5:printf("Please input new yuanxi:\n");scanf("%s", &stu[i].YuanXi);break;case 6:printf("Please input new zhuanye:\n");scanf("%s", &stu[i].ZhuanYe);break;case 7:printf("Please input new banji:\n ");scanf("%d", &stu[i].BanJi);break;case 8:printf("Please input new xueji:\n");scanf("%s", &stu[i].xueji);break;default: printf("Input error!\n");}if (item == 0)break;}}}} void search() //查找已知学号的学生信息{long int b,term=-1;int i;printf("请输入要查找学生的学号:");scanf("%ld",&b);for (i=1; i<=M; i++){if (stu[i].Id==b){printf("学号:%ld 姓名:%s 性别:%s 年龄:%d 籍贯:%s 学院:%s 专业:%s 班级:%d 学籍:%s \n",stu[i].Id,stu[i].Name,stu[i].Sex,stu[i].Age,stu[i].BirthPlace,stu[i].YuanXi,stu[i].ZhuanYe,stu[i].BanJi,stu[i].xueji);term=-2;}}if(term!=-2){printf("Not found!\n");}}void jiguanbiao()//按学号和专业输出学生籍贯表{int i;FILE *fp;fp=fopen("student.txt","r");printf("********************学生籍贯表*********************\n");printf("学号姓名 籍贯\n");for(i=1;i<=M;i++){ printf("%ld %s %s\n",stu[i].Id,stu[i].Name,stu[i].BirthPlace);}fclose(fp);}void save()//保存学生信息到文件{int i;FILE *fp;fp=fopen("student.txt","w");//在工程路径下创建名为“student.txt”的记事本for(i=1;i<=M;i++){fprintf(fp,"%ld %s %s %d %s %s %s %d %s \n",stu[i].Id,stu[i].Name,stu[i].Sex,stu[i].Age,stu[i].BirthPlace,stu[i].YuanXi,stu[i].ZhuanYe,stu[i].BanJi,stu[i].xueji);}fclose(fp);printf("学生信息保存成功!");}void xueji() //查询学生学籍变化信息{long int c,t=-1;int i;printf("请输入要查询学生的学号:");scanf("%ld",&c);for (i=1; i<=M; i++){if (c==stu[i].Id){printf("学号:%ld 姓名:%s 学籍:%s \n",stu[i].Id,stu[i].Name,stu[i].xueji);t=-2;}}if(t!=-2)printf("Not found!\n");}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。