C语言课程设计学生选课系统

合集下载

c语言课程设计学生选课系统

c语言课程设计学生选课系统

c语言课程设计学生选课系统一、教学目标本课程的目标是让学生掌握C语言编程基础,能够运用C语言设计学生选课系统。

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

2.技能目标:学生能够运用C语言编写简单的程序,具备一定的编程能力,能够独立设计并实现学生选课系统的核心功能。

3.情感态度价值观目标:学生通过本课程的学习,能够培养对计算机编程的兴趣和热情,提高解决问题的能力,培养团队协作和自主学习的意识。

二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.C语言基础知识:包括基本语法、数据类型、运算符、控制结构等。

2.函数:包括函数的定义、声明、调用等。

3.数组和字符串:包括一维数组、多维数组、字符串的基本操作等。

4.指针:包括指针的基本概念、指针与数组、指针与函数等。

5.结构体和文件:包括结构体的定义和使用、文件的读写操作等。

6.学生选课系统的设计与实现:包括系统需求分析、系统设计、核心功能实现等。

三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:通过讲解C语言的基本语法、数据类型、运算符、控制结构等知识,让学生掌握C语言的基础知识。

2.案例分析法:通过分析实际的学生选课系统的案例,让学生了解并掌握系统的设计与实现方法。

3.实验法:让学生通过动手编写程序,巩固所学知识,提高编程能力。

4.小组讨论法:分组让学生讨论并解决问题,培养团队协作和自主学习的意识。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》等相关教材。

2.参考书:提供相关的C语言编程参考书籍,供学生自主学习。

3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高学生的学习兴趣。

4.实验设备:提供计算机实验室,让学生能够进行上机实验,提高编程能力。

五、教学评估为了全面、客观、公正地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现,评估学生的学习态度和积极性。

C语言选课管理系统课程设计

C语言选课管理系统课程设计

C语言选课管理系统课程设计一、教学目标本课程旨在让学生掌握C语言选课管理系统的开发方法,培养其编程能力和问题解决能力。

具体目标如下:1.知识目标:学生能够理解C语言的基本语法、数据结构和常用算法;掌握面向对象编程思想。

2.技能目标:学生能够使用C语言进行程序设计,独立完成选课管理系统的开发;具备调试和优化程序的能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,使其认识到编程在实际应用中的重要性,提高其创新精神和团队合作意识。

二、教学内容本课程的教学内容主要包括C语言基础知识、数据结构、算法、面向对象编程和选课管理系统的设计与实现。

具体安排如下:1.C语言基础知识:介绍C语言的基本语法、变量、运算符、控制结构等。

2.数据结构:讲解数组、链表、栈、队列、树等基本数据结构及其应用。

3.算法:学习常用排序算法、查找算法、递归算法等,培养学生的算法思维。

4.面向对象编程:介绍类、对象、封装、继承、多态等基本概念,并学会使用面向对象的方法解决问题。

5.选课管理系统设计与实现:分析系统需求,设计系统架构,编写功能模块,完成系统集成。

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

1.讲授法:用于讲解基本概念、语法和算法,使学生掌握理论知识。

2.讨论法:学生针对案例进行分析,培养其问题解决能力和团队合作精神。

3.案例分析法:分析实际项目案例,使学生学会将理论知识应用于实际问题。

4.实验法:让学生动手编写代码,培养其编程能力和实践能力。

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

1.教材:选用权威、实用的教材,如《C程序设计原理与应用》、《C++ Primer》等。

2.参考书:提供相关领域的经典著作,如《算法导论》、《数据结构与算法分析》等。

3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高教学质量。

4.实验设备:保证学生有足够的实践机会,提高其编程能力和实践能力。

C++程序设计源代码 学生选课系统

C++程序设计源代码 学生选课系统
编号的课程,如果存在则提示重新输入,否则将该课程按照顺序插入到相 应位置 5)删除一门课程的基本信息,通过输入课程编号,首先查找是否存在该课程 编号的课程,如果存在则将该课程删除,否则给出提示信息,提示该课程 不存在 6)对课程信息进行修改。 7)选修一门课程,需要给出学号和课程编号,如果课程编号不存在则重新输 入,直到输入正确为止,并将学号和相应的课程编号存入 SelectInfo.txt 文件中 8)查看所选课程。
I
目录
第一章 设计题目的内容、任务及具体要求 ..................................1 第二章 总体设计思路 ....................................................2
2.1 程序功能 ........................................................... 2 2.2 模块关系 ........................................................... 2 2.3 总体框图 ............................................................ 3 第三章 功能模块的具体设计 ..............................................4 3.1 主函数模块的设计 ................................................... 4 3.2 显示课程信息模块的设计 ............................................. 7 3.3 查询模块模块的设计 ................................................. 8 3.4 增加模块的设计 ..................................................... 9 3.5 删除模块模块的设计 ................................................ 13 3.6 修改模块模块的设计 ................................................ 14 3.7 选课模块的设计 .................................................... 15 3.8 显示选课情况模块的设计 ............................................. 17 第四章 功能模块的调试及测试 ...........................................18 4.1 登陆界面和主菜单界面的显示 ........................................ 18 4.2 查询所有课程信息的显示结果 ........................................ 19 4.3 查询单个课程信息的显示结果 ........................................ 19 4.4 添加课程信息的显示结果 ............................................ 20 4.5 删除和修改课程信息的显示结果 ...................................... 20 4.6 选课的显示结果 .................................................... 21 4.7 查询选课情况的显示结果 ............................................ 22 4.8 退出 .............................................................. 22 总结 ..................................................................23 致 谢 ................................................................24 参考资料:............................................................. 25 附程序清单............................................................. 26

c++学生管理系统课程设计

c++学生管理系统课程设计

c++学生管理系统课程设计C++学生管理系统课程设计是一个非常常见的编程项目,旨在帮助学生练习使用C++语言来实现一个基本的学生信息管理系统。

这个系统可以用于录入、查看、修改和删除学生信息,并可以计算学生的平均分和排名。

在这个系统中,学生信息可以包括学号、姓名、性别、年龄、班级和成绩等。

通过使用C++的面向对象编程思想,可以创建一个学生类来表示学生信息,并可以在主程序中实例化该类来创建和管理学生对象。

首先,系统需要提供一个菜单界面,让用户可以选择不同的操作,比如添加学生信息、查看学生信息、修改学生信息和删除学生信息等。

用户可以通过输入相应的选项来执行特定的操作。

对于添加学生信息的操作,系统会要求用户输入学生的各个属性值,并根据输入的值创建一个新的学生对象并将其添加到系统中。

系统还可以提供验证机制,确保输入的学号不重复。

对于查看学生信息的操作,系统会将保存的学生信息按照一定的格式打印出来,以便用户查看。

用户可以选择按学号、姓名、班级等排序方式来查看学生信息。

对于修改学生信息的操作,系统会提示用户输入要修改的学生的学号,并根据学号在系统中查找对应的学生对象。

然后,用户可以选择要修改的属性,并输入新的值来更新学生对象的信息。

对于删除学生信息的操作,系统会提示用户输入要删除的学生的学号,并根据学号在系统中查找对应的学生对象。

然后,系统会确认用户是否要删除该学生信息,并在用户确认后将该学生对象从系统中移除。

除了上述基本功能,学生管理系统还可以提供其他附加功能,比如计算学生的平均分和排名。

系统可以遍历所有学生对象,并计算出他们的平均分和排名,然后将结果打印出来供用户查看。

总的来说,C++学生管理系统课程设计是一个综合性的编程项目,通过实现该项目,学生可以练习和巩固他们在C++语言和面向对象编程方面的知识。

此外,通过这个项目,学生还可以提高他们的逻辑思维能力和问题解决能力。

学生选课系统C语言程序代码

学生选课系统C语言程序代码

学生选课系统C语言程序代码(总9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--#include<>#include<>struct couse * head1;struct student * head2;struct couse键盘录入\n"); printf("\n2.返回主菜单\n");printf("\n请选择编号(1~3):\n");scanf("%d",&i);switch(i){case(1):keyboardc();break;case(2):break;}}void insertc(struct couse *incouse)增课程\n");printf("\n2.删除课程\n");printf("\n3.返回主菜单\n");printf("\n请选择编号(1~3):\n");scanf("%d",&i);switch(i){case(1):{incouse=(struct couse *)malloc(sizeof(struct couse)); printf("\n课程编号\t课程名称\t学分\t课程人数上限\n");scanf("%d%s%d%d",&incouse->num1,incouse->name1,&incouse->score,&incouse->Melepeo);incouse->nelepeo=0;insertc(incouse);break;}case(2):{printf("\n请输入要删除课程的编号:\n");scanf("%d",&num1);delc(num1);break;}case(3):break;}}void keyboards()键盘录入\n");printf("\n2.返回主菜单\n");printf("\n请选择编号(1~2):\n");scanf("%d",&i);switch(i){case(1):keyboards();break;case(2):break;}}void inserts(struct student * incouse)增学生信息\n"); printf("\n2.删除学生信息\n");printf("\n3.返回主菜单\n");printf("\n请选择编号(1~3):\n");scanf("%d",&i);switch(i){case(1):{incouse=(struct student *)malloc(sizeof(struct student));incouse->nelen=0;incouse->nelenum[0]=0;printf("\n学生学号\t学生姓名\n");scanf("%d%s",&incouse->num2,incouse->name2); inserts(incouse);break;}case(2):{printf("\n请输入要删除学生的学号:\n");scanf("%d",&num2);dels(num2);break;}case(3):break;}}void elect(struct student * s)询可选课程\n");printf("\n2.查询已选课程\n");printf("\n3.返回主菜单\n");printf("\n请输入(1~3):\n");scanf("%d",&i);switch(i){case(1):cheak();break;case(2):hcheak();break;case(3):break;}}void listc()看课程信息\n");printf("\n2.查看学生信息\n");printf("\n3.返回主菜单\n");printf("\n请输入编号(1~3):\n");scanf("%d",&i);switch(i){case(1):listc();break;case(2):lists();break;case(3):break;}}int main()入课程信息 \n");printf("\n 2.课程信息管理\n");printf("\n 3.录入学生信息\n");printf("\n 4.学生信息管理\n");printf("\n 5.进入选课程序\n");printf("\n 6.系统信息查看\n");printf("\n 7.退出选课系统\n");printf("\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");printf("\n请输入菜单选项编号(1~7):\n");scanf("%d",&i);if(i<1 || i>7){printf("\n输入错误,请重输:\n");goto start;}switch(i){case(1):{system("cls");//清屏函数inputc();goto start;break;}case(2):{system("cls");managementc(); goto start;break;}case(3):{system("cls");inputs();goto start;break;}case(4):{system("cls");managements();goto start;break;}case(5):{system("cls");elective();goto start;break;}case(6):{system("cls");store();goto start;break;}case(7):{system("cls");printf("\n感谢使用本系统!再见!\n"); }}return(0); }。

课程信息管理系统c语言

课程信息管理系统c语言

课程信息管理系统c语言课程信息管理系统(C语言)一、引言课程信息管理系统是一种用来管理和组织课程信息的软件系统。

它能够对教学计划、课程表、学生选课等进行管理,帮助学校、教育机构或教师高效地管理课程信息。

本文将通过介绍课程信息管理系统的功能、特点和实施过程,详细阐述C语言在该系统中的应用。

二、功能介绍1. 学生管理:该系统能够记录学生的个人信息,如学号、姓名、班级等,并能进行学生选课管理,包括选课、退课等操作。

2. 课程管理:系统可以管理各门课程的信息,如课程编号、课程名称、学分等,并能进行课程安排,制定教学计划。

3. 教师管理:系统可以记录教师的基本信息,提供教师选课、授课安排等功能。

4. 成绩管理:系统能够记录学生的各科成绩,并提供成绩查询、统计等功能,方便学生和教师进行学业评估。

5. 课程评价:系统可以记录学生对课程的评价和反馈,帮助学校和教师改进教学质量。

三、特点和优势1. 数据集中管理:课程信息管理系统将学生、教师、课程等信息集中管理,方便快捷,减少重复工作。

2. 数据安全性高:系统采用数据库来存储和管理数据,确保数据的安全性和完整性。

3. 操作简便:系统界面友好,操作简单明了,即使对计算机操作不熟悉的教师和学生也能够轻松上手。

4. 信息共享:系统支持信息共享,学生、教师和管理者可以通过系统查询相关信息,提高工作效率。

5. 数据分析功能:系统能够对学生选课情况、成绩分布等进行统计和分析,为教学改革提供数据支持。

四、实施过程1. 需求分析:通过与学校、教师和学生的沟通,明确系统的需求和功能。

2. 系统设计:根据需求分析的结果,设计系统的数据库结构、界面和功能模块。

3. 编码实现:使用C语言编写相应的代码,实现系统的各个功能模块。

4. 测试调试:对系统进行功能测试和性能测试,确保系统的稳定性和可靠性。

5. 上线部署:将系统部署到服务器上,并进行相关的数据迁移和备份工作。

6. 培训和维护:对教师和学生进行系统培训,并进行后期的系统维护和更新。

使用C#制作学生选课系统

使用C#制作学生选课系统

.cnbook (6)接下来限定“Sname”字段值不能为空,其方法是:直接在“Sname”行的最后一列的【允 ww 许空】项单击 取消勾选即可。如图 8 所示。
w 图6 设置主键
.c .net ww 图 7 设置主键后的“Sno”字段
book 使用 C#制作学生选课系统
t .net 内容提要:本文是使用 C#制作学生选课系统。主要介绍了如何在 Visual C# 2005 环境下使用 e k 和 SQL Server 2000 设计一个学生选课系统,其中详细介绍了如何建立数据库的连接、编 .n oo 写数据读取方法和数据更新方法等。 ok nb 关键字:学生选课系统、Visual C# 2005、SQL Server 2000、
k.n boo 2.2 创建数据表 oo cn 接下来介绍使用 SQL Server 2000 的企业管理器直接创建学生信息表“tbl_Student”、课程信息
nb w. 表“tbl_Course”和选课信息表“tbl_SC”的方法和步骤,从而完成学生选课系统的数据库设计。 .c ww 1. 使用企业管理器 w 打开 SQL Server 2000 的企业管理器,依次展开控制台目录,定位到“SelectCourse”数据库, w 并选择“表”,则在右边的“表”项目中列出了所有的数据表,其中最后一个为用户创建的“tbl_User” w et k 数据表,如图 1 所示。
,则
.cnbook 弹出【选择名称】对话框,输入表名为“tbl_Student”,然后单击【确定】按钮即可,如图 11 所示。 .net www 图 11 输入表名 ok nb (10)最后关闭表设计器,这时可以在企业管理器的表视图区域中看到刚刚创建的用户数据表
c “tbl_Student”。 w. 3. 创建课程信息表 ww 根据如表 3 所示的表结构定义,按照创建学生信息表“tbl_Student”的方法,设计课程信息表

c#课程设计学生选课系统设计

c#课程设计学生选课系统设计

c#课程设计学生选课系统设计一、课程目标知识目标:1. 学生能掌握C#编程语言的基础知识,包括数据类型、控制结构、类与对象等;2. 学生能理解数据库的基本原理,掌握SQL语句的编写和数据库操作;3. 学生能了解学生选课系统的业务需求,掌握系统设计的基本方法和步骤。

技能目标:1. 学生能运用C#语言编写学生选课系统的功能模块,如登录、选课、退课等;2. 学生能通过数据库技术实现对学生选课信息的管理,包括数据存储、查询和更新;3. 学生能运用面向对象的设计思想,设计出结构清晰、易于维护的学生选课系统。

情感态度价值观目标:1. 学生通过课程学习,培养对计算机编程的兴趣和热情,提高信息素养;2. 学生在团队协作中,培养沟通与协作能力,增强团队意识;3. 学生在解决实际问题的过程中,培养勇于探索、积极创新的精神。

课程性质:本课程为实践性较强的课程,结合课本知识,以学生选课系统为案例,使学生掌握C#编程和数据库技术。

学生特点:学生具备一定的C#编程基础和数据库知识,对实际项目开发感兴趣,但可能缺乏项目实践经验。

教学要求:课程应注重理论与实践相结合,强调动手实践,引导学生通过自主学习和团队合作,完成学生选课系统的设计与实现。

同时,关注学生的情感态度价值观的培养,提高学生的综合素质。

二、教学内容1. C#编程基础:- 数据类型与变量- 控制结构(顺序、分支、循环)- 方法与数组- 类与对象- 继承与多态- 异常处理2. 数据库原理与应用:- 数据库基本概念- SQL语句(SELECT、INSERT、UPDATE、DELETE)- 数据库设计(实体关系、E-R图)- 数据库访问技术3. 学生选课系统设计:- 系统需求分析- 系统设计(模块划分、类设计)- 数据库设计(表结构设计、关系建立)- 界面设计(UI设计、用户体验)- 功能实现(登录、选课、退课、查询成绩等)4. 项目实践与团队协作:- 项目开发流程- 团队协作与沟通- 代码版本控制(如Git)- 项目测试与调试教学内容根据课程目标,结合教材章节,进行科学组织和系统安排。

C语言的教务管理系统(2000行代码)

C语言的教务管理系统(2000行代码)

C语言教务管理系统一、程序结构图二、程序运行截图1. 个人信息简介2.修改颜色3.注册界面4. 信息保存至文件5.登录界面6.管理员录入信息7. 学生信息录入8.学生成绩录入9.学生课程表录入10.学生信息查询界面11学生信息查询12.学生成绩查询13.学生课表查询三、代码(一个cpp)#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include <conio.h>#include"windows.h"#define student_num 1000 /*定义1000个学生*/#define teacher_num 5 /*定义5个老师(管理员)*/int is_my_student(struct student *p,int *size); /*声明返回第i+1个学生的函数*/ int is_my_teacher(struct teacher *p,int *size); /*声明返回第i+1个老师的函数*/ int length_student_name(char *p); /*声明验证用户名函数*/int length_student_password(char *p); /*声明验证密码长度函数*/int length_teacher_name(char *p); /*声明验证用户名函数*/int length_teacher_password(char *p); /*声明验证密码长度函数*/int show_menu_login(); /*声明登录菜单函数*/int show_menu_register(); /*声明注册菜单函数*/int show_teacher_select(); /*声明教师录入菜单函数*/int show_student_select(); /*声明学生查询菜单函数*/int student_register(struct student *ptr_student,int *size); /*声明学生注册函数*/ int teacher_register(struct teacher *ptr_teacher,int *size); /*声明老师注册函数*/ int vaild_student_name(char *p); /*声明验证用户名函数*/int vaild_student_password(char *p); /*声明验证密码函数*/int vaild_teacher_name(char *p); /*声明验证用户名函数*/int vaild_teacher_password(char *p); /*声明验证密码函数*/int vaild_two_password(char *p1,char *p2); /*声明验证两次密码是否相同函数*/ int yes_no_return(); /*声明选择是否返回上一层函数*/void load(); /*声明加载函数*/void register_(int *count1,int *count2); /*声明注册函数*/void display_student(struct student stu); /*声明显示学生信息函数*/void display_teacher(struct teacher tea); /*声明显示老师信息函数*/void student_file1(); /*将保存的学生的账号密码存入文件中*/ void student_file2(); /*将保存的学生的个人信息存入文件中*/ void student_file3(); /*将保存的学生的成绩存入文件中*/void teacher_file(); /*将保存的老师的账号密码存入文件中*/ void input_information(int count); /*声明输入学生信息函数*/void input_score_menu(int count); /*声明输入学生成绩函数*/void color(); /*声明选择窗体颜色函数*/void print_stu_information(int count_stu); /*声明输出账号为num的学生的信息函数*/void print_stu_score(int count_stu); /*声明输出账号为num的学生的成绩函数*/void show_menu(); /*声明初始化界面函数*/void input(); /*声明输入函数*/void menu1(); /*声明教师录入课程表主菜单函数*/void menu2(); /*声明学生查询课程表主菜单函数*/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(); /*声明删除函数*/void add_score(int count); /*声明添加学生成绩函数*/void xiugai_score(int count); /*声明修改学生成绩函数*/void shanchu_score(int count); /*声明删除学生成绩函数*/void chaxun_score(int count); /*声明按要求查询学生成绩函数*/void paixu_score(int count); /*声明学生成绩排序函数*/void tongji_score(int count); /*声明学生成绩统计函数*/float chinese(int count); /*声明计算语文成绩最大值函数*/int chr(int count); /*声明计算语文成绩及格人数的函数*/ float english(int count); /*声明计算英语成绩最大值函数*/int ehr(int count); /*声明计算英语成绩及格人数的函数*/ float math(int count); /*声明计算数学成绩最大值函数*/int mhr(int count); /*声明计算数学成绩及格人数的函数*/ float computer(int count); /*声明计算计算机成绩最大值函数*/int thr(int count); /*声明计算计算机成绩及格人数的函数*/float PE(int count); /*声明计算体育成绩最大值函数*/int phr(int count); /*声明计算体育成绩及格人数的函数*/ float sum_score(int count); /*声明计算总分成绩最大值函数*/ void load_student(int a); /*声明启动学生函数*/void load_teacher(int a); /*声明启动老师函数*/struct student /*学生结构体*/{/*个人信息*/int student_id; /*账号*/char student_name[20]; /*姓名*/char password[16]; /*密码*/int age; /*年龄*/char qq[12]; /*QQ号*/char tel[12]; /*电话*/int grade; /*年级*//*各科成绩*/float chinese; /*语文分数*/float english; /*英语分数*/float math; /*数学分数*/float computer; /*计算机分数*/float PE; /*体育分数*/float sum; /*总分*//*课程表*/char time[10]; /*时间*/char lessonname[20]; /*课程名*/char teacher[20]; /*授课老师*/char classroom[10]; /*教室*/char hours[10]; /*第几节课*/int weeks; /*周时*/};struct teacher /*老师结构体*/ {int teacher_id; /*账号*/char teacher_name[20]; /*姓名*/char password[16]; /*密码*/};struct student our_student[student_num]; struct teacher our_teacher[teacher_num];void main() /*主函数*/{system("color f0"); /*初始化背景颜色*/show_menu(); /*制作人信息简介*/load();}void load() /*启动函数*/{int flag=1; /*控制循环结束的变量*/int a=0,b=0; /*记录已注册的学生的人数a为学生个数b为老师个数*/int *count1=&a,*count2=&b; /*指向学生人数和老师人数的指针*/int correct_student,correct_teacher;color();register_(count1,count2); /*注册学生和老师的帐号*/student_file1();teacher_file();while(flag){switch(show_menu_login()) /*显示登录菜单*/{case 1: /*选择1,进入学生登录*/if(correct_student=is_my_student(our_student,count1)){printf("\n ◆学生登录成功!\n");display_student(our_student[correct_student-1]);printf("\n");printf(" ");system("pause");load_student(a);}elseprintf("\n登录失败!\n");printf("\n");printf(" 提示:按Y退出登录界面,按N返回登录界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,进入老师登录,即管理员登录*/ if(correct_teacher=is_my_teacher(our_teacher,count2)){printf("\n ◆管理员登录成功!\n");display_teacher(our_teacher[correct_teacher-1]);printf("\n");printf(" ");system("pause");load_teacher(a);}elseprintf("\n登录失败!\n");printf("\n");printf(" 提示:按Y退出登录界面,按N返回登录界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,退出登录*/system("cls");flag=0;break;default:printf("请正确输入1-3:");system("cls");}}}void load_student(int a) /*启动学生函数*/{int flag=1;system("cls");while(flag){switch(show_student_select()){case 1: /*选择1,学生信息查询*/system("cls");print_stu_information(a);printf("\n");printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,学生成绩查询*/system("cls");print_stu_score(a);printf("\n");printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,学生课表查询*/menu2();printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 4: /*选择4,退出查询界面*/system("cls");flag=0;break;default:printf("请正确输入1-4:");system("cls");}}}void load_teacher(int a) /*启动老师函数*/{int flag=1;system("cls");while(flag){switch(show_teacher_select()){case 1: /*选择1,学生信息录入*/input_information(a);system("cls");student_file2();printf("\n 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,学生成绩录入*/input_score_menu(a);system("cls");student_file3();printf("\n 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,学生课表录入*/menu1();printf(" 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 4: /*选择4,退出管理界面*/system("cls");flag=0;break;default:printf("请正确输入1-4:");system("cls");}}}int length_student_name(char *p) /*验证用户名是否合法*/ {int l;l=strlen(p);if(l>20||l<1)return 0;elsereturn 1;}int vaild_student_name(char *p) /*判断用户名是否有效*/{int i=0;int len=strlen(p);if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判断首字母是不是字母*/ {for(i=0;i<len;i++){if(!(p[i]='_'||(p[i]>='a'&&p[i]<='z')||(p[i]>='A'&&p[i]<='Z')||(p[i]>='0'&&p[i]<=' 9'))) /*判断后面的字符是否有效*/return 0;}return 1;}elsereturn 0;}int length_student_password(char *p) /*密码长度有效性验证*/{int len;len=strlen(p);if(len<6||len>16)return 0;elsereturn 1;}int vaild_student_password(char *p) /*密码的有效性验证*/{int i=0;for(;*p!='\0';p++){if(!((*p>='a'&&*p<='z')||(*p>'A'&&*p<'Z')||(*p>='0'&&*p<='9'))) return 0;}return 1;}int vaild_two_password(char *p1,char *p2) /*验证两次密码是否相同*/{if(strcmp(p1,p2)==0)return 1;elsereturn 0;}int student_register(struct student *ptr_student,int *size) /*完成注册功能*/{char password[16];char repassword[16];if(*size==student_num){puts(" ◆注册人数已满!");printf("\n");return 0;}system("cls");printf("\n\n");printf(" ★请输入注册学生姓名:");fflush(stdin);gets(ptr_student[*size].student_name);if(!(length_student_name(ptr_student[*size].student_name)&&vaild_student_name(ptr_student[*size].student_name))){printf(" ◆您输入的姓名无效,学生姓名在1-20之间,首字符为字母,后面必须为字母、数字或下划线!!!");return 0;}printf("\n");printf(" ★请输入注册密码:");fflush(stdin);gets(password);printf("\n");printf(" ★请再次输入注册密码:");fflush(stdin);gets(repassword);printf("\n");if(!vaild_two_password(password,repassword)){printf("\n №:两次输入的密码不一致!!!");printf("\n");return 0;}elsestrcpy(ptr_student[*size].password,password);if(!(length_student_password(ptr_student[*size].password)&&vaild_student_pa ssword(ptr_student[*size].password))){printf(" ◆您输入的密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!");printf("\n");return 0;}printf(" ★您的编号为:%d,这将是您的登录账号!!!",ptr_student[*size].student_id=20150000+*size);return 1;}int is_my_student(struct student *p,int *size) /*如果登录成功则返回第i+1个学生的信息,否则返回0*/{int i;int zhanghao;char mima[18];system("cls");printf("\n\n");printf(" ★请输入您的账号:");scanf("%d",&zhanghao);fflush(stdin);printf("\n");printf(" ★请输入您的密码:");gets(mima);for(i=0;i<*size;i++){if((zhanghao==p[i].student_id)&&(strcmp(mima,p[i].password)==0)) return i+1;}return 0;}void display_student(struct student stu) /*显示学生信息*/{printf("\n ★您的账号是:%d\n",stu.student_id);}int length_teacher_name(char *p) /*验证用户名是否合法*/{int l;l=strlen(p);if(l>20||l<1)return 0;elsereturn 1;}int vaild_teacher_name(char *p) /*判断用户名是否有效*/{int i=0;int len=strlen(p);if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判断首字母是不是字母*/ {for(i=0;i<len;i++){if(!(p[i]='_'||(p[i]>='a'&&p[i]<='z')||(p[i]>='A'&&p[i]<='Z')||(p[i]>='0'&&p[i]<=' 9'))) /*判断后面的字符是否有效*/return 0;}return 1;}elsereturn 0;}int length_teacher_password(char *p) /*密码长度有效性验证*/{int len;len=strlen(p);if(len<6||len>16)return 0;elsereturn 1;}int vaild_teacher_password(char *p) /*密码的有效性验证*/{int i=0;for(;*p!='\0';p++){if(!((*p>='a'&&*p<='z')||(*p>'A'&&*p<'Z')||(*p>='0'&&*p<='9'))) return 0;}return 1;}int teacher_register(struct teacher *ptr_teacher,int *size) /*完成注册功能*/{char password[16];char repassword[16];if(*size==teacher_num){puts(" ◆注册人数已满!");printf("\n");return 0;}system("cls");printf("\n\n");printf(" ★请输入注册教师姓名:");fflush(stdin);gets(ptr_teacher[*size].teacher_name);if(!(length_teacher_name(ptr_teacher[*size].teacher_name)&&vaild_teacher_na me(ptr_teacher[*size].teacher_name))){printf(" ◆您输入的姓名无效,教师姓名在1-20之间,首字符为字母,后面必须为字母、数字或下划线!!!");printf("\n");return 0;}printf("\n");printf(" ★请输入注册密码:");fflush(stdin);gets(password);printf("\n");printf(" ★请再次输入注册密码:");fflush(stdin);gets(repassword);printf("\n");if(!vaild_two_password(password,repassword)){printf("\n №:两次输入的密码不一致!!!");printf("\n");return 0;}elsestrcpy(ptr_teacher[*size].password,password);if(!(length_teacher_password(ptr_teacher[*size].password)&&vaild_teacher_password(ptr_teacher[*size].password))){printf(" ◆您输入的密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!");printf("\n");return 0;}printf(" ★您的编号为:%d,这将是您的登录账号。

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语言项目案例C语言项目案例。

在学习C语言的过程中,很多人会感到枯燥和乏味,因为C语言作为一门结构化的程序设计语言,更多的是以算法和逻辑为主,缺乏实际的项目案例来练习和应用。

因此,本文将给大家介绍一些C语言项目案例,帮助大家更好地理解和应用C语言。

1. 学生成绩管理系统。

学生成绩管理系统是一个非常经典的C语言项目案例。

通过这个项目,你可以学习如何设计一个简单的学生成绩管理系统,包括学生信息的录入、成绩的输入和查询、成绩的统计和分析等功能。

这个项目涉及到文件操作、结构体的使用、指针的应用等内容,对于初学者来说是一个很好的练习项目。

2. 简单的图书管理系统。

图书管理系统是另一个很好的C语言项目案例。

通过这个项目,你可以学习如何设计一个简单的图书管理系统,包括图书信息的录入、借阅和归还功能、图书信息的查询和统计等功能。

这个项目涉及到文件操作、链表的应用、字符串处理等内容,对于提高学生的编程能力和综合运用C语言知识是非常有帮助的。

3. 简单的学生选课系统。

学生选课系统是另一个很好的C语言项目案例。

通过这个项目,你可以学习如何设计一个简单的学生选课系统,包括学生信息的录入、课程的添加和删除、学生选课和退课等功能。

这个项目涉及到文件操作、数组的应用、函数的设计等内容,对于提高学生的逻辑思维和编程能力是非常有帮助的。

4. 简单的学生信息管理系统。

学生信息管理系统是一个非常基础的C语言项目案例。

通过这个项目,你可以学习如何设计一个简单的学生信息管理系统,包括学生信息的录入、修改和删除、学生信息的查询和打印等功能。

这个项目涉及到文件操作、数组的应用、字符串处理等内容,对于初学者来说是一个很好的练习项目。

总结。

通过以上介绍的C语言项目案例,我们可以看到,C语言作为一门结构化的程序设计语言,可以应用到很多实际的项目中。

通过这些项目案例的学习和练习,我们不仅可以提高自己的编程能力,还可以更好地理解和应用C语言的知识。

因此,我建议大家在学习C语言的过程中,多多尝试一些实际的项目案例,这样可以更好地提高自己的编程能力和解决问题的能力。

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

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

C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息。

二、学生成绩查询: 输入一个学号,在文件中查找此学生, 若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息。

同时也可以全部把各科的平均成绩,最高和最低分输出.三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来.四、输出全部学生信息和全部学生成绩。

五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。

总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。

2、查询模块:可用stu *lookdata(stu *p1)来实现。

找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。

3、插入模块:可用insert( )函数来实现。

其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。

5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。

二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。

主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include"stdio.h”#include"stddef.h"#include"stddef。

C语言课程设计实践报告—学生选课管理系统[内附程序源代码](可编辑)

C语言课程设计实践报告—学生选课管理系统[内附程序源代码](可编辑)

C语言大型作业实践报告计算机1001制作者:李菁华张兆丰秦恒加2011年6月题目:选修课程管理系统要求:假定有N门选修课,每门课有课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息。

学生可按要求(如总学分不能少于20学分)选课。

课程信息维护,如录入、修改、删除等,课程信息用文件保存。

课程信息浏览?输出。

学生选课功能。

查询功能包括:按学分、课程性质、学生等查询。

统计功能。

统计各门课程的选修人数。

本系统要有通用性、界面美观、操作方便。

要考虑系统安全。

课程信息录入系统选修课程信息录入选修课程信息保存主程序目录选择总体设计思路(流程图):学生选课系统课程信息读入学生信息输入选课系统数据保存选修课数据维护系统添加修改删除以word格式输出密码系统密码验证系统权限限制系统密码对退出程序密码对选修课程信息查找按各种类型查找密码错3次以上具体算法流程设计思路(流程图):主程序目录选择1.学生选课系统;2.选修课程信息输出;3.选修课程信息查找;4.管理员选项;5.退出系统。

管理员选项密码验证系统读入系统时间,通过强制转换成unsigned long int型数据作为初始密码用户输入密码(若是管理员会拥有密码钥匙,得出现在的密码,该密码每分钟都会变化)密码正确进入管理员管理界面,密码不正确重新输入密码输入错误3次以上 12 3学生选课系统选修课程信息以word2003形式输出返回主菜单选修课程信息查找选修课程信息从文件内读入输入按什么查找1.课程编号;2.课程名;3.课程种类;4.总课时;5.教学课时;6实验课时;7.学分;8.开课学期;9.已选人数。

输入查找的关键字从文件内读入的课程信息与关键字逐一对比,完全匹配输出;查找完毕学生信息输入课程信息浏览不选少于这门20分选课系统课选课成功判断学分是否大于20分大于20分结束选课选课信息储存退出程序管理员模块管理员模块 3目录选择1.学生选课系统;2.选修课程信息管理系统;3.退出系统12 5学生选课系统二级目录选择1.新建选修课程信息;2.管理选修课程信息;3.统计每门课程选择人数;4.选修课程信息输出;5.回到主菜单。

学生选课管理系统c语言

学生选课管理系统c语言

学生选课管理系统简介学生选课管理系统是一种用于学生选课和管理课程的系统。

通过该系统,学生可以方便地选取自己感兴趣的课程,并进行课程的管理和查询,同时教务部门可以通过系统进行课程的发布、修改和管理。

功能需求学生选课管理系统需要具备以下功能:1.学生注册和登录功能:学生需要先注册账号,然后通过账号登录系统。

2.学生选课功能:学生通过系统浏览可选的课程列表,并选择自己感兴趣的课程进行选课。

3.课程查询功能:学生可以查询已选和未选课程的详细信息,包括课程名称、授课教师、上课时间等。

4.课程管理功能:教务部门可以通过系统添加、修改和删除课程信息,包括课程名称、授课教师、上课时间等。

5.学生管理功能:教务部门可以通过系统管理学生信息,包括学生姓名、学号、选课情况等。

6.成绩管理功能:教务部门可以通过系统录入学生的成绩,并提供学生成绩查询功能。

7.课程评价功能:学生可以对已修完的课程进行评价,包括评分和评论。

8.学分统计功能:系统可以根据学生的选课情况自动计算学分和学分绩点,并提供查询功能。

技术实现为了实现学生选课管理系统,可以使用C语言进行开发。

以下是一些技术实现的建议:1.数据存储:可以使用文件系统来存储学生、课程和成绩等信息。

可以使用文本文件或二进制文件存储数据,通过文件操作函数进行读写。

2.用户界面:可以使用命令行界面或图形界面来实现用户的交互。

使用C语言的终端输出函数可以实现简单的命令行界面,使用图形界面库可以实现更复杂的图形界面。

3.数据结构:可以使用结构体来表示学生、课程和成绩等信息,通过数组或链表等数据结构进行管理。

4.用户认证:可以使用用户名和密码进行用户的身份验证。

可以将用户信息保存在文件中,通过比对输入的用户名和密码来验证用户身份。

5.查询和排序:可以使用各种算法来实现课程查询和排序功能。

例如,可以使用线性搜索来查询课程信息,使用冒泡排序或快速排序来对课程进行排序。

系统流程以下是学生选课管理系统的基本流程:1.学生注册和登录:学生在系统中注册账号,并通过账号登录系统。

教学计划管理系统c语言代码

教学计划管理系统c语言代码

教学计划管理系统c语言代码教学计划管理系统C语言代码在现代教育中,教学计划管理是非常重要的一项工作。

教学计划管理系统可以帮助学校和教师更好地组织和管理教学过程,提高教学效果。

本文将介绍一个基于C语言开发的教学计划管理系统的代码实现。

一、系统功能设计教学计划管理系统主要包括以下功能:1. 教师信息管理:包括教师的基本信息、教授课程等;2. 课程信息管理:包括课程的基本信息、授课教师等;3. 教学计划管理:包括教学计划的编制、修改、查询等;4. 学生信息管理:包括学生的基本信息、选课情况等;5. 成绩管理:包括成绩的录入、查询、统计等。

二、系统代码实现下面是一个简化版的教学计划管理系统的C语言代码实现:```c#include <stdio.h>#include <stdlib.h>// 定义结构体typedef struct {char name[20]; // 姓名int age; // 年龄char gender[10]; // 性别} Teacher;typedef struct {char name[30]; // 课程名称Teacher teacher; // 授课教师} Course;typedef struct {Course course; // 课程int year; // 学年int semester; // 学期} TeachingPlan;typedef struct {char name[20]; // 姓名int age; // 年龄char gender[10]; // 性别TeachingPlan teachingPlan; // 教学计划} Student;// 教师信息管理函数void teacherInfoManagement() {// 实现教师信息的增删改查等操作printf("教师信息管理\n");}// 课程信息管理函数void courseInfoManagement() {// 实现课程信息的增删改查等操作printf("课程信息管理\n");}// 教学计划管理函数void teachingPlanManagement() {// 实现教学计划的编制、修改、查询等操作 printf("教学计划管理\n");}// 学生信息管理函数void studentInfoManagement() {// 实现学生信息的增删改查等操作printf("学生信息管理\n");}// 成绩管理函数void scoreManagement() {// 实现成绩的录入、查询、统计等操作 printf("成绩管理\n");}int main() {int choice;// 主菜单while (1) {printf("欢迎使用教学计划管理系统\n"); printf("1. 教师信息管理\n");printf("2. 课程信息管理\n");printf("3. 教学计划管理\n");printf("4. 学生信息管理\n");printf("5. 成绩管理\n");printf("0. 退出系统\n");printf("请输入您的选择:");scanf("%d", &choice);switch (choice) {case 1:teacherInfoManagement();break;case 2:courseInfoManagement();break;case 3:teachingPlanManagement();break;case 4:studentInfoManagement();break;case 5:scoreManagement();break;case 0:printf("感谢使用教学计划管理系统,再见!\n"); exit(0);default:printf("输入有误,请重新输入!\n");}}return 0;}```三、系统使用说明使用该教学计划管理系统,用户可以根据需要选择相应的功能进行操作。

c语言课程设计教务管理系统

c语言课程设计教务管理系统

c语言课程设计教务管理系统一、教学目标本课程的目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,能够运用C语言设计和实现简单的教务管理系统。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据结构、算法和编程思想,了解教务管理系统的原理和实现方法。

2.技能目标:学生能够运用C语言进行编程,设计和实现一个简单的教务管理系统。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生的问题解决能力和创新意识。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程思想,以及教务管理系统的原理和实现方法。

具体安排如下:1.C语言的基本语法:包括变量、数据类型、运算符、表达式、控制语句等。

2.数据结构:包括数组、链表、栈、队列等。

3.算法:包括排序算法、查找算法等。

4.编程思想:包括结构化编程、面向对象编程等。

5.教务管理系统的原理和实现方法:包括学生信息管理、课程信息管理、成绩管理等。

三、教学方法本课程的教学方法主要包括讲授法、讨论法、案例分析法和实验法。

具体安排如下:1.讲授法:用于讲解C语言的基本语法、数据结构、算法和编程思想。

2.讨论法:用于讨论教务管理系统的原理和实现方法。

3.案例分析法:通过分析典型的教务管理系统案例,让学生了解和掌握教务管理系统的实现方法。

4.实验法:让学生动手实践,设计和实现一个简单的教务管理系统。

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

具体安排如下:1.教材:选用《C程序设计语言》作为主要教材,辅助以《C语言编程实例解析》等参考书。

2.多媒体资料:包括PPT课件、教学视频等。

3.实验设备:包括计算机、网络设备等,用于实验和实践教学。

五、教学评估本课程的评估方式包括平时表现、作业和考试。

具体安排如下:1.平时表现:通过课堂参与、提问、讨论等环节评估学生的学习态度和积极性。

2.作业:布置适量的作业,评估学生的理解和应用能力。

学生选课管理系统

学生选课管理系统

/*教师的账号:teacher 密码:teacher*/#include <stdio.h>#include <windows.h>#include <stdlib.h>#include <conio.h>#include <string.h>#define CMAX30//最多可以添加的课程数量#define SMAX30//最大支持的学生数量#define CHMAX3//最大支持的选课数量/*定义两个结构体分别用来储存学生信息和课程的信息*/typedef struct course {int id;//课程编号char name[30]; //课程名char major[30];//专业char ter[30];//任课教师int max;//最大选课人数int sum;//目前选课人数} cor;typedef struct student {int id;//学号char name[30];//学生姓名char collage[30];//所在学院char major[30];//所在专业char Class[30];//所在班级int num;//选课数量cor mine[CHMAX];//学生选课信息}stu;cor listCor[CMAX];//储存从文本中读取的课程信息stu listStu[SMAX];//储存从文本中读取的学生信息int log;//当前登录的学生信息在listStu中的下标int sumCor;//课程数量int sumStu;//学生数量/********************************************函数申明*********************************************/int initStu();//从文件读取学生数据int initCor();//从文件读取课程信息void menuMain();//打印主菜单void menuStu();//学生菜单void menuTer();//教师菜单void logInTer();//老师登录void logInStu();//学生登录void Register();//学生注册void changeStu();//修改学生信息void signUp();//选课void list_ch();//选课情况void list_cor();//课程清单void logOut();//注销void saveStu();//将学生信息保存到文件void saveCor();//将课程信息保存到文件void changeCor();//修改课程void addCor();//添加课程void choose();//学生选课情况int findStu(int n);//查询学生int findCor(int n);//查询课程/********************************************函数定义*********************************************/int main(){sumStu=initStu();sumCor=initCor();while(1){menuMain();}return 0;}int initStu()//从文件读取学生数据{int i=0, j=0;FILE *fp = fopen("student.txt","r");//读取文件中的信息for(i=0 ; !feof(fp) ; i++){fscanf(fp,"%d %s %s %s %s %d \n",&listStu[i].id, listStu[i].name, listStu[i].collage ,listStu[i].major, listStu[i].Class, &listStu[i].num);for(j=0 ; j<listStu[i].num ; j++){fscanf(fp,"%d %s %s %s\n", &listStu[i].mine[j].id, listStu[i].mine[j].name,listStu[i].mine[j].major, listStu[i].mine[j].ter);}fscanf(fp,"\n");}fclose(fp);return i;}int initCor() //从文件读取课程信息{FILE *fp= fopen("course.txt","r");int i;for(i=0 ; !feof(fp) ; i++){fscanf(fp,"%d %s %s %s %d %d\n", &listCor[i].id, listCor[i].name, listCor[i].major, listCor[i].ter, &listCor[i].max, &listCor[i].sum);}fclose(fp);return i;}void menuMain() //打印主菜单{system("cls");printf("主菜单\n");printf("**************************************************\n");printf("\n\n\t\t >1.老师登录<\n\n");printf("\n\n\t\t >2.学生登录<\n\n");printf("\n\n\t\t >3.学生注册<\n\n");printf("\n\n\t\t >0.退出系统<\n\n");printf("\n*************************************************\n");while(1){switch(getch()){case '1':logInTer();break;case '2':logInStu();break;case '3':Register();break;case '0':exit(0);break;default:continue;break;}}}void menuTer()//教师菜单{system("cls");printf("教师菜单\n");printf("**************************************************\n");printf("\n\n\t\t >1.添加课程<\n\n");printf("\n\n\t\t >2.修改或删除课程<\n\n");printf("\n\n\t\t >3.课程菜单<\n\n");printf("\n\n\t\t >4.选课情况<\n\n");printf("\n\n\t\t >0.退出登录<\n\n");printf("\n*************************************************\n");while(1){switch(getch()){case '1':addCor();break;case '2':changeCor();break;case '3':list_cor();break;case '4':choose();break;case '0':return menuMain();default:continue;break;}}}void menuStu()//学生菜单{system("cls");printf("学生菜单\n");printf("**************************************************\n");printf("\n\n\t\t >1.修改信息<\n\n");printf("\n\n\t\t >2.学生选课<\n\n");printf("\n\n\t\t >3.选课情况<\n\n");printf("\n\n\t\t >4.注销用户<\n\n");printf("\n\n\t\t >0.退出登录<\n\n");printf("\n*************************************************\n");while(1){switch(getch()){case '1':changeStu();break;case '2':signUp();break;case '3':list_ch();break;case '4':logOut();break;case '0':return menuMain();default:continue;break;}}}void logInTer() //老师登录{char name[30];char password[30];char ch;int i=0;do{system("cls");printf("管理登录");printf("\n*************************************************\n");printf("\n\n\t\t* 账号:");gets(name);//输入密码以*的形式显示在屏幕上printf("\n\n\t\t* 密码:");while( i<30 && (ch=getch()) != '\r'){password[i++] = ch;putchar('*');}password[i] = '\0';if( (strcmp(name, "teacher") == 0) && (strcmp(password, "teacher") == 0) ){printf("\n\n\n*************************************************\n");printf("* 登陆成功");Sleep(1000);menuTer();}else{printf("\n\n\n*************************************************\n");printf("* 账号或密码输入错误\n* 按esc返回菜单") ;i = 0;}}while( getch() != 27 );return menuMain(); ;}void logInStu()//学生登录{int id;char name[30];do{system("cls");printf("学生登录");printf("\n*************************************************\n");printf("\n\n\t\t* 学号:");scanf("%d", &id);printf("\n\n\t\t* 姓名:");fflush(stdin);gets(name);log=findStu(id);if( strcmp(listStu[log].name,name)==0 && log!=-1 ){printf("\n\n\n*************************************************\n");printf("* 登陆成功");Sleep(1000);return menuStu();}else{printf("\n\n\n*************************************************\n");printf("* 输入错误\n* 按esc返回菜单") ;}}while( getch() != 27 );return menuMain(); ;}void Register()//学生注册(输入学生信息){stu a;printf("\n*************************************************\n");printf("注册\n\t学号:");scanf("%d", &a.id);if(findStu(a.id) != -1){printf("\n*************************************************\n");printf("* 该账号已存在\n* 按esc返回菜单") ;if(getch()==27)return menuMain();return Register();}fflush(stdin);//清空缓冲区printf("\t姓名:");gets();printf("\t学院:");gets(a.collage);printf("\t专业:");gets(a.major);printf("\t班级:");gets(a.Class);a.num=0;listStu[sumStu++] = a;//将新注册的学生信息写入文件saveStu();printf("\n*************************************************\n");printf("* 注册成功") ;system("pause>nul");return menuMain();}int findStu(int n)//查询学生{for(int i=0 ; i<sumStu ; i++){if( n == listStu[i].id){return i;}}return -1;}int findCor(int n){for(int i=0 ; i<sumCor ; i++){if(n == listCor[i].id){return i;}}return -1;}void changeStu()//修改信息{char a[30];system("cls");//先显示当前信息printf("修改学生信息\n");printf("**************************************************\n");printf("\n当前信息:");printf("\n\t\t学号:%d\n",listStu[log].id);printf("\t\t姓名:%s",listStu[log].name);printf("\n\t\t学院:%s",listStu[log].collage);printf("\n\t\t专业:%s",listStu[log].major );printf("\n\t\t班级:%s",listStu[log].Class );printf("\n\n**************************************************\n");//输入修改后的信息printf(" \n请输入修改后的信息(学号无法修改):");printf("\n\t\t姓名:");scanf("%s", a);strcpy(listStu[log].name , a);printf("\n\t\t学院:");scanf("%s", a);strcpy(listStu[log].collage , a);printf("\n\t\t专业:");scanf("%s", a);strcpy(listStu[log].major , a);printf("\n\t\t班级:");scanf("%s", a);strcpy(listStu[log].Class , a);//保存到文件saveStu();printf("\n\n**************************************************\n");printf("修改成功");system("pause");return menuStu();}void signUp()//学生选课{int sum=0, i;system("cls");//先显示当前信息printf("选课\n");printf("**************************************************\n");if(listStu[log].num>=CHMAX){printf("\n\t最大选择%d门课程\n" ,CHMAX);system("pause");return menuStu();}printf("\n\t编号\t\t课程名\t\t任课老师\n");for(i=0 ; i<sumCor ; i++){if((strcmp(listCor[i].major ,listStu[log].major )==0) && (listCor[i].sum<listCor[i].max )){printf("\t%d\t\t%s\t\t%s\n",listCor[i].id ,listCor[i].name ,listCor[i].ter );sum++;}}printf("\n\n当前共有%d门课可选",sum);printf("\n**************************************************\n");printf("输入你要选择的课程编号");scanf("%d",&i);if((findCor(i) == -1) || (strcmp(listCor[i-1].major ,listStu[log].major )!=0) || (listCor[i-1].sum>=listCor[i-1].max )){printf("* 没有该门课程\n* 按esc返回菜单") ;if(getch()==27)return menuStu();return signUp();}else{listStu[log].mine[listStu[log].num] = listCor[i-1];listStu[log].num++;saveStu();listCor[i-1].sum++;saveCor();printf("* 选课成功\n* 按任意键返回") ;system("pause");return menuStu();}}void logOut()//注销用户{stu a;printf("\n确定要注销?(Y/N)");char ch=getch();if(ch == 'y' || ch=='Y'){for(int i=log ; i<sumStu-1 ; i++){listStu[i] = listStu[i+1];}sumStu--;saveStu();return menuMain();}elsereturn menuStu();}void list_ch()// 选课情况{system("cls");printf("选课情况\n");printf("**************************************************\n");printf("\n\t编号\t\t课程名\t\t任课老师\n");for(int i=0 ; i<listStu[log].num ; i++){printf("\t%d\t\t%s\t\t%s\n",listStu[log].mine[i].id,listStu[log].mine[i].name ,listStu[log].mine [i].ter );}printf("\n\n**************************************************\n");printf("共选了%d门课\n最多可选%d门", listStu[log].num,CHMAX);system("pause");return menuStu();}void addCor()//添加课程{cor a;system("cls");printf("添加课程\n");printf("**************************************************\n");printf("\n\t\t课程名:");scanf("%s",);printf("\n\n\t\t任课老师:");scanf("%s",a.ter);printf("\n\n\t\t可选专业:");scanf("%s",a.major );printf("\n\n\t\t最大选课人数:");scanf("%d",&a.max);printf("\n\n\n**************************************************\n* 添加成功\n* 按任意键返回");a.sum = 0;a.id = sumCor+1;//将添加的课程保存下来listCor[sumCor] = a;sumCor++;saveCor();//返回菜单system("pause>nul");return menuTer();}void changeCor()//修改或删除课程{cor a;int i;system("cls");//先显示当前信息printf("修改课程信息\n");printf("**************************************************\n");printf("\n输入要修改的课程编号:");scanf("%d" ,&a.id);i = findCor(a.id);if(i == -1){printf("\n\n**************************************************\n");printf("未找到该课程\n* 按esc返回\n* 其他键继续");if(getch() == 27)return menuTer();return changeCor();}printf("\n课程名:%s",listCor[i].name);printf("\n任课教师:%s",listCor[i].ter);printf("\n可选专业:%s",listCor[i].major );printf("\n最大选课人数:%d",listCor[i].max);printf("\n\n**************************************************\n");//输入修改后的信息printf(" \n请输入修改后的信息(编号无法修改):");printf("\n\t\t课程名:");scanf("%s", );printf("\n\t\t任课教师:");scanf("%s", a.ter);printf("\n\t\t可选专业:");scanf("%s",a.major );printf("\n\t\t最大选课人数:");scanf("%d", &a.max);a.id = i+1;a.sum = listCor[i].sum;listCor[i] = a;//保存到文件saveCor();printf("\n\n**************************************************\n");printf("修改成功");system("pause");return menuTer();}void list_cor()//课程菜单{system("cls");printf("课程菜单");printf("\n**************************************************\n\n");printf("\n\t编号\t课程名\t任课老师\t可选专业\t最大人数\t当前人数\n");for(int i=0 ; i<sumCor ; i++){if( listCor[i].max!=0)printf("\n\t%d\t%s\t%s\t\t\%s\t\t%d\t\t\t%d\n",listCor[i].id ,listCor[i].name,listCor[i].ter,listCor[i ].major,listCor[i].max ,listCor[i].sum );}printf("\n\n**************************************************\n当前共有%d门课\n",sumCor);system("pause");return menuTer();}void saveStu()//将学生信息保存到文件{FILE *fp= fopen("student.txt","w+");//以w+的方式打开文件,即可清空文件再保存for(int i=0 ; i<sumStu ; i++){fprintf(fp,"%d %s %s %s %s %d \n",listStu[i].id, listStu[i].name,listStu[i].collage, listStu[i].major, listStu[i].Class, listStu[i].num);for(int j=0 ; j<listStu[i].num ; j++){fprintf(fp,"%d %s %s %s\n", listStu[i].mine[j].id, listStu[i].mine[j].name, listStu[i].mine[j].major, listStu[i].mine[j].ter);}fprintf(fp,"\n");}fclose(fp);}void saveCor()//将课程信息保存到文件{FILE *fp= fopen("course.txt","w+");int i;for(i=0 ; i<sumCor; i++){if(listCor[i].max!= 0){fprintf(fp,"%d %s %s %s %d %d\n", listCor[i].id, listCor[i].name, listCor[i].major, listCor[i].ter, listCor[i].max, listCor[i].sum);}}fclose(fp);}void choose()//选课情况{int j, k;system("cls");printf("选课情况");printf("\n**************************************************\n\n");printf("请输入要查看的学生学号:");scanf("%d",&j);k = findStu(j);if(k == -1){printf("\n**************************************************\n");printf("未找到该学生\n* 按esc返回\n* 按其他键继续");if(getch() == 27)return menuTer();return choose();}printf("\n学生:%s",listStu[k].name);printf("\n\t编号\t\t课程名\t\t任课老师\n");for(int i=0 ; i<listStu[k].num ; i++){printf("\t%d\t\t%s\t\t%s\n",listStu[k].mine[i].id,listStu[k].mine[i].name ,listStu[k].mine[i].ter );}printf("\n\n**************************************************\n");printf("一共选了%d们课\n* 按esc返回\n* 按其他键继续",listStu[k].num);if(getch()==27)return menuTer();return choose();}。

C++课程设计(学生管理系统)

C++课程设计(学生管理系统)

课程设计目的熟悉程序设计的基本流程,掌握程序设计基本方法,基本技巧、并能综合运用,提高程序设计能力。

通过实践,熟悉掌握C++语言中面向过程部分的内容,能够运用C++语言解决一个实际问题。

设计环境及语言VC+集成开发环境(IDE)Microsoft visual C++ 6。

0语言。

课题设计步骤1.需求分析从软件使用者处获得用户需求,确定课题开发应具备的功能;2.系统结构设计将整个系统功能分块,考虑各个功能模块应具备的功能,模块间的联系,划分不同的子系统进行设计;3.数据设计设计系统中新的数据类型、存储类型;4.代码设计在以上阶段的基础上编写代码;5.软件测试使用实现设计好的测试用例、测试次数对编制的程序进行测试,发现存在错误(包括潜在的问题),加以修改,完善。

课程设计内容:1.学生个人信息管理系统。

本课程设计通过建立、修改、查询、显示、排序等显示学生个人信息等功能,具体的技术有:(1)结构、枚举类型的定义与使用;(2)数组的定义使用;(3)程序的三种基本控制流程的综合、灵活运用;(4)普通指针和数组指针的定义和使用;(5)各类函数的定义和调用;(6)文件的输入/输出(7)程序的调试。

2.具备的功能有:(1)新增学生数据的添加:姓名,成绩.(2)修改学生信息:输入姓名,根据姓名,修改该学生的三项学生信息数据并显示;(3)删除一个学生信息:输入姓名,根据学生姓名删除该生信息;(4)根据学生姓名查询:输入姓名,查找该学生并显示学生个人信息;(5)显示全部学生信息;(6)根据学生姓名首字母先后排序学生个人信息;3.设计要求(1)在Visual C++控制台应用程序方式下设计课题。

(2)设计的程序完成该课程规定的功能。

(3) 程序具有一定的健壮性.4.设计部分#include<iostream。

h〉#include〈string.h>#include〈fstream。

h〉class stu //定义一个stu类{char name[20];double math,chinese,english,average,sum;public:stu(){}stu(char n[20],double ma,double chin,double eng){strcpy(name,n);math=ma;chinese=chin;english=eng;}double getsum(){sum=chinese+english+math;return sum;}double getaver(){average=getsum()/3;return average;}friend void main();};void main(){cout<〈"请选择您需要的操作!"〈<endl;cout〈〈”操作:"<〈endl;cout〈〈”(0)数据录入"<<endl;cout〈〈"(1)增加人员"〈〈endl;cout<〈”(2)删除人员”〈〈endl;cout<<”(3)修改数据"<<endl;cout〈〈"查询:"<<endl;cout〈<”(4)按总成绩查询”〈〈endl;cout<<"(5)按姓名查询”〈〈endl;cout<〈"(6)输出所有学生的数据"〈〈endl;cout<<"成绩名词"<<endl;cout<〈"(7)按总分查询排名”〈<endl;cout<〈"(8)按语文查询排名"<〈endl;cout<<"(9)按数学查询排名"〈〈endl;cout〈<”(y)按英语查询排名”〈<endl;cout〈<”选择相关操作请输入相对的括号里的阿拉伯数字!"<〈endl;char p;char w;stu *s[50];ofstream *file[50];int i=0;int j=0;bool flag2=0;do{cin>>p;if((p>='0'&&p〈='10'))flag2=1;elsecout<<"指令错误!请重新输入:"<<endl;}while(flag2==0);do{switch(p){case '0':{char c;char name[20];double math,chinese,english;do{cout<<"请输入姓名"<<endl;cin〉>name;cout〈〈”请输入数学成绩:”〈〈endl;cin>>math;cout<〈"请输入语文成绩:"<<endl;cin〉>chinese;cout<<"请输入外语成绩:"〈<endl;cin>〉english;file[j]=new ofstream(”d:\\document",ios::ate);*file[j]<<”姓名"〈<name〈<”数学成绩”〈〈math<〈”语文成绩"〈<chinese<〈”外语成绩”<〈english〈〈endl;j++;s[i]=new stu(name, math, chinese, english);i++;cout〈〈”数据录入成功,想继续录入吗(y/n)"<〈endl;cin>>c;flag2=0;do{if(c!=’y’&&c!='n'){cout<<”指令错误!请重新输入!"<<endl;cin〉>c;}elseflag2=1;}while(flag2==0);}while(c==’y’);break;}case '4’:{double t;char c;do{int flag1=0;cout〈<”请输入你要查询学生的总成绩"<<endl;cin〉>t;for(int q=0;q〈i;q++){if(s[q]—〉getsum()==t){flag1=1;cout<〈”您要查询的学生是:”〈<(*s[q])。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
scanf("%d",&num2);
dels(num2);
break;
}
case(3):break;
}
}
学生选课
学生选课可以查询已选和可选课程,此外还有返回主菜单选项学生选课界面设计如图11所示。
图11 学生选课界面
进入选课选项则会提示用户输入学号然后再进行选课。若不选则可以退回主菜单。学生选课流程图如图12所示。
【系统详细设计】
在这部分中,应该具有相关关键实现技术(如使用什么库函数,使用什么循环结构等)。
【系统调试和测试】调试:介绍设计过程中遇到的问题和解决方法。
测试:介绍如何测试系统,测试中发现的问题和解决方案。
【结束语】这部分篇幅不大,对整个设计中做的工作、获得的成果、心得体会等做一个简单小结。
【参考文献】罗列在设计过程中查阅的文献名称
printf("2.删除学生信息\n");
printf("3.返回主菜单\n");
printf("请选择(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):
{
incouse=(struct student *)malloc(sizeof(struct student));
printf("\n请输入菜单选项(1~6):");
scanf("%d",&i);
if(i<1 || i>6)
{
printf("输入错误,请重输:\n");
goto start;
}
switch(i)
{
case 1:
{
system("cls");
inputc();
goto start;
break;
}
case 2:
switch(i)
{
case(1):keyboardc();break;
case(2):break;
}
}
课程管理
课程管理有三个选项,新增课程,删除课程和返回主菜单。课程管理界面设计如图7所示。
图7课程管理界面
课程管理可以选择增添或删除课程,若输入课程格式错误会显示错误,用户需要重新输入程管理流程图如图8所示。
printf("请输入(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):cheak();break;
case(2):hcheak();break;
case(3):break;
}
}
8
调试
在调试程序的过程中,一方面遇到了一些编程序时的通病,比如经常性的漏掉了语句尾的分号,还偶尔的漏掉大括号,导致程序不能正常编译。另一方面在编写函数模块时,由于之前设计考虑得不足,会有一些功能无法实现,最后只有删掉这些无法实现的设计模块。
武汉理工大学华夏学院
课程设计报告书
课程名称:C课程设计
题 目:学生选课系统程序设计
系 名:信息工程系
专业班级:
姓 名:
学号:
指导教师:
成 绩:
2016年3月4日
课程设计任务书
学生姓名:专业班级:
指导教师:工作单位:
设计题目:学生选课系统程序设计
初始条件:
学生选课系统能提供学生选课,以及学生和课程信息管理等一系列功能。
{
system("cls");
managementc();
goto start;
break;
}
case 3:
{
system("cls");
inputs();
goto start;
break;
}
case 4:
{
system("cls");
managements();
goto start;
break;
}
注意:参考文献罗列的格式为
资料编号作者姓名文献或期刊名称出版社名称,文献的出版时间或期刊的期号
例如:文献 [1] 谭浩强.,C程序设计(第二版)[M],北京:清华大学出版社,2001年
期刊 [2] 于振海.office XP网上数据存取.计算机应用文摘[J],2003,24;69(页)
二、课程设计说明书(或报告书)正文的书写格式简介
1.2.1
1.2.2…
2.1.1
2.1.2…
2.2.1
2.2.2…
3.1.1
3.1.2…
3.2.1
3.2.2…
……
二、表格 每个表格应有自己的表序与表题,表序与表题间空一格。
例如:表XXXX ,且表题与表序应写在表格的上方正中处。
三、插图 插图图面要整齐、美观,插图应与正文呼应,不能脱节。每幅插图应有图序与图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。
incouse->nelepeo=0;
insertc(incouse);
break;
}
case(2):
{
printf("请输入要删除课程的编号:\n");
scanf("%d",&num1);
delc(num1);
break;
}
case(3):break;
}
}
学生信息管理
学生信息管理可选新增或删除学生信息,若都不操作则可选返回主菜单。学生信息管理界面设计如图9所示。
printf("课程编号 课程名称 课程性质 总学时 授课学时 实验学时 学分 开课学期 人数上限\n");
scanf("%d\n%s\n%s\n%d\n%d\n%d\n%d\n%d\n%d\n",&incouse->num1,&incouse->name1,&incouse->xinzhi,&incouse->ztime,&incouse->stime,&incouse->score,&incouse->date,&incouse->Melepeo);
(2)课程信息和学生选课信息录入功能(课程信息用文件保存)
(3)课程信息浏览功能
(4)查询功能
(5)按学分查询
(6)某门课程学生选修情况(可选项)
2、本课程涉及的知识点
变量的定义、输入和输出函数、结构体类型的定义、结构体数组、循环语句、选择语句,文件的操作等。
设计报告撰写格式要求:
一、课程设计说明书(或报告书)正文内容
录入课程信息如下图13所示。
图13 录入课程信息
课程信息管理如下图14所示。
图14新增课程
删除课程如下图15所示。
图15删除课程
录入学生信息如下图16所示。
图16录入学生信息
新怎学生信息如下图17所示。
图17新增学生信息
删除学生信息如下图18所示。
图18删除学生信息
查询可选课程如下图19所示。
图19 查询可选课程
故此,经过分析后我觉得程序应该具有以下功能:
(1)系统以菜单方式工作
(2)课程信息和学生选课信息录入功能
(3)课程信息浏览功能
(4)查询功能
(5)按学分查询
6
系统由哪几个功能模块构成,给出功能模块图。C中模块化的工具是函数根据上面的需求分析,可以将这个系统的设计分为如下六大模块。
选课模块、按学分查找模块、按编号查找模块、查看课程模块、查看选课情况模块、课程输入模块、完成选择模块。模块图如下图1所示。
查询已选课程如下图20所示。
图20 查询已选课程
退出系统如下图21所示。
图21 退出系统
测试
测试过程中测试了菜单的一些功能是否能正常实现以及输入数据是否能储存。
图22 课程数据储存
图23 存储学生信息
图24 删除学生信息
9
经过几天的努力,终于是完成了这次的c课程设计,这期间我碰到了很多的问题,比如说在刚开始的时候,完全没有思路,不知到该从何入手,后来慢慢的琢磨,才想到要先写出一份设计方案出来,然后每个功能用一个函数来实现,即是c里面的模块化设计。但是,这并没有想象之中的一帆风顺,其间在我发现原先设计的一些功能根本无法用函数实现,于是又只能转过头去修改设计方案,删掉一些不能实现的功能,以此完善来设计。此外,有一些功能的实现也不是那么容易,比如说从二级菜单返回主菜单这个程序,我想了很久,试了几种方法,但都不行,最后只有用goto语句来实现这个功能。还有一些主要功能以我个人能力确实无法实现,所以只能从网上找答案了。总的来说,这个设计虽然并不是很完美,但我却在设计的过程中学到了很多东西,以前有些不懂的也渐渐的搞懂了。所以对于这次的c设计我还是比较满意的。
图1 系统功能模块图
另外,程序用了两个结构体和五个全局变量N1,N2,kk1,kk2,kk3。五个全局变量是用来控制输入数据的循环的。两个结构体分别是课程信息结构体:
struct couse 入课程信息 *\n");
printf("\t* 2.课程信息管理 *\n");
printf("\t* 3.录入学生信息 *\n");
Y
N
Y
N
N
Y
图12 学生选课流程图
实现该功能代码如下。
选课程序如下。用户要选课时,查询可选课程后会提示输入所要选的课程的编号,然后程序会根据所选的课程编号将所选课程信息储存。
void elect(struct student * s)询可选课程\n");
相关文档
最新文档