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

合集下载

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

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

C语言学生管理系统课程设计1. 引言学生管理系统是为了方便学校或教育机构对学生信息进行管理和维护而开发的应用软件。

本文将介绍一个使用C语言编写的学生管理系统的课程设计方案。

该系统将实现学生信息的增加、查询、修改和删除等功能,并通过文件存储学生信息。

2. 功能需求学生管理系统应该具备以下基本功能: - 添加学生信息:包括学号、姓名、性别、年龄等基本信息。

- 查询学生信息:按照学号或姓名查询学生信息,并显示在屏幕上。

- 修改学生信息:根据学号或姓名修改学生的基本信息。

- 删除学生信息:按照学号或姓名删除学生的信息。

- 显示所有学生信息:将所有学生的信息显示在屏幕上。

3. 系统设计3.1 数据结构设计系统采用结构体作为学生信息的数据结构,每个学生的信息包括学号、姓名、性别、年龄等字段。

struct Student {int id;char name[20];char gender;int age;};3.2 文件存储设计系统将学生信息存储在一个文本文件中。

文件的每一行表示一个学生的信息,各个字段之间通过分隔符进行分隔(如逗号或制表符)。

3.3 系统模块设计系统可以划分为以下几个模块: - 添加学生模块:负责获取用户输入的学生信息,并将其添加到文件中。

- 查询学生模块:负责根据用户输入的学号或姓名,在文件中查询学生信息,并显示在屏幕上。

- 修改学生模块:负责根据用户输入的学号或姓名,找到对应的学生信息并修改。

- 删除学生模块:负责根据用户输入的学号或姓名,找到对应的学生信息并删除。

- 显示学生模块:负责将所有学生信息从文件中读取出来,并显示在屏幕上。

4. 流程图以下是学生管理系统的主要流程图:graph LRA[学生信息管理系统] --> B(显示菜单)A --> C(添加学生信息)A --> D(查询学生信息)A --> E(修改学生信息)A --> F(删除学生信息)A --> G(显示所有学生信息)B --> H(退出系统)C --> I(获取学生信息)C --> J(将学生信息添加到文件中)D --> K(获取查询条件)D --> L(根据条件查询学生信息)D --> M(将查询结果显示在屏幕上)E --> N(获取修改条件)E --> O(找到对应的学生信息并修改)E --> P(将修改后的学生信息保存到文件中)F --> Q(获取删除条件)F --> R(找到对应的学生信息并删除)F --> S(将删除后的学生信息保存到文件中)G --> T(从文件中读取所有学生信息)G --> U(将学生信息显示在屏幕上)5. 实现方法学生管理系统可以使用C语言中的文件操作函数来实现。

c语言课程设计学生档案管理系统实验报告

c语言课程设计学生档案管理系统实验报告

学院:管理科学与信息工程学院班级:计算机学号:_____1401111633 姓名:张浩程序作者:程光亮 ,张浩C语言程序设计课程-----设计报告课程设计的目的1.复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握;2.为学生提供一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机结合起来,锻炼学生的分析解决实际问题的能力。

提高学生实践编程的能力;3.培养学生在项目开发中团队合作精神、创新意识及能力。

课程设计题目安排课程设计题目可从以下题目中选择,也可经老师同意自拟题目。

可以多人合作完成(每组最多3人),合作完成的必须明确每个人的具体任务,每人单独上交课程设计报告。

一,题目内容描述第1题学生档案管理设计一个学生档案管理程序。

该程序应该具有下列功能:(1)通过键盘输入某位学生的相关信息。

包括学号、姓名、性别、年龄、出生年月、电话、E-mail、籍贯等;(2)浏览学生信息;(3)根据学号修改、删除学生信息;(4)能按学号、姓名、年龄等关键字排序;(5)统计学生年龄的平均值及各年龄段人数;(6)用链表实现,原始数据输入和结果输出使用文件存放二,应用程序的详细说明(一)系统总体框图(二)模块功能说明1学生信息的输入和修改函数原形:void shuxiu()功能:首次进入管理系统时,进行学生信息的录入,将学生信息存放于结构体链表中入口参数:无出口参数:结构体类型的头指针函数调用关系说明:main()函数调用shuxiu()函数,返回结构体类型的头指针Shuxiu()函数调用shuru()函数和xiugai()函数Shuru()函数主要完成数据的输入以及将数据存储到硬盘的工作Xiugai()调用add()用来添加学生信息Shanchu()哟买回来删除学生信息Xg()用来实现数据的修改内容限制:录入学生信息学如果重复无法检测。

2修改学生信息函数原形:void xiugai()功能:主要王成数据的添加、删除和修改,隶属于数据的输入和修改模块入口参数:无出口参数:无函数调用关系说明:shuxiu()函数调用修改函数Xiugai()函数中调用add() shanchu() xg()内容限制:待修改结点存在,不存在时进行提示3删除学生信息函数原形:int delete(LNode *head,char *n)功能:找到待删除结点(找不到时return NULL),将其从链表中脱离并释放删除信息并释放该结点入口参数:struct node *head出口参数:结构体类型的头指针函数调用关系说明:main函数调用delete函数,Delete函数中调用shuchu1函数返回结构体类型的头指针内容限制:待删除结点存在,不存在时进行提示4学生信息查询函数原形:void chaxun()功能:分为void sch_name()(按姓名查找)和void sch_num()(按学号查找)根据输入的部分信息,搜索另外的学生信息入口参数:出口参数:无函数调用关系说明:main函数调用chaxun()函数Chaxun()函数中调用sch_num()(按姓名查找)和sch_num()(按学号查找)两函数内容限制:待查询结点存在,不存在时进行提示5修改密码函数原型:void gaimi()入口参数:struct node *head出口参数:无函数调用关系说明:main函数调用gaimi函数,gaimi函数中调用comp1函数用来检查原始密码输入是否正确。

原创c语言+数据库 学生管理系统课程设计

原创c语言+数据库 学生管理系统课程设计

原创C语言+数据库学生管理系统课程设计一、引言学生管理系统是一种应用程序,旨在管理学生的基本信息、课程信息、成绩信息以及其他相关信息。

本文将介绍一个基于C语言和数据库的学生管理系统的课程设计。

二、系统设计学生管理系统主要分为以下几个模块:学生信息管理、课程信息管理、成绩管理和报告生成。

2.1 学生信息管理学生信息管理模块主要用于添加、修改、删除和查询学生的基本信息。

学生的基本信息包括学号、姓名、性别、年龄等。

利用数据库存储学生信息可以提高系统的效率和数据的安全性。

通过C语言与数据库的交互,可以实现对学生信息的增删改查操作。

2.2 课程信息管理课程信息管理模块用于添加、修改、删除和查询课程的相关信息。

每门课程有自己的课程编号、课程名称、上课地点、上课时间等。

同样地,课程信息也可以通过数据库进行存储和管理。

2.3 成绩管理成绩管理模块用于录入和查询学生的成绩信息。

每名学生可以选择多门课程,并获取相应的成绩。

成绩信息包括学生学号、课程编号、成绩等。

通过C语言与数据库的结合,可以方便地进行成绩的录入、修改和查询。

2.4 报告生成报告生成模块将学生的基本信息、课程信息和成绩信息综合起来,生成一份完整的报告。

该报告可以用于学校的教务管理、学生的评估等。

通过对数据库中的数据进行查询和整合,可以实现报告的自动生成。

三、技术实现在这个学生管理系统的课程设计中,我们将使用C语言作为编程语言,以及使用MySQL作为数据库管理系统。

具体的实现步骤如下:1.建立数据库首先,我们需要创建一个数据库,用于存储学生信息、课程信息和成绩信息。

可以使用MySQL命令行或者图形化界面工具创建数据库。

2.建立表格在数据库中创建相关的表格,用于存储学生信息、课程信息和成绩信息。

表格的列可以根据实际需要进行设计,例如学生表格可以包括学号、姓名、年龄等列。

3.连接数据库使用C语言编写程序,连接到MySQL数据库。

可以使用MySQL提供的C语言接口库,实现与数据库的连接。

c语言课程设计之学生信息管理系统 (2)

c语言课程设计之学生信息管理系统 (2)

学生信息管理系统设计案例一、引言学生信息管理系统是一种集学生信息录入、查询、修改和删除等功能于一体的软件系统。

为了满足学校对学生信息的有效管理和查询需求,本文将介绍一种用C语言实现的学生信息管理系统设计案例。

二、需求分析学生信息管理系统主要有以下几个功能模块: 1. 学生信息录入:包括学生姓名、学号、年龄、性别等基本信息的录入。

2. 学生信息查询:可以根据学号或姓名进行查询,并显示查询结果。

3. 学生信息修改:可以根据学号或姓名选择要修改的学生信息,并进行修改操作。

4. 学生信息删除:可以根据学号或姓名选择要删除的学生信息,并进行删除操作。

三、系统设计1. 数据结构设计为了存储学生信息,我们需要定义一个学生结构体,包括姓名、学号、年龄、性别等字段。

同时,为了方便管理学生信息,我们可以使用链表数据结构来存储学生信息,并设计一个头节点来指向链表的第一个节点。

struct student {char name[20];int student_id;int age;char gender[10];struct student* next;};struct student* head; // 头节点2. 功能模块设计2.1 学生信息录入在该功能模块中,用户需要输入学生的姓名、学号、年龄和性别等信息,并将该学生信息添加到链表中。

为了方便起见,我们可以将该功能模块定义为一个函数add_student()。

2.2 学生信息查询在该功能模块中,用户可以根据学号或姓名进行学生信息的查询。

查询结果将会显示学生的基本信息。

为了方便起见,我们可以将该功能模块定义为一个函数search_student()。

2.3 学生信息修改在该功能模块中,用户可以根据学号或姓名选择要修改的学生信息,并进行修改操作。

为了方便起见,我们可以将该功能模块定义为一个函数update_student()。

2.4 学生信息删除在该功能模块中,用户可以根据学号或姓名选择要删除的学生信息,并进行删除操作。

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

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

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

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

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

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

学生档案管理系统c语言课程设计报告

学生档案管理系统c语言课程设计报告

目录一、课题设计容与主要功能 (1)第1节.设计容 (1)第2节.主要功能 (1)二、课题分析...................... 错误!未定义书签。

第1节.类声明表.................... 错误!未定义书签。

第2节.分析课程设计项目的实现方法 (3)三、主要功能的实现步骤 (4)四、程序测试与结论 (5)五、总结 (11)六、附件14一、课题设计容与主要功能1、设计容:为了满足学生档案管理的要求,通过计算机技术给档案管理人员带来便利。

使用c 语言编写了学生档案此管理系统。

本系统主要实现学生档案管理的功能,通过此系统方便对学生档案管理。

包括学号、、性别、年龄、备注。

所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理。

图书信息的录入后,系统按照有一定的规格式显示,录入的学生信息用文件形式保存,并可以对其进行修改、排序、插入、排序查询等基本操作。

整个程序实现链表操作,对学生信息的操作逐个地进行。

学生档案管理系统构建框架2、主要功能:1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、、性别、年龄、备注。

2、本系统显示这样的菜单:请选择系统功能项:1.学生基本信息录入;2.学生基本信息显示;3.学生基本信息保存;4.学生基本信息修改;5.学生基本信息插入;6.学生基本信息删除;7.学生基本信息排序;8.学生基本信息按查询;9.从文件中读入学生基本信息;10.退出系统3、执行一个具体的功能之后,程序将重新显示菜单。

4、将学生基本信息保存到文件中。

二、课题分析1、类说明表2、实现方法及核心算法实现代码:主函数: void main()录入函数:void enter()显示函数:void list()保存函数:void save()插入函数:insert()修改函数:void revise()删除函数:void delete()删除录入的学生信息排序函数:void sort()排序录入的学生信息查找函数:void qseek()查找录入的学生信息读取函数:int load()读取保存在文件中的学生信息三、主要功能的实现步骤模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明模块二:学生信息的录入int enter(STUDENT t[])录入学生的基本信息。

学生信息管理系统详细设计说明c语言

学生信息管理系统详细设计说明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语言实现班档案管理系统课程设计本文实例为大家分享了C语言班档案管理系统的具体代码,供大家参考,具体内容如下做的挺长时间的课程设计,当作参考吧#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 20struct student{long num;char name[20];char sex[10];int age;char bz[40];struct student *next;};int i,j,n,num2,num3,age3,k,m;char name3[20],sex3[20],bz3[20],ch;FILE *fp;int login() //登陆函数{char key[20];printf("\t ********************请输入系统密码********************\n"); do{scanf("%s",key);if((strcmp("a",key))==0){printf("\t password correct ,welcome !\n");return 1; //当密码正确时,返回1,进入系统}printf("\t password incorrect,please input again!\n");}while(key!=1);//当返回值不为1时,重新输入密码,直到输入真确为止system("cls");}int menu() //菜单{int c;printf("\t\t**********欢迎进入通讯客户端!************\n\n");printf("\t\t|—————1.录入学生的基本信息—————|\n");printf("\t\t|----------2.显示学生的基本信息----------|\n");printf("\t\t|----------3.保存学生的基本信息----------|\n");printf("\t\t|----------4.删除学生的基本信息----------|\n");printf("\t\t|----------5.修改学生的基本信息----------|\n");printf("\t\t|----------6.查询学生的基本信息----------|\n");printf("\t\t|—————7.退出系统——————————|\n");printf("\t\t请选择您要进行的功能(0~7) ");scanf("%d",&c);return c;}struct student *creat() //录入信息函数{struct student *head,*p1,*p2;n=0;p1=p2=(struct student *)malloc(sizeof(struct student));head=NULL;printf("请输入学生信息学号,姓名,性别,年龄,备注(键入学生学号为0时结束)\n");while(1) //为1表真,p2->next不为0;{scanf("%d",&p1->num);if(p1->num==0) //判断学生的学号是否为0,如果为0则停止输入数据;{break;}scanf("%s%s%d%s",p1->name,p1->sex,&p1->age,p1->bz);n=n+1;if(n==1){head=p1;}else{p2->next=p1;}p2=p1;p1=(struct student *)malloc(sizeof(struct student));}p2->next=NULL;system("cls");return(head);}void print(struct student *head) //输出信息函数{struct student *p;printf("\t\t这里有%d 个学生的数据信息\n",n);p=head;if(head!=NULL){do{printf("\t\t学号:%d\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n",p->num,p->name,p->sex,p->age,p->bz);p=p->next;}while(p!=NULL);}else{return 0;}printf("\n");}int save(struct student *p) //保存信息函数{FILE *fp;if((fp=fopen("keshe.txt","wb"))==NULL){printf("open file fail\n");}fp=fopen("stud","wb");do{fwrite(p,sizeof(struct student),1,fp);p=p->next;}while(p!=NULL);printf("\t\t\t保存成功!\n");fclose(fp);return 0;}struct student *del(struct student *head){struct student *p1,*p2;printf("\t\t请输入要删除学生的学号\n");scanf("%d",&num2);p1=head;if(head->num==num2){head=head->next;free(p1);n--;}else{p2=head;while(p2->num!=num2&&p2->next!=NULL){p1=p2;p2=p2->next;}if(p2->num==num2){p1->next=p2->next;n--;}printf("delete:%ld\n",num2);}return (head);}int mod(struct student *head); //修改信息函数struct student *modify(struct student *head){if(login()==0){return 0;}else{struct student *p1;j=0;p1=(struct student *)malloc(sizeof(struct student)); printf("\t\t\t请输入你要更改的学号\n");scanf("%d",&num2);printf("\t\t\t学号\n");scanf("%d",&num3);printf("\t\t\t姓名\n");scanf("%s",name3);printf("\t\t\t性别\n");scanf("%s",sex3);printf("\t\t\t年龄\n");scanf("%d",&age3);printf("\t\t\t备注\n"); scanf("%s",bz3);p1=head;if(head->num==num2){head->num=num3;strcpy(head->name,name3); strcpy(head->sex,sex3); head->age=age3;strcpy(head->bz,bz3);j=1;}else{p1=head->next;if(p1!=NULL){while(p1->num!=num2) {p1=p1->next;}p1->num=num2;strcpy(p1->name,name3); strcpy(p1->sex,sex3);p1->age=age3;strcpy(p1->bz,bz3);j=1;}}if(j==0){printf("\t\t\t更改失败\n"); }else{printf("\t\t\t更改成功\n"); }}system("cls");mod(head);}int mod(struct student *head) {printf("\t\t\t请选择\n");printf("\t\t\t1:按学号修改学生信息\n");printf("\t\t\t2:输出修改后的学生信息\n");printf("\t\t\t3:返回主菜单\n");scanf("%d",&m);switch(m){case 1:head=modify(head);break;case 2:print(head);break;case 3:menu();break;default:printf("\t\t\tinput error!\n");mod(head);}}int find(struct student *head);int find1(struct student *head) //以学号方式查找{struct student *p1;p1=(struct student *)malloc(sizeof(struct student));printf("\t\t\t请输入你要查询的学生学号\n");scanf("%d",&num2);p1=head;while(p1!=NULL){if(p1->num==num2){k=1;printf("\t\t\t学号:%d\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n\n",p1->num,p1->name,p1->sex,p1->age,p1->bz);break;}p1=p1->next;}if(k==0){printf("\t\t\t没有查询到您要找的学生信息\n\n");}else{printf("\t\t\t这就是您要找的学生信息\n\n");}find(head);}int find2(struct student *head) //以姓名方式查找struct student *p1;p1=(struct student *)malloc(sizeof(struct student));printf("\t\t\t请输入您要查询的学生姓名\n");scanf("%s",name3);p1=head;while(p1!=NULL){if((strcmp(p1->name,name3))==0){k=1;printf("\t\t\t学号:%d\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n\n",p1->num,p1->name,p1->sex,p1->age,p1->bz);break;}p1=p1->next;}if(k==0){printf("\t\t\t没有找到该学生信息\n\n");}else{printf("\t\t\t这就是您要查询的学生信息\n\n");}find(head);}int find3(struct student *head) //以性别方式查找{struct student *p1;p1=(struct student *)malloc(sizeof(struct student));printf("\t\t\t请输入你要查询的学生的性别\n");scanf("%s",sex3);p1=head;while(p1!=NULL){if((strcmp(p1->sex,sex3))==0){k=1;printf("\t\t\t学号:%d\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n\n",p1->num,p1->name,p1->sex,p1->age,p1->bz);break;}p1=p1->next;if(k==0){printf("\t\t\t没有找到该学生信息\n\n");}else{printf("\t\t\t这就是您要查询的学生的信息\n\n");}find(head);}int find4(struct student *head) //以年龄方式查找{struct student *p1;p1=(struct student *)malloc(sizeof(struct student));printf("\t\t\t请输入您要查询的学生的年龄\n");scanf("%d",&age3);p1=head;while(p1!=NULL){if(p1->age==age3){k=1;printf("\t\t\t学号:%d\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n\n",p1->num,p1->name,p1->sex,p1->age,p1->bz);break;}p1=p1->next;}if(k==0){printf("\t\t\t没有找到该学生的信息\n\n");}else{printf("\t\t\t这就是您要找的学生的信息\n\n");}find(head);}int find(struct student *head){printf("\t\t\t请选择您要查询学生信息的方式\n");printf("\t\t\t1:按学生学号查询\n");printf("\t\t\t2:按学生姓名查询\n");printf("\t\t\t3:按学生性别查询\n");printf("\t\t\t4:按学生年龄查询\n");printf("\t\t\t5:返回主菜单\n");scanf("%d",&m);switch(m){case 1:find1(head);break;case 2:find2(head);break;case 3:find3(head);break;case 4:find4(head);break;case 5:system("cls");menu();break;default:printf("\t\t\tinput error,please input again\n");}}int main() //主函数{struct student *phead;if(login()==0){return 0;}printf("\n");while(1){switch(menu()){case 1:system("cls");phead=creat();break;case 2:system("cls");print(phead);break;case 3:system("cls");save(phead);break;case 4:system("cls");phead=del(phead);break;case 5:system("cls");mod(phead);break;case 6:system("cls");find(phead);break;case 7:system("cls");printf("\t\t\t欢迎使用,再见!\n");return 0; default:printf("\t\t\t输入有错,请重新输入\n");}}}。

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

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

路漫漫其修远兮,吾将.上F而求索・百度文库用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。

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

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

可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对■链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h n#include ,,conio.h Hjiemian();struct student(char name[50];char sex[5];int age;char num[50];float scorel;float score2;float score3;float sum;float ave;}stu[50],del;void gnl()(int i=0;char numl;for(i=0;i<50;i++)(printf「请输入要添加的学生资料:\n“);printf(“学号巧;scanf("%s",stu[i].num);printf("姓名巧;scanf("%s",stu[i].name);printf(“性别巧;scanf("%s",&stu[i].sex);printf(“年龄巧;scanf("%d",&stu[i].age);11目上下而求索•百度文库printf(”请输入学生的三门成绩:'俏;printf("语文门;scanf(,,%f,,,&stu[i].scorel);printf(“数学门;scanf(,,%f,,,&stu[i].score2);printf("英语巧;scanf(,,%f,,,&stu[i].score3);printf("是否继续添加:y/n\n“); scanf(,,%c,,,&numl);scanf(,,%c,,,&numl);if(numl==,N, 11 numl=="n,){system(,,cls"); jiemian();)))void gn2()(int i;char num[50];printf「请输入要查找的学生学号:\n“);scanf(,,%s,,/num);for(i=0;i<50;i++)if(strcmp(stu[i].num,num)==O) (stu[i].sum=stu[i].scorel+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum^;printf(',%s\t%s\t%s\t%d\t%,2f\t%.2f\t%.2f\t%.2f\t%.2f:\n'l/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,s tu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);break;)if(i==50)printf("查找不到!请重新输入!\n");22路漫漫其修远兮,吾将上F而求索・百度文库getch(); systemf'cls"); jiemian();)void gn3()(char numlJ=0;printf("请输入要修改的学生学号:\n“);scanf(,,%s,,/stu[i].num);printf(,l%s\t%s\t%s\t%d\t%,2f\t%.2f\t%.2f\t%.2f\t%.2f:\n'l/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,s tu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);printf("姓名门;scanf(,,%s,,/stu[i].name);printf(“性别门;scanf(,,%s,,/stu[i].sex);printf("年龄门;scanf(,,%d,,,&stu[i].age);printf(“请输入学生的三门成绩:\n“);printf("语文门;scanf(,,%f,,,&stu[i].scorel);printf(“数学门;scanf(,,%f,,,&stu[i].score2);printf("英语门;scanf(,,%f,,,&stu[i].score3);printf("是否继续修改:y/n?\n“);scanf(,,%c"/&numl);scanf(,,%c,\&numl);if(numl==,N, 11 numl==,n,)systemf'cls"); jiemian();)void gn4()(int i;char num[50];printf("请输入要删除的学生学号:\n“);scanf(,,%s,,,num);for(i=0;i<50;i++) 33if(strcmp(num,stu[i].num)==O)(printf(,,%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n,,/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,stu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);stu[i]=del;printf("信息已删除,按任意键返回..\n“); break;)if(i==50)printf ("您输入的信息不存在!\n”);getch();system("cls"); jiemian();)void gn5()(int i=0;stu[i].sum=stu[i].scorel+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t总成绩\t平均成绩\n");for(i=0;i<50;i++)(if(stu[i].age==O)break;printf(,,%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n,,/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,stu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);)printf("按任意键返回.getch();system(,,cls n);jiemian();)void gn6()(FILE *fp;int i;char filename[50];printf(,,\n N); 44路漫漫其修远兮,吾将上F而求索・百度文库printf(,,\n M);printf(“请输入要保存的文件名:");scanf(”%s”,filename);if((fp=fopen(filename/,wb,,))==NULL)printf("文件名为空,不能保存!\n");for(i=0;i<50;i++)(if(fwrite(&stu[i],sizeof(struct student),l,fp)!=l) printf("文件保存失败!\n”);)fclose(fp);printf (“文件己保存!\n“);printf。

c语言课程设计(学生信息管理系统)

c语言课程设计(学生信息管理系统)

c语言课程设计(学生信息管理系统)一、系统功能学生信息管理系统是一款基于C语言开发的数据管理程序,可实现对学生信息的增删改查等功能。

具体功能列表如下: a. 添加学生信息:可根据学生的基本信息,如学生学号、姓名、性别、地址、联系电话等,依次记录入系统; b. 删除学生信息:可根据学生学号、姓名等信息,从系统中删除不必要的学生信息; c. 修改学生信息:可根据已有的学生信息,修改学生某些属性内容,以更新系统中的数据; d. 查看学生信息:可根据学生学号、姓名等信息,查看指定学生的所有信息及多种查询功能; e. 数据保存功能:可将当前系统中的学生信息,保存成文件的形式; f. 备份/恢复功能:可对学生信息文件进行备份并对备份文件进行恢复; g. 查询统计功能:可根据学院代号、专业代号等信息,进行不同的查询统计; h. 排序功能:可根据学生学号、姓名等信息,对学生信息进行排序; i. 帮助功能:可提供详细的使用帮助文档,以帮助用户更好地使用系统;二、程序实现及结构1. 主程序:此程序用于控制整个系统的运行,可实现系统菜单显示、功能调用及功能切换等功能,可根据用户的操作需求,调用其他子程序实现各项功能。

2. 子程序:此程序是系统的主要部分,可实现学生信息的增删改查等功能,并可支持学生信息的备份,恢复,排序及查询统计等功能,用于实现主程序调用的功能。

3. 管理模块:此模块可实现对用户的登录及注册功能,可检测用户登录及注册的账号是否正确,以及是否有权限使用系统;4. 数据库模块:此模块可实现对学生信息的存储及调用,便于对各类学生信息进行更方便的管理。

此模块还可以负责系统的备份及恢复功能的实现。

5. 图形界面模块:此模块负责实现系统的图形化界面,使用户可以更加友好地操作系统,可以根据用户的需求,随时更改系统界面设置。

三、程序设计学生信息管理系统的设计主要有四个部分:1. 主程序:主程序的设计要求负责控制整个系统的运行,并根据用户的操作调用子程序实现各个功能。

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

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

. .目录一、课题设计内容与主要功能 (1)第 1 节. 设计内容 . (1)第 2 节. 主要功能 . (1)二、课题解析.............................................................................................................错误!不决义书签。

第 1 节. 类声明表 . ....................................................................................................错误!不决义书签。

第 2 节.解析课程设计项目的实现方法 (3)三、主要功能的实现步骤 (4)四、程序测试与结论 (5)五、总结 (11)六、附件14一、课题设计内容与主要功能1、设计内容:为了满足学生档案管理的要求,经过计算机技术给档案管理人员带来便利。

使用c 语言编写了学生档案此管理系统。

本系统主要实现学生档案管理的功能,经过此系统方便对学生档案管理。

包括学号、姓名、性别、年龄、备注。

所设计的系统以菜单方式工作,为用户供应清楚的使用提示,依据用户的选择来进行各种办理。

图书信息的录入后,系统依据有必然的规范格式显示,录入的学生信息用文件形式保存,并能够对其进行修改、排序、插入、排序盘问等基本操作。

整个程序实现链表操作,对学生信息的操作逐个地进行。

学生档案管理系统成立框架学 1.学生基本信息录入生 2.学生基本信息显示档 3.学生基本信息保存案 4.学生基本信息更正按姓名更正管 5.学生基本信息插入按姓名插入理 6.学生基本信息删除按姓名删除系7.学生基本信息排序统8.学生基本信息按姓名盘问按姓名盘问9.从文件中读入学生基本信息10.退出系统2、主要功能:1、本系统采用一个包括 N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。

学生档案管理系统c语言代码

学生档案管理系统c语言代码

学生档案管理系统c语言代码整个档案管理系统主要包括两个部分:数据结构和函数实现。

数据结构包括学生信息结构体和链表结构,而函数实现则包括链表操作函数和主函数。

1. 数据结构学生信息结构体包含学生姓名、学号、性别、出生日期、班级和联系方式:```struct student_info{char name[20]; //姓名char id[10]; //学号char sex[5]; //性别char birthday[20]; //出生日期char classname[10]; //班级char tel[20]; //联系方式};```链表结构包含指向学生信息结构体的指针和指向下一个节点的指针:```struct node{struct student_info* data; //指向学生信息结构体的指针struct node* next; //指向下一个节点的指针};```2. 函数实现链表操作函数实现了对链表的基本操作,包括创建节点、插入节点、删除节点和遍历链表:(1)创建节点函数createNode:```struct node* createNode(struct student_info* data){struct node* newNode= (struct node*) malloc(sizeof(struct node));newNode->data= data;newNode->next= NULL;return newNode;}```if(current!= NULL && current->data== data){ //头节点是要删除的节点*headRef= current->next; //把头节点下移free(current);return;}previous->next= current->next; //跳过要删除的节点free(current);}```(4)遍历链表函数displayList:主函数将这些函数调用起来,完成整个档案管理系统的功能:switch(choice){case 1:s= (struct student_info*) malloc(sizeof(struct student_info)); //为新学生信息结构体分配内存printf("Please enter student's name, ID, sex, birthday, classname, and telephone number: ");scanf("%s %s %s %s %s %s", s->name, s->id, s->sex, s->birthday,s->classname, s->tel);insertNode(&head, s); //插入新节点printf("New student record has been added.\n");break;case 3:displayList(head); //遍历链表,输出所有学生记录break;以上就是学生档案管理系统c语言代码的基本实现。

设计一个C语言课程的学生信息管理系统

设计一个C语言课程的学生信息管理系统

1. 设计一个C语言课程的学生信息管理系统在计算机编程领域,学生信息管理系统是一种常见且重要的工具。

针对C语言课程,设计一个学生信息管理系统可以使教师和学生更有效地管理和跟踪课程进展。

本文将基于这一需求,介绍一个设计方案,并讨论其实现和应用。

1.1 系统需求分析设计学生信息管理系统的首要步骤是确定系统的需求。

在C语言课程中,我们通常需要管理学生的基本信息(例如尊称、学号、通信方式等),以及他们的课程成绩、作业提交情况等。

针对这些需求,我们可以将学生信息管理系统的功能分为以下几个方面:1.学生信息录入:教师或管理员可以将学生的基本信息录入系统,包括尊称、学号、通信方式等。

2.成绩管理:系统可以记录和管理学生的课程成绩,并提供查询和统计功能。

3.作业管理:学生可以通过系统提交作业,教师可以查看和评分。

4.考勤管理:记录学生的出勤情况,方便教师管理课堂纪律。

1.2 系统设计与实现1.2.1 数据结构设计为了有效地管理学生信息,我们需要设计合适的数据结构。

在C语言中,可以使用结构体来表示学生的信息,其中包括尊称、学号、通信方式等字段。

为了便于管理多个学生,可以使用链表或数组来组织学生信息。

typedef struct Student {char name[50];int studentId;char contact[50];float grade;struct Student* next;} Student;在上述代码中,我们定义了一个Student结构体,包含了学生的尊称、学号、通信方式、课程成绩以及一个指向下一个学生的指针。

1.2.2 功能实现为了实现学生信息管理系统的各个功能,我们需要编写相应的函数。

下面是几个基本功能的示例代码:1.2.2.1 学生信息录入Student* createStudent(char name[50], int studentId, char contact[50]) { // 创建一个新的学生结构体Student* student = (Student*)malloc(sizeof(Student));// 设置学生的基本信息strcpy(student->name, name);student->studentId = studentId;strcpy(student->contact, contact);student->grade = 0.0;student->next = NULL;return student;}void addStudent(Student** head, Student* newStudent) {if (*head == NULL) {// 如果链表为空,则直接将新学生作为头节点*head = newStudent;} else {// 找到链表的尾节点,并将新学生添加到末尾Student* current = *head;while (current->next != NULL) {current = current->next;}current->next = newStudent;}}void inputStudentInformation(Student** head) {char name[50], contact[50];int studentId;printf("请输入学生尊称:");scanf("%s", name);printf("请输入学生学号:");scanf("%d", &studentId);printf("请输入学生通信方式:");scanf("%s", contact);// 创建新的学生信息Student* newStudent = createStudent(name, studentId, contact);// 将学生信息添加到链表addStudent(head, newStudent);printf("学生信息录入成功!\n");}在上述代码中,我们首先定义了一个createStudent函数,用于创建一个新的学生结构体并初始化其基本信息。

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

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

程序设计基础课程设计实验报告书目录1.设计题目 (3)2.正文 (3)2.1系统简介 (3)2.2选题背景 (4)2.3设计内容 (4)2.4设计思路 (4)2.5算法(条列式或流程图) (4)2.6程序清单与运行结果 (9)2.7总结 (15)1.设计题目学生信息管理系统设计2.正文2.1 系统简介学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。

试设计一学生信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、学生信息录入功能(学生信息用文件保存)--输入3、学生信息浏览功能--输出4、学生信息查询功能--按学号查询、按姓名查询、5、学生信息的删除与修改(可选项)要求:使用文件方式存储数据。

2.2选题背景经典计算机问题,设计学生信息管理系统,可以进行多项系统信息管理功能。

2.3设计内容设计学生信息管理的各个功能。

系统以菜单方式工作。

学生信息录入功能(学生信息用文件保存)--输入。

学生信息浏览功能--输出。

学生信息查询功能--按学号查询、按姓名查询。

学生信息的删除与修改(可选项)2.4设计思路将程序的各个功能分开独立的执行,问题有大而小,细化。

2.5算法(条列式或流程图)主程序模块:删除信息模块(独立函数):显示浏览信息模块(独立函数)查找学生信息模块(独立函数):2.6程序清单与运行结果#include<stdio.h>#include<stdlib.h>#include<string.h>#include<io.h>struct birth{int year,month,day;};struct student{int number,age,tel[10];char name[10],sex,address[20],E_mail[20];struct birth birthday;struct student *link;};void show( ){printf(" 请输入数字加回车键进行选择:\n");printf(" 1、学生信息录入功能(学生信息用文件保存)--输入\n");printf(" 2、学生信息浏览功能--输出\n");printf(" 3、学生信息查询功能--按学号查询、按姓名查询\n");printf(" 4、学生信息的删除与修改(可选项)\n");printf(" 按其他任意键加回车退出程序\n");}\* 创建文件夹并存入信息模块: *\void credit(int n){FILE *fp;char fpname[20];struct student *head,*next,*end;int i;printf("请输入用于存放文件的文件路劲及文件名:");scanf("%s",fpname);getchar();fp=fopen(fpname,"w+");head=(struct student *)malloc(sizeof(struct student));printf("请输入学生学号姓名性别出生年月日地址电话 e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex,&(*h ead).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head->te l,head->E_mail);getchar();fprintf(fp,"%d %s %c %d %d %d %s %s %s",head->number,head->name,head->sex,( *head).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->te l,head->E_mail);end=head;for(i=1;i<n;i++){next=(struct student *)malloc(sizeof(struct student));printf("请输入学生学号姓名性别出生年月日地址电话 e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&next->number,next->name,&next->sex,&(*n ext).birthday.year,&(*next).birthday.month,&(*next).birthday.day,next->address,next->te l,next->E_mail);getchar();fprintf(fp,"%d %s %c %d %d %d %s %s %s",next->number,next->name,next->sex,( *next).birthday.year,(*next).birthday.month,(*next).birthday.day,next->address,next->te l,next->E_mail);end->link=next;end=next;end->link=NULL;}fclose(fp);}\* 浏览信息模块: *\void show2(int n){FILE *fp;int i;char fpname[20];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex, &(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head ->tel,head->E_mail);printf("%d %s %d %d %d %d %s %s %s",&head->number,head->name,head->sex,(*he ad).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->tel,h ead->E_mail);}fclose(fp);}\* 按学号查找学生信息模块: *\int search1(int n){int i,checkname;FILE *fp;char fpname[20];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");printf("请输入要查询信息的学生学号:");scanf("%d",&checkname);getchar();for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex, &(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head ->tel,head->E_mail);if(checkname==head->number){printf("%d %s %c %d %d %d %s %s %s\n",head->number,head->name,head->sex,(*h ead).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->tel, head->E_mail);fclose(fp);return(1);}}printf("未找到");}\* 按姓名查找学生信息模块: *\void search2(int n){int i;FILE *fp;char fpname[20],checkname[10];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");printf("请输入要查询信息的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex, &(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head ->tel,head->E_mail);if(strcmp(checkname,head->name)==0){printf("%d %s %c %d %d %d %s %s %s",head->number,head->name,head->sex,(*hea d).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->tel,he ad->E_mail);fclose(fp);return(1);}}printf("未找到\n");}\* 删除或修改文件信息模块: *\int most(n){FILE *fp;char get;char fpname[20];struct student *ans[500];int i;char checkname[10];printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");ans[0]=(struct student *)malloc(sizeof(struct student));fscanf(fp,"%d %s %c %d %d %d %s %s %s",&ans[0]->number,ans[0]->name,&ans[0] ->sex,&(*ans[0]).birthday.year,&(*ans[0]).birthday.month,&(*ans[0]).birthday.day,ans[0] ->address,ans[0]->tel,ans[0]->E_mail);for(i=1;i<n;i++){ans[i]=(struct student *)malloc(sizeof(struct student));fscanf(fp,"%d %s %c %d %d %d %s %s %s",&ans[i]->number,ans[i]->name,&ans[i] ->sex,&(*ans[i]).birthday.year,&(*ans[i]).birthday.month,&(*ans[i]).birthday.day,ans[i] ->address,ans[i]->tel,ans[i]->E_mail);ans[i-1]->link=ans[i];}ans[i]->link=NULL;printf("如果想修改信息请输入1加回车键,想删除信息输入2加回车键:");get=getchar();getchar();if(get=='1'){printf("请输入要修改信息的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){if(strcmp(checkname,ans[i]->name)==0){printf("请输入学生新信息学号姓名性别出生年月日地址电话e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&ans[i]->number,ans[i]->name,&ans[i]->se x,&(*ans[i]).birthday.year,&(*ans[i]).birthday.month,&(*ans[i]).birthday.day,ans[i]->ad dress,ans[i]->tel,ans[i]->E_mail);getchar();}}}if(get=='2'){printf("请输入要删除的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){if(strcmp(checkname,ans[i]->name)==0){ans[i-1]->link=ans[i]->link;n--;break;}}}fp=fopen(fpname,"w+");for(i=0;i<n;i++){fprintf(fp,"%d %s %c %d %d %d %s %s %s",ans[i]->number,ans[i]->name,ans[i]->sex,(*ans[i]).birthday.year,(*ans[i]).birthday.month,(*ans[i]).birthday.day,ans[i]->ad dress,ans[i]->tel,ans[i]->E_mail);}fclose(fp);return(n);}\*主函数模块*\void main(){char get,get2;int n;while(1){show();get=getchar();getchar();switch(get){case '1':printf("请输入学生人数:");scanf("%d",&n);getchar();credit(n);break;case '2':show2(n);break;case '3':printf("按学号查找请输入1加回车键,按姓名查询请输入2加回车键:");get2=getchar();getchar();if(get2=='1'){search1(n);}if(get2=='2'){search2(n);}break;case '4':n=most(n);break;}if(get!='1'&&get!='2'&&get!='3'&&get!='4'){break;}}}2.7总结该程序主要使用结构体与结构化程序的设计,调用文件函数,设计函数时保持头脑思路清晰,有条理,保持各功能独立的函数来实现,需要对程序能熟练使用与掌握,我的函数侧重对单链表的使用,同时侧重文件运用时文件流动时文件信息不会流失。

学生档案管理系统c语言

学生档案管理系统c语言

学生档案管理系统c语言学生档案管理系统1 内容与要求【问题描述】设计一个学生档案管理系统,对学生档案进行管理。

每个学生的信息包括:学号、姓名、性别、出生年月、是否党员、手机号码、家庭住址、各门课成绩(每门课包括课程名与成绩)。

系统要求包含如下功能:1。

创建功能:初始输入每个学生的信息(学号、姓名、性别、出生年月、是否党员、手机号码、家庭住址)并保存。

2。

显示功能:显示全部学生的信息(包括各门课的成绩)。

3。

输入某课程成绩功能:按学号、成绩输入选修某门课的所有学生的成绩(说明:并不是所有学生都选同一门课,每个学生选的课可不一样)。

4。

统计平均成绩功能:计算每个学生的平均成绩。

5。

查找功能:按姓名或学号查找学生记录,并显示。

6。

排序功能:按学号或平均成绩进行排序,并显示。

7。

插入功能:插入一条学生记录。

8。

删除功能:删除指定学生的记录。

要求提供一个界面来调用各个功能,界面应尽可能清晰美观。

【具体要求】1。

系统应以菜单方式工作,举例如下:程序运行后显示如下主界面:**************************************** 1--------------创建 2--------------显示 3--------------输入成绩 4--------------统计成绩 5--------------查找 6--------------排序 7--------------插入 8--------------删除 9--------------退出**************************************** 通过选择1-9来确定要做哪一个操作。

若选5,则出现如下界面:**************************************** 1----------按学号查询 2----------按姓名查询****************************************2。

c语言学生管理系统设计

c语言学生管理系统设计

C语言学生管理系统设计引言学生管理系统在教育领域起着非常重要的作用。

它能够帮助学校、教师和学生有效地管理学生信息,提供便捷的查询、统计和分析功能。

本文将介绍一个基于C语言的学生管理系统设计,主要包括需求分析、系统设计和实现。

需求分析功能需求学生管理系统的主要功能需求包括:1.添加学生信息:包括姓名、性别、年龄、学号、班级等基本信息。

2.修改学生信息:根据学生学号,可以修改学生的基本信息。

3.删除学生信息:根据学生学号,可以删除学生的信息。

4.查询学生信息:根据学生学号或姓名,可以查询学生的基本信息。

5.统计学生信息:统计学生总人数、男女比例等统计信息。

6.显示学生信息:以表格形式展示学生的基本信息。

性能需求为了确保学生管理系统的性能满足需求,需要考虑以下方面:1.数据库设计:合理设计数据库结构,在存储和查询数据方面具有高效性。

2.数据操作:要求对学生信息的增、删、改、查操作具有快速响应能力。

3.用户界面:用户交互要友好,并具备良好的用户体验。

系统设计数据库设计学生管理系统的数据库设计是系统设计的重要一环。

为了存储学生信息,我们可以设计一个包含以下字段的学生表:•学号(ID):唯一标识学生信息的字段。

•姓名(Name):学生的姓名。

•性别(Gender):学生的性别。

•年龄(Age):学生的年龄。

•班级(Class):学生所属的班级。

功能模块设计学生管理系统可以划分为以下几个功能模块:1.添加模块:提供一个界面,录入学生的基本信息,并将信息存入数据库。

2.修改模块:提供一个界面,根据学号查询学生信息,并可以修改学生的基本信息。

3.删除模块:提供一个界面,根据学号查询学生信息,并可以删除学生的信息。

4.查询模块:提供一个界面,根据学号或姓名查询学生的基本信息,并显示查询结果。

5.统计模块:对学生信息进行统计,计算学生总人数、男女比例等统计指标。

6.显示模块:以表格形式展示学生的基本信息。

界面设计为了提供友好的用户界面和良好的用户体验,可以使用C语言的图形库进行界面设计。

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

程序设计基础课程设计实验报告书目录1.设计题目................................................... 错误!未指定书签。

2.正文....................................................... 错误!未指定书签。

2.1系统简介................................................... 错误!未指定书签。

2.2选题背景................................................... 错误!未指定书签。

2.3设计内容................................................... 错误!未指定书签。

2.4设计思路................................................... 错误!未指定书签。

2.5算法(条列式或流程图) ..................................... 错误!未指定书签。

2.6程序清单与运行结果......................................... 错误!未指定书签。

2.7总结....................................................... 错误!未指定书签。

1.设计题目学生信息管理系统设计2.正文2.1 系统简介学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。

试设计一学生信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、学生信息录入功能(学生信息用文件保存)--输入3、学生信息浏览功能--输出4、学生信息查询功能--按学号查询、按姓名查询、5、学生信息的删除与修改(可选项)要求:使用文件方式存储数据。

2.2选题背景经典计算机问题,设计学生信息管理系统,可以进行多项系统信息管理功能。

2.3设计内容设计学生信息管理的各个功能。

系统以菜单方式工作。

学生信息录入功能(学生信息用文件保存)--输入。

学生信息浏览功能--输出。

学生信息查询功能--按学号查询、按姓名查询。

学生信息的删除与修改(可选项)2.4设计思路将程序的各个功能分开独立的执行,问题有大而小,细化。

2.5算法(条列式或流程图)主程序模块:2.6#include<stdlib.h>#include<string.h>#include<io.h>struct birth{int year,month,day;};struct student{int number,age,tel[10];char name[10],sex,address[20],E_mail[20];struct birth birthday;struct student *link;};void show( ){printf(" 请输入数字加回车键进行选择:\n");printf(" 1、学生信息录入功能(学生信息用文件保存)--输入\n");printf(" 2、学生信息浏览功能--输出\n");printf(" 3、学生信息查询功能--按学号查询、按姓名查询\n");printf(" 4、学生信息的删除与修改(可选项)\n");printf(" 按其他任意键加回车退出程序\n");}\* 创建文件夹并存入信息模块: *\void credit(int n){FILE *fp;char fpname[20];struct student *head,*next,*end;int i;printf("请输入用于存放文件的文件路劲及文件名:");scanf("%s",fpname);getchar();fp=fopen(fpname,"w+");head=(struct student *)malloc(sizeof(struct student));printf("请输入学生学号姓名性别出生年月日地址电话 e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex,&(*h ead).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head->te l,head->E_mail);getchar();fprintf(fp,"%d %s %c %d %d %d %s %s %s",head->number,head->name,head->sex,( *head).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->te l,head->E_mail);end=head;for(i=1;i<n;i++){next=(struct student *)malloc(sizeof(struct student));printf("请输入学生学号姓名性别出生年月日地址电话 e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&next->number,next->name,&next->sex,&(*n ext).birthday.year,&(*next).birthday.month,&(*next).birthday.day,next->address,next->te l,next->E_mail);getchar();fprintf(fp,"%d %s %c %d %d %d %s %s %s",next->number,next->name,next->sex,( *next).birthday.year,(*next).birthday.month,(*next).birthday.day,next->address,next->te l,next->E_mail);end->link=next;end=next;end->link=NULL;}fclose(fp);}\* 浏览信息模块: *\void show2(int n){FILE *fp;int i;char fpname[20];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex, &(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head ->tel,head->E_mail);printf("%d %s %d %d %d %d %s %s %s",&head->number,head->name,head->sex,(*he ad).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->tel,h ead->E_mail);}fclose(fp);}\* 按学号查找学生信息模块: *\int search1(int n){int i,checkname;FILE *fp;char fpname[20];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");printf("请输入要查询信息的学生学号:");scanf("%d",&checkname);getchar();for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex, &(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head ->tel,head->E_mail);if(checkname==head->number){printf("%d %s %c %d %d %d %s %s %s\n",head->number,head->name,head->sex,(*h ead).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->tel, head->E_mail);fclose(fp);return(1);}}printf("未找到");}\* 按姓名查找学生信息模块: *\void search2(int n){int i;FILE *fp;char fpname[20],checkname[10];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");printf("请输入要查询信息的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex, &(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head ->tel,head->E_mail);if(strcmp(checkname,head->name)==0){printf("%d %s %c %d %d %d %s %s %s",head->number,head->name,head->sex,(*hea d).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->tel,he ad->E_mail);fclose(fp);return(1);}}printf("未找到\n");}\* 删除或修改文件信息模块: *\int most(n){FILE *fp;char get;char fpname[20];struct student *ans[500];int i;char checkname[10];printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");ans[0]=(struct student *)malloc(sizeof(struct student));fscanf(fp,"%d %s %c %d %d %d %s %s %s",&ans[0]->number,ans[0]->name,&ans[0] ->sex,&(*ans[0]).birthday.year,&(*ans[0]).birthday.month,&(*ans[0]).birthday.day,ans[0] ->address,ans[0]->tel,ans[0]->E_mail);for(i=1;i<n;i++){ans[i]=(struct student *)malloc(sizeof(struct student));fscanf(fp,"%d %s %c %d %d %d %s %s %s",&ans[i]->number,ans[i]->name,&ans[i] ->sex,&(*ans[i]).birthday.year,&(*ans[i]).birthday.month,&(*ans[i]).birthday.day,ans[i] ->address,ans[i]->tel,ans[i]->E_mail);ans[i-1]->link=ans[i];}ans[i]->link=NULL;printf("如果想修改信息请输入1加回车键,想删除信息输入2加回车键:");get=getchar();getchar();if(get=='1'){printf("请输入要修改信息的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){if(strcmp(checkname,ans[i]->name)==0){printf("请输入学生新信息学号姓名性别出生年月日地址电话e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&ans[i]->number,ans[i]->name,&ans[i]->se x,&(*ans[i]).birthday.year,&(*ans[i]).birthday.month,&(*ans[i]).birthday.day,ans[i]->ad dress,ans[i]->tel,ans[i]->E_mail);getchar();}}}if(get=='2'){printf("请输入要删除的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){if(strcmp(checkname,ans[i]->name)==0){ans[i-1]->link=ans[i]->link;n--;break;}}}fp=fopen(fpname,"w+");for(i=0;i<n;i++){fprintf(fp,"%d %s %c %d %d %d %s %s %s",ans[i]->number,ans[i]->name,ans[i]->sex,(*ans[i]).birthday.year,(*ans[i]).birthday.month,(*ans[i]).birthday.day,ans[i]->ad dress,ans[i]->tel,ans[i]->E_mail);}fclose(fp);return(n);}\*主函数模块*\void main(){char get,get2;int n;while(1){show();get=getchar();getchar();switch(get){case '1':printf("请输入学生人数:");scanf("%d",&n);getchar();credit(n);break;case '2':show2(n);break;case '3':printf("按学号查找请输入1加回车键,按姓名查询请输入2加回车键:");get2=getchar();getchar();if(get2=='1'){search1(n);}if(get2=='2'){search2(n);}break;case '4':n=most(n);break;}if(get!='1'&&get!='2'&&get!='3'&&get!='4'){break;}}}2.7总结该程序主要使用结构体与结构化程序的设计,调用文件函数,设计函数时保持头脑思路清晰,有条理,保持各功能独立的函数来实现,需要对程序能熟练使用与掌握,我的函数侧重对单链表的使用,同时侧重文件运用时文件流动时文件信息不会流失。

相关文档
最新文档