学生学籍信息管理系统 C语言设计
c语言学生学籍管理系统-详细版
int num; char name[20]; char sex; char tel[20]; char domi[3]; }stu[N]; viod enter new data-student() {int i,n; printf("hou many students(0-%d)?:",n-1); for(n=1;n<10;n++) printf("\n enter data now\n\n"); for(i=0;i<n;i++) {printf("\n input%dth student record.\n",i+1); input(i); } if(i!=0) save(n); printf_back(); } #define N 10 struct course { int num; int course_num; char coursename[]; int normalsorce[] int normal;\\平时成绩 int lab;\\实验成绩 int text;\\考试成绩 int ture[];\\综合成绩 float act[];\\实得学分 }cou[N] void enter new data-sorce() {int i,n,z,c; float s; printf("how many num(0-%d)?: "N-1); for(n=1;n<10;n++) printf(\n enter data now\n\n"); for(i=0;i<n;i++) {print("\n input%dth record.\n",i+1); input(i); } if(i!=0) save(n);
学生信息管理系统c语言
学生信息管理系统c语言1. 简介学生信息管理系统是一个基于C语言开发的程序,用于管理学校或教育机构中的学生信息。
该系统可以实现学生信息的录入、查询、修改和删除等功能,并且支持数据的持久化存储。
本文档将介绍学生信息管理系统的功能、使用方法以及具体实现细节。
2. 功能学生信息管理系统具有以下主要功能:2.1 录入信息该系统可以通过用户输入的方式录入学生的基本信息,包括学号、姓名、性别、年龄、班级等。
其中,学号是唯一的标识符,用于区分不同的学生。
2.2 查询信息用户可以通过学号或姓名查询特定学生的信息。
系统会根据用户提供的查询条件,在学生信息数据库中查找匹配的学生记录,并将结果显示给用户。
2.3 修改信息用户可以修改已录入学生的信息,包括姓名、性别、年龄、班级等。
系统会根据用户提供的学号,在学生信息数据库中找到相应的学生记录,并将其修改为用户输入的新信息。
2.4 删除信息用户可以根据学号删除某个学生的信息。
系统会在学生信息数据库中找到匹配的学生记录,并将其从数据库中删除。
3. 使用方法学生信息管理系统的使用方法如下:3.1 编译和运行程序首先,需要将C源代码编译成可执行文件。
在命令行中输入以下命令:gcc main.c -o student_system然后,运行编译得到的可执行文件:./student_system3.2 界面操作系统运行后,会显示一个简单的命令行界面,用户可以通过键盘输入指定的命令来执行相应的操作。
以下是系统支持的命令列表:•add:录入学生信息•search:查询学生信息•modify:修改学生信息•delete:删除学生信息•exit:退出系统用户可以根据提示输入相应的命令,并按下回车键确认。
系统会根据用户输入执行相应的操作,然后返回到命令行界面,等待下一次输入。
4. 实现细节学生信息管理系统的实现细节如下:4.1 数据存储系统使用文件来持久化存储学生信息。
每个学生的信息被保存在一个独立的记录中,记录之间使用换行符进行分隔。
学生管理系统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语言学生信息管理系统(源代码)
#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语言的基本语法,培养学生编写结构化程序的能力,使学生能够运用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、学生信息删除:删除已经录入的学生信息。
5、学生成绩查询:根据学号查询该学生的相关成绩信息。
6、学生成绩录入:录入学生的相关成绩信息,包括语文、数学、英语等。
二、系统设计在需求分析的基础上,我们可以开始进行系统设计。
1、数据结构设计(1)学生信息结构体/* 学生信息结构体*/typedef struct {/* 学号*/char id[11];/* 姓名*/char name[21];/* 性别*/char sex[3];/* 出生日期*/char birthday[11];/* 班级*/char class[21];} Info;(2)学生成绩结构体/* 学生成绩结构体*/typedef struct {/* 学号*/char id[11];/* 语文成绩*/int chinese;/* 数学成绩*/int math;/* 英语成绩*/int english;} Score;2、功能模块设计(1)学生信息录入在学生信息录入模块中,我们需要设计一个函数来进行学生信息的录入。
void AddInfo(Info *info);该函数的参数是学生信息结构体的指针,通过该参数可以将学生信息录入到系统中。
在该函数中,我们需要进行如下操作:1、提示用户输入学生信息;2、从键盘获取用户输入;3、将用户输入保存到结构体中;4、将结构体保存到文件中。
(2)学生信息查询在学生信息查询模块中,我们需要设计一个函数来查询学生信息。
c语言学生信息管理系统
C语言学生信息管理系统简介本文档介绍了一个基于C语言的学生信息管理系统的设计和实现。
该系统可以实现学生信息的添加、删除、修改和查询等功能,同时支持将学生信息保存到文件中,以便后续的读取和操作。
功能需求系统具备以下功能:1.添加学生信息:输入学生的姓名、年龄、性别等基本信息,并分配一个唯一的学号。
2.删除学生信息:根据学号删除指定学生的信息。
3.修改学生信息:根据学号修改指定学生的信息,可选择修改姓名、年龄、性别等内容。
4.查询学生信息:根据学号或姓名查询学生信息,并输出学生的基本信息。
5.保存学生信息:将所有学生的信息保存到文件中,以便下次系统启动时读取。
系统设计数据结构设计学生信息可以使用结构体来表示,定义如下:typedef struct {char name[50]; // 姓名int age; // 年龄char gender[10]; // 性别int id; // 学号} Student;功能设计系统的主界面提供以下功能选项:1. 添加学生信息2. 删除学生信息3. 修改学生信息4. 查询学生信息5. 保存学生信息0. 退出系统添加学生信息用户选择该功能后,系统提示用户输入学生的姓名、年龄、性别等信息,并自动生成一个唯一的学号。
系统将输入的学生信息保存在一个学生数组中。
删除学生信息用户选择该功能后,系统提示用户输入要删除的学生的学号。
系统在学生数组中查找对应学号的学生信息,并将其删除。
修改学生信息用户选择该功能后,系统提示用户输入要修改的学生的学号。
系统在学生数组中查找对应学号的学生信息,并提示用户选择要修改的内容(如姓名、年龄、性别),然后根据用户的输入修改相应的字段。
查询学生信息用户选择该功能后,系统提示用户输入要查询的学生的学号或姓名。
系统在学生数组中查找对应学号或姓名的学生信息,并输出学生的基本信息。
保存学生信息用户选择该功能后,系统将所有学生的信息保存到一个文件中,以便下次系统启动时读取。
c语言课程设计(学生信息管理系统)
c语言课程设计(学生信息管理系统)一、系统功能学生信息管理系统是一款基于C语言开发的数据管理程序,可实现对学生信息的增删改查等功能。
具体功能列表如下: a. 添加学生信息:可根据学生的基本信息,如学生学号、姓名、性别、地址、联系电话等,依次记录入系统; b. 删除学生信息:可根据学生学号、姓名等信息,从系统中删除不必要的学生信息; c. 修改学生信息:可根据已有的学生信息,修改学生某些属性内容,以更新系统中的数据; d. 查看学生信息:可根据学生学号、姓名等信息,查看指定学生的所有信息及多种查询功能; e. 数据保存功能:可将当前系统中的学生信息,保存成文件的形式; f. 备份/恢复功能:可对学生信息文件进行备份并对备份文件进行恢复; g. 查询统计功能:可根据学院代号、专业代号等信息,进行不同的查询统计; h. 排序功能:可根据学生学号、姓名等信息,对学生信息进行排序; i. 帮助功能:可提供详细的使用帮助文档,以帮助用户更好地使用系统;二、程序实现及结构1. 主程序:此程序用于控制整个系统的运行,可实现系统菜单显示、功能调用及功能切换等功能,可根据用户的操作需求,调用其他子程序实现各项功能。
2. 子程序:此程序是系统的主要部分,可实现学生信息的增删改查等功能,并可支持学生信息的备份,恢复,排序及查询统计等功能,用于实现主程序调用的功能。
3. 管理模块:此模块可实现对用户的登录及注册功能,可检测用户登录及注册的账号是否正确,以及是否有权限使用系统;4. 数据库模块:此模块可实现对学生信息的存储及调用,便于对各类学生信息进行更方便的管理。
此模块还可以负责系统的备份及恢复功能的实现。
5. 图形界面模块:此模块负责实现系统的图形化界面,使用户可以更加友好地操作系统,可以根据用户的需求,随时更改系统界面设置。
三、程序设计学生信息管理系统的设计主要有四个部分:1. 主程序:主程序的设计要求负责控制整个系统的运行,并根据用户的操作调用子程序实现各个功能。
c语言-学生信息管理系统(完整版)
}
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语言简介学生管理系统是现代教育管理的一项重要工具。
学生管理系统可以帮助学校管理学生信息、课程信息、成绩信息等。
本文将介绍一个简单的学生管理系统的实现,使用的编程语言为C语言。
功能需求学生管理系统的功能需求如下:1.学生信息的录入与管理:包括学生个人信息(学号、姓名、性别、年龄等)的录入和管理。
2.课程信息的录入与管理:包括课程名称、授课教师、学时等信息的录入和管理。
3.学生成绩的录入与管理:包括成绩的录入、查询和统计功能。
4.学生信息、课程信息和成绩信息的查询:根据学生学号、课程名称等条件进行查询。
5.学生信息、课程信息和成绩信息的统计分析:对学生成绩进行统计分析,如计算平均分、最高分、最低分等。
6.数据的存储与读取:将学生信息、课程信息和成绩信息保存到文件中,并能够从文件中读取数据。
系统设计基于上述功能需求,我们可以设计出以下几个核心模块:学生信息管理模块学生信息管理模块用于录入、查询和修改学生个人信息。
可以使用结构体来表示一个学生的信息,比如:typedef struct {int id; // 学号char name[20]; // 姓名char gender[4]; // 性别int age; // 年龄} Student;该模块需要实现以下功能函数: - void addStudent(Student student):添加一个学生信息到学生信息列表中。
- void deleteStudent(int id):根据学生学号删除学生信息。
- void updateStudent(Student student):更新学生的个人信息。
- Student* searchStudent(int id):根据学生学号查询学生信息。
课程信息管理模块课程信息管理模块用于录入、查询和修改课程信息。
可以使用结构体来表示一个课程的信息,比如:typedef struct {char name[20]; // 课程名称char teacher[20]; // 授课教师int hours; // 学时} Course;该模块需要实现以下功能函数: - void addCourse(Course course):添加一个课程信息到课程信息列表中。
C语言程序报告学生学籍信息管理系统
C语言程序报告学生学籍信息管理系统学生学籍信息管理系统报告一、引言学生学籍信息管理系统是为了高效管理学生的学籍信息而开发的一款软件系统。
该系统包括学生信息的录入、查询、修改、删除等功能,为学校提供了便利的学籍信息管理方式。
本报告将对该系统的设计思路、功能模块和技术实现进行详细介绍。
二、系统设计思路学生学籍信息管理系统的设计思路主要包括以下几个方面:1.模块化设计:将系统按照不同的功能划分为若干个模块,每个模块负责处理特定的功能。
这样设计可以提高系统的可维护性和可扩展性。
2.数据管理:系统利用数据库来存储学生的学籍信息,包括学号、姓名、性别、年龄、班级等基本信息。
数据库的使用可以方便地进行数据存储和查询,提高系统的数据管理效率。
3.用户权限管理:系统设置了不同的用户权限,包括管理员、教师和学生等。
管理员具有最高权限,可以进行信息的录入、修改、查询和删除等操作;教师可以进行信息的查询和修改操作;学生只能查询自己的信息。
三、系统功能模块学生学籍信息管理系统主要包括以下几个功能模块:1.学生信息录入模块:管理员可以通过该模块录入学生的学籍信息,包括学号、姓名、性别、年龄、班级等。
系统会对学生的学号进行唯一性校验,防止重复录入。
2.学生信息查询模块:管理员、教师和学生可以通过该模块查询学生的学籍信息。
查询可以按照学号、姓名、班级等条件进行,系统会返回符合条件的学生信息。
3.学生信息修改模块:管理员和教师可以通过该模块修改学生的学籍信息,包括姓名、年龄、班级等。
修改操作会对学生的学号进行校验,确保修改的学生存在。
4.学生信息删除模块:管理员可以通过该模块删除学生的学籍信息。
删除操作会对学生的学号进行校验,确保删除的学生存在。
四、技术实现学生学籍信息管理系统使用C语言进行开发,主要依赖以下技术实现:1.数据结构:系统使用链表的数据结构来存储学生的学籍信息。
链表可以方便地进行插入、删除和查找操作,提高系统的运行效率。
C语言 学生信息管理系统(完整版)
电子科技大学成都学院程序综合设计论文论文题目学生信息管理系统学生姓名魏国学号1340840625专业机械设计制造及其自动化系(分院)电子工程系授课教师杜娥2015年12月制摘要随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活不可或缺的辅助工具。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已成为人们深刻认识,它已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
现在由于学校规模进一步扩大,学生人数逐渐上升,在学校的学生信息管理中,虽然已经存在许多学生信息管理系统,但由于学校之间的管理差异很信息的不同,各个学校的学生信息管理的要求不一致,这样我们需要根据具体学习的具体要求来开发学生信息管理系统以方便学生管理。
本系统主要对学生各种信息进行处理。
本系统采用C语言编写,设计从实用性出发,设计开发出一个操作简单且符合实际需要的学生信息管理系统。
本文设计出一个可以添加、修改、查询、删除、统计的学生信息管理系统;最后,通过测试分析,力求将学到的只是在学生信息管理系统的得到全面运用,并使系统在实际的操作中能按照设计的要求安全有效的正确运行。
学生信息管理系统是为了实现学校对学生信息管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。
它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生信息管理提供了强有力的工具和管理手段。
学生信息管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生信息管理的要求。
学生信息管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生信息管理计算机化。
关键字:学生信息,管理系统,数据库,C语言编写第一章系统功能和组成模块1.1系统功能学生信息管理系统存放了每个学生的学号,姓名,性别,年龄,出生年月,家庭住址,政治面貌等信息的数据库。
c语言课程设计-学生信息管理系统
#include <stdio.h>#include <malloc.h>#include <string.h>#include <stdlib.h>#define NULL 0#define LEN sizeof(struct student)struct student{char name[20];long int num;char sex[4];int age;char address[30];double tele_num;char aihao[20];struct student *next;};//定义一个结构题int TOTAL_NUM = 0;//学生总数struct student *head = NULL;void welcome (); //欢迎界面void mainmenu (); //主界面void record (); //记录数据void insert(struct student *stu); //插入数据void display(struct student *stu); //显示一个学生的信息void displayAll (); //显示所有学生的信息void query_by_num (); //按学号查询学生信息void readData (); //读取文件里学生的信息void writeData (); //向文件写入学生信息void freeAll (); //清空链表内容void del (); //删除学生信息void change (); //更改学生信息void devise (struct student *p); //选择更改内容int main (void){welcome ();//显示主菜单mainmenu ();return 0;}//显示欢迎信息void welcome (){printf ("+----------------------------------------------------+\n");printf ("| |\n");printf ("| 欢迎使用网络工程学院信息安全092班学生信息管理系统|\n");printf ("| |\n");printf ("+----------------------------------------------------+\n");}//系统主菜单void mainmenu (){int choice;choice = -1;readData ();printf ("\n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\n");do{printf ("\n\n\n");printf ("\t\t\t--------------------------------------------\n");printf ("\t\t\t+ 信息安全092班学生信息管理系统|\n");printf ("\t\t\t--------------------------------------------\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+ [0]----退出系统|\n");printf ("\t\t\t+*·*·*·*·*·*·*·*·*·*·*·*·*·*·*|\n");printf ("\t\t\t--------------------------------------------\n");printf ("请输入您的选择:");scanf ("%d", &choice);switch (choice){case 0:writeData ();freeAll ();exit (0);case 1:record ();break;case 2:displayAll ();break;case 3:query_by_num ();break;case 4:del ();break;case 5:change ();break;default:printf ("\n无效选项!");break;}}while (choice != 0);}//录入学生信息void record (){struct student *p0;p0 = (struct student *)malloc(LEN);printf ("请输入学生的姓名:");scanf ("%s",p0->name);printf ("请输入学生的学号:");scanf ("%ld",&p0->num);printf ("请输入学生的性别:");scanf ("%s",p0->sex);printf ("请输入学生的年龄:");scanf ("%d",&p0->age);printf ("请输入学生的地址:");scanf ("%s",p0->address);printf ("请输入学生的电话:");scanf ("%lf",&p0->tele_num);printf ("请输入学生的爱好:");scanf ("%s",p0->aihao);insert (p0);printf ("该学生的信息为:\n");printf ("-------------------------------------------------------------------------------\n"); printf ("姓名\t学号\t\t年龄\t性别\t地址\t\t电话\t\t爱好\n"); display (p0);}void insert (struct student *stu){struct student *p0, *p1, *p2;p1 = head;p0 = stu;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;elsep2->next = p0;p0->next = p1;}else{p1->next = p0;p0->next = NULL;}}TOTAL_NUM++;}void display (struct student *p){printf ("%s\t%ld\t%d\t%s\t%s\t\t%.0f\t%s\n", p->name, p->num, p->age, p->sex, p->address, p->tele_num, p->aihao); }//浏览学生信息void displayAll(){struct student *p;printf("学生总数:%d\n", TOTAL_NUM);p = head;if (head != NULL){printf("\n姓名\t学号\t\t年龄\t性别\t地址\t\t电话\t\t爱好\n");printf("-------------------------------------------------------------------------------\n");do{display(p);p = p->next;}while(p != NULL);}printf ("\n");}//按学号查询学生信息void query_by_num (){int num;struct student *p1;printf("请输入学生的学号:");scanf("%ld", &num);if(head==NULL){printf("无学生记录!\n");return;}p1 = head;while (num!=p1->num && p1->next!=NULL)p1 = p1->next;if (num == p1->num){printf ("姓名\t学号\t\t年龄\t性别\t地址\t\t电话\t\t爱好\n"); printf ("-------------------------------------------------------------------------------\n"); display (p1);}elseprintf ("没有该学生记录,请核对!");}//写入文件void writeData (){FILE* fp;//文件指针struct student *p;fp = fopen("1.txt", "w");if (!fp){printf("文件打开错误!");return;}fprintf(fp,"%d\n", TOTAL_NUM);for(p = head; p!= NULL; p= p->next){fprintf(fp,"%s\t%ld\t%s\t%d\t%s\t%.0f\t%s\n", p->name, p->num, p->sex, p->age, p->address, p->tele_num, p->aihao);}fclose (fp);}void freeAll (){struct student *p1, *p2;p1 = p2=head;while(p1){p2=p1->next;free (p1);p1 = p2;}}//读取文件void readData (){FILE* fp;//文件指针struct student *p1, *p2;fp = fopen("1.txt", "r");if (!fp){printf("文件打开错误!");return;}fscanf(fp,"%d\n", &TOTAL_NUM);head = p1 = p2 = (struct student *)malloc(LEN);fscanf(fp,"%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n", p1->name, &p1->num, p1->sex, &p1->age, p1->address, &p1->tele_num, p1->aihao);while(!feof(fp)){p1 = (struct student *)malloc(LEN);fscanf(fp,"%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n", p1->name, &p1->num, p1->sex, &p1->age, p1->address,&p1->tele_num, p1->aihao);p2->next = p1;p2 = p1;}p2->next = NULL;fclose(fp);}//删除学生信息void del (){struct student *p1, *p2;long int num;if (head == NULL){printf("无学生记录!\n");return;}printf("请输入您要删除的学生的学号:"); scanf("%ld", &num);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;free(p1);TOTAL_NUM--;}elseprintf("没有该学生记录,请核对!\n");}//修改学生信息void change (){struct student *p1, *p2;long int num;if (head == NULL){printf ("无学生记录!\n");return;}printf ("请输入您要修改的学生的学号:");scanf ("%ld", &num);p1 = head;while (num != p1->num && p1->next != NULL){p2 = p1;p1 = p1->next;}if(num == p1->num)devise (p1);elseprintf("没有该学生记录,请核对!\n");}void devise (struct student *p){int choice;choice = -1;do{printf("请选择您要修改的学生的信息内容:\n");printf("+----------------------+\n");printf("| 姓名请按1 |\n");printf("| 学号请按2 |\n");printf("| 性别请按3 |\n");printf("| 年龄请按4 |\n");printf("| 地址请按5 |\n");printf("| 电话请按6 |\n");printf("| 爱好请按7 |\n");printf("| 取消请按0 |\n");printf("+----------------------+\n");printf("请输入您的选择:");scanf("%d", &choice);switch (choice){case 0:return;case 1:printf("请输入新姓名:"); scanf("%s", p->name);break;case 2:printf("请输入新学号:"); scanf("%d", &p->num);break;case 3:printf("请输入新性别:"); scanf("%s", p->sex);break;case 4:printf("请输入新年龄:"); scanf("%s", &p->age);break;case 5:printf("请输入新地址:"); scanf("%s", p->address);break;case 6:printf("请输入新电话:"); scanf("%lf", &p->tele_num);break;case 7:printf("请输入新爱好:"); scanf("%s", p->aihao);break;default:printf("\n无效选项!");break;No.:00000000000000932 }}while(choice != 0);}。
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语言毕业设计一、引言学生管理系统是一套用于管理学生信息和相关功能的软件系统。
本毕业设计旨在基于C语言开发一个功能完善、操作简便的学生管理系统。
二、需求分析1.基本需求–通过系统可以添加、删除和修改学生信息。
–可以按照学号、姓名等条件进行学生信息的查询。
–可以对学生信息进行排序和统计。
–可以打印学生信息。
2.高级需求–系统可以设置权限,不同用户拥有不同的权限级别。
–可以对学生信息进行分班级管理。
–可以生成学生的成绩报表和班级排名。
三、系统设计1.数据结构设计–学生信息采用结构体进行组织,包括学号、姓名、性别、年龄等字段。
–使用链表或数组来存储学生信息。
2.模块设计–学生信息管理模块:实现学生信息的增删改查功能。
–学生信息排序模块:对学生信息进行排序。
–学生信息打印模块:将学生信息输出到文件或控制台。
–用户权限管理模块:实现用户权限管理功能。
–班级管理模块:对学生进行分班级管理。
–成绩报表模块:生成学生的成绩报表和班级排名。
四、系统实现1.开发环境和工具–开发语言:C语言–开发环境:Windows或Linux–开发工具:IDE(如Visual Studio Code、Code::Blocks等)2.实现步骤–定义学生信息的结构体。
–实现学生信息的增删改查功能。
–实现学生信息的排序功能。
–实现学生信息的打印功能。
–实现用户权限管理功能。
–实现班级管理功能。
–实现成绩报表功能。
五、系统测试1.单元测试–对每个模块进行单独的测试,保证各个功能的正确性。
2.集成测试–将所有模块进行集成,测试系统的整体功能和兼容性。
3.系统验收测试–由用户对系统进行验收测试,确认系统满足需求。
六、总结学生管理系统是一种简化和优化学生信息管理的工具。
本次毕业设计通过使用C语言,开发了一个功能完善的学生管理系统,实现了学生信息的增删改查、排序和打印等功能,同时还实现了用户权限管理、分班级管理和成绩报表功能。
经过测试和验收,系统达到了设计要求,并具备良好的稳定性和可扩展性,可以满足学校和教师对学生信息管理的需求。
C语言学生信息管理系统(附源码)
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语言学籍管理系统
#include<stdio.h>#include<string.h>#include<stdlib.h>struct Date{ int year;//年int month;//月int day;//日};struct StuMessage{char stuNo[11];//学号char name[9];//姓名char spec[21];//专业int grade;//年级char sex;//性别struct Date birthday;//出生日期}stu[5];int load(){ FILE *fp;int i;if ((fp=fopen("results.txt","rb"))==NULL){printf("文件打开错误");return 0;}for (i=0;!feof(fp);i++)fread(&stu[i],sizeof(struct StuMessage),1,fp);fclose(fp);return(i-1);}void save(int n){int i;FILE *fp;if ((fp=fopen("results.txt","wb"))==NULL){printf("文件打开错误:");}for (i=0;i<n;i++)fwrite(&stu[i],sizeof(struct StuMessage),1,fp);fclose(fp);}void SysInfo(void);void MenuOfMain(struct StuMessage stu[]);void Append(struct StuMessage stu[]);void Modify(struct StuMessage stu[]);void Delet(struct StuMessage stu[]);void MenuOfSear(struct StuMessage stu[]);void ListAll(struct StuMessage stu[]);void Quit(struct StuMessage stu[]);void SearNum(struct StuMessage stu[]);void SearGrade(struct StuMessage stu[]);int NumOfSear(struct StuMessage stu[],char stuNum[]); void PrintHead(void);void Listone(struct StuMessage list);int DelList(struct StuMessage stu[],int i);int i;char choose;int length;int main(){char choose;printf("~~~~~~~~~~~~welcome~~~~~~~~~~~~\n");printf(" 软件学院学籍管理系统\n");printf("^-^ ^-^\n");printf("^-^ ^-^\n");printf("请随便输入一个非0的数进入\n");printf("~~~~~~~~~~~~welcome~~~~~~~~~~~~\n");choose =getchar();MenuOfMain(stu);}void MenuOfMain(struct StuMessage stu[])//显示主菜单{while(choose!='0'){ system("cls");printf("欢迎进入学籍管理系统主页面\n");printf("1:录入学生信息模块\n");printf("2:修改学生信息模块\n");printf("3:删除学生信息模块\n");printf("4:查询学生信息模块\n");printf("5:输出学生信息\n");printf("6:清屏\n");printf("0:退出学籍管理系统\n");printf("\n");printf("请选择(0-5):\n");choose=getchar();switch(choose){case'1':Append(stu); break;case'2':Modify(stu); break;case'3': Delet(stu); break;case'4':MenuOfSear(stu); break;case'5': ListAll(stu);break;case'0': exit(0);default:printf("请在(0-5)内选择\n");}}}void Append(struct StuMessage stu[])//录入学生记录{char con;length=load();do{ system("cls");printf("\t\t\t\t 输入学号\n");printf("\t\t\t\t ");scanf("%s",&stu[i].stuNo);printf("\t\t\t\t 输入姓名\n");printf("\t\t\t\t ");scanf("%s",&stu[i].name);printf("\t\t\t\t 输入专业\n");printf("\t\t\t\t ");scanf("%s",&stu[i].spec);printf("\t\t\t\t 输入年级\n");printf("\t\t\t\t ");scanf("%d",&stu[i].grade);printf("\t\t\t\t 输入性别\n");printf("\t\t\t\t ");scanf("%s",&stu[i].sex);printf("输入出生年月日\n");printf("年:\n");scanf("%d",&stu[i].birthday.year);printf("月:\n");scanf("%d",&stu[i].birthday.month);printf("日:\n");scanf("%d",&stu[i].birthday.day);length++;printf("如果继续请输入'Y'\n");scanf("%c",&con);save(length);}while(con=='Y');}void Modify(struct StuMessage stu[])//通过输入学号查询学生记录,或重新修改{int i;char m[11];length=load();do{printf("请输入修改学生的学号:\n");scanf("%s",m);for (i=0;i<length;i++)if (!strcmp(stu[i].stuNo,m)){printf("请输入修改后的学生信息");printf("学号:");scanf("%s",stu[i].stuNo);printf("姓名:");scanf("%s",stu[i].name);printf("专业:");scanf("%s",stu[i].spec);printf("年级:");scanf("%d",&stu[i].grade);printf("性别:");scanf("%s",&stu[i].sex);printf("出生年月日\n");printf(" 年:");scanf("%d",&stu[i].birthday.year);printf(" 月:");scanf("%d",&stu[i].birthday.month);printf(" 日:");scanf("%d",&stu[i].birthday.day);printf("修改成功\n");save(length);} elseprintf("没有找到相关记录\n");printf("是否继续,继续请输入'Y',不继续请输入'N'\n");choose=getchar();choose=getchar();}while(choose=='Y');}void Delet(struct StuMessage stu[])//通过输入学号查询学生记录,并可选择删除{int i;char m[11];char con;length=load();printf("请输入要删除学生的学号");scanf("%s",m);for(i=0;i<=length;i++){if(strcmp(m,stu[i].stuNo)==0){printf("%s\t%s\t%s\t%d\t%c\t",stu[i].stuNo,stu[i].name,stu[i].spec,stu[i].grade,stu[i].sex);printf("%d %d %d\n",stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.day);break;}}if(i<length){printf("是否删除该学生信息?(Y/N)");scanf("%c",&con);if(con=='y'||con=='Y')//判断是否删除{DelList(stu,i);}printf("删除成功");}}void MenuOfSear(struct StuMessage stu[])//显示查询的主菜单{int flag = 0;char m[11];int i=0;length=load();printf("请输入学号:");scanf("%s",m);for(;i<length ;i++){ if(!strcmp(stu[i].stuNo,m)){PrintHead();printf("学号%s\t",stu[i].stuNo);printf("姓名%s\t",stu[i].name);printf("专业%s\t",stu[i].spec);printf("年级%d\t",stu[i].grade);printf("性别%c\t",stu[i].sex);printf("年%d\t",stu[i].birthday.year);printf("月%d\t",stu[i].birthday.month);printf("日%d\t",stu[i].birthday.day);printf("\n");flag = 1;}}if(flag == 0)printf("没有找到相关记录\n");}void ListAll(struct StuMessage stu[])//以列表的方式显示所有学生记录{do{void PrintHead(void);PrintHead();i=0;length=load();for (;i<length;i++){printf("学号%s\t",stu[i].stuNo);printf("姓名%s\t",stu[i].name);printf("专业%s\t",stu[i].spec);printf("年级%d\t",stu[i].grade);printf("性别%c\t",stu[i].sex);printf("年%d\t",stu[i].birthday.year);printf("月%d\t",stu[i].birthday.month);printf("日%d\t",stu[i].birthday.day);printf("\n");}if(i>=length)printf("选择非'0'返回主菜单\n");choose=getchar();choose=getchar();}while(choose=='0');}void ListOne(struct StuMessage stu[],int i){printf("%s\t%s\t%s\t%d\t%c\t",stu[i].stuNo,stu[i].name,stu[i].spec,stu[i].grade,stu[i].sex);printf("%d %d %d\n",stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.day);}void Quit(struct StuMessage stu[])//退出菜单系统{exit(0);}void SearNum(struct StuMessage stu[])//通过输入学号查询学生记录{char m[11];length=load();do{ system("cls");printf("请输入查询的学号:\n");scanf("%s",m);for(i=0;i<length ;i++){if(!strcmp(stu[i].stuNo,m)){ void PrintHead(void);PrintHead();printf("学号%s\t",stu[i].stuNo);printf("姓名%s\t",stu[i].name);printf("专业%s\t",stu[i].spec);printf("年级%d\t",stu[i].grade);printf("性别%c\t",stu[i].sex);printf("年%d\t",stu[i].birthday.year);printf("月%d\t",stu[i].birthday.month);printf("日%d\t",stu[i].birthday.day);printf("\n");}elseprintf("没有找到相关记录\n");}printf("选择'Y'继续\n");choose=getchar();choose=getchar();}while(choose=='Y');}void SearGrade(struct StuMessage stu[])//通过输入年级查询学生记录{int meau();do{ printf("请输入查询的年级:\n");int grade;length=load();scanf("%d",&grade);void PrintHead(void);PrintHead();int count=0;i=0;for(;i<length ;i++){printf("学号%s\t",stu[i].stuNo);printf("姓名%s\t",stu[i].name);printf("专业%s\t",stu[i].spec);printf("年级%d\t",stu[i].grade);printf("性别%c\t",stu[i].sex);printf("年%d\t",stu[i].birthday.year);printf("月%d\t",stu[i].birthday.month);printf("日%d\t",stu[i].birthday.day);printf("\n");count++;i++;}if( count>0)printf("共找到%d条记录\n",count);if(count<=0)printf("没有找到相关记录\n");printf("按'Y'继续\n");choose=getchar();choose=getchar();}while(choose=='Y');}int NumOfSear(struct StuMessage stu[],char stuNum[])//根据接收到的学生学号,进行查询{int i;length=load();printf("输入学生学号");scanf("%s",stuNum);for(i=0;i<length;i++){if(strcmp(stuNum,stu[i].stuNo)==0)break;}if(i<length)return i;else return -1;}void PrintHead(void) //显示表头{printf("学号:\t 姓名:\t 专业:\t 年级:\t 性别:\t 年:\t 月:\t 日:\t\n");}int DelList(struct StuMessage stu[],int i)//如果数组中存在下标为i的记录,删除该记录返回{ int j;if(i<length){for(j=i+1;j<length;j++)stu[j-1]=stu[j];length--;printf("删除成功");return 1;}elsereturn 0;}。
C语言课程设计学生学籍管理系统
2013 XXXXXX学院课程设计任务书[文档副标题]XXXXX目录一、分析系统功能,绘制系统功能结构框架图、分析系统功能(1)用户进入主菜单后,就会在看到,菜单选项中添加有系统的各项功能,进入的应的选项就可进行相应的操作.其主要功能有:1、录入学生信息2、删除学生信息3、查询学生信息4、学生信息排序5、改学生信息6、保存退出系统(2)用户选择所需操作的选项,进入相应的操作界面,在这里用户就可开始进行操作。
、结构框架图二、程序代码以及界面形式#definePFprintf#defineSFscanfstaticintn,i;structaddress_book{charname[20];intnum;charsex;charclas[40];longtelephone;charaddr[40];}stud[200];voidadd(){charj;front1:system("cls");/*清屏*/PF("\n");PF("\n请输入要添加的姓名:");SF("%s",stud[n].name);PF("\n请输入要添加的学号(8位):");SF("%d",&stud[n].num);PF("\n请输入要添加的性别(F/M):");SF("\n%c",&stud[n].sex);PF("\n请输入要添加的班级:");SF("%s",&stud[n].clas);PF("\n请输入要添加的电话号码:");SF("%ld",&stud[n].telephone);PF("\n请输入要添加的地址:");SF("%s",stud[n].addr);getchar();n++;PF("是否继续(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront1;/*再输入记录*/ }voiddel(){intk=0,m,i;charj;front2:system("cls");/*清屏*/PF("\n请输入要删除的学号:");scanf("%d",&m);getchar();for(i=0;i<n;i++)if(m==stud[i].num){k=1;break;}/*查找记录*/if(k==1)/*删除记录*/{for(k=i;k<n-1;k++){stud[k]=stud[k+1];}n--;PF("已删除\n\n");}else{PF("找不到要删除的记录!\n");PF("按回车键返回:");getchar();}PF("是否继续(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront2;}voidfind(){inti,k,s=0;charj;front3:s=0;system("cls");/*清屏*/PF("\n请输入要查询的学号:");SF("%d",&k);for(i=0;i<n;i++)if(k==stud[i].num){PF("姓名学号性别班级电话地址\n");PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone, stud[i].addr);s=1;}if(s==0)PF("查无此人!\n");getchar();PF("是否继续查询(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront3;getchar();}voidarrange()structaddress_bookt;system("cls");/*清屏*/PF("姓名学号性别班级电话地址\n");for(k=0;k<n-1;k++)for(i=0;i<n-k-1;i++)if(stud[i].num>stud[i+1].num){t=stud[i];stud[i]=stud[i+1];stud[i+1]=t;}elsecontinue;for(i=0;i<=n-1;i++)if(stud[k].num!=0)PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);PF("按回车键返回!");getchar();getchar();}voidchange(){intk=0,m;charj;front5:system("cls");/*清屏*/PF("\n请输入要修改记录的学号:");SF("%d",&m);getchar();for(i=0;i<n;i++)if(m==stud[i].num){k=1;break;}/*查找*/if(k==1)/*修改*/{PF("\n");PF("\n请输入修改后的姓名:");SF("%s",stud[i].name);PF("\n请输入修改后的学号:");SF("%d",&stud[i].num);PF("\n请输入修改后的性别(F/M):");SF("\n%c",&stud[i].sex);PF("\n请输入修改后的班级:");SF("%s",&stud[i].clas);PF("\n请输入修改后的电话号码:");SF("%ld",&stud[i].telephone);PF("\n请输入修改后的地址:");SF("%s",stud[i].addr);PF("修改成功\n");}if(k==0){PF("找不到要修改的记录!\n");PF("按回车键返回:");getchar();}getchar();PF("是否继续(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront5;}voidmain(){charj;PF("\n\n\n\n\n\n\t\t\t欢迎使用学生学籍管理系统"); PF("\n\n\n\t\t\t\t制作人:刘健");PF("\n\n\n\t\t\t\t2008年6月");PF("\n\n\n\n\n\t按回车键进入主菜单:");getchar();loop:system("cls");PF("\n");PF("\t\t\t\t************\n");PF("\t\t\t\t*主菜单*\n");PF("\t\t\t\t************\n");PF("\t\t1:录入学生信息2:删除学生信息\n\n");PF("\t\t3:查询学生信息4:学生信息排序\n\n");PF("\t\t5:修改学生信息6:保存退出系统\n\n");PF("\t请选择[1/2/3/4/5/6]:");j=getchar();if(j=='\n')gotoloop;/*返回主菜单*/switch(j){case'1':add();gotoloop;/*返回主菜单*/case'2':del();gotoloop;case'3':find();gotoloop;case'4':arrange();gotoloop;case'5':change();gotoloop;case'6':{FILE*fp;fp=fopen("","w");for(i=0;i<n;i++)三、使用说明学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void printone(int i)
/*显示数据结构项目的函数(公共函数)*/
{ printf("\n\t%-4s\t%-6s\t%-4s\t%-8s\t%-8s",stu[i].num,stu[i].name,stu[i].sex,stu[i].room,stu[i].tel);
void del()
//删除模块
{
void menu();
int i,j,c,flag=0;char s[6];
printface();
for(i=0;i<n;i++)
printone(i);
puts("\n\n");
printf("\nInput the delete number: ");
scanf("%s",s);
int i,j;
FILE *fp;
if((fp=fopen("B.txt","r"))==NULL)
{
printf("\nCannot open file\n");
return 0;
}
for(i=0;!feof(fp);i++)
{
fscanf(fp,"%s%s%s%d",scr[i].num,scr[i].subnum,scr[i].subject,&scr[i].oscore);
printf("\n\nSure?\t1).Sure\t2).No\t3).Back\t[ ]\b\b");
scanf("%d",&c);
9
if(c==1) for(i=0;i<n;i++) if(judge(s,stu[i].num)) { flag=1; strcpy(stu[i].num,"-1"); for(j=0;j<m;j++) if(judge(s,scr[i].num)) strcpy(scr[i].num,"-1"); break; } if(flag==0) {puts("\n\tNot exist!\n");choice_menu(5);}
for(j=0;j<3;j++)
fscanf(fp,"%d",&scr[i].mark[j]);
ca_mark(i);
ca_score(i);
}
7
fclose(fp); return(i); }
int save_score(int m)
/*B 文件保存函数*/
{
int i,j;
FILE *fp;
if((fp=fopen("B.txt","w"))==NULL)
/////******* 信 息 排 序 模 块********
开始
数据排序
X=1? N
实际学分
Y 综合成绩
结束
10
void sort()
//排序模块
{
void menu();
int c,k,v;
printf("\n\nChoice number: 1).综合成绩\t2).实得学分\t[ ]\b\b");
}
8
void printface() /*公共函数,一个函数结束时的选择浏览还是返回的函数*/ {
printf("\n\t 学号\t 姓名 \t 性别\t 宿舍号码\t 电话号码\n"); }
3.3 功能模块的设计:
/////******* 信 息 删
开始
除模
块********
数据删除 输入学号
结束
fclose(fp);
return(i);
}
int save_info(int n) {
int i;
/*A 文件保存函数*/
6
FILE *fp; if((fp=fopen("A.txt","w"))==NULL) {
printf("\nCannot open file\n"); return 0; } for(i=0;i<n;i++) if(strcmp(stu[i].num,"-1")!=0)
A:学生基本情况查询: A1----输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。 A2---输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。
B:成绩查询: B1:输入一个学号时,查询出此生的所有课程情况,格式如下: 学 号:xx 姓 名:xxxxx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 共修:xx 科,实得总学分为: xxx (3)删除功能:当在 A.TXT 中删除一个学生时,自动地在 B.TXT 中删除此人所有信息。 (4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据 1.2 【目的】:实现对于学生学籍信息的查询以及管理。自动录入,方便快捷。数据录入功 能,综合成绩的计算,查询功能(学生基本情况查询,成绩查询),删除功能,排序功能等为 一体。使学生学籍和成绩等信息实现信息化快捷管理。
}
}
void main() {
menu(); }
5
3.2 公共函数:
所用到的六个公共函数
加
保
加
保
函显
择一
载
存
载
存
数示
浏个
文 件
文 件
文
文
件
件
数
览函
据
还数
结
是结
构
返束
函
函
函
函
项
回时
数
数
数
数
目
的的
的
函选
B B A A
int load_info()
/*A 文件加载函数*/
{
int i;
FILE *fp;
case 3:strcpy(s,"C01");break;
case 4:strcpy(s,"D02");break;
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <malloc.h> void menu() {
int c,w1; do {
4
puts("\t\t*********************MENU*********************\n\n");
fprintf(fp,"%s %s %s %s %s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].room,stu[i].tel); fclose(fp); }
int load_score()
/*B 文件加载函数*/
{
float ca_mark(int i);void ca_score(int i);
{
char *num_name(char s[]);
int judge(char a[],char b[]);char s[4];
int i,j=0,i1,j1,k1;struct score *p[100],*t;
switch(k)
{
case 1:strcpy(s,"A01");break;
case 2:strcpy(s,"B03");break;
学分、平时成绩、实验成绩、卷面成绩共 7 个数据. 综合成绩、学分由程序根据条件自动 运算。 (2) 综合成绩的计算: 如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+ 卷面成绩*70%; 如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验
2
成绩*.15%+卷面成绩*70%。 实综合成绩在 90-100 之间 ,应得学分=学分*100%得学分的计算: 采用等级学分制. 综合成绩在 80-90 之间 ,应得学分=学分*80% 综合成绩在 70-80 之间 ,应得学分=学分*75% 综合成绩在 60-70 之间 ,应得学分=学分*60% 综合成绩在 60 以下 ,应得学分=学分*0% (2)查询功能:分为学生基本情况查询和成绩查询两种
{
printf("\nCannot open file\n");
return 0;
}
for(i=0;i<m;i++)
{
if(strcmp(scr[i].num,"-1")!=0)
{
fprintf(fp,"%s %s %s %d %d %d %d %d %d\n",scr[i].num,scr[i].subnum,scr[i].subject,scr[i].oscore,scr[i].mark[0], scr[i].mark[1],scr[i].mark[2],(int)scr[i].totalmark,(int)scr[i].gscore);
if((fp=fopen("A.txt","r"))==NULL)