C语言课程设计个人课程表管理系统报告

合集下载

C语言课程设计课程管理系统实验报告

C语言课程设计课程管理系统实验报告

课程设计实验报告课程管理系统计算机科学与工程学院14060307班董永博14060307102陈佳兴14060307101田晨光14060307113赵炳舒14060307121欧静14060307126目录题目• ---------------------------------------- 3分析过程与思路・------------------------------- 3算法• ---------------------------------------- 5函数模块介绍• --------------------------------- 9源程序… -------------------------------------- 10运行结果• • ---------------------------------- 36课程设计总结• -------------------------------- 42题目课程管理系统分析过程与思路课程管理系统首先要能够分别实现课程信息的增加、删除、查询、修改。

为了增加程序的实用性,应当能够将输入的课程信息通过存文件的方式将课程信息存入硬盘。

而使用系统的可能是学生和管理员两类,因此要实现根据登录类型来开放应有的功能。

由于课程信息包含很多成员,例如课程编码、课程名等。

因此应该用链表对信息进行记录,由于不清楚课程总数,因此需要用动态链表。

动态链表的使用需要声明合适的结构体,数据域中应包含课程所包含的各个成员、指针域用来指向下一个结点。

动态链表的建立需要用到malloc函数。

对已经建立的链表需要存入文件,需要用到fwrite、fread、feof等文件处理函数,保存文件要多次用到,因此应该独立做一个函数。

删除函数要用到诸如free函数,为了防止删除的结点为首结点,删除后找不到头结点,因此删除函数应该是一个指针函数,用以返回删除后的新的头结点。

登录函数要返回一个值用以在其他函数中判断登录类型,以便针对用户开放相应的功能。

c语言学生管理系统课程设计报告 (2)

c语言学生管理系统课程设计报告 (2)

C语言学生管理系统课程设计报告1. 引言学生管理系统是一项常见的计算机应用程序,广泛应用于学校、培训机构等教育机构中。

本文将介绍一个基于C语言开发的学生管理系统,该系统具有以下功能:学生信息的录入、查询、修改和删除,以及成绩信息的录入、查询、统计和排序。

2. 系统设计2.1 功能模块学生管理系统主要包括以下功能模块:•学生信息录入模块:用于录入学生的基本信息,包括学号、姓名、性别、年龄等。

•学生信息查询模块:提供根据学号或姓名查询学生信息的功能。

•学生信息修改模块:允许修改学生的各项信息。

•学生信息删除模块:提供学生信息的删除功能。

•成绩信息录入模块:用于录入学生的成绩信息,包括科目和成绩。

•成绩信息查询模块:提供根据学号或科目查询学生成绩的功能。

•成绩统计模块:对学生的成绩进行统计,包括总分和平均分。

•成绩排序模块:按照总分对学生进行排序。

2.2 数据结构学生信息和成绩信息可以使用结构体存储。

定义如下:typedef struct {char id[20]; // 学生学号char name[20]; // 学生姓名char gender[5]; // 学生性别int age; // 学生年龄} Student;typedef struct {char id[20]; // 学生学号char subject[20]; // 科目float score; // 成绩} Score;通过结构体数组来存储多个学生的信息和成绩,如下所示:Student students[MAX_STUDENT_NUM];Score scores[MAX_SCORE_NUM];2.3 系统流程学生管理系统的流程图如下所示:graph LRA[学生信息录入] --> B[学生信息查询]A --> C[学生信息修改]A --> D[学生信息删除]A --> E[成绩信息录入]A --> F[成绩信息查询]A --> G[成绩统计]A --> H[成绩排序]3. 系统实现在C语言中,使用函数来实现不同的功能模块。

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

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

学生课程管理系统c语言课程设计一、课程目标知识目标:1. 理解并掌握C语言中结构体、数组、指针等基本概念;2. 学会运用C语言设计学生课程管理系统的基本功能,如增加、删除、修改和查询课程信息;3. 掌握文件操作在C语言中的应用,实现数据的持久化存储。

技能目标:1. 能够运用结构体组织数据,使用数组存储批量数据,运用指针进行高效数据处理;2. 培养学生独立编写代码、调试程序的能力,提高编程实践技能;3. 培养学生分析问题、解决问题的能力,学会设计简单的管理系统。

情感态度价值观目标:1. 培养学生热爱编程,增强对计算机科学的兴趣和热情;2. 培养学生团队协作精神,学会在团队中发挥个人特长,共同完成任务;3. 培养学生勇于面对困难,敢于挑战,善于总结经验教训的品质。

本课程针对高年级学生,结合C语言课程特点,注重理论与实践相结合,以项目驱动教学,培养学生编程实践能力和问题解决能力。

通过设计学生课程管理系统,让学生在实际项目中掌握C语言的核心知识,提高编程技能,同时培养良好的情感态度价值观。

课程目标具体、可衡量,旨在为学生和教师在教学过程中提供明确的指导,确保教学效果。

二、教学内容1. C语言基础知识回顾:结构体、数组、指针、函数、文件操作;2. 学生课程管理系统需求分析:功能模块划分、数据结构设计;3. 编程实现:- 设计课程信息结构体;- 实现课程信息的增加、删除、修改和查询功能;- 利用文件操作实现数据的持久化存储;- 设计简单的用户界面,进行功能选择和操作;4. 测试与调试:编写测试用例,进行功能测试,分析并解决可能出现的错误;5. 代码优化与重构:对代码进行优化,提高程序执行效率和可读性;6. 项目总结与展示:撰写项目报告,总结设计思路和经验教训,进行成果展示。

教学内容按照课程目标进行组织,以教材为基础,结合学生实际情况进行调整。

教学大纲明确教学内容和进度,具体安排如下:第一周:C语言基础知识回顾;第二周:学生课程管理系统需求分析和设计;第三周:编程实现课程管理系统的核心功能;第四周:测试与调试,优化代码;第五周:项目总结与展示。

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

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

C语言学生管理系统课程设计报告一、引言学生管理系统是一种用来管理学生信息的软件系统。

C语言学生管理系统课程设计旨在帮助学生掌握C语言的基本语法和编程能力,同时熟悉软件开发过程中的分析、设计和实现等环节。

本报告将详细介绍C语言学生管理系统的设计和实现过程。

二、需求分析为了明确系统的功能需求,在进行系统设计之前,我们需要进行需求分析。

对于一个学生管理系统,常见的功能包括学生信息录入、查找学生信息、修改学生信息和删除学生信息等。

2.1 学生信息录入学生信息录入是系统的基本功能之一。

管理员可以通过系统按照一定的格式输入学生的基本信息,包括学号、姓名、性别、年龄、班级等。

2.2 查找学生信息系统应提供根据学号或姓名快速查找学生信息的功能。

用户可以输入学号或姓名进行查询,并显示该学生的详细信息。

2.3 修改学生信息管理员可以通过系统修改学生的基本信息。

用户可以选择指定要修改的学生的学号,并对学生的姓名、班级、年龄等信息进行修改。

2.4 删除学生信息管理员可以通过系统删除指定学生的信息。

用户可以输入学号或姓名进行查询,并选择删除该学生的信息。

三、系统设计在需求分析的基础上,进行系统设计是为了明确系统的整体架构和各个模块之间的关系。

本章将对C语言学生管理系统的设计进行详细介绍。

3.1 系统架构C语言学生管理系统采用单层架构,将所有功能模块整合在一个程序中。

系统采用面向过程的设计思路,通过函数的调用和参数传递实现不同模块之间的交互。

3.2 数据结构设计系统的核心数据结构是学生信息结构体。

学生信息结构体包括学号、姓名、性别、年龄、班级等字段。

为了方便管理学生的信息,可以使用链表来存储学生信息。

链表的每个节点代表一个学生,通过指针连接起来形成一个链表。

3.3 模块设计系统的功能可以划分为若干个模块,包括学生信息录入模块、查找学生信息模块、修改学生信息模块和删除学生信息模块。

3.3.1 学生信息录入模块学生信息录入模块通过从键盘读取用户输入的信息,并将输入的信息保存到链表中。

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

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

学生管理系统c语言课程设计报告1. 引言学生管理系统是现代教学管理中不可或缺的工具。

本报告将详细介绍一个基于C语言的学生管理系统的设计与实现。

学生管理系统用于记录学生信息、成绩管理、考勤管理、课程管理等功能,能够提高教学管理的效率和准确性。

2. 系统设计2.1 需求分析学生管理系统的主要功能包括: 1. 学生信息管理:添加、删除、修改学生的基本信息,如学号、姓名、年龄、性别等。

2. 成绩管理:录入学生的成绩,计算平均成绩。

3. 考勤管理:记录学生的考勤情况,统计缺勤次数。

4. 课程管理:添加、删除、修改课程信息,如课程编号、课程名称、教师姓名等。

2.2 系统架构学生管理系统采用模块化设计,分为四个模块: 1. 学生信息模块:实现学生信息的添加、删除、修改功能。

2. 成绩管理模块:实现成绩录入和平均成绩计算功能。

3. 考勤管理模块:实现考勤记录和缺勤次数统计功能。

4. 课程管理模块:实现课程信息的添加、删除、修改功能。

2.3 系统流程图st=>start: 开始op1=>operation: 添加学生信息op2=>operation: 删除学生信息op3=>operation: 修改学生信息op4=>operation: 成绩录入op5=>operation: 平均成绩计算op6=>operation: 考勤记录op7=>operation: 缺勤次数统计op8=>operation: 添加课程信息op9=>operation: 删除课程信息op10=>operation: 修改课程信息e=>end: 结束st->op1->op2->op3->op4->op5->op6->op7->op8->op9->op10->e 3. 功能实现3.1 学生信息管理3.1.1 添加学生信息通过输入学生的基本信息,将学生信息保存到系统中。

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

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

c语言学生管理系统课程设计报告我见过太多关于学生管理系统的课程设计报告,这仅仅只是其中之一、希望对你有所帮助。

一、题目学生管理系统的设计与实现二、设计目的和要求1.根据实际需求,实现一个学生管理系统,包括对学生的基本信息的增删改查功能以及成绩查询功能;2.使用C语言编写代码,实现学生管理系统的核心功能;3.界面友好,操作简便,用户可以通过简单的指令实现对学生信息的管理和查询;4.提供用户权限管理,确保只有具备管理员权限的用户才能进行管理操作;三、系统基本功能1.学生信息的增删改查:学生的基本信息包括学号、姓名、性别、年龄等。

管理员可以对这些信息进行增加、删除、修改和查询的操作,方便学生信息的管理;2.成绩查询功能:管理员可以根据学号查询学生的成绩,系统将返回相应的成绩信息;3.用户权限管理:系统将设置管理员账号和密码,只有拥有管理员权限的用户才能进行学生信息的管理操作。

四、系统设计思路1.确定数据结构:创建一个学生结构体,包含学号、姓名、性别、年龄和成绩等信息;2.确定主要函数:设计主菜单函数,用户可以通过选择功能选项来进行不同的操作,如增加学生信息、删除学生信息、修改学生信息、查询学生信息和查询成绩等功能;3.设计增删改查函数:通过逐步引导用户输入信息或选择操作,实现相应功能;4.设计用户权限函数:管理员通过输入正确的用户名和密码,才能登录进入管理界面,否则无法进行管理操作;5.进行函数间的调试和优化,确保代码的完整性和稳定性;6.设计简易界面:通过打印相应的信息和提示,实现用户友好的界面设计。

五、实际实现效果和展示1.用户界面友好,简单易懂,用户能够通过选择相应的功能来实现对学生信息的管理和查询。

2.数据操作准确,能够准确地增加、删除、修改和查询学生信息以及查询学生成绩。

3.用户权限管理严密,只允许管理员进行管理操作,保证了学生信息的安全性。

六、总结和展望通过本次学生管理系统的设计与实现,我深刻感受到了系统设计的重要性和挑战性。

c语言学生管理系统课程设计报告(一)

c语言学生管理系统课程设计报告(一)

c语言学生管理系统课程设计报告(一)C语言学生管理系统课程设计报告1. 项目介绍•课程名称:C语言学生管理系统课程设计•项目类型:学生管理系统•设计时间:2021年1月•设计人员:XXX2. 项目背景•学生管理系统是一种常见的信息管理系统,用于管理学校、学院或班级的学生信息。

•C语言是一种常用的编程语言,具有良好的跨平台性和高效性。

3. 功能需求设计一个C语言学生管理系统,能够实现以下功能:•学生信息录入:输入学生的基本信息,包括学号、姓名、性别、年龄等。

•学生信息查询:根据学号或姓名查询学生的基本信息。

•学生成绩录入:输入学生的各科成绩,包括语文、数学、英语等。

•学生成绩统计:计算学生的总成绩、平均成绩,并根据成绩进行排名。

•学生信息修改:对已有的学生信息进行修改,包括基本信息和成绩信息。

•学生信息删除:根据学号或姓名删除学生的信息。

4. 技术实现在C语言学生管理系统的设计中,使用到以下技术:•结构体:用于定义学生的基本信息,如学号、姓名、性别、年龄等。

•数组:用于存储多个学生的信息。

•文件读写:将学生信息保存到文件中,实现信息的长久保存和读取。

5. 项目结构•主函数:包括用户菜单的选择和对应功能的调用。

•学生信息模块:实现学生信息的录入、查询、修改和删除等功能。

•成绩管理模块:实现学生成绩的录入、统计等功能。

6. 开发流程•需求分析:明确项目需求,确定功能设计。

•系统设计:设计程序的整体结构,划分模块和函数。

•编码实现:使用C语言编写各个模块的代码,并进行调试测试。

•系统测试:对系统进行整体测试,修复错误和漏洞。

•系统部署:将系统部署到目标环境中,进行性能优化和问题排查。

•用户培训:对系统进行使用说明和培训,保证用户能够熟练使用学生管理系统。

7. 总结与展望通过C语言学生管理系统的设计,我学到了很多关于C语言的基础知识和编程技巧。

在项目开发过程中,我充分利用了C语言的特点,编写出高效、稳定的代码。

c语言课程设计学生成绩管理系统报告

c语言课程设计学生成绩管理系统报告

c语言课程设计学生成绩管理系统报告一、教学目标本课程旨在通过C语言编程实现一个学生成绩管理系统,让学生掌握C语言的基本语法、数据结构、函数、文件操作等知识,培养学生编写程序解决实际问题的能力。

具体目标如下:1.知识目标:(1)掌握C语言的基本语法和编程技巧;(2)了解数据结构的基本概念,学会使用数组、链表等数据结构;(3)熟悉函数的定义和调用,掌握函数的参数传递和返回值;(4)掌握文件操作,了解文件读写的原理和方法。

2.技能目标:(1)能够独立编写C语言程序,解决实际问题;(2)具备良好的编程习惯,代码结构清晰、可读性强;(3)掌握调试和优化程序的方法,提高程序的运行效率;(4)学会使用版本控制系统,如Git,进行代码管理和协作开发。

3.情感态度价值观目标:(1)培养学生的编程兴趣,激发学习C语言的积极性;(2)培养学生团队协作精神,提高沟通与协作能力;(3)培养学生的问题解决能力,培养创新意识和持续学习的态度;(4)培养学生具有良好的职业道德,遵守编程规范,尊重他人代码。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、文件操作等。

具体安排如下:1.C语言基本语法:介绍C语言的数据类型、运算符、表达式、控制语句等基本概念;2.数据结构:讲解数组、链表、栈和队列等数据结构的基本原理和应用;3.函数:讲解函数的定义、声明、调用,以及函数的参数传递和返回值;4.文件操作:介绍文件的概念、文件读写的方法和技巧。

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

具体方法如下:1.讲授法:通过讲解C语言的基本语法、数据结构、函数和文件操作等知识,使学生掌握课程的基本概念和编程技巧;2.案例分析法:分析实际编程案例,让学生学会将理论知识应用于实际问题解决;3.实验法:安排上机实验,让学生动手编写程序,培养实际编程能力;4.小组讨论法:学生进行小组讨论,培养团队协作和沟通能力。

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

个人课程表管理系统设计报告专业:通信工程班级:通信1401 团队: C.F 指导老师:刘少昌队长:陈志强队员:蔡晶晶、陈超、刘勤、盛玉霞设计时间:2015年7月9日星期四说明*我们的课题是:个人课程表管理系统*选题的目的与意义:我们的系统是为了更加方便的查询课程表,方便我们的大学校园生活而创建。

这个项目符合我们大一学生c语言水平,而且此课题新颖,可以充分锻炼我们团队思维能力。

*项目的主要功能描述:一输入课程:可根据个人需求,填写课程表信息。

二显示课程:按照时间顺序显示。

三查询课表:有以时间、课程名、查询。

四修改课程: 可以按照已有的课程信息,选择要修改课程的序号,可以修改已选序号的全部信息、时间、课程名、教室。

五删除课程:可以按照已有的课程信息,选择要修改课程的序号,进行删除。

六保存文件保存文件七退出程序:退出程序。

结构体设计 struct schedule{char time[8]; 字符型课程时间char lessonname[12]; 字符型课程名char teacher[10]; 字符型授课老师char classroom[10]; 字符型教室char hours[4]; 字符型第几节课 int weeks; 整型周时};全局变量struct schedule str[100];*函数原型设计a)void input(); /*声明输入函数*/b)void menu1(); /*声明主菜单函数*/c)void rank(); /*声明显示时间顺序函数*/d)void querymenu3(); /*声明查询函数*/e)void looktime(); /*声明按照时间查询函数*/f)void looklessonname(); /*声明按照课程名查询函数*/g)void add(); /*声明保存函数*/h)void amend(); /*声明修改课程函数*/i)void amend1(); /*声明修改课程子函数*/j)void amendnews(int i); /*声明修改整个课程信息函数k)void amendtime(int i); /*声明修改课程时间函数*/ l)void lessonname(int i);/*声明修改课程课程名函数*/ m)void amendclassroom(int i);/*声明修改课程教室函数n)void deleted(); /*声明删除函数*/程序登陆界面用户界面输入课程表保存文件表显示课程表查询课程表修改课程表删除课程表课程时间课程名修改教室修改课程名总周时授课老师修改时间教室课程所有信息第几节课返回主菜单按照课程查询按照时间查询*函数结构图*项目流程图*登陆界面*用户界面*各项功能实现输入课程表显示课程表修改课程表保存文件*运行程序注意事项、须知:一、打开程序,登陆界面密码为:123。

二、打开输入项目,输入的周时必须是整数且大于0,负责无法保存。

三、当输入菜单选项时,务必输入是整数,若不是,系统会错误,需按照程序提示输入。

*程序代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>void input(); /*声明输入函数*/void menu1(); /*声明主菜单函数*/void rank(); /*声明显示时间顺序函数*/void querymenu3(); /*声明查询函数*/void looktime(); /*声明按照时间查询函数*/void looklessonname(); /*声明按照课程名查询函数*/void add(); /*声明保存函数*/void amend(); /*声明修改课程函数*/void amend1(); /*声明修改课程子函数*/void amendnews(int i); /*声明修改整个课程信息函数*/void amendtime(int i); /*声明修改课程时间函数*/void amendlessonname(int i); /*声明修改课程课程名函数*/void amendclassroom(int i); /*声明修改课程教室函数*/void deleted(); /*声明删除函数*/struct student{char time[10]; /*字符型时间*/char lessonname[20]; /*字符型课程名*/char teacher[20]; /*字符型授课老师*/char classroom[10]; /*字符型教室 */char hours[10]; /*字符型第几节课*/int weeks; /*字符型周时*/};struct student str[30]; /*全局变量*/void main(){char password[20];int i,j;system("color 1a"); /*设置颜色源网络资源*/printf("\n");printf("\t *************欢迎使用〖个人课程表管理系统〗程序************\n");printf("\t * 请输入登陆密码(三次输入机会)! *\n");printf("\t***********************************************************\n");printf("\t用户名:CombinedProgammingLanguage.Family\n");for(i=1;i<4;i++) /*密码输入三次 for循环*/{printf("\t 第%d次输入密码:",i);for(j=0;(password[j]=getch())!='\r';j++)/*输入密码*/putch('*'); /*每次输入的密码以*号覆盖隐藏*/printf("\n");password[j]='\0'; /*字符串最后加结束符号*/if((strcmp(password,"123"))==0){printf("\t *密码正确,打开程序!\n");menu1(); /*调用子函数meun1()*/}else{printf("\t *密码错误,请重新输入\n");}if(i==3){printf("\t *您已输入三次,请重新登陆程序\n");exit(0);}}}void menu1() /*主菜单*/{int number;system("cls");while(1){printf("\t**************欢迎使用〖课程表管理系统〗程序**************\n");printf("\t* 1. ☆输入课程表☆*\n");printf("\t* 2. ☆显示课程表☆*\n");printf("\t* 3. ☆查询课程表☆*\n");printf("\t* 4. ☆修改课程表☆*\n");printf("\t* 5. ☆删除课程表☆*\n");printf("\t* 6.☆保存文件表☆*\n");printf("\t* 7. ☆退出课程表☆*\n");printf("\t┏********************************************************┓\n");printf("\t* 团队名:c.f(CombinedProgammingLanguage.Fam ily); * \n");printf("\t* 成员负责任务 * \n");printf("\t* 1.蔡晶晶》》》》》》 ppt制作程序项目分析* \n");printf("\t* 2.陈超》》》》》》ppt制作* \n");printf("\t* 3.陈志强》》》》》》代码编写* \n");printf("\t* 4.刘勤》》》》》》文档制作程序项目分析* \n");printf("\t* 5.盛玉霞》》》》》》文档制作* \n");printf("\t*****************请输入选择的功能编号(1-7):******************\n");printf("\t输入: ");scanf("%d",&number);if(number<0 || number>7){printf("\t\t你输入的功能号错误,请重新输入,按Enter键继续!!\n");system("cls");continue;}switch(number){case 1: input();break;/*调用输入函数*/case 2: rank();break; /*调用显示函数*/case 3: querymenu3();break; /*调用查询函数*/case 4: amend();break; /*调用修改函数*/case 5: deleted();break; /*调用删除函数*/case 6: add();break; /*调用保存函数*/case 7: printf("\t\t\t谢谢你的使用!任意键退出程序!\n");exit(0);}}}void input() /**/{int i=0,flag=1;char a;system("cls");printf("\t****************************************************************\n");printf("\t**您将会输入: 课程时间课程名授课老师教室第几节课总周时**\n");printf("\t**输入内容如: 星期一 C语言刘老师 a1n205 1-3 2 **\n");printf("\t****************************************************************\n");while(flag)/*输入数据*/{printf("\t\t第%d个课程信息:\n",i+1);printf("\t\t课程时间:");scanf("%s",&str[i].time);printf("\t\t课程名:");scanf("%s",str[i].lessonname);printf("\t\t授课老师:");scanf("%s",str[i].teacher);printf("\t\t教室:");scanf("%s",str[i].classroom);printf("\t\t第几节课:");scanf("%s",str[i].hours);printf("\t\t总周时:");scanf("%d",&str[i].weeks);printf("\t*************************** **************\n");printf("\t**您好!是否继续输入下个课程? (Y/N)! 输入: ");getchar();scanf("%c",&a);if(a=='y'||a=='Y') /*如果输入是y则输入下个数据*/flag=1;if(a=='n'||a=='N') /*如果输入是n 则结束输入 */{flag=0;printf("\t****************输入完成,任意键返回主菜单!*************\n");system("pause");system("cls");}i++;}}void rank(){int i,j,flag;struct student temp;system("cls");for(j=0;j<29;j++) /*从大到小排序*/for(i=0;i<29-j;i++)if(strcmp(str[i].time,str[i+1].time)<0){temp.weeks=str[i].weeks; /*利用strpy函数字符串覆盖*/strcpy(temp.time,str[i].time);strcpy(temp.lessonname,str[i].lessonn ame);strcpy(temp.teacher,str[i].teacher) ;strcpy(temp.classroom,str[i].classroo m);strcpy(temp.hours,str[i].hours);str[i].weeks=str[i+1].weeks; strcpy(str[i].time,str[i+1].time);strcpy(str[i].lessonname,str[i+1].les sonname);strcpy(str[i].teacher,str[i+1].teac her);strcpy(str[i].classroom,str[i+1].clas sroom);strcpy(str[i].hours,str[i+1].hours);str[i+1].weeks=temp.weeks;strcpy(str[i+1].time,temp.time);strcpy(str[i+1].lessonname,temp.lesso nname);strcpy(str[i+1].teacher,temp.teacher);strcpy(str[i+1].classroom,temp.classroom);strcpy(str[i+1].hours,temp.hours); /*此时排序为星期一星期五星期四三二不符合*/j=0;/*把星期一移到最后位置*/for(i=0;i<30;i++){ /*判断周时不为0 的个数*/if(str[i].weeks!=0)j++;}for(i=0;i<j-1;i++)/*把每两个数互换达到将第一个换到最后一个*/{temp.weeks=str[i].weeks; /*利用strpy函数字符串覆盖*/strcpy(temp.time,str[i].time);strcpy(temp.lessonname,str[i].lessonname);strcpy(temp.teacher,str[i].teacher);strcpy(temp.classroom,str[i].classroo m);strcpy(temp.hours,str[i].hours);str[i].weeks=str[i+1].weeks;strcpy(str[i].time,str[i+1].time);strcpy(str[i].lessonname,str[i+1].les sonname);strcpy(str[i].teacher,str[i+1].teac her);strcpy(str[i].classroom,str[i+1].clas sroom);strcpy(str[i].hours,str[i+1].hours);str[i+1].weeks=temp.weeks;strcpy(str[i+1].time,temp.time);strcpy(str[i+1].lessonname,temp.lesso nname);strcpy(str[i+1].teacher,temp.teache r);strcpy(str[i+1].classroom,temp.classr oom);strcpy(str[i+1].hours,temp.hours);}i=0; /*将已排序显示*/flag=1;printf("\t********************〖时间顺序显示〗**********************\n"); printf("\t序号\t时间\t课程名\t老师\t教室\t节时\t总周时\n");while(flag){if(str[i].weeks!=0)printf("\t%d\t%s\t%s\t%s\t%s\t%s\t%d\ n",i+1,str[i].time,str[i].lessonname, str[i].teacher,str[i].classroom,str[i ].hours,str[i].weeks);elseflag=0;i++;}printf("\t*************************** *******************************\n"); system("pause");system("cls");}void querymenu3() /*查询函数*/{int number;system("cls");while(1){printf("\t┏**********欢迎使用〖查询课程子子菜单〗程序************┓\n");printf("\t* 1. ☆按照时间查询☆ * \n");printf("\t* 2. ☆按照课程查询☆ * \n");printf("\t* 3. ☆返回主菜单☆ * \n");printf("\t*****************请输入选择的功能编号(1-6):*****************\n");printf("\t 输入: ");scanf("%d",&number);if(number<0 || number>3){printf("\t\t你输入的功能号错误,请重新输入,按任意键继续!!\n");system("cls");continue;}switch(number){case 1: looktime();break; /*调用查询函数*/case 2: looklessonname();break; /*调用查询课程名函数*/case 3: menu1();break; /*调用返回主菜单函数*/}}}void looktime(){int i=0,sum=0;char time1[8];system("cls");printf("\t ***********欢迎使用〖以时间查询课程〗子程序****************\n");printf("\t *****************请输入你想查询课表的时间:");scanf("%s",time1);printf("\t序号\t时间\t课程名\t 老师\t教室\t节时\t总周时\n");for(i=0;i<=30;i++){if((strcmp(time1,str[i].time))==0){printf("\t%d\t%s\t%s\t%s\t%s\t%s\t%d\ n",i+1,str[i].time,str[i].lessonname, str[i].teacher,str[i].classroom,str[i ].hours,str[i].weeks);sum=sum+1; /*如输入查询的内容和课程相同则加一*/ }}if(sum==0) /*如果等于0 则说明没有与输入查询内容相同*/printf("\t *********************无此时间!查询不到!***********************\n");printf("\t *******************按任意键返回查询子菜单:********************\n");system("pause");system("cls");querymenu3();}void looklessonname(){int i=0,sum=0;char lessonname1[12];system("cls");printf("\t ***********欢迎使用〖以课程名查询课程〗子程序****************\n");printf("\t *****************请输入你想查询课表的课程名:");scanf("%s",lessonname1);printf("\t序号\t时间\t课程名\t 老师\t教室\t节时\t总周时\n");for(i=0;i<=30;i++){if((strcmp(lessonname1,str[i].lessonn ame))==0){printf("\t%d\t%s\t%s\t%s\t%s\t%s\t%d\ n",i+1,str[i].time,str[i].lessonname, str[i].teacher,str[i].classroom,str[i ].hours,str[i].weeks);sum=sum+1;}}if(sum==0) /*上面通解*/printf("\t *********************无此课程名!查询不到!***********************\n");printf("\t *******************按任意键返回查询子菜单:********************\n");system("pause");system("cls");querymenu3();}void add(){int i,flag1=1;FILE *fp;system("cls");i=0; /*保存到文本*/if ((fp=fopen("文件保存.txt","w"))==NULL){printf("file openerror!\n");exit(0);}else{fprintf(fp,"\t********************〖按照时间顺序显示〗*********************\n");fprintf(fp,"\t序号\t时间\t课程名\t老师\t教室\t节时\t总周时\n");while(flag1){if(str[i].weeks!=0)fprintf(fp,"\t%d\t%s\t%s\t%s\t%s\t%s\ t%d\n",i+1,str[i].time,str[i].lessonn ame,str[i].teacher,str[i].classroom,s tr[i].hours,str[i].weeks);elseflag1=0;i++;}fprintf(fp,"\t*****************************************************************\n");}fclose(fp);printf("*******************保存成功按任意键返回查询主菜单:********************\n");system("pause");system("cls");}void amend(){int i=0,flag=1,u,n;char c;system("cls");printf("\t**********************〖修改课程〗**********************\n");printf("\t*************************课程列表*************************\n");printf("\t序号\t时间\t课程名\t老师\t教室\t节时\t总周时\n");while(flag){if(str[i].weeks!=0)printf("\t%d\t%s\t%s\t%s\t%s\t%s\t%d\ n",i+1,str[i].time,str[i].lessonname, str[i].teacher,str[i].classroom,str[i ].hours,str[i].weeks);elseflag=0;i++;}printf("\t********************是否确定修改(y修改/n返回主函数):");c=getch();putch(c);printf("\n");if(c=='n'||c=='N'){printf("\t*************************按任意键返回主菜单:**********************\n");system("pause");system("cls");menu1();}else{printf("\t*******************输入需要修改课程的序号:");scanf("%d",&n);while(1){printf("\t┏************************************* ****************┓\n");printf("\t* 1. ☆修改序列%d 课程所有信息☆* \n",n);printf("\t* 2. ☆修改序列%d 课程时间☆* \n",n);printf("\t* 3. ☆修改序列%d 课程课程名☆* \n",n);printf("\t* 4. ☆修改序列%d 课程教室☆* \n",n);printf("\t* 5. ☆返回主菜单☆ *\n");printf("\t*****************请输入选择的功能编号(1-8):*************\n");printf("\t 输入: ");scanf("%d",&u);if(u<0 || u>5){printf("\t\t你输入的功能号错误,请重新输入,按任意键继续!!\n");system("cls");continue;}switch(u){case 1: amendnews(n);break; /*调用修改整个课程信息函数*/case 2: amendtime(n);break; /*调用修改课程时间函数*/case 3: amendlessonname(n);break; /*调用修改课程课程名函数*/case 4: amendclassroom(n);break; /*调用修改课程教室函数*/case 5: menu1();break; /*调用返回主菜单函数*/}}}}void amendnews(int i){printf("\t******************修改序列%d 课程所有信息*******************\n",i);printf("\t\t修改课程信息:\n"); printf("\t\t修改课程时间:");scanf("%s",&str[i-1].time);printf("\t\t修改课程名:");scanf("%s",str[i-1].lessonname);printf("\t\t修改授课老师:");scanf("%s",str[i-1].teacher);printf("\t\t修改教室:");scanf("%s",str[i-1].classroom);printf("\t\t修改第几节课:");scanf("%s",str[i-1].hours);printf("\t\t修改总周时:");scanf("%d",&str[i-1].weeks);printf("\t*****************返回修改子菜单查看修改结果*****************\n");system("pause");system("cls");amend();}void amendtime(int i){printf("\t******************修改序列%d 课程时间*******************\n",i);printf("\t\t修改课程时间:");scanf("%s",&str[i-1].time);printf("\t*****************返回修改子菜单查看修改结果*****************\n");system("pause");system("cls");amend();}void amendlessonname(int i){printf("\t******************修改序列%d 课程课程名*******************\n",i);printf("\t\t修改课程名:");scanf("%s",str[i-1].lessonname);printf("\t*****************返回修改子菜单查看修改结果*****************\n");system("pause");system("cls");amend();}void amendclassroom(int i){printf("\t******************修改序列%d 课程教室*******************\n",i);printf("\t\t修改教室:");scanf("%s",str[i-1].classroom); printf("\t*****************返回修改子菜单查看修改结果*****************\n");system("pause");system("cls");amend();}void deleted(){int i=0,flag=1,n;char c;struct student temp;system("cls");printf("\t**********************〖删除课程〗**********************\n");printf("\t*************************课程列表*************************\n");printf("\t序号\t时间\t课程名\t老师\t教室\t节时\t总周时\n");while(flag){if(str[i].weeks!=0)printf("\t%d\t%s\t%s\t%s\t%s\t%s\t%d\n",i+1,str[i].time,str[i].lessonname,str[i].teacher,str[i].classroom,str[i].hours,str[i].weeks);elseflag=0;i++;}printf("\t********************是否确定修改(y修改/n返回主函数):");c=getch();putch(c);printf("\n");if(c=='n'||c=='N'){printf("\t*************************按任意键返回主菜单:**********************\n");menu1();}else{printf("\t*******************输入需要删除课程的序号:");scanf("%d",&n);for(i=n-1;i<=30;i++) {temp.weeks=str[i].weeks;strcpy(temp.time,str[i].time);strcpy(temp.lessonname,str[i].lessonn ame);strcpy(temp.teacher,str[i].teacher) ;strcpy(temp.classroom,str[i].classroo m);strcpy(temp.hours,str[i].hours);str[i].weeks=str[i+1].weeks; strcpy(str[i].time,str[i+1].time); strcpy(str[i].lessonname,str[i+1].lessonname);strcpy(str[i].teacher,str[i+1].teac her);strcpy(str[i].classroom,str[i+1].clas sroom);strcpy(str[i].hours,str[i+1].hours);str[i+1].weeks=temp.weeks;strcpy(str[i+1].time,temp.time);strcpy(str[i+1].lessonname,temp.lesso nname);strcpy(str[i+1].teacher,temp.teache r);strcpy(str[i+1].classroom,temp.classr oom);。

相关文档
最新文档