C语言程序设计——学生信息管理系统

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

c语言程序设计学生信息管理系统

c语言程序设计学生信息管理系统

c语言程序设计学生信息管理系统学生信息管理是学校管理系统中非常重要的一部分,因此我们需要一个高效的系统进行管理。

在此背景下,C语言程序设计可以成为一个非常有用的工具。

首先,我们需要定义学生信息的数据结构。

通常情况下,学生信息包括姓名,性别,年龄,出生日期,籍贯,班级等等。

我们可以使用结构体来定义这个数据类型,代码如下:```typedef struct{char name[20];char sex[10];int age;char birth[20];char place[20];char clazz[20];}STUDENT;```其中,我们使用了char数组来存储字符串类型的数据。

在使用数组之前,我们需要考虑数据大小,以免溢出。

在这里,我们将数组的大小设置为了20。

接下来,我们需要实现学生信息的输入和输出功能。

我们可以使用scanf函数来输入信息,使用printf函数来输出信息。

代码如下:```void input_stu(STUDENT *stu){printf("Input Student's Name:");scanf("%s",stu->name);printf("Input Student's Gender:");scanf("%s",stu->sex);printf("Input Student's Age:");scanf("%d",&stu->age);printf("Input Student's Birth:");scanf("%s",stu->birth);printf("Input Student's Place:");scanf("%s",stu->place);printf("Input Student's Class:");scanf("%s",stu->clazz);}void output_stu(STUDENT *stu){printf("Name:%s\n",stu->name);printf("Gender:%s\n",stu->sex);printf("Age:%d\n",stu->age);printf("Birth:%s\n",stu->birth);printf("Place:%s\n",stu->place);printf("Class:%s\n",stu->clazz);}```注意,在使用scanf函数输入字符串类型的数据时,应该使用%s 格式控制符。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

c语言学生信息管理系统设计报告

c语言学生信息管理系统设计报告

c语言学生信息管理系统设计报告随着教学质量和教学管理的要求不断提高,校园管理系统对于诸多困难领域的改善服务开始发挥着重要作用,而学生信息技术系统设计是实现校园管理质量提升的重要手段之一。

实施学生信息管理系统可以提高人力资源管理的效率,降低办理各项业务的成本,将学校管理变得更加规范和有效。

本报告旨在设计一套C语言学生信息管理系统,用于学校信息管理与市场营销管理,实现数据的及时收集、存储和处理,同时,改善学校的教学管理,提高教学质量,提升学生的学习体验。

首先,系统设计将涉及到C语言的语法和结构,以便理解和实现学生信息的管理。

其次,关于系统的功能,可以从学生信息管理、任课管理、教学管理、学术科研、职位设置、绩效考核等方面进行完善。

针对关键管理系统,为了实现系统的可靠性和安全性,将采用多种数据库技术,包括SQL Server、Oracle、MySQL等数据库技术,以及主流计算机语言C++、Java等,实现数据库的操作、学生信息管理系统的开发、学习管理系统的开发等技术需求。

此外,本报告还将对相关技术以及软件测试等内容进行分析,以保证学生信息管理系统的可靠性和稳定性。

本报告的完成,必须充分考虑C语言的基本知识,以及C语言学生信息管理系统在实施过程中的可能风险。

在实施过程中,应该通过计算机技术的应用、软件测试、数据库技术的改进等多方面分析,以保证系统在实施过程中的高效稳定性。

综上所述,本报告将实施C语言学生信息管理系统,实现学校信息管理与市场营销管理,旨在收集、存储和处理数据,同时提高教学管理的质量,提升学生的学习体验,实现学校的管理变得更加规范和有效。

此外,本报告还将深入探讨如何利用计算机技术、数据库技术、软件测试等相关技术,保证学生信息管理系统的可靠性和安全性。

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

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语言

学生信息管理系统详细设计说明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语言--学生信息管理系统设计

目录1.前言 (2)2.设计目的 (2)3.功能描述 (2)4.总体设计 (3)1、功能模块设计 (3)2、数据结构设计 (4)3、函数功能描述 (5)5.程序实现 (7)1、源程序(略) (7)2、运行结果 (7)6.小结 (10)1.前言在计算机技术和互联网飞速发展的今天,计算机成为了现代生活中一个重要的工具。

学生信息管理系统利用计算机对学生信息进行统一管理,为学校老师的工作提供便利。

本程序是利用结构数组实现此学生信息管理系统。

2.设计目的利用本课程设计的目的是要培养学生初步具有系统分析思想,并能利用开发工具开发一个简单实用的综合程序。

为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力。

3.功能描述如图1所示,学生信息管理系统主要利用数组来实现,其数组元素是结构体类型,整个系统由如下几大功能模块组成。

图1 学生信息管理系统功能模块(1)输入记录模块。

输入记录模块主要完成将数据存入数组中的工作。

在此学生信息管理系统中,记录可以从以文本形式存储的数据文件中读入,也可从键盘逐个输入记录。

当从数据文件中读入记录时,它就是在以记录为单位存储的数据文件中,将记录逐条复制到结构体类型的数组元素中。

(2)查询记录模块。

查询记录模块主要完成在数组中查找满足相关条件的记录。

在此学生信息簿管理系统中,用户可以按照学生姓名或学生学号在数组中进行查找。

若找到该记录,则显示出此记录的信息;否则,显示出未找到该记录的提示信息。

(3)更新记录模块。

更新记录模块主要完成对记录的维护。

在此电话簿管理系统中,它实现对记录的修改、删除操作。

一般而言,系统进行了这些操作之后,需要将修改的数据存入源数据文件。

(4)输出记录模块。

输出记录模块主要完成两个任务。

第一,它实现对记录的存盘操作,即将数组中各元素中存储的记录信息写入数据文件中。

用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语言版源代码

学生信息管理系统c语言版源代码#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #define N 1000typedef struct student {int number;char name[20];int grade;int gaoshu;int yingyu;int jisuanji;int sum;}STUDENT;STUDENT student[N]; int shuliang=0;void menu();void fhzjm(){char biaozhi[20];printf("\n");printf("还需要操作么,如果需要操作请输入:yes,否则请输入:no\n");scanf("%s",biaozhi);if(strcmp(biaozhi,"yes")==0){menu();}else if(strcmp(biaozhi,"no")==0)exit(0);else{printf("请输入正确的字符,谢谢~\n"); fhzjm();}}void DengJi(){int rs;int i,k=1;system("CLS");printf("请输入需要输入几个学生信息:"); scanf("%d",&rs);for(i=shuliang;i<shuliang+rs;i++,k++) {printf("请输入第%d个学生的学号:",k); scanf("%d",&student[i].number);printf("请输入学生的姓名:");scanf("%s",student[i].name);printf("请输入学生3门课的成绩:"); printf("请输入第1门课的成绩:");scanf("%d",&student[i].gaoshu);printf("请输入第2门课的成绩:");scanf("%d",&student[i].yingyu);printf("请输入第3门课的成绩:");scanf("%d",&student[i].jisuanji);}shuliang=shuliang+rs;fhzjm();}void ShanChu(){char shanchuinfo[10];system("CLS");printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0){int j;printf("你删除的学生信息如下:\n");printf("-----------学号-------------姓名-------------高数--------------英语--------------计算机\t\n");for(j=0;j<shuliang;j++)printf("----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji);shuliang=0;printf("删除成功\n\n");}else if(strcmp(shanchuinfo,"one")==0){struct student *p=NULL;int choice;int i,j,k=0;printf("请输入你要删除的人的学号:");scanf("%d",&choice);for(i=0;i<shuliang;i++){if(choice==student[i].number){k=1;j=i;break;}}if(k){if(shuliang==1){p=&student[0];free(p);shuliang=0;}else{for(i=j;i<shuliang;i++) {student[i]=student[i+1];}shuliang=shuliang-1;}printf("删除成功\n\n");}else{printf("输入数据错误~\n"); }}fhzjm();}void LiuLan(){int i;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");}else{for(i=0;i<shuliang;i++){printf("第%d个学生的学号为:%d\n",i+1,student[i].number);printf("第%d个学生的姓名为:%s\n",i+1,student[i].name);printf("第%d个学生的第一门课的成绩为:%d\n",i+1,student[i].gaoshu);printf("第%d个学生的第二门课的成绩为:%d\n",i+1,student[i].yingyu);printf("第%d个学生的第三门课的成绩为:%d\n",i+1,student[i].jisuanji);student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum);}}fhzjm();}void ChaZhao(){int xx;char choice,yy[20];int i,j,k=0;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");fhzjm();}printf("三种查找方式:学号,姓名,成绩\n");printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");printf("请输入您查找的方式:");scanf("%s",&choice);if(choice=='1'){printf("请输入需要查找学生的学号:");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].number){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='2'){printf("请输入需要查找学生的姓名:\n");scanf("%s",yy);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(strcmp(yy,student[i].name)==0){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='3'){printf("请输入需要查找学生的成绩:\n");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数----英语----计算机----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].grade){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}fhzjm();}void PaiXu(){struct student *p1[N],**p2,*temp;int i,j;system("CLS");p2=p1;for( i=0;i<shuliang;i++){p1[i]=student+i;}for( i=0;i<shuliang;i++){for( j=i+1;j<shuliang;j++){if((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;} }}printf("按照总成绩排序之后的信息为:\n");printf("----学号----姓名----总成绩----\t\n");for( i=0;i<shuliang;i++){student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum);}fhzjm();}void CunChu(){int i;FILE *rs;if((rs=fopen("student.txt","w"))==NULL){printf("not open");exit(0);}for(i=0;i<shuliang;i++){fwrite(&student[i], sizeof(student[i]), 1, rs); }if(ferror(rs)){fclose(rs);perror("写文件失败~\n");return;}printf("存储文件成功~\n");fclose(rs);fhzjm();}void DaoChu(){struct student t;int i=0;FILE* fp = fopen("student.txt", "r");shuliang=0;if(NULL==fp){perror("读取文件打开失败~\n");return;}memset(student,0x0,sizeof(student));while(1){fread(&t,sizeof(t),1,fp);if(ferror(fp)){fclose(fp);perror("读文件过程失败~\n");return;}if(feof(fp)){break;}student[i]=t;i++;}fclose(fp);shuliang=i; printf("导出文件成功~\n"); fhzjm();}void menu(){int n=0;system("CLS");printf(" 学生信息管理系统\n");printf(" 作者:陈椿\n");printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n");printf(" 2.删除学生信息\n");printf(" 3.浏览所有已经登记的学生\n");printf(" 4.查找\n");printf(" 4.1按学号查找\n");printf(" 4.2按姓名查找\n");printf(" 4.3按成绩查找\n");printf(" 5.根据总成绩排序\n");printf(" 6.存储到文件\n");printf(" 7.从文件导出\n");printf(" 8.退出系统\n");a: printf(" 请选择:");scanf("%d",&n);switch (n){case 1:DengJi();break;case 2:ShanChu();break;case 3:LiuLan();break;case 4:ChaZhao();break;case 5:PaiXu();break;case 6:CunChu();break;case 7:DaoChu();break;case 8:exit(0);break;default:{printf("请输入1-8之间的数字,谢谢~\n"); goto a;}}}main() {menu();}。

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

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

c语言课程设计学生信息管理系统一、教学目标本课程旨在通过学习C语言,使学生掌握学生信息管理系统的基本概念、设计方法和实现技巧。

具体目标如下:1.知识目标:学生应掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。

学生应了解学生信息管理系统的需求分析、系统设计、编码实现、测试等基本过程。

2.技能目标:学生能够运用C语言编写简单的程序,解决实际问题。

学生能够独立完成学生信息管理系统的设计和实现。

3.情感态度价值观目标:学生应培养对计算机科学的兴趣和热情,形成良好的学习习惯和团队合作精神。

学生应理解编程不仅仅是一种技能,更是一种思考问题和解决问题的方式。

二、教学内容本课程的教学内容主要包括C语言的基本语法和编程方法,以及学生信息管理系统的设计和实现。

具体安排如下:1.C语言基本语法:数据类型、运算符、控制结构、函数等。

2.学生信息管理系统需求分析:系统功能、数据结构、界面设计等。

3.学生信息管理系统设计:模块划分、算法实现、接口设计等。

4.学生信息管理系统实现:编码、调试、测试等。

三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解C语言的基本语法和概念,学生信息管理系统的需求分析和设计方法。

2.案例分析法:分析实际案例,引导学生运用C语言解决实际问题。

3.实验法:学生动手编写代码,实现学生信息管理系统。

4.讨论法:分组讨论,促进学生之间的交流与合作。

四、教学资源本课程所需教学资源包括:1.教材:《C语言程序设计》等相关教材。

2.参考书:提供给学生额外的学习资料,以加深对C语言和编程的理解。

3.多媒体资料:PPT、视频教程等,用于辅助讲解和演示。

4.实验设备:计算机、编程环境等,用于学生动手实践。

五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。

2.作业:布置适量的作业,评估学生的编程能力和对知识的理解程度。

c语言程序设计大作业学生信息管理系统

c语言程序设计大作业学生信息管理系统

一、概述随着信息技术的不断发展和应用,计算机程序设计作为重要的基础课程,对学生的综合能力有着重要的培养作用。

在C语言程序设计课程中,大作业是检验学生对知识的掌握和应用能力的重要环节。

学生信息管理系统作为一种常见的大作业题目,涉及到了文件操作、结构体、指针等多个知识点,对学生的理论知识掌握和实战能力都有一定的考验。

二、需求分析学生信息管理系统是一个管理学生基本信息的软件,具有录入、查找、删除、修改等功能。

在设计学生信息管理系统的时候,首先要明确系统的功能需求,并且考虑到系统的扩展性和健壮性。

1. 学生基本信息包括学号、尊称、性别、芳龄、专业等内容,系统应具备录入学生信息的功能,并且能够将信息保存在文件中,方便下次使用。

2. 用户可以通过查找功能根据学号或尊称查询学生信息,系统需要具备高效的查找算法。

3. 可以对学生信息进行删除和修改操作,需要保证操作的准确性和安全性。

4. 系统需要具备良好的用户界面,方便用户的操作和管理。

三、系统设计在进行学生信息管理系统的设计时,需要考虑到系统的模块化和扩展性,将整个系统划分为多个模块,进行单独设计和测试。

1. 学生信息录入模块:负责接收用户输入的学生信息,并将信息写入文件中。

2. 学生信息查找模块:通过学号或尊称进行查找操作,需要设计高效的查找算法。

3. 学生信息删除模块:实现对学生信息的删除功能。

4. 学生信息修改模块:实现对学生信息的修改功能。

5. 用户界面设计:设计友好的用户界面,方便用户的操作和管理。

四、系统实现在进行系统实现时,需要根据设计的模块进行逐一实现和测试,保证系统的稳定性和功能完整性。

1. 学生信息录入模块实现:接收用户输入的学生信息,并将信息写入文件。

2. 学生信息查找模块实现:设计高效的查找算法,并实现根据学号或尊称进行查找操作。

3. 学生信息删除模块实现:实现对学生信息的删除功能,并确保操作的准确性和安全性。

4. 学生信息修改模块实现:实现对学生信息的修改功能,保证信息的一致性。

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

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

用C语言编写学生信息管理系统Design Purpose:Design Content:1. Problem n:Design a student n management system that includes student n such as student ID, name, age, gender, date of birth, address, phone number, and email.2. nal Requirements:1. The system works in menu mode.2. Student n entry n (student n is saved in a file) - input.3. Student n browsing n - output.4. Student n query n - algorithm according to student ID query and name query.Detailed Design:1. Menu: void menu() {}2. Establish n: void readfile() {}3. Search: void seek() {}4. Modify n: void modify() {}5. Insert n: void insert() {}6. Delete n:void del(){}7. Browse n:void display(){}8. Save:void save(){Debugging and Testing:1. System nal menu.2. Select the menu "", enter the system help and ns n.3. Select menu "4" to add student n. (1) Input the number of people to be added. (2) Enter the student ID, name, age, gender, date of birth, address, phone number, and email in order. After input, the menu pops up.#include#include#include#define BUFLEN 100 #define LEN 15struct record{char code[LEN+1]; char name[LEN+1]; int age;char sex[3];char time[LEN+1];char add[30];char tel[LEN+1];char mail[30];void readfile();void seek();void modify();void modify() {int i, item, num;char sex1[3], s1[LEN+1], s2[LEN+1];printf("请输入要修改的学生的学号:\n"); scanf("%s", s1);for (i = 0; i < n; i++) {if (strcmp(stu[i].code, s1) == 0) {num = i;}}printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年龄\n");printf("3.修改性别\n");printf("4.修改出生年月\n");printf("5.修改地址\n");printf("6.修改电话号码\n");printf("7.修改E-mail地址\n");printf("8.退出本菜单\n");printf("------------------\n");while (1) {printf("请选择子菜单编号:");scanf("%d", &item);switch (item) {case 1:printf("请输入新的姓名:\n"); scanf("%s", s2);strcpy(stu[num].name, s2);break;case 2:printf("请输入新的年龄:\n");scanf("%d", &stu[num].age);break;case 3:printf("请输入新的性别:\n");scanf("%s", sex1);strcpy(stu[num].sex, sex1);break;case 4:printf("请输入新的出生年月:\n"); scanf("%s", s2);strcpy(stu[num].time, s2);break;case 5:printf("请输入新的地址:\n");scanf("%s", s2);strcpy(stu[num].add, s2);break;case 6:printf("请输入新的电话号码:\n");scanf("%s", s2);strcpy(stu[num].phone, s2);break;case 7:printf("请输入新的E-mail地址:\n");scanf("%s", s2);strcpy(stu[num].email, s2);break;case 8:return;default:printf("输入有误,请重新选择子菜单编号\n"); break;}}void input(){int i;char s[10];printf("请输入学生人数:\n"); scanf("%d",&n);for(i=0;i<n;i++){printf("请输入学号:\n");scanf("%s",stu[i].code);printf("请输入姓名:\n");scanf("%s",stu[i].name);printf("请输入性别:\n");scanf("%s",stu[i].sex);printf("请输入年龄:\n");scanf("%d",&stu[i].age);printf("请输入出生日期:\n"); scanf("%s",stu[i].time);printf("请输入家庭住址:\n"); scanf("%s",stu[i].add);printf("请输入电话号码:\n");scanf("%s",stu[i].tel);printf("请输入E-mail地址:\n");scanf("%s",stu[i].mail);}void modify(){int num,choice;char s2[10];printf("请输入要修改信息的学生的学号:\n");scanf("%s",s2);for(num=0;num<n;num++){if(strcmp(stu[num].code,s2)==0){printf("请选择要修改的信息:\n");printf("1.学号 2.姓名 3.性别 4.年龄 5.出生日期\n");printf("6.家庭住址 7.电话号码 8.E-mail地址 9.退出\n");scanf("%d",&choice);switch(choice){case 1:printf("请输入新的学号:\n"); scanf("%s",s2);strcpy(stu[num].code,s2);break;case 2:printf("请输入新的姓名:\n"); scanf("%s",s2);strcpy(stu[num].name,s2);break;case 3:printf("请输入新的性别:\n"); scanf("%s",s2);strcpy(stu[num].sex,s2);break;case 4:printf("请输入新的年龄:\n");scanf("%d",&stu[num].age);break;case 5:printf("请输入新的出生日期:\n"); scanf("%s",s2);strcpy(stu[num].time,s2);break;case 6:printf("请输入新的家庭住址:\n"); scanf("%s",s2);strcpy(stu[num].add,s2);break;case 7:printf("请输入新的电话号码:\n"); scanf("%s",s2);strcpy(stu[num].tel,s2);break;case 8:printf("请输入新的E-mail地址:\n"); scanf("%s",s2);strcpy(stu[num].mail,s2);break;case 9:return;default:printf("请在1-8之间选择\n"); }}}void sort(){int i,j,*p,*q,s;char temp[10];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--){if(strcmp(stu[j-1].code,stu[j].code)>0){strcpy(temp,stu[j-1].code);strcpy(stu[j-1].code,stu[j].code); strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name); strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].time,stu[j].time); strcpy(stu[j].time,temp);strcpy(temp,stu[j-1].add);strcpy(stu[j-1].add,stu[j].add);strcpy(stu[j].add,temp);strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel);strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].mail);strcpy(stu[j-1].mail,stu[j].mail);strcpy(stu[j].mail,temp);p=&stu[j-1].age;q=&stu[j].age;s=*q;*q=*p;*p=s;}}}}void insert() {int i = n, j, flag;printf("请输入待增加的学生数:\n");scanf("%d", &m);do {flag = 1;while (flag) {flag = 0;printf("请输入第%d个学生的学号:\n", i + 1);scanf("%s", stu[i].code);for (j = 0; j < i; j++) {if (strcmp(stu[i].code, stu[j].code) == 0) {printf("已有该学号,请检查后重新录入!\n");flag = 1;break;}}}printf("请输入第%d个学生的姓名:\n", i + 1);scanf("%s", stu[i].name);printf("请输入第%d个学生的年龄:\n", i + 1);scanf("%d", &stu[i].age);printf("请输入第%d个学生的性别:\n", i + 1);scanf("%s", stu[i].sex);printf("请输入第%d个学生的出生年月:(格式:年.月)\n", i + 1);scanf("%s", stu[i].time);printf("请输入第%d个学生的地址:\n", i + 1);scanf("%s", stu[i].add);printf("请输入第%d个学生的电话:\n", i + 1); scanf("%s", stu[i].tel);printf("请输入第%d个学生的E-mail:\n", i + 1); scanf("%s", stu[i].mail);if (flag == 0) {i++;}} while (i < n + m);n += m;printf("录入完毕!\n\n");sort();void del() {int i, j, flag = 0;char s1[LEN + 1];printf("请输入要删除学生的学号:\n");scanf("%s", s1);for (i = 0; i < n; i++) {if (strcmp(stu[i].code, s1) == 0) {flag = 1;for (j = i; j < n - 1; j++) {stu[j] = stu[j + 1];}n--;printf("删除成功!\n\n"); break;}}if (flag == 0) {printf("未找到该学号!\n\n"); }。

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

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

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

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

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

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

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

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

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

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

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

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

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

设计一个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语言学生信息管理系统(完整版)

#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语言课程设计学生信息管理系统.一、教学目标本课程的教学目标是使学生掌握C语言编程的基本方法,能够运用C语言设计学生信息管理系统。

通过本课程的学习,学生将能够理解C语言的基本语法、数据类型、运算符、控制结构等知识,掌握函数、数组、指针等高级概念,并能够运用这些知识设计、编写和调试C语言程序。

此外,学生还将通过课程学习,培养编程思维、解决问题的能力和团队合作精神。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等知识。

在学习过程中,我们将以教材为基础,结合实际案例,引导学生掌握C语言编程的基本方法。

具体内容包括:1.C语言的基本语法和规则;2.数据类型、变量和常量;3.运算符和表达式;4.控制结构:条件语句、循环语句;5.函数的定义和调用;6.数组和指针的应用;7.学生信息管理系统的需求分析和设计。

三、教学方法为了提高学生的学习兴趣和主动性,我们将采用多种教学方法进行教学。

具体包括:1.讲授法:讲解C语言的基本语法、数据类型、运算符、控制结构等知识,为学生提供清晰的学习思路;2.案例分析法:通过分析实际案例,让学生了解和掌握C语言编程的方法和技巧;3.实验法:安排实验室实践环节,让学生动手编写C语言程序,提高编程能力;4.讨论法:学生进行分组讨论,培养团队合作精神和解决问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供系统、全面的学习资料;2.参考书:提供相关的C语言编程参考书籍,丰富学生的知识储备;3.多媒体资料:制作课件、教学视频等多媒体资料,提高课堂教学效果;4.实验设备:保障实验室硬件设施齐全,为学生提供良好的编程实践环境。

五、教学评估本课程的教学评估将采取多元化、全过程的方式进行,以全面、客观、公正地评估学生的学习成果。

评估方式包括:1.平时表现:通过课堂参与、提问、回答问题等方式,评估学生的学习态度和课堂表现;2.作业:布置适量的作业,评估学生的知识掌握和编程能力;3.实验报告:评估学生在实验室实践环节的表现和实验报告的质量;4.考试成绩:通过期末考试,评估学生的综合编程能力和知识掌握情况。

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

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

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

该系统模拟一个简单的学生管理系统,要求对文件中所存储的学生数据进行各种常规操作,如:排序、查找、计算、显示等功能。

通过此课题,熟练掌握文件、数组、结构体的各种操作,在程序设计中体现一定的算法思想,实现一个简单的学生信息管理系统。

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

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

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

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

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

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

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

一、设计目的通过对高级语言程序设计课程设计的学习,来验证自身的学习效果,同时希望利用所学的基本知识和技能,进行简单的C语言程序设计;希望通过项目实践,熟悉巩固所学知识,以使自己熟练掌握高级语言程序设计,为日后学习计算机科学技术的专业知识能有进一步深入了解,奠定基础;二、设计内容1、问题描述:设计一个学生信息管理系统设计;学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等;2、功能要求:1、系统以菜单方式工作2、学生信息录入功能学生信息用文件保存--输入3、学生信息浏览功能--输出4、学生信息查询功能--算法按学号查询按姓名查询5、学生信息的删除与修改可选项三、详细设计1、菜单:void menu{}2、建立信息:void readfile{}3、查找:void seek{}4、修改信息:void modify{}5、插入函数:void insert{}6、删除信息:void del{}7、浏览信息:void display{}8、保存:void save{}四、调试与测试1、系统功能菜单2、选择菜单“0”,进入系统帮助及说明功能3、选择菜单“4”,添加学生信息1输入增加人数2依次输入学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 3录入完毕,弹出菜单4、选择菜单“3”,修改学生信息:输入被修改者学号1选择子菜单“1",修改姓名2选择子菜单“2”,修改年龄3选择子菜单“3”,修改性别4选择子菜单“4”,修改出生年月5选择子菜单“5”,修改地址6选择子菜单“6”,修改电话7选择子菜单“7”,修改E-mail5、选择菜单“2”,查询学生信息1选择子菜单“1”,按学号查询2选择子菜单“2”,按姓名查询3选择子菜单“3”,退出子菜单,弹出主菜单6、选择菜单“6”,显示当前信息7、选择菜单“5”,按学号删除信息1输入要删除的学生学号2再次输入“6”,确认是否删除该学生信息五、源程序清单源程序代码如下include<>include<>include<>define BUFLEN 100define LEN 15define N 100struct record{char codeLEN+1;char nameLEN+1;int age;char sex3;char timeLEN+1;char add30;char telLEN+1;char mail30;}stuN;int k=1,n,m;void readfile;void seek;void modify;void insert;void del;void display;void save;void menu;int main{whilekmenu;system"pause";return 0;}void help{printf"\n0.欢迎使用系统帮助\n";printf"\n1.进入系统后,先刷新学生信息,再查询;\n";printf"\n2.按照菜单提示键入数字代号;\n";printf"\n3.增加学生信息后,切记保存按;\n";printf"\n4.谢谢您的使用\n";}void readfile{char p="";FILE fp;int i=0;if fp=fopen"","r"==NULL{printf"Open file %s error Strike any key to exit",p; system"pause";exit0;}whilefscanffp,"%s %s%d%s %s %s %s %s",stui.code,,&stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail==8{i++;i=i;}fclosefp;n=i;printf"录入完毕\n";}void seek{int i,item,flag;char s121;printf"------------------\n";printf"-----1.按学号查询-----\n";printf"-----2.按姓名查询-----\n";printf"-----3.退出本菜单-----\n";printf"------------------\n";while1{printf"请选择子菜单编号:";scanf"%d",&item;flag=0;switchitem{case 1:printf"请输入要查询的学生的学号:\n";scanf"%s",s1;fori=0;i<n;i++ifstrcmpstui.code,s1==0{flag=1;printf"学生学号学生姓名年龄性别出生年月地址电话E-mail\n";printf"--------------------------------------------------------------------\n";printf"%6s %7s %6d %5s %9s %8s %10s %14s\n",stui.code,,stui .age,stui.sex,stui.time,stui.add,stui.tel,stui.mail;}ifflag==0printf"该学号不存在\n"; break;case 2:printf"请输入要查询的学生的姓名:\n";scanf"%s",s1;fori=0;i<n;i++,s1==0{flag=1;printf"学生学号学生姓名年龄性别出生年月地址电话E-mail\n";printf"--------------------------------------------------------------------\n";printf"%6s %7s %6d %5s %9s %8s %10s %14s\n",stui.code,,stui .age,stui.sex,stui.time,stui.add,stui.tel,stui.mail;}ifflag==0printf"该姓名不存在\n"; break;case 3:return;default:printf"请在-3之间选择\n";}}}void modify{int i,item,num;char sex13,s1LEN+1,s2LEN+1;printf"请输入要要修改的学生的学号:\n";scanf"%s",s1;fori=0;i<n;i++ifstrcmpstui.code,s1==0num=i;printf"------------------\n";printf"1.修改姓名\n";printf"2.修改年龄\n";printf"3.修改性别\n";printf"4.修改出生年月\n";printf"5.修改地址\n";printf"6.修改电话号码\n";printf"7.修改E-mail地址\n";printf"8.退出本菜单\n";printf"------------------\n";while1{printf"请选择子菜单编号:";scanf"%d",&item;switchitem{case 1:printf"请输入新的姓名:\n";scanf"%s",s2;,s2; break;case 2:printf"请输入新的年龄:\n"; scanf"%d",&stunum.age;break;case 3:printf"请输入新的性别:\n"; scanf"%s",sex1;strcpystunum.sex,sex1; break; case 4:printf"请输入新的出生年月:\n"; scanf"%s",s2;strcpystunum.time,s2; break;case 5:printf"请输入新的地址:\n"; scanf"%s",s2;strcpystunum.add,s2; break;case 6:printf"请输入新的电话号码:\n"; scanf"%s",s2;strcpystunum.tel,s2; break;case 7:printf"请输入新的E-mail地址:\n"; scanf"%s",s2;strcpystunum.mail,s2; break;case 8:return;default:printf"请在-8之间选择\n"; }}}void sort{int i,j,p,q,s;char temp10;fori=0;i<n-1;i++{forj=n-1;j>i;j--ifstrcmpstuj-1.code,stuj.code>0{strcpytemp,stuj-1.code;strcpystuj-1.code,stuj.code; strcpystuj.code,temp; strcpytemp,;,; ,temp; strcpytemp,stuj-1.sex;strcpystuj-1.sex,stuj.sex; strcpystuj.sex,temp;strcpytemp,stuj-1.time;strcpystuj-1.time,stuj.time;strcpystuj.time,temp;strcpytemp,stuj-1.add;strcpystuj-1.add,stuj.add;strcpystuj.add,temp;strcpytemp,stuj-1.tel;strcpystuj-1.tel,stuj.tel;strcpystuj.tel,temp;strcpytemp,stuj-1.mail;strcpystuj-1.mail,stuj.mail;strcpystuj.mail,temp;p=&stuj-1.age;q=&stuj.age;s=q;q=p;p=s;}}}void insert{int i=n,j,flag;printf"请输入待增加的学生数:\n";scanf"%d",&m;do{flag=1;whileflag{flag=0;printf"请输入第%d 个学生的学号:\n",i+1;scanf"%s",stui.code;forj=0;j<i;j++ifstrcmpstui.code,stuj.code==0{printf"已有该学号,请检查后重新录入\n";flag=1;break;}}printf"请输入第%d 个学生的姓名:\n",i+1;scanf"%s",;printf"请输入第%d 个学生的年龄:\n",i+1;scanf"%d",&stui.age;printf"请输入第%d 个学生的性别:\n",i+1;scanf"%s",stui.sex;printf"请输入第%d 个学生的出生年月:格式:年.月\n",i+1; scanf"%s",stui.time;printf"请输入第%d 个学生的地址:\n",i+1;scanf"%s",stui.add;printf"请输入第%d 个学生的电话:\n",i+1;scanf"%s",stui.tel;printf"请输入第%d 个学生的E-mail:\n",i+1;scanf"%s",stui.mail;ifflag==0{i=i;i++;}}whilei<n+m;n+=m;printf"录入完毕\n\n";sort;}void del{int i,j,flag=0;char s1LEN+1;printf"请输入要删除学生的学号:\n";scanf"%s",s1;fori=0;i<n;i++ifstrcmpstui.code,s1==0{flag=1;forj=i;j<n-1;j++stuj=stuj+1;}ifflag==0printf"该学号不存在\n";ifflag==1{printf"删除成功,显示结果请选择菜单\n";n--;}}void display{int i;printf"所有学生的信息为:\n";printf"学生学号学生姓名年龄性别出生年月地址电话E-mail\n";printf"--------------------------------------------------------------------\n";fori=0;i<n;i++{printf"%6s %7s %5d %5s %9s %8s %10s %14s\n",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail;}}void save{int i;FILE fp;fp=fopen"","w";fori=0;i<n;i++{fprintffp,"%s %s %d %s %s %s %s %s\n",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail;}fclosefp;}void menu{int num;printf" \n\n 学生信息管理系统 \n\n";printf"系统功能菜单 \n";printf"友情提示:查询前请先刷新系统\n";printf" ---------------------- ---------------------- \n";printf" \n";printf" 0.系统帮助及说明 1.刷新学生信息 \n";printf" \n";printf" 2.查询学生信息 3.修改学生信息 \n";printf" \n";printf" 4.增加学生信息 5.按学号删除信息 \n";printf" \n";printf" 6.显示当前信息 7.保存当前学生信息 \n";printf" \n";printf" 8.退出系统 \n";printf" \n";printf" ---------------------- ---------------------- \n";printf"请选择菜单编号:";scanf"%d",&num;switchnum{case 0:help;break;case 1:readfile;break;case 2:seek;break;case 3:modify;break;case 4:insert;break;case 5:del;break;case 6:display;break;case 7:save;break;case 8:k=0;break;default:printf"请在-8之间选择\n"; }}。

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

C语言课程设计姓名:徐宗博学号:************班级:061092指导教师:曹老师2011 年 6 月25 日目录第一章:实习内容1.1实习内容简介 (2)1.2程序代号说明 (3)第二章:程序流程图第三章:函数模块介绍3.1读取文件、存储文件 (6)3.2 管理系统模块 (8)3.3 恢复区系统模块 (12)3.4 功能展示 (12)第四章:实习总结 (16)第五章:实习体会 (17)附录:参考文献 (19)源代码 (19)第一章:实习内容1.1实习内容简介题目:学生通讯录管理系统要求:1.可实现信息的添加、删除,可按学号、姓名查询;2.学生信息必须包含学号、姓名、学院、专业、籍贯。

地址、电话号码;3.必须有注释。

日期:2011年6月20日至27日,共8个半天。

地点:信息楼301指导老师:曹雪莲完成情况:1.程序可完成信息的添加,可按学号、姓名分别查询;2.程序可按姓名、学号分别删除,并在删除前显示删除学生的全部信息;按姓名删除,若出现同名情况,会依次出现系统提示是否删除,可选择删除或跳过;3.在程序文件夹中有一“学生信息库”的txt文件,可查看学生系统里全部学生信息;4.设置有一个恢复区系统,可输出、查询删除的信息,并在可同文件夹中“删除信息库”的txt文件中查看删除信息;总体结构如下:1.2程序代号说明此外,局部变量的含义比较固定:第二章:程序流程图程序流程图:本次实习我的思路就是,先从二进制文件中读取信息,形成链表,对链表进行基本操作,如输出、添加、删除、查找。

程序结束时将链表保存在二进制文件和文本文件中。

管理系统流程图:运行管理系统部分时,先从文件“information.xls”中读取数据(若无该文件则创建文件),构建链表;后续操作都是对于链表进行操作,如添加、查找、删除、输出等;离开该部分时则保存链表里的信息到已存在的“information.xls”,并以ASCII形式存储至“学生信息库.txt”,方便检查。

恢复区系统流程图:恢复区系统思路与管理系统思路类似,连函数调用都是一样的,二进制文件名为“dinformation.xls”,文本文件名为“删除信息库.txt”。

具体函数模块功能将在第三章中具体介绍。

第三章:函数模块介绍程序分为管理系统和恢复区系统两部分和读取文件、存储文件四部分,以下分别介绍。

3.1读取文件、存储文件读取文件该函数模块(程序名为creat)于管理系统或恢复区系统运行前运行,目的是读取二进制文件信息,构建链表;若无目标文件,则创建文件。

返回值为头指针。

函数主体为:struct stu *p1,*p2;struct stu *head;while(fread(&(p1->inf),LEN,1,fp))//读取数据{n=n+1;//若读取数据成功节点数加一if(n==1) head=p1;//给头结点赋值else p2->next=p1;//加新的结构体p2=p1;p1=(struct stu *)malloc(LENS);}fclose(fp);p2->next=NULL;//尾结点处指针置0return(head);存储文件该函数模块分为两部分,以二进制形式存储链表信息(程序名为save)和以文本形式存储(程序名为txtsave)。

二进制形式文件是为了读取文件,优点是快速;文本文件是为了方便检查,优点是明确可见。

无返回值。

二进制形式存储程序为:void save(struct stu *head,char filename[20])//存储链表信息{FILE *fp;struct stu *p;p=head;fp=fopen(filename,"wb");//以二进制方式打开文件while((p!=NULL)&&fwrite(&(p->inf),LEN,1,fp))//写入文件{p=p->next;}fclose(fp);}//其中head为链表头指针,filename为存储文件名,在主函数中已有定义。

存储在文本文件程序为:void txtsave(struct stu *head,char filename[20])//以文本形式将链表输入文件FILE *fp;struct stu *p;p=head;fp=fopen(filename,"w");//以文本形式打开while(p!=NULL)//链表不到尽头不停止{fprintf(fp,"%ld",(p->inf).num);//向文本文件中写入数据fprintf(fp,"%10s",(p->inf).name);fprintf(fp,"%10s",(p->inf).academy);fprintf(fp,"%10s",(p->inf).majoy);fprintf(fp,"%10s",(p->inf).province);fprintf(fp,"%10s",(p->inf).address);fprintf(fp,"%20s\n",(p->inf).phone);p=p->next;}}3.2管理系统模块管理系统(名为system)主要有四个函数功能部分,分别为添加、删除、查找、输出,以下依次介绍:添加该模块函数名为add,无返回值,参数为链表头指针,功能为向已建立的链表中从键盘上输入信息。

函数主体为:struct stu *p1,*p2;//建立结构体指针p2=head;p1=(struct stu *)malloc(LENS);//输入信息printf("\n学号(输入数值请小于32756):");scanf("%d",&((p1->inf).num));printf("\n姓名:");scanf("%s",(p1->inf).name);printf("\n学院:");scanf("%s",(p1->inf).academy);printf("\n专业:");scanf("%s",(p1->inf).majoy);printf("\n省份:");scanf("%s",(p1->inf).province);printf("\n地址:");scanf("%s",(p1->inf).address);printf("\n电话号码:");scanf("%s",(p1->inf).phone);while((p2->next)!=NULL)//移动指针到链表尾{p2=p2->next;}p2->next=p1; //移动指针p2=p1;p2->next=NULL;删除函数名为delet,返回值为指向结构体的链表头指针,参数为链表头指针,可按姓名和学号删除。

若按姓名删除时,为防止同名情况,则查询到一个目标,就显示出信息,并提示是否删除。

1.按学号查找的函数主体为:printf("请输入拟删除学生学号:\n");long snum=0;scanf("%ld",&snum);struct stu *p1,*p2;p1=head;while(snum!=p1->inf.num&&p1->next!=NULL)//p1指向的学号不是要找的节点,并且后面还有节点{ p2=p1;p1=p1->next;}//p1后移if(snum==p1->inf.num)//找到目标{print1(p1);deletinput(p1);//print1()为输出相应指针指向的节点信息deletinput()为向恢复区系统链表输入信息的函数,在后续3.3中会提及if(p1==head) head=p1->next;//若p1指向头节点,将第二个节点位置赋予headelse p2->next=p1->next;//否则将下一结点位置赋给前一节点位置n--;}else printf("该学生不存在");return(head);2.按姓名查找(包含同名情况):int select=0,count=0;//selet选择删除与否,count代表删除次数char sname[20];//定义要搜的名字struct stu *p1,*p2;p1=head,p2=head;printf("请输入学生姓名:\n");scanf("%s",sname);//输入学号while(p1!=NULL)//历遍链表{if(strcmp(sname,p1->)==0) //与目标名字是否一致,相同为0{print1(p1);//若符合姓名条件,显示信息printf("删除该生信息?\n删除选1\n按其它键不删除\n");//保证达到目标姓名时显示学生信息,可选择不删除scanf("%d",&select);if(select!=1){p2=p1;p1=p1->next;continue;}//不删除就再次循环else{n--;deletinput(p1);count++;//删除数加一if(p1==head) head=p1->next;//删除信息else p2->next=p1->next;//更改指针,绕过目标}}p2=p1;p1=p1->next;}if(count==0) printf("该生信息不存在");//若未删除则视为未发现目标学生 return(head);查找函数名为search,参数为链表头指针,无返回值。

其中查找可按姓名与学号进行查找,若找到目标即出现在屏幕;若出现同名情况,则依次显示。

查找与删除函数语句类似,但是删除要求目标的前一个节点的指针与目标节点的指针都能知道;而查找要求则低多了。

因为这个原因,在加上我是先写的查找,所以删除中未调用查找函数。

按学号查找函数主体如下:long snum;//定义要查询学号变量printf("请输入学号:\n");scanf("%ld",&snum);//输入学号while(p!=NULL)//历遍链表{p=search_num(p,snum);//此为调用函数,效果是查找到与目标相同的信息然后返回相应指针if(p!=NULL) print1(p);//若查找到目标,输出else break;p=p->next;//传递指针,继续}按姓名查找函数主体如下:char sname[20];//定义要查询姓名的变量printf("请输入姓名:\n");scanf("%s",sname);//输入姓名while(p!=NULL){p=search_name(p,sname);//与上文中search_num类似,返回同名目标的指针if(p!=NULL) print1(p);//若查找到目标,输出else break;p=p->next;//传递指针}输出函数名为print,参数为链表头指针head,无返回值。

相关文档
最新文档