高校学籍管理系统C++程序设计

合集下载

c语言学籍管理系统源代码

c语言学籍管理系统源代码

c语言学籍管理系统源代码学籍管理系统的背景及意义随着社会的不断发展和教育的普及,学籍管理工作日益被重视。

传统的手工管理学籍的方式效率低下,存在着各种弊端,以致无法满足现代学校管理的需求。

因此,开发一款高效、便捷、可靠的学籍管理系统成为普遍需求,为了提高管理效率、减少工作难度,学籍管理系统被越来越广泛地使用。

本文将介绍一款基于C语言开发的学籍管理系统的源代码。

基本功能该学籍管理系统可以实现学生信息的录入、删除、修改和查询,以及学生的成绩录入、修改和查询。

此外,该系统还具备数据存储和文件读写的功能,能够自动保存学生信息和成绩数据,保障数据的安全性和可靠性。

模块设计该系统按照功能模块划分,主要分为三个模块:学生信息管理模块、学生成绩管理模块和数据存储与文件读写模块。

学生信息管理模块该模块主要实现学生信息的录入、删除、修改和查询等基本功能。

以下为该模块的主要源代码:```struct student {char name[20]; // 姓名int id; // 学号char sex[5]; // 性别char major[20]; // 专业};struct student stu[1000]; // 学生信息结构体数组int num_of_stu = 0; // 学生总数void add_student() { // 添加学生信息printf("请输入学生姓名:");scanf("%s", stu[num_of_stu].name);printf("请输入学生学号:");scanf("%d", &stu[num_of_stu].id);printf("请输入学生性别:");scanf("%s", stu[num_of_stu].sex);printf("请输入学生专业:");scanf("%s", stu[num_of_stu].major);num_of_stu++;printf("添加成功!\n");}void delete_student() { // 删除学生信息int delete_id;printf("请输入要删除的学生学号:");scanf("%d", &delete_id);int index = search_student_by_id(delete_id); if (index == -1) {printf("该学号不存在!\n");return;}for (int i = index; i < num_of_stu - 1; i++) { stu[i] = stu[i + 1];}num_of_stu--;printf("删除成功!\n");}void modify_student() { // 修改学生信息int modify_id;printf("请输入要修改的学生学号:");scanf("%d", &modify_id);int index = search_student_by_id(modify_id); if (index == -1) {printf("该学号不存在!\n");return;}printf("请输入学生姓名:");scanf("%s", stu[index].name);printf("请输入学生学号:");scanf("%d", &stu[index].id);printf("请输入学生性别:");scanf("%s", stu[index].sex);printf("请输入学生专业:");scanf("%s", stu[index].major);printf("修改成功!\n");}int search_student_by_id(int id) { // 根据学号查询学生信息for (int i = 0; i < num_of_stu; i++) {if (stu[i].id == id) {return i;}}return -1;}void query_student() { // 查询学生信息int query_id;printf("请输入要查询的学生学号:");scanf("%d", &query_id);int index = search_student_by_id(query_id);if (index == -1) {printf("该学号不存在!\n");return;}printf("姓名\t学号\t性别\t专业\n");printf("%s\t%d\t%s\t%s\n", stu[index].name,stu[index].id, stu[index].sex, stu[index].major);}```学生成绩管理模块该模块主要实现学生成绩信息的录入、修改和查询等功能。

c语言管理系统设计源代码

c语言管理系统设计源代码

c语言管理系统设计源代码以下是一个简单的C语言管理系统示例,用于管理学生信息。

该系统可以添加、删除、修改和查找学生信息。

c复制代码#include<stdio.h>#include<stdlib.h>#include<string.h>struct student {char name[50];int roll;float marks;};struct student students[100];int count = 0;void add_student() {struct student new_student;printf("Enter name: ");scanf("%s", new_);printf("Enter roll number: ");scanf("%d", &new_student.roll);printf("Enter marks: ");scanf("%f", &new_student.marks);students[count] = new_student;count++;}void delete_student() {int index;printf("Enter index of student to delete: ");scanf("%d", &index);for (int i = index; i < count - 1; i++) {students[i] = students[i + 1];}count--;}void modify_student() {int index;struct student new_student;printf("Enter index of student to modify: "); scanf("%d", &index);printf("Enter new name: ");scanf("%s", new_);printf("Enter new roll number: ");scanf("%d", &new_student.roll);printf("Enter new marks: ");scanf("%f", &new_student.marks);students[index] = new_student;}void find_student() {char name[50];printf("Enter name of student to find: "); scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) { printf("Roll number: %d\n", students[i].roll); printf("Marks: %.2f\n", students[i].marks); return;}}printf("Student not found.\n");}int main() {int choice;do {printf("\nMenu:\n");printf("1. Add student\n");printf("2. Delete student\n");printf("3. Modify student\n");printf("4. Find student\n");printf("5. Exit\n");printf("Enter choice: ");scanf("%d", &choice);switch (choice) {case1: add_student(); break;case2: delete_student(); break;case3: modify_student(); break;case4: find_student(); break;case5: exit(0); break; // exit the program here, otherwise the loop will keep running indefinitely, as it is in the do-while loop above. We are not returning, but rather exiting the program completely, so we do not need to return anything. The return value of main is always 0, and this is how the program exits. If you want to return a value other than 0, you can do so like this: return 1; or return -1; or return any other integer value you want to represent an error condition. The operating system will interpret this as the program's exit status. In this case, it will be seen as successful, as it is returning 0. The return value of main is not used for anything in this program, but it can be used in other programs to determine whether the program exited successfully or with an error. For example, if you were writing a shell script that executed this program and needed to know if it was successful or not, you could check the return value of the program and act accordingly. This is a common practice in programming, and it is important to understand how it works so that you can use it effectively in your own programs.。

学籍系统实验报告

学籍系统实验报告

西安交通大学实验报告课程程序设计基础实验名称课内实验第页共 6 页系别__ 计算机科学与技术实验日期 2011年 12 月11 日专业班级____ 计算机13 实验报告日期 2011年12月11 日姓名__吕鑫_ 学号报告退发 ( 订正、重做 )同组人___________________ _ _ 教师审批签字实验题目:使用C编程实现一个学籍管理系统1.程序设计与分析功能:实现学生信息的输入,删除,查询,排序,输出。

由于使用链表,可以进行动态定义,因此扩大学生信息的可存储性。

结构体的使用使数据容易操作。

指针的定义则是数据处理更方便。

算法:使用switch语句加循环的方式构成主函数,简单明了。

主函数见下:int main(){ int choice;struct student *input();struct student *HEAD=NULL;struct student *he(struct student *head);struct student *delet(struct student *head);void select(struct student *head);struct student *order(struct student *head);void output(struct student *head);choice=0;while(choice!=6){printf("1.input\n2.delete\n3.select\n4.order\n5.output\n6.quit\nplease input your option\n");scanf("%d",&choice);switch(choice){case 1:HEAD=input();he(HEAD);continue;case 2:delet(HEAD);;continue;case 3:select(HEAD);continue;case 4:order(HEAD);continue;case 5:output(HEAD);continue;case 6:break;}}return 0;}2.程序设计中存在的问题和解决思路主要困难:链表的不熟悉使编程颇为困难,主程序的反复循环不易处理。

C语言学籍管理系统(内含源代码)

C语言学籍管理系统(内含源代码)

学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。

2、能根据输入的学号查询学生,进行信息的修改。

3、能根据输入的学号从结构体数组中删除学生的记录。

4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。

5、能在屏幕上以列表的方式输出所有学生的信息。

三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。

系统功能机构图如下:2、重要数据的数据结构设计学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday 分另U代表学生的学号、专业、年级、性另U和出生日期,其中birthday 类型为自定义的结构体类型Date.Struct stumessage {Char stuno[11]: // 学号Char name[9]: // 姓名Char spec[2]: // 专业Char grade: // 年级Char sex : // 性别Stuct date birthday: // 出生日期};日期类型date包括三个属性,分别代表年、月、日Struct date{int year : // 年Int month: //Int day: // H};3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h 头文件和3个C源文件组成。

程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。

以下是这些函数原型及功能设计。

(1) void sysinfo(void)函数功能:在屏幕上输入系统及信息并等待用户响应。

c语言程序设计学生学籍管理系统实验数据存储及数据流向

c语言程序设计学生学籍管理系统实验数据存储及数据流向

c语言程序设计学生学籍管理系统实验数据存储及数据流向C语言程序设计学生学籍管理系统实验数据存储及数据流向在学生学籍管理系统中,数据存储和数据流向是非常重要的。

系统需要存储学生的个人信息、课程成绩和学籍变动等数据,并根据这些数据做出相应的处理。

这篇文章将带你了解学生学籍管理系统中的数据存储和数据流向。

数据存储学生学籍管理系统中需要存储的数据包括学生的个人信息、课程成绩和学籍变动等数据。

这些数据可以存储在不同的位置,如磁盘、数据库等。

磁盘存储:磁盘存储是最常见的数据存储方式,数据以文件的形式存放在硬盘上。

学生学籍管理系统中的数据可以存储在一个或多个文件中,每个文件存储一个类型的数据。

例如,学生的个人信息可以存储在一个“学生信息.txt”文件中,课程成绩可以存储在一个“课程成绩.txt”文件中。

数据库存储:数据库是一种结构化的数据存储方式,可以有效地管理大量数据。

学生学籍管理系统中,可以使用关系型数据库存储学生信息、教师信息、课程信息、成绩信息等数据,方便管理和检索。

通过SQL语句可以对数据库中的数据进行增删改查等操作,实现数据的高效管理。

数据流向学生学籍管理系统中的数据流向主要包括数据采集、数据处理、数据展示等过程。

这些流程需要将数据从一个位置传输到另一个位置,以实现正确的处理和展示。

数据采集:数据采集是指将学生或其他相关信息采集到系统中的过程。

例如,学生信息可以通过录入学生信息表单实现,成绩信息可以通过录入成绩表单实现等。

数据采集需要保证数据的准确性和完整性,以保证数据的正确性。

数据处理:数据处理是指对采集到的数据进行各种处理操作的过程。

例如,对学生信息进行排序、筛选、查询等操作,对成绩信息进行计算平均分、制作成绩报表等操作。

数据处理需要对数据进行严格的逻辑检验,以保证数据的正确性。

数据展示:数据展示是指将处理后的数据以易于理解的形式展示给用户的过程。

例如,把学生信息、成绩信息等数据以列表或表格形式展示给用户,使用户能够清晰了解学生的学籍状况。

学生管理系统c语言简单版

学生管理系统c语言简单版

学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。

本文将介绍如何使用C语言编写一个简单的学生管理系统。

功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。

我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。

C语言的教务管理系统(2000行代码)

C语言教务管理系统一、程序结构图二、程序运行截图1. 个人信息简介2.修改颜色3.注册界面4. 信息保存至文件5.登录界面6.管理员录入信息7. 学生信息录入8.学生成绩录入9.学生课程表录入10.学生信息查询界面11学生信息查询12.学生成绩查询13.学生课表查询三、代码(一个cpp)#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include <conio.h>#include"windows.h"#define student_num 1000 /*定义1000个学生*/#define teacher_num 5 /*定义5个老师(管理员)*/int is_my_student(struct student *p,int *size); /*声明返回第i+1个学生的函数*/ int is_my_teacher(struct teacher *p,int *size); /*声明返回第i+1个老师的函数*/ int length_student_name(char *p); /*声明验证用户名函数*/int length_student_password(char *p); /*声明验证密码长度函数*/int length_teacher_name(char *p); /*声明验证用户名函数*/int length_teacher_password(char *p); /*声明验证密码长度函数*/int show_menu_login(); /*声明登录菜单函数*/int show_menu_register(); /*声明注册菜单函数*/int show_teacher_select(); /*声明教师录入菜单函数*/int show_student_select(); /*声明学生查询菜单函数*/int student_register(struct student *ptr_student,int *size); /*声明学生注册函数*/ int teacher_register(struct teacher *ptr_teacher,int *size); /*声明老师注册函数*/ int vaild_student_name(char *p); /*声明验证用户名函数*/int vaild_student_password(char *p); /*声明验证密码函数*/int vaild_teacher_name(char *p); /*声明验证用户名函数*/int vaild_teacher_password(char *p); /*声明验证密码函数*/int vaild_two_password(char *p1,char *p2); /*声明验证两次密码是否相同函数*/ int yes_no_return(); /*声明选择是否返回上一层函数*/void load(); /*声明加载函数*/void register_(int *count1,int *count2); /*声明注册函数*/void display_student(struct student stu); /*声明显示学生信息函数*/void display_teacher(struct teacher tea); /*声明显示老师信息函数*/void student_file1(); /*将保存的学生的账号密码存入文件中*/ void student_file2(); /*将保存的学生的个人信息存入文件中*/ void student_file3(); /*将保存的学生的成绩存入文件中*/void teacher_file(); /*将保存的老师的账号密码存入文件中*/ void input_information(int count); /*声明输入学生信息函数*/void input_score_menu(int count); /*声明输入学生成绩函数*/void color(); /*声明选择窗体颜色函数*/void print_stu_information(int count_stu); /*声明输出账号为num的学生的信息函数*/void print_stu_score(int count_stu); /*声明输出账号为num的学生的成绩函数*/void show_menu(); /*声明初始化界面函数*/void input(); /*声明输入函数*/void menu1(); /*声明教师录入课程表主菜单函数*/void menu2(); /*声明学生查询课程表主菜单函数*/void rank(); /*声明显示时间顺序函数*/void querymenu3(); /*声明查询函数*/void looktime(); /*声明按照时间查询函数*/void looklessonname(); /*声明按照课程名查询函数*/void add(); /*声明保存函数*/void amend(); /*声明修改课程函数*/void amend1(); /*声明修改课程子函数*/void amendnews(int i); /*声明修改整个课程信息函数*/void amendtime(int i); /*声明修改课程时间函数*/void amendlessonname(int i); /*声明修改课程课程名函数*/void amendclassroom(int i); /*声明修改课程教室函数*/void deleted(); /*声明删除函数*/void add_score(int count); /*声明添加学生成绩函数*/void xiugai_score(int count); /*声明修改学生成绩函数*/void shanchu_score(int count); /*声明删除学生成绩函数*/void chaxun_score(int count); /*声明按要求查询学生成绩函数*/void paixu_score(int count); /*声明学生成绩排序函数*/void tongji_score(int count); /*声明学生成绩统计函数*/float chinese(int count); /*声明计算语文成绩最大值函数*/int chr(int count); /*声明计算语文成绩及格人数的函数*/ float english(int count); /*声明计算英语成绩最大值函数*/int ehr(int count); /*声明计算英语成绩及格人数的函数*/ float math(int count); /*声明计算数学成绩最大值函数*/int mhr(int count); /*声明计算数学成绩及格人数的函数*/ float computer(int count); /*声明计算计算机成绩最大值函数*/int thr(int count); /*声明计算计算机成绩及格人数的函数*/float PE(int count); /*声明计算体育成绩最大值函数*/int phr(int count); /*声明计算体育成绩及格人数的函数*/ float sum_score(int count); /*声明计算总分成绩最大值函数*/ void load_student(int a); /*声明启动学生函数*/void load_teacher(int a); /*声明启动老师函数*/struct student /*学生结构体*/{/*个人信息*/int student_id; /*账号*/char student_name[20]; /*姓名*/char password[16]; /*密码*/int age; /*年龄*/char qq[12]; /*QQ号*/char tel[12]; /*电话*/int grade; /*年级*//*各科成绩*/float chinese; /*语文分数*/float english; /*英语分数*/float math; /*数学分数*/float computer; /*计算机分数*/float PE; /*体育分数*/float sum; /*总分*//*课程表*/char time[10]; /*时间*/char lessonname[20]; /*课程名*/char teacher[20]; /*授课老师*/char classroom[10]; /*教室*/char hours[10]; /*第几节课*/int weeks; /*周时*/};struct teacher /*老师结构体*/ {int teacher_id; /*账号*/char teacher_name[20]; /*姓名*/char password[16]; /*密码*/};struct student our_student[student_num]; struct teacher our_teacher[teacher_num];void main() /*主函数*/{system("color f0"); /*初始化背景颜色*/show_menu(); /*制作人信息简介*/load();}void load() /*启动函数*/{int flag=1; /*控制循环结束的变量*/int a=0,b=0; /*记录已注册的学生的人数a为学生个数b为老师个数*/int *count1=&a,*count2=&b; /*指向学生人数和老师人数的指针*/int correct_student,correct_teacher;color();register_(count1,count2); /*注册学生和老师的帐号*/student_file1();teacher_file();while(flag){switch(show_menu_login()) /*显示登录菜单*/{case 1: /*选择1,进入学生登录*/if(correct_student=is_my_student(our_student,count1)){printf("\n ◆学生登录成功!\n");display_student(our_student[correct_student-1]);printf("\n");printf(" ");system("pause");load_student(a);}elseprintf("\n登录失败!\n");printf("\n");printf(" 提示:按Y退出登录界面,按N返回登录界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,进入老师登录,即管理员登录*/ if(correct_teacher=is_my_teacher(our_teacher,count2)){printf("\n ◆管理员登录成功!\n");display_teacher(our_teacher[correct_teacher-1]);printf("\n");printf(" ");system("pause");load_teacher(a);}elseprintf("\n登录失败!\n");printf("\n");printf(" 提示:按Y退出登录界面,按N返回登录界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,退出登录*/system("cls");flag=0;break;default:printf("请正确输入1-3:");system("cls");}}}void load_student(int a) /*启动学生函数*/{int flag=1;system("cls");while(flag){switch(show_student_select()){case 1: /*选择1,学生信息查询*/system("cls");print_stu_information(a);printf("\n");printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,学生成绩查询*/system("cls");print_stu_score(a);printf("\n");printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,学生课表查询*/menu2();printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 4: /*选择4,退出查询界面*/system("cls");flag=0;break;default:printf("请正确输入1-4:");system("cls");}}}void load_teacher(int a) /*启动老师函数*/{int flag=1;system("cls");while(flag){switch(show_teacher_select()){case 1: /*选择1,学生信息录入*/input_information(a);system("cls");student_file2();printf("\n 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,学生成绩录入*/input_score_menu(a);system("cls");student_file3();printf("\n 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,学生课表录入*/menu1();printf(" 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 4: /*选择4,退出管理界面*/system("cls");flag=0;break;default:printf("请正确输入1-4:");system("cls");}}}int length_student_name(char *p) /*验证用户名是否合法*/ {int l;l=strlen(p);if(l>20||l<1)return 0;elsereturn 1;}int vaild_student_name(char *p) /*判断用户名是否有效*/{int i=0;int len=strlen(p);if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判断首字母是不是字母*/ {for(i=0;i<len;i++){if(!(p[i]='_'||(p[i]>='a'&&p[i]<='z')||(p[i]>='A'&&p[i]<='Z')||(p[i]>='0'&&p[i]<=' 9'))) /*判断后面的字符是否有效*/return 0;}return 1;}elsereturn 0;}int length_student_password(char *p) /*密码长度有效性验证*/{int len;len=strlen(p);if(len<6||len>16)return 0;elsereturn 1;}int vaild_student_password(char *p) /*密码的有效性验证*/{int i=0;for(;*p!='\0';p++){if(!((*p>='a'&&*p<='z')||(*p>'A'&&*p<'Z')||(*p>='0'&&*p<='9'))) return 0;}return 1;}int vaild_two_password(char *p1,char *p2) /*验证两次密码是否相同*/{if(strcmp(p1,p2)==0)return 1;elsereturn 0;}int student_register(struct student *ptr_student,int *size) /*完成注册功能*/{char password[16];char repassword[16];if(*size==student_num){puts(" ◆注册人数已满!");printf("\n");return 0;}system("cls");printf("\n\n");printf(" ★请输入注册学生姓名:");fflush(stdin);gets(ptr_student[*size].student_name);if(!(length_student_name(ptr_student[*size].student_name)&&vaild_student_name(ptr_student[*size].student_name))){printf(" ◆您输入的姓名无效,学生姓名在1-20之间,首字符为字母,后面必须为字母、数字或下划线!!!");return 0;}printf("\n");printf(" ★请输入注册密码:");fflush(stdin);gets(password);printf("\n");printf(" ★请再次输入注册密码:");fflush(stdin);gets(repassword);printf("\n");if(!vaild_two_password(password,repassword)){printf("\n №:两次输入的密码不一致!!!");printf("\n");return 0;}elsestrcpy(ptr_student[*size].password,password);if(!(length_student_password(ptr_student[*size].password)&&vaild_student_pa ssword(ptr_student[*size].password))){printf(" ◆您输入的密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!");printf("\n");return 0;}printf(" ★您的编号为:%d,这将是您的登录账号!!!",ptr_student[*size].student_id=20150000+*size);return 1;}int is_my_student(struct student *p,int *size) /*如果登录成功则返回第i+1个学生的信息,否则返回0*/{int i;int zhanghao;char mima[18];system("cls");printf("\n\n");printf(" ★请输入您的账号:");scanf("%d",&zhanghao);fflush(stdin);printf("\n");printf(" ★请输入您的密码:");gets(mima);for(i=0;i<*size;i++){if((zhanghao==p[i].student_id)&&(strcmp(mima,p[i].password)==0)) return i+1;}return 0;}void display_student(struct student stu) /*显示学生信息*/{printf("\n ★您的账号是:%d\n",stu.student_id);}int length_teacher_name(char *p) /*验证用户名是否合法*/{int l;l=strlen(p);if(l>20||l<1)return 0;elsereturn 1;}int vaild_teacher_name(char *p) /*判断用户名是否有效*/{int i=0;int len=strlen(p);if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判断首字母是不是字母*/ {for(i=0;i<len;i++){if(!(p[i]='_'||(p[i]>='a'&&p[i]<='z')||(p[i]>='A'&&p[i]<='Z')||(p[i]>='0'&&p[i]<=' 9'))) /*判断后面的字符是否有效*/return 0;}return 1;}elsereturn 0;}int length_teacher_password(char *p) /*密码长度有效性验证*/{int len;len=strlen(p);if(len<6||len>16)return 0;elsereturn 1;}int vaild_teacher_password(char *p) /*密码的有效性验证*/{int i=0;for(;*p!='\0';p++){if(!((*p>='a'&&*p<='z')||(*p>'A'&&*p<'Z')||(*p>='0'&&*p<='9'))) return 0;}return 1;}int teacher_register(struct teacher *ptr_teacher,int *size) /*完成注册功能*/{char password[16];char repassword[16];if(*size==teacher_num){puts(" ◆注册人数已满!");printf("\n");return 0;}system("cls");printf("\n\n");printf(" ★请输入注册教师姓名:");fflush(stdin);gets(ptr_teacher[*size].teacher_name);if(!(length_teacher_name(ptr_teacher[*size].teacher_name)&&vaild_teacher_na me(ptr_teacher[*size].teacher_name))){printf(" ◆您输入的姓名无效,教师姓名在1-20之间,首字符为字母,后面必须为字母、数字或下划线!!!");printf("\n");return 0;}printf("\n");printf(" ★请输入注册密码:");fflush(stdin);gets(password);printf("\n");printf(" ★请再次输入注册密码:");fflush(stdin);gets(repassword);printf("\n");if(!vaild_two_password(password,repassword)){printf("\n №:两次输入的密码不一致!!!");printf("\n");return 0;}elsestrcpy(ptr_teacher[*size].password,password);if(!(length_teacher_password(ptr_teacher[*size].password)&&vaild_teacher_password(ptr_teacher[*size].password))){printf(" ◆您输入的密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!");printf("\n");return 0;}printf(" ★您的编号为:%d,这将是您的登录账号。

c语言课程设计学生学籍管理系统

c语言课程设计学生学籍管理系统一、教学目标本课程旨在让学生掌握C语言的基本语法,培养学生编写结构化程序的能力,使学生能够运用C语言实现简单的学生学籍管理系统。

通过本课程的学习,学生将能够:1.知识目标:–理解C语言的基本数据类型、运算符和表达式;–掌握函数的定义和调用,理解局部变量和全局变量的概念;–熟悉控制结构,如if语句、for循环和while循环;–了解数组、字符串和指针的基本使用方法。

2.技能目标:–能够使用C语言编写简单的程序,解决实际问题;–掌握基本的调试技巧,能够找出并修复程序中的错误;–具备阅读和理解他人代码的能力。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生的自主学习能力;–培养学生团队协作的精神,增强学生的沟通能力;–培养学生解决问题的能力,提高学生的创新意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基本语法:数据类型、运算符、表达式、函数、局部变量和全局变量等;2.控制结构:if语句、for循环、while循环等;3.数据结构:数组、字符串、指针等;4.学生学籍管理系统的实现:学生信息的添加、删除、修改和查询等功能。

三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学:1.讲授法:通过讲解C语言的基本语法和概念,使学生掌握相关知识;2.案例分析法:通过分析实际案例,使学生理解并掌握C语言在学生学籍管理系统中的应用;3.实验法:让学生动手编写代码,实现学生学籍管理系统的功能,提高学生的实际操作能力。

四、教学资源本课程的教学资源包括:1.教材:《C语言程序设计》;2.参考书:《C语言 Primer》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络等。

以上教学资源将有助于实现本课程的教学目标,提高学生的学习效果。

五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。

学生管理系统c语言毕业设计

学生管理系统c语言毕业设计学生管理系统是一个用于管理学生信息和学校日常运营的软件系统。

它能够帮助学校管理学生的个人信息、课程安排、成绩记录以及其他相关事务。

以下是关于学生管理系统的一些常见问题和解释:1. 学生管理系统是什么学生管理系统是一种软件系统,用于帮助学校管理学生信息和学校事务。

它可以存储学生的个人信息,包括姓名、年龄、性别、联系方式等。

同时,学生管理系统还提供了一系列功能,例如课程安排、成绩记录、考勤管理等。

2. 学生管理系统有哪些功能学生管理系统通常包含以下主要功能:-学生信息管理:可以记录学生的个人信息,包括姓名、年龄、性别、住址等。

-课程安排:可以安排学生的课程表,包括课程名称、教师信息、上课时间和地点等。

-成绩记录:可以记录学生的考试成绩和平时成绩,以便后续查询和统计。

-考勤管理:可以记录学生的出勤情况,包括迟到、早退、请假等。

-统计分析:可以根据学生的成绩和出勤情况进行统计分析,提供相关报表和图表。

3. 学生管理系统的优势是什么学生管理系统有以下几个优势:-提高工作效率:学生管理系统可以自动化学生信息的录入和管理,减少了手工操作的时间和错误。

-方便数据查询:学生管理系统可以快速查询和检索学生的个人信息、课程安排和成绩记录,提供了方便快捷的数据访问方式。

-信息安全性:学生管理系统可以设置权限和保护机制,保证学生信息的安全性和隐私保护。

4. 如何设计一个学生管理系统设计一个学生管理系统需要考虑以下几个方面:-数据库设计:需要设计一个合适的数据库结构来存储学生信息、课程安排和成绩记录等。

-用户界面设计:需要设计用户友好的界面,方便用户进行操作和查询。

-功能实现:根据需求,实现学生信息管理、课程安排、成绩记录等功能模块。

-数据安全性和权限控制:保证学生信息的安全性和隐私保护,设置合适的权限和保护机制。

希望以上解答对您的学生管理系统项目有所帮助。

如果您需要更具体的信息或具体的代码实现,还请进一步提供相关要求。

学籍管理系统(课程答辩)

scanf("%s",Stu[0].name);
printf("please input spec\n");
scanf("%s",Stu[0].spec);
printf("please input greade\n");
scanf("%d",&Stu[0].greade);
printf("please input sex\n");
scanf("%s",Stu[0].sex);
函数功能:在屏幕上以列表的方式输出学生所有信息。调用printhead()输出表头,在调用listone()函数注意输出个条记录。
(8)void quit(void);
函数功能:退出菜单系统,并调用exit(0)系统函数结束程序运行。
(9)voidsteargrade(stuct stumessage stu[]);
printf("\t\t\t删除学生信息,请选择3\n");
printf("\t\t\t查询学生信息,请选择4\n");
printf("\t\t\t输出学生信息,请选择5\n");
printf("\t\t\t退出系统,请选择6\n");
printf("\n\t\t\t\t\t\t\t\t\t\t\t\t\n");
函数功能:在屏幕上输入系统及版权信息并等待用户响应。
(2)Void menuofmain(struct stumessage stu[]);
函数功能:在屏幕上显示主菜单,接收用户选择并响应用户相应操作。
(3)Void append(struct stumessage stu[]);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC++课程设计---高校学籍管理系统源程序一、课程设计题目:学籍管理系统二、目的与要求:1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

2、基本要求:(1)要求利用面向对象的法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统的设计中,至少要用到面向对象的一种机制。

3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。

4、写出设计说明书三、设计法和基本原理:1、功能要求要求完成以下功能:1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。

2)能够将指定的信息从文件中删除。

3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。

4)可以统计全部学生的总成绩,及其在班上的排名。

5)能够统计各科的平均成绩及及格率。

6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。

7)如果检索不到相应的信息应提示用户。

2、问题的解决案:根据系统功能要求,可以将问题解决分为以下步骤:a) 写出需求分析(做什么)b) 分析系统中的各个实体之间的关系及其属性和行为;c) 根据问题描述,设计系统的类层次;d) 完成类层次中各个类的描述(包括属性和法);e) 完成类中各个成员函数的定义;f) 用户界面的设计g) 分析系统功能模块(系统流程图)h) 代码编写i) 功能调试;j) 完成系统总结报告以及系统使用说明书。

源程序代码如下:[code]/*course.dat-课程列表(只读)student.dat-学生信息*/#include <fstream.h>#include <iomanip.h>#include <string.h>#include <ctype.h>class COURSE //课程类{private:static int coursenum; //课程数量static char (*coursename)[20]; //课程名称public:static void LoadCourse() //从文件COURSE.DAT装入课程信息 {ifstream f("course.dat");f>>coursenum;coursename=new char[coursenum][20];for(int i=0; i<coursenum; i++)f>>coursename;f.close();}friend class STUDENT;friend class COLLEGE;};int COURSE::coursenum=0;char (*COURSE::coursename)[20]=0;class STUDENT //学生类{private:char num[20]; //学号char name[20]; //姓名char sex; //性别char cname[20]; //班级float *grade; //成绩(动态数组)float sum; //各科总分STUDENT *next;public:STUDENT(){grade=new float[COURSE::coursenum];next=0;}~STUDENT(){delete []grade;}void Input(){sum=0;cout<<"学号:"; cin>>num; //输入学生一般信息cout<<"姓名:"; cin>>name;cout<<"性别:"; cin>>sex; sex=toupper(sex);cout<<"班级:"; cin>>cname;for(int i=0; i<COURSE::coursenum; i++) //输入学生各科成绩{cout<<COURSE::coursename<<"成绩:"; cin>>grade;sum+=grade; //计算总分}}void Input(ifstream &f){f>>num;f>>name;f>>sex; sex=toupper(sex);f>>cname;for(int i=0; i<COURSE::coursenum; i++) //输出学生各科成绩,总分{f>>grade;}f>>sum;}static void OutputT(){cout<<setw(10)<<"学号"<<setw(20)<<"姓名"<<setw(5)<<"性别"<<setw(10)<<"班级";for(int i=0; i<COURSE::coursenum; i++)cout<<setw(7)<<COURSE::coursename;cout<<setw(10)<<"总分"<<endl;}void Output(){cout<<setw(10)<<num; //输出学生一般信息cout<<setw(20)<<name;cout<<setw(5)<<sex;cout<<setw(10)<<cname;for(int i=0; i<COURSE::coursenum; i++) //输出学生各科成绩,总分{cout<<setw(7)<<grade;}cout<<setw(10)<<sum<<endl;}void Output(ofstream &f){f<<setw(10)<<num; //输出学生一般信息f<<setw(20)<<name;f<<setw(5)<<sex;f<<setw(10)<<cname;for(int i=0; i<COURSE::coursenum; i++) //输出学生各科成绩,总分{f<<setw(7)<<grade;}f<<setw(10)<<sum<<endl;}friend class COLLEGE;};class COLLEGE //学校类{private:STUDENT *SL; //学生链表void Clear();int Find(char* ID,STUDENT **p1,STUDENT **p2);void COLLEGE::ValueS2ToS1(STUDENT &s1,STUDENT &s2); public:COLLEGE(){COURSEadCourse(); //装入课程信息SL=new STUDENT(); //创建学生链表表头结点}~COLLEGE(){STUDENT *p=SL; //删除学生链表各个结点while(p){SL=p->next;delete p;p=SL;}}void Set(); //课程设置(增,删,改,存)void Add(); //增加学生void Delete(); //删除学生void Modify(); //修改学生void Query(); //查询学生信息(按姓名,学号)void Print(); //输出所有学生信息void Stat(); //统计课程平均成绩,课程合格率void SumSort(); //按总分排名(高->低)void NumSort(); //按学号排序(低->高)void Save(); //学生数据存盘void Load(); //装入学生数据};//增加学生void COLLEGE::Add(){cout<<"\n** 增加学生信息**\n";STUDENT *p=new STUDENT; //创建1个新学生结点STUDENT *p2=SL; //查找学生链表表尾结点 while(p2->next)p2=p2->next;p2->next=p; //学生结点p->Input(); //输入学生信息}//查找学生结点(返回1-找到,0-未找到.结点指针由p1返回,p2为前看指针) int COLLEGE::Find(char *ID,STUDENT **p1,STUDENT **p2){*p1=SL->next;*p2=SL;while(*p1){if(strcmp((*p1)->num,ID)==0)break; //找到else{*p2=*p1; //继续查找*p1=(*p1)->next;}}return *p1?1:0;}//删除学生void COLLEGE:elete(){cout<<"\n** 删除学生**\n";char No[20];STUDENT *p1,*p2;cout<<"学号:"; cin>>No;if(!Find(No,&p1,&p2)){cout<<"指定的学生没有找到!\n";}else{p2->next=p1->next; //连接delete p1;cout<<"正确删除!\n";}}//修改学生void COLLEGE::Modify(){cout<<"\n** 修改学生**\n";char No[20];STUDENT *p1,*p2;cout<<"学号:"; cin>>No;if(!Find(No,&p1,&p2)){cout<<"指定的学生没有找到!\n";}else{p1->Output(); //输出原来的学生信息(做提示)p1->Input(); //输入此学生信息(更新)cout<<"修改完成!\n";}}/*承上*///查询学生信息//按学号或姓名查找,如果找到显示该学生,如果未找到,也给出相应提示. void COLLEGE:uery(){cout<<"\n** 查询学生**\n";STUDENT *p=SL->next;char No[20];char Name[20];char ch;do{cout<<"按学号查1,按姓名查2:"; cin>>ch; }while(ch!='1'&&ch!='2');int flag=0; //未找到0,找到1if(ch=='1') //按学号查{cout<<"学号:"; cin>>No;while(p)if(strcmp(p->num,No)==0){flag=1; break;}elsep=p->next;}else //按姓名查{cout<<"姓名:"; cin>>Name;while(p)if(strcmp(p->name,Name)==0){flag=1; break;}elsep=p->next;}if(flag==1) //如果找到,显示此同学信息{p->OutputT();p->Output();}else //否则给出未找到提出cout<<"指定的学生没有找到!\n"; }//输出所有学生信息void COLLEGE:rint(){cout<<"\n** 输出学生信息**\n"; STUDENT *p=SL->next;STUDENT::OutputT(); //输出标题 while(p) //循环输出各位学生信息 {p->Output();p=p->next;}}//学生数据存盘void COLLEGE::Save(){ofstream f("student.dat");STUDENT *p=SL->next;while(p) //遍历学生链表{p->Output(f); //写入文件p=p->next;}f.close();cout<<"\n** 保存数据完成! **\n"; }void COLLEGE::Clear(){STUDENT *p=SL->next;while(p){SL->next=p->next;delete p;p=SL->next;}}//装入学生数据void COLLEGEad(){Clear();ifstream f("student.dat");STUDENT *p=SL;STUDENT *p2=new STUDENT;p2->Input(f);while(f){p->next=p2;p=p->next;p2=new STUDENT;p2->Input(f);}delete p2;f.close();}//统计课程平均成绩,课程合格率void COLLEGE::Stat(){float *sum=new float[COURSE::coursenum]; //各科平均成绩float *pass=new float[COURSE::coursenum]; //各科合格人数,/n=>合格率int n=0; //学生人数for(int i=0; i<COURSE::coursenum; i++){STUDENT *p=SL->next; n=0;sum=pass=0;while(p) //遍历学生链表{n++; //人数sum=sum+p->grade; //某科总分if(p->grade>=60)pass++; //某科合格人数p=p->next;}}for(i=0; i<COURSE::coursenum; i++){cout<<setprecision(4)<<setiosflags(ios::showpoint);cout<<COURSE::coursename<<"平均:"<<sum/n<<",合格率:"<<pass/n*100.<<"%"<<endl;}delete []sum;delete []pass;}void COLLEGE::ValueS2ToS1(STUDENT &s1,STUDENT &s2) {strcpy(s1.num,s2.num); //学号strcpy(,); //姓名s1.sex=s2.sex; //性别strcpy(ame,ame); //班级for(int i=0; i<COURSE::coursenum; i++)s1.grade=s2.grade; //成绩指针(动态数组)s1.sum=s2.sum; //各科总分}//按总分排名(采用选择法排序),总分高->低void COLLEGE::SumSort(){STUDENT *p1,*p2;p1=SL->next;while(p1){p2=p1->next;while(p2){if(p2->sum>p1->sum){STUDENT t;ValueS2ToS1(t,*p1);ValueS2ToS1(*p1,*p2);ValueS2ToS1(*p2,t);}p2=p2->next;}p1=p1->next;}}void COLLEGE::NumSort() //按学号排序(低->高){STUDENT *p1,*p2;p1=SL->next;while(p1){p2=p1->next;while(p2){if(strcmp(p2->num,p1->num)<0) //只要修改这里,其余同SumSort {STUDENT t;ValueS2ToS1(t,*p1);ValueS2ToS1(*p1,*p2);ValueS2ToS1(*p2,t);}p2=p2->next;}p1=p1->next;}}void main(){char ch;COLLEGE c; //定义大学对象cout.setf(ios::left);//显示主菜单,接受选择,并分支调用大学类的相应功能的成员函数 do{cout<<"\n☆☆ 高校学籍管理系统☆☆\n";cout<<"1-增加学生\n";cout<<"2-删除学生\n";cout<<"3-修改学生\n";cout<<"4-查询学生\n";cout<<"5-输出学生信息\n";cout<<"6-综合统计(课程平均成绩,课程合格率)\n";cout<<"7-总分排序\n";cout<<"8-学号排序\n";cout<<"S-数据存盘\n";cout<<"L-数据装入\n";cout<<"Q-退出\t请选择(1-8,SLQ):";cin>>ch; ch=toupper(ch);switch(ch){case '1': c.Add(); break;case '2': c.Delete();break;case '3': c.Modify();break;case '4': c.Query(); break;case '5': c.Print(); break;case '6': c.Stat(); break;case '7': c.SumSort(); break;case '8': c.NumSort(); break;case 'S': c.Save(); break;case 'L': c.Load(); break;}}while(ch!='Q');}3、2数据文件1、course.dat:3C++英语高数2、student.dat:86101 chenkaijun M M8601 77 59 96 232 86102 zhaowei F M8601 55 85 77 217 86103 wubin M M8601 85 87 92 264 86104 shijun M M8601 58 90 85 233 86105 wangzhuguo M M8601 66 70 86 22 23、3运行结果参考☆☆ 高校学籍管理系统☆☆1-增加学生2-删除学生3-修改学生4-查询学生5-输出学生信息6-综合统计(课程平均成绩,课程合格率7-总分排序8-学号排序S-数据存盘L-数据装入Q-退出请选择(1-8,SLQ)☆☆ 高校学籍管理系统☆☆1-增加学生2-删除学生3-修改学生4-查询学生5-输出学生信息6-综合统计(课程平均成绩,课程合格率7-总分排序8-学号排序S-数据存盘L-数据装入Q-退出请选择(1-8,SLQ):5** 输出学生信息**学号姓名性别班级 C++ 英语高数总分86101 chenkaijun M M8601 77 59 96 232 86102 zhaowei F M8601 55 85 77 217 86103 wubin M M8601 85 87 92 264 86104 shijun M M8601 58 90 85 233 86105 wangzhuguo M M8601 66 70 86 222 ☆☆ 高校学籍管理系统☆☆1-增加学生2-删除学生3-修改学生4-查询学生5-输出学生信息6-综合统计(课程平均成绩,课程合格率)7-总分排序8-学号排序S-数据存盘L-数据装入Q-退出请选择(1-8,SLQ):7☆☆ 高校学籍管理系统☆☆1-增加学生2-删除学生3-修改学生4-查询学生5-输出学生信息6-综合统计(课程平均成绩,课程合格率)7-总分排序8-学号排序S-数据存盘L-数据装入Q-退出请选择(1-8,SLQ):5** 输出学生信息**学号姓名性别班级 C++ 英语高数总分86103 wubin M M8601 85 87 92 264 86104 shijun M M8601 58 90 85 233 86101 chenkaijun M M8601 77 59 96 232 86105 wangzhuguo M M8601 66 70 86 222 86102 zhaowei F M8601 55 85 77 217☆☆ 高校学籍管理系统☆☆1-增加学生2-删除学生3-修改学生4-查询学生5-输出学生信息6-综合统计(课程平均成绩,课程合格率)7-总分排序8-学号排序S-数据存盘L-数据装入Q-退出请选择(1-8,SLQ):qPress any key to continun//查询学生信息//按学号或姓名查找,如果找到显示该学生,如果未找到,也给出相应提示. void COLLEGE:uery(){cout<<"\n** 查询学生**\n";STUDENT *p=SL->next;char No[20];char Name[20];char ch;do{cout<<"按学号查1,按姓名查2:"; cin>>ch;}while(ch!='1'&&ch!='2');int flag=0; //未找到0,找到1if(ch=='1') //按学号查{cout<<"学号:"; cin>>No;while(p)if(strcmp(p->num,No)==0){flag=1; break;}elsep=p->next;}else //按姓名查{cout<<"姓名:"; cin>>Name;while(p)if(strcmp(p->name,Name)==0){flag=1; break;}elsep=p->next;}if(flag==1) //如果找到,显示此同学信息 {p->OutputT();p->Output();}else //否则给出未找到提出cout<<"指定的学生没有找到!\n";}//输出所有学生信息void COLLEGE:rint(){cout<<"\n** 输出学生信息**\n";STUDENT *p=SL->next;STUDENT::OutputT(); //输出标题while(p) //循环输出各位学生信息{p->Output();p=p->next;}}//学生数据存盘void COLLEGE::Save(){ofstream f("student.dat");STUDENT *p=SL->next;while(p) //遍历学生链表{p->Output(f); //写入文件p=p->next;}f.close();cout<<"\n** 保存数据完成! **\n"; }void COLLEGE::Clear(){STUDENT *p=SL->next;while(p){SL->next=p->next;delete p;p=SL->next;}}//装入学生数据void COLLEGEad(){Clear();ifstream f("student.dat");STUDENT *p=SL;STUDENT *p2=new STUDENT; p2->Input(f);while(f){p->next=p2;p=p->next;p2=new STUDENT;p2->Input(f);}delete p2;f.close();}//统计课程平均成绩,课程合格率void COLLEGE::Stat(){float *sum=new float[COURSE::coursenum]; //各科平均成绩float *pass=new float[COURSE::coursenum]; //各科合格人数,/n=>合格率int n=0; //学生人数for(int i=0; i<COURSE::coursenum; i++){STUDENT *p=SL->next; n=0;sum=pass=0;while(p) //遍历学生链表{n++; //人数sum=sum+p->grade; //某科总分if(p->grade>=60)pass++; //某科合格人数p=p->next;}}for(i=0; i<COURSE::coursenum; i++){cout<<setprecision(4)<<setiosflags(ios::showpoint);cout<<COURSE::coursename<<"平均:"<<sum/n<<",合格率:"<<pass/n*100.<<"%"<<endl;}delete []sum;delete []pass;}void COLLEGE::ValueS2ToS1(STUDENT &s1,STUDENT &s2){strcpy(s1.num,s2.num); //学号strcpy(,); //姓名s1.sex=s2.sex; //性别strcpy(ame,ame); //班级for(int i=0; i<COURSE::coursenum; i++) s1.grade=s2.grade; //成绩指针(动态数组) s1.sum=s2.sum; //各科总分}//按总分排名(采用选择法排序),总分高->低void COLLEGE::SumSort(){STUDENT *p1,*p2;p1=SL->next;while(p1){p2=p1->next;while(p2){if(p2->sum>p1->sum){STUDENT t;ValueS2ToS1(t,*p1);ValueS2ToS1(*p1,*p2);ValueS2ToS1(*p2,t);}p2=p2->next;}p1=p1->next;}}void COLLEGE::NumSort() //按学号排序(低->高) {STUDENT *p1,*p2;p1=SL->next;while(p1){p2=p1->next;while(p2){if(strcmp(p2->num,p1->num)<0) //只要修改这里,其余同SumSort {STUDENT t;ValueS2ToS1(t,*p1);ValueS2ToS1(*p1,*p2);ValueS2ToS1(*p2,t);}p2=p2->next;}p1=p1->next;}}void main(){char ch;COLLEGE c; //定义大学对象cout.setf(ios::left);//显示主菜单,接受选择,并分支调用大学类的相应功能的成员函数do{cout<<"\n☆☆ 高校学籍管理系统☆☆\n";cout<<"1-增加学生\n";cout<<"2-删除学生\n";cout<<"3-修改学生\n";cout<<"4-查询学生\n";cout<<"5-输出学生信息\n";cout<<"6-综合统计(课程平均成绩,课程合格率)\n";cout<<"7-总分排序\n";cout<<"8-学号排序\n";cout<<"S-数据存盘\n";cout<<"L-数据装入\n";cout<<"Q-退出\t请选择(1-8,SLQ):";cin>>ch; ch=toupper(ch);switch(ch){case '1': c.Add(); break;case '2': c.Delete();break;case '3': c.Modify();break;case '4': c.Query(); break;case '5': c.Print(); break;case '6': c.Stat(); break;case '7': c.SumSort(); break;case '8': c.NumSort(); break;case 'S': c.Save(); break;case 'L': c.Load(); break;}}while(ch!='Q');}3、2数据文件1、course.dat:3C++英语高数2、student.dat:86101 chenkaijun M M8601 77 59 96 232 86102 zhaowei F M8601 55 85 77 217 86103 wubin M M8601 85 87 92 264 86104 shijun M M8601 58 90 85 233 86105 wangzhuguo M M8601 66 70 86 22 23、3运行结果参考☆☆ 高校学籍管理系统☆☆1-增加学生2-删除学生3-修改学生4-查询学生5-输出学生信息6-综合统计(课程平均成绩,课程合格率7-总分排序8-学号排序S-数据存盘L-数据装入Q-退出请选择(1-8,SLQ)☆☆ 高校学籍管理系统☆☆1-增加学生2-删除学生3-修改学生4-查询学生5-输出学生信息6-综合统计(课程平均成绩,课程合格率7-总分排序8-学号排序S-数据存盘L-数据装入Q-退出请选择(1-8,SLQ):5** 输出学生信息**学号姓名性别班级 C++ 英语高数总分86101 chenkaijun M M8601 77 59 96 232 86102 zhaowei F M8601 55 85 77 217 86103 wubin M M8601 85 87 92 264 86104 shijun M M8601 58 90 85 233 86105 wangzhuguo M M8601 66 70 86 222 ☆☆ 高校学籍管理系统☆☆1-增加学生3-修改学生4-查询学生5-输出学生信息6-综合统计(课程平均成绩,课程合格率)7-总分排序8-学号排序S-数据存盘L-数据装入Q-退出请选择(1-8,SLQ):7☆☆ 高校学籍管理系统☆☆1-增加学生2-删除学生3-修改学生4-查询学生5-输出学生信息6-综合统计(课程平均成绩,课程合格率)7-总分排序8-学号排序S-数据存盘L-数据装入Q-退出请选择(1-8,SLQ):5** 输出学生信息**学号姓名性别班级 C++ 英语高数总分86103 wubin M M8601 85 87 92 264 86104 shijun M M8601 58 90 85 233 86101 chenkaijun M M8601 77 59 96 232 86105 wangzhuguo M M8601 66 70 86 222 86102 zhaowei F M8601 55 85 77 217☆☆ 高校学籍管理系统☆☆1-增加学生2-删除学生3-修改学生5-输出学生信息6-综合统计(课程平均成绩,课程合格率) 7-总分排序8-学号排序S-数据存盘L-数据装入Q-退出请选择(1-8,SLQ):qPress any key to continun[/code] 页: [1]。

相关文档
最新文档