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

合集下载

学籍信息源代码

学籍信息源代码

#include<stdio.h>#include<string.h>#define N 10struct date_type{int year;int month;}date;struct stud_type{char academy[10];char class1[10];int num;char name[10];char sex[4];struct date_type date;char address[10];int score[3];float average;int sum;int jilu;};struct stud_type stu[N];void duru(struct stud_type stu[]); /*数据读入*/void Add(struct stud_type stu[]); /*增加学生*/void Delete(struct stud_type stu[]); /*删除学生*/void Modify(struct stud_type stu[]); /*修改学生*/void Search(struct stud_type stu[]); /*查询学生*/void Print(struct stud_type stu[]); /*输出所有学生信息*/void Stat(struct stud_type stu[]); /*统计*/void Save(struct stud_type stu[]); /*数据存盘*/int r=0;void main(){int x;duru(stu);do{printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("※欢迎使用本软件※\n");printf("※~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~※\n");printf("※指导老师:张老师※\n");printf("※※\n");printf("※制作者:黄同学※\n");printf("※※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~** \n");printf("******************学籍管理系统******************\n");printf("** **\n");printf("** 1.录入学生信息**\n");printf("****\n");printf("********* 2.修改学生信息*********\n");printf("****\n");printf("**** 3.查询学生信息****\n");printf("****\n");printf("************* 4.浏览所有学生信息**********\n");printf("****\n");printf("**** 5.删除学生信息****\n");printf("** **\n");printf("********* 6.综合统计*********\n");printf("** **\n");printf("**0.保存并退出系统**\n");printf("****\n");printf("**********************************************\n");printf("**----------------------------------------------- -----------------***\n");printf("请在0-6中选择: ");scanf("%d",&x);switch(x){case 1:Add(stu); /*录入模块*/break;case 2:Modify(stu); /*修改模块*/break;case 3:Search(stu); /*查询模块*/break;case 4:Print(stu); /*输出模块*/break;case 5:Delete(stu); /*删除模块*/break;case 6:Stat(stu); /*统计模块*/break;case 0:Save(stu);break;}}while(x!=0);}void Add (struct stud_type stu[]) /*录入模块*/{int i;char k;for(i=r;i<N;i++){printf("\n 请输入学院:");scanf("%s",stu[i].academy);printf("\n 请输入班级:");scanf("%s",stu[i].class1);printf("\n 请输入学号:");scanf("%d",&stu[i].num);printf("\n 请输入姓名:");scanf("%s",stu[i].name);printf("\n 请输入性别:");scanf("%s",stu[i].sex);printf("\n请输入出生年月:");scanf("%d%d",&stu[i].date.year,&stu[i].date.month);printf("\n 请输入地址:");scanf("%s",stu[i].address);printf("\n 请输入成绩:");scanf("%d%d%d",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);r=r+1;stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];stu[i].average=stu[i].sum/3.0;printf("----------是否继续??(y/n):");scanf("%s",&k);if(k=='y'||k=='Y') continue;elseprintf("**********录入结束!**********\n\n");return;}}void Save(struct stud_type stu[]) /*保存模块*/{FILE *fp1; /*指向文件的指针*/int i;stu[0].jilu=r;if((fp1=fopen("E:\\xj.txt","wb"))==NULL) /*打开文件,并判断打开是否正常*/{printf("**********打开文件失败!**********\n\n");return;printf("开始存盘!\n");for(i=0;i<r;i++)if(fwrite(&stu[i],sizeof(struct stud_type),1,fp1)==0)printf("**********数据存盘失败!**********\n\n");fclose(fp1);printf("**********存盘成功!**********\n"); /*显示保存成功*/}void Search(struct stud_type stu[]) /*查询模块*/{int y=0,i,k;printf("请输入学号:");scanf("%d",&k);for(i=0;i<r;i++){if(k==stu[i].num){printf("学院:%s\n班级:%s\n学号:%d\n姓名:%s\n性别:%s\n出生年月:%d%d\n地址:%s\n 成绩:\nC语言:%d高数:%d英语:%d\n",stu[i].academy,stu[i].class1,stu[i].num,stu[i].name,stu[i].sex,stu[i].date.year,stu[i].date. month,stu[i].address,stu[i].score[0],stu[i].score[1],stu[i].score[2]);y=1;}}if(y==0)printf("**********查无此人!**********\n\n");return;}void Delete(struct stud_type stu[]) /*删除模块*/{int i,j,k,y=0;int m=16899168,n;printf("请输入密码:");scanf("%d",&n);if(n==m);else{printf("**********密码错误!**********\n\n");return;}printf("请输入学号:");scanf("%d",&k);for(i=0;i<r;i++){if(k==stu[i].num)for(j=i;j<r;j++)stu[j]=stu[j+1];r=r-1;printf("**********删除成功!**********\n\n");y=1;}}if(y==0)printf("**********查无此人!**********\n\n");}void Print(struct stud_type stu[]) /*输出模块*/ {int i,j,k,n;struct stud_type t;printf(" 1.按学号排序,2.按总分排序(由高到低)\n");printf("\n请在1和2中选择:");scanf("%d",&n);if(n==1) /*选择排序*/ for(i=0;i<r-1;i++){k=i;for(j=i+1;j<r;j++)if(stu[k].num>stu[j].num)k=j;if(k!=i){t=stu[i];stu[i]=stu[k];stu[k]=t;}}if(n==2)for(i=0;i<r-1;i++){k=i;for(j=i+1;j<r;j++)if(stu[k].sum<stu[j].sum)k=j;if(k!=i){t=stu[i];stu[i]=stu[k];stu[k]=t;}for(i=0;i<r;i++){printf("\n学院\t班级\t学号\t姓名\t性别\t出生年月\t地址\n");printf("%s\t%s\t%d\t%s\t%s\t%d %d\t\t%s\n",stu[i].academy,stu[i].class1,stu[i].num,stu[i].name,s tu[i].sex,stu[i].date.year,stu[i].date.month,stu[i].address);printf("C语言\t高数\t英语\t平均分\t总分\n");printf("%d\t%d\t%d\t%0.1f\t%d\n",stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].average,stu[i ].sum);}}void Stat(struct stud_type stu[]) /*统计模块*/{int i,j,k;printf("0.C语言1.高数2.英语");printf("请在0-2中选择:");scanf("%d",&j);k=j;printf("90-100:\n");printf(" 学号\t姓名\t成绩\n");for(i=0;i<r;i++){if(stu[i].score[k]>=90)printf(" %d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score[k]);}printf("80-90:\n");printf(" 学号\t姓名\t成绩\n");for(i=0;i<r;i++){if(stu[i].score[k]<90&&stu[i].score[k]>=80)printf(" %d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score[k]);}printf("70-80:\n");printf(" 学号\t姓名\t成绩\n");for(i=0;i<r;i++){if(stu[i].score[k]<80&&stu[i].score[k]>=70)printf(" %d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score[k]);}printf("60-70:\n");printf(" 学号\t姓名\t成绩\n");for(i=0;i<r;i++){if(stu[i].score[k]<70&&stu[i].score[k]>=60)printf(" %d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score[k]);}printf("60分以下:\n");printf(" 学号\t姓名\t成绩\n");for(i=0;i<r;i++){if(stu[i].score[k]<60)printf(" %d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score[k]);}}void Modify(struct stud_type stu[]) /*修改模块*/{int k,i,y=0;int m=16899168,n;printf("请输入密码:");scanf("%d",&n);if(n==m);else{printf("**********密码错误!**********\n\n");return;}printf("************修改学生信息************\n");printf("\n请输入要修改学生的学号: ");scanf("%d",&k);for(i=0;i<r;i++){if(k==stu[i].num){printf("\n请输入新内容:\n");printf("\n 请输入学院:");scanf("%s",stu[i].academy);printf("\n 请输入班级:");scanf("%s",stu[i].class1);printf("\n 请输入学号:");scanf("%d",&stu[i].num);printf("\n 请输入姓名:");scanf("%s",stu[i].name);printf("\n 请输入性别:");scanf("%s",stu[i].sex);printf("\n请输入出生年月:");scanf("%d%d",&stu[i].date.year,&stu[i].date.month);printf("\n 请输入地址:");scanf("%s",stu[i].address);printf("\n 请输入成绩:");scanf("%d%d%d",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);printf("\n**********修改成功!**********\n\n");y=1;}}if(y==0)printf("**********查无此人!**********\n\n");return;}void duru(struct stud_type stu[]) /*数据读入模块*/{int i;FILE *fp; /*指向文件的指针*/if((fp=fopen("E:\\xj.txt","rb"))==NULL) /*打开文件,并判断打开是否正常*/{printf("打开文件失败!\n");return;}printf("文件开始读取!\n");rewind(fp);for(i=0;i<=r;i++){fread(&stu[i],sizeof(struct stud_type),1,fp);r=stu[0].jilu;}printf("\n文件成功读取!\n");fclose(fp);r=stu[0].jilu;}。

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

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

int main()
{
initLinkTable(&head);//初始化表头
readStu();//读入源文件
while (1)
{
menu();
system("cls");
}
}
void initLinkTable(studentLinkPoint *p)
int sum(studentLinkPoint);//求和
void avg(studentLinkPoint);//求平均分
void disAvgSum(studentLinkPoint);//显示总分和平均分
char *inputNumber();//专门用来输入一个学生的学号,返回该字符串的指针
char name[20];
char number[18];
int i;
if(temp==0)
{
error("input");
return 0;
}
else
{
temp->student=(studentPint)malloc(sizeof(studentNod));
break;
case 0:
del(head,end);
break;
}
if(c==0)
exit(1);
}
void del(studentLinkPoint p,studentLinkPoint End)
{
studentLinkPoint q;
if(end==head)
printf(" %3.1f %3.1f\n",p->student->sum,p->student->avg);

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语言学生管理系统源代码#include <stdio.h>。

#include <stdlib.h>。

#include <string.h>。

/*定义学生结构体*/。

typedef struct student。

char num[20]; //学号。

char name[20]; //姓名。

int c; //语文成绩。

int math; //数学成绩。

float ave; //平均分。

struct student *next;。

} stu;。

/*函数声明*/。

void menu_select(); //显示菜单。

void add(); //添加学生信息。

void delete(); //删除学生信息。

void modify(); //修改学生信息。

void search(); //查询学生信息。

void get_ave(); //计算学生平均成绩。

void display(); //显示学生信息。

void esc(); //退出系统。

int main()。

menu_select();。

return 0;。

}。

//显示菜单。

void menu_select()。

int select;。

while (1)。

printf("\n学生管理系统\n");。

printf("------菜单------\n");。

printf("1.添加学生信息 2.删除学生信息\n");。

printf("3.修改学生信息 4.查询学生信息\n");。

printf("5.计算学生平均成绩 6.显示学生信息\n");。

printf("7.退出系统\n");。

printf("请输入您的选择:");。

scanf("%d", &select);。

数据结构源代码(学生信息管理系统)

数据结构源代码(学生信息管理系统)
scanf("%s", s->பைடு நூலகம்ex);
printf("手机号: ");
scanf("%s", s->tel);
printf("电子邮箱: ");
scanf("%s", s->mail);
while(p->next!=NULL)
{
p=p->next;
}
if(p->next==NULL)
{
p->next=s;
{
if(!strcmp(a,q->sex))
{
printf("|*********************查询结果*******************************|\n");
printf("编号------姓名------性别--------手机号--------电子邮箱\n");
printf(" \n %3d,%8s,%8s,%8s,%8s\n ",q->num,q->name,q->sex,q->tel,q->mail);
p=p->next;
break;
}
return h;
}
Status Insert(node *head) /*插入信息*/
{
node *p,*s; /*p、s为临时结点*/
p=head;
s=(node *)malloc(sizeof(node)); /*生成新结点*/
printf("请输入信息:");
printf("|***********************************************************|\n");

学生管理系统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语言编写的一个学生信息管理系统

用C语言编写的一个学生信息管理系统

用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。

在主函数里能实现以下功能。

运行后出现一个选择提示。

可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"jiemian();struct student{char name[50];char sex[5];int age;char num[50];float score1;float score2;float score3;float sum;float ave;}stu[50],del;void gn1(){int i=0;char num1;for(i=0;i<50;i++){printf("请输入要添加的学生资料:\n");printf("学号:");scanf("%s",stu[i].num);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",&stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续添加:y/n\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n'){system("cls");jiemian();}}}void gn2(){int i;char num[50];printf("请输入要查找的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(stu[i].num,num)==0){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);break;}if(i==50)printf("查找不到!请重新输入!\n");getch();system("cls");jiemian();}void gn3(){char num1,i=0;printf("请输入要修改的学生学号:\n");scanf("%s",stu[i].num);printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续修改:y/n?\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n')system("cls");jiemian();}void gn4(){int i;char num[50];printf("请输入要删除的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(num,stu[i].num)==0){printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);stu[i]=del;printf("信息已删除,按任意键返回..\n");break;}if(i==50)printf("您输入的信息不存在!\n");getch();system("cls");jiemian();}void gn5(){int i=0;stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t总成绩\t 平均成绩\n"); for(i=0;i<50;i++){if(stu[i].age==0)break;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);}printf("按任意键返回...");getch();system("cls");jiemian();}void gn6(){FILE *fp;int i;char filename[50];printf("\n");printf("\n");printf("请输入要保存的文件名:");scanf("%s",filename);if((fp=fopen(filename,"wb"))==NULL)printf("文件名为空,不能保存!\n");for(i=0;i<50;i++){if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件保存失败!\n");}fclose(fp);printf("文件已保存!\n");printf("按任意键返回...\n");getch();system("cls");jiemian();}void gn7(){FILE *fp;int i=0; //打开文件流char filename[50];printf("请输入文件名:");scanf("%s",filename); //输入要载入的文件名if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统。

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

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,这将是您的登录账号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作二、需求分析学籍管理系统应该实现以下功能: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)函数功能:在屏幕上输入系统及信息并等待用户响应。

(2) Void menuofmain(struct stumessage stu[]);函数功能:在屏幕上显示主菜单,接收用户选择并响应用户相应操作。

(3) Void append(struct stumessage stu[]);函数功能:录入一条学生记录数组的末尾。

(4) void modify (struct stumessage stu[] )函数功能:通过输入学号查询学生相关信息,如果存在在屏幕上输出相应学生记录并通过重新输入学生信息的方法修改该学生的记录,否则输出没有找到相关记录。

;(5) void Delet(struct stu Message stu[])函数功能:通过输入学号查询学生的相应记录信息,如果存在在屏幕上输出相应学生记录,用户确认删除后用word专业资料DelList()否则输出没有找到相关记录。

(6) Void menuOfsear(struct stumessage stu[]);函数功能:在屏幕上显示查询了主菜单,接受用户选择并响应用户操作。

(7) void listall(struct stumessage stu[]);函数功能:在屏幕上以列表的方式输出学生所有信息。

调用printhead ()输出表头,在调用listone ()函数注意输出个条记录。

(8) void quit (void );函数功能:退出菜单系统,并调用exit(0)系统函数结束程序运行。

(9) void stear num(struct stumessage stu[]);函数功能:通过输入学号调用numofsear ()函数查询学生的相应的记录信息,如果存在调用printhead ()函数和listone ()函数在屏幕上输出相应学生记录,否则输出没有找到相关记录。

(10) voidsteargrade(stuct stumessage stu[]);函数功能:通过输入年级查询学生的相关记录信息,如果存在在屏幕以列表方式输出相应学生记录,并输出统计满足条件的学生个数,否则输出没有找到相关记录。

(11) int numofsear(struct stumessage stu[].char stunumber[]);函数功能:根据接收到的学生学号,在相应记录数组中进行查询,如果存在相应记录,返加相应的数组下标,否则返回-1.(12) void printhead (void)函数功能:在屏幕上显示输出列表的表头。

(13) void list one (struct stumessage list );函数功能:在屏幕上以行的形式显示输出一个学生的相关信息。

(14) int dellist(struct stumessage stu[], int i):函数功能:如果数组中存在下标为i的记录,删除该记录并返回1,否则返回0.4、小组成员分工四、详细设计1、系统主函数main ()设计开始word专业资料输出系统及版权信息显示用户主菜单并响应用户操作Menuofmain()2、主菜单模块函数menuofmain()设计chooseN、十3、录入学生信息功能桓块亩数)Append()设计4、修改学生信息功能模块函数modify()设计5、删除学生信息功能模块函数delete()设计接收要删除的学号查询该学生记录,用i指向它记录存在6.查询菜单模块函数其他7、按学号查询功能模块函数searnum()设计8、按年级查询功能模块函数steargrade()设计9、输出学生信息功能模块函数ListALL ()设计;五. 调试分析本系统在VC6下编译调试通过,可顺利运行,各项功能达到设计要求。

本系统程序由一个.h头文件和三个.C源文件构成。

系统调试主要在vc6下进行,采用分模块的方法进行编译,即完成一个函数功能模块就编译一个功能模块,最后再进行整体编译并产生可执行文件student.exe在调试过程中,主要碰到了以下问题:1. 在清屏函数在Tc中使用的clrsc()函数,但在vc6中没有该函数也没有相应的函数。

查资料,发现在vc中可使用system ()函数调用系统实现。

2. 在使用c语言系统函数进行数据输入的时候,发现使用getchar (0和gets (0函数输入字符和字符串的时候,系统经常跳过相应的输入语句,无法输入数据。

查资料,是c系统的输入处理,缓存问题,解决方法是在进行字符和字符串输入的时候,先使用fflush (stdin )函数清除缓存,既可正常输入字符和字符串。

六、用户手册本系统是Win32控制台程序,可在window和dos环境下运行,执行文件名称:student.exe 。

运行程序后,首先显示系统消息和信息,用户按任意键后进行主要功能菜单,在主功能菜单中输入相应的数字可执行相应的程序功能,包括录入学生信息、修改学生信息,删除学生信息和输入所有学生信息,输入4可进行查询子菜单,可进行按学号查询和按年级查询学生信息。

在主功能菜单案6可结束本系统的运行并自动关闭运行窗口。

七、附录源程序文件名清单:Alist.h // 公用的常虽和类型Main.cList.cEdit.c源代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h>struct date{int year;int month;int day;};struct StuMessage{char stuNo[11];char name[10];char spec[21];int greade;char sex[10];struct date birthday;};int length=0;struct StuMessage Stu[100];int main(){char c;int menuofmain();int Append(struct StuMessage Stu[100]);int Modify(struct StuMessage Stu[100]);int Delete(struct StuMessage Stu[100]);void Menuofsear(struct StuMessage Stu[100]);void Listall(struct StuMessage Stu[100]);int listone(struct StuMessage Stu[100],int i);system("color 5a");void SysInfo(void);{printf("\n\n\n\t\t\t\t 农业大学学籍管理系统\n");printf("\n\n\n 版本信息:\n\n");printf("\n\tc-free vision5.0\n\n");printf("\n\t2012--05--28\t\t");班级:软件1115班\n\n");printf("\t\t\t\t\t\t\t 姓名:朱利斌\n\n");printf("\t\t\t\t\t\t\t 指导教师:邓泓\n\n");printf("\n\n\t\t\t\t enter 进入学籍管理系统\n");}c=getchar();menuofmain();}int menuofmain(){int num;system("cls");system("color fc");int Append(struct StuMessage Stu[100]);int Modify(struct StuMessage Stu[100]);int Delete(struct StuMessage Stu[100]);void Menuofsear(struct StuMessage Stu[100]);void Listall(struct StuMessage Stu[100]);int listone(struct StuMessage Stu[100],int i);printf("\n\n\t\t\t 农业大学学生档案管理系统\n\n\n");printf("\t\t\tplease make a choice\n\n\n");printf("\t\t\t 录入学生信息,请选择1\n");printf("\t\t\t 修改学生信息,请选择2\n");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");printf("\n\t\t \n");printf(- 请输入编号做出选择:\n");scanf("%d", &num);switch(num){case 1:Append(Stu);break;case 2:Modify(Stu);break;case 3:Delete(Stu);break;case 4:Menuofsear(Stu);break;case 5:Listall(Stu);break;case 6:exit (0);break;default:printf(" 非法操作\n");break;}}int Append(struct StuMessage Stu[100])(system("cls");char c,ch;fflush(stdin);printf(" 输入第%朴学生的信息。

相关文档
最新文档