学生管理系统c语言

合集下载

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

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

学生管理系统c语言课程设计一、课程目标知识目标:1. 理解结构体在C语言中的应用,掌握学生管理系统中的数据结构设计。

2. 掌握文件操作在C语言中的实现,实现对学生的信息存储和读取。

3. 熟悉指针和数组在C语言中的应用,实现对大量学生数据的有效管理。

技能目标:1. 能够运用结构体、指针和文件操作编写一个简单的学生管理系统。

2. 学会分析实际问题,设计合适的算法和数据结构,解决学生管理中的查询、增加、删除和修改等问题。

3. 培养良好的编程习惯,编写规范、简洁、高效的代码。

情感态度价值观目标:1. 培养学生的团队协作意识,学会与他人共同解决问题。

2. 增强学生的自信心,敢于面对编程挑战,积极寻求解决问题的方法。

3. 激发学生的学习兴趣,认识到编程在实际生活中的广泛应用和价值。

本课程针对高年级学生,以C语言为基础,结合学生管理系统实际案例,注重培养学生的实际编程能力和解决问题的能力。

课程目标明确,可衡量,旨在帮助学生掌握C语言的核心知识,提高编程技能,同时培养学生的情感态度价值观,为后续学习奠定坚实基础。

二、教学内容1. 数据结构设计:- 结构体的定义和使用;- 结构体数组的创建和管理;- 指针在结构体中的应用。

2. 文件操作:- 文件的打开、读取、写入和关闭;- 文件存储结构设计;- 学生信息文件的读写操作。

3. 算法实现:- 学生信息管理系统的功能模块设计;- 查询、增加、删除和修改操作的实现;- 排序和筛选算法的应用。

4. 编程实践:- 设计学生管理系统界面;- 实现系统各功能模块;- 调试、优化和测试程序。

教学内容根据课程目标,结合教材相关章节进行组织。

课程涵盖数据结构、文件操作、算法实现和编程实践等方面,保证内容的科学性和系统性。

教学大纲明确教学内容安排和进度,以教材为基础,引导学生掌握C语言核心知识,提高实际编程能力。

三、教学方法本课程采用以下教学方法,旨在激发学生学习兴趣,提高教学效果:1. 讲授法:- 对课程中的基本概念、原理和知识点进行详细讲解,为学生奠定扎实的理论基础。

C语言学生信息管理系统

C语言学生信息管理系统

/*带有登陆功能的学生信息管理系统,其中管理员账号为:admin 密码为:123456*/ #include<stdio.h>#define STU_NUM 50 //学生数量typedef struct{char ID[50]; //学生学号char name[30]; //学生姓名char password[50]; //学生登录密码char class[20]; //学生班级int math_score; //数学成绩int C_score; // C语言成绩int OS_score; //操作系统成绩int age; //年龄}STU;typedef struct{char user[30];char key[50];}Admin;int Student_Num=0;Admin admin[1]={"admin","123456"};STU student[STU_NUM];char login_user[50]; //存储当前登陆用户名char logpassword[50]; //存储当前登陆密码//保存到文件void save(){FILE *fp;int d;if((fp=fopen("stu.dat","wb"))==NULL){printf("can not open data file!\n");return;}fwrite(&Student_Num,sizeof(int),1,fp);for(d=0;d<STU_NUM;d++)if(fwrite(&student[d],sizeof(STU),1,fp)!=1)printf("file write error\n");fclose(fp);}//将文件内容装载到相应数组void load(){FILE *fp;int e;if((fp=fopen("stu.dat","rb"))==NULL){printf("can not open file\n");return;}fread(&Student_Num,sizeof(int),1,fp);for(e=0;e<STU_NUM;e++)if(fread(&student[e],sizeof(STU),1,fp)!=1){if(feof(fp)){fclose(fp);return;}printf("file read error\n");}fclose(fp);}//管理员登陆int admin_login_confirm(){Admin temp;int wt=0;int confirm=0;do{printf("input your username:");scanf("%s",er);printf("input your password:");scanf("%s",temp.key);if(strcmp(er,admin[0].user)==0 && strcmp(temp.key,admin [0].key)==0){confirm=1;break;}else{confirm=0;wt++;printf("wrong password! \n");}}while(wt<3);return confirm;}int check(char ck[50]){int check=0;int ckflag=0;for(check=0;check<Student_Num;check++){if(strcmp(ck,student[check].ID)==0)ckflag=1;return ckflag;}return ckflag;}//学生登录int student_login(){int a;int ok=0;int wrong=0;STU tem;do{printf("user_ID:");scanf("%s",tem.ID);printf("password:");scanf("%s",tem.password);for(a=0;a<Student_Num;a++){if(strcmp(tem.ID,student[a].ID)==0 && strcmp(tem.password,student[a].password)==0){strcpy(login_user,student[a].ID);strcpy(logpassword,student[a].password);ok=1;break;}else{ok=0;}}if(ok==0){wrong++;printf("wrong password\n");}elsebreak;}while(wrong<3);return ok;}//添加学生信息void Add_student(){printf("ID:");scanf("%s",student[Student_Num].ID);while(check(student[Student_Num].ID)==1){printf("the ID is already have!\n");printf("ID:");scanf("%s",student[Student_Num].ID);}printf("name:");scanf("%s",student[Student_Num].name);printf("password:");scanf("%s",student[Student_Num].password);printf("class:");scanf("%s",student[Student_Num].class);printf("math_score:");scanf("%d",&student[Student_Num].math_score);printf("C_score:");scanf("%d",&student[Student_Num].C_score);printf("OS_score:");scanf("%d",&student[Student_Num].OS_score);printf("age:");scanf("%d",&student[Student_Num].age);Student_Num++;}//显示学生信息void display_student(){int b;printf("ID\tname\tclass\tmath_score\tC_score\t\tOS_score\tage\n");for(b=0;b<Student_Num;b++){printf("%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d",student[b].ID,student[b].name,student[b].class,student[b].math_sc ore,student[b].C_score,student[b].OS_score,student[b].age);printf("\n");}}//更改学生信息void alter_student(){char alter[50];STU ch;int al,change=0;printf("the ID you want to change:");scanf("%s",alter);for(al=0;al<STU_NUM;al++){if(strcmp(alter,student[al].ID)==0){printf("ID:");scanf("%s",ch.ID);while(check(ch.ID)==1){printf("the ID is already have!\n");printf("ID:");scanf("%s",ch.ID);}printf("name:");scanf("%s",);printf("password:");scanf("%s",ch.password);printf("class:");scanf("%s",ch.class);printf("math_score:");scanf("%d",&ch.math_score);printf("C_score:");scanf("%d",&ch.C_score);printf("OS_score:");scanf("%d",&ch.OS_score);printf("age:");scanf("%d",&ch.age);printf("are you sure you want to change? (Y/N)[ ]\b\b");if(getchar()=='Y'||getchar()=='y'){student[al]=ch;change=1; break;}}}if(change==0) printf("no such user");save();}//查找void search(){char search[50];int sc;printf("the ID you want to search:");scanf("%s",search);for(sc=0;sc<STU_NUM;sc++){if(strcmp(search,student[sc].ID)==0) {printf("ID\tname\tclass\tmath_score\tC_score\t\tOS_score\tage\n");printf("%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d",student[sc].ID,student[sc].name,student[sc].class,student[sc].math_ score,student[sc].C_score,student[sc].OS_score,student[sc].age);printf("\n");break;}}if(sc>=STU_NUM) printf("no such student!\n");}//删除void delete_student(){char del[50];STU dele;int de;printf("the ID you want to delete:");scanf("%s",del);for(de=0;de<STU_NUM;de++){if(strcmp(del,student[de].ID)==0) {printf("ID\tname\tclass\tmath_score\tC_score\t\tOS_score\tage\n");printf("%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d",student[de].ID,student[de].name,student[de].class,student[de].mat h_score,student[de].C_score,student[de].OS_score,student[de].age);printf("\n");break;}}if(de>=STU_NUM) printf("no such student!\n");else{printf("are you sure you want to delete? y/n [ ]\b\b");if(getchar()=='Y'||getchar()=='y'){dele=student[de];student[de]=student[Student_Num-1];student[Student_Num-1]=dele;Student_Num--;}}save();}//更改学生登录密码void change_password(){char ps1[50],ps2[50],old[50];int point=0;int inputcnt=1;printf("please input your old password:");scanf("%s",old);while(strcmp(old,logpassword)!=0){printf("old password is wrong!\n");printf("please input your old password:");scanf("%s",old);if(inputcnt>=2) { printf("you have wrong 3 times!\n"); return;}inputcnt++;}printf("input new password:");scanf("%s",ps1);printf("confirm new password:");scanf("%s",ps2);if(strcmp(ps1,ps2)==0){printf("Are you sure to change? y/n [ ]\b\b");if(getchar()=='Y'||getchar()=='y'){for(point=0;point<Student_Num;point++){if(strcmp(login_user,student[point].ID)==0){strcpy(student[point].password,ps1);save();break;}}}}}//显示主菜单void display_Main_Menu(){printf("***************Welcome to Student Management System***************\n");printf("** **\n");printf("** 1.administrator Login er Login 3.exit system **\n");printf("** **\n");printf("******************************************************************\n");printf("your choice:[ ]\b\b");}//管理员功能菜单void display_admin_function(){printf("***********************************************\n");printf("**** M | 1.add student ****\n");printf("**** | 2.save stdudent information ****\n");printf("**** E | 3.alter student information ****\n");printf("**** | 4.search for student information ****\n");printf("**** N | 5.delete student information ****\n");printf("**** | 6.display student information ****\n");printf("**** U | 7.exit ****\n");printf("***********************************************\n");}//学生功能菜单void display_user_function(){printf("============student login============\n");printf("** 1.check information **\n");printf("** 2.change password **\n");printf("** 3.exit **\n");printf("=====================================\n");}//管理员功能选择int Admin_function(){int ach;while(1){display_admin_function();printf("select your choice[ ]\b\b");scanf("%d",&ach);switch(ach){case 1: Add_student(); break;case 2: save(); break;case 3: alter_student(); break;case 4: search(); break;case 5: delete_student(); break;case 6: display_student(); break;case 7: display_Main_Menu(); return 0;default: printf("repeat!\n"); break;}}}//学生功能选择int user_function(){int uch;int back=0;while(1){display_user_function();printf("hello,student make your choice[ ]\b\b");scanf("%d",&uch);switch(uch){case 1: display_student(); break;case 2: change_password(); break;case 3: back=1; return back;default: printf("everything is ok\n"); break;}return back;}int main(){int choice;load();display_Main_Menu();while(1){scanf("%d",&choice);switch(choice){case 1: if(admin_login_confirm()==1) {Admin_function(); break;}else{printf("you have input wrong password 3 times! exit the system...\n");return 0;}case 2: if(student_login()==1) {if(user_function()==1) return 0;elsebreak;}elseprintf("you have input wrong password 3 times! exit the system...\n");return 0;case 3: return 0;default: printf("please input 1~3\n");display_Main_Menu();break;}}}。

学生管理系统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语言学生信息管理系统(源代码)

#include <stdio.h>#include <string.h>/* 谭法建立单链表和输出单链表*/#include <malloc.h>#include <stdlib.h>typedef struct node{ int num;char name[20];struct node *next;}STD;#define LEN sizeof(STD)int menu_select();void handle_menu1();void game4();void game2();STD *insert(STD *head,STD *stud);STD *insert2(STD *head,STD *stud); void game3();void game5();STD *delete(STD*head,long num);void game1();void game6();STD *search(STD*head,long num);STD *head1,*head2;int n=0;/*追加法建表*/void creat1(void){ STD *p1,*p2;system("CLS");head1=NULL;p1=(STD *)malloc(LEN);p2=p1;printf("建表方法1追加法建表!\n");printf("输入学号姓名,若输入学号为0则退出建表!\n");scanf("%d%s",&p1->num,p1->name);while(p1->num!=0){ n++;if(n==1)head1=p1;elsep2->next=p1;p2=p1;p1=(STD *)malloc(LEN);scanf("%d%s",&p1->num,p1->name);}free(p1); p2->next=NULL;scanf("%*c");printf("按回车键继续!\n");getchar();system("CLS");return ;}/* 插入法建表*/void creat2(void){ STD *p1;head2=NULL;system("CLS");p1=(STD *)malloc(LEN);printf("建表方法2插入法建表!\n");printf("输入学号姓名(输入学号以0结束)!\n");scanf("%d%s",&p1->num,p1->name);while(p1->num!=0){ p1->next=head2;head2=p1;p1=(STD *)malloc(LEN);scanf("%d%s",&p1->num,p1->name);}scanf("%*c");printf("按回车键继续!\n");getchar();system("CLS");free(p1);return ;}/* 链表输出*/void print(STD *head){ STD *p;p=head;while (p!=NULL){ printf("学号%3d 姓名%s\n",p->num,p->name); p=p->next;} printf("链表为空!\n");scanf("%*c");printf("按回车键继续!\n");getchar();system("CLS");}/*-------------------------------------------------*//*--------------表1插入结点函数-------*//*-------------------------------------------------*/void game4(){char ch;STD *stud,*head=head1;system("CLS");printf("\t仅限在表1中插入!\n");printf("\t输入要插入结点的学号和姓名(以空格隔开):");stud=(STD *)malloc(LEN);scanf("%*c");scanf("%d%s",&stud->num,&stud->name);if(stud->num<0){ printf("\t输入的学号不能为负数,请重新选择插入!\n");return;}while(stud->num>=0){head1=insert(head,stud);printf("\t继续插入新结点吗?(y/n):");ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入新结点学号姓名:(输入n结束插入)");stud=(STD *)malloc(LEN);scanf("%*c");scanf("%d%s",&stud->num,&stud->name);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/*-------------------------------------------------*//*--------------表2插入结点函数-------*//*-------------------------------------------------*/void game2(){char ch;STD *stud,*head=head2;system("CLS");printf("\t仅限在表2中插入!\n");printf("\t输入要插入结点的学号和姓名(以空格隔开):");stud=(STD *)malloc(LEN);scanf("%*c");scanf("%d%s",&stud->num,&stud->name);if(stud->num<0){ printf("\t输入的学号不能为负数,请重新选择插入!\n");return;}while(stud->num>=0){head2=insert2(head,stud);printf("\t继续插入新结点吗?(y/n):");ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入新结点学号姓名:(输入n结束插入)");stud=(STD *)malloc(LEN);scanf("%*c");scanf("%d%s",&stud->num,&stud->name);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/**************************************//* 插入模块*//**************************************/STD *insert(STD *head,STD *stud){STD *p0,*p1,*p2;p1=head;p0=stud;if(head==NULL){head=p0;p0->next=NULL;}else{while((p0->num>p1->num)&&(p1->next!=NULL)){p2=p1; p1=p1->next;}if(p0->num<=p1->num){if(head==p1)head=p0;else p2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}n=n+1;printf("按回车键继续!\n");getchar();system("CLS");return (head);}/**************************************//* 插入模块2 *//**************************************/STD *insert2(STD *head,STD *stud){STD *p0,*p1,*p2;p1=head;p0=stud;if(head==NULL){head=p0;p0->next=NULL;}else{while((p0->num<p1->num)&&(p1->next!=NULL)){p2=p1; p1=p1->next;}if(p0->num>=p1->num){if(head==p1)head=p0;else p2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}n=n+1;printf("按回车键继续!\n");getchar();system("CLS");return (head);}/*-------------------------------------------------*//*--------------表1删除学生信息-------*//*-------------------------------------------------*/void game3(){ int num;char ch;STD *head=head1;printf("\t仅限在表1中删除!\n");printf("\t输入要删除的学号:");scanf("%*c");scanf("%ld",&num);if(num<0){ printf("\t输入的学号不能为负数,请重新选择删除!\n");return;}while(num>=0){head=head1;head1=delete(head,num);printf("\t继续删除吗?(y/n):");scanf("%*c");ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入要删除的学号:(输入n结束删除!)");scanf("%*c");scanf("%ld",&num);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/*-------------------------------------------------*//*--------------表2删除学生信息-------*//*-------------------------------------------------*/void game5(){ int num;char ch;STD *head=head2;printf("\t仅限在表2中删除!\n");printf("\t输入要删除的学号:");scanf("%*c");scanf("%ld",&num);if(num<0){ printf("\t输入的学号不能为负数,请重新选择删除!\n");return;}while(num>=0){head=head2;head2=delete(head,num);printf("\t继续删除吗?(y/n):");scanf("%*c");ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入要删除的学号:(输入n结束删除!)");scanf("%*c");scanf("%ld",&num);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/**************************************//* 删除模块*//**************************************/STD *delete(STD*head,long num){STD *p1,*p2;if (head==NULL) {printf("\n没有找到该学号!\n");return head;} p1=head;while(num!=p1->num&&p1->next!=NULL){p2=p1;p1=p1->next;}if(num==p1->num){if(p1==head)head=p1->next;else p2->next=p1->next;printf("\n删除:%ld\n",num);n=n-1;}elseprintf("\n 没有发现此项! \n",num);system("CLS");return(head);}/*-------------------------------------------------*//*--------------表1查找学生信息-------*//*-------------------------------------------------*/void game1(){ int num;char ch;STD *head=head1;printf("\t仅限在表1中查找!\n");printf("\t输入要查找的学号:");scanf("%ld",&num);if(num<0){ printf("\t输入的学号不能为负数,请重新查找!\n");return;}while(num>=0){head=head1;head1=search(head,num);printf("\t继续查找吗?(y/n):");scanf("%d",&num);ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入要查找的学号:(输入n结束查找)");scanf("%ld",&num);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/*-------------------------------------------------*//*--------------表2查找学生信息-------*//*-------------------------------------------------*/void game6(){ int num;char ch;STD *head=head2;printf("\t仅限在表2中查找!\n");printf("\t输入要查找的学号:");scanf("%ld",&num);if(num<0){ printf("\t输入的学号不能为负数,请重新查找!\n");return;}while(num>=0){head=head2;head2=search(head,num);printf("\t继续查找吗?(y/n):");scanf("%d",&num);ch=getchar();if(ch=='y'||ch=='Y'){ printf("\t输入要查找的学号:(输入n结束查找)");scanf("%ld",&num);}elsebreak;}printf("\t输入回车键返回!\n");getchar();system("CLS");printf("\n");}/**************************************//* 查找模块*//**************************************/STD *search(STD*head,long num){STD *p1,*p2;if (head==NULL) {printf("\n没有找到该学号!\n");return head;} p1=head;while(num!=p1->num&&p1->next!=NULL){p2=p1;p1=p1->next;}if(num==p1->num)printf("\n%d %s\n",p1->num,p1->name);elseprintf("\n 没有发现此项! \n",num);return(head);}/* void main(){printf(" *** 运行结果***\n");printf("输入学号姓名(输入学号以0结束)!\n");creat1();print(head1);creat2();print(head2);} *///******************************//* select.cpp:主程序文件*//******************************void main(){handle_menu1();}//*****************************//* 菜单处理函数*//*****************************void handle_menu1(){int h;for(;;){h=menu_select();switch(h){ case 1:/* printf("\t进入追加法建表\n"); */creat1();break; /* 调用功能模块*/case 2:/* printf("\t进入插入法建表\n"); */creat2();break;case 3:/* printf("\t输出追加法链表的结果\n"); */print(head1);break;case 4:/* printf("\t输出插入法链表的结果\n"); */print(head2);break;case 5:/* printf("\t链表1插入\n"); */game4();break;case 6:/* printf("\t链表2插入\n"); */game2();break;case 7:/* printf("\t链表1删除\n"); */game3();break;case 8:/* printf("\t链表2删除\n"); */game5();break;case 9:/* printf("\t链表1查找\n"); */game1();break;case 10:/* printf("\t链表2查找\n"); */game6();break;case 11:printf("\t再见,欢迎再次使用本系统!谢谢!\n");return;}}}//**********************************//* 菜单选择函数: int menu_select()*//**********************************int menu_select(){int cn;for(;;){printf("\ \n");printf("\t1.追加法建表\n");printf("\ \n");printf("\t2.插入法建表\n");printf("\ \n");printf("\t3.输出链表1\n");printf("\ \n");printf("\t4.输出链表2\n");printf("\ \n");printf("\t5.插入链表1 \n");printf("\ \n");printf("\t6.插入链表2 \n");printf("\ \n");printf("\t7.删除链表1 \n");printf("\ \n");printf("\t8.删除链表2 \n");printf("\ \n");printf("\t9.查找链表1 \n");printf("\ \n");printf("\t10.查找链表2 \n");printf("\ \n");printf("\t11.退出系统\n");printf("\ \n");printf("\t请您选择1-11:");scanf("%d",&cn);//gets(s);//cn=atoi(s);if(cn<1||cn>11)printf("\n\t输入错误,重选1-11:");elsebreak;}return cn;}。

简单的学生信息管理系统(C语言)

简单的学生信息管理系统(C语言)

简单的学生信息管理系统(C语言)-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII#include<stdio.h>#include<conio.h> //输入函数getch的头文件,不能用getchar,具体请查看两者的区别#include<stdlib.h> //申请空间的函数malloc的头文件typedef struct{ //定义结构体类型,包含四项内容,可以自由添加int num;char name[10];int age;char sex[5];}st;typedef struct node //构造结点(也是结构体变量){st data; //数据域struct node *next; //指针域(指向结构体,也就是自身)}list;list *create() //建立一个单链表{list *p,*r,*head; //定义结构体指针变量int i,n;head = (list *)malloc(sizeof(list)); //申请头结点r = head;head->next = NULL; //头结点的指针域先定义为空printf("请输入学生人数:\n");scanf("%d",&n);printf("请输入学生个人信息:\n\n学号,姓名,年龄,性别\n");for(i=1;i<=n;i++){p = (list *)malloc(sizeof(list)); //申请一个结点scanf("%d%s%d%s",&p->data.num,&p->,&p->data.age,&p->data.sex); //向结点的数据域输入学生信息p->next = NULL;r->next = p; //将头结点指向第一个结点,以此类推。

学生信息管理系统c语言

学生信息管理系统c语言

学生信息管理系统c语言1学生信息管理系统C语言学生信息管理系统C语言是一个以全校学生信息为对象,以c 语言为编程语言,以windows或linux系统环境下操作的具有管理功能的软件系统。

它的主要功能是实现学校的学生信息的管理和处理,如查询、添加、修改、删除学生信息等功能。

2学生信息管理系统C语言的成熟度目前,用c语言开发出来的学生信息管理系统已经具备较高的成熟度,它可以实现大多数主流学校的学生信息管理系统的基本需求,如学生信息查询、增加、删除、修改等,同时也可以实现更多复杂的功能,比如报表统计、统一登录和权限管理等。

3学生信息管理系统C语言的主要功能学生信息管理系统C语言的主要功能有:学生信息查询、增加、删除、修改,录入、报表统计、统一登录和权限管理等功能,其中学生信息查询的功能可以实现学生的基本信息,学习成绩,校园缴费,报到服务等查询;增加、删除和修改功能可以方便学校对学生信息进行管理;报表统计使用Excel或Access或界面精密Tsort对学生信息进行统计;统一登录和权限管理是指学校可以给不同用户赋予不同的权限,不同用户只能访问其角色所拥有的功能。

4学生信息管理系统C语言的优缺点学生信息管理系统用c语言编写的优点是:代码调试方便,程序运行速度快,新手也能上手,而且对于数据库实现也比较容易;优点也有缺点,首先,C语言是一门面向过程编程语言,缺乏面向对象、动态内存分配等特性,可维护性和可扩展性较差,其次,C语言的数据类型容易混乱,入口函数的嵌套层次太深容易出错。

5改进建议为了提高学生信息系统C语言的安全性、可扩展性和可维护性,让系统更加智能,建议:①使用现代化的Java、Python或C++编写代码;②采用组件式设计,将模块分开,单独编程;③支持多种浏览器,支持动态页面显示;④采用更多的设计模式,做到安全易用、可扩展、可维护;⑤建立事务系统,实现系统的智能化,通过人工智能实现系统的可维护性和安全性。

C语言课程设计报告 --学生管理系统

C语言课程设计报告 --学生管理系统

C语言课程设计报告 --学生管理系统一、实验目的:通过本次实验,学习C语言的语法和数据类型,设计一个简单的学生管理系统,结合文件I/O所学,可以将学生信息保存至文件中,再读取时自动填充至程序中。

同时,体验软件开发的流程,从需求分析到具体实现。

二、需求分析:1、学生信息包括:学号、姓名、性别、年龄、成绩。

2、学生信息需要添加、删除、修改、查找和显示。

3、程序启动时自动从文件中读取数据,退出时自动保存数据。

三、实验过程:1、确定数据结构和变量类型通过分析需求,学生信息包含多个属性,可以使用结构体来保存每个学生的信息。

同时,为了便于程序运行,需要定义一个链表来保存所有学生信息。

/* 学生信息结构体 */typedef struct _Student {char id[12]; // 学号char name[20]; // 姓名char gender; // 性别int age; // 年龄double score; // 成绩} Student;/* 学生信息链表节点 */typedef struct _StudentNode {Student data; // 学生信息struct _StudentNode *next; // 下一节点指针} StudentNode;/* 学生信息链表头节点 */StudentNode *head = NULL;2、设计主菜单功能考虑学生管理系统的主要功能,可以设计以下主菜单:---------------------------1. 添加学生2. 删除学生3. 修改学生信息4. 查找学生5. 显示所有学生6. 退出---------------------------可以使用一个while循环来循环处理,直到用户选择退出。

3、实现主菜单功能添加学生:先从用户输入中获取学生信息,然后创建一个新的学生信息节点,并将其添加到链表的末尾。

1. 定义变量/* 输入缓存区大小 */#define BUFFER_SIZE 2562. 实现函数/* 添加学生到链表末尾 */void add_student() {Student student; // 待添加的学生信息printf("请输入学号:");scanf("%s", student.id);printf("请输入姓名:");scanf("%s", );printf("请输入性别(M/F):");scanf(" %c", &student.gender);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入成绩:");scanf("%lf", &student.score);StudentNode *node =(StudentNode*)malloc(sizeof(StudentNode));node->data = student;node->next = NULL;if (head == NULL) {head = node;} else {StudentNode *p = head;while (p->next != NULL) {p = p->next;}p->next = node;}printf("添加学生成功!\n");}删除学生:先从用户输入中获取学生学号,然后遍历链表,找到该学号对应的学生信息节点,并删除。

学生管理系统C语言附代码

学生管理系统C语言附代码

if(i<1||i>L.length+1)
return 0;
for(k=i;k<=L.length;k++)
{
L.elem[k-1]=L.elem[k]; //将后面元素依次前移}
L.length--;
return 1;
}
四、实验体会
1、存在问题
1.
起初未将变量名启用数组的形式,通过调试发现姓名无法储存,学号只能储存一位数字,深刻体会存储字节的问题。

2.
关于结构体的嵌套,如何引用其中变量问题有了深刻体会。

3.
观察到老师给的代码中sqlist &L,而我均未使用&引用符号,依然可以运行。

于是查找资料编写
此时的Head(地址)的值与L相同!
若将引用符号&删去,则L不将改变Head的值,故&有种将传进去的参数“带出来”的作用。

于是发现即便插入了数据,再次输出时未显示插入的数据,于是进行改进加上&
果然插入的信息可以输出。

2、心得体会
1.复习了switch case 以及strcmp比较函数的用法;
2.学会增删操作中元素前后移的实现;
3.这次实验让我真正的明白了sqList &L的使用:在函数调用中引用变量一定要初始化才可以使用。

要返回到main里面进行操作、改变的顺序表需要带上&,如果只在对应函数操作的顺序表则不用。

C语言学生信息管理系统(完整版)

C语言学生信息管理系统(完整版)

#define PRINT0 printf("name:%s\nsex:%s\nage:%d\nID_card:%d\naddress:%s\n",st[i].name,st[i].sex,st[i].age,st[i] .ID_card,st[i].addr)#define PRINT1 printf("prefession:%s\nstudent_number:%d\n*****score*****\nwuli:%d\n",st[i].prefession,st[i] .student_number,st[i].score.wuli)#define PRINT2 printf("gaoshu:%d\nyingyu:%d\ntiyu:%d\naverage: %d\n",st[i].score.gaoshu,st[i].score.yingyu,st[i ].score.tiyu,st[i].score.aver)#define print1 printf("________________________________")#define N 2#include "string.h"#include "stdio.h"int sum=0;struct score{int wuli;int gaoshu;int yingyu;int tiyu;int aver;};struct message{ char name[10];int age;char sex[5];int ID_card;char addr[30];char prefession[30];int student_number;struct score score;}st[100];/*************write message*************/write_message(){ int flag;char chioce;do{system("cls");flag=2; sum++;printf("_______________________________");printf("please input student's message:\n");printf("\n");print1;printf("%dth student message:",sum);print1;printf("\nname:");scanf("%s",st[sum].name);printf("\nsex:");scanf("%s",st[sum].sex);printf("\nage:");scanf("%d",&st[sum].age);printf("\nID_card:");scanf("%d",&st[sum].ID_card);printf("\naddress:");scanf("%s",st[sum].addr);printf("\nprefession:");scanf("%s",st[sum].prefession);printf("\nschool number:");scanf("%d",&st[sum].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[sum].score.wuli);printf("\ngaoshu:");scanf("%d",&st[sum].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[sum].score.yingyu);printf("\ntiyu:");scanf("%d",&st[sum].score.tiyu);printf("\naverage:");scanf("%d",&st[sum].score.aver);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*************save message****************/save_message(){ FILE *fp;int i;if((fp=fopen("student.txt","wb"))==NULL){printf("read error \n");printf("press any key back to menu\n");getch();exit(1);}for(i=0;i<sum;i++)if(fwrite(&st[i],sizeof(struct message),1,fp)!=1){printf("write error\n");fclose(fp);}fclose(fp);printf("\n********___OK!___**********\n___press any key back___");sum=i;bioskey(0);}/***************add message*****************/add_message(){int i,j,flag; char chioce;i=0;j=sum-1;flag=0;do{ system("cls");i++; j++;print1;printf("add %dth student's meaasge\n",i);print1;printf("\nname:");scanf("%s",st[j].name);printf("\nsex:");scanf("%s",st[j].sex);printf("\nage:");scanf("%d",&st[j].age);printf("\nID_card:");scanf("%d",&st[j].ID_card);printf("\naddress:");scanf("%s",st[j].addr);printf("\nprefession:");scanf("%s",st[j].prefession);printf("\nstudent_number:");scanf("%d",&st[j].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[j].score.wuli);printf("\ngaoshu:");scanf("%d",&st[j].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[j].score.yingyu);printf("\ntiyu:");scanf("%d",&st[j].score.tiyu);printf("\naverage:");scanf("%d",&st[j].score.aver);printf("\n\nweather add %dth student's message: \n",i+1);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;}while(1);}while(flag==1);sum=j+1;save_message();}/**********inqiure message******/inqiure_message(){int chioce;do{system("cls");printf("**********choose 0-3**********\n\n\n");printf(" 1:name inquire\n\n\n");printf(" 2:IDcard inqiure\n\n\n");printf(" 3:student_number\n \n\n");printf(" 0:back menu\n\n\n");scanf("%d",&chioce);switch(chioce){case 1: name_inqiure();break;case 2: ID_card_inqiure();break;case 3: grade_inqiure();break;case 0:break;}}while(chioce!=0);}/**********name inqiure*********/name_inqiure(){char NAME[30];int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nname:");scanf("%s",NAME);getchar();printf("\n");for(i=0;i<sum;i++){if(strcmp(st[i].name,NAME)==0){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/**********IDcard inqiure*********/ID_card_inqiure(){int card;int i; int flag,k;char chioce;do{ clrscr(); k=0;printf("please input the message you inqiure");printf("\nIDcard:");scanf("%d",&card);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].ID_card==card){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********grade inqiure***********/grade_inqiure(){int GRADE;int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nstudent_number:");scanf("%d",&GRADE);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].student_number==GRADE){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********change message**********/change_message(){char pre[30],chioce;int i,gra,flag,num,s;s=0;do{system("cls");printf("please input message you want to change\n ");printf("student_number:");scanf("%d",&gra); getchar();for(i=0;i<sum;i++){if(st[i].student_number==gra){PRINT0;PRINT1;PRINT2;printf("\n********input message you want to change********\n");printf("0:name***1:sex***2:age***3:ID_card***4:address***\n5:prefession***6:wuli***7:stud ent_number***8\n:gaoshu***9:yingyu***10:tiyu***11:average***________\n");printf("choose 0-11\n");scanf("%d",&num); getchar();switch(num){case 0: printf("input the name changed\n");scanf("%s",st[i].name); getchar(); break;case 1: printf("input the sex changed\n");scanf("%s",st[i].sex); getchar(); break;case 2: printf("input the age changed\n");scanf("%d",&st[i].age); getchar(); break;case 3: printf("input the ID_card changed\n");scanf("%d",&st[i].ID_card); getchar(); break;case 4: printf("input the address changed\n");scanf("%s",st[i].addr); getchar(); break;case 5: printf("input the prefession changed\n");scanf("%s",st[i].prefession); getchar(); break;case 6: printf("input the wuli_score changed\n");scanf("%d",&st[i].score.wuli); getchar(); break;case7: printf("input the student_number changed\n");scanf("%d",&st[i].student_number); getchar(); break;case 8: printf("input the gaoshu_score changed\n");scanf("%d",&st[i].score.gaoshu); getchar(); break;case 9: printf("input the yingyu_score changed\n");scanf("%d",&st[i].score.yingyu); getchar(); break;case 10: printf("input the tiyu_score changed\n");scanf("%d",&st[i].score.tiyu); getchar(); break;case 11: printf("input the average_score changed\n");scanf("%d",&st[i].score.aver); getchar(); break;default: printf("input error\n"); break;}printf("\n*********the changed message*********\n\n");PRINT0;PRINT1;PRINT2;s=1;}}if(s!=1) printf("without message you want to change\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********delete message**********/delete_message(){ int GRADE;int i,j,flag1,flag;char chioce1,chioce2;flag1=3;flag=3;do{ system("cls");printf("please input student's student_number you want to delete\n");printf("student_number:");scanf("%d",&GRADE); getchar();for(i=0;i<sum;i++)if(st[i].student_number==GRADE){do{PRINT0;PRINT1;PRINT2;printf("\n******************************\n_________________ _________________\n");printf("press y/Y deleted:\npress n/N cancel:\n");scanf("%c",&chioce1);getchar();system("cls");if(chioce1=='y'||chioce1=='Y') flag1=1;else if(chioce1=='n'||chioce1=='N') return;else {printf("***input error***\n___press any ker return___\n"); bioskey(0);}}while(flag1!=1);for(j=i;j<sum;j++){ st[j]=st[j+1];flag=2;printf("message was deleted\n");sum-=1; }}if(flag!=2) printf("without message you want to delete\n");do{printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce2);printf("****************************\n");if(chioce2=='y'||chioce2=='Y') {flag=1; break;}else if(chioce2=='n'||chioce2=='N') {flag=0; break;}else {system("cls");printf("input error\n");}print1;printf("\n");}while(1);}while(flag==1);save_message();}/************insert message*************/insert_message(){ int chioce,flag,i; flag=2;do{system("cls");printf("please input the number of people you insert\n");scanf("%d",&chioce);if(chioce>=sum){printf("xin xi pai zai zui hou ");chioce=sum;}for(i=sum;i>chioce;i--) st[i]=st[i-1];printf("\nplease input message you insert");printf("\nname:");scanf("%s",st[i].name);printf("\nsex:");scanf("%s",st[i].sex);printf("\nage:");scanf("%d",&st[i].age);printf("\nID_card:");scanf("%d",&st[i].ID_card);printf("\naddress:");scanf("%s",st[i].addr);printf("\nprefession:");scanf("%s",st[i].prefession);printf("\ngrade:");scanf("%d",&st[i].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[i].score.wuli);printf("\ngaoshu:");scanf("%d",&st[i].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[i].score.yingyu);printf("\ntiyu:");scanf("%d",&st[i].score.tiyu);printf("\naverage:");scanf("%d",&st[i].score.aver);sum+=1;do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********school_number_order***********/grade_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].student_number>st[j].student_number){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("grade order from min to max\n");for(i=0;i<sum;i++){ print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);bioskey(0);}/***********wuli score order***************/wuli_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("wuli score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********gaoshu score order***************/gaoshu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.gaoshu>st[j].score.gaoshu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("gaoshu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********yingyu score order***************/yingyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.yingyu>st[j].score.yingyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yingyu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********tiyu score order***************/tiyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.tiyu>st[j].score.tiyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yitu order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********average score order***************/average_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("average score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/********order message****************/order_message(){int chioce;do{system("cls");printf("**********choose 0-6**********\n\n");printf(" 1:grade order\n\n");printf(" 2:wuli score order\n\n");printf(" 3:gaoshu score order\n \n");printf(" 4:ying yu score order\n\n");printf(" 5:tiyu score order\n\n");printf(" 6:average score order\n\n");printf(" 0:back menu\n\n");scanf("%d",&chioce);switch(chioce){case 1: grade_order();break;case 2: wuli_order();break;case 3: gaoshu_order();break;case 4: yingyu_order();break;case 5: tiyu_order();break;case 6: average_order();break;case 0:break;}}while(chioce!=0);}/**********answer secretory***********/mima_message(){int flag;char answer[10];char secret[10]="abcd";flag=2;do{system("cls");printf("\n______________________mi ma wei 'abcd'________________\n\n");printf("______________________qing shu ru mi ma:");scanf("%s",answer);getchar();if(strcmp(secret,answer)==0){flag=1;printf("\n\n =====throngh=====\n\n\n");printf("____________________press any key into next:\n");bioskey(0);}else{flag=0;printf("______________________input error:\n");printf("______________________press any key to return:\n");bioskey(0);}}while(flag!=1);}/*********read message****************/read_message(){int i;system("cls");if(sum<=0){ printf("without message\n");getch();return;}for(i=0;i<sum;i++){system("cls");print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;printf("\n********press any key -show the next one********\n ");getch();}printf("________________totle num :%d________________\n",sum); printf("_____________press any key return______________\n"); bioskey(0);}/*************************************/main(){int chioce,flag;mima_message();do{system("cls");chioce=9;printf("**********************************************\n");printf("****welcome to system of managing students****\n");printf("**********************************************\n\n");printf("-------------------choose 0-8-----------------\n\n");printf(" 1:write message\n\n");printf(" 2:add message\n\n");printf(" 3:inqiure name\n\n");printf(" 4:change message\n\n");printf(" 5:insert message\n\n");printf(" 6:order message\n\n");printf(" 7:delete message\n\n");printf(" 8:read messaeg\n\n");printf(" 0:***exit***\n\n");scanf("%d",&chioce);getchar();switch(chioce){case 1: write_message();break;case 2: add_message();break;case 3: inqiure_message();break;case 4: change_message();break;case 5: insert_message();break;case 6: order_message();break;case 7: delete_message();break;case 8: read_message();break;case 0: printf("___sure press y/Y:___\n\n___no sure press n/N:___");scanf("%c",&chioce);getchar();if(chioce=='y'||chioce=='Y') flag=0;else flag=1;break;default : printf("\n ___input error___\n\n");printf("***press any key to go on***\n");getch();break;}}while(flag!=0);save_message();system("cls");printf("\n\n___message was saved___\n\n\n*****file name is student.txt*****\n");bioskey(0);}。

c语言-学生信息管理系统(完整版)

c语言-学生信息管理系统(完整版)
return 1;
}
count=fwrite(stu,sizeof(Student),current,fs);
fclose(fs);
if(count!=current)
{
printf("保存失败\n");
return 1;
case'4':delete();break;
case'5':list();break;
case'6':save();break;
case'7':load();break;
case'0':if(stu!=NULL)
#include<string.h>
#include<malloc.h>
#include"Student.h"
#include"function.h"
Student*stu=NULL;
int current=0;
int total=0;
int main()
{
char choice;
printf("地址:%s\n",stu[i].address);
return 0;
}
}
printf("该学生不存在\n");
return 1;
}
int update()
{
char name[40];
printf(" 7.加载学生信息\n");
printf(" 0.退出程序\n");

c语言下的学生管理系统(含密码加密和验证码)

c语言下的学生管理系统(含密码加密和验证码)

case 1:stu_search(userNO);break;
case 2:modify(userNO);break;
case 3:printf("\t\t
退出成功! \n");
exit(0);break;
default:printf("\t\t
你所选择的项目错误!重新选择! ");
student(userNO);break;
**********************************\n");
printf("\t\t
请输入学号: \n");
printf("\t\t");
fflush(stdin);
scanf("%d",&userNO);
欢迎进入学生登录界面
printf("\t\t===================================================================
请输入验证码: %s\n",code);
printf("\t\t===================================================================
======================\n");
if(strcmp(code,str)==0)
{
for(j=0;stu[j].no!=0;j++) {
if(stu[i].score.sum<stu[j].score.sum) {
count++; } } stu[i].ranking=count; count=1; } save(); }

学生信息管理系统C语言编程

学生信息管理系统C语言编程

学生信息管理系统C语言编程【问题描述】学生信息旳管理是每个学校必须具有旳管理功能,重要是对学生旳基本状况及学习成绩等方面旳管理。

该系统模拟一种简朴旳学生管理系统,规定对文献中所存储旳学生数据进行多种常规操作,如:排序、查找、计算、显示等功能。

通过此课题,纯熟掌握文献、数组、构造体旳多种操作,在程序设计中体现一定旳算法思想,实现一种简朴旳学生信息管理系统。

【基本规定】(1)学生信息包括:学生基本信息文献(student.txt)(注:该文献不需要编程录入数据,可用文本编辑工具直接生成)旳内容如下:(2)学生成绩基本信息文献(score.dat)及其内容如下:((注:该文献内容需要编程录入数据,详细做法见下面旳规定)学号课程编号课程名称学分平时成绩试验成绩卷面成绩综合成绩实得学分(3)需要实现旳功能1)数据录入和计算功能:对score.dat进行数据录入,只录入每个学生旳学号、课程编号、课程名称、学分、平时成绩、试验成绩、卷面成绩共7个数据,综合成绩、实得学分由程序根据条件自动运算。

综合成绩旳计算:假如本课程旳试验成绩为-1,则表达无试验,综合成绩=平时成绩*30%+卷面成绩*70%;假如试验成绩不为-1,表达本课程有试验,综合成绩=平时成绩*15%+试验成绩*15%+卷面成绩*70% 。

实得学分旳计算:采用等级学分制,综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=学分*80%;综合成绩在70-80之间 ,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60如下 ,应得学分=学分*0%。

2)查询功能:分为学生基本状况查询和成绩查询两种(1)学生基本状况查询:①、输入一种学号或姓名(可实现选择),查出此生旳基本信息并显示输出,格式如下:②、输入一种宿舍号码,可查询出本室所有旳学生旳基本信息并显示输出。

(格式如上所示)(2)成绩查询:①、输入一种学号时,查询出此生旳所有课程状况,格式如下:学号:xx 姓名:xxxxx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx ……………………共修:xx科,实得总学分为: xxx(3)删除功能:提供待删除学生旳学号,则在student.txt和score.dat中删除所有与该学生有关旳信息。

C语言 学生信息管理系统(完整版)

C语言 学生信息管理系统(完整版)

电子科技大学成都学院程序综合设计论文论文题目学生信息管理系统学生姓名魏国学号1340840625专业机械设计制造及其自动化系(分院)电子工程系授课教师杜娥2015年12月制摘要随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活不可或缺的辅助工具。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已成为人们深刻认识,它已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

现在由于学校规模进一步扩大,学生人数逐渐上升,在学校的学生信息管理中,虽然已经存在许多学生信息管理系统,但由于学校之间的管理差异很信息的不同,各个学校的学生信息管理的要求不一致,这样我们需要根据具体学习的具体要求来开发学生信息管理系统以方便学生管理。

本系统主要对学生各种信息进行处理。

本系统采用C语言编写,设计从实用性出发,设计开发出一个操作简单且符合实际需要的学生信息管理系统。

本文设计出一个可以添加、修改、查询、删除、统计的学生信息管理系统;最后,通过测试分析,力求将学到的只是在学生信息管理系统的得到全面运用,并使系统在实际的操作中能按照设计的要求安全有效的正确运行。

学生信息管理系统是为了实现学校对学生信息管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。

它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生信息管理提供了强有力的工具和管理手段。

学生信息管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生信息管理的要求。

学生信息管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生信息管理计算机化。

关键字:学生信息,管理系统,数据库,C语言编写第一章系统功能和组成模块1.1系统功能学生信息管理系统存放了每个学生的学号,姓名,性别,年龄,出生年月,家庭住址,政治面貌等信息的数据库。

学生信息管理系统(C语言)

学生信息管理系统(C语言)

学⽣信息管理系统(C语⾔)#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct student{int id;char name[20];int age;char sex;char birthday[20];char address[20];char phone[15];char email[30];struct student *next;}student;student *head = NULL;int length;void create(){student *p1,*p2;length = 0;p1 = (student *)malloc(sizeof(student));p1->id = -1;if(head == NULL){head = p1;}printf("请输⼊学⽣的学号、姓名、年龄、性别、出⽣年⽉、地址、电话、电⼦邮箱:\n");while(1){p2 = (student *)malloc(sizeof(student));scanf("%d %s %d %c %s %s %s %s",&p2->id,p2->name,&p2->age,&p2->sex,&p2->birthday,&p2->address,p2->phone,p2->email);if(p2->id == 0){printf("链表创建完成!\n");break;}length ++;p1->next = p2;p2->next = NULL;p1 = p1->next;}return ;}void LoadStudentInFromFile(){student *p,*q;int c;FILE* f;f = fopen("input.txt","rb");if(f == NULL){return ;}fseek(f,0,SEEK_SET);p = (student *)malloc(sizeof(student));p->next = NULL;head = p;while(!feof(f)){c = fgetc(f);if(c != -1){fseek(f,-1,SEEK_CUR);}else{return ;}q = (student *)malloc(sizeof(student));fscanf(f,"%d",&q->id);fscanf(f,"%s",q->name);fscanf(f,"%d",&q->age);fscanf(f,"%c",&q->sex);fscanf(f,"%s",q->birthday);fscanf(f,"%s",q->address);fscanf(f,"%s",q->phone);fscanf(f,"%s",q->email);q->next = NULL;p->next = q;p = p->next;length ++;//链表长度}}void ModifyStudentInfo(){student *p = head->next;int num;printf("请输⼊要修改的学⽣的学号:");scanf("%d",&num);while(p != NULL){if(p->id == num){printf("修改前,学号为%d的学⽣信息如下:\n",num);printf("%d %s %d %c %s %s %s %s",p->id,p->name,p->age,p->sex,p->birthday,p->address,p->phone,p->email); printf("请输⼊学⽣的新电话:");getchar();gets(p->phone);printf("请输⼊学⽣的新地址:");gets(p->address);printf("修改后,学号为%d的学⽣信息如下:\n",num);printf("%d %s %d %c %s %s %s %s",&p->id,p->name,&p->age,p->sex,p->birthday,p->address,p->phone,p->email);return ;}p = p->next;}if(p == NULL){printf("该学号不存在!\n");return ;}}void display(){student *p = head->next;printf("链表中所有的学⽣信息如下:\n");while(p != NULL){printf("%d %s %d %c %s %s %s %s",p->id,p->name,p->age,p->sex,p->birthday,p->address,p->phone,p->email);printf("\n");p = p->next;}return ;}void search(){int num,x;char name[20];student *p = head->next;printf("请选择查询⽅式:\n");printf("1、按学号查询\t2、按姓名查询\n");scanf("%d",&x);if(x == 1){printf("需要查找的学⽣学号为:");scanf("%d",num);while(p != NULL){if(p->id == num){printf("学号为%d的学⽣信息如下:\n",num);printf("%d %s %d %c %s %s %s %s",p->id,p->name,p->age,p->sex,p->birthday,p->address,p->phone,p->email);return ;}p = p->next;}if(p == NULL){printf("⽆此记录!\n");}}else if(x == 2){printf("需要查找的学⽣姓名为:");getchar();gets(name);p = head->next;while(p != NULL){if(strcmp(p->name,name) == 0){printf("学⽣姓名为%s的学⽣信息如下:\n",name);printf("%d %s %d %c %s %s %s %s",p->id,p->name,p->age,p->sex,p->birthday,p->address,p->phone,p->email);return ;}p = p->next;}if(p == NULL){printf("⽆此记录!\n");}}return ;}void insert(){int num,i;student *p,*q;p = head;printf("请输⼊你要插⼊的位置:");scanf("%d",&num);if(num > length){printf("找不到插⼊的位置\n");return ;}else{printf("请输⼊你要插⼊的学⽣的信息:\n");q = (student *)malloc(sizeof(student));scanf("%d %s %d %c %s %s %s %s",&q->id,q->name,&q->age,&q->sex,q->birthday,q->address,q->phone,q->email);while(p != NULL){if(p->id == q->id){printf("该学号已经存在,⽆法插⼊!\n");return ;}p = p->next;}p = head;for(i=0; i<num; ++i){p = p->next;}q->next = p->next;p->next = q;length ++;printf("插⼊成功!\n");return ;}}void Delete(){int num;student *p,*q;q = head;p = head->next;printf("请输⼊要删除的学⽣的学号:\n");scanf("%d",&num);while(p != NULL){if(p->id == num){q->next = p->next;free(p);length --;printf("删除成功!\n");return ;}p = p->next;q = q->next;}if(p == NULL){printf("找不到要删除的编号!\n");return ;}}void menu(){printf("___________________________________________________\n"); printf("| 学⽣信息管理系统 |\n");printf("| 0、退出系统 |\n");printf("| 1、录⼊学⽣信息 |\n");printf("| 2、建⽴链表 |\n");printf("| 3、显⽰链表 |\n");printf("| 4、查找链表中的某个元素 |\n");printf("| 5、删除链表中指定学号的结点 |\n");printf("| 6、指定位置上插⼊⼀个新结点 |\n");printf("| 7、修改学⽣信息 |\n");printf("__________________________________________________\n"); return ;}int main(void){int a;menu();while(1){printf("请输⼊相应的功能:");scanf("%d",&a);switch(a){case0:return0;case1:LoadStudentInFromFile();menu();break;case2:create();menu();break;case3:if(head){display();menu();}else{printf("链表为空,请先建⽴链表!\n");menu();}break;case4:if(head){search();menu();}else{printf("链表为空,请先建⽴链表!\n");menu();}break;case5:if(head){Delete();menu();}else{printf("链表为空,请先建⽴链表!\n");menu();}break;case6:if(head){insert();menu();}else{printf("链表为空,请先建⽴链表!\n");menu();}break;case7:if(head){ModifyStudentInfo();menu();}else{printf("链表为空,请先建⽴链表!\n"); menu();}break;default:break;}}system("pause");return0;}。

学生管理系统c语言

学生管理系统c语言

#include<stdio.h>#include<string.h>#include<malloc.h>typedef struct _STUDENTINFOR_ {char Name[20];unsigned int Age;}Stu,*pStu;typedef struct _NODE_{pStu pStuTemp;_NODE_* pNext;}Node,*pNode;pNode pHead = NULL;pNode pTail = NULL;int BOK = 1;int g_count = 0;int count = 0;void MainMenu(); //void MenuOne(); //void MenuTwo();//void CreateList(char* Name,int Age);// void SortList(); //void InsertOneStuInfor();//void DeletOneStuInfor();void DeletStuInforBasisName();// void DeletStuInforBasisAge();void DeletStuInforBasisAgeLimit(); void TravelAllStuInfor();void TravelOneStuInfor();void TravelStuInforBasisName();void TravelStuInforBasisAgeLimit();void WriteFileJudge();void ReadFileJudge();int OneFileJudge();void WriteFile();void ReadFile();void FreeMemory();int Select();//void FreeFile();//pNode InsertCalcNode();//pNode DeletCalcNode(pNode pNodeTemp);//void main(){int i = 0;char Name[20] = {0};unsigned int Age = 0;do{MainMenu();printf("请选择你要执行的功能:\n");scanf("%d",&i);switch(i){BOK = 1;case 1:do{printf("请输入学生信息:\n");scanf("%s",Name);scanf("%d",&Age);CreateList(Name,Age);Select();}while(BOK==1);WriteFileJudge();printf("\n返回至主菜单?\n");Select();break;case 2:do{printf("%d %d\n",g_count,count);ReadFileJudge();FreeFile();printf("%d %d\n",g_count,count);TravelAllStuInfor();InsertOneStuInfor();TravelAllStuInfor();WriteFileJudge();Select();}while(BOK==1);printf("\n返回至主菜单?\n");Select();break;case 3:i = 0;MenuOne();do{printf("请选择删除方法:\n");scanf("%d",&i);switch(i){case 1:ReadFileJudge();FreeFile();DeletStuInforBasisName();WriteFileJudge();break;case 2:ReadFileJudge();FreeFile();DeletStuInforBasisAge();WriteFileJudge();break;case 3:ReadFileJudge();FreeFile();DeletStuInforBasisAgeLimit();WriteFileJudge();break;case 4:ReadFileJudge();FreeFile();DeletOneStuInfor();WriteFileJudge();break;default:break;}Select();}while(BOK==1);printf("\n返回至主菜单?\n");Select();break;case 4:MenuTwo();do{printf("请选择查找方式:\n");scanf("%d",&i);switch(i){case 1:ReadFileJudge();//FreeFile();TravelAllStuInfor();FreeMemory();break;case 2:ReadFileJudge();//FreeFile();TravelOneStuInfor();FreeMemory();break;case 3:ReadFileJudge();//FreeFile();SortList();printf("排序后输出学生信息:\n");TravelAllStuInfor();FreeMemory();break;case 4:ReadFileJudge();//FreeFile();TravelStuInforBasisName();FreeMemory();break;case 5:ReadFileJudge();//FreeFile();TravelStuInforBasisAgeLimit();FreeMemory();break;default:break;}Select();}while(BOK==1);printf("\n返回至主菜单?\n");Select();break;case 5:FreeFile();printf("\n返回至主菜单?\n");Select();break;case 6:BOK = 0;break;default:BOK = 0;break;}}while(BOK==1);}void MainMenu(){int i = 0;printf("学生信息管理系统:\n");for(i=0;i<8;i++){printf(" ");}printf("1》输入学生信息2》添加学生信息3》删除学生信息\n\n");for(i=0;i<8;i++){printf(" ");}printf("4》显示学生信息5》清空文件6》退出系统\n\n");}void MenuOne(){int i = 0;printf("3》删除学生信息:\n");for(i=0;i<6;i++){printf(" ");}printf("1>依据姓名删除2>依据年龄删除3>依据年龄范围删除4>删除单个学生信息\n\n");}void MenuTwo(){int i = 0;printf("4》显示学生信息:\n");for(i=0;i<6;i++){printf(" ");}printf("1>显示全部学生信息2>显示单个学生信息3>按照从大到小的顺序显示学生信息\n\n");for(i=0;i<6;i++){printf(" ");}printf("4>显示姓名相同的学生的信息5>按照年龄分布输出学生信息\n\n");}int Select(){char Select = 0;printf("请问是否继续? Y(Yes) or N(No):\n");scanf(" %c",&Select);switch(Select){case 'Y':BOK = 1;break;case 'N':BOK = 0;break;default:BOK = 0;break;}return BOK;}void FreeFile(){FILE* fp = fopen("StuInfor.txt","w");fclose(fp);fp = fopen("count.txt","w");fclose(fp);g_count = 0;printf("文件已清空!\n");}void CreateList(char* Name,int Age){pNode pNodeTemp = (pNode)malloc(sizeof(Node));if(pNodeTemp==NULL){printf("没有内存可供申请!\n");}else{pNodeTemp->pStuTemp = (pStu)malloc(sizeof(Stu));if(pNodeTemp->pStuTemp==NULL){printf("内存不够!\n\n");free(pNodeTemp);}else{strcpy(pNodeTemp->pStuTemp->Name,Name);pNodeTemp->pStuTemp->Age = Age;pNodeTemp->pNext = NULL;if(pHead==NULL){pHead = pTail = pNodeTemp;}else{pTail->pNext = pNodeTemp;pTail = pNodeTemp;}}}}void SortList(){pNode pNodeTemp = pHead;pNode pNextNodeTemp = NULL;pStu pTemp = NULL;int i = 0;int j = 0;for(i=0;i<count-1;i++){pNextNodeTemp = pNodeTemp->pNext;for(j=i+1;j<count;j++){if(pNextNodeTemp->pStuTemp->Age > pNodeTemp->pStuTemp->Age){pTemp = pNextNodeTemp->pStuTemp;pNextNodeTemp->pStuTemp = pNodeTemp->pStuTemp;pNodeTemp->pStuTemp = pTemp;}pNextNodeTemp = pNextNodeTemp->pNext;}pNodeTemp = pNodeTemp->pNext;}}pNode InsertCalcNode(){unsigned int Num = 0;pNode pNodeTemp = pHead;printf("请输入要插入的位置:\n");scanf("%d",&Num);while(Num>count){printf("你的输入有错误,请重试!\n");scanf("%d",&Num);}Num--;while(Num!=0){pNodeTemp = pNodeTemp->pNext;Num--;}return pNodeTemp;}void InsertOneStuInfor(){char Name[20] = {0};int Age = 0;pNode pNodeTemp = (pNode)malloc(sizeof(Node));if(pNodeTemp==NULL){printf("没有内存可供申请!\n");}else{pNodeTemp->pStuTemp = (pStu)malloc(sizeof(Stu));if(pNodeTemp->pStuTemp==NULL){printf("内存不够!\n");free(pNodeTemp);}else{printf("请输入要插入的学生信息:\n");scanf("%s",pNodeTemp->pStuTemp->Name);scanf("%d",&pNodeTemp->pStuTemp->Age);pNodeTemp->pNext = NULL;pNode pCurrentTemp = InsertCalcNode();if(pCurrentTemp->pNext==NULL){pCurrentTemp->pNext = pNodeTemp;pTail = pNodeTemp;}else{pNodeTemp->pNext = pCurrentTemp->pNext;pCurrentTemp->pNext = pNodeTemp;}count++;}}}pNode DeletCalcNode(pNode pNodeTemp){if(pNodeTemp==pHead){pHead = pNodeTemp->pNext;free(pNodeTemp->pStuTemp);free(pNodeTemp);pNodeTemp = pHead;count--;}else if(pNodeTemp==pTail){pNode pFormerNodeTemp = pHead;while(pFormerNodeTemp ->pNext!=pTail){pFormerNodeTemp = pFormerNodeTemp ->pNext;}pTail = pFormerNodeTemp;pTail->pNext = NULL;free(pNodeTemp->pStuTemp);free(pNodeTemp);pNodeTemp = NULL;count--;}else{pNode pFormerNodeTemp = pHead;while(pFormerNodeTemp ->pNext!=pNodeTemp){pFormerNodeTemp = pFormerNodeTemp ->pNext;}pFormerNodeTemp->pNext = pNodeTemp->pNext;free(pNodeTemp->pStuTemp);free(pNodeTemp);count--;pNodeTemp = pFormerNodeTemp->pNext;}return pNodeTemp;}void DeletStuInforBasisName(){char Name[20] = {0};int a = 0;int n = 0;pNode pNodeTemp = pHead;printf("请输入你所要删除学生的姓名:\n");scanf("%s",Name);do{a = strcmp(pNodeTemp->pStuTemp->Name,Name);if(a!=0){pNodeTemp = pNodeTemp->pNext;}else{pNodeTemp = DeletCalcNode(pNodeTemp);n++;}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要删除的信息!\n");}TravelAllStuInfor();}void DeletOneStuInfor(){char Name[20] = {0};unsigned int Age = 0;int n = 0;int a = 0;pNode pNodeTemp = pHead;printf("请输入你所要删除学生的姓名:\n");scanf("%s",Name);printf("请输入你要删除的年龄值:\n");scanf("%d",&Age);do{a = strcmp(pNodeTemp->pStuTemp->Name,Name);if(a!=0){pNodeTemp = pNodeTemp->pNext;}else{if(pNodeTemp->pStuTemp->Age!=Age){pNodeTemp = pNodeTemp->pNext;}else{pNodeTemp = DeletCalcNode(pNodeTemp);n++;}}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要删除的信息!\n");}TravelAllStuInfor();}void DeletStuInforBasisAge(){int Age = 0;int n = 0;pNode pNodeTemp = pHead;printf("请输入你要删除的年龄值:\n");scanf("%d",&Age);do{if(pNodeTemp->pStuTemp->Age!=Age){pNodeTemp = pNodeTemp->pNext;}else{pNodeTemp = DeletCalcNode(pNodeTemp);n++;}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要删除的信息!\n");}TravelAllStuInfor();}void DeletStuInforBasisAgeLimit(){int Age = 0;int n = 0;pNode pNodeTemp = pHead;printf("删除超过某一年龄值的学生信息,请输入年龄底线值:\n");scanf("%d",&Age);do{if(pNodeTemp->pStuTemp->Age<=Age){pNodeTemp = pNodeTemp->pNext;}else{pNodeTemp = DeletCalcNode(pNodeTemp);n++;}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要删除的信息!\n");}TravelAllStuInfor();}void TravelAllStuInfor(){int i = 0;pNode pNodeTemp = pHead;//if(pHead==pTail==NULL)if(pHead==NULL){printf("链表为空!\n");}else{while(pNodeTemp!=NULL){printf("%s",pNodeTemp->pStuTemp->Name);printf("%d",pNodeTemp->pStuTemp->Age);pNodeTemp = pNodeTemp->pNext;printf("\n");}}}void TravelOneStuInfor(){char Name[20] = {20};int Age = 0;int a = 0;int n = 0;pNode pNodeTemp = pHead;printf("请输入你要查询的学生姓名:\n");scanf("%s",Name);printf("请输入你要查询的学生年龄:\n");scanf("%d",&Age);do{a = strcmp(pNodeTemp->pStuTemp->Name,Name);if(a!=0){pNodeTemp = pNodeTemp->pNext;}else{if(pNodeTemp->pStuTemp->Age!=Age){pNodeTemp = pNodeTemp->pNext;}else{printf("%s",pNodeTemp->pStuTemp->Name);printf("%d",pNodeTemp->pStuTemp->Age);printf("\n");pNodeTemp = pNodeTemp->pNext;n++;}}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要查询的信息!\n");}}void TravelStuInforBasisName(){char Name[20] = {0};int a = 0;int n = 0;pNode pNodeTemp = pHead;printf("请输入你要查询的学生姓名:\n");scanf("%s",Name);do{a = strcmp(pNodeTemp->pStuTemp->Name,Name);if(a!=0){pNodeTemp = pNodeTemp->pNext;}else{printf("%s",pNodeTemp->pStuTemp->Name);printf("%d",pNodeTemp->pStuTemp->Age);printf("\n");pNodeTemp = pNodeTemp->pNext;n++;}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要查询的信息!\n");}}void TravelStuInforBasisAgeLimit(){int Age = 0;int n = 0;pNode pNodeTemp = pHead;printf("输出所有超过某一年龄的所有学生的信息,请输入这一年龄:\n");scanf("%d",&Age);do{if(pNodeTemp->pStuTemp->Age<=Age){pNodeTemp = pNodeTemp->pNext;}else{printf("%s",pNodeTemp->pStuTemp->Name);printf("%d",pNodeTemp->pStuTemp->Age);printf("\n");pNodeTemp = pNodeTemp->pNext;n++;}}while(pNodeTemp!=NULL);if(n==0){printf("没有您所要查询的信息!\n");}}void WriteFileJudge(){FILE* fp = fopen("count.txt","r");if(fp==NULL){fp = fopen("count.txt","w");WriteFile();}else{//int i = 0;// i = OneFileJudge();// if(i==0)// {// printf("原存储学生信息数为0!");// WriteFile();// }// else// {fread(&g_count,1,sizeof(int),fp);fclose(fp);WriteFile();// }}printf("信息已存储至文件!\n");}void ReadFileJudge(){FILE* fp = fopen("count.txt","r");int i = 0;if(fp==NULL){printf("文件不存在!\n");}else{// i = OneFileJudge();// if(i==0)// {// printf("文件为空,无学生信息!\n");//}// else//{fread(&g_count,1,sizeof(int),fp); //刚开始忘记写这句话,造成错误!只是后面读文件,遍历链表都出错误ReadFile();//}}}/*int OneFileJudge(){FILE* fp = fopen("count.txt","r");int a = 0;int i = 0;a = fgetc(fp);while(a!=EOF){a = fgetc(fp);i++;}return i;}*/void WriteFile(){FILE* fp = fopen("StuInfor.txt","a+");pNode pNodeTemp = pHead;while(pNodeTemp!=NULL){fwrite(pNodeTemp->pStuTemp,1,sizeof(Stu),fp);pNodeTemp = pNodeTemp->pNext;g_count++;}fclose(fp);FreeMemory();fp = fopen("count.txt","w");fwrite(&g_count,1,sizeof(int),fp);fclose(fp);}void ReadFile(){FILE* fp = fopen("StuInfor.txt","r");int i = 0;Stu StuInfor = {0};for(i=0;i<g_count;i++){fread(&StuInfor,1,sizeof(Stu),fp);CreateList(,StuInfor.Age);count++;}}void FreeMemory(){pNode pNodeTemp = NULL;while(pNodeTemp!=NULL)//while(pNodeTemp==NULL){pNodeTemp = pHead;pHead = pHead->pNext;free(pNodeTemp->pStuTemp);free(pNodeTemp);}pHead = pTail = NULL;printf("\n已清空整个链表! ");count = 0;}。

C语言学生信息管理系统(附源码)

C语言学生信息管理系统(附源码)
getch();
fclose(fp);
return;
}
printf("姓名:");
scanf("%s",stu[m].name);
printf("语文成绩:");
scanf("%f",&stu[m].chinese);
printf("数学成绩:");
scanf("%f",&stu[m].math);
char ch[2];
if((fp=fopen("stuData.txt","rb"))==NULL)
{
printf("打开文件失败\n");
return;
}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)
m++;
fclose(fp);
if(m==0)
{
printf("文件无记录!\n");
default:printf("输入有误,请重新输入:");break;
}
getch();
menu();
scanf("%d",&n);
}
return 0;
}
/*******自定义函数实现菜单功能******/
void menu()
{
system("cls");
printf("\t\t|-------------学生信息系统----------|\n");
printf("\t\t| |\n");

c语言制作学生管理系统

c语言制作学生管理系统

学生成绩管理系统(纯C语言做)完成的功能如下:1) 显示全部的记录(读取文件)2) 删除记录(输入一个学生的学号,删除该学生的信息)3) 插入记录(按约定的格式输入一个学生的信息将它插入)4) 查找记录(输入一个学生学号,输出其各科成绩)5)计算总分和平均分6) 排序(根据平均分排名,总分相同者名次一样)7) 保存文件(插入或删除某个记录后,将文件保存)8) 分类合计(分别统计100—90,90—80,80-70,70,60,60分一下的人数,并求出百分比)只要4个成绩即可,部分源代码给出:#include"stdio。

h"main(){char c;int i;do{clrscr ();for(i=0;i〈80;i++)printf(”*");printf("\t 1: 添加一个学生\n”);printf(”\t 2:删除一个学生\n");printf("\t 3: 查找一个学生\n”);printf(”\t 4: 学生信息排序\n”);printf("\t 5:退出\n”);printf(”\t请选择输入选项[1\\2\\3\\4\\5]:\n");do{c=getchar();}while(c!=’1’&&c!=’2’&&c!='3'&&c!=’4’&&c!=’5');getchar();switch(c){case ’1':input(); break;case '2': del(); break; case ’3’:find();break;case '4': arrange(); break; case ’5’:exit(0);}printf(" 按任意键返回主菜单:\n”);getchar();clrscr();}while(1);}/* Note:Your choice is C IDE */#include "stdio。

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

学生管理系统c语言
实现
学生管理系统是一种用于收集、组织、存储和分析教育机构中学生信息的软件系统。

使用c语言实现学生管理系统,可以使用多种功能来实现,具体包括:
1. 数据维护:通过编写函数实现学生信息的录入、修改、查询和删除等功能;
2. 报表打印:通过编写函数实现学生信息的报表打印;
3. 成绩统计:通过编写函数实现学生成绩的统计和汇总;
4. 用户管理:通过编写函数实现用户账户的管理,包括用户注册、登录、修改密码等功能;
5. 权限管理:通过编写函数实现系统用户权限的管理,包括用户角色的分配和更改等。

相关文档
最新文档