C语言课程信息管理系统课程设计报告
C语言选课管理系统课程设计
C语言选课管理系统课程设计一、教学目标本课程旨在让学生掌握C语言选课管理系统的开发方法,培养其编程能力和问题解决能力。
具体目标如下:1.知识目标:学生能够理解C语言的基本语法、数据结构和常用算法;掌握面向对象编程思想。
2.技能目标:学生能够使用C语言进行程序设计,独立完成选课管理系统的开发;具备调试和优化程序的能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,使其认识到编程在实际应用中的重要性,提高其创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括C语言基础知识、数据结构、算法、面向对象编程和选课管理系统的设计与实现。
具体安排如下:1.C语言基础知识:介绍C语言的基本语法、变量、运算符、控制结构等。
2.数据结构:讲解数组、链表、栈、队列、树等基本数据结构及其应用。
3.算法:学习常用排序算法、查找算法、递归算法等,培养学生的算法思维。
4.面向对象编程:介绍类、对象、封装、继承、多态等基本概念,并学会使用面向对象的方法解决问题。
5.选课管理系统设计与实现:分析系统需求,设计系统架构,编写功能模块,完成系统集成。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:用于讲解基本概念、语法和算法,使学生掌握理论知识。
2.讨论法:学生针对案例进行分析,培养其问题解决能力和团队合作精神。
3.案例分析法:分析实际项目案例,使学生学会将理论知识应用于实际问题。
4.实验法:让学生动手编写代码,培养其编程能力和实践能力。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的教材,如《C程序设计原理与应用》、《C++ Primer》等。
2.参考书:提供相关领域的经典著作,如《算法导论》、《数据结构与算法分析》等。
3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高教学质量。
4.实验设备:保证学生有足够的实践机会,提高其编程能力和实践能力。
c语言课程设计信息管理
c语言课程设计信息管理一、教学目标本节课的教学目标是让学生掌握C语言在信息管理方面的基本概念和应用,包括数据结构、算法和程序设计等方面的知识。
具体来说,知识目标要求学生了解C语言的基本语法、数据类型、运算符、控制语句和函数等;技能目标要求学生能够使用C语言编写简单的信息管理程序,如员工信息管理系统、图书管理系统等;情感态度价值观目标要求学生培养对编程的兴趣和热情,提高自主学习和解决问题的能力。
二、教学内容本节课的教学内容主要包括C语言的基本语法、数据类型、运算符、控制语句和函数等。
具体安排如下:1.引言:介绍C语言的发展历程、特点和应用领域。
2.数据类型和变量:讲解整型、浮点型、字符型等数据类型,以及变量的声明和使用。
3.运算符:介绍算术运算符、关系运算符、逻辑运算符等,并通过示例演示其用法。
4.控制语句:讲解顺序结构、分支结构和循环结构,以及相应的控制语句。
5.函数:介绍函数的定义、声明和调用,讲解函数的参数传递和返回值。
6.实例讲解:通过实际案例,演示如何使用C语言编写简单的信息管理程序。
三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
具体安排如下:1.讲授法:讲解C语言的基本语法、数据类型、运算符、控制语句和函数等知识点。
2.讨论法:学生进行小组讨论,分享学习心得和编程经验。
3.案例分析法:分析实际案例,让学生了解C语言在信息管理方面的应用。
4.实验法:安排课后的编程实践,让学生动手编写简单的信息管理程序。
四、教学资源为了支持教学内容和教学方法的实施,本节课将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,为学生提供理论知识的学习材料。
2.参考书:提供一些拓展阅读的资料,帮助学生深入了解C语言的编程技巧。
3.多媒体资料:制作PPT课件,展示C语言的基本语法和示例代码。
4.实验设备:为学生提供计算机和编程环境,让他们能够实际操作和实践。
C语言程序设计实习报告学生信息管理系统
C语言程序设计实习报告学生信息管理系统C 语言课程设计题目:学生信息管理系统设计者:梁天江专业:机械设计制造及其自动化班级学号: 072084-31所属院系:机电学院指导教师:吴湘宁7月17日1.题目和要求:1.1问题提出与要求:学生成绩管理系统[要求]设计一个学生成绩管理系统,对在校某班学生几门课程的考试成绩进行统一管理。
每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为序存放。
(1)一个文件按以班为单位存储学生记录。
(2)将允许的操作分为六种A:插入一个新的学生记录(录入学生信息)B:修改学生记录C:删除一个学生记录D:登记成绩E:修改成绩F:浏览全班成绩(3)计算学生的总成绩(4)输出全班成绩表1.2需求分析.根据题目要求,由于学生信息是存放在文件中,因此应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.2.功能实现设计:2.1总体设计:分析系统:根据题目的需求分析,可将这个系统设计为六大模块(见下图):插入学生信息,修改,删除,登记,浏览,统计。
2.2详细设计:1、主函数主函数设计得比较简洁,只提供输入、功能处理和输出部分的函数调用。
其中各功能模块用菜单方式选择;其流程图如下:[程序]void main(){int a;do{printf("\t\t\t\t\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t作者:梁天江班级:072084-31 学号: 1004528\n"); printf("\t\t\t-------------------------------------------\n\n");printf("\t 1.插入新的学生记录\n");printf("\t 2.修改学生记录\n");printf("\t 3.删除学生记录\n");printf("\t 4.显示学生成绩和总分\n");printf("\t 5.浏览全班成绩\n");printf("\t 6.退出\n\n");。
C语言课程设计 植树造林信息管理系统
floatput_money;/*当年植树投入*/
floatget_money;/*当年林业收入*/
struct forest_inf *next;/*指向下一个结点的自引用指针*/
structtree_inf *t_head; /*指向下一级链表的指针*/
二.要求:
1、需要处理的基础数据
县市植树造林信息:武汉市(430000),长阳土家族自治县(443500),竹溪县(442300),南漳县(441500),秭归县(443600),京山县(431800)等。
县市植树造林信息参考:面积单位均为:亩
中文字段名
类型及长度
举例
县市邮编
char[7]
431800
9、数据查询处理:
一、查询指定县市的林地面积、植树造林面积;
二、查询全部林场中林木种类数最多的林场及林木种类;
三、查询某林场基本信息;
四、查询某县市某林场某种树木的造林面积。如:查询秭归县香溪林场水杉的造林面积;
五、查询并列出某县市某林场各类林木的造林面积。
基于这五种数据的查询,可以根据程序给的提示进行逐项操作,想进行什么数据的查询都可以,查询时可以根据邮编和编号进行查询。
信息输入处理即为以后进先出的方式创建十字链表
查询和统计功能实质是分别遍历一级二级三级链表,或遍历十字交叉链表
信息插入处理即为在十字交叉链表中插入结点
相关操作还包括删除十字链表中的结点,用交换指针的方法对十字交叉链表进行排序
四.各模块的功能解析、结构及部分流程图:
各模块的的功能:
1、文件导入处理:每次导入即将该信息系统的县市、林场、树木三个数据文件中的内容全部读入到静态存储区中,便于对他们进行各种操作,若文件已经被导入,只有将申请的存储释放以后才能再次导入该文件。
C语言课程设计报告:职工信息管理系统程序设计
1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。
(2)职工信息录入功能(职工信息用文件保存)。
(3)职工浏览功能。
(4)职工信息查询功能,查询方式可按学历查询或者工号查询。
(5)职工信息的删除、修改功能(可选项)。
2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。
流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。
显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。
流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。
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语言编程实现一个学生成绩管理系统,让学生掌握C语言的基本语法、数据结构、函数、文件操作等知识,培养学生编写程序解决实际问题的能力。
具体目标如下:1.知识目标:(1)掌握C语言的基本语法和编程技巧;(2)了解数据结构的基本概念,学会使用数组、链表等数据结构;(3)熟悉函数的定义和调用,掌握函数的参数传递和返回值;(4)掌握文件操作,了解文件读写的原理和方法。
2.技能目标:(1)能够独立编写C语言程序,解决实际问题;(2)具备良好的编程习惯,代码结构清晰、可读性强;(3)掌握调试和优化程序的方法,提高程序的运行效率;(4)学会使用版本控制系统,如Git,进行代码管理和协作开发。
3.情感态度价值观目标:(1)培养学生的编程兴趣,激发学习C语言的积极性;(2)培养学生团队协作精神,提高沟通与协作能力;(3)培养学生的问题解决能力,培养创新意识和持续学习的态度;(4)培养学生具有良好的职业道德,遵守编程规范,尊重他人代码。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、文件操作等。
具体安排如下:1.C语言基本语法:介绍C语言的数据类型、运算符、表达式、控制语句等基本概念;2.数据结构:讲解数组、链表、栈和队列等数据结构的基本原理和应用;3.函数:讲解函数的定义、声明、调用,以及函数的参数传递和返回值;4.文件操作:介绍文件的概念、文件读写的方法和技巧。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解C语言的基本语法、数据结构、函数和文件操作等知识,使学生掌握课程的基本概念和编程技巧;2.案例分析法:分析实际编程案例,让学生学会将理论知识应用于实际问题解决;3.实验法:安排上机实验,让学生动手编写程序,培养实际编程能力;4.小组讨论法:学生进行小组讨论,培养团队协作和沟通能力。
C语言课程设计报告(学生成绩管理系统)
C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息。
二、学生成绩查询: 输入一个学号,在文件中查找此学生, 若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息。
同时也可以全部把各科的平均成绩,最高和最低分输出.三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来.四、输出全部学生信息和全部学生成绩。
五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。
总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。
2、查询模块:可用stu *lookdata(stu *p1)来实现。
找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。
3、插入模块:可用insert( )函数来实现。
其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。
5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。
主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include"stdio.h”#include"stddef.h"#include"stddef。
C语言课程设计实践报告—学生选课管理系统[内附程序源代码](可编辑)
C语言大型作业实践报告计算机1001制作者:李菁华张兆丰秦恒加2011年6月题目:选修课程管理系统要求:假定有N门选修课,每门课有课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息。
学生可按要求(如总学分不能少于20学分)选课。
课程信息维护,如录入、修改、删除等,课程信息用文件保存。
课程信息浏览?输出。
学生选课功能。
查询功能包括:按学分、课程性质、学生等查询。
统计功能。
统计各门课程的选修人数。
本系统要有通用性、界面美观、操作方便。
要考虑系统安全。
课程信息录入系统选修课程信息录入选修课程信息保存主程序目录选择总体设计思路(流程图):学生选课系统课程信息读入学生信息输入选课系统数据保存选修课数据维护系统添加修改删除以word格式输出密码系统密码验证系统权限限制系统密码对退出程序密码对选修课程信息查找按各种类型查找密码错3次以上具体算法流程设计思路(流程图):主程序目录选择1.学生选课系统;2.选修课程信息输出;3.选修课程信息查找;4.管理员选项;5.退出系统。
管理员选项密码验证系统读入系统时间,通过强制转换成unsigned long int型数据作为初始密码用户输入密码(若是管理员会拥有密码钥匙,得出现在的密码,该密码每分钟都会变化)密码正确进入管理员管理界面,密码不正确重新输入密码输入错误3次以上 12 3学生选课系统选修课程信息以word2003形式输出返回主菜单选修课程信息查找选修课程信息从文件内读入输入按什么查找1.课程编号;2.课程名;3.课程种类;4.总课时;5.教学课时;6实验课时;7.学分;8.开课学期;9.已选人数。
输入查找的关键字从文件内读入的课程信息与关键字逐一对比,完全匹配输出;查找完毕学生信息输入课程信息浏览不选少于这门20分选课系统课选课成功判断学分是否大于20分大于20分结束选课选课信息储存退出程序管理员模块管理员模块 3目录选择1.学生选课系统;2.选修课程信息管理系统;3.退出系统12 5学生选课系统二级目录选择1.新建选修课程信息;2.管理选修课程信息;3.统计每门课程选择人数;4.选修课程信息输出;5.回到主菜单。
C语言课程设计实验报告学生信息管理系统
课程设计课程名称C语言程序课程设计题目名称学生信息管理系统设计_____学生学院_自动化学院_______________专业班级__自动化X__________________ 学号__311100XXXX______________ 学生姓名_____________________指导教师2013年10月20日广东工业大学课程设计任务书题目名称学生信息管理系统设计____学生学院___自动化学院____________专业班级___自动化X_______________学号___3111000XXX____________学生姓名___谢XX_________________1.目的与要求:学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。
试设计一学生信息管理系统,使之能提供以下功能:1.系统以菜单方式工作2.学生信息录入功能---输入3.学生信息浏览功能---输出4.查询、排序功能---算法按学号查询按姓名查询5.学生信息的删除与修改(可选项)2.总体设计:程序设计组成框图学生信息录入学生信息浏览3>参数说明editname(int n)、editage(int n)、editsex(int n) 、editbir(int n) 、editadd(int n) 、edittel(int n)、editemail(int n)、last(int n)、edit(int n)、del(int n)、editpr(int n) 函数中的n都为检索中确定的学生数组下标。
4.调试与测试:1>调用pr2()函数(检索界面)一闪而过。
解决方法:添加getchar()语句使程序暂停。
2>无法有效的控制输出函数循环终止。
解决方法:添加全局变量“stunum”,使用该全局变量来记录学生总数,从而控制输出循环的次数。
3>查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看。
c语言课程设计报告+学生成绩信息管理系统+源代码
实验报告一、问题陈述及其需求分析(一)问题陈述学生信息管理系统是对学生信息的基本管理,其中包括以下及模块:(1)增加一个学生的信息(需输入要增加学生的所有信息);(2)统计本班学生总人数及男女生人数。
(3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。
(4)按学号对所有学生信息排序,并输出结果;(5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。
(二)功能需求分析学生信息管理系统设计学生信息包括:学号,姓名,性别,出生年月,电话使之提供以下功能:1、系统以菜单方式工作2、建立链表并显示3、插入新的学生信息4、删除某学号的学生信息5、查找某学号的学生信息6、对学生信息排序7、统计学生人数8、输出学生信息二总体设计(一)模块依据程序的数据结构,描述该程序的层次结构,如下图:1、建立链表并显示voidcreatelist(structstucode**r);2、插入新的学生信息voidinsert(structstucode**r);3、删除某学号的学生信息voiddel(structstucode**r);4、查找某学号的学生信息voidsearch1(structstucode*r);5、对学生信息排序voidsort(structstucode**r);6、统计学生人数voidsearch2(structstucode*r);7、输出学生信息voidout(structstucode*r);(二)程序总体框架模块层次结构,只确定了模块之间的关系和函数原型,不是程序的执行步骤。
程序总体框架是该程序的总体流程图。
改程序不是顺序连续地执行全部功能,而是在某一时刻有选择地执行一种或多种功能。
因此选用菜单方式是较佳的方案,程序总体框架如下图:(三)运行环境(软,硬件环境)硬件:CPU,内存,主板,硬盘,显卡,键盘,显示器等等。
软件:WindowsXPtruboc应用软件。
c语言课程设计报告书3篇
c语言课程设计报告书3篇c语言课程设计报告书1我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理。
简单界面程序。
高级界面程序。
程序的添加修改。
用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的.语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。
对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
C++学生信息管理系统课程设计报告
一、课程设计目的1.通过C++课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。
2.用所学的C++语言知识及其编程方法,包括类和对象、继承与多态等面向对象的基本思想和方法以及文件流的基本操作等内容。
通过布置具有一定难度的实际程序设计项目,要求学生独立完成所布置项目。
在分析设计过程中,要求学生养成良好的编程习惯,学会分析解决简单的实际问题,学会C++编程环境(VC++)的实际调试技巧和方法,要求学生在教师的指导下逐步完成应用程序的分析与设计过程。
二、课程设计的内容(一)、题目:学生信息管理系统(二)、目的与要求1。
目的:(1)基本掌握面向对象程序设计的基本思路和方法;(2)达到熟练掌握C++语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题2。
要求基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义三个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。
创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
3。
信息描述学生信息:学号、姓名、系别、班级和所选科目及各科成绩等。
4。
功能描述(1)使用继承的方法构造3个类(如人员类——-基类,普通学生类和管理员类—---派生类)使用相应的对象放置相应信息(2) 编写同名的display()成员函数,用来输出相应的内容(3)录入学生信息并保存(4)按不同类别输出学生信息(如按性别、年龄等)(5)查询学生信息(以一种或多种方式,如按名字、学号等检索)(6) 修改学生信息并保存(7) 删除学生信息(8) 计算学生的平均成绩三、设计说明总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理.也可根据自己对题目的理解增加新的功能模块.系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
课程信息管理系统c语言课程设计
课程信息管理系统c语言课程设计一、课程目标知识目标:1. 让学生掌握C语言中数组、结构体和文件操作等基本知识,并能够运用这些知识设计简单的信息管理系统。
2. 使学生了解课程信息管理系统的基本功能,如增加、删除、修改和查询等。
技能目标:1. 培养学生运用C语言进行程序设计的能力,能够独立编写、调试和运行简单的信息管理系统程序。
2. 培养学生分析问题、解决问题的能力,使其能够根据需求进行系统功能的设计和实现。
情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发他们主动学习和探索的精神。
2. 培养学生的团队协作意识,学会与他人共同解决问题,提高沟通与协作能力。
3. 引导学生认识到编程在现代社会中的重要作用,培养他们利用技术手段解决实际问题的意识。
课程性质分析:本课程为C语言课程设计,旨在让学生将所学的C语言知识应用于实际项目中,提高编程实践能力。
学生特点分析:学生已具备一定的C语言基础,对数组、结构体和文件操作等知识有一定的了解,但可能缺乏将这些知识综合运用的经验。
教学要求:1. 结合课程信息管理系统的实际需求,引导学生运用所学知识进行程序设计。
2. 注重培养学生的动手实践能力,鼓励学生积极参与课程设计和讨论。
3. 关注学生的个体差异,提供有针对性的指导,帮助每位学生达成课程目标。
二、教学内容1. 数组与字符串操作:回顾数组的基本概念,掌握一维、二维数组的使用,以及字符串的存储和处理方法。
结合课程设计,实现对课程信息的批量存储和显示。
2. 结构体与链表:讲解结构体的定义和用法,引导学生利用结构体表示课程信息,并掌握链表的基本操作,如增加、删除节点等,以实现课程信息的动态管理。
3. 文件操作:介绍文件的基本概念,教授文件的打开、关闭、读写等操作,使学生能够将课程信息保存到文件中,并从文件中读取数据。
4. 函数与模块化编程:强调模块化编程的重要性,让学生掌握函数的定义、调用和参数传递方法,将程序划分为多个功能模块,提高代码的可读性和可维护性。
C语言课程设计歌曲信息管理系统
网络优化:优化网络传输协议, 提高数据传输速度和稳定性
数据结构优化:选择合适的数 据结构,提高数据存储和检索 效率
优化算法:选择合适的算法, 提高系统运行效率
并发处理优化:采用多线程、 多进程等技术,提高系统并发
处理能力
优化用户体验:优化界面设计, 提高用户操作便捷性和舒适度
增加用户自定义歌曲分类功能 增加歌曲搜索功能,支持关键词搜索 增加歌曲推荐功能,根据用户喜好推荐歌曲 增加歌曲评论功能,用户可以对歌曲进行评论和评分
数据统计:实现歌曲信息的统计功能,包括歌曲数量、歌手数量、专辑数量等
功能:将歌曲信息以文本或表格形式输出 输出格式:支持多种格式,如HTML、XML、JSON等 输出内容:包括歌曲名称、歌手、专辑、歌词等信息 输出方式:支持命令行输出、文件输出、网页输出等
性能测试:测试系统的响应 速度和稳定性
功能测试:确保每个功能模 块都能正常工作
输入内容:歌曲名称、歌手、专辑、 歌词、发布时间等
添加标题
添加标题
添加标题添加标题源自输入方式:键盘输入、文件导入、 数据库查询等
输入验证:检查输入内容是否符合 要求,如歌曲名称不能为空等
数据库设计:建立歌曲信息数据库,包括歌曲名称、歌手、专辑、歌词等信息
数据查询:实现歌曲信息的查询功能,包括模糊查询、精确查询等 数据更新:实现歌曲信息的更新功能,包括添加、修改、删除等
功能
系统性能:响 应速度快,稳 定性高,用户
体验良好
系统安全:保 证用户数据的 安全性和隐私
性
歌曲信息管理:添加、修改、删除、查询歌曲信息 用户管理:添加、修改、删除、查询用户信息 权限管理:设置用户权限,如管理员、普通用户等 报表管理:生成歌曲信息报表,如歌曲列表、用户列表等 系统设置:设置系统参数,如歌曲信息格式、用户权限等 帮助文档:提供系统使用帮助文档,如操作指南、常见问题解答等
C语言课程设计报告 职工信息管理系统
case 0: exit(); } printf("\n\n 操作完毕,请再次选择!"); } else printf("\n\n 选择错误,请再次选择!"); } } 2 数据添加 【程序】
void append() { if((fp=fopen("worker.xls","a"))==NULL) { printf("\n 不能打开该文件!"); exit(); } printf("\n 请输入添加职工信息(姓名、职工号、性别、年龄、学历、职位、 工资、电话、地址)\n"); scanf("%s%s%s%s%s%s%s%s%s",,one.num,one.sex,one.age,one.recor d,one.position,one.wanges,one.tel,one.addr); fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",,one.n um,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr); fclose(fp); }
5 数据删除 【程序】
void delete() { int m,k=0; long a,b; char namekey[8], valid[4]; printf("\n 请输入您要删除的职工姓名:"); scanf("%s",namekey); if((fp=fopen("worker.xls","r+"))==NULL) { printf("\n 不能打开该文件!"); exit(); } while(!feof(fp)) { a=ftell(fp); fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",,one.num,one.sex,one.age,one. record,one.position,one.wanges,one.tel,one.addr); if(strcmp(namekey,)==0) { k=1; break; } } if(k==1) {
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.考试成绩:通过期末考试,评估学生的综合编程能力和知识掌握情况。
中南大学学生信息管理系统课程设计报告.docx1
中南大学二○一○~二○一一学年第二学期信息科学与工程学院课程设计报告书课程名称:C语言课程设计班级:电气信息2010级1班学号:姓名:指导教师:季桂树二○一一年六月一.需求分析课题要求编写一个学生信息管理系统。
其中学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:A、系统以菜单方式工作;B、学生信息录入功能(学生信息用文件保存)——输入;C、学生信息浏览功能——输出;D、查询、排序功能——算法;a、按学号查询;b、按姓名查询。
E、学生信息的删除与修改。
其次功能要求:A、界面比较美观;B、有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入。
二. 总体设计是否找到数据文件 读入上次保存的数据YN操作选择浏览学生信息录入学生信息修改学生信息查询学生信息删除学生信息读入数据,新增一个结点按顺序浏览全部学生信息查找到目标结点查找到目标结点,并进行删除查找修改节点,并修改将现有数据写入文件结束开始退出系统三.详细设计结构体:该结构由“学号,姓名,年龄,性别,出生年月,地址,电话,E-mail ”八个成员组成。
功能函数&模块:从键盘读入一个人的信息,并储存入学生信息。
将数据写入数据文件。
读入文件中的数据,如果有数据文件返回1否则返回0。
菜单选择,返回0~6的含义分别是“退出”、“录入”、“浏览”、“查询”、“删除”、“修改”、“读取”。
从学生信息管理系统中删除一个人的信息。
修改一个人的信息。
struct student { long int num; char name[20]; int age; char sex[4]; char birth[10]; char add[30]; long int tele; char mail[20];struct student *next;};void writeData()void readData() void menu()void del ()void modify() void record()void displayAll()输出所有的记录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》课程设计报告专业:班级:姓名:指导教师:二零一二年十二月二十六日目录一、设计题目 (2)二、设计目的 (2)三、设计容 (2)3.1需求分析 (2)3.2 概要设计 (3)3.3 详细设计 (6)3.5 编写过程中遇到的问题及解决办法 (7)3.4 调试结果 (8)3.6课程设计总结 (16)四、参考书目 (17)附录A 程序源代码 (18)一、设计题目:课程信息管理系统二、设计目的1、熟练掌握C语言课程中所学的理论知识;2、通过综合C语言的基本知识来解决实际问题;3、加强分析和解决问题的能力。
三、设计容3.1 需求分析设计对n门课程进行管理的课程信息管理系统,每门课程有课程编号,课程名称,课程性质(B为必修,X为选修),总学时,学分等。
系统功能包括:1、系统以菜单方式工作,密码登陆。
2、课程信息的录入功能(增加数据)。
用数组数据类型赋初值的方法把课程信息送到各个数组中(但注意要是合法数据),然后把它们输出显示。
3、课程信息的删除(删除数据)。
任意输入一门课程的编号,将它所有的信息从数组中删除。
4、课程信息的浏览功能(查找数据)。
任意输入一门课程的编号,打印出所有相关数据。
要求能多次查找。
5、课程信息的删除(修改数据)。
任意输入一门课程的编号,打印出所有相关信息后,可对某一项信息进行修改并保存。
6、课程信息的计算并排序。
计算所有课程的总学分及平均学分(aver,单精度,输出一位小数),将包括所有数据的数组元素按价格从高到低的顺序排序打印出来。
3.2 概要设计程序流程图:模块分解:void pasd(); //声明密码函数声明部分(1)主函数模块void zhujie(); //声明zhujie()函数zhujie(); //调用zhujie()函数调用部分pasd(); //调用密码函数联系声明部分:void yewu(); //声明业务函数(2)密码模块调用部分:yewu(); //调用业务函数联系void inputcouinfo(void); //声明输入函数void updatecouinfo(void); //声明修改函数//声明添加函数//声明查询函数//声明排序函数(3void delcouinfo(void); //声明删除函数inputcouinfo(); //调用输入函数case '1':findcouinfo();break; //调用课程信息查询调用部分case '2':delcouinfo();break; //调用课程信息删除case '3':updatecouinfo();break; //调用课程信息修改case '4':ordercouinfo();break; //调用课程信息排序case '5':addcouinfo(); break; //调用课程信息添数据结构的说明:#define n1 20 //控制课程个数的存储空间#define m1 5 //控制课程属性个数的存储空间空间char couinfo[n1][m1][16]; //定义全局数组char password[]={"123456"}; //原密码int a, i,j,t=0,c=0,n=4,m=5; //定义全局变量密码模块:char p[9]; //定义密码数组p[i]==8 //控制退格p[i]==13 //回车控制strcmp(p,password)==0 //密码匹配字符串比较函数int n=3; //密码输入次数控制业务模块:system("cls"); //清屏函数3.3 详细设计删除模块:3.4 编写过程中遇到的问题及解决办法(1)在调试函数的过程时,一般高级语言要求函数实参与形参个数与类型一致,但在C语言编译在该点检查不严格。
当出现实参与形参类型不一致时,编译运行时,系统不报错。
因此,错误隐含了下来,给程序调试带来了困难。
解决方法是:一开始,我自己仔细查找自己的程序的错误,但最终在老师的帮助下,找到了程序的错误。
并将其改正,使程序正常运行。
(2)当要求从键盘读入一字符串时,若选用输入的函数不当时,则容易造成错误,并很难发现。
解决方法:自己认真并且反复检查以及老师的帮助。
3.5 调试结果界面3.6 课程设计总结课程管理信息系统心得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。
回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。
我做的是课程管理信息系统,虽然是很简单的一个小的程序,但对我一个初学者来说却是一个很大的困难。
更加是第一次做这样的课程设计,所以第一天下午在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。
可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。
特别是函数调用和数组的部分,几乎是一片空白。
不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以下一步就是开始正式的编程序了。
不过毕竟是个新手,还是不知如何下手,于是就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了C语言编程的基本过程和方法。
经过一波三折,终于开始正式编程。
编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强迫自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。
而且编程是一件高精度、模化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。
无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。
通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。
在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。
因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!四.参考书目:[1]谭浩强,《C程序设计教程》,,清华大学,2007年[2]康莉,《零基础学C语言》,,机械工业,2010年[3]方风波,《C语言程序设计》,,地质,2006年附录A 源程序代码#include <stdio.h>#include <conio.h> //Console Input/Output(控制台输入输出)#include <string.h>#define n1 20 //控制课程个数的存储空间#define m1 5 //控制课程属性个数的存储空间空间char couinfo[n1][m1][16]; //定义全局数组char d[16], b[6];char password[]={"123456"}; //原密码int a, i,j,t=0,c=0,n=4,m=5; //定义全局变量//主函数模块void main(){void pasd(); //声明密码函数void zhujie(); //声明zhujie()函数zhujie(); //调用zhujie()函数pasd(); //调用密码函数}void zhujie(){printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");printf("★******************************************************************************\n");printf("★** * ***************************** **\n");printf("★* *★★★★* * ★★★★**欢迎进入课程管理信息系统** ★★★★* * ★★★★* *\n");printf("★** * **************************** * **\n");printf("★************Welcome to the course information management system***************\n");printf("★******************************************************************************\n");printf("★***★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★***\n");printf("★** ★★★★★★★★★★★★★★★★★★★★**\n");printf("★* ★★★★*\n");printf("★* ★**************** ★★**************** ★*\n");printf("★* ★* 添加课程信息* ★★* 删除课程信息* ★*\n");printf("★* ★**************** ★★**************** ★*\n");printf("★* ★★★★*\n");printf("★* ★★★★*\n");printf("★*★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★*\n");printf("★* ★★★★*\n");printf("★* ★★★★*\n");printf("★* ★**************** ★★**************** ★*\n");printf("★** ★* 查询课程信息* ★★* 修改课程信息* ★**\n");printf("★***★**************** ★★**************** ★***\n");printf("★******************************************************************************\n");printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");}//密码模块void pasd(void) //定义密码函数{void yewu(); //声明业务函数int i;char p[9];int n=3; //密码输入次数控制.do{printf("please enter password:\n"); //输入密码for(i=0;i<6;i++){p[i]=getch();if (p[i]==8) //控制退格{i=i-2;printf("\b \b");}else{printf("*");if(p[i]==13) break; //回车控制}p[6]='\0';}if(strcmp(p,password)==0) //密码匹配strcmp(p,password){//printf("\n");c=1;yewu(); //调用业务函数break;}else{printf("please enter password again:\n");n--;}}while(n>0);}//业务模块void yewu() //定义业务函数{void inputcouinfo(void); //声明输入函数void addcouinfo(void); //声明添加函数void findcouinfo(void); //声明查询函数void ordercouinfo(void); //声明排序函数void delcouinfo(void); //声明删除函数void updatecouinfo(void); //声明修改函数char d;system("cls");if (c==1){inputcouinfo(); //调用输入函数printf("\t课程信息查询请输入: 1 \n\t课程信息删除请输入: 2 \n\t 课程信息修改请输入: 3 \n\t课程信息排序请输入: 4 \n\t课程信息添加请输入:5\n");printf("您是否进行其他操作,否输入0,否则输入其他:");scanf("%d",&a);for (i=0;;i++){if(a!=0){printf("请输入要操作的选项:");scanf("%s",&d);switch(d){case '1':findcouinfo();break; //调用课程信息查询函数case '2':delcouinfo();break; //调用课程信息删除函数case '3':updatecouinfo();break; //调用课程信息修改函数case '4':ordercouinfo();break; //调用课程信息排序函数case '5':addcouinfo(); break; //调用课程信息添加函数default: break;}}}}}//课程信息输入模块void inputcouinfo(void) //定义课程信息输入函数{int x=1;printf("\t\t\t **********************\n");printf("\t\t\t 欢迎进入信息输入系统!!\n");printf("\t\t\t **********************\n");printf("请注意:性质为必修(B)或选修(X)\n");printf("\t\t课程号名称性质总学时学分\n");for (i=0;i<n;i++){printf("输入课程编号%d:",x++);for (j=0;j<m;j++){scanf("%s",&couinfo[i][j]);}}printf("课程号名称性质总学时学分\n");for (i=0;i<n;i++){for (j=0;j<m;j++){printf("%s\t",couinfo[i][j]);}printf("\n");}}void addcouinfo(void) //课程信息添加函数{int d,t,z;printf("\t\t\t**********************\n");printf("\t\t\t欢迎进入信息添加系统!!\n");printf("\t\t\t**********************\n");for(d=1;;d++){printf("\n是否进行添加,“否”请输入0,进行输入其他\n");scanf("%d",&t);if(t!=0){printf("请输入要添加的第%d个课程信息:\n",d);printf("课程号名称性质总学时学分\n");z=n++;for (j=0;j<m;j++){scanf("%s",&couinfo[z][j]);printf("%s\t",couinfo[z][j]);}}else break;}system("cls");printf("\t课程查询请输入: 1 \n\t课程删除请输入: 2 \n\t课程修改请输入: 3 \n\t课程排序请输入: 4 \n\t课程添加请输入:5\n");}void findcouinfo(void) //课程信息查询函数{char y[16];int d,t,z;printf("\t\t\t**********************\n");printf("\t\t\t欢迎进入信息查询系统!!\n");printf("\t\t\t**********************\n");for(d=1;;d++){printf("\n是否进行查询,“否”请输入0\n");scanf("%d",&t);if(t!=0){printf("请输入要查询的课程号:");scanf("%s",&y);printf("课程号名称性质总学时学分\n");for(i=0;z=i,i<n1;i++){if(strcmp(y,couinfo[i][0])==0){for (j=0;j<m;j++){printf("%s\t",couinfo[i][j]);}break;}}if(z==n) printf("没有此课程号信息\n");}else break ;}system("cls");printf("\t课程查询请输入: 1 \n\t课程删除请输入: 2 \n\t课程修改请输入: 3 \n\t课程排序请输入: 4 \n\t课程添加请输入:5\n");}void delcouinfo(void) //课程信息删除函数{char y[16];char y1[16];int d,x,z;printf("\t\t\t**********************\n");printf("\t\t\t欢迎进入信息删除系统!!\n");printf("\t\t\t**********************\n");for(d=1;;d++){printf("是否进行删除信息,否请输入: 0 进行输入其他数字:\n");scanf("%d",&x);if(x!=0){printf("请输入要删除的课程号:");scanf("%s",&y);printf("请再次输入要删除的课程号:");scanf("%s",&y1);printf("课程号名称性质总学时学分\n");if (strcmp(y,y1)==0){for (i=0;i<n;i++){if (strcmp(y,couinfo[i][0])==0){z=i;printf("要删除的课程信息是\n");for (j=0;j<m;j++){printf("%s\t",couinfo[i][j]);}t++;}printf("\n");}for (i=z;i<n-t;i++){for (j=0;j<m;j++){strcpy(couinfo[i][j],couinfo[i+1][j]);}}if(z==n) printf("没有此课程号信息\n");}}else break;printf("课程号名称性质总学时学分\n");for (i=0;i<n-t;i++){for (j=0;j<m;j++){printf("%s\t",couinfo[i][j]);}printf("\n");}}system("cls");printf("\t课程查询请输入: 1 \n\t课程删除请输入: 2 \n\t课程修改请输入: 3 \n\t课程排序请输入: 4 \n\t课程添加请输入:5\n");}//课程修改函数void updatecouinfo(void){char h[16],h1[16],h2[16];int d,b,x,z,e,f;printf("\t\t\t**********************\n");printf("\t\t\t欢迎进入信息修改系统!!\n");printf("\t\t\t**********************\n");for(d=1;;d++){printf("是否进行信息修改,否请输入: 0 进行输入其他数字:\n");scanf("%d",&x);if(x!=0){printf("请输入要修改的课程号:");scanf("%s",&h);printf("请再次输入要修改的课程号:");scanf("%s",&h1);if (strcmp(h,h1)==0){for(i=0;z=i,i<n;i++){if (strcmp(h,couinfo[i][0])==0){printf("要修改的课程信息是\n");for (j=0;j<m;j++){printf("%s\t",couinfo[i][j]);}printf("\n请输入你要修改第几项\n");scanf("%d",&b);printf("请输入你要修改的容\n");scanf("%s",&h2);strcpy(couinfo[i][b-1],h2);for(e=0;;e++){printf("您是否进行其他修改,否请输入0,否则输入其他:");scanf("%d",&f);if(f!=0){printf("\n请输入你要修改第几项\n");scanf("%d",&b);printf("请输入你要修改的容\n");scanf("%s",&h2);}else break;}strcpy(couinfo[i][b-1],h2);for(j=0;j<m;j++){printf("%s\t",couinfo[i][j]);}printf("\n");}break;}}if(z==n-t) printf("没有此课程号信息\n");}else break;}system("cls");printf("\t课程查询请输入: 1 \n\t课程删除请输入: 2 \n\t课程修改请输入: 3 \n\t课程排序请输入: 4 \n\t课程添加请输入:5\n");}//排序模块void ordercouinfo(void) //按学分排序{int f[m1];int x,z,max;float s=0;printf("\t\t\t**********************\n");.. printf("\t\t\t欢迎进入学分排序系统!!\n");printf("\t\t\t**********************\n");for (i=0;i<n-t;i++){for (j=0;j<m;j++){printf("%s\t",couinfo[i][j]);}printf("\n");}printf("请按序输入课程学分\n");for(i=0;i<n-t;i++){scanf("%d",&f[i]);}for(i=0;i<n-t;i++){s=s+f[i];}printf("总学分是%6.2f平均学分是%6.2f\n",s,s/(n-t));for(i=0;i<n-t;i++){for(j=0,max=0;j<n-t;j++){if(max<f[j]){max=f[j],x=j;}}f[x]=0;for(z=0;z<m;z++){printf("%s\t",couinfo[x][z]);}printf("\n");}printf("\t课程查询请输入: 1 \n\t课程删除请输入: 2 \n\t课程修改请输入: 3 \n\t课程排序请输入: 4\n\t课程添加请输入:5\n"); }。