教师课程管理系统(c++课程设计源代码)

合集下载

C语言课程设计---班级成绩管理系统

C语言课程设计---班级成绩管理系统

课程设计报告课程名称C语言程序设计课题名称班级成绩管理系统专业班级学号姓名指导教师年月日湖南工程学院课程设计任务书课程名称C语言程序设计课题班级成绩管理系统专业班级学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日目录一、引言 (1)二、总体设计 (2)三、详细设计 (4)四、问题分析及总结 (13)五、参考文献 (15)六、附件 (15)一、设计内容与设计要求1. 设计内容:班级成绩管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。

熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。

③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。

④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。

⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。

2.设计要求:1)用C语言实现系统;利用结构体数组实现班级成绩的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。

2) 建立一个班级学生成绩数据库,文件名为bjcjk.txt,并从该文件中读取数据;3) 班级成绩管理系统应能提供以下功能:(1)主菜单界面设计。

通过提示用户输入一个数字选项,调用相应的功能函数。

(2)学生成绩显示:完成班级全部学生成绩的显示,显示时按表格的形式,且应有表头;(3)学生成绩追加:完成新增一个(或多个)学生的成绩记录,要求在追加过程中有相应的提示信息,完成追加后能重新计算学生平均成绩并显示;(4)学生成绩修改:要求能按学号和按姓名两种定位方式,且可以按用户要求修改记录中除学号和姓名以外的指定内容,并重新计算学生的平均成绩;(5)学生成绩信息的查询;要示系统能按学号、按姓名查询以及能查总分在某一指定范围内的学生信息,且能显示符合条件的所的记录,若所需查询的信息不存在时应有相应的提示信息。

C语言课程设计学生成绩管理系统源代码吉林大学

C语言课程设计学生成绩管理系统源代码吉林大学

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>typedef struct student{ /*定义结构体*/char IDNumber[16];/*学号*/char FamilyName[16]; /*姓*/char GivenName[16]; /*名*/int sex; /*性别(0代表“女”,1代表“男”)*/int BirthYear; /*出生年*/int BirthMonth; /*出生月*/int BirthDay; /*出生日*/float score[4]; /*成绩*/float sum; /*总分*/float average; /*平均分*/}stu;typedef struct Lnode{student data;Lnode *next;}st, *linklist;/***************************************************************************/ struct tm* ptm;float Sumstu(linklist L);float Averstu(linklist L);float Sumstu(linklist L){ /*计算总分*/linklist s;s=L;int i;s->data.sum=0;for(i=0;i<=4;i++){s->data.sum+=s->data.score[i];}return (s->data.sum);}float Averstu(linklist L){linklist q;q=L;Sumstu(q);q->data.average=q->data.sum/4;return (q->data.average);}void TimeNow() /*获取系统时间*/{struct tm* ptm;long ts;int y,m,d,h,n,s;ts = time(NULL);ptm = localtime(&ts);y = ptm-> tm_year+1900; //年m = ptm-> tm_mon+1; //月d = ptm-> tm_mday; //日h = ptm-> tm_hour; //时n = ptm-> tm_min; //分s = ptm-> tm_sec; //秒}int Menu() /*菜单函数*/{int n;printf("\t\t\t\n\n\n\n欢迎使用学生成绩管理系统\n\n\t\t\t按任意键进入系统!");system("pause");system("cls");printf("************************************************************************* *\n");printf("\n\t\t\t学生成绩管理系统\n\t\t\t\t制作人陈光林(52101407)\n");printf("-------------------------------菜单(Menu)---------------------------------\n");printf("\n\t 1. Enter list 输入记录\n");printf(" \t 2. Delete a record from list 删除记录\n");printf(" \t 3. Print list 显示所有记录\n");printf(" \t 4. Search record on name 按照姓名查找记录\n");printf(" \t 5. Save the file 保存记录到文件中\n");printf(" \t 6. Load the file 从文件中读入记录\n");printf(" \t 7. Compute the score 计算所有学生的总分和均分\n");printf(" \t 8. Query by class 按班级查询显示学生总分\n");printf(" \t 9. Insert record to list 插入记录到表中\n");printf(" \t 0. Quit 退出系统\n");printf("---------------------------------------------------------------------------\n");printf("************************************************************************* ***\n");do{printf("\n\t\t\t 请选择你需要的操作(0—9):");scanf("%d",&n);}while(n<1||n>5); /*如果选择项不在1—9之间则重输*/return(n); /*返回选择项*/}/***************************************************************************/linklist initlist(void) /*建立一个空链表*/{linklist L=(linklist)malloc(sizeof(st));L->next=NULL;return NULL;}/*建立学生信息链表*/st *creastlist(linklist L){int i;float s;linklist p;for(;;){p=(linklist)malloc(sizeof(st)); /*开辟新的节点*/if(!p){printf("\n Out of memory.");return (L);}printf("请输入学生学号");scanf("%s",p->data.IDNumber);if(p->data.IDNumber[0]=='0') break;printf("请输入姓:");scanf("%s",p->data.FamilyName);printf("请输入名:");scanf("%s",p->data.GivenName);printf("请输入性别(0女/1男):");scanf("%d",&p->data.sex);printf("请输入生日:");scanf("%d %d %d",&p->data.BirthYear, &p->data.BirthMonth,&p->data.BirthDay);printf("请输入成绩\n",4);s=0;for(i=0;i<4;i++){do{printf("score%d:",i+1);scanf("%f",&p->data.score[i]);if(p->data.score[i]<0 || p->data.score[i]>100)printf(" Data error,please enter again.\n");}while(p->data.score[i]<0 || p->data.score[i]>100);s=s+p->data.score[i];}p->data.sum=s;p->data.average=s/4;p->next=L;L=p;}return(L);}/****************************************************************************** *****************//*void creastlist(linklist L){st *p;linklist head=NULL;p=(linklist)malloc(sizeof(st));p=L;for(;;){printf("请输入学生学号:\n");scanf("%s",p->data.IDNumber);printf("请依次输入学生姓名:\n");scanf("%s%s",p->data.FamilyName,p->data.GivenName);printf("请输入出生年月日:\n");scanf("%d%d%d",p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay);TimeNow();if(p->data.BirthYear>=ptm-> tm_year+1900){ printf("错误!学生年龄不能为负值!请重新输入!");continue;}else if(p->data.BirthMonth>=ptm-> tm_mon+1){printf("错误!学生年龄不能为负值!请重新输入!");continue;}else if(p->data.BirthDay>=ptm-> tm_mday){printf("错误!学生年龄不能为负值!请重新输入!");continue;}else{printf("请输入性别(0代表女,1代表男:\n");scanf("%d",p->data.sex);if(p->data.sex!=0||p->data.sex!=1) {printf("错误!学生年龄不能为负值!请重新输入!");continue;}else{printf("请分别输入外语、高数、C语言、马哲四门成绩:\n");scanf("%f%f%f%f",&p->data.score[0],&p->data.score[1],&p->data.score[2],&p->data.score[3]);p->next=head;head=p;}}}}*//*输出所有学生的信息*/void print(linklist head){linklist p;p=head;printf("************************************************************************* *");printf("| 学号| 姓名|性别|出生年月日|外语C语言高数马哲|总分|平均分|");printf("--------------------------------------------------------------------------");Sumstu(p);Averstu(p);while(p!=NULL){printf("%s%s%s%d%d%d%f%f%f%f%f%f",p->data.IDNumber,p->data.FamilyName,p->dat a.GivenName,p->data.sex,p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay,p->data.score[0],p->data.score[1],p->data.score[2],p->data.score[3],p->data.sum,p->data.average) ;printf("\n");p=p->next;}printf("\n");}/****************************************************************************** **************/void insert(linklist L){ //插入新的结点linklist s,p=L;stu e;s=(linklist)malloc(sizeof(st));s->data=e; //头插法s->next=p->next;p->next=s;}/****************************************************************************** *************/void search(linklist L){int flag=1;char familyname[16];linklist p;printf("请输入要查询的学生姓名:\n");scanf("%s",familyname);p=L->next;while(p!=NULL){if(strcmp(familyname,p->data.FamilyName)==0){system("cls");Sumstu(p);Averstu(p);printf("************************************************************************* *");printf("| 学号| 姓名|性别|出生年月日|外语C语言高数马哲|总分|平均分|");printf("--------------------------------------------------------------------------");printf("%s%s%s%d%d%d%f%f%f%f%f%f",p->data.IDNumber,p->data.FamilyName,p->data.Gi venName,p->data.sex,p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay,p->data.score[0],p->data.score[1],p->data.score[2],p->data.score[3],p->data.sum,p->data.average);printf("\n");flag=0;break;}elsep=p->next;}if(flag)printf("没有该学生信息或输入错误");Menu();}/****************************************************************************** *************************/void Delete(linklist L){linklist p,q;char num[16];int label=1;printf("请输入要删除的学生学号:\n");scanf("%s",num);p=L->next;q=L;do{if(strcmp(num,p->data.IDNumber)==0){system("cls");printf("\t发现要删除的学生信息,确认删除吗?\n");printf("\t\t确认(Y)取消(N)");getchar();if('y'||'Y'){q->next=p->next;delete p;printf("删除成功!");label=0;}else{exit(0);}}else{q=q->next;p=q->next;}} while(q->next!=NULL);if(label)printf("输入错误或者信息不存在!");}/****************************************************************************** ***************************/void Paixu(linklist L){linklist p;float s1=90,s2=80,s3=70,s4=60;p=L;int i;for(i=0;i<=4;i++){printf("****************************************************");printf("第%d科90分以上的学生:",i);if(p->data.score[i]>=s1){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(s2<=p->data.score[i]<s1){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(s3<=p->data.score[i]<s2){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(s4<=p->data.score[i]<s3){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(p->data.score[i]<s4){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}}}/***************************************************************************************************//*void Query(linklist L){ //此处假设学号形式为20101407linklist p;p=L;char classs[2];float sumclass;printf("请输入您想查询的班级:\n");scanf("%s",classs);do{sumclass=p->data.score[0]+p->data.score[1]+p->data.score[2]+p->data.score[3] ;printf("%s%f",p->data.IDNumber,p->data.sum);}while((strcmp(classs[1],p->data.IDNumber[5])==0)&&(strcmp(classs[2],p->data.IDNu mber[6])==0));}/****************************************************************************** ********************/void ComputeProject(linklist L){linklist p;float sumall[4],averall[4];float Su=0,Av=0;//sumall[4]={0,0,0,0};averall[4]={0,0,0,0};int i,m=0;p=L;for(i=0;i<=4;i++){for(p=L;p->next!=NULL;p=p->next){m++;sumall[i]+=p->data.score[i];}averall[i]=sumall[i]/4;printf("第%d科的平均成绩是:\n",averall[i]);Su+=averall[i];}Av=Su/4;printf("总的平均成绩是:%f\n",Av);}/****************************************************************************** ******************/void compute(linklist L){linklist p;p=L;Sumstu(p);Averstu(p);do{printf("学号:%s\n",p->data.IDNumber);printf("总分:%f\n平均分:%f\n",p->data.sum,p->data.average);p=p->next;}while(p->next!=NULL);}/****************************************************************************** **************/void insert(linklist L, stu e){ //插入新的结点linklist s,p=L;printf("请输入要插入的学生信息:\n");scanf("%s%s%s%d%d%d%f%f%f%f%f%f",p->data.IDNumber,p->data.FamilyName,p->data.Gi venName,p->data.sex,p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay,p->data.score[0],p->data.score[1],p->data.score[2],p->data.score[3],p->data.sum,p->data.average);s=(linklist)malloc(sizeof(st));s->data=e; //头插法s->next=p->next;p->next=s;}/****************************************************************************** *************/void save(linklist L){FILE *fp;linklist p; /* 定义移动指针*/char out];scanf("%s",outfile);if((fp=fopen(outfile,"w"))==NULL) /*为输出打开一个二进制文件,为只写方式*/{printf("Cannot open the file\n");return; /*若打不开则返回菜单*/}p=L; /*移动指针从头指针开始*/while(p!=NULL) /*如p不为空*/{fwrite(p,sizeof(st),1,fp); /*写入一条记录*/p=p->next; /*指针后移*/}fclose(fp); /*关闭文件*/printf("Save the !\n");}/* 从文件读数据函数*/st *Load(linklist L){linklist p1,p2,head=NULL; /*定义记录指针变量*/FILE *fp; /* 定义指向文件的指针*/char in];scanf("%s",infile);if((fp=fopen(infile,"r"))==NULL) /*打开一个二进制文件,为只读方式*/{printf("Can not open the file.\n");return(head);}printf("\nLoading the file!\n");p1=(linklist)malloc(sizeof(st)); /*开辟一个新单元*/if(!p1){printf("Out of memory!\n");return(head);}head=p1;while(!feof(fp)) /*循环读数据直到文件尾结束*/{if(fread(p1,sizeof(st),1,fp)!=1) break; /*如果没读到数据,跳出循环*/p1->next=(linklist)malloc(sizeof(st)); /*为下一个结点开辟空间*/if(!p1->next){printf("Out of memory!\n");return (head);}p2=p1; /*使p2指向刚才p1指向的结点*/p1=p1->next; /*指针后移,新读入数据链到当前表尾*/}p2->next=NULL; /*最后一个结点的后继指针为空*/fclose(fp);printf("\nYou have success to read data from the file!\n");return (L);}/****************************************************************************** **************//****************************************************************************** ***************/void main(){linklist head=initlist();for(;;){switch(Menu()){case 1 :creastlist(head);case 2 :Delete(head);case 3 :print(head);case 4 :search(head);case 5 :save(head);//case 6 :load(head);case 7 :compute(head);//case 8 : Query(head);case 9 :insert(head);case 0 :exit(0);}}}。

课程设计源代码

课程设计源代码

课程设计源代码一、教学目标本课程的教学目标是让学生掌握Python编程的基础知识,包括数据类型、控制结构、函数、列表等,能够运用Python编写简单的程序,培养学生的编程思维和解决问题的能力。

具体来说,知识目标包括:1.理解Python编程的基本概念和语法。

2.掌握基本数据类型(整数、浮点数、字符串、列表、元组、字典、集合)的使用方法。

3.掌握控制结构(if语句、for循环、while循环)的编写方法。

4.理解函数的定义和调用,能够编写简单的函数。

5.掌握文件的基本操作,包括打开、读取、写入和关闭。

技能目标包括:1.能够使用Python编写简单的程序,解决实际问题。

2.能够阅读和理解简单的Python代码。

3.能够对程序进行调试和优化。

情感态度价值观目标包括:1.培养学生对编程的兴趣和热情,提高学生的问题解决能力。

2.培养学生团队合作的精神,学会与他人交流和分享。

3.培养学生的好奇心和探索精神,勇于尝试和挑战。

二、教学内容本课程的教学内容主要包括Python编程的基础知识和编程实践。

具体来说,教学大纲如下:1.引言:介绍Python编程的基本概念和环境搭建。

2.数据类型:讲解整数、浮点数、字符串、列表、元组、字典、集合等基本数据类型的使用方法。

3.控制结构:讲解if语句、for循环、while循环的编写方法。

4.函数:讲解函数的定义和调用,以及常用的内置函数。

5.文件操作:讲解文件的基本操作,包括打开、读取、写入和关闭。

6.编程实践:通过实际案例,让学生运用所学知识编写程序,解决实际问题。

三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:用于讲解Python编程的基本概念和语法。

2.讨论法:用于引导学生主动思考和解决问题,培养学生的编程思维。

3.案例分析法:通过分析实际案例,让学生理解和掌握编程方法。

4.实验法:通过编写和运行代码,让学生实践和巩固所学知识。

c语言课程设计+报告+源代码

c语言课程设计+报告+源代码

西安郵電大學C语言课程设计报告题目: 职工工资管理系统院系名称: 计算机学院专业名称: 软件工程班级:学生姓名:学号(8位):指导教师:设计起止时间: 2013年06月03日~2013年06月12日一.设计目的1.通过本课程设计, 强化上机动手能力, 使学生在理论和实践的基础上进一步巩固《c语言程序设计》课程学习的内容, 掌握工程软件设计的基本方法.2.学会将知识应用于实际的方法, 提高分析和解决问题的能力, 增加综合能力.3.为后续各门计算机课程的学习打下坚实基础; 为毕业设计和以后工作打下必要基础。

二.设计内容本设计主要包括了用户登录和主菜单,其中用户登录包括了一下几个功能1.新用户的注.2.用户登.3。

用户密码的修改。

而主菜单包括: 1.职工信息的录.2.职工信息的修.3.选择性排.4.统计人数和工.5. 输出现有的信.6.自定义查询信息。

三. 概要设计1. 功能模块图;1.2. 各个模块详细的功能描述。

2.修改密码的时候, 需要输入原密码, 并且输入两次新的密码必须相同才能完成密码的修改。

3.用户登录: 需要输入用户名和密码, 如果用户名不存在或密码错误会给出相应的提醒, 当输入正确的时候会进入主菜单。

4.新用户注册:需要输入注册的用户和密码, 如果用户明已被注册过会给出相应的提醒。

5.职工信息的输入:是从无开始输入职工的信息, 同样也会给出输入内容的提醒, 当输入最后一次职工的信息为零时结束输入, 同是会将输入的信息写入到文件里。

6.修改职工信息其中包括a.添加职工信息和输入职工信息相同在添加完会提醒是否继续添加。

b.修改员工信息: 此时会出现选择性修改职工的哪项信息,先进行选择再进行修改。

C.删除员工信息: 需要输入所要删除员工的姓名或id进行删除!如果删除不成功或者删除者不存在会给出相应的提醒。

7.统计信息: 会自动的统计现有员工的总人数和现有员工的总工资。

8.输出现有职工的信息: 会显示现在记录的职工的各项信息。

c语言课程设计及源代码

c语言课程设计及源代码

c语言课程设计及源代码一、教学目标本课程旨在让学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生具备基本的程序设计能力。

通过本课程的学习,学生将能够:1.理解C语言的基本语法和编程规则;2.熟练使用C语言进行简单的程序设计;3.掌握常用的数据结构和算法;4.培养良好的编程习惯和问题解决能力。

二、教学内容教学内容将按照教材的章节进行,主要包括:1.C语言的基本语法和编程规则;2.数据类型的定义和运算;3.控制语句和函数的使用;4.常用的数据结构和算法;5.指针和内存管理;6.文件操作和编程实践。

三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法:1.讲授法:通过讲解和演示,让学生掌握C语言的基本语法和编程规则;2.讨论法:通过小组讨论和实践,让学生深入理解和运用数据结构和算法;3.案例分析法:通过分析实际案例,让学生学会解决实际编程问题;4.实验法:通过上机实验,让学生动手实践,巩固所学知识。

四、教学资源为了支持教学内容和教学方法的实施,将准备以下教学资源:1.教材:选用权威、实用的C语言教材;2.参考书:提供相关的参考书籍,供学生自主学习;3.多媒体资料:制作PPT和教学视频,辅助讲解和演示;4.实验设备:提供计算机实验室,让学生进行上机实验。

通过以上教学设计,相信学生能够顺利完成本课程的学习,掌握C语言编程的基本技能。

五、教学评估为了全面、客观、公正地评估学生的学习成果,将采用多种评估方式:1.平时表现:通过课堂参与、提问和讨论,评估学生的学习态度和理解程度;2.作业:布置适量的作业,评估学生的编程能力和实践能力;3.考试:进行期中和期末考试,评估学生对课程知识的掌握程度;4.项目实践:课程项目,让学生综合运用所学知识解决问题,评估学生的综合能力。

六、教学安排教学安排将根据课程内容和学生的实际情况进行设计:1.教学进度:按照教材的章节顺序,合理安排每一节课的教学内容;2.教学时间:根据学生的作息时间,选择合适的时间段进行授课;3.教学地点:选择适宜的教室或实验室,保证教学环境的舒适和设施的齐全;4.教学活动:结合学生的兴趣爱好,安排一些实践活动,提高学生的学习积极性。

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

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

c语言课课程设计管理系统一、教学目标本章节的教学目标是使学生掌握C语言课程设计管理系统的基本概念、原理和方法,培养学生运用C语言进行程序设计的能力,提高学生的实际操作技能和解决实际问题的能力。

具体来说,知识目标包括:1.掌握课程设计管理系统的基本概念和原理。

2.理解C语言在课程设计管理系统中的应用。

3.熟悉常用的数据结构和算法。

技能目标包括:1.能够使用C语言进行程序设计。

2.能够运用常用的数据结构和算法解决实际问题。

3.能够独立完成课程设计管理系统的开发和调试。

情感态度价值观目标包括:1.培养学生的团队合作意识和沟通能力。

2.培养学生的自主学习能力和探究精神。

3.培养学生对C语言和课程设计管理系统的兴趣和热情。

二、教学内容本章节的教学内容主要包括C语言的基本语法、数据结构、算法和课程设计管理系统的基本概念和原理。

具体来说,教学大纲如下:1.C语言的基本语法:数据类型、变量、运算符、表达式、语句等。

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

3.算法:排序算法、查找算法、动态规划算法等。

4.课程设计管理系统的基本概念和原理:系统结构、模块划分、功能实现等。

三、教学方法为了实现教学目标,本章节将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:通过教师的讲解,使学生掌握C语言和课程设计管理系统的基本概念和原理。

2.讨论法:通过小组讨论,培养学生的团队合作意识和沟通能力。

3.案例分析法:通过分析实际案例,使学生了解课程设计管理系统的应用和实现方法。

4.实验法:通过实际操作,培养学生运用C语言进行程序设计的能力。

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

2.参考书:《C语言编程实践》、《数据结构与算法》等。

3.多媒体资料:课件、教学视频等。

4.实验设备:计算机、网络设备等。

以上教学资源将有助于丰富学生的学习体验,提高学生的实际操作技能和解决实际问题的能力。

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

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

教室管理系统c语言课程设计一、课程目标知识目标:1. 学生能掌握C语言中结构体、数组、函数等基本概念,并能运用这些知识设计教室管理系统的基本框架。

2. 学生能理解文件操作在教室管理系统中的应用,掌握文件的读写、存储等基本操作。

3. 学生了解教室管理系统的需求分析、功能模块划分,掌握模块化编程思想。

技能目标:1. 学生能够运用C语言编写程序,实现教室管理系统的各项功能,如添加、删除、查询教室信息等。

2. 学生能够运用所学知识解决实际编程问题,具备一定的程序调试和优化能力。

3. 学生能够通过本课程的学习,培养自己的团队协作、沟通能力,提高问题解决能力。

情感态度价值观目标:1. 学生通过参与教室管理系统的设计与实现,培养对计算机编程的兴趣和热情,提高学习积极性。

2. 学生在学习过程中,培养严谨、认真、负责的学习态度,树立良好的编程习惯。

3. 学生能够认识到编程在解决实际问题中的重要性,增强对信息技术的信心,提高社会责任感。

本课程针对高中年级学生,结合C语言学科特点,以实用性为导向,旨在培养学生的编程能力、问题解决能力和团队协作能力。

课程目标具体、可衡量,为后续教学设计和评估提供了明确的方向。

二、教学内容本课程教学内容紧密结合课程目标,确保科学性和系统性。

具体包括以下部分:1. C语言基础知识回顾:包括数据类型、运算符、控制语句等,涉及教材第1-3章内容。

2. 结构体与数组:讲解结构体的定义和使用,数组的应用,为教室管理系统设计提供数据结构支持,涉及教材第4章内容。

3. 函数:介绍函数的定义、调用、参数传递等,帮助学生掌握模块化编程思想,涉及教材第5章内容。

4. 文件操作:讲解文件读写、存储等基本操作,为教室管理系统提供数据持久化支持,涉及教材第6章内容。

5. 教室管理系统功能模块设计:- 教室信息添加、删除、修改、查询功能,涉及教材第7章内容;- 教室预约、取消预约功能,涉及教材第8章内容;- 用户登录、权限管理功能,涉及教材第9章内容。

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.回到主菜单。

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

#include<iostream>#include<iomanip>#include<conio.h>#include<fstream>#include<string>#include<windows.h>using namespace std;using std::string;class ke;ostream&operator<<(ostream&dist,ke&k);istream&operator>>(istream&sour,ke&k);class teacher;ostream&operator<<(ostream&dist,teacher&t);istream&operator>>(istream&sour,teacher&t);class ke{protected:static int keID;string keName;char keJB;int keXS;int keJC;int keBH;public:ke(string name="未命名的课程",char jb='0',int xs=0,int jc=0,int bh=0);void show();friend ostream&operator<<(ostream&dist,ke&k);friend istream&operator>>(istream&sour,ke&k);int getkeJC(){return keJC;}string getkeName(){return keName;}};int ke::keID=0;ke::ke(string name,char jb,int xs,int jc,int bh){keID++;bh=keID;keName=name;keJB=jb;keXS=xs;keJC=jc;keBH=bh;}void ke::show(){cout<<"课程编号:"<<keBH<<endl;cout<<"课程名称:"<<keName<<endl;cout<<"课程级别:";switch (keJB){case '1':cout<<"公共基础课"<<endl;break;case '2':cout<<"专业基础课"<<endl;break;case '3':cout<<"专业课"<<endl;break;case '4':cout<<"公选课"<<endl;}cout<<"学时:"<<keXS<<endl;cout<<"基本课酬:"<<keJC<<endl;}ostream&operator<<(ostream&dist,ke&k){dist<<right<<setw(10)<<k.keBH;dist<<left<<setw(20)<<k.keName;dist<<right<<setw(10)<<k.keJB<<setw(10)<<k.keXS<<setw(10)<<k.keJC<<endl;return dist;}istream&operator>>(istream&sour,ke&k){sour>>k.keBH>>k.keName>>k.keJB>>k.keXS>>k.keJC;return sour;}class keDB:public ke{public:int judge();void add();void del();};void keDB::add(){cout<<"请输入课程名称:";cin>>keName;cout<<"1)公共基础课2)专业基础课3)专业课4)公选课"<<endl;cout<<"请输入课程级别(序号):";cin>>keJB;while(keJB!='1'&&keJB!='2'&&keJB!='3'&&keJB!='4'){cout<<"错了!让你输1、2、3、4你还输别的,专业点好不好=_=...."<<endl;cout<<"1)公共基础课2)专业基础课3)专业课4)公选课"<<endl;cout<<"请重新输入课程级别(序号):";cin>>keJB;}cout<<"请输入学时:";cin>>keXS;while(keXS<=0||keXS>=100){cout<<"要么学时太多超出范围,要么你就输入了什么奇怪的东西,重新输!"<<endl;cout<<"请重新输入学时:";cin>>keXS;}cout<<"请输入基本课酬:";cin>>keJC;while(keJC<=0||keJC>=100000){if(keJC>=10000) cout<<"这个价位也太高了吧,你确定不是在洗黑钱?"<<endl;else if(keJC<=0) cout<<"给人上课还倒贴钱,脑子进水了吧=_="<<endl;cout<<"请重新输入基本课酬:";cin>>keJC;}cout<<"课程编号(自动生成):"<<keBH<<endl;}void keDB::del(){keName="未命名的课程";keJB='0';keXS=0;keJC=0;}int keDB::judge(){return keJB;}class teacher{protected:static int teachID;string teName;int teNo;string teClass;int teNumber;double teMoney;string kName;keDB k[100];public:teacher(string kname="none",int no=0,string name="none",string tclass="none",int number=0,int money=0){teachID++;kName=kname;teNo=teachID;teName=name;teClass=tclass;teNumber=number;teMoney=money;}string getkeName(){return teName;}friend ostream&operator<<(ostream&dist,teacher&t);friend istream&operator>>(istream&sour,teacher&t);void show(){if(teName!="none"){pay();cout<<"教师编号:"<<teNo<<endl;cout<<"教师姓名:"<<teName<<endl;cout<<"课程名称:"<<kName<<endl;cout<<"教授班级编号:"<<teClass<<endl;cout<<"教授班级数量:"<<teNumber<<endl;cout<<"课酬:"<<teMoney<<endl;}else cout<<"该老师不存在!"<<endl;}void pay(){keDB k[100];int i=0,n=0,m=0;ifstream ifile("D:\\课程数据.data");for(i=0;i<100;i++) ifile>>k[i];ifile.close();for(i=0;i<100;i++){if(k[i].getkeName()==kName){m=i;break;}}switch(k[m].judge()){case '1':if(teNumber<=3) teMoney=k[m].getkeJC()*teNumber;else{if(teNumber<=6) teMoney=k[m].getkeJC()*teNumber*1.1;else teMoney=k[m].getkeJC()*teNumber*1.2;}break;case '2':teMoney=k[m].getkeJC()*1.2*teNumber;break;case '3':teMoney=k[m].getkeJC()*1.2*teNumber;break;case '4':teMoney=k[m].getkeJC()*teNumber;break;}}};int teacher::teachID=0;ostream&operator<<(ostream&dist,teacher&t){dist<<right<<setw(10)<<t.teNo;dist<<left<<setw(20)<<t.teName<<setw(20)<<t.kName<<setw(60)<<t.teClass;dist<<right<<setw(10)<<t.teNumber<<setw(10)<<t.teMoney<<endl;return dist;}istream&operator>>(istream&sour,teacher&t){sour>>t.teNo>>t.teName>>t.kName>>t.teClass>>t.teNumber>>t.teMoney;return sour;}class teacherDB:public teacher{public:int judge(){return teNumber;}void add(){int i=0;string temp,a="、";cout<<"请输入教师名称:";cin>>teName;cout<<"请输入老师所教授课程的名称";cin>>kName;cout<<"请输入教师所教授班级的数量";cin>>teNumber;teClass="";cout<<"请输入教师所教授班级的编号";for(i=0;i<teNumber;i++){cin>>temp;teClass+=temp;teClass+=a;}cout<<"教师编号(自动生成):"<<teNo<<endl;pay();cout<<"教师课酬(自动生成):"<<teMoney<<endl;}void del(){teName="none";kName="none";teClass="none";teNumber=0;teMoney=0;}};int main(){int i,c;char a,b='1',d,e;string str;keDB k[100];teacherDB t[100];cout<<" ╔@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@╗"<<endl;cout<<" @@ "<<endl;cout<<" @C++ 真难@ "<<endl;cout<<" @@ "<<endl;cout<<" @(→_→)(←_←)@ "<<endl;cout<<" @@ "<<endl;cout<<" @(——)@ "<<endl;cout<<" @@"<<endl;cout<<" @ ▂▃▄▅▅▅▅▄▃▂@ "<<endl;cout<<" ╚@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@╝"<<endl;cout<<" 按任意键继续。

相关文档
最新文档