学生档案管理系统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 学生管理系统课程设计一、教学目标本课程旨在让学生掌握学生管理系统的基本概念、设计和实现方法。

通过本课程的学习,学生将能够:1.理解学生管理系统的功能和结构;2.掌握学生管理系统的数据库设计和表结构设计;3.学会使用至少一种编程语言实现学生管理系统的基本功能;4.了解学生管理系统的测试和调试方法。

二、教学内容本课程的教学内容主要包括以下几个部分:1.学生管理系统的功能和结构:介绍学生管理系统的各项功能,如学生信息管理、成绩管理、课程管理等,以及系统的整体架构;2.数据库设计和表结构设计:讲解如何设计学生管理系统的数据库模型,包括表结构的定义和相关约束;3.编程语言实现:选择一种编程语言(如Python、Java等),让学生通过编写代码实现学生管理系统的基本功能;4.测试和调试:介绍测试和调试学生管理系统的常用方法,确保系统的稳定性和可靠性。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:讲解学生管理系统的基本概念、原理和关键技术;2.案例分析法:分析实际案例,让学生了解学生管理系统的应用场景和设计思路;3.实验法:让学生动手编写代码,实现学生管理系统的基本功能;4.讨论法:学生进行小组讨论,分享学习心得和解决问题的方法。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:为学生提供学生管理系统相关的基本知识和理论;2.参考书:提供更多的学习资料,帮助学生深入理解学生管理系统的设计和实现;3.多媒体资料:通过视频、PPT等形式,生动展示学生管理系统的原理和应用;4.实验设备:提供必要的硬件设备,让学生进行编程实践。

五、教学评估本课程的教学评估将采用多元化评价方式,全面、客观地评价学生的学习成果。

评估方式包括:1.平时表现:考察学生在课堂上的参与程度、提问回答等情况,占总评的20%;2.作业:布置与课程内容相关的编程练习,检查学生的理解和掌握程度,占总评的30%;3.考试:期末进行闭卷考试,测试学生对课程知识的掌握和应用能力,占总评的50%。

档案管理c语言课程设计

档案管理c语言课程设计

档案管理c语言课程设计一、课程目标知识目标:1. 学生能够理解档案管理的基本概念,掌握C语言在文件操作中的应用。

2. 学生能够掌握文件打开、关闭、读写等基本操作,并能够运用C语言函数实现这些操作。

3. 学生能够理解文件存储结构,并能够运用C语言编写程序对文件进行排序和查找。

技能目标:1. 学生能够运用所学知识,独立设计并实现一个简单的档案管理系统。

2. 学生能够运用C语言编写程序,实现对文件的有效读取、存储和修改。

3. 学生能够运用调试工具,检测并修正程序中的错误,提高程序的正确性和稳定性。

情感态度价值观目标:1. 学生通过课程学习,培养对档案管理的兴趣,提高信息处理和管理的意识。

2. 学生能够认识到编程在解决实际问题中的应用价值,激发学习编程的热情。

3. 学生在团队协作中,学会沟通、分享和承担责任,培养合作精神。

课程性质分析:本课程为C语言课程设计,侧重于档案管理的实际应用。

课程以实践为主,理论联系实际,旨在提高学生的编程能力和解决实际问题的能力。

学生特点分析:学生在前期已经掌握了C语言的基本语法和编程技巧,具备一定的编程基础。

在此基础上,学生需要通过本课程,进一步学习文件操作相关知识,提高实际应用能力。

教学要求:1. 教师应注重理论与实践相结合,引导学生通过实际操作掌握档案管理的相关知识。

2. 教师应鼓励学生主动思考,培养学生的创新意识和解决问题的能力。

3. 教师应关注学生的学习进度,及时给予指导和反馈,提高学生的学习效果。

二、教学内容1. 文件操作基本概念:文件类型、文件指针、文件打开关闭等。

2. 文件的读写操作:fprintf、fscanf、fread、fwrite等函数的使用。

3. 文件存储结构:顺序存储、链式存储等结构在文件中的应用。

4. 文件排序与查找:冒泡排序、二分查找等算法在文件中的应用。

5. 档案管理系统设计:系统需求分析、模块划分、功能设计等。

6. 档案管理系统实现:使用C语言编写程序,实现用户登录、信息录入、查询、修改、删除等功能。

C语言程序设计--班级档案管理系统

C语言程序设计--班级档案管理系统

C语言程序设计--班级档案管理系统C课程名称 : C语言课程设计设计题目: 班级档案管理系统学生姓名:学号:专业班级:指导老师:数学与信息技术学院2011 年 11 月1日说明1、设计目的1.复习巩固C语言的基础知识,进一步加深对C语言编程的理解和掌握。

了解和掌握C语言面向对象程序设计的基本过程,熟习C语言的特点。

2.利用所学知识,理论和实际结合,利用资源,采用模块化的结构,学会把整体规划成一个个小程序,再把各个部分合成一个完整系统,内心牢记模块化。

使用模仿修改自主设计相结合的方法,锻炼自己综合分析解决实际问题的编程能力。

3. 加深对C语言课程所学知识的理解,进一步巩固C语言讲法规则。

学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。

在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。

进一步掌握各种函数的应用,以及文件的读写操作等。

4. 培养自己的耐心,遇到困难永不退缩。

培养我们在项目开发中team合作精神、创新意识以及实战能力。

22、设计题目设计题目:班级档案管理系统对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。

功能要求:(1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。

(2)本系统显示这样的菜单: 请选择系统功能项:a 学生基本信息录入b 学生基本信息显示c 学生基本信息保存d 学生基本信息删除e 学生基本信息修改(要求先输入密码) (1)修改某学生学号(2)修改某学生姓名(3)修改某学生性别(4)修改某学生年龄f 学生基本信息查询(1)按学号查询(2)按姓名查询3(3)按性别查询(4)按年龄查询g. 退出系统(3)执行一个具体的功能之后,程序将重新显示菜单。

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

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

学生管理系统课程设计c语言一、课程目标知识目标:1. 理解结构体在C语言中的概念及应用,掌握结构体在学生管理系统中的使用;2. 学会使用数组存储结构体数据,实现对多个学生信息的存储和管理;3. 掌握函数的定义和调用,能运用函数对学生信息进行增、删、改、查等操作;4. 理解文件操作的基本原理,学会使用文件对学生信息进行存储和读取。

技能目标:1. 能够运用结构体、数组、函数等知识编写简单的学生管理系统程序;2. 掌握基本的程序调试方法,能够独立解决程序中出现的错误;3. 学会使用编程工具(如Visual Studio、Code::Blocks等)进行C语言程序的编写、编译和运行;4. 能够根据实际需求,对程序进行优化和改进。

情感态度价值观目标:1. 培养学生对C语言的兴趣,激发学习热情,树立编程自信心;2. 培养学生的团队协作意识和沟通能力,使他们能够在小组合作中发挥积极作用;3. 培养学生的逻辑思维能力,提高分析问题和解决问题的能力;4. 培养学生的创新精神,鼓励他们勇于尝试,不断探索新的编程方法和技巧。

本课程针对高年级学生,结合学生已掌握的C语言知识,设计具有实用性和挑战性的学生管理系统项目。

课程以项目为导向,注重实践操作,旨在提高学生的编程能力和实际问题解决能力。

通过本课程的学习,使学生能够运用所学知识解决实际问题,为后续深入学习C语言打下坚实基础。

二、教学内容1. 结构体与结构体数组:- 结构体的定义和使用;- 结构体数组的创建和管理;- 结构体作为函数参数的传递。

2. 函数设计与实现:- 函数的定义、声明和调用;- 函数的参数传递:值传递与引用传递;- 学生管理系统功能模块的划分及对应函数的实现。

3. 文件操作:- 文件打开、关闭、读写操作;- 学生信息文件的存储和读取;- 文件错误处理。

4. 学生管理系统功能实现:- 学生信息的增加、删除、修改和查询;- 界面设计与交互;- 程序优化与调试。

学生档案管理系统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语言编程教学,使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生具备基本的编程能力,能够运用C语言解决实际问题。

同时,通过人事档案管理系统的设计与实现,使学生了解软件开发的基本流程,培养学生具备一定的软件开发能力和团队协作能力。

具体的教学目标如下:1.知识目标:(1)掌握C语言的基本语法和编程规范;(2)理解数据类型、运算符、控制结构、函数等基本概念;(3)了解软件开发的基本流程和项目管理方法。

2.技能目标:(1)能够使用C语言编写简单的程序;(2)具备一定的软件开发能力和团队协作能力;(3)能够运用C语言解决实际问题。

3.情感态度价值观目标:(1)培养学生的创新意识和解决问题的能力;(2)培养学生具备良好的团队合作精神和职业道德;(3)培养学生对软件工程的认知,提高其对软件行业的兴趣。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,以及人事档案管理系统的设计与实现。

1.C语言基本语法和编程规范;2.数据类型、运算符、控制结构、函数等基本概念;3.人事档案管理系统的设计与实现;4.软件开发的基本流程和项目管理方法。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:通过讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,使学生掌握基本概念;2.案例分析法:通过分析实际案例,使学生了解软件开发的基本流程和项目管理方法;3.实验法:通过编写程序、设计人事档案管理系统等实践操作,使学生巩固所学知识,提高实际编程能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料、实验设备等。

1.教材:选用国内知名出版社出版的C语言编程教材;2.参考书:提供相关的C语言编程参考书籍,以丰富学生的学习资源;3.多媒体资料:制作课件、视频等多媒体资料,提高学生的学习兴趣;4.实验设备:提供计算机实验室,让学生进行编程实践。

学生档案管理系统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语言课程设计学生学籍管理系统

c语言课程设计 学生学籍管理系统一、课程目标知识目标:1. 理解C语言在开发学生学籍管理系统中的应用,掌握基本的数据类型、语法和结构;2. 学习使用结构体、数组、文件操作等C语言特性实现学生信息的增、删、改、查功能;3. 了解系统设计的基本流程,掌握模块化编程思想。

技能目标:1. 能够运用所学知识,独立设计并编写一个简单的学生学籍管理系统;2. 培养良好的编程习惯,写出结构清晰、易于维护的代码;3. 提高问题分析能力,学会运用C语言解决实际问题。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习积极性;2. 培养学生的团队合作精神,提高沟通与协作能力;3. 增强学生的自信心,使其勇于面对挑战,积极解决问题。

分析课程性质、学生特点和教学要求:本课程为C语言课程设计,旨在让学生将所学知识应用于实际项目中,提高编程实践能力。

学生已具备一定的C语言基础,但独立完成项目的能力尚需培养。

因此,课程目标应注重培养学生的实践能力、团队合作精神和解决问题的能力。

将目标分解为具体的学习成果:1. 学生能够独立设计并实现学生学籍管理系统的核心功能;2. 学生能够编写结构清晰、易于维护的代码,并通过测试;3. 学生能够在团队中发挥积极作用,共同完成项目任务;4. 学生能够通过本课程的学习,提升自身编程能力和解决问题的能力。

二、教学内容1. 数据类型与变量:回顾基本数据类型、变量定义和初始化,强调其在系统设计中的应用。

教材章节:第二章 数据类型与表达式2. 控制结构:复习顺序结构、分支结构和循环结构,讲解其在程序流程控制中的应用。

教材章节:第三章 控制结构3. 函数:介绍函数的定义、调用和参数传递,强调模块化编程思想。

教材章节:第四章 函数4. 结构体与数组:讲解结构体的定义和使用,以及结构体数组的应用。

教材章节:第五章 结构体与联合5. 文件操作:介绍文件读写的基本方法,讲解如何将数据存储到文件中,以及如何从文件中读取数据。

班级档案管理系统c课程设计语言

班级档案管理系统c课程设计语言

班级档案管理系统c课程设计语言一、引言1.1 项目背景随着信息技术的不断发展,各行各业都逐渐向数字化、信息化方向转变。

教育领域也不例外,学校班级档案管理系统的建设已经成为了教育信息化建设的重要组成部分。

班级档案管理系统是指对各个班级的学生档案进行管理和维护,包括学生基本信息、家庭联系方式、考试成绩、奖惩记录等内容。

1.2 项目目标本项目旨在开发一个功能完备的班级档案管理系统,能够满足学校对班级档案管理的需求,同时提高教师和管理员工作效率。

二、需求分析2.1 功能需求分析(1)用户登录:用户通过输入账号和密码登录系统。

(2)学生档案管理:管理员可以添加、删除和修改学生档案信息,并能够查询和打印学生档案。

(3)成绩管理:管理员可以录入和查询学生考试成绩,并能够生成成绩统计报表。

(4)奖惩记录:管理员可以添加、删除和修改学生奖惩记录,并能够查询和打印奖惩记录。

(5)家长联系方式:管理员可以录入和查询学生家长联系方式,并能够打印学生家长通讯录。

(6)系统设置:管理员可以对系统进行设置,包括修改管理员账号和密码、备份和恢复数据等。

2.2 非功能需求分析(1)易用性:系统界面简洁明了,操作简单方便。

(2)可靠性:系统具有良好的稳定性和可靠性,能够保证数据的安全性和完整性。

(3)安全性:系统具有较高的安全性,包括用户权限管理、数据加密等措施。

三、技术选型3.1 开发语言本项目采用C#语言进行开发。

C#是一种面向对象的编程语言,具有良好的扩展性和可维护性,同时也是Windows平台上广泛使用的编程语言之一。

3.2 开发工具本项目采用Visual Studio 2019作为开发工具。

Visual Studio 2019是微软公司推出的一款强大的集成开发环境,支持多种编程语言,并提供了丰富的开发工具和组件库,能够极大地提高开发效率。

四、系统设计4.1 数据库设计本项目采用MySQL数据库进行数据存储。

数据库中包含以下表:(1)学生档案表:存储学生基本信息、家庭联系方式等内容。

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语言程序设计班级档案管理系统(总33页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March课程设计报告课程名称 C语言程序设计课题名称班级档案管理系统专业计算机科学与技术班级 1410061学号 7姓名李春苗指导教师刘双红2015年6月20日课程设计任务书课程名称C语言程序设计课题班级档案管理系统专业班级 1410061学生姓名李春苗学号 7指导老师刘双红任务完成日期 2014 年 6 月 20 日一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。

二、设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。

1.设计正确,方案合理。

2.界面友好,使用方便。

3.程序精炼,结构清晰。

4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

5.上机演示。

6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。

源程序及编译生成各文件均保存在软盘中;7.按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。

并用A4的复印纸打印并装订;8.在2010年7月2日之前,请各班学习委员收齐课程设计报告和源程序软盘交王颖老师,联系电话:。

三、进度安排第一周星期四:课题讲解,查阅资料第二周星期一: 总体设计,详细设计星期二:编程,上机调试、修改程序星期三:上机调试、完善程序星期四:上机调试、完善程序星期五:答辩星期六-星期天:撰写课程设计报告一、问题描述:对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。

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

目录一、课题设计内容与主要功能 (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[])录入学生的基本信息。

模块三:学生信息的显示void list(STUDENT t[],int n)就是把学生的基本信息显示在电脑上。

模块四:学生信息的保存void save(STUDENT t[],int n)就是在把学生基本信息的保存下来。

模块五:学生信息的修改void revise(STUDENT t[],int n) 插入学生信息。

模块六:学生信息的插入int insert(STUDENT t[],int n) 修改已经录入的学生信息模块七:学生信息的删除int delete(STUDENT t[],int n)删除录入的学生信息模块八:学生信息的排序void sort(STUDENT t[],int n)排序录入的学生信息模块九:学生信息按姓名查找void qseek(TSTUDENT t[],int n)查找录入的学生信息模块十:学生信息的读入int load(STUDENT t[])读取保存在文件中的学生信息模块十一:退出系统四、程序测试与结论进入系统输入学生信息显示信息保存信息修改信息修改成功插入信息显示插入成功删除信息排序信息查询信息读入信息(附加)总结:总的来说这个程序大致实现了题目的要求,但是这套程序仍然存在着很多的问题与不足。

比如,程序中主函数写的有点繁琐,有太多的嵌套,不是那么井然有序,条理清晰,程序注释也不是很完善,对信息处理功能还有些不足之处,提示信息不明确。

还有一点就是没有做到实现分类查找,分别按照姓名、学号、年龄、性别、备注等进行查找。

这个系统主要是参照老师的模版编写的,同时也得到了老师和同学的一些帮助。

我在做系统的过程中也遇到了很多问题,有的是知识不足,有的是考虑不够周全。

事实证明,只靠自己的知识面还是很窄,独立处理问题能力不是很强,以后还要加强对c语言的学习。

我认为对于C语言编写的程序来说,使用方法大致都是一样的,所以如果要改进的话,就是要改进一些算法,尽量把界面编写清楚,提示信息全面,方便易用。

五、课程设计总结C语言这学期我们开始的一门新课,早就听说上届学哥学姐说C语言是“天书”,是我们这学期最难的学科之一了。

早听说这些我就怕了。

首先我感到非常遗憾,课程设计的第一天,我还在家里,因为收到的消息比较迟所以未能及时赶到学校,也至于第一天最重要的内容没有学到,在接下来的两天上机时间也未能赶上大家的进度,自己也觉得自己做不出这个程序。

没有用心的学。

更加愚蠢的是我在答辩的时候拷贝了同学的部分程序,自己没能真正的了解这个程序。

答辩的时候,欧阳老师简单的问了我几个问题就发现我没有用心学,严厉批评了我,也认识到了我的错误。

当看到其他同学都是A,只有包括我在内的少数几个一同学得B,我感到心情有些沉闷,同时更加坚定了我要自己做好这个《学生档案管理系统》程序的决心。

自己也想到了,就算课程设计被我投机取巧完成了,但是省二、国二呢,最终自己还是要好好学的。

自己没有掌握C语言,又有什么意义呢!当我自己真正的研究这个程序的时候我感觉有点蒙了,我感觉我自己没有这个能力做好,所以我想找学长帮我,这样我就不用怕了,可是后来我想到省二、国二,我放弃了这个想法,什么还是靠自己。

一边懊悔自己平时没有好好学习,一边开始硬着头皮上阵了。

第三天下午和晚上我都泡在图书馆里,到晚上将近10点才回寝,感觉自己还是很蒙,不过也有收获,就是我知道我要做这个模块要定位函数,要用到链表。

这让我信心若狂,我感觉我已经找到了起点,有个好的开始我相信我就能做好。

晚上回到宿舍后我也不敢再耽误时间去玩手机了,急忙去看关于函数、链表的书,第四天看了一天之后我感觉原来计算机也不是什么“天书”啊,只是我们没有好好去看它,去领悟它。

我心中暗想,这次程序设计我很有收获,它让我对计算机、对C语言产生了兴趣,让我发现原来这样有实践的学习能让人产生很大的兴趣,能让人更好的领悟它。

我自己研究这个程序将近两天,看了许多资料,着手进一步改善这个程序了,困难的时候又来了,我不知道用什么语句去完成查找。

最好If语句找到后,链表来行使删除功能,可好似链表那个真的好难,在同学们的帮助下我终于把那个链表完成,在运行、检查、修改后,终于合格,程序运行成功了。

在完成自己的程序设计后,自豪的感觉充满了我的内心,是啊,我不是很笨,我只是没有用心,经过这次设计后,在学习方面我对自己有了信心,如果我用心去学,我努力去做,没有我做不到的。

突然间我很喜欢这戏C语言实训,在这一周,有欢笑,有焦急,有开心也有不开心,不过不管什么我都还算开心得度过了这一周,和同学们一起研究、一起做程序、一起检查、一起讨论对与错。

在程序完成的那一时刻,我很开心的笑了,因为那是我付出了汗水做的程序,那时我的心血!这次实训对我来说也是一次教训,让我再次深刻地明白什么事情都要靠自己,自己的事情要自己做且要做好。

这次实训也让我对学习,对C语言计算机都产生了更浓厚的兴趣,也让同学们有了更好的团队协作精神,也让我感觉在大学学习很好。

感谢老师让我们有了这次机会来体验编程的快乐,感谢老师不厌其烦的讲解。

也让我们有机会感受大学的美好时光。

纺工1291 彭旺2013年6月28日六、附件/*学生基本信息管理系统*//******头文件(.h)***********/#include "stdio.h" /*I/O函数*/#include "stdlib.h" /*标准库函数*/#include "string.h"/*字符串函数*/#define M 50 /*定义常数表示记录数*/typedef struct /*定义教师基本信息数据结构*/{char name[20];/*学生姓名*/char no[20]; /*编号*/char sex[20];/*性别*/int age;/*年龄*/char remark[20];/*备注*/}STUDENT;/******以下是函数原型*******/int enter(STUDENT t[]);/*输入记录*/void list( STUDENT t[],int n);/*显示记录*/void save(STUDENT t[],int n);/*记录保存为文件*/ int find(STUDENT t[],int n,char *s)/*查找函数*/; void print(STUDENT temp);/*显示单条记录*/void revise( STUDENT t[],int n);/*修改记录*/int insert(STUDENT t[],int n); /*插入记录*/int delete(STUDENT t[],int n)/*删除记录*/;int load(STUDENT t[]);/*从文件中读记录*/void sort(STUDENT t[],int n);/*按姓名排序*/void qseek(STUDENT t[],int n);/*快速查找记录*/ int menu_select();/*主菜单函数*/main(){STUDENT student[M];/*定义结构体数组*/int length;/*保存记录长度*/for(;;)/*无限循环*/{switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ {case 1:length=enter(student);break;/*输入记录*/case 2:list(student,length);break; /*显示全部记录*/case 3:save (student,length);break;/*保存文件*/case 4:revise(student,length);break;/*修改记录*/case 5:length=insert(student,length);break;/*插入记录*/case 6:length=delete(student,length);break; /*删除记录*/case 7:sort(student,length);break; /*按姓名排序*/case 8:qseek(student,length);break;/*快速查找记录*/case 9:length=load(student);break;/*读文件*/case 10: exit(0); /*如返回值为10则程序结束*/}}}/*菜单函数,函数返回值为整数,代表所选的菜单项*/menu_select(){char s[80];int c;printf("press any key enter menu......\n");/*提示压任意键继续*/printf("********************MENU*********************\n\n");printf(" 1. 学生基本信息录入\n");printf(" 2. 学生基本信息显示\n");printf(" 3. 学生基本信息保存\n");printf(" 4. 学生基本信息修改\n");printf(" 5. 学生基本信息插入 \n");printf(" 6. 学生基本信息删除\n");printf(" 7. 学生基本信息排序\n");printf(" 8. 学生基本信息按姓名查询\n");printf(" 9. 从文件中读入学生基本信息\n");printf(" 10. 退出系统\n");printf("***********************************************\n");do{printf("\n Enter you choice(1~10):");/*提示输入选项*scanf("%s",s);c=atoi(s);}while(c<1||c>10);return c;}/***输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/ int enter(STUDENT t[]){int i,n;char *s;printf("\nplease input num \n"); /*提示信息*/scanf("%d",&n); /*输入记录数*/printf("please input record \n"); /*提示输入记录*/printf("姓名学号性别年龄备注\n");printf("-------------------------------------------------------------------\n");for(i=0;i<n;i++){scanf("%s%s%s%d%s",t[i].name,t[i].no,t[i].age,t[i].course,&t[i].remark); /*输入记录*/printf("-------------------------------------------------------------------\n");}return n; /*返回记录条数*/}/*显示记录,参数为记录数组和记录条数*/void list(STUDENT t[],int n){int i;printf("\n\n*****************************STUDENT*************************** *\n");printf("姓名学号性别年龄备注\n");printf("-------------------------------------------------------------------\n");for(i=0;i<n;i++)printf("%-20s%-20s%-20s%-10d%-10s\n",t[i].name,t[i].no,t[i].sex,t[i].age,t[i].remark);if((i+1)%10==0){printf("Press any key continue...\n");getch();}printf("*********************************end******************************* *\n");}/*显示指定的一条记录*/void print(STUDENT temp){printf("\n\n*****************************STUDENT*************************** *\n");printf("姓名学号性别年龄备注\n");printf("-------------------------------------------------------------------\n");printf("%-20s%-20s%-20s%-10d%-10s\n",,temp.no,temp.sex,temp.age,te mp.remark);printf("*******************************end********************************* \n");}int find(STUDENT t[],int n,char *s){int i;for(i=0;i<n;i++){if(strcmp(s,t[i].name)==0)return i;}return i;}/*删除函数,参数为记录数组和记录条数*/int delete(STUDENT t[],int n){char s[20]; /*要删除记录的姓名*/int ch=0;int i,j;printf("please deleted name\n"); /*提示信息*/scanf("%s",s);/*输入姓名*/i=find(t,n,s); /*调用find函数*/if(i>n-1) /*如果i>n-1超过了数组的长度*/printf("no found not deleted\n"); /*显示没找到要删除的记录*/else{print(t[i]); /*调用输出函数显示该条记录信息*/printf("Are you sure delete it(1/0)\n"); /*确认是否要删除*/scanf("%d",&ch); /*输入一个整数0或1*/if(ch==1) /*如果确认删除整数为1*/{for(j=i+1;j<n;j++) /*删除该记录,实际后续记录前移*/{strcpy(t[j-1].name,t[j].name); /*将后一条记录的学生姓名拷贝到前一条*/strcpy(t[j-1].no,t[j].no); /*将后一条记录的编号拷贝到前一条*/strcpy(t[j-1].sex,t[j].sex); /*将后一条记录的性别拷贝到前一条*/t[j-1].age=t[j].age;; /*将后一条记录的年龄拷贝到前一条*/Strcpy(t[j-1].remark,t[j].remark); /*将后一条记录的备注拷贝到前一条*/}n--; /*记录数减1*/}}return n; /*返回记录数*/}/*插入记录函数,参数为结构体数组和记录数*/int insert(STUDENT t[],int n)/*插入函数,参数为结构体数组和记录数*/{STUDENT temp; /*新插入记录信息*/int i,j;char s[20]; /*确定插入在哪个记录之前*/printf("please input record\n");printf("\n\n*****************************STUDENT*************************** *\n");printf("姓名学号性别年龄备注\n");printf("-------------------------------------------------------------------\n");scanf("%s%s%s%d%s",,temp.no,temp.sex,temp.age,temp.remark); /*输入插入信息*/printf("-------------------------------------------------------------------\n");printf("please input locate name \n");scanf("%s",s); /*输入插入位置的姓名*/i=find(t,n,s); /*调用find,确定插入位置*/for(j=n-1;j>=i;j--) /*从最后一个结点开始向后移动一条*/{strcpy(t[j+1].name,t[j].name); /*当前记录的学生姓名拷贝到后一条*/ strcpy(t[j+1].no,t[j].no); /*当前记录的编号拷贝到后一条*/strcpy(t[j+1].sex,t[j].sex); /*当前记录的性别拷贝到后一条*/t[i].age = temp.age; /*将新插入记录的年龄拷贝到第i个位置*/strcpy(t[j+1].remark,t[j].remark); /*当前记录的备注拷贝到后一条*/}strcpy(t[i].name,); /*将新插入记录的学生姓名拷贝到第i个位置*/ strcpy(t[i].no,temp.no); /*将新插入记录的编号拷贝到第i个位置*/strcpy(t[i].sex,temp.sex); /*将新插入记录的性别拷贝到第i个位置*/t[i].age = temp.age; /*将新插入记录的年龄拷贝到第i个位置*/strcpy(t[i].remark,temp.remark); /*将新插入记录的备注拷贝到第i个位置*/ n++; /*记录数加1*/return n; /*返回记录数*/}/*保存函数,参数为结构体数组和记录数*/void save(STUDENT t[],int n){int i;FILE *fp; /*指向文件的指针*/if((fp=fopen("record.txt","wb"))==NULL) /*打开文件,并判断打开是否正常*/ {printf("can not open file\n");/*没打开*/exit(1); /*退出*/}printf("\nSaving file\n"); /*输出提示信息*/fprintf(fp,"%d",n); /*将记录数写入文件*/fprintf(fp,"\r\n"); /*将换行符号写入文件*/for(i=0;i<n;i++){fprintf(fp,"%-20s%-20s%-20s%-40d%-10s",t[i].name,t[i].no,t[i].sex,t[i].age, t[i].remark);/*格式写入记录*/fprintf(fp,"\r\n"); /*将换行符号写入文件*/}fclose(fp);/*关闭文件*/printf("****save success***\n"); /*显示保存成功*/}/*按序号显示记录函数*/void display(STUDENT t[]){int id,n;FILE *fp; /*指向文件的指针*/if((fp=fopen("record.txt","rb"))==NULL)/*打开文件*/{printf("can not open file\n");exit(1);}printf("Enter order number...\n");scanf("%d",&id);/*输入序号*/fscanf(fp,"%d",&n);if(id>=0&&id<n)/*判断序号是否在记录范围内*/{fseek(fp,(id-1)*sizeof(STUDENT),1);/*移动文件指针到该记录位置*/print(t[id]); /*调用输出函数显示该记录*/printf("\r\n");}elseprintf("no %d number record!!!\n ",id); /*如果序号不合理显示信息*/ fclose(fp);/*关闭文件*/}/*排序函数,参数为结构体数组和记录数*/void sort(STUDENT t[],int n){int i,j,flag;TEACHER temp; /*临时变量做交换数据用*/for(i=0;i<n;i++){flag=0; /*设标志判断是否发生过交换*/for(j=0;j<n-1;j++)if((strcmp(t[j].name,t[j+1].name))>0) /*比较大小*/{flag=1;strcpy(,t[j].name); /*交换记录*/→ strcpy(temp.no,t[j].no);strcpy(temp.sex,t[j].sex);temp.age=t[j].age;strcpy(temp.remark,t[j].remark);strcpy(t[j].name,t[j+1].name);strcpy(t[j].no,t[j+1].no);strcpy(t[j].sex,t[j+1].sex);t[j].age=t[j+1].age;strcpy(t[j].remark,t[j+1].remark);strcpy(t[j+1].name,);strcpy(t[j+1].no,temp.no);strcpy(t[j+1].sex,temp.sex);t[j+1].age=temp.age;strcpy(t[j+1].remark,temp.remark); }if(flag==0)break; /*如果标志为0,说明没有发生过交换循环结束*/}printf("sort sucess!!!\n"); /*显示排序成功*/}/*快速查找,参数为结构体数组和记录数*/void qseek(TSTUDENT t[],int n){char s[20];int l,r,m;printf("\nPlease sort before qseek!\n"); /*提示确认在查找之前,记录是否已排序*/printf("please enter name for qseek\n"); /*提示输入*/scanf("%s",s); /*输入待查找的姓名*/l=0;r=n-1; /*设置左边界与右边界的初值*/while(l<=r) /*当左边界<=右边界时*/{m=(l+r)/2; /*计算中间位置*/if(strcmp(t[m].name,s)==0) /*与中间结点姓名字段做比较判是否相等*/{print(t[m]); /*如果相等,则调用print函数显示记录信息*/return ; /*返回*/}if(strcmp(t[m].name,s)<0) /*如果中间结点小*/l=m+1; /*修改左边界*/elser=m-1; /*否则,中间结点大,修改右边界*/}if(l>r) /*如果左边界大于右边界时*/printf("not found\n"); /*显示没找到*/}/*修改记录*/void revise(STUDENT t[],int n){STUDENT temp;char s[20];int i;printf("please enter name\n");/*要修改的名字*/scanf("%s",s);i=find(t,n,s);if(i>n-1)printf("no found\n");elseprintf("please revise a cord\n");/*要修改的记录*/printf("姓名学号性别年龄备注\n");printf("--------------------------------------------------------------\n");scanf("%s%s%s%d%s",,temp.no,temp.sex,&temp.age,&temp.remark);printf("---------------------------------------------------------------\n") ;strcpy(t[i].name,);strcpy(t[i].no,temp.no);strcpy(t[i].sex,temp.sex);t[i].age=temp.age;strcpy(t[i].remark,temp.remark);printf("success!\n");}/*从文件中读记录*/int load(STUDENT t[]){int i,n;FILE *fp;if((fp=fopen("record.txt","rb"))==NULL){printf("can not open file\n");/*不能打开文件*/exit(1);}fscanf(fp,"%d",&n);for(i=0;i<n;i++)fscanf(fp,"%20s%20s%20s%40d%10s",t[i].name,t[i].no,t[i].sex,&t[i].age,t[i]. remark);fclose(fp);printf("You have success read data from file!!!\n");/*成功读入*/return n;}计算机与通信学院课程设计评分表课程名称: C语言课程设计教师签名:日期:。

相关文档
最新文档