C语言程序设计实训说明书学院教学信息管理系统
《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、视频教程等,实验设备包括计算机、网络等。
这些教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。
c语言课程设计(学生信息管理系统)
c语言课程设计(学生信息管理系统)一、系统功能学生信息管理系统是一款基于C语言开发的数据管理程序,可实现对学生信息的增删改查等功能。
具体功能列表如下: a. 添加学生信息:可根据学生的基本信息,如学生学号、姓名、性别、地址、联系电话等,依次记录入系统; b. 删除学生信息:可根据学生学号、姓名等信息,从系统中删除不必要的学生信息; c. 修改学生信息:可根据已有的学生信息,修改学生某些属性内容,以更新系统中的数据; d. 查看学生信息:可根据学生学号、姓名等信息,查看指定学生的所有信息及多种查询功能; e. 数据保存功能:可将当前系统中的学生信息,保存成文件的形式; f. 备份/恢复功能:可对学生信息文件进行备份并对备份文件进行恢复; g. 查询统计功能:可根据学院代号、专业代号等信息,进行不同的查询统计; h. 排序功能:可根据学生学号、姓名等信息,对学生信息进行排序; i. 帮助功能:可提供详细的使用帮助文档,以帮助用户更好地使用系统;二、程序实现及结构1. 主程序:此程序用于控制整个系统的运行,可实现系统菜单显示、功能调用及功能切换等功能,可根据用户的操作需求,调用其他子程序实现各项功能。
2. 子程序:此程序是系统的主要部分,可实现学生信息的增删改查等功能,并可支持学生信息的备份,恢复,排序及查询统计等功能,用于实现主程序调用的功能。
3. 管理模块:此模块可实现对用户的登录及注册功能,可检测用户登录及注册的账号是否正确,以及是否有权限使用系统;4. 数据库模块:此模块可实现对学生信息的存储及调用,便于对各类学生信息进行更方便的管理。
此模块还可以负责系统的备份及恢复功能的实现。
5. 图形界面模块:此模块负责实现系统的图形化界面,使用户可以更加友好地操作系统,可以根据用户的需求,随时更改系统界面设置。
三、程序设计学生信息管理系统的设计主要有四个部分:1. 主程序:主程序的设计要求负责控制整个系统的运行,并根据用户的操作调用子程序实现各个功能。
c语言课程设计学生信息管理系统
c语言课程设计学生信息管理系统一、教学目标本课程旨在通过学习C语言,使学生掌握学生信息管理系统的基本概念、设计方法和实现技巧。
具体目标如下:1.知识目标:学生应掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
学生应了解学生信息管理系统的需求分析、系统设计、编码实现、测试等基本过程。
2.技能目标:学生能够运用C语言编写简单的程序,解决实际问题。
学生能够独立完成学生信息管理系统的设计和实现。
3.情感态度价值观目标:学生应培养对计算机科学的兴趣和热情,形成良好的学习习惯和团队合作精神。
学生应理解编程不仅仅是一种技能,更是一种思考问题和解决问题的方式。
二、教学内容本课程的教学内容主要包括C语言的基本语法和编程方法,以及学生信息管理系统的设计和实现。
具体安排如下:1.C语言基本语法:数据类型、运算符、控制结构、函数等。
2.学生信息管理系统需求分析:系统功能、数据结构、界面设计等。
3.学生信息管理系统设计:模块划分、算法实现、接口设计等。
4.学生信息管理系统实现:编码、调试、测试等。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解C语言的基本语法和概念,学生信息管理系统的需求分析和设计方法。
2.案例分析法:分析实际案例,引导学生运用C语言解决实际问题。
3.实验法:学生动手编写代码,实现学生信息管理系统。
4.讨论法:分组讨论,促进学生之间的交流与合作。
四、教学资源本课程所需教学资源包括:1.教材:《C语言程序设计》等相关教材。
2.参考书:提供给学生额外的学习资料,以加深对C语言和编程的理解。
3.多媒体资料:PPT、视频教程等,用于辅助讲解和演示。
4.实验设备:计算机、编程环境等,用于学生动手实践。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
2.作业:布置适量的作业,评估学生的编程能力和对知识的理解程度。
C语言课程设计-学生信息管理系统说明书1
*******************实践教学*******************兰州理工大学计算机与通信学院2010年春季学期计算机语言课程设计题目:学生信息管理系统专业班级:姓名:__ _________学号:_______ __指导教师:成绩:_________________目录摘要 .................................................................................... 错误!未定义书签。
前言 .................................................................................... 错误!未定义书签。
正文 .................................................................................... 错误!未定义书签。
1.问题描述..................................................................... 错误!未定义书签。
2.需求分析 (4)3.系统总体设计............................................................. 错误!未定义书签。
4.详细设计..................................................................... 错误!未定义书签。
5.系统测试 (8)6.软件使用说明书......................................................... 错误!未定义书签。
总结 .................................................................................... 错误!未定义书签。
C语言程序设计——学院信息管理系统
C语言程序设计题目:学院教学信息管理系统课程设计内容用C语言编写具有以下功能的程序:1、输入:输入每一位教师信息,将其信息写入文件中。
2、显示:显示每位教师信息。
3、排序:按职工号或教学效果综合评分进行排序,并显示。
4、查找:完成按姓名或课程查找教师的相关记录,并显示。
5、修改:修改某一位教师的信息。
6、删除:删除某一位教师的信息。
一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为九个模块,每一个模块对应一个函数。
在这些函数当中,添加教师数据函数,显示教师数据函数,查询教师信息函数,修改教师信息函数以及删除教师信息函数的实现严格按照题目的要求。
读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。
1.添加函数:主要实现程序最初运行时教师信息的录入以及其后的运行中教师信息的追加功能;2.显示函数:实现的是显示目前所有教师的记录信息;3.排序函数:允许按照教师职工号或教学效果综合评分对教师各项信息进行排序;4.查询函数:允许按照教师姓名或教师课程对教师的各项信息进行查询;5.修改函数:允许对某教师信息进行修改操作;6.删除函数:允许删除某教师信息;除上面介绍的功能之外,程序还具有菜单和退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一位教师的记录都包含职工号、姓名,性别、职称、教授的上门课程和教学效果综合评分。
在程序当中,将教师记录类型定义为结构体类型,添加以及追加的教师信息直接写入E盘的teachers.txt文件中,其它函数每次对教师记录的访问,其数据来源都是teachers.txt文件,这样做不但可以保证教师数据的一致性,而且可以对教师数据进行永久保存,保证每次运行程序都可以采用原来的数据。
二、程序流程图三、源程序#include "stdafx.h"#include "stdio.h"#include <string.h>#include <stdlib.h>#include <windows.h>#include "conio.h"#define N 20struct teachers{unsigned long num;//职工号char name[N];//姓名char sex[N];//性别char title[N];//职称char lesson[N];//3门讲授课程名称int score;//教学效果综合评分};//结构体void menu();int reads(struct teachers tea[N]);//读取教师文件中的内容void save(struct teachers tea[N],int n);//输入保存数据void add();//添加教师信息void show();//显示教师信息void order_num();//按职工号进行排序void order_score();// 按教学效果综合评分进行排序void query_name();//按姓名查找教关信息void query_lesson();//按课程查找教师信息void modify();//修改教师信息void backspace();//删除教师信息void quit();//退出系统.....................................................函数说明void main(){system("color 57");printf(" *************************学院信息管理系统欢迎您 ***********************\n");printf(" ==============================================================\n"); printf(" ┃**********************************************************┃\n");printf(" ┃***____________________________________________________***┃\n"); printf(" ┃***|**************************************************|***┃\n");printf(" ┃***|**** ****|***┃\n");printf(" ┃***|**** 欢迎使用学院信息管理系统 ****|***┃\n");printf(" ┃***|**** ****|***┃\n");printf(" ┃***|**** ****|***┃\n");printf(" ┃***|**** 制作人刘文浩 ****|***┃\n");printf(" ┃***|**** ****|***┃\n");printf(" ┃***|**** 2018.07.01 ****|***┃\n");printf(" ┃***|**** ****|***┃\n");printf(" ┃***|**************************************************|***┃\n");printf(" ┃***----------------------------------------------------***┃\n");printf(" ┃**********************************************************┃\n");printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf("\n 请按任意键进入系统 \n");getch();int n;while(1){menu();printf("\n 请输入您要选择的操作序号,按回车键确认:");scanf("%d",&n);switch(n){case 1: add();break;case 2: show();break;case 3: order_num();break;case 4: order_score();break;case 5: query_name();break;case 6: query_lesson();break;case 7: modify();break;case 8: backspace();break;case 0: quit();break;default: printf("输入错误,请输入列表中存在的序号!\n ");}}}void menu(){ printf("\n");printf("\n");printf("\n");printf(" ************************* 学院教学信息管理系统************************ \n");printf(" ============================================================================\n");printf(" || **********************************主菜单******************************** ||\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(" || 0 退出系统 ||\n");printf(" ******************************************************************************\n");printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");}//.........................................................................................................主菜单int reads(struct teachers tea[N]) // 读取教师文件中的信息{FILE *fp;int i=0;if((fp=fopen("d:\\teachers.txt","r"))==NULL){printf("文件打开失败!\n");return 0;}else{for(i=0;!feof(fp);i++)fscanf(fp,"%lu %s %s %s %s %d\n",&tea[i].num,&tea[i].name,&tea[i].sex,&tea[i].title,&tea[i].lesson,&tea[i].score);}fclose(fp);return i;}void add()/*添加教师信息*/{FILE *fp;int n,i;struct teachers tea;if((fp=fopen("d:\\teachers.txt","a"))==NULL) //如果文件已经存在,可以追加教师信息{if((fp=fopen("d:\\teachers.txt","w"))==NULL) // 文件不存在时,创建新文件,输入教师信息{printf("文件打开失败!\n");return;}}printf("请输入要添加的教师的数量,按回车键确认:");scanf("%d",&n);for(i=0;i<n;i++){printf("\n请输入第%d个教师的工号、姓名,用空格分开,并按回车键确认:\n",i);scanf("%lu%s",&tea.num,&);printf("\n请输入第%d个教师的性别、职称、讲授课程名称、教学效果综合评分,用空格分开,并按回车键确认:\n",i);scanf("%s%s%s%d",&tea.sex,&tea.title,&tea.lesson,&tea.score);fprintf(fp,"%lu %s %s %s %s %d\n",tea.num,,tea.sex,tea.title,tea.lesson,tea.score);}fclose(fp);printf(".............................................................》保存成功!\n");printf(".............................................................》请按任意键回到主菜单\n");getch();}void show()/*显示教师信息*/{struct teachers tea[N];int i,n;n=reads(tea);printf("*********************所有的教师信息如下************************\n\n");printf(" 序号 || 职工号 || 姓名 || 性别 || 职称 || 课程 || 评分 \n");printf("***************************************************************\n");for(i=0;i<n;i++)printf("\n%3d %lu %4s %1s %5s %20s %3d\n",i+1,tea[i].num,tea[i].name,tea[i].sex,tea[i].title ,tea[i].lesson,tea[i].score); printf("***************************************************************\n");printf(".............................................................》显示成功!\n");printf(".............................................................》请按任意键回到主菜单\n");getch();}void order_num() //按教工号排序教师相关记录{struct teachers tea[N];int z=1;int i,n,j;int t;unsigned long m[20];n=reads(tea);for(i=0;i<n;i++){m[i]=tea[i].num;}for(i=0;i<n-1;i++)for(j=0;j<n-1;j++)if(m[j]>m[j+1]){t=m[j];m[j]=m[j+1];m[j+1]=t;}printf(" 序号 || 职工号 || 姓名 || 性别 || 职称 || 课程 || 评分 \n");printf("***************************************************************\n");for(i=0;i<n;i++){for(j=0;j<n;j++)if(tea[j].num==m[i]){printf("\n%3d %lu %4s %1s %5s %20s %3d\n",z++,tea[j].num,tea[j].name,tea[j].sex,tea[j].title ,tea[j].lesson,tea[j].score);}}printf("***************************************************************\n");printf("............................................................》排序成功!\n");printf("...........................................................》请按任意键回到主菜单\n");getch();}void order_score() //按教学综合评分排序教师信息{struct teachers tea[N];int z=1;int i,n,j;int m[20],t;n=reads(tea);for(i=0;i<n;i++){m[i]=tea[i].score;}for(i=0;i<n-1;i++)for(j=0;j<n-1;j++)if(m[j]<m[j+1]){t=m[j];m[j]=m[j+1];m[j+1]=t;}printf(" 序号 || 职工号 || 姓名 || 性别 || 职称 || 课程 || 评分 \n");printf("***************************************************************\n");for(i=0;i<n;i++){for(j=n;j>=0;j--)if(tea[j].score==m[i]){printf("\n%3d %lu %4s %1s %5s %20s %3d\n",z++,tea[j].num,tea[j].name,tea[j].sex,tea[j].title ,tea[j].lesson,tea[j].score);}}printf("***************************************************************\n");printf("............................................................》排序成功!\n");printf("...........................................................》请按任意键回到主菜单\n");getch();}void query_name() // 按教师姓名对教师信息查询{struct teachers tea[N];char name[N];int i,n;bool flag=0;n=reads(tea);printf("\n请输入待查询的教师姓名,按回车键确认:\n");scanf("%s",&name);for(i=0;i<n;i++){if(strcmp(name,tea[i].name)==0){printf(" 序号 || 职工号 || 姓名 || 性别 || 职称 || 课程 || 评分 \n");printf("***************************************************************\n");printf("\n%3d %lu %4s %1s %5s %20s %3d\n",i+1,tea[i].num,tea[i].name,tea[i].sex,tea[i].title ,tea[i].lesson,tea[i].score);printf("***************************************************************\n");printf(".............................................................》查询成功!\n");printf(".............................................................》请按任意键回到主菜单\n");flag=1;getch();}}if(flag==0){printf("\n.............................................................》未找到相关信息!\n");printf(".............................................................》请按任意键回到主菜单\n");getch();}}void query_lesson() // 按教师课程对教师信息查询{struct teachers tea[N];char lesson[N];int i,n;bool flag=0;n=reads(tea);printf("\n请输入待查询的教师课程,按回车键确认:\n");scanf("%s",&lesson);for(i=0;i<n;i++){if(strcmp(lesson,tea[i].lesson)==0){printf(" 序号 || 职工号 || 姓名 || 性别 || 职称 || 课程 || 评分 \n");printf("***************************************************************\n");printf("\n%3d %lu %4s %1s %5s %20s %3d\n",i+1,tea[i].num,tea[i].name,tea[i].sex,tea[i].title ,tea[i].lesson,tea[i].score);printf("***************************************************************\n");printf(".............................................................》查询成功!\n");printf(".............................................................》请按任意键回到主菜单\n");flag=1;getch();}}if(flag==0){printf("\n.............................................................》未找到相关信息!\n");printf(".............................................................》请按任意键回到主菜单\n");getch();}}void modify()//修改教师信息{struct teachers tea[N];FILE *fp;fp=fopen("d:\\teachers.txt","ab");int i,n;bool flag=0;n=reads(tea);char m[N];printf("请输入要修改的老师的名字:");scanf("%s",&m);for(i=0;i<n;i++)fread(&tea[i],sizeof(struct teachers),1,fp);for(i=0;i<n;i++){if(strcmp(tea[i].name,m)==0){printf("这是此老师原来的信息:\n");printf(" 序号 || 职工号 || 姓名 || 性别 || 职称 || 课程 || 评分 \n");printf("***************************************************************\n");printf("\n%3d %lu %4s %1s %5s %20s %3d\n",i+1,tea[i].num,tea[i].name,tea[i].sex,tea[i].title ,tea[i].lesson,tea[i].score);printf("***************************************************************\n");printf("请输入新信息:\n");printf("\n请输入教师的工号、姓名,用空格分开,并按回车键确认:\n");scanf("%lu%s",&tea[i].num,&tea[i].name);printf("\n请输入教师的性别、职称、讲授课程名称、教学效果综合评分,用空格分开,并按回车键确认:\n");scanf("%s%s%s%d",&tea[i].sex,&tea[i].title,&tea[i].lesson,&tea[i].score);fclose(fp);fp=fopen("d:\\teachers.txt","w");fclose(fp);fp=fopen("d:\\teachers.txt","ab");for(i=0;i<n;i++){fprintf(fp,"%lu %s %s %s %s %d",tea[i].num,tea[i].name,tea[i].sex,tea[i].title,tea[i].lesson,tea[i].score);fprintf(fp,"\n");}fclose(fp);flag=1;printf(".............................................................》修改成功!\n");printf(".............................................................》请按任意键回到主菜单\n");getch();}}if(flag==0){printf("\n.............................................................》未找到相关信息!\n");printf(".............................................................》请按任意键回到主菜单\n");getch();}}void backspace()//删除教师信息{struct teachers tea[N];FILE *fp;fp=fopen("d:\\teachers.txt","ab");int i,n;bool flag=0;n=reads(tea);char m[N];printf("请输入要删除的老师的名字:");scanf("%s",&m);for(i=0;i<n;i++)fread(&tea[i],sizeof(struct teachers),1,fp);for(i=0;i<n;i++){if(strcmp(tea[i].name,m)==0){tea[i]=tea[i+1];n--;}fclose(fp);fp=fopen("d:\\teachers.txt","w");fclose(fp);fp=fopen("d:\\teachers.txt","ab");for(i=0;i<n;i++){fprintf(fp,"%lu %s %s %s %s %d",tea[i].num,tea[i].name,tea[i].sex,tea[i].title,tea[i].lesson,tea[i].score);fprintf(fp,"\n");}fclose(fp);flag=1;printf(".............................................................》删除成功!\n");printf(".............................................................》请按任意键回到主菜单\n");getch();}if(flag==0){printf("\n.............................................................》未找到相关信息!\n");printf(".............................................................》请按任意键回到主菜单\n");getch();}}void quit() //退出系统{char a;printf("你真的想退出学院教学信息管理系统么?\n");printf(" 是(Y)/否(N) \n");scanf("%c",&a);getchar();if(a=='Y'||a=='y'){printf("*******************************谢谢使用!*******************************\n");printf("\n 请按任意键退出系统 \n");exit(0);}}。
C语言课程设计实验报告 学生信息管理系统
课题:学生信息管理系统设计 报告人:阮家友 方鹏飞 叶成 指导老师: 严碧波 孙祥娥 报告日期:2014 年 6 月 23 日
语言课程设计Байду номын сангаас验报告
C 语言课程设计实验报告
C 语言课程设计实验报告
1.设计目的:
学生信息管理系统设计
学生信息包括:学号、姓名、年龄、电话号码、性别、出生年月、QQ、班级 等。试设计一学生信息管理系统,使之能提供以下功能: 1. 系统以菜单方式工作 2. 学生信息添加功能---输入 3. 查询功能---算法 按学号查询 按姓名查询 4. 学生信息的删除与修改 5. 学生信息整表浏览功能---输出
4.调试与测试:
1>调用 STU * load_info()函数(文件载入) ,读写出现乱码 解决方法:更改相应指针指向,及有关变量的初值设置。
4
C 语言课程设计实验报告
2>边界测试 解决方法:用极端的或偏门的情况来探测和验证代码在处理时会发生什么。
3>执行窗口执行多次命令后显示过多,不利于输入指令及结果查看 解决方法:调用系统清屏函数 system("cls");。
case 3
调用 serch_info ()
case 4
调用 delete_info ()
case 5
调用 delete_info ()
case6
调用 preview_info( )
调用 add_info()
结束
3
C 语言课程设计实验报告
3.详细设计:
1>函数入口说明 menu() 输出主菜单 load_info() 载入函数:txt 转为链表 add_info(STU*h) 增加学生信息 search_info(STU*h,int type) 搜索学生信息 delete_info(STU*h) 删除学生信息 update_info(STU*h) 修改学生信息 output_info(STU*h) 输出学生信息 preview_info(STU*h,int type) 预览学生信息 main() 主函数 2>调用关系 load_info() add_info(STU*h)
c语言学生信息管理系统实训报告
c语言学生信息管理系统实训报告
C语言学生信息管理系统是以C语言为编程语言开发的数据管理系统,该系统基于数
据库技术,实现了人事档案管理、班级管理、成绩管理、考勤管理及学生信息管理等功能。
本次实训,我使用C语言编程,在Visual Studio2017环境下,实现了一种自定义的
学生信息管理系统。
该系统实现学生信息的查询、删除、添加及修改功能。
在项目的开发
过程中,我也使用了文件读取与保存、数据结构训练、数据处理等编程技术。
其中,采用
C语言处理文本文件,用链表结构组织数据,并实现增删改查等功能;使用链表结构处理学生信息,实现数据的添加、修改和删除等操作;使用文件读取及保存,在开发过程中
记录及复用学生信息,并按要求输出学生信息报表;使用数据结构进行数据处理,通过
数据的排序、查找等操作,实现提高学生管理的效率。
实训过程运用C语言基础知识和结构化编程思想,巩固了编写程序的知识和编程技术,让我更加深入地理解面向对象思想。
在实训过程中,我熟练掌握了if语句、while语句、switch语句等基础编程语句,加深了对编程概念的理解,同时也学会了在实际编程中如何把这些概念运用到编程中,从而熟练掌握C语言的编程技巧。
实训结束时,我认为自己在编程方面有了很大的进步,对C语言的编程也有了更深的
理解,同时自己也掌握了一套独立的编程思维,并能够利用面向对象思想,实现学生信息
管理系统客户端最新需求。
教学信息管理系统c语言课程设计报告
教学信息管理系统c语言课程设计报告《程序设计基础》课程设计报告题目:学院教学信息管理系统日期:2012.5.21班级:计算机应用技术1102班学号:姓名:一.设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计基础(C语言)》课程后进行的一次全面的综合练习。
本课程设计的目的:1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二.课程设计任务书题目:学院教学信息管理系统学院教学信息管理系统,每一条记录包括一位教师的职工号、姓名、职称、性别、3门课程教学效果、综合评分。
系统要求实现以下功能:1、输入:输入每一位教师记录,将其信息写入文件中。
2、显示:显示每位教师记录。
3、排序:按职工号或教学效果综合评分进行排序,并显示。
4、查找:完成按姓名或职工号查找教师的相关记录,并显示。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。
2、建立一个文件,将每位教师的相关(教学)信息写入文件中并能显示于屏幕上。
3、完成排序(按职工号、姓名、职称等)、查找等功能。
要求:1、用C语言实现程序设计;2、利用结构体数组或者链表实现教师信息的数据结构设计;3、系统的各个功能模块要求用函数实现;4、界面友好(良好的人机交互),程序加必要的注释。
三.系统设计方案用到数据结构的定义:在此程序中用到了结构体的定义,结构体数组的定义以及变量的申明,还用到了外部函数的申明及调用。
在主函数中,输出教师信息的函数是贯穿在程序始终的,例如要实现教师的排序这一模块时,排完序后就需要用输出信息的函数来输出排序后的信息。
这就得需要多个函数共同实现这一个模块。
此程序的流程:由于系统需要实现返回主界面的功能,那么在程序的开头就需要使用do....while语句,在do....while语句内首先将系统的主界面写下来,然后又要根据不同的按键实现排序、查找、结束等功能,这就必须使用switch 语句来实现,由于实现一个功能后,还需要跳出此功能进入下一个功能,这样就要需要使用while语句来循环,直到用户需要返回主界面时就设定一个条件跳出while语句。
c语言课程设计学生信息管理系统.
c语言课程设计学生信息管理系统.一、教学目标本课程的教学目标是使学生掌握C语言编程的基本方法,能够运用C语言设计学生信息管理系统。
通过本课程的学习,学生将能够理解C语言的基本语法、数据类型、运算符、控制结构等知识,掌握函数、数组、指针等高级概念,并能够运用这些知识设计、编写和调试C语言程序。
此外,学生还将通过课程学习,培养编程思维、解决问题的能力和团队合作精神。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等知识。
在学习过程中,我们将以教材为基础,结合实际案例,引导学生掌握C语言编程的基本方法。
具体内容包括:1.C语言的基本语法和规则;2.数据类型、变量和常量;3.运算符和表达式;4.控制结构:条件语句、循环语句;5.函数的定义和调用;6.数组和指针的应用;7.学生信息管理系统的需求分析和设计。
三、教学方法为了提高学生的学习兴趣和主动性,我们将采用多种教学方法进行教学。
具体包括:1.讲授法:讲解C语言的基本语法、数据类型、运算符、控制结构等知识,为学生提供清晰的学习思路;2.案例分析法:通过分析实际案例,让学生了解和掌握C语言编程的方法和技巧;3.实验法:安排实验室实践环节,让学生动手编写C语言程序,提高编程能力;4.讨论法:学生进行分组讨论,培养团队合作精神和解决问题的能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供系统、全面的学习资料;2.参考书:提供相关的C语言编程参考书籍,丰富学生的知识储备;3.多媒体资料:制作课件、教学视频等多媒体资料,提高课堂教学效果;4.实验设备:保障实验室硬件设施齐全,为学生提供良好的编程实践环境。
五、教学评估本课程的教学评估将采取多元化、全过程的方式进行,以全面、客观、公正地评估学生的学习成果。
评估方式包括:1.平时表现:通过课堂参与、提问、回答问题等方式,评估学生的学习态度和课堂表现;2.作业:布置适量的作业,评估学生的知识掌握和编程能力;3.实验报告:评估学生在实验室实践环节的表现和实验报告的质量;4.考试成绩:通过期末考试,评估学生的综合编程能力和知识掌握情况。
c语言程序设计报告-学生信息管理系统 精品
C语言程序设计实践报告题目学生信息管理系统#include <string.h>#include <windows.h>struct student{long int num;char name[20];int age;char sex[4];int class;int pt; /*定义一个变量来储存大学物理的考试成绩*/int ps; /*定义一个变量来储存大学物理的平时成绩*/int et; /*定义一个变量来储存英语的考试成绩*/int es; /*定义一个变量来储存英语夫人平时成绩*/int ct; /*定义一个变量来储存微积分的考试成绩*/int cs; /*定义一个变量来储存微积分的平时成绩*/int xt; /*定义一个变量来储存信号的考试成绩*/int xe; /*定义一个变量来储存信号的平时成绩*/};int n=0;struct student stu[100];struct student *p;void tc();void tc()void lr();/*录入函数*/void ll();void cx();/*查询函数*/void xg();/*修改函数*/void sc();/*删除函数*/void bj();/*不及格学生列表函数*/void pj();/*平均成绩计算函数*/void kc();/*课程查询函数*/②主函数模块:一般比较简单,只提供输入,处理,输出的调用函数,即只有界面显示语句,子函数选择语句,主要的调用语句。
void main(){int z;printf("\t\t\t +---------------------------+\n");printf("\t\t\t | 学生信息管理系统欢迎您 |\n");printf("\t\t\t +---------------------------+\n");printf("\t\t\t + 设计者:张眼\n");printf("\t\t\t + 指导老师:刘伟荣\n");printf("重要提示:为保证您的操作得到保存,请按正常顺序退出系统!谢谢合作\n");do{printf("\n\t\t\t+++++++++++++++++++++++++++++\n");printf("\t\t\t|** 菜单 **|\n");printf("\t\t\t+++++++++++++++++++++++++++++++++\n");printf("\t\t\t* [1]----录入/插入学生信息 *\n");printf("\t\t\t* [2]----浏览学生信息 *\n");printf("\t\t\t* [3]----查询学生信息 *\n");printf("\t\t\t* [4]----删除学生信息 *\n");printf("\t\t\t* [5]----修改学生信息 *\n");printf("\t\t\t* [6]----不及格学生列表 *\n");printf("\t\t\t* [7]----成绩信息查询 *\n");printf("\t\t\t* [8]----平均成绩 *\n");printf("\t\t\t* [0]----退出系统 *\n");printf("\t\t\t********************************\n"); printf("请输入您的选择:");scanf("%d", &z);switch(z){case 0 :tc();break;case 1 :lr();break;case 2 :ll();break;case 3 :cx();break;case 4 :sc();break;case 5 :xg();break;case 6 :bj();break;case 7 :kc();break;case 8 :pj();break;default:printf("\n无效选项!");}}while(z!= 0);}运行结果:③输入模块:输入部分包括学生的姓名,学号等基本信息以及学生的大学物理,英语,微积和信号的成绩,主要是通过指针来实现数据的输入。
C语言课程设计报告学生信息管理系统
前言C语言是一门通用的计算机编程语言,应用广泛。
C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
近年来,C语言在国内得到了迅速的推广和应用。
作为一门通用的语言,在过去很流行吗,将来依然会如此。
几乎每一个理工科或者其他专业的学生毫不例外的要学习它,同时,C语言作为“全国计算机二级等级考试”中的一门可选语言,也是用来衡量计算机程序设计水平的一个重要标准。
从C语言产生到现在,它已成为最重要和最流行的编程语言之一。
在各种流行编程语言中,都能看到C语言的影子,如JAVA的语法与C语言基本相同。
学习、掌握C语言是每一个计算机技术人员的基本功之一。
C语言具有高级语言的强大功能,却又有很多直接操作计算机硬件的功能(这些都是汇编语言的功能),因此,C语言通常又被称为中级语言。
学习和掌握C语言,即可以增进对于计算机底层工作机制的了解,又为进一步学习其他高级语言打下了坚实的基础。
C语言程序设计是一门实践性很强的课程,所以本学科的实验实训非常重要。
所以我们进行了本次课程设计实践。
在这个过程中我们都学到了很多,此报告便是这次课程设计的经过、流程,介绍了部分自己编写的程序。
目录1.问题概述 (02)2.系统需求分析 (02)3.系统概要设计 (02)4.系统的详细设计 (06)5.系统的测试及调试 (15)6.用户手册 (21)7.总结 (21)8.参考文献 (22)9.附录 (23)1.问题概述设计一个学生综合测评的信息及成绩的管理系统,以解决传统纸质信息统计的不易修改,储存及放置等诸多不便及弊端。
来简化学校的办公,节约时间及人力。
1.系统需求分析在学生信息的日常管理中,经常需要对学生相关信息进行处理,采用传统的手工记录,查询方式,显然有很多不便,如多次的增、删、改可能使信息变得混乱,为今后的信息提取带来很多麻烦。
为了解决这一问题,可采用现代化的手段——计算机进行系统的管理。
c语言课程设计学生管理系统
c语言课程设计学生管理系统一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握C语言的基本语法、数据结构、算法和编程技巧。
技能目标要求学生能够使用C语言进行程序设计,解决实际问题。
情感态度价值观目标要求学生培养良好的编程习惯,注重代码的可读性和可维护性,提高团队合作能力和解决问题的能力。
通过本课程的学习,学生将能够熟练掌握C语言的基本语法和编程技巧,具备独立编写简单程序的能力。
同时,学生将培养良好的编程习惯,注重代码的质量,提高团队合作能力和解决问题的能力。
学生将能够运用C语言进行程序设计,解决实际问题,提高自己的计算思维能力和创新能力。
二、教学内容教学内容将根据课程目标进行选择和,确保内容的科学性和系统性。
教学大纲将明确教学内容的安排和进度,指出教材的章节和列举内容。
教材:C程序设计语言(K&R)第1周:C语言概述、基本语法、数据类型和运算符第2周:控制语句、函数、数组和字符串第3周:指针、结构体和文件操作第4周:算法和编程技巧第5周:项目实践和问题解决三、教学方法教学方法将多样化,以激发学生的学习兴趣和主动性。
将采用讲授法、讨论法、案例分析法和实验法等教学方法。
讲授法:通过讲解和示范,引导学生掌握C语言的基本语法和编程技巧。
讨论法:学生进行小组讨论,促进学生之间的交流和合作,培养团队合作能力。
案例分析法:通过分析实际案例,引导学生运用C语言解决实际问题,提高问题解决能力。
实验法:安排实验课程,让学生亲自动手编写代码,培养实际编程能力和创新思维。
四、教学资源教学资源的选择和准备将充分支持教学内容和教学方法的实施,丰富学生的学习体验。
将使用教材、参考书、多媒体资料和实验设备等教学资源。
教材:C程序设计语言(K&R)参考书:C Primer Plus、C和指针多媒体资料:教学PPT、视频教程、在线编程练习平台实验设备:计算机、编程环境、网络资源通过以上教学资源的支持,学生将能够更好地学习C语言,提高编程能力,培养创新思维和问题解决能力。
C语言课程设计实验报告学生信息管理系统
C语言课程设计实验报告学生信息管理系统语言程序设计实验报告C报告人:孟凡超指导老师:姜林报告日期:XX年x月x日C语言程序设计实验报告C语言课程设计实验报告1设计目的:学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-等试设计一学生信息管理系统,使之能提供以下功能: 1 系统以菜单方式工作 2 学生信息录入功能---输入 3 学生信息浏览功能---输出 4 查询、排序功能---算法按学号查询按姓名查询5 学生信息的删除与修改2总体设计:程序设计组成框图学生信息录入学生信息浏览主菜单学分查询信息编辑信息添加信息删除信息查询信息添加姓名查询信息编辑信息删除2C语言程序设计实验报告流程图开始清屏n=1判断n>0?NYpr输入选择chch1调用2 调用3 调用 pr24N=0结束3C语言程序设计实验报告3详细设计:1>函数入口说明 pr 输出主菜单pr2 输出检索菜单界面文件操作:打开文件操作:保存( n) 编辑子菜单:对姓名编辑 ( n) 编辑子菜单:对年龄编辑 ( n) 编辑子菜单:对性别编辑 ( n) 编辑子菜单:对出生年月编辑 ( n) 编辑子菜单:对住址编辑 ( n) 编辑子菜单:对电话进行编辑( n) 编辑子菜单:对电子邮件地址编辑 ( n) 显示翻页致末尾的信息 ( n) 信息编辑函数 ( n) 删除信息的函数 ( n) 输出编辑界面检索:按学号检索:按姓名录入、添加信息学生信息查看主函数 2>调用关系( n) ( n)pr( n)pr2( n)( n)( n)( n) (同上)( n)( n) ( n) ( n) ( n) ( n)3>参数说明( n)、( n)、( n) 、( n) 、( n) 、( n)、( n)、( n)、( n)、( n)、( n) 函数中的n都为检索中确定的学生数组下标4C语言程序设计实验报告4调试与测试:1>调用pr2函数一闪而过解决方法:添加语句使程序暂停2>无法有效的控制输出函数循环终止解决方法:添加全局变量“”使用该全局变量来记录学生总数,从而控制输出循环的次数3>查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看解决方法:添加语句使程序暂停,当用户按时继续4>文件在打开和保存时有问题解决方法:调整文件的打开方式,从原来的单纯的w+修改为添加一个语句,当没有文件时执行w+的操作,否则执行r+避免了原存储文件被覆盖的问题5C语言程序设计实验报告5源程序清单和执行结果:#<> #<> #<> #<> =0; { id; [30]; ; [2]; [9]; [80]; [15];[25]; }[];pr { (""); ("******学生信息管理系统******"); ("\n----------V ----------"); ("\n您想要:"); ("\n 1录入学生信息"); ("\n 2浏览学生信息"); ("\n 3检索学生信息"); ("\n 4退出信息管理"); ("\n----- 孟凡超-----"); ("\n****************************\n"); }pr2 { ; ; a; ch; (a) { (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n您想要:"); ("\n 1按学号检索"); ("\n 2按姓名检索"); ("\n 3返回主菜单"); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); ch=; (ch) { '1':;; '2':;; '3':a=0;; } } }{ *fp; n; ((fp=("""r+"))==) fp=("""w+"); (n=0;n<;n++) (&[n]( )1fp);(&41fp);(fp); }{ n; *fp; fp=("""r+");6C语言程序设计实验报告(n=0;n<;n++) (&[n]( )1fp); (&41fp); (fp); }( n) { ("\n新姓名:"); ("%s"[n]); }( n) { ("\n新年龄:"); ("%d"&[n]); }( n) { ("\n新性别:"); ("%s"[n]); }( n) { ("\n新出生年月"); ("%s"[n]); }( n) { ("\n新地址:"); ("%s"[n]); }( n) { ("\n新电话:"); ("%s"[n]); }( n) { ("\n新E-:"); ("%s"[n]); }( n) { (n==) (""); //清屏 ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n已检索到末尾"); ("\ "); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); }( n) { ch; a=1b; (a) { (""); ("******学生信息管理系统******"); ("\n----------修改----------"); ("\n请输入你想修改的内容:"); ("\n1姓名 2年龄 3性别 4出生年月 5地址 6电话 \n"); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); ; ch=; (ch) {7C语言程序设计实验报告'1':(n);; '2':(n);; '3':(n);; '4':(n);; '5':(n);; '6':(n);; '7':(n);; } b=1; (b) { ("\n确认吗?(y/n)"); ; ch=; (ch) { 'Y': 'y':b=0;a=0;; 'N': 'n':b=0;; } } } }( n) { a; (a=n;a<;a++) { ([a][a+1]); [a]=[a+1]; ([a][a+1]); ([a][a+1]); ([a][a+1]); ([a][a+1]); ([a][a+1]); } --; ("删除成功!"); }( n) { a=1; ch; (a) { ; ("\n您想要:"); ("\n\n1修改学生信息"); ("\n2删除该条信息"); ("\n3返回上级菜单"); ("\n4查看下条信息"); ch=; (ch) { '1':(n)a=0;; '2':(n)a=0;; '3':a=0;(0);; '4':a=0;; } } }{ nij=0; (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n请输入想要检索的学号:"); ("%d"&n); (n<=) { n=n--; //拷贝后一个学生信息到前一个人上8C语言程序设计实验报告("学号姓名年龄性别出生年月\n"); ("%4d "[n]id); ("%12s "[n]); ("%4d "[n]); ("%4s "[n]); ("%8s \n"[n]); ("\n\n\n学号电话E- 地址\n"); ("%4d "[n]id); ("%15s "[n]); ("%15s "[n]); ("%s\n" [n]); j=(n); i++; } (i==0) { ("\:无此学生"); ("\n----- 孟凡超-----"); ("\n****************************\n"); } { (j==0) ; { (""); (n); ; } }:; }{ nji=0; m[30]; (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n请输入想要检索的姓名:"); ("%s"m); (n=0;n<;n++) { ((m[n])==0) { (""); ("学号姓名年龄性别出生年月\n"); ("%4d "[n]id); ("%8s "[n]); ("%4d "[n]); ("%4s "[n]); ("%8s \n"[n]); ("\n\n\n学号电话 E- 地址\n"); ("%4d "[n]id); ("%15s "[n]); ("%15s "[n]); ("%s\n" [n]); i++; ((j=(n))==0) ; } } (i==0) ("\:无此学生"); (j!=0) (n); ; ; }{ an=1m;9C语言程序设计实验报告ch; (n) { a=; (""); ("ID:"); [a]id=(a+1); ("%d"[a]id); ("\:"); ("%s"&[a]); ("\:"); ("%d"&[a]); ("\:"); ("%s"&[a]); ("\( ):"); ("%s"&[a]); ("\:"); ("%s"&[a]); ("\:"); ("%s"&[a]); ("\nE-:"); ("%s"&[a]); m=1; (m) //做一个循环,直到m=0时跳出{ (""); ("ID:"); ("%d"[a]id); ("\:"); ("%s"[a]); ("\:"); ("%d"[a]); ("\:"); ("%s"&[a]); ("\:"); ("%s"[a]); ("\:"); ("%s"[a]); ("\:"); ("%s"[a]); ("\nE-"); ("%s"[a]); ("\n请选择:1确认并继续 2重新填写 3放弃并返回 4确认并返回"); ch=; (ch) { '1':m=0;++;; '2':m=0;; '3':m=0n=0;; //选择此项时,m=0,循环终止 '4':m=0n=0;a=++;; } } } }{ =1in=1=1=/5+1; //设定变量控制翻页 ch; (n) { (""); ("学号姓名年龄性别出生年月\n"); (i=-1;i<+4&&i<;i++) { ("%4d "[i]id); ("%12s "[i]); ("%4d "[i]); ("%4s "[i]); ("%8s\n"[i]); } ("\n\n\n学号电话 E- 地址\n"); (i=-1;i<+4&&i<;i++)10C语言程序设计实验报告{ ("%4d "[i]id); ("%15s "[i]); ("%15s "[i]); ("%s\n" [i]); } ("\n1上一页 2下一页 0退出共学生%d人第%d页共%d页\n"); ch=; (ch) { '1':--; (==0) =(-1)*5+1=; =(-1)*5+1;; '2':++; (>) =1=1; =(-1)*5+1;; '0':n=0;; } } }。
C语言实训 学生信息管理系统
实训报告实训名称C语言编程开发实训专业班级物联1541姓名张禄泽学号1511431101指导教师黄标兵、王丽平实训时间2016.2.29~2016.3.11成绩评定计算机技术与工程学院《实训报告》文档规范及注意事项一、按照《任务书》中“实训报告要求”模式写。
二、文档格式为A4纸、页边距上下2.54cm,左3.7cm,右2.7cm;正文通篇段落1.5倍行距,宋体五号;一级标题4号黑体,二级标题小四黑体。
三、图、表应有标号和名称,且图名位于图下,表名位于表格上方;表格:表名用小五号黑体,表头用小五号黑体,表内数字、字母用小五号Times New Roman体,表内汉字用小五号宋体;表框线两端不封。
图解:图名用小五号黑体。
图表的大小要适中。
四、参考文献格式为:序号作者,书名,出版地:出版社名称,出版社年份序号作者.论文题名.期刊名称,年份,卷号(期号):起至页码五、附录中的源代码应有适当的注释(可没有附录,但是提交的源代码电子文档中应有适当的注释)。
六、按照格式要求填写《实训报告》封面中学生应填写的内容。
七、实训结束后,学生应提交的文档包括纸质文档和电子文档。
纸质文档包括:1.《实训报告》1份(左侧装订)。
电子文档包括:1.实训报告2.源程序3.程序的可执行文件(.exe)目录第1部分课程设计目的.................................................................................. - 1 -第2部分课程设计内容与要求...................................................................... - 2 -2.1课程设计内容. (6)2.2基本要求.................................................................................................................... - 2 -第3部分报告正文.......................................................................................... - 3 -3.1 设计题目及任务要求............................................................................................... - 3 -3.2 总体设计................................................................................................................... - 3 -第4部分课程设计总结................................................................................ - 25 -第5部分参考文献........................................................................................ - 26 -第1部分实训目的C语言编程开发实训是学生在《C语言程序设计》课程结束时进行的一项实践活动,综合运用C程序设计课程和其他先修课程的理论和知识,掌握C语言开发实训的一般方法,树立正确的设计思想,培养分析问题和解决实际问题的能力;学会从实际的要求出发,合理的选择算法,正确的使用测试方法,培养学生程序设计能力;学习运用帮助和查阅有关技术资料的能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中北大学程序设计实训说明书学院、系:软件学院专业:软件工程学生姓名:学号:设计题目:某学院教学信息管理系统起迄日期: 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.结构化的程序设计方法将实用功能封装在每一个子函数中,主函数通过调用子函数来实现相对应的功能。
体现了“自顶向下,逐步求精”的结构化程序设计思想。
4.“高内聚,低耦合”的程序设计原则将各个使用功能封装在函数中来让主函数调用,而不是将所有实用功能聚集在主函数中,使得各个模块相对独立,耦合性得以降低,有利于程序的维护。
主要函数介绍:1.以卡片形式输出全部教师信息注:由于版面原因,输出函数显得有些乱,但是这并不影响程序的运行结果,真实的运行结果是很整齐的。
(下图是 V5.5.3版本下的编码界面)( T[]){ 输出全部教师信息(以卡片形式)("");("| 所有教师记录|");("");("| 全院现有在职教师名,全部信息如下|");("\n\n");( 0<){("");("|职工号| %3d |姓名| %8s |性别| |职称 | %8s|"[i][i][i][i]);("");("|主讲课程1 | 课程名 | 40s |"[i][0]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][0][i][0][i][0]);("");("|主讲课程2 | 课程名 | 40s |"[i][1]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][1][i][1][i][1]);("");("|主讲课程3 | 课程名 | 40s |"[i][2]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][2][i][2][i][2]);("");("|教学效果综合评分| %3d |"[i]);("\n\n");(""); 输完一个教师信息,等待用户查看确认,确认无误后再打印下一教师的相关信息}}2.对教师信息排序( T[] n){当1时按职工号排序,当2时按教学效果综合评分排序(1){ 按职工号排序;( 0<1){ 冒泡法排序( 0<1)(T[1]<T[j]){[j];T[j][1];T[1];}}("排序结果如下:\n");( 0<){(" %8s[] "[i][i]);}("\n");}{ 按教学效果综合评分排序;( 0<1){ 冒泡法排序( 0<1)(T[1]<T[j]){[j];T[j][1];T[1];}}( 0<){("\t\t\t第名: 8s 分数:%3d\n"1[i][i]);}}}3.按教学效果综合评分高低插入一条教师记录由于程序要求要按照教学效果综合评分高低进行插入操作,故教师信息必须按一定顺序排列,但是在执行该操作之前不能保证用户已经执行了相应的排序操作,故需要再执行一次排序操作,以保证接下来的程序能够正常运行插入信息的算法大致描述如下:在操作之前,教师的教学效果综合评分已经按照从小到大的顺序排列。
先确定插入位置,如需对数据移动则进行移动操作,最后将待插记录复制到插入位置。
插入位置有两种:A. 在所有教师信息之后插入:当该教师分数大于所有教师的分数时,直接将该教师信息复制在最后一个教师后面的结构体中,无需进行移动,此时的基本操作为数据的复制。
B. 在开头或者其他教师之前插入:当该教师分数满足以下表达式:<<时,使用循环找到其插入位置的数组元素下标i,然后将该位置及其后面的元素全部后移一位,将待插入教师的信息复制到插入位置。
此时的基本操作是数据的移动与复制(移动的过程本质上也是数据的复制)。
( T[]){(){("容量已满,请扩充后再使用!\n");;};先从键盘接收待插入教师的相关信息,存放于一个临时的结构体变量中("->请按要求输入教师信息:\n");("->请输入教师的职工号(3位数字): ");("");("->请输入教师的姓名: ");("");("->请输入教师的性别(男或女): ");("");("->请输入教师的职称: ");("");( 0<3){("->请输入该教师第门主讲课程的信息: \n"1);([j]);("\n");}("->请输入教师的教学效果综合评分(0-100): ");("");("->为保证结果正确,程序将对您的教师按教学效果综合评分进行排序:\n"); ;( 0<1){ 冒泡法排序( 0<1)(T[1]<T[j]){[j];T[j][1];T[1];}}1;( 0<){(>[i]){;}}("插入位置:\n");(1); 在末尾插入{( 1>){ 移动插入位置后面的所有数据(T[1][i]);T[1][i];(T[1][i]);T[1][i];(T[1][i]);( 0<3){(T[1][j][i][j]);T[1][j][i][j];(T[1][j][i][j]);T[1][j][j];}}}(T[]);T[];(T[]);T[];(T[]); 插入记录( 0<3){(T[][j][j]);T[][j][j];(T[][j][j]);T[][j][j];}; 教师记录+1("->插入后的结果如下:\n");(T);}三、程序源代码(包括注释)引入头文件<> 使用了( )和( )函数<> 使用了( )、( )以及文件读写函数<> 使用了( )、( )等字符串处理函数宏定义300 一个学院最大教师数,上限可调自定义数据类型教师和课程的定义{ 课程的定义与描述[40]; 课程名称; 开课学期[8]; 课程性质; 教学效果};{ 教师的定义与描述[8]; 姓名; 职工号[2]; 性别; 教学效果综合评分[8]; 职称[3]; 3门主讲课程};部分全局变量; 教师记录条数基本操作及其子函数1.输入教师信息( ){ 输入教学信息("请输入课程的课程名: ");("");( ); 吃掉回车符("请输入课程的学期(输入数字1-8中一个): ");("");("请输入课程的学科性质(输入非学位课或学位课) : ");("");( ); 吃掉回车符();("请输入课程的教学效果(输入A、B、C、D中任一个) : ");( );( ); 吃掉回车符}( T[]){ 输入教师信息01;= 0;1;(){ 不断输入教师信息,直到输入"n"("->请输入教师的职工号(3位数字): ");(""[i]);("->请输入教师的姓名: ");(""[i]);("->请输入教师的性别(男或女): ");(""[i]);("->请输入教师的职称: ");(""[i]);( 0<3){("->请输入该教师第门主讲课程的信息: \n"1);(T[i][j]);("\n");}("->请输入教师的教学效果综合评分(0-100): ");(""[i]);; 教师记录+1; 计数器自增();("您还想继续输入吗?(Y(y)(n))");();(); 吃掉回车符('N''n') 确认是否退出0; 修改标志,结束循环}}2.输出教师信息( T[]){ 输出全部教师信息(以卡片形式)("");("| 所有教师记录|");("");("| 全院现有在职教师名,全部信息如下|");("\n\n");( 0<){("");("|职工号| %3d |姓名| %8s |性别| |职称 | %8s |"[i][i][i][i]);("");("|主讲课程1 | 课程名 | 40s |"[i][0]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][0][i][0][i][0]);("");("|主讲课程2 | 课程名 | 40s |"[i][1]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][1][i][1][i][1]);("");("|主讲课程3 | 课程名 | 40s |"[i][2]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][2][i][2][i][2]);("");("|教学效果综合评分| %3d |"[i]);("\n\n");(""); 输完一个教师信息,等待用户查看确认,确认无误后再打印下一教师的相关信息}}3.查找教师信息( T[] n){ 查找子函数当1时按姓名查找教师信息,否则(当2时)按职工号查找教师信息0; 标志,检测找到与否(1){ 按姓名查找1[10];("->请输入教师姓名:");(""1);( 0<){((1[i])){("查找成功,找到该教师记录!\n\n");("");("|职工号| %3d |姓名| %8s |性别| |职称 | %8s|"[i][i][i][i]);("");("|主讲课程1 | 课程名 | 40s |"[i][0]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][0][i][0][i][0]);("");("|主讲课程2 | 课程名 | 40s |"[i][1]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][1][i][1][i][1]);("");("|主讲课程3 | 课程名 | 40s |"[i][2]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][2][i][2][i][2]);("");("|教学效果综合评分| %3d |"[i]);("\n\n");1; 标志置1,表示找到}}(0) 若一轮循环仍为0,查找失败("查找失败,姓名为的教师不存在!\n"1);}{ 按职工号查找1=999;("->请输入教师职工号:");(""1);( 0<){(1[i]){("查找成功,找到该教师记录!\n\n");("");("|职工号| %3d |姓名| %8s |性别| |职称 | %8s|"[i][i][i][i]);("");("|主讲课程1 | 课程名 | 40s |"[i][0]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][0][i][0][i][0]);("");("|主讲课程2 | 课程名 | 40s |"[i][1]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][1][i][1][i][1]);("");("|主讲课程3 | 课程名 | 40s |"[i][2]);("");("| 学期 | |课程性质 | %8s | 教学效果 | |"[i][2][i][2][i][2]);("");("|教学效果综合评分| %3d |"[i]);("\n\n");1; 标志置1,表示找到}}(0)若一轮循环仍为0,查找失败("查找失败,职工号为的教师不存在!\n"1);}}( T[]){ 查找教师信息(总函数)查找教师信息的总函数,用于控制查找的方式(即按哪个关键字来查找) ;1;(){("");("\n\t\t\t1.按姓名查找教师信息\n");("\t\t\t2.按职工号查找教师信息\n");("\t\t\t3.返回主菜单\n");("请选择您需要的操作:");(()){'1':{(T,1); 按姓名查找教师信息;} '1''2':{(T,2); 按职工号查找教师信息;} '2''3':{0;;} '3': {("非法输入!\n");}}("");();}}4.对教师信息排序( T[] n){(1){ 按职工号排序;( 0<1){ 冒泡法排序( 0<1)(T[1]<T[j]){[j];T[j][1];T[1];}}("排序结果如下:\n");( 0<){(" %8s[] "[i][i]);}("\n");}{ 按教学效果综合评分排序;( 0<1){ 冒泡法排序( 0<1)(T[1]>T[j]){[j];T[j][1];T[1];}}( 0<){("\t\t\t第名: 8s 分数:%3d\n"1[i][i]);}}}5.按教学效果综合评分高低插入一条教师记录( T[]){(){("容量已满,请扩充后再使用!\n");;};先从键盘接收待插入教师的相关信息,存放于一个临时的结构体变量中("->请按要求输入教师信息:\n");("->请输入教师的职工号(3位数字): ");("");("->请输入教师的姓名: ");("");("->请输入教师的性别(男或女): ");("");("->请输入教师的职称: ");("");( 0<3){("->请输入该教师第门主讲课程的信息: \n"1);([j]);("\n");}("->请输入教师的教学效果综合评分(0-100): ");("");("->为保证结果正确,程序将对您的教师按教学效果综合评分进行排序:\n");;( 0<1){ 冒泡法排序( 0<1)(T[1]<T[j]){[j];T[j][1];T[1];}}1;( 0<){(>[i]){;}}("插入位置:");(1); 在末尾插入{( 1>){ 移动插入位置后面的所有数据(T[1][i]);T[1][i];(T[1][i]);T[1][i];(T[1][i]);( 0<3){(T[1][j][i][j]);T[1][j][i][j];(T[1][j][i][j]);T[1][j][j];}}}(T);(T[]);T[];(T[]);T[];(T[]); 插入记录( 0<3){(T[][j][j]);T[][j][j];(T[][j][j]);T[][j][j];}; 教师记录+1}6.存取文件( T[]){*,*1;[100];("请输入文件名:");("");(!((,""))){ 打开输出文件("打开文件时出错,文件或者文件对应的路径可能不存在!\n");;}(!(1("","w"))){ 打开配置文件("打开配置文件出错,文件或者文件对应的路径可能不存在!\n");;(1,""); 将教师数写入文件,这是重要参数( 0<) 将结构体以二进制形式写入文件(([i](),1)1)("写入文件过程中出错!\n");();(1);("文件保存成功!\n");}( T[]){(0){("警告:您对数据作了修改但未保存,打开新文件会覆盖现有数据,您是否先保存现有数据?(Y(y)(n))\n");();();('y''N')(T);}*,*1;[100];("请输入文件名:");("");(!((,""))){ 打开输出文件("打开文件时出错,文件或者文件对应的路径可能不存在!\n");;}(!(1("","r"))){ 打开配置文件("打开配置文件出错,文件或者文件对应的路径可能不存在!\n");;("->正在载入数据...\n");(1,""); 先载入教师数( 0<){ 再载入每个教师的信息(([i](),1)1){(()){();;}}}(1);("载入成功!\n");}7.按照性别统计评分总算( T[]){按性别显示教学效果综合评分,先显示男教师信息,再显示女教师信息 ("->按照性别统计评分的总算结果如下:\n");("->男性教师的信息如下:\n");( 0<){ 扫描所有记录(!((T[i],"男"))){ 若性别为女("姓名:教学效果综合评分:\n"[i][i]);}}("\n");("->女性教师的信息如下:\n");( 0<){ 扫描所有记录(!((T[i],"女"))){ 若性别为女("姓名:教学效果综合评分:\n"[i][i]);}("\n");("->\恭喜您,您需要的信息统计完毕!\n");}( * []){1; 定义标志,用以控制菜单执行T[]; 教师的结构体数组;0;[]= "\n\t\t\t 软件学院教学信息管理系统\n\n""* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **" "* *" "* 1.打开文件并载入数据 *" "* 2.输入教学信息 *" "* 3.显示学院的全部教师记录 *" "* 4.查找教师信息 *" "* 5.按要求教师进行排序 *" "* 6.按教学效果综合评分高低插入一条教师记录 *" "* 7.保存到文件 *" "* 8.按照性别统计评分总算 *" "* 9.退出系统 *" "* *" "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **\n" "请选择您想要执行的操作:(请输入1-8中任意一个整数,并按回车确定)";(1){();(()()){'1':{(T); 打开文件,读取文件到内存;}'2':{(T); 输入教师信息;}'3':{(T); 输出教师信息;}'4':{(T); 查找教师信息;}'5':{ 考试要求:删除一个函数(已删除());1;(){("");("\n\t\t\t1.按职工号排序教师信息\n");("\t\t\t2.按教学效果综合评分排序教师信息\n");("\t\t\t3.返回主菜单\n");("请选择您需要的操作:");(()){'1':{(T,1); 按职工号排序教师信息;} '1''2':{(T,2); 按教学效果综合评分排序教师信息;} '2''3':{0;;} '3': {("非法输入!\n");}}("");();};}'6':{(T); 按教学效果综合评分高低插入一条教师记录;}'7':{(T); 保存文件功能,将教师信息保存到文件;}'8':{(T); 按照性别统计评分总算;}'9':{("\t\t\t\t谢谢使用,再见!"); 退出功能(0);}:{(""); 清屏,重新打印菜单("您输入了非法信息,请重新输入!\n"); 提示用户输入非法;}}(); 清空缓冲区,避免多输入的字符影响菜单运行(""); 让程序暂停,方便查看结果(""); 查看完成后清屏,重新打印菜单,进行下一次操作}0;}四、程序运行界面1.菜单演示2.测试打开文件功能3.测试输入教师记录功能4.测试输出功能:5.查找教师信息按姓名查找成功的情况:失败的情况:按职工号查找查找成功的情况:查找失败的情况:6.对教师信息排序按职工号排序:按教学效果综合评分排序7.按教学效果综合评分高低插入一条教师记录输入待插教师信息:确定插入位置,并显示插入后的教师信息:8.保存文件9.按照性别统计评分总算10.退出系统五、程序的优点和不足优点:结构清晰,编码风格整齐且层次清楚,对函数划分比较合理。