教师信息管理系统(C语言课程设计)

合集下载

信息查询系统C语言实现

信息查询系统C语言实现

本程序为C 语言课设题目信息管理系统:1、 要求实现信息录入2、 能实现信息查询3、 信息排序4、 删除信息5、 修改信息6、 显不所有7、 插入信息 &设置界面 具体代码如下: #include<stdio.h> #in clude<stri ng ・h> #include<stdlib.h> struct student{char name[20]; char phone[20];char email[20]; char QQ[20];};void menu(void)printf("\n\n\n ------ 欢迎使用通讯录系统一 -An");printf("+■An");printf(" 1、信息录入 \n“); printf(" 2、信息查询 \n");printf(" 3、信息排序 \n“);printf(" 4、删除信息\n");printf(" 5、修改信息 \n“);printf(" 6、显Z5所有 \n“);printf(" 7、插入信息 \n");printf(" &退出系统 \n");printf(“+■An"); printff 1'请输入你的选择:\rT);〃菜单程序〃int input(struct student stu[]) 〃输入程序〃{int i,n=O;printf("请输入录入条数\n");scanf(l,%d l,/&n);for(i=0;i<n;i++){printf("请输入第%(1个成员的姓名,电话,邮箱,QQ号\n“,i+l);scanf("%s:stu[i].name);scanf(”%s 蔦stu[i].phone);scanf(”%s 蔦stu[i].email);scanf(”%s 蔦stu[i]・QQ);}return n;}void find(struct student stu[]z int n) 〃查询程序〃{int i;char ch[16];printff"输入查询条件:姓名或电话\n“);scanf(l,%s,,/ch);for(i=0;i<n;i++){if(!strcmp(ch,stu[i].name)| | !strcmp(ch,stu[i].phone)){printf("查询到姓名为%s 的同学:\n“,stu[i].name);printf("信息如下\n”);printf("姓名: %s 电话: %s 邮箱: %s QQ 号码:%s^stu[i]・name,stu[i]・phone,stu[i]・email,stu[i]・QQ);return;}}printff"未找到相关记录”);void output(struct stud ent stu[],i nt n){int i;if(n==O)printf ("通讯录中空无一物\n“);else{printfC'ifi 讯录所有记录如下\n''); for(i=0;i<n;i++)/ tprintf"姓名:%s^); printf)"电话:%sn z stu[i].phone); printf"邮箱:%s,l /stu[i].email); printf(H QQ : %s “,stu[i].QQ);printf(II \n N );}}} int dele(struct stud ent stu[]Jnt n){int i,j;char mark[20];printf ("输入要删除记录的人名或电话号码\n");scanf(,,%s ,,/mark);if(n==O){printf ("通讯录中空无一物\n");return 0;}else{for(i=0;i<=n;i++) if(!strcmp(mark,stu[i].name)| | !strcmp(mark,stu[i].phone))〃显不程序〃 〃删除程序〃printf(u以下是您要删除的记录'n”);printf("姓名:%s 电话:%s 邮箱:%s 码:%s\n:stu[i]・name,stu[i]・phone,stu[i]・email,stu[i]・QQ);for(j=i;j<n-l;j++)stu[j]=stu[j+l];printf(“删除成功\n“);n=n-l;return n;}}printf("未查询到该条记录\n");return n;}}int in sert(struct stud ent stu[]z int n){int i,x;printf("请输入插入记录条数\n");scanf("%cT:&x);for(i=n;i<n+x;i++){printf(''请输入插入的第%d个成员的姓名,电话,邮箱,QQ号\n"J-n+l); scanf(,,%s,,/stu[i].name);scanf(,,%s,,/stu[i].phone);scanf(,,%s,,/stu[i].email);scanf(,,%s,,/stu[i].QQ);}printf(“插入完成\n“);n=x+n;return n;} void change(struct student stu[],int n) 序〃int i;char x[20];printf("请输入需要修改的记录:姓名或电话\n");scanf("%s 蔦x);for(i=0;i<n;i++){if(!strcmp(x,stu[i].name)| | !strcmp(x,stu[i].phone))QQ 号〃插入程序〃〃修改程{p r i ntf ("查询到可修改记录\n");printfC*请输入修改后的名字,电话,邮箱,QQ 号码\n“); scanf(ll %s ,,/stu[i].name);scanf(ll %s ,,/stu[i].phone);scanf(,,%s ,,/stu[i].email);scanf(ll %s ,,/stu[i].QQ);printf ("修改记录成功\n");return;}}printf("未查找到相关记录\n");}void sort(struct student stu[],int n){int ij ;struct student tmp;for(i=0;i<n-l;i++){for(j=i;j<n-l;j++) if(strcmp(stu[j]. name,stu[j+l]・name)<0) tmp=stu[j]/stu[j]=stu[j+l],stu[j+l]=tmp; }printf (”排序后的记录如下:\n H );for(i=0;i<n;i++){printf ("名字:%s ,l /stu[i].name);printf("电话:%s n z stu[i].phone);printf("邮箱:%s n z stu[i].email);printfC'QQ : %s printff'Xn");}} void main(void){struct stud ent stu[35];int n ,c;while(l)〃排序算法〃蔦 stu[i]・QQ);{menu();scanf(,,%d,,/&c);switch(c){case 1:n二input(stu); break; case 2:find(stu,n);break;case 3:sort(stu,n);break;case 4:n=dele(stu,n); break; case 5:cha nge(stu, n); break; case 6:output(stu,n); break; case 7:n=insert(stu,n);break;case &exit(O);。

《C语言程序设计》课程设计任务书-建电11412

《C语言程序设计》课程设计任务书-建电11412

《C语言》课程设计任务书一、性质与目的:本课程设计是学生学习完《C语言程序设计》课程后进行的一次全面的综合练习。

本课程设计的目的和任务:(1)巩固和加深学生对C语言课程的基本知识的理解和掌握;(2)掌握C语言编程和程序调试的基本技能;(3)利用C语言进行简单软件设计的基本思路和方法;(4)提高运用C语言解决实际问题的能力。

通过实习,加深学生对课堂所学基础知识的掌握与理解,提高学生对所学内容的综合运用能力;同时通过查询资料,培养学生自学、接受新知识能力,提高学习兴趣;增强学生程序设计能力,掌握编程技巧,培养学生实际上机调试能力。

二、基本要求:1、选题规定2、设计结束后,要求每个学生上交一份打印的实习报告。

3、设计期间,学生要服从指导教师统一安排,遵守机房制度。

4、严格遵守纪律,不迟到,不早退。

对于无故缺勤者,成绩按不及格处理。

三、设计内容:题目见后边附录四、课程设计的成绩评定a)实习期间的平时表现;b)设计任务的考核成绩;c)设计报告的批阅成绩。

根据以上的成绩由指导教师进行综合评定,成绩分优、良、中、及格和不及格五个等级。

五、实习进程实习为期一周,共22学时,周一至周四每天利用半天时间查阅资料,另外半天到计算机房调试程序(上机的具体时间遵照机房的安排),周五对所设计的软件进行上机考核验收,考核合格者书写设计报告(电子版和打印版),下周一交给指导教师。

六、设计报告格式首先是封面(如下图)其次是目录(要求根据报告内容自动生成)一、设计思路二、程序流程图三、源程序清单四、程序运行结果五、设计总结六、教师评语(学生不要填写)然后是根据目录而写的具体内容附录:(一)基础部分:1.输入一个五位整数,将它反向输出。

例如输入12345,输出应为54321。

(15分)2.用两种循环结构分别编程计算1+2+3…+100的值。

运行结果为“1+2+…+100=5050”(15分)3. 从终端读入20个数据到数组中,统计其中正数的个数,并计算它们之和。

c语言程序设计课程设计选题 (1)

c语言程序设计课程设计选题 (1)

《C语言程序设计》课程设计课题表一、A类1.职工信息管理系统设计2.职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之能提供以下功能:3.1、职工信息录入功能(职工信息用文件保存)--输入4.2、职工信息浏览功能--输出5.3、职工信息查询功能--算法6.查询方式:按学历查询、按职工号查询、条件组合查询7.职工信息删除、修改功能(可选项)8.图书信息管理系统设计9.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。

10.试设计一图书信息管理系统,使之能提供以下功能:11.1、图书信息录入功能(图书信息用文件保存)--输入12.2、图书信息浏览功能--输出13.3、图书信息查询功能--算法14.查询方式:按书名查询、按作者名查询、条件组合查询15.图书信息的删除与修改(可选项)16.图书管理系统设计17.图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等18.功能描述:19.1、新进图书基本信息的输入。

20.2、图书基本信息的查询。

21.3、对撤消图书信息的删除。

22.4、为借书人办理注册。

23.5、办理借书手续。

24.6、办理还书手续25.要求:使用文件方式存储数据。

26.实验设备管理系统设计27.实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。

28.主要功能:29.1、能够完成对设备的录入和修改30.2、对设备进行分类统计31.3、设备的破损耗费和遗损处理32.4、设备的查询33.要求:使用文件方式存储数据。

34.学生信息管理系统设计35.学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

试设计一学生信息管理系统,使之能提供以下功能:36.1、系统以菜单方式工作37.2、学生信息录入功能(学生信息用文件保存)--输入38.3、学生信息浏览功能--输出39.4、学生信息查询功能--按学号查询、按姓名查询、40.5、学生信息的删除与修改(可选项)41.要求:使用文件方式存储数据。

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

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

中北大学程序设计实训说明书学院、系:软件学院专业:软件工程学生姓名:学号:*******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.结构化的程序设计方法将实用功能封装在每一个子函数中,主函数通过调用子函数来实现相对应的功能。

教师信息管理系统

教师信息管理系统

课程设计任务书计算机科学与技术专业 2010 年级一班陈金利一、设计题目教师信息管理系统设计二、主要内容教师信息包括教师号、姓名、性别、年龄、学历、职称、工资、住址、电话等(教师号不重复)。

试设计一教师信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)教师信息录入功能--输入(3)教师信息删除功能(4)教师信息浏览功能--输出(5)查询和排序功能:(至少一种查询方式) --算法按教师号查询按职称查询等三、具体要求围绕课程设计的目的和意义,基本要求如下:1、认真阅读《C语言课程设计》指导书,明确课程设计的目的、意义和要求;2、快速总结C程序设计语言的精髓,如:函数的概念、函数的设计和函数的调用;3、快速熟悉Tuber C 或C++的上机环境。

能熟练进行高级编辑操作(特别是字块操作);熟悉步进式、断点跟踪的程序调试方法,提高工作效率。

4、根据“课程设计题目”,采用结构化的程序设计思想,确定系统的总体设计方案、确"定时间进度。

如果是多人共一题,则要首先完成小组内的人员分工及安排,不允许重题现象。

5.学习并了解良好的程序设计风格。

按质、按量、并按时间完成课程设计的任务。

6.提供可运行的课程设计系统,参加上机面试答辩。

本次课程设计的重点是:学会设计并编写函数,掌握好各函数之间的调用关系;利用文件操作函数,建立数据库并完成对数据库的各种操作;掌握几种典型算法的应用(如:冒泡法、选择排序法和折半查找法)。

同时锻炼学生根据题目进行分析、设计、编码、调试程序和书写必要文档的综合处理能力,从实践中学习并体会程序设计的结构化思想和设计方法。

四、进度安排依照教学计划,课程设计时间为3周。

按照软件工程的思想,软件系统的分析设计至关重要,并要充分重视书写“文档”。

避免甚至杜绝“拿到题目就编码”的现象。

建议将时间分为三个阶段:第一阶段,根据题目要求,拿出系统的总体设计方案:即构思各程序模块的算法,并画出相应的N-S图,同时编写相应的文档;第二阶段,根据N-S图编写程序代码并单独调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。

c语言课课程设计csdn

c语言课课程设计csdn

c语言课课程设计csdn一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和编程思想,培养学生运用C语言解决实际问题的能力。

具体分为以下三个部分:1.知识目标:(1)了解C语言的发展历史和特点;(2)掌握C语言的基本语法,包括数据类型、运算符、控制语句等;(3)理解函数的定义和调用,了解面向过程的编程思想。

2.技能目标:(1)能够使用C语言编写简单的程序,实现输入输出、数据计算等功能;(2)具备一定的代码阅读和调试能力,能独立解决问题;(3)掌握基本的算法,能够运用C语言解决实际问题。

3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣,激发编程热情;(2)树立正确的编程观念,注重代码质量和规范;(3)培养学生团队合作精神,提高沟通与协作能力。

二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言概述:介绍C语言的发展历史、特点及应用领域;2.基本语法:讲解数据类型、运算符、控制语句等基本语法知识;3.函数:介绍函数的定义、声明和调用,讲解面向过程的编程思想;4.编程实践:通过实例让学生动手实践,掌握C语言编程的基本技巧;5.算法与解决问题:引导学生运用C语言解决实际问题,培养基本的算法思维。

三、教学方法为了提高教学效果,本节课将采用以下几种教学方法:1.讲授法:讲解C语言的基本语法和概念,让学生掌握理论知识;2.案例分析法:通过分析典型实例,让学生了解编程技巧和方法;3.实验法:安排上机实践环节,让学生动手编写程序,提高实际操作能力;4.讨论法:学生进行小组讨论,培养团队合作精神和沟通能力。

四、教学资源为了支持本节课的教学,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R);2.参考书:《C Primer Plus》、《C语言入门到精通》;3.多媒体资料:教学PPT、视频教程、在线编程练习平台;4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。

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

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

教师管理系统c语言课程设计一、教学目标本课程的目标是让学生掌握教师管理系统的设计与实现,具备运用C语言进行程序设计的能力。

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

2.技能目标:学生能够运用C语言编写简单的程序,解决实际问题。

通过本课程的学习,使学生具备教师管理系统的设计与实现能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生独立思考、创新解决问题的能力,培养学生的团队协作精神。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等基本概念,以及教师管理系统的设计与实现。

具体安排如下:1.C语言基本语法与数据类型2.运算符与控制结构3.函数与数组4.指针与字符串5.文件操作6.教师管理系统设计与实现三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等基本概念。

2.案例分析法:通过分析实际案例,使学生更好地理解教师管理系统的设计与实现。

3.实验法:让学生亲自动手编写程序,解决实际问题,提高学生的实践能力。

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

1.教材:选用权威、实用的C语言教材,为学生提供系统、全面的学习资料。

2.参考书:提供丰富的课外阅读资料,帮助学生拓展知识面。

3.多媒体资料:制作精美的课件,生动形象地展示课程内容。

4.实验设备:为学生提供充足的计算机设备,确保实验教学的顺利进行。

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

评估方式应客观、公正,能够全面反映学生的学习成果。

1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,以了解学生的学习状态。

2.作业:布置适量作业,评估学生的知识掌握程度和实际编程能力。

《C语言程序设计课设》课程设计指导书

《C语言程序设计课设》课程设计指导书

《C语言程序设计课设》课程设计指导书一、课程设计的目的(1)加深对讲授内容的理解,尤其是一些语法规则。

(2)熟悉C语言程序设计的结构化编程的思想,掌握数据的基本类型、自定义类型、函数、文件和指针等知识,能运用这些知识进行综合编程,熟练应用。

(3)能够综合运用所学知识,编程解决实际问题。

(4)培养团队分工合作的意识,最终使学生提高编程技能和解决实际问题的能力。

二、课程设计基本要求2.1.组织管理1.由院、系指派经验丰富的专业教师担任指导教师。

2.课程设计实行课程负责人与指导教师共同负责制。

3.课程负责人主要进行课设的命题、指导教师的考核、技术把关和全面管理。

4.指导教师全面负责所承担班级的课程设计指导、管理和考核评定工作。

2.2设计要求1.自选题目、小组管理、团队合作、小组评测。

2.模块化程序设计。

3.锯齿型书写格式。

4.必须上机调试通过。

三、选题要求:每个题目限定1-2人,每人必须负责一部分功能,并独立完成,推举出一个组长,负责任务分工,汇总到班长处,然后交给指导教师。

四、设计报告格式及要求:1、题目2、设计目的3、总体设计(程序设计组成框图、流程图)4、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)5、运行结果及分析6、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施7、课程设计心得及体会8、源程序清单和执行结果:清单中应有足够的注释五、课程设计成绩评定5.1基本要求:(1)每个人必须有程序运行结果;(2)每个人必须交《C语言课程设计》报告5.2、成绩评定和打分标准由指导教师对学生在课程设计期间的表现,所完成的设计报告的质量、设计结果的验收和答辩情况进行综合考核。

具体评定标准如下:(1)上机考勤:注重平时上机考勤与遵守纪律情况20%(2)结果验收:学生能运行、讲述或调试自己的程序,回答教师提问,每个人必须有程序运行结果40%(3)小组自评成绩结果10%(4)设计报告:每个人必须交《C语言课程设计》报告和《C语言课程设计》日志30%以上四项缺一不可,否则不能到得相应学分依据上述考核内容,最后采用优(>90分)、良(80~89分)、中(70~79分)及格(60~69分)、不及格(<60分)五级记分制评定学生课程设计成绩。

《C语言程序设计》课程标准

《C语言程序设计》课程标准

《C语言程序设计》课程标准一、课程基本信息课程名称: C语言程序设计所属系部:计算机系学时: 112授课对象:计算机专业高职学生课程性质:计算机各专业的专业基础课开发人员: 甘杜芬介颂园陈小海钟永全二、课程性质与作用(一)课程性质《C语言程序设计》课程是高职高专计算机类各专业的职业素质必修课,在专业人才培养方案中处于核心地位,对于培养学生结构化程序设计的思想和方法起重要作用。

旨在培养高职学生运用计算机逻辑思维的能力,掌握运用C语言编程来解决工作中实际问题的方法和步骤,为提高职业能力和拓展职业空间打下坚实基础.(二)课程作用使学生掌握C语言程序的基础知识和基本技能,树立结构化程序设计思想,养成良好的编程习惯,培养严谨务实的分析问题与解决问题的能力,并为后续的应用性课程和系统开发课程打好软件基础.三、课程设计的理念与思路(一)课程设计理念《C语言程序设计》是培养学生结构化程序设计思想的课程,是计算机类专业的基础.鉴于面向的是高职高专学生,本着以职业技能培养为主导,以培养能力和提高兴趣为目标,变应试为应用,重视在新形势下的新方法、新规则和新思想的传授,把程序设计领域最新、最有价值的思想和方法渗透到C语言中.着重培养学生无论以后再学习、工作中使用什么语言编程,都能灵活应用这些思想和方法的能力.(二)课程设计思路本课程针对一年级学生初次接触面向过程的程序设计概念的特点,结合C程序设计语言,通过列举大量的应用实例,初步系统地介绍面向过程、面向模块和结构化程序设计的思想和方法,教学过程中注重程序设计思路的灵活多变,力求锻炼学生的逻辑思维能力。

在此基础上,结合上机实践,使学生对程序设计有一个比较全面、系统的了解,为学生今后的学习打下扎实的理论基础。

课程的理论实践一体化教学过程全部安排在机房进行,教学中以学生为中心,教师全程负责传授知识、答疑解惑、指导项目设计、充分调动师生双方的积极性,实现教学目标。

四、课程目标本课程的总体目标:通过任务驱动的学习和综合实训,熟练掌握应用C语言程序设计的基本知识和技能,并树立结构化程序设计的基本思想,养成良好的编程习惯。

程序设计c语言课程设计

程序设计c语言课程设计

程序设计c语言课程设计一、教学目标本课程的教学目标是使学生掌握C语言程序设计的基本概念、语法和编程技巧,培养学生运用C语言解决实际问题的能力。

具体分解为以下三个方面的目标:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组和指针等概念。

2.技能目标:学生能够熟练使用C语言编写程序,解决简单的数学计算、数据处理和排序等问题。

3.情感态度价值观目标:培养学生对编程语言的兴趣,增强其自主学习和解决问题的能力,使其认识到程序设计在现代社会的重要性。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组和指针等。

具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点和基本语法。

2.第二章:数据类型和运算符,讲解整型、浮点型、字符型数据以及各类运算符的用法。

3.第三章:控制结构,学习顺序结构、分支结构和循环结构的使用。

4.第四章:函数,讲解函数的定义、声明和调用,以及常用的库函数。

5.第五章:数组和指针,学习一维、二维数组的操作以及指针的基本用法。

6.第六章:字符串和文件操作,了解字符串的表示方式、文件的基本操作。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式:1.讲授法:教师通过讲解、举例等方式,向学生传授C语言的基本概念和编程技巧。

2.案例分析法:教师通过分析实际案例,引导学生运用C语言解决具体问题。

3.实验法:学生动手编写程序,巩固所学知识,培养实际编程能力。

4.讨论法:学生分组讨论,共同解决问题,提高沟通和合作能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)2.参考书:《C Primer Plus》、《C语言入门教程》3.多媒体资料:教学PPT、视频教程、在线编程练习平台4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。

教师信息管理系统报告

教师信息管理系统报告

目录目录 (I)一、选题背景 (1)1.1 主要问题及技术要求 (1)1.2基本思路 (1)2.1 函数设计思路及流程图 (2)2.1.1 程序基本功能和流程 (2)2.1.2主函数结构及流程 (2)2.2 部分主要函数的流程图 (3)2.3参数设置说明 (5)2.3.1结构体变量 (5)2.3.2整型变量n,m (5)三、程序及功能说明 (5)3.1 数据结构的设计 (5)3.2 信息初始化及进入菜单模块 (5)3.3显示教师信息模块 (7)3.4修改和查询教师信息模块 (8)3.5添加教师信息模块 (10)3.6按职工号排序模块 (11)3.7删除教师信息模块 (12)3.8退出管理系统模块 (12)3.9主函数模块 (13)四、结果分析 (14)4.1信息初始化及进入菜单模块 (14)4.1.1登录界面 (14)4.1.2选择界面 (15)4.2显示教师信息模块 (16)4.3修改教师信息模块 (17)4.4添加教师信息模块 (18)4.5按职工号排序模块 (19)4.6查询教师信息模块 (20)4.7删除教师信息模块 (21)4.8保存并退出板块 (22)4.9退出板块 (22)五、总结及心得体会 (23)参考文献 (26)源程序 (27)一、选题背景1.1 主要问题及技术要求学院教学信息是教学过程中重要的反馈,对这些信息的的整理、分析,对教学质量的监控、教学过程的管理有着重要的作用。

信息技术的发展渗透在生活的各个方面,教务管理系统的应用可以使教学管理更加方便、有效,我们小组应用C语言相关知识,编写程序来实现教职工信息的管理。

本课题主是要满足管理系统对教职工基本信息的输入、显示、修改、添加、查询、排序等技术要求。

1.2基本思路运用学习的C语言知识,特别是数组结构体和链表的综合使用,用结构体存储每个老师的基本信息,用链表将所有结构体连接起来,进而用链表对教师信息进行整体操作。

以switch语句为主设计主函数,进而调用显示、修改、添加、查询、排序等各个模块的子函数来实现所需要的功能。

c语言课程设计公开课

c语言课程设计公开课

c语言课程设计公开课一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和编程技巧,培养学生独立思考和解决问题的能力。

具体来说,知识目标包括:了解C语言的历史和发展,熟悉C语言的基本数据类型、运算符、控制结构、函数等语法知识;技能目标包括:能够使用C语言编写简单的程序,解决实际问题;情感态度价值观目标包括:培养学生对计算机科学的兴趣,增强学生的自信心和自主学习能力。

二、教学内容本节课的教学内容主要包括C语言的基本语法和编程技巧。

具体来说,教学大纲如下:1.C语言简介:介绍C语言的历史和发展,使学生对C语言有一个整体的认识。

2.基本数据类型和运算符:讲解C语言的基本数据类型(整型、浮点型、字符型等)和运算符(算术运算符、关系运算符、逻辑运算符等),使学生能够正确使用这些知识编写程序。

3.控制结构:讲解C语言的控制结构(顺序结构、选择结构、循环结构),使学生能够根据实际情况选择合适的控制结构解决问题。

4.函数:讲解C语言的函数概念和基本用法,使学生能够理解函数的作用,并能够编写简单的函数。

三、教学方法为了达到本节课的教学目标,我们将采用以下教学方法:1.讲授法:通过讲解C语言的基本语法和编程技巧,使学生掌握相关知识。

2.案例分析法:通过分析典型的编程案例,使学生能够将所学知识应用于实际问题。

3.实验法:让学生动手编写程序,培养学生的实际编程能力。

四、教学资源为了支持本节课的教学内容和教学方法,我们将准备以下教学资源:1.教材:《C程序设计语言》或《C语言入门教程》等。

2.参考书:《C语言编程实例解析》或《C语言编程技巧》等。

3.多媒体资料:制作课件和教学视频,以便于讲解和演示。

4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)等。

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

评估方式包括:1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等表现,评估学生的学习态度和积极性。

c语言课程设计系统程序

c语言课程设计系统程序

c语言课程设计系统程序一、教学目标本课程旨在通过C语言程序设计的学习,使学生掌握C语言的基本语法、数据结构、算法和程序设计方法,培养学生具备基本的程序设计能力和逻辑思维能力。

通过本课程的学习,学生应达到以下目标:1.理解C语言的基本语法和编程规范;2.掌握常用的数据类型、运算符和表达式;3.熟悉控制结构和函数的定义及使用;4.了解C语言的内存管理和编译过程。

5.能够运用C语言编写简单的程序;6.具备基本的调试和排错能力;7.能够运用C语言解决实际问题;8.熟悉常用的编程工具和开发环境。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力;2.培养学生积极主动、勇于探索的学习态度;3.培养学生严谨细致、勤奋刻苦的编程习惯;4.培养学生解决问题的能力和创新精神。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和程序设计方法。

具体安排如下:1.C语言概述:介绍C语言的发展历程、特点和应用领域;2.基本语法:讲解数据类型、运算符、表达式、语句等基本语法元素;3.控制结构:学习顺序结构、分支结构和循环结构;4.函数:介绍函数的定义、声明和调用,包括内置函数和用户自定义函数;5.数组和字符串:讲解数组的概念和应用,字符串的表示和操作;6.指针:讲解指针的概念、运算和应用;7.结构体和联合:介绍结构体和联合的概念、定义和使用;8.文件操作:讲解文件的概念、文件的打开和关闭、文件的读写操作;9.算法和程序设计:介绍算法的基本概念,学习常用的排序算法、查找算法等。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:通过讲解C语言的基本语法、数据结构和算法,使学生掌握相关知识;2.案例分析法:分析典型的程序设计案例,使学生更好地理解知识点;3.实验法:安排上机实验,让学生动手编写程序,培养实际编程能力;4.讨论法:学生进行小组讨论,共同解决问题,提高团队合作能力。

学生课程信息管理系统c语言

学生课程信息管理系统c语言

学生课程信息管理系统c语言学生课程信息管理系统是一个用于管理学生课程信息的软件系统。

它可以帮助学校、教师和学生轻松地进行课程管理、成绩管理和学生信息管理。

本文将介绍该系统的主要功能和特点。

一、系统概述学生课程信息管理系统是为了方便学校管理学生课程信息而开发的一款软件。

它可以实现学生选课、查看课程信息、查询成绩等功能。

通过该系统,学校可以更好地管理学生的学习情况,提高教学质量,促进学生的成长。

二、系统功能1. 学生选课功能:学生可以通过系统选择自己感兴趣的课程。

系统会显示可选课程的详细信息,包括课程名称、授课教师、上课时间等。

学生可以根据自己的兴趣和学习计划进行选择。

2. 课程信息查询功能:学生可以通过系统查询自己已选课程的详细信息。

系统会显示课程的名称、授课教师、上课时间、上课地点等信息,方便学生及时了解课程的相关信息。

3. 成绩查询功能:学生可以通过系统查询自己的课程成绩。

系统会根据学生的学号和课程信息,显示对应的成绩。

学生可以及时了解自己的学习成果,并根据成绩进行学习调整。

4. 学生信息管理功能:系统可以记录学生的基本信息,如学号、姓名、年龄、性别等。

教师和学校管理者可以通过系统对学生信息进行管理,包括添加学生信息、修改学生信息、删除学生信息等。

5. 教师信息管理功能:系统可以记录教师的基本信息,如教师编号、姓名、性别等。

学校管理者可以通过系统对教师信息进行管理,包括添加教师信息、修改教师信息、删除教师信息等。

6. 课程信息管理功能:系统可以记录课程的详细信息,如课程编号、课程名称、授课教师、上课时间、上课地点等。

学校管理者可以通过系统对课程信息进行管理,包括添加课程信息、修改课程信息、删除课程信息等。

三、系统特点1. 界面友好:系统的界面设计简洁美观,操作简单明了,方便用户使用。

2. 数据安全:系统采用数据库存储学生课程信息,保证数据的安全性和完整性。

3. 高效性:系统能够快速响应用户的请求,提供及时的信息查询和管理功能。

教师信息管理系统(设计说明书范本)

教师信息管理系统(设计说明书范本)

. ..C程序设计课程设计任务书及说明书设计题目教师信息管理系统学院计算机与通信专业、年级物联网工程学生王明明学号 _____ 14530008_指导教师时间 2015 年春季学期目录1 摘要 (3)2 前言 (4)3 正文 (5)3.1系统分析(需求分析)3.2系统总体设计3.3详细设计3.4系统测试及使用(操作)说明4 总结 (18)5 参考文献 (18)致谢附录: 程序源代码1 摘要本次课程设计采用C语言,开发了一个基本的教师信息管理系统,该系统具备了按教师姓名查找并输出教师信息,按教师号查找并输出教师信息,按教师姓名查找并删除数据,输出全部教师信息数据,对教师的管理也可以更加方便快捷。

关键词:C语言;课程设计;教师信息管理系统2 前言随着教育的广泛性的提高,教师的数量逐渐增多,但是在教师管理是出现教师姓名、年龄等出现错误的诸多问题。

本文针对上述问题,采用软件工程的开发原理,根据软件流程过程规范,按照需求分析、概要设计、详细设计、程序编码、测试、软件应用、软件维护等过程开发了一个教师信息管理系统。

采用c语言作为开发工具,设计了这个教师信息管理系统,解决了教师信息管理中存在的数据安全性、数据一致性等问题。

3、正文3.1 系统分析3.3.1.设计要求该设计要求教师以学校教师信息管理业务为背景,设计、开发一套“教师信息管理系统”软件。

通过该题目的设计过程,可以培养教师结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。

得到软件工程的综合训练,提高解决实际问题的能力。

3.3.2设计任务1、以教师信息管理业务为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;2、完成软件结构设计和算法设计;3、完成系统的软件开发和测试工作;教师信息包括:教师号,,年龄,性别,出生年月,地址,,E-mail等。

c语言文件操作课程设计

c语言文件操作课程设计

c语言文件操作课程设计一、课程目标知识目标:1. 掌握C语言文件操作的基本概念,包括文件类型、文件指针和文件状态标志。

2. 学会使用C语言标准库函数进行文件的打开、关闭、读写操作。

3. 理解文件缓冲机制,掌握文件的随机读写方法。

4. 能够运用C语言实现简单的文件加密和解密。

技能目标:1. 能够独立编写C语言程序,实现对文本文件的创建、编辑和保存。

2. 能够运用文件操作实现数据的持久化存储,提高程序的实用性。

3. 能够分析文件操作过程中可能出现的错误,并学会调试和解决相关问题。

4. 培养良好的编程习惯,遵循代码规范,提高代码质量。

情感态度价值观目标:1. 培养学生对C语言编程的兴趣,激发学习热情,提高自主学习能力。

2. 培养学生的团队协作精神,学会在合作中解决问题,共同进步。

3. 培养学生面对问题敢于挑战、勇于创新的精神,提高解决实际问题的能力。

4. 增强学生的信息安全意识,了解文件加密的重要性,为今后的学习和工作打下基础。

本课程设计针对高中年级学生,结合C语言文件操作的知识点,注重理论与实践相结合,培养学生的编程能力和实际应用能力。

课程目标明确、具体,可衡量,便于教学设计和评估。

在教学过程中,要关注学生的个体差异,因材施教,确保每个学生都能达到课程目标。

二、教学内容1. 文件操作基本概念:文件类型、文件指针、文件状态标志。

相关教材章节:第三章第四节“文件操作基础”2. 文件打开与关闭:fopen函数、fclose函数。

相关教材章节:第三章第五节“文件打开与关闭”3. 文件读写操作:fputc函数、fputs函数、fgetc函数、fgets函数、fprintf 函数、fscanf函数。

相关教材章节:第三章第六节“文件的读写操作”4. 文件随机读写:fseek函数、ftell函数、rewind函数、fread函数、fwrite 函数。

相关教材章节:第三章第七节“文件的随机读写”5. 文件加密与解密:异或运算实现文件加密解密。

《C语言程序设计基础》课程设计报告(包含源文件和源代码)

《C语言程序设计基础》课程设计报告(包含源文件和源代码)

为了更好的帮助同学们学习,此文档还包含全部的源文件和源代码,有需要的同学请进本作者的百度空间!《程序设计基础》课程设计报告题目:学院教学信息管理系统日期:2013.5.21班级:计算机科学与技术1202班学号:************姓名:******一.设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计基础(C语言)》课程后进行的一次全面的综合练习。

本课程设计的目的:1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二.课程设计任务书题目:学院教学信息管理系统学院教学信息管理系统,每一条记录包括一位教师的职工号、姓名、职称、性别、3门课程教学效果、综合评分。

系统要求实现以下功能:1、输入:输入每一位教师记录,将其信息写入文件中。

2、显示:显示每位教师记录。

3、排序:按职工号或教学效果综合评分进行排序,并显示。

4、查找:完成按姓名或职工号查找教师的相关记录,并显示。

分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。

2、建立一个文件,将每位教师的相关(教学)信息写入文件中并能显示于屏幕上。

3、完成排序(按职工号、姓名、职称等)、查找等功能。

要求:1、用C语言实现程序设计;2、利用结构体数组或者链表实现教师信息的数据结构设计;3、系统的各个功能模块要求用函数实现;4、界面友好(良好的人机交互),程序加必要的注释。

三.系统设计方案用到数据结构的定义:在此程序中用到了结构体的定义,结构体数组的定义以及变量的申明,还用到了外部函数的申明及调用。

在主函数中,输出教师信息的函数是贯穿在程序始终的,例如要实现教师的排序这一模块时,排完序后就需要用输出信息的函数来输出排序后的信息。

这就得需要多个函数共同实现这一个模块。

c语言顺序结构课程设计

c语言顺序结构课程设计

c语言顺序结构课程设计一、课程目标知识目标:1. 掌握C语言的基本语法和结构,理解顺序结构程序设计的概念;2. 学会使用C语言中的基本数据类型、变量和常量,并能正确进行赋值和运算;3. 掌握C语言中的输入输出语句,能够实现数据的输入和输出;4. 理解顺序结构程序设计中常用的控制语句,如条件语句和循环语句。

技能目标:1. 能够编写简单的顺序结构C语言程序,实现基本的数学运算和数据处理;2. 学会使用顺序结构程序设计解决实际问题,培养问题分析和算法设计的能力;3. 掌握C语言调试工具的使用,能够对顺序结构程序进行调试和优化。

情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发主动学习和探究的精神;2. 培养学生的逻辑思维能力和团队协作精神,提高解决实际问题的能力;3. 增强学生的自信心和成就感,培养面对困难和挑战时的积极态度。

课程性质:本课程为C语言程序设计的基础课程,侧重于顺序结构程序设计的基本概念和技能培养。

学生特点:学生为初中生,具有一定的数学基础和逻辑思维能力,对编程有一定兴趣,但实践经验不足。

教学要求:结合学生特点,注重理论与实践相结合,通过案例分析和实际操作,使学生掌握顺序结构程序设计的基本方法和技巧。

在教学过程中,关注学生的个体差异,提供个性化指导,确保课程目标的实现。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. C语言简介:介绍C语言的发展历程、特点和应用领域,使学生了解C语言的重要性。

教材章节:第一章 C语言概述2. 基本数据类型与变量:讲解整型、浮点型、字符型等基本数据类型,以及变量和常量的定义与使用。

教材章节:第二章 数据类型与运算符3. 输入输出语句:学习C语言中的输入输出函数,掌握printf和scanf函数的使用。

教材章节:第二章 输入输出语句4. 运算符与表达式:介绍各类运算符及其优先级,学会编写简单的数学运算表达式。

教材章节:第二章 运算符与表达式5. 顺序结构程序设计:讲解顺序结构的概念,分析顺序结构程序设计的步骤和方法。

c语言课程设计设计理念

c语言课程设计设计理念

c语言课程设计设计理念一、教学目标本课程旨在让学生掌握C语言的基本语法、数据结构和算法,培养学生独立编程和解决问题的能力。

具体目标如下:1.知识目标:•理解C语言的基本语法和编程规范;•熟悉常用数据类型、运算符和表达式;•掌握函数的定义和调用;•了解数组、指针和字符串的基本使用;•理解结构体和文件操作等高级概念。

2.技能目标:•能够使用C语言编写简单的程序;•熟练使用调试工具进行程序调试;•掌握基本的算法设计和分析方法;•能够独立解决编程问题,具备一定的编程能力。

3.情感态度价值观目标:•培养学生对计算机科学的兴趣和热情;•培养学生良好的编程习惯和团队协作精神;•培养学生面对挑战、解决问题的积极心态;•培养学生对知识产权的尊重和保护意识。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个方面:1.C语言基本语法和编程规范;2.数据类型、运算符和表达式;3.函数的定义和调用;4.数组、指针和字符串的使用;5.结构体和文件操作等高级概念;6.基本算法设计和分析方法;7.编程实践和调试技巧。

教学大纲将按照教材的章节顺序进行,每个章节都有相应的教学内容和作业要求。

具体安排如下:1.第1-2周:C语言基本语法和编程规范;2.第3-4周:数据类型、运算符和表达式;3.第5-6周:函数的定义和调用;4.第7-8周:数组、指针和字符串的使用;5.第9-10周:结构体和文件操作等高级概念;6.第11-12周:基本算法设计和分析方法;7.第13-14周:编程实践和调试技巧。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:教师讲解基本概念和语法,引导学生理解和掌握;2.案例分析法:分析典型实例,让学生了解实际应用场景;3.实验法:学生动手实践,巩固所学知识和技能;4.讨论法:分组讨论问题,培养学生的团队协作和沟通能力。

四、教学资源本课程将充分利用教学资源,以支持教学内容和教学方法的实施。

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

课程设计任务书计算机科学与技术专业年级班一、设计题目教师信息管理系统设计二、主要内容教师信息包括教师号、姓名、性别、年龄、学历、职称、工资、住址、电话等(教师号不重复)。

试设计一教师信息管理系统,使之能提供以下功能:(1(2(3(4)教师信息浏览功能(5)查询和排序功能:(至少一种查询方式)按教师号查询按职称查询等三、具体要求围绕课程设计的目的和意义,基本要求如下:1、认真阅读《C语言课程设计》指导书,明确课程设计的目的、意义和要求;2、快速总结C程序设计语言的精髓,如:函数的概念、函数的设计和函数的调用;3、快速熟悉Tuber C 或C++的上机环境。

能熟练进行高级编辑操作(特别是字块操作);熟悉步进式、断点跟踪的程序调试方法,提高工作效率。

4、根据“课程设计题目”,采用结构化的程序设计思想,确定系统的总体设计方案、确"定时间进度。

如果是多人共一题,则要首先完成小组内的人员分工及安排,不允许重题现象。

5.学习并了解良好的程序设计风格。

按质、按量、并按时间完成课程设计的任务。

6.提供可运行的课程设计系统,参加上机面试答辩。

本次课程设计的重点是:学会设计并编写函数,掌握好各函数之间的调用关系;利用文件操作函数,建立数据库并完成对数据库的各种操作;掌握几种典型算法的应用(如:冒泡法、选择排序法和折半查找法)。

同时锻炼学生根据题目进行分析、设计、编码、调试程序和书写必要文档的综合处理能力,从实践中学习并体会程序设计的结构化思想和设计方法。

四、进度安排依照教学计划,课程设计时间为3周。

按照软件工程的思想,软件系统的分析设计至关重要,并要充分重视书写“文档”。

避免甚至杜绝“拿到题目就编码”的现象。

建议将时间分为三个阶段:第一阶段,根据题目要求,拿出系统的总体设计方案:即构思各程序模块的算法,并画出相应的N-S图,同时编写相应的文档;第二阶段,根据N-S图编写程序代码并单独调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。

三个阶段时间分配的大概比例是: 35:45:20。

五、完成后应上交的材料1.课程设计的题目、系统的总功能和各子模块的功能;2.题目的设计思想(或算法)简述;3.主要程序的框图(要求用N-S图);4.源程序代码(要求在关键的位置有注释,从而增加程序的可读性);5.课程设计的总结报告,主要包括以下内容:(1)课程设计中遇到的主要问题和解决方法;(2)你的创新和得意之处;(3)设计中存在的不足及改进的设想;(4)本次课程设计的感想和心得体会。

以上完成的源程序及相关文档,填写在《课程设计说明书》上,要求干净整洁,符合课程设计的要求和规范。

六、总评成绩指导教师签名日期年月日系主任审核日期年月日目录一.题目设计思想简述 (5)二.程序的N—S图 (7)2.1总程序的N—S图 (7)2.2各子函数的N—S图 (7)2.2.1教师信息录入函数 (8)2.2.2教师信息浏览函数 (8)2.2.3教师信息删除函数 (9)2.2.4教师信息查询函数 (9)2.2.5教师信息排序函数 (10)三.源程序代码 (11)四.程序运行效果图 (33)4.1登陆界面 (33)4.2菜单栏 (33)4.3录入功能 (34)4.4浏览功能 (34)4.5删除功能 (35)4.6查询功能 (35)4.7排序功能 (36)五.总结报告 (37)5.1课程设计中遇到的主要问题和解决方法.................37 5.2你的创新和得意之处.................................37 5.3设计中存在的不足及改进的设想.......................37 5.4本次课程设计的感想和心得体会.. (38)一.题目设计思想简述如上图所示,该教师信息管理系统主要是一个以动态链表的应用为基础来实现对教师信息的录入,查询,删除等功能。

定义教师结构体如下: struct teacher { long num;//教师号 char name[20];//姓名char sex[5];//性别主函数退 出 系 统识别口令的函数 菜单栏函数录入教师信息的函数 查询教师信息的函数 删除教师信息的函数 浏览教师信息的函数 教师信息排序的函数int age;//年龄char edu[20];//学历char title[20];//职称long wage;//工资char addr[100]; //地址char telep[15];//电话struct teacher *next;}*head=NULL;主函数只进行口令函数和菜单栏函数的调用,主要工作通过菜单函数实现。

口令为123456。

菜单栏函数通过用switch语句实现不同功能的选择,不同的功能用不同的子函数实现。

录入教师信息通过建立动态单链表来实现。

浏览教师信息则通过将链表所有数据顺序输出来实现。

查询功能只要从链表头开始不断往下一个结点读取信息跟所要查找的信息比较,直到读取到的信息跟所要查找的信息相同或链表尾为止,并把此结点的信息输出。

删除教师信息的函数是通过查找链表中有该信息的结点后将该结点移出链表,即使该结点前一个结点直接指向该结点后面的结点来达到删除信息的目的。

排序函数是通过交换结点在链表中的位置来实现的,即使得各结点在链表中的位置便是所要得到的排序该信息应在的位置,这样直接顺序输出链表的信息时就能按所要的排序输出了。

二.程序的N —S 图2.1总程序的N —S 图i=0当i<3当b<1或b>6 输入口令aT a=123456? F退出循环i=i+1 T i=3? F 口令3次输入错误 ,退出系统 输入所选择的功能b 重新输入所要选择的功能b T b=1? F教师信息录入功 能 T b=2? F教师信息浏览功 能 T b=3? F教师信息删除功 能 T b=4? F教师信息查询功 能T b=5? F 教师信息排序退出系统说明:各功能都是通过调用子函数来实现的。

2.2各子函数的N—S图子函数主要包括教师信息录入,教师信息浏览,教师信息删除,教师信息查询和教师信息排序等5个。

在退出系统时调用了一个保存信息到文件中的函数,该函数只是简单的应用了文件的读写功能,在此不写出其N—S图。

2.2.1教师信息录入函数p1=(struct teacher *)malloc(LEN)输入一个教师号p1->numT 教师号为0? F T 链表头为空? FHead =p1p3=head当p3->next不为空p3=p3->nextp3->next=p1当教师号不为0输入教师的姓名,性别,年龄,学历,职称,月薪,住址,电话T 第一个录入? F head=p1 p2->next=p1p2=p1p1=(struct teacher *)malloc(LEN)输入一个教师号p1->numn=n+1直到p 为空说明:p1=(struct teacher *)malloc(LEN)中LEN 是在程序开头的宏定义(#define LEN sizeof(struct teacher))。

其中n 为全局变量,用来统计链表的结点数,以下出现的n 都是同一个。

2.2.2教师信息浏览函数说明:实际程序中在链表头为空是提供了可以浏览之前保存在文件中的信息的功能,当选择该功能时就调用了一个读取文件的函数。

该函数只是对文件读写的简单应用,详细请看后面第三部分代码,这里不写出其N-S 图。

2.2.3教师信息删除的函数p2->next=NULLT 链表头为空? Fp=head显示“还未录入过信息” 输出p 所指向的位置中的教师的所有信息p=p->nextT 链表头为空? F 输出“ 还未 录入 过教 师信 息”输入要删除教师信息的教师号i p1=head当i!=p1->num T p1->next 为空? F退出循环p2=p1 p1=p1->nextT i!=p1->num? F 输出“已录入T p1为链表头? F2.2.4教师信息查询的函数在查询方面程序为用户提供了4种不同方式的查询,每一种方式的查询为一个子函数,此时也是采用一个菜单栏函数进行选择查询方式并调用该种方式的函数。

菜单栏函数跟主程序菜单栏的算法一样,此处只给出查询函数的N —S 图。

说明:该N —S 图是对应姓名,教师号,职称,年龄四种查找方式的函数的。

当选择教师号查找时,输入i 的即为教师号,与i 做比较的为p 中的教师号,选择其他查找方式时类似。

2.2.5教师信息排序函数T 链表头为空? F输出“还未录入程序”并退出函数 输入要查找的教师信息的对应方法的对应数据ip=head当p 非空时T i 跟p 中对应信息不等? F输出p 所指向的位置的教师的所有信息j=j+1 j=0 p=p->nextT j 不为0? F输出“已录入的信息中不存在符合i 的信息的教师排序也跟查询一样给出多种排序方式并采用菜单栏函数,此处也只给出排序函数的N —S 图。

说明:p1,p2指向的结点用来比较,p3,p4是用来记录结点的,当选用的排T 链表头不为空? F输出“还未录入过教师信息”并退出函数T 第二个结点为空? Fp1=head p2=head->next i=1 当i 小于n 时 j=0 当j 小于n-i 时 p1中的对应信息小过p2的? T F T p1为链表头? F head=p2 p3->next=p2 p4=p2->next p2->next=p1 p1->next=p4 p3=p2 p2=p4 p3=p1 p1=p2 p2=p2->next p1=head p2=p1->next 调用教师信息浏览函数序方式不同,p1,p2用来比较的信息为所选方式的信息。

三.源程序代码#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <string.h>#define LEN sizeof(struct teacher)//宏定义结构体字节数int n=0;struct teacher//定义结构体{long num;//教师号char name[20];//姓名char sex[5];//性别int age;//年龄char edu[20];//学历char title[20];//职称long wage;//工资char addr[100];//地址char telep[15];//电话struct teacher *next;//指向下一个结点}*head=NULL;void key()//口令检查的函数{int i;long a;for(i=0;i<3;i++){printf("请输入口令(还可输入%d次):\n",3-i);scanf("%ld",&a);if(a==123456)//检查口令是否正确{printf("欢迎进入系统\n");break;}else printf("口令错误\n");}if(i==3)//判断可以输入口令的次数是否用完{printf("可使用的口令输入次数已用完,将自动退出!\n");exit(0);}}void save()//把数据存入文件的函数{FILE *fp;int i;char filename[20];struct teacher *p;printf("\n 是否把此次登录系统录入和修改后的教师信息保存到文件中\n");printf(" 1:【是】0:【否】\n请选择:");scanf("%d",&i);while((i!=0)&&(i!=1))//判断输入的选择是否有效{printf("选择无效,请重新输入正确选项:");scanf("%d",&i);}if(i==1)//判断是否选择了要保存{printf("\n请输入要保存数据的文件名:");scanf("%s",filename);if((fp=fopen(filename,"wb"))==NULL){printf("\n无法打开文件\n");exit(0);}for(p=head;p!=NULL;p=p->next)if(fwrite(p,sizeof(struct teacher),1,fp)!=1)printf("\n此处数据有误\n");fclose(fp);}exit(0);}void read()//从文件读出数据的函数{struct teacher teach[299],temp;int i=0;FILE *fp;char filename[20];printf("\n请输入存有教师信息的文件名:");scanf("%s",filename);if((fp=fopen(filename,"rb"))==NULL){printf("\n无法打开文件\n");exit(0);}fseek(fp,-sizeof(struct teacher),2);/*将位置指针从文件末尾后退一个结构体的字节数*/fread(&temp,sizeof(struct teacher),1,fp);/*从所指向的文件中读出数据存储到结构体变量temp中*/fseek(fp,0,0);//将位置指针移到文件的开头if(fread(&teach[i],sizeof(struct teacher),1,fp)==1)/*判断文件开头读入的数据是否为空*/{printf("\n存有的教师信息如下:\n");while(teach[i].num!=temp.num)//进行循环读取文件{printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,",teach[i].num,teach[i].name,teach[i].sex,teach[i].age ,teach[i].edu);printf("职称:%s\n 月薪:%ld,住址:%s,电话:%s\n",teach[i].title,teach[i].wage,teach[i].addr,teach[i] .telep);i=i+1;fread(&teach[i],sizeof(structteacher),1,fp);/*从文件中读入数据存储到结构体变量teach【i】中*/}//输出文件中的最后一个信息printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,",teach[i].num,teach[i].name,teach[i].sex,teach[i].age ,teach[i].edu);printf("职称:%s\n 月薪:%ld,住址:%s,电话:%s\n",teach[i].title,teach[i].wage,teach[i].addr,teach[i] .telep);fclose(fp);}else printf("该文件中无教师信息\n");//文件为空时输出此处}void creat()//录入教师信息的函数{struct teacher *p1,*p2,*p3;p1=p2=(struct teacher *)malloc(LEN);/*申请一个结构体字节数的空间用来存储一个教师的信息*/printf("请输入一位教师的教师号(结束录入请输入0):");scanf("%ld",&p1->num);if(p1->num!=0)//判断用户是要结束录入还是要存储信息if(head==NULL) head=p1;/*判断链表是否为空,是则将链表头指向p1*/else //链表不为空则将链表尾指向p1{p3=head;//p3用来记录链表的尾部while(p3->next!=NULL)/*若p3不是链表尾则将p3指向下一个结点*/p3=p3->next;p3->next=p1;//将最后一个结点指向p1}while(p1->num!=0)//判断用户是否结束录入功能{//录入该教师号的教师对应的信息printf("姓名: ");scanf("%s",p1->name);printf("性别:");scanf("%s",p1->sex);printf("年龄:");scanf("%d",&p1->age);printf("学历:");scanf("%s",p1->edu);printf("职称:");scanf("%s",p1->title);printf("月薪:");scanf("%ld",&p1->wage);printf("住址:");scanf("%s",p1->addr);printf("电话:");scanf("%s",p1->telep);n=n+1;//给统计录入的教师数n加一/*判断是否为第一个录入的信息,是则将链表头指向p1,否则将p2指向p1*/if(n==1) head=p1;else p2->next=p1;p2=p1;//p2用来记录链表的最后一个结点p1=(struct teacher *)malloc(LEN);//重新申请空间printf("请输入一位教师的教师号(结束录入请输入0): ");scanf("%ld",&p1->num);}p2->next=NULL;//将最后一个结点指向空}void print()//输出教师信息的函数{struct teacher *p;int i;p=head;if(head!=NULL)//判断链表是否为空{printf("\n这%d位教师的信息为:\n",n);do{printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,职称:%s\n",p->num,p->name,p->sex,p->age,p->edu,p->title);printf(" 月薪:%ld,住址:%s,电话:%s\n",p->wage,p->addr,p->telep);p=p->next;//将下一个结点的首地址赋给p}while(p!=NULL);//到链表尾时结束循环}else//链表为空时执行以下部分{printf("\n你此次登录系统还没有录入教师信息,可进行以下操作:\n");printf(" 1:【浏览以前保存在文件中的教师信息】 2:【开始录入教师信息】\n");printf(" 3:【退出系统】4:【返回菜单】\n");printf("请选择:");scanf("%d",&i);while((i<1)&&(i>4)){printf("选择无效,请重新输入正确选项:");scanf("%d",&i);}if(i==1) read();//调用从文件读取数据的函数 if(i==2) creat();//调用录入信息的函数if(i==3) exit(0);//退出系统}}void del()//删除教师信息的函数{struct teacher *p1,*p2;long i;if(head==NULL)//判断链表是否为空{printf("\n还未录入过教师信息\n");//链表为空时输出return;}printf("请输入要删除教师信息的教师号:");scanf("%ld",&i);p1=head;while(i!=p1->num)//直到p1指向的结点是要删除的信息位置{if(p1->next==NULL) break;//p1的下个结点为空则退出循环p2=p1;//p2用来记录p1的前一个结点p1=p1->next;//p1指向下一个结点}if(i==p1->num)//判断p1是否为要删除的信息{if(p1==head) head=p1->next;/*若p1为头结点则将头指针指向p1的下一个结点*/else p2->next=p1->next;/*p1非头结点则将p1后面的结点连接到p1前一个结点的后面*/printf("\n已删除教师号为%ld的教师信息\n",i);n=n-1;//记录教师数的n要减一}//p1不是要删除的信息则表示要删除的信息不再链表中else printf("\n已录入的教师信息中没有教师号为%ld的\n",i);return;}void sort1()//按教师号进行排序的函数{struct teacher *p1,*p2,*p3,*p4;int i,j;if(head==NULL){printf("\n还未录入过教师信息\n");return;}if(head->next!=NULL) //判断是否只有一个信息{//用冒泡法排序p1=head;//p1记录用来比较的两个结点中的前面一个 p2=head->next;//p2记录比较的两个结点中的后面个for(i=1;i<n;i++)//实现n-1趟比较的外循环{for(j=0;j<n-i;j++)//在每一趟中进行n-i次比较的内循环{if(p1->num>p2->num)/*比较相邻两个结点中教师号大小*/{//当p1的教师号大时则对调两个结点的位置if(p1==head) head=p2;else p3->next=p2;/*p1为头结点时则将头指针指向p2,否则就将p2连接到用来记录p1前一个结点的p3的后面*/p4=p2->next;//p4用来记录p2后面的结点p2->next=p1;//p1的结点换到原来p2的位置p1->next=p4;//原来p2后面的结点连接到p1p3=p2;//p3记录下p2的位置p2=p4;//p2指向原来位置的下一个结点}else/*p1中教师号没有打过p2中教师号,则将p1,p2都指向它们各自位置的下一个结点*/{p3=p1;//记录p1后移一位后它前个结点的位置p1=p2;p2=p2->next;}}p1=head;//p1指向链表头,开始下一趟外循环的准备p2=p1->next;//p2指向链表第二个结点}}printf("\n按教师号排序后的教师信息如下:\n");print();//调用教师信息浏览函数}void sort2()//按月薪排序的函数,算法跟按教师号排序的一样{struct teacher *p1,*p2,*p3,*p4;int i,j;if(head==NULL){printf("\n还未录入过教师信息\n");return;}if(head->next!=NULL){p1=head;p2=head->next;for(i=1;i<n;i++){for(j=0;j<n-i;j++){if(p1->wage>p2->wage){if(p1==head) head=p2;else p3->next=p2;p4=p2->next;p2->next=p1;p1->next=p4;p3=p2;p2=p4;}else{p3=p1;p1=p2;p2=p2->next;}}p1=head;p2=p1->next;}}printf("\n按月薪排序后的教师信息如下:\n");print();}void sort3()//按年龄排序的函数,算法跟按教师号排序的一样{struct teacher *p1,*p2,*p3,*p4;int i,j;if(head==NULL){printf("\n还未录入过教师信息\n");return;}if(head->next!=NULL){p1=head;p2=head->next;for(i=1;i<n;i++){for(j=0;j<n-i;j++){if(p1->age>p2->age){if(p1==head) head=p2;else p3->next=p2;p4=p2->next;p2->next=p1;p1->next=p4;p3=p2;p2=p4;}else{p3=p1;p1=p2;p2=p2->next;}}p1=head;p2=p1->next;}}printf("\n按年龄排序后的教师信息如下:\n"); print();}void choose1()//选择排序方式的函数{int i;printf(" 排序方式\n");printf(" 1:【按教师号排序】2:【按年龄排序】\n");printf(" 3:【按月薪排序】\n");printf("请选择:");scanf("%d",&i);while((i<1)||(i>3)){printf("选择无效,请重新输入正确选项:");scanf("%d",&i);}switch(i){case 1:sort1();break;case 2:sort3();break;case 3:sort2();break;}}void search1()//按教师号查找的函数{struct teacher *p;long i;//存储用户输入的想要删除的教师号if(head==NULL){printf("\n还未录入过教师信息\n");return;}printf("请输入要查找的教师信息的教师号:");scanf("%ld",&i);for(p=head;p!=NULL;p=p->next)//p顺序指向结点与i比较,找出有i的数据的结点并输出if(p->num==i){printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,职称:%s\n",p->num,p->name,p->sex,p->age,p->edu,p->title);printf(" 月薪:%ld,住址:%s,电话:%s\n",p->wage,p->addr,p->telep);return;}printf("已录入的教师信息中不存在该教师号\n");}void search2()//按姓名查找的函数{struct teacher *p;char i[20];//记录用户输入的想要删除的姓名int j=0;//j用来记录找到了多少个信息if(head==NULL){printf("\n还未录入过教师信息\n");return;}printf("请输入要查找的信息的教师姓名:");scanf("%s",i);for(p=head;p!=NULL;p=p->next)if(strcmp(p->name,i)==0)//比较p指向的结点中的姓名跟i的是否一致,是则输出{printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,职称:%s\n",p->num,p->name,p->sex,p->age,p->edu,p->title);printf(" 月薪:%ld,住址:%s,电话:%s\n",p->wage,p->addr,p->telep);j=j+1;//每输出一个教师的信息则j加一}if(j==0) printf("已录入的教师信息中不存在该姓名的教师\n");}void search3()//按职称查找的函数,算法与按姓名查找的一样{struct teacher *p;char i[20];int j=0;if(head==NULL){printf("\n还未录入过教师信息\n");return;}printf("请输入要查找的信息的教师职称:");scanf("%s",i);for(p=head;p!=NULL;p=p->next)if(strcmp(p->title,i)==0){printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,职称:%s\n",p->num,p->name,p->sex,p->age,p->edu,p->title);printf(" 月薪:%ld,住址:%s,电话:%s\n",p->wage,p->addr,p->telep);j=j+1;}if(j==0) printf("已录入的教师信息中不存在该职称的教师\n");}void search4()//按年龄查找的函数,算法与按教师号查找的一样{struct teacher *p;int i,j=0;if(head==NULL){printf("\n还未录入过教师信息\n");return;}printf("请输入要查找的信息的教师年龄:");scanf("%d",&i);for(p=head;p!=NULL;p=p->next)if(p->age==i){printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,职称:%s\n",p->num,p->name,p->sex,p->age,p->edu,p->title);printf(" 月薪:%ld,住址:%s,电话:%s\n",p->wage,p->addr,p->telep);j=j+1;}if(j==0) printf("已录入的教师信息中不存在该年龄的教师\n");}void choose2()//选择查找方式的函数{int i;printf(" 查询方式\n");printf(" 1:【按教师号查询】2:【按姓名查询】\n");printf(" 3:【按职称查询】4:【按年龄查询】\n");printf("请选择:");scanf("%d",&i);while((i<1)||(i>4)){printf("选择无效,请重新输入正确选项:");scanf("%d",&i);}switch(i){case 1:search1();break;case 2:search2();break;case 3:search3();break;case 4:search4();break;}}void menu()//菜单栏函数{int i;printf(" 菜单\n");printf(" 1:【教师信息录入】2:【教师信息输出】\n");printf(" 3:【教师信息删除】4:【查询个人信息】\n");printf(" 5:【排序】6:【退出系统】\n");printf("请选择: ");scanf("%d",&i);while((i<1)||(i>6)){printf("选择无效,请重新输入正确选项:");scanf("%d",&i);}switch(i){case 1:creat();break;case 2:print();break;case 3:del();break;case 4:choose2();break;case 5:choose1();break;case 6:save();}menu();}void main()//主函数{key();menu();}四.程序运行效果图4.1登陆界面4.2菜单栏4.3录入功能4.4浏览功能4.5删除功能4.6查询功能4.7排序功能五.总结报告5.1课程设计中遇到的主要问题和解决方法在这次的C语言课程设计的编程中,由于以前对链表和文件这两部分的内容了解过少,因此在编程中涉及到这两方面的内容时,照成了很大的阻碍,最主要是在对链表的结点进行交换,对文件某些特殊的读写不清楚。

相关文档
最新文档