C语言程序设计实训说明书 某学院教学信息管理系统
C语言课程设计---学生信息管理系统

C程序设计报告书系部名称:电子工程学院学生姓名:专业名称:电子信息工程班级:学号:时间:2010年6月21日至2010年7月2日实验题目学生信息管理系统实验目的:了解利用c语言进行程序设计,通过利用模块化利用数组设计程序的方法,培养能够熟练应用该方法进行程序的设计,进而提高运用c语言编辑程序的能力。
一、实验内容通过c语言为主体,编写了一套学生成绩管理系统,该系统具有7项主要功能:分别为输入、显示、排列、修改、删除、添加、查询。
利用改程序可以在实际中处理问题,减少人工操作中的失误,以方便在实际工作可以利用此程序进行信息处理。
二、需求分析本程序将用到文件系统,list.txt文件内容作为数据源,其中单行内容代表一张纸条。
程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择对所开发系统功能的描述,想要实现的目标,测试数据等。
四、概要设计(1、方案设计对系统进行分析,给出结构图2、模块功能说明对各个模块进行功能的描述)2.各功能模块说明:1、学生信息录入功能(学生信息用文件保存)--输入;2、修改,删除,添加学生信息;3、从文件中读取学生信息,查询学生信息,可按照学号查询;4、从文件中读取学生信息,按储存量输出信息;5、按照成绩给学生排序;五、详细设计及运行结果1.学生管理系统模块图2.程序可以满足以下功能:1.各模块间通过菜单切换和调用2.主函数通过调用菜单函数实现对各功能模块的调用,各功能模块间根据需要可相互调用。
3.程序能够保证各模块功能的独立和数据共享。
4.相近功能以级联菜单的形式集成。
六、调试情况,设计技巧及体会两周的课程设计,通过学习,创建模块,到组织成为一个系统,让我受益匪浅,在其中,也遇到过许多问题,其中有些经过多次的调试仍不见效,让我也感到很头疼。
C语言程序设计实训说明书学院教学信息管理系统

中北大学程序设计实训说明书学院、系:软件学院专业:软件工程学生姓名:学号:设计题目:某学院教学信息管理系统起迄日期: 2014年11月21日~2015年1月17日指导教师:何志英2015 年 1月 10 日一、选题要求题目一:某学院教学信息管理系统功能:1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
2、输入功能:可以一次完成若干条记录的输入。
3、显示功能:完成全部教师记录的显示。
4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。
5、排序功能:按职工号或教学效果综合评分进行排序。
6、插入功能:按教学效果综合评分高低插入一条教师记录。
7、将教师记录存在文件中。
8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!要求:1、用C语言实现系统;2、利用结构体数组实现教学信息的数据结构设计;3、系统具有增加,查询,插入,排序等基本功能;4、系统的各个功能模块要求用函数的形式实现;5、将教学信息存在文件中。
考试题目要求:1、按教师性别统计统计评分的总算2、删除一个函数,程序仍能正常运行二、程序设计方法及主要函数介绍程序设计方法1.数据结构的设计:程序要求文档中要求使用结构体数组完成设计,每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
数据结构设计如下:{ 课程的定义与描述[40]; 课程名称; 开课学期[8]; 课程性质; 教学效果};{ 教师的定义与描述[8]; 姓名; 职工号[2]; 性别; 教学效果综合评分[8]; 职称[3]; 3门主讲课程};2.主函数与其他函数的关系:3.结构化的程序设计方法将实用功能封装在每一个子函数中,主函数通过调用子函数来实现相对应的功能。
体现了“自顶向下,逐步求精”的结构化程序设计思想。
学生信息管理系统实训报告(C语言版)

江西科技师范大学实验报告课程高级语言程序课程设计系别数学与计算机科学学院班级计算机科学与技术1班学号20102006姓名报告规格一、实验目的二、实验原理三、实验仪器四、实验方法及步骤五、实验记录及数据处理六、误差分析及问题讨论目录1. 实训一学成绩管理系统2.3.4.5.6.7.8.9.10.11.12.13.14.15.每次实验课必须带上此本子,以便教师检查预习情况和记录实验原始数据。
实验时必须遵守实验规则。
用正确的理论指导实践员必须人人亲自动手实验,但反对盲目乱动,更不能无故损坏仪器设备。
这是一份重要的不可多得的自我学习资料员它将记录着你在大学生涯中的学习和学习成果。
请你保留下来,若干年后再翻阅仍将感到十分新鲜,记忆犹新。
它将推动你在人生奋斗的道路上永往直前!实训一学生成绩管理系统一、实训目的和要求利用单链表结构实现学生成绩管理,了解数据库管理的基本功能,掌握C语言中的结构体、指针、函数、文件操作等知识,是一个C语言知识的综合应用。
注意其中的难点,指针变量作函数参数、函数值为指向结构体的指针及单链表机构的应用等知识。
二、主要仪器设备安装了Windows操作系统、Turbo C 或Visual C++的计算机。
三、实训内容和原理设计一个学生成绩管理系统,该系统使用单链表结构管理学生成绩,具有输入记录、查询记录、更新记录、统计记录及输出记录等功能。
四、实训小结1、功能描述如图所示,此成绩管理系统主要利用单链表实现,它由如下五大功能模块组成。
(1)输入记录模块。
输入记录模块主要完成将数据存入单链表中的工作。
在此成绩管理系统中,记录可以从以二进制形式存储的数据文件中读入,也可从键盘逐个输入学生记录。
学生记录由学生的基本信息和成绩信息字段构成。
当从数据文件中读入记录时,它就是在以记录为单位存储的数据文件中,将记录逐条复制到单链表中。
(2)查询记录模块。
查询记录模块主要完成在单链表中查找满足相关条件的学生记录。
C语言学生信息管理系统项目实训文档

广东交通职业技术学院软件技术(可视化程序设计)专业项目实训报告书课程名称:C语言程序设计课程设计课程设计题目:学生信息管理系统课程设计日期:2010年6月28日起7 月 3 日止小组成员:姓名:刘雁璋学号:17号指导教师:万东老师目录1 摘要概述开发系统的目的、意义及主要功能 (3)2 需求分析 (5)3 软件开发工具与环境概述 (5)3.1 开发工具:Turbo C 2.0/visualC 6.0 (5)3.2 运行环境: (5)4 概要设计 (6)4.1 用户接口: (6)4.2 内部接口: (6)4.3 出错信息: (6)5 详细设计 (8)6 系统测试 (14)7 结束语 (14)8 附程序源代码 (15)1摘要概述开发系统的目的、意义及主要功能1.1我是软件班的学生,学习了C语言当然要活学活用啦!C语言是一门比较基础的课程,虽然现在的社会已经很少用到,但是对我们学生来说还是有用的,因此我们要设计一个学生信息管理系统。
原因有几个:一是能看出我们学习C语言的情况,二是能表现出我们的创新能力,因为这个系统已经有N多人设计过了,看看我们能否推陈出新。
三是我了完成我们的作业需要。
1.2随着科学技术的不断提高,计算机科学日渐成熟,其强大功能已为人们深刻认识,它已进入人们生活的各个领域,并发挥了越来越重要的作用,针对人工管理的缺点,最好的解决办法就是借助计算机技术提供一个电子化的课程设计管理平台,学生信息管理系统就因此诞生了!1.3目的及意义:学生信息管理系统是学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为管理者提供充足的信息和快捷的查询手段.但是一直一来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻的认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
学生信息管理系统C语言课程设计说明书

int sex; /*学生性别*/
int phone;
/*学生*/
}LIST;
LIST L[100];
int main(void)
{
}
void revise_list ()/*自定义函数-修改数组*/
{
}
void print_list() /*自定义函数-列出菜单*/
学生学号
num
int
学生姓名
name[]
char
10
学生QQ
qq[]
char
10
学生性别
sex
int
学生
phone
int
使用语言创建的结构体如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int num; /*学生学号*/
char name[10]; /*学生姓名*/
4主要函数功能描述
4.1 主函数main()
函数原型:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define EXIT -1
#define LEN sizeof(struct list)
int key=0; /*stdlib-标准库头文件...sizeof-运算符...string-字符串...typedef-定义类型*/
{
}
3详细设计
3.1主控模块设计
控制整个程序的运行,通过主函数模块分别调用各个模块,实现各项功能,流程如下图
C语言程序设计实训指导书

C语言程序设计实训指导书(内部使用)主讲教师编写前言C语言是一种编程灵活、特色鲜明的程序设计语言,是计算机专业学生的基础课程,学好这种语言可以为后续的面向对象的语言打好坚实的基础,C语言除了学习必须的基本知识:如概念、方法和语法规则之外,更重要的是进行实训,以提高学习者的动手和编程能力,这才是学习语言的最终目的,结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计实训指导书》,以在实训过程中给学生提供帮助。
本书分为三个部分:实训总要求、实训模块和项目拓展实例。
第一部分为实训总要求,目的是为了让学生编写规范的代码,从开始程序设计就进行规范练习,为以后工作打下良好的基础。
第二部分为实训模块,有三个:(1)基础部分,为随堂实训,在分析案例的基础上,使学生掌握该部分内容的知识要点,并能灵活运行在实训中,为使学生目标明确,在实训开始给学生提出实训目的及要求;(2)深化部分,为综合实训,为提高学生的学习积极性,同时为培养软件开发的合作精神,在随堂实训完成的基础上,给学生设计相对该内容综合运用的实例,组织学生进行分组讨论,把每组的讨论结果同大家分享,由学生和老师共同给出评价,该方法可以丰富学生解决问题的方法,拓宽思路;(3)课程设计,为期末的课程设计,是对整个内容的一个综合设计,可以使学生从软件开发的角度开始思考问题、解决问题,形式仍然为分组设计,各小组设定项目经理、技术经理和成员,一般为5人一组,由项目经理组织人员、进行分工和协调工作,技术经理负责开发过程中遇到的疑难问题的解决,并进行开发的全程控制。
第三部分为案例拓展实例:学生成绩管理系统。
通过该实例从一个简单的顺序结构实例,根据内容逐步进行扩充,由小到大,由浅入深,使设计的功能越来越完善,完成了分支结构、循环结构、数组、函数、指针、结构体和文件内容的应用,最后成为一个完整的设计。
《C#.NET程序设计》课程设计说明书-教师信息管理系统

、《C#.N E T程序设计》课程设计说明书教师信息管理系统一、课程设计目的1)要求学生达到熟练掌握C#.NET基本结构以及C#语言的基本知识和技能;2)掌握面向对象程序开发的基本思路和方法;3)掌握数据库开发基本知识;4)能够利用所学的基本知识和技能,进行简单数据库应用程序设计。
二、课程设计任务与要求1. 基本要求:1)要求利用C#的编程思想以及组件开发原理来完成系统的设计;2)突出C#语言与其它语言不同点(即体现C#的高级功能,如属性概念、接口、事件、委托等);3)体现可视化编程基本思想,如系统带有菜单、工具栏、状态栏以及一些常用的高级控件。
2. 创新要求:在基本要求达到后,可进行创新设计。
三、需求分析本系统的设计主要具备以下功能:教师授课信息管理,即课程管理;教师个人信息管理;教师所属院系信息管理;教师月收入信息管理。
开始的界面也很美观,同时也方便用户的使用,快捷,实用。
这个设计中的每个模块都提供了以下四个功能:添加、修改,查询浏览以及删除,更清晰细致的展现了整个系统设计。
四、概要设计1、模块功能:(1)教师个人信息管理:添加:增加教师个人信息记录。
浏览:对已有教师个人信息进行浏览。
修改:对现有信息记录进行修改。
删除:删除选中信息记录。
(2)课程信息管理:添加:增加课程信息记录。
浏览:对已存在信息记录浏览。
修改:修改已存在信息记录。
删除:删除信息记录。
(3)院系类别信息管理:添加:增加院系类别信息记录。
浏览:对已存在信息记录浏览。
修改:修改已存在信息记录。
删除:删除信息记录。
(4)教师工资管理:添加:增加教师月工资信息记录。
浏览:对已存在信息记录浏览。
修改:修改已存在信息记录。
删除:删除信息记录。
2、模块结构:3、数据库设计:授课信息Tb_course部门信息表Tb_bumen月收入Tb_shouru4、文件夹设计:五、详细设计注意:此部分应包括具体设计过程,如设计目的、设计思路,界面设计,代码实现(关键代码)等,但不需要粘贴所有程序代码。
c语言课程设计信息管理系统

c语言课程设计信息管理系统一、教学目标本课程的教学目标是使学生掌握C语言程序设计的基本知识和技能,能够运用C语言设计简单的信息管理系统。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,了解面向过程的编程思想。
2.技能目标:学生能够运用C语言编写简单的程序,具备调试和解决问题的能力,能够独立完成一个小型信息管理系统的设计。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生解决问题的能力,培养学生的创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,以及面向过程的编程思想。
具体安排如下:1.第一章:C语言基础知识,介绍C语言的基本语法、数据类型、运算符等。
2.第二章:控制结构,介绍条件语句、循环语句等控制结构。
3.第三章:函数,介绍函数的定义、声明和调用,以及递归函数。
4.第四章:数组和字符串,介绍一维数组、多维数组、字符串的基本操作。
5.第五章:指针,介绍指针的概念、运算和应用。
6.第六章:结构体和联合体,介绍结构体、联合体的定义和应用。
7.第七章:文件操作,介绍文件的概念、文件操作函数和文件指针。
8.第八章:面向过程的编程思想,介绍模块化编程、函数指针等概念。
三、教学方法本课程的教学方法采用讲授法、案例分析法和实验法相结合的方式。
在教学过程中,教师会通过讲解和示例让学生掌握C语言的基本知识和编程技巧,同时通过案例分析法让学生了解信息管理系统的实现过程。
此外,实验法将用于培养学生的实际编程能力和问题解决能力。
四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备。
教材选用《C程序设计语言》(K&R)作为主要参考书,多媒体资料包括教学PPT、视频教程等,实验设备包括计算机、网络等。
这些教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中北大学程序设计实训说明书学院、系:软件学院专业:软件工程学生姓名:学号:*******xxx 设计题目:某学院教学信息管理系统起迄日期: 2014年11月21日~2015年1月17日****:***2015 年 1月 10 日一、选题要求题目一:某学院教学信息管理系统功能:1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
2、输入功能:可以一次完成若干条记录的输入。
3、显示功能:完成全部教师记录的显示。
4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。
5、排序功能:按职工号或教学效果综合评分进行排序。
6、插入功能:按教学效果综合评分高低插入一条教师记录。
7、将教师记录存在文件中。
8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!要求:1、用C语言实现系统;2、利用结构体数组实现教学信息的数据结构设计;3、系统具有增加,查询,插入,排序等基本功能;4、系统的各个功能模块要求用函数的形式实现;5、将教学信息存在文件中。
考试题目要求:1、按教师性别统计统计评分的总算2、删除一个函数,程序仍能正常运行二、程序设计方法及主要函数介绍程序设计方法1.数据结构的设计:程序要求文档中要求使用结构体数组完成设计,每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
数据结构设计如下:typedef struct Course{ //课程的定义与描述char courseName[40]; //课程名称int semester; //开课学期char type[8]; //课程性质char teceff; //教学效果}Course;typedef struct Teacher{ //教师的定义与描述char name[8]; //姓名int num; //职工号char sex[2]; //性别int tecscore; //教学效果综合评分char position[8]; //职称Course course[3]; //3门主讲课程}Teacher;2.主函数与其他函数的关系:3.结构化的程序设计方法将实用功能封装在每一个子函数中,主函数通过调用子函数来实现相对应的功能。
体现了“自顶向下,逐步求精”的结构化程序设计思想。
4.“高内聚,低耦合”的程序设计原则将各个使用功能封装在函数中来让主函数调用,而不是将所有实用功能聚集在主函数中,使得各个模块相对独立,耦合性得以降低,有利于程序的维护。
主要函数介绍:1.以卡片形式输出全部教师信息注:由于版面原因,输出函数显得有些乱,但是这并不影响程序的运行结果,真实的运行结果是很整齐的。
(下图是DevC++ V5.5.3版本下的编码界面)void PrintInfor(Teacher T[]){ //输出全部教师信息(以卡片形式)printf("--------------------------------------------------------------------------------");printf("| 所有教师记录|");printf("-------------------------------------------------------------------------------+");printf("| 全院现有在职教师%d名,全部信息如下|",TeacherNum);printf("-------------------------------------------------------------------------------+\n\n");for(int i=0;i<TeacherNum;++i){printf("+------+---------------+----+------------+----+------+------+------------------+");printf("|职工号| %3d |姓名| %8s |性别| %s |职称 | %8s |",T[i].num,T[i].name,T[i].sex,T[i].position);printf("+------+---+-----------+----+------------+----+------+------+------------------+");printf("|主讲课程 1 | 课程名| %-40s |",T[i].course[0].courseName);printf("+----------+-----------+----------+------------------+------------+------------+");printf("| 学期 | %d |课程性质 | %8s | 教学效果| %c |",T[i].course[0].semester,T[i].course[0].type,T[i].course[0].teceff);printf("+----------+-----------+----------+------------------+------------+------------+");printf("|主讲课程 2 | 课程名| %-40s |",T[i].course[1].courseName);printf("+----------+-----------+----------+------------------+------------+------------+");printf("| 学期 | %d |课程性质 | %8s | 教学效果| %c |",T[i].course[1].semester,T[i].course[1].type,T[i].course[1].teceff);printf("+----------+-----------+----------+------------------+------------+------------+");printf("|主讲课程 3 | 课程名| %-40s|",T[i].course[2].courseName);printf("+----------+-----------+----------+------------------+------------+------------+");printf("| 学期 | %d |课程性质 | %8s | 教学效果| %c|",T[i].course[2].semester,T[i].course[2].type,T[i].course[2].teceff);printf("+----------+-----+-----+----------+------------------+------------+------------+");printf("|教学效果综合评分| %3d |",T[i].tecscore);printf("+----------------+-------------------------------------------------------------+\n\n");system("PAUSE"); //输完一个教师信息,等待用户查看确认,确认无误后再打印下一教师的相关信息}//for}//PrintInfor2.对教师信息排序void Sort_N(Teacher T[],int n){//当n=1时按职工号排序,当n=2时按教学效果综合评分排序if(n==1){ //按职工号排序Teacher temp;for(int i=0;i<TeacherNum-1;i++){ //冒泡法排序for(int j=0;j<TeacherNum-1-i;j++)if(T[j+1].num<T[j].num){temp=T[j];T[j]=T[j+1];T[j+1]=temp;}//if}//forprintf("排序结果如下:\n");for(int i=0;i<TeacherNum;i++){printf(" %8s[%d] ",T[i].name,T[i].num);}//forprintf("\n");}//ifelse{ //按教学效果综合评分排序Teacher temp;for(int i=0;i<TeacherNum-1;++i){ //冒泡法排序for(int j=0;j<TeacherNum-1-i;++j)if(T[j+1].tecscore<T[j].tecscore){temp=T[j];T[j]=T[j+1];T[j+1]=temp;}//if}//forfor(int i=0;i<TeacherNum;i++){printf("\t\t\t第%d名: %-8s 分数:%3d\n",i+1,T[i].name,T[i].tecscore);}//for}//else}//Sort_N3.按教学效果综合评分高低插入一条教师记录由于程序要求要按照教学效果综合评分高低进行插入操作,故教师信息必须按一定顺序排列,但是在执行该操作之前不能保证用户已经执行了相应的排序操作,故需要再执行一次排序操作,以保证接下来的程序能够正常运行插入信息的算法大致描述如下:在操作之前,教师的教学效果综合评分已经按照从小到大的顺序排列。
先确定插入位置,如需对数据移动则进行移动操作,最后将待插记录复制到插入位置。
插入位置有两种:A. 在所有教师信息之后插入:当该教师分数大于所有教师的分数时,直接将该教师信息复制在最后一个教师后面的结构体中,无需进行移动,此时的基本操作为数据的复制。