当前位置:首页 » 编程语言 » c语言课实训心得
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言课实训心得

发布时间: 2022-10-09 21:29:31

A. c语言入门教学

楼主,你可以去编程入门网,那里有挺多知识点的,很多语言都有,很适合初学者,你也可以去CSDN,那里有很多源代码提供下载,也有论坛,呵呵,你也不要忽视网络贴吧,知道,贴吧是学习很多课本没有东西的地方,知道,你需要看解决答案,这样很有收获,你也可以去中国编程网,不过,我觉得一楼也是有道理的,看看书掌握知识点,网上我觉得主要还是提高的地方哦……呵呵……关于怎么学,我是这么过来的,每看一节书,做一节课后习题,其实初学主要还是学习语法和算法(解决问题的方法),多上机自己写程序,写不出来看答案的算法,自己再写一边,关键这个阶段还是积累为主,基本知识学好了,可以学深入编程,不过你需要有熟悉的语法,可以写一些小程序:学生成绩管理系统等等,就过关了,然后可以学习链表,图像编程,等等高级编程……呵呵……努力一定有回报的……加油吧…

B. c语言学习总结300字

1.最初接触C语言时要弄清楚各种变量的定义方法,特别是常用的类型,int、float、char等等,还要掌握各种类型的输入、输出格式。这一步做到后,上机就没有多大的问题了。
2.在对函数的学习过程中,一定要弄明白函数的作用和具体格式。值得强调的是在写循环程序时,一定要弄清楚循环的条件。
3.对每一个知识点,都应该立即编出对应的程序,有时可能还会有语法错误,碰到更好的方法也可以试一下,很多时候你想想代码怎么写和你真的写出来了是有很大的差距的。
4.学习时一定有很多疑惑的,要及时弄清楚。
5.找一本好的课本,我并不推荐谭浩强的《C语言程序设计》,因为这本书把知识点讲的太细碎太理论。我推荐《c语言程序设计:现代方法》这本书,书中奥妙非凡,值得深读体验。
6.不要认为上课认真听课有用,写程序不可能从课堂上学会太多的,伟大的程序员或者是很多的黑客,不是老师教出来的,你的有自己的想法自己的思路自己的,学习一门语言才有用,也才会得到别人传教不了的东西。

C. c语言实训

/*8、学生成绩管理系统
学生属性:学号,姓名,入学年月,有成绩的学期数,四门课的成绩等9个成员,
在编程中要求当执行状态输入i为输入学生记录,输入D为删除,输入s为查询(以学号为查询条件,输入p为将整个学生记录输出,使用结构数组或结构指针编程)
*/
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
#include "windows.h"

int stu_num=0; //全局变量,已输入成绩的学生人数

struct student //结构体数组,用于储存学生的数据
{
char num[11]; //储存学号
char name[11]; //储存名字
char sex[3]; //储存性别
char date[11]; //储存入学年月
int term; //储存学期数
float score1; //储存成绩1
float score2; //储存成绩2
float score3; //储存成绩3
float score4; //储存成绩4
}student[100];

void warning() //警告函数
{
char a;
printf("您所查找的学生暂无数据,按任意键返回重新输入");
a=getch(); //储存任意键
}

void input() //输入函数
{
char a;
do
{
system("cls");
printf("(i)输入学生数据\n(e)返回主菜单\n请输入您要执行的选项:");
a=getch(); //获取输入选项
if(a=='i'||a=='I') //输入学生数据
{
system("cls"); //清屏函数
printf("下面输入第%d个学生的数据\n学号:",stu_num+1); //以下操作储存学生数据于结构体中
scanf("%s",&student[stu_num].num);
printf("姓名:");
scanf("%s",&student[stu_num].name);
printf("性别:");
scanf("%s",&student[stu_num].sex);
printf("入学年月:");
scanf("%s",&student[stu_num].date);
printf("学期:");
scanf("%d",&student[stu_num].term);
printf("成绩1:");
scanf("%f",&student[stu_num].score1);
printf("成绩2:");
scanf("%f",&student[stu_num].score2);
printf("成绩3:");
scanf("%f",&student[stu_num].score3);
printf("成绩4:");
scanf("%f",&student[stu_num].score4);
stu_num++;
}
if(a=='e'||a=='E') //退出输入函数
{
break; //强制结束循环以退出输入函数
}
}while(1);
}

void output() //输出函数
{
system("cls"); //清屏函数
int i,j;
printf("学号\t 姓名 性别 入学年月 学期 成绩1 成绩2 成绩3 成绩4\n");
for(i=0;i<stu_num;i++) //通过for语句逐个输出学生数据
{
printf("%-12s%-8s%-8s%-10s%-6d%-8.2f%-8.2f%-8.2f%-5.2f\n",student[i].num,student[i].name,student[i].sex,student[i].date,student[i].term,student[i].score1,student[i].score2,student[i].score3,student[i].score4);
}
printf("按任意键返回主菜单");
j=getch(); //储存任意键
}

void revise() //修改函数
{
int i=0;
char a,num[11],name[11];
st: system("cls"); //清屏函数
printf("(x)按学号查找修改\n(m)按名字查找修改\n(e)返回主菜单\n请输入您要执行的选项:");
a=getch(); //获取输入选项
if(a=='x'||a=='X') //按学号查找
{
printf("请输入该学生学号:");
scanf("%s",&num); //输入查找数据并用for语句进行逐个对比
for(i=0;i<stu_num;i++)
{
if(strcmp(num,student[i].num)==0)
{
break; //找到后结束循环
}
}
}
else if(a=='m'||a=='M') //按姓名查找
{
printf("请输入该学生姓名:");
scanf("%s",&name); //输入查找数据并用for语句进行逐个对比
for(i=0;i<stu_num;i++)
{
if(strcmp(name,student[i].name)==0)
{
break; //找到后结束循环
}
}
}
else if(a=='e'||a=='E') //退出修改函数
{
return;
}
else //为了防止选错选项
{
goto st;
}
if(i==stu_num) //未找到学生数据时提示警告并重新查找
{
warning();
goto st;
}
system("cls");
printf("您要更改的学生的信息为:\n"); //输出欲修改的学生信息
printf("学号\t 姓名 性别 入学年月 学期 成绩1 成绩2 成绩3 成绩4\n");
printf("%-12s%-8s%-8s%-10s%-6d%-8.2f%-8.2f%-8.2f%-5.2f\n",student[i].num,student[i].name,student[i].sex,student[i].date,student[i].term,student[i].score1,student[i].score2,student[i].score3,student[i].score4);
printf("请更新该学生的数据\n学号:"); //找到后进行数据更新
scanf("%s",&student[i].num);
printf("姓名:");
scanf("%s",&student[i].name);
printf("性别:");
scanf("%s",&student[i].sex);
printf("入学年月:");
scanf("%s",&student[i].date);
printf("学期:");
scanf("%d",&student[i].term);
printf("成绩1:");
scanf("%f",&student[i].score1);
printf("成绩2:");
scanf("%f",&student[i].score2);
printf("成绩3:");
scanf("%f",&student[i].score3);
printf("成绩4:");
scanf("%f",&student[i].score4);
printf("该学生数据已修改,按任意键返回");
a=getch(); //储存任意键
}

void search() //查询函数
{
int i=0;
char a,num[11],name[11];
st: system("cls"); //清屏函数
printf("(x)按学号查找\n(m)按名字查找\n(e)返回主菜单\n请输入您要执行的选项:");
a=getch(); //获取输入选项
if(a=='x'||a=='X') //按学号查找
{
printf("请输入该学生学号:");
scanf("%s",&num); //输入查找数据并用for语句进行逐个对比
for(i=0;i<stu_num;i++)
{
if(strcmp(num,student[i].num)==0)
{
break; //找到后结束循环
}
}
}
else if(a=='m'||a=='M') //按姓名查找
{
printf("请输入该学生姓名:");
scanf("%s",&name); //输入查找数据并用for语句进行逐个对比
for(i=0;i<stu_num;i++)
{
if(strcmp(name,student[i].name)==0)
{
break; //找到后结束循环
}
}
}
else if(a=='e'||a=='E') //退出查询函数
{
return;
}
else //为了防止选错选项
{
goto st;
}
if(i==stu_num) //未找到学生数据时提示警告并重新查找
{
warning();
goto st;
}
printf("学号\t 姓名 性别 入学年月 学期 成绩1 成绩2 成绩3 成绩4\n");
printf("%-12s%-8s%-8s%-10s%-6d%-8.2f%-8.2f%-8.2f%-5.2f\n",student[i].num,student[i].name,student[i].sex,student[i].date,student[i].term,student[i].score1,student[i].score2,student[i].score3,student[i].score4);
printf("按任意键返回主菜单");
a=getch();
}

void del() //删除函数
{
int i=0,j;
char a,num[11],name[11];
st: system("cls"); //清屏函数
printf("(x)按学号查找删除\n(m)按名字查找删除\n(e)返回主菜单\n请输入您要执行的选项:");
a=getch(); //获取输入选项
if(a=='x'||a=='X') //按学号查找
{
printf("请输入该学生学号:");
scanf("%s",&num); //输入查找数据并用for语句进行逐个对比
for(i=0;i<stu_num;i++)
{
if(strcmp(num,student[i].num)==0)
{
break; //找到后结束循环
}
}
}
else if(a=='m'||a=='M') //按姓名查找
{
printf("请输入该学生姓名:");
scanf("%s",&name); //输入查找数据并用for语句进行逐个对比
for(i=0;i<stu_num;i++)
{
if(strcmp(name,student[i].name)==0)
{
break; //找到后结束循环
}
}
}
else if(a=='e'||a=='E') //退出删除函数
{
return;
}
else
{
goto st; //为了防止选错选项
}
if(i==stu_num) //未找到学生数据时提示警告并重新查找
{
warning();
goto st;
}
for(j=i;j<stu_num;j++) //通过for语句进行数据覆盖实现删除学生数据
{
student[j]=student[j+1];
}
stu_num-=1;
printf("该学生数据已删除,按任意键返回主菜单");
a=getch();
}

void menu() //目录函数
{
do
{
char a;
st: system("cls"); //清屏函数
printf("\t\t 欢迎使用学生成绩管理系统 1.22版\n\n\n\t\t\t(i)输入学生数据\n\n\t\t\t(d)删除学生数据\n\n\t\t\t(o)查看学生数据\n\n\t\t\t(s)查询学生数据\n\n\t\t\t(r)修改学生数据\n\n\t\t\t(e)退出系统\n\n\n请输入您要执行的选项:"); //主菜单
a=getch(); //获取输入选项
switch(a)
{
case 'i': //进入输入函数
case 'I':
input();
break;
case 'o': //进入输出函数
case 'O':
output();
break;
case 'r': //进入修改函数
case 'R':
revise();
break;
case 'd': //进入删除函数
case 'D':
del();
break;
case 's': //进入查找函数
case 'S':
search();
break;
case 'e': //退出程序
case 'E':
return;
default: //为了防止选错选项
goto st;
}
}while(1);

}

void main()
{
printf("组员:\n李东海 陈志锐\n凌华富 林继其\n杜德伟 钟鹏珲\n\n\n\n\t\t请稍后……"); //鸣谢栏
Sleep(7000);
menu();
}

这个是我们几个人做的期末作业,你可以拿去参考;如果windows函数不能用,就把他删除掉还有sleep这个也一起删除掉。

D. c语言课程的总结

1.先学习C语言的基础知识。现在正在学C语言的在校学生可以直接进入第2步学习。
2.按照《C语言程序设计入门学习六步曲》进行上机练习。
3.在上机练习时要养成良好的编程风格。点击查看C语言的编程风格

4.积极参加C、C++兴趣小组,养成和老师与同学交流习惯,从而相互收益。有时别人不经意的一句话可能使你茅塞顿开--“一句话点醒梦中人”。

5.及时总结自己的学习经验,养成写C语言日记的习惯。软件有编程日记功能。

6.从网上或教材上找一个自己感兴趣的题目(选题时根据自己的能力,可先易后难,培养自己的成就感,如果有了成就感,即使再苦再累还是感觉C语言学习是一件快乐的事,同学们喜欢打游戏,经常通宵达旦地玩游戏也乐而不疲就是这个道理)进行实战训练,提高自己的C语言综合应用能力。

7. 由于C语言灵活、强大,初学者要全面地掌握它是不可能的,因此在学习C语言的过程中,不要在细枝末节上浪费精力(比如++、--用于表达式的计算,实际上是没有意义的),但一定要熟练掌握C语言的流程控制语句、数组、函数、指针等基础知识的应用,为学习面向对象程序设计打下坚实的基础。如果这些知识你学不好,要后续学习好C++、可视化的程序设计Visual C++或C++Builder就像空中楼阁,是不现实的。
C语言程序设计入门学习六步曲

笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个:

一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢?

二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。

三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。

出现问题原因清楚了,那么如何学习呢?请你看【C语言学习六步曲】

在程序开发的过程中,上机调试程序是一个不可缺少的重要环节。“三分编程七分调试”,说明程序调试的工作量要比编程大得多。这里以如何上机调试C程序来说明C语言的学习方法。

第一步、验证性练习

在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法(包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。
初学者最容易犯的错误是:

1、没有区分开教材上的数字1和字母l,字母o和数字0的区别,造成变量未定义的错误。另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。

2、C语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹、控制语句(选择、分支、循环)的格式不正确、调用库函数却没有包含相应的头文件、调用未C声明的自定义函数、调用函数时实参与形参不匹配、数组的边界超界等。

3、修改C语言语法错误时要注意以下两点:

(1)、由于C语言语法比较自由、灵活,因此错误信息定位不是特别精确。例如,当提示第10行发生错误时,如果在第10行没有发现错误,从第10行开始往前查找错误并修改之。

(2)、一条语句错误可能会产生若干条错误信息只要修改了这条错误,其他错误会随之消失。特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。
第二步、照葫芦画瓢
在第一步输入的C程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和第一步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相互促进。

例如:将最简单的Hello World!程序
#include "stdio.h"
int main()
{
printf("Hello World!\n");
return 0;
}
中的

printf("Hello World!\n");

中的Hello World!改成你的姓名,运行一下程序,看有什么变化?

再如求1+2+3...+100的和的程序

#include <stdio.h>

main()

{

int i,sum=0;

for(i=1;i<=100;i++)
{
sum=sum+i;
}
printf("sum=%d\n",sum);
}

第1次将for(i=1;i<=100;i++)中的100改成50,运行一下程序,看有什么变化?

第2次将for(i=1;i<=100;i++)中的i++改成i=i+2,运行一下程序,看有什么变化?

找出程序结果变化的原因,就加深了对C语句的理解。

第三步、不看教材看是否能将前两步的程序进行正确地输入并运行。

在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。

第四步、增强程序的调试能力

在教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。

注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!!!

注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免在编程犯同样的错误,切记!!!!。

例如,将Hello World程序中语句

printf("Hello World!\n");

中的;改成中文的分号;

运行一下程序,看有什么结果?

调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解示范,而不亲自下水练习,是永远学不会游泳的。

即使在优秀的程序员编写程序也会犯错误的,可能事最低级的语法错误,但他能快速发现错误并改正错误,而我们C语言初学者面对错误提示,不知道发生了什么错误,如何改正,这就事差别。

第五步、研究典型的C语言程序,提高程序设计能力

C语言初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因是:所谓的看懂听明白,只是很肤浅的语法知识,而没有深刻地理解C语言的语句的执行过程(或流程)。

计算机是按照人的指令(编写的程序)去执行的,如果不知道这些C语句在计算机中是如何执行的,你怎么回灵活运用这些知识去解决实际问题呢?

解决问题的方法是要先理解C语言各种语句的流程(即计算机是如何执行这些语句的过程),然后研读现成C语言经典程序,看懂别人事如何解决问题的,以提高自己的程序设计能力。
第六步、研究课程设计源成序,提高C语言的综合应用能力.

E. c语言程序设计题。实验报告。高分。

车票系统,与你的第2题要求略有不同,你自己修改吧
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>
#include<time.h>
#include<conio.h>
#include<string.h>
const int MAX=20;
const int N=50;
const int MAXFILENAME=100;
enum {FALSE,TRUE};
struct time
{
int hour;
int minutes;
};
struct ticket
{
int SerialNumber;
struct time SetOut;
char DeparturePoint[MAX];
char TerminalPoint[MAX];
float LastTime;
int FixNumber;
int FixedNumber;
}car[N];
int RecordNumber;
int FLAG=FALSE;
/**********************************************/
int ShowMessage(void); //载入原始数据
void mainmenu(void); //主菜单
void InsertMessage(void); //录入班次信息
void SearchMenu(void); //查询路线子菜单
void SearchByNumber(void); //按班次号查询
void SearchByAddress(void); //按终点站查询
void TicketManagement(void); //车票售出与退回
void TicketOrder(void); //售票
void TicketDelete(void); //退票
void exit(void); //退出该系统
/********************************************/
int main(void)
{
RecordNumber=ShowMessage();
if(1)
do{
mainmenu();
}while(FLAG==FALSE);
return 0;
}
void mainmenu(void)
{
system("color 1f");
system("mode con: cols=140 lines=130");
char functionNumber;
printf(" 车票管理系统\n\n");
printf(" 制作:hmm182007\n");
printf(" 日期:2007/11/25/19:57\n");
printf("============================================================================\n");
printf(" 1.录入班次信息\t\n");
printf(" 2.浏览班次信息\t\n");
printf(" 3.查询行车路线\t\n");
printf(" 4.售票与退票系统\t\n");
printf(" 5.退出该系统\t\n");
printf("============================================================================\n");
printf("请选择你所需要的功能:");
scanf("%c",&functionNumber);
switch(functionNumber)
{
case '1':
{
InsertMessage();
printf("\n按任意键回主菜单......\n");
getchar();
getchar();
}
break;
case '2':
{
ShowMessage();
printf("\n按任意键回主菜单......\n");
getchar();
getchar();
}
break;
case '3':
{
SearchMenu();
printf("\n按任意键回主菜单......\n");
getchar();
getchar();
}
break;
case '4':
{
TicketManagement();
getchar();
getchar();
}
break;
case '5':FLAG=TRUE;exit();break;
default:
{
printf("输入错误,请确保你的输入为1--5.\n");
printf("按任意键回主菜单......\n");
getchar();
getchar();
}
}//switch ends
FLAG=FALSE;
}
void InsertMessage(void)
{
FILE *fp;
char filename[MAXFILENAME];
int i;
printf("请输入文件名或者文件路径名:");
scanf("%s",filename);
if((fp=fopen(filename,"r"))==NULL)
{
printf("文件%s不可读,请确认文件%s存在或者文件路径正确.\n\n",filename,filename);
mainmenu();
}
for(i=RecordNumber;!feof(fp)&&!ferror(fp);i++)
{
fscanf(fp,"%d%d%d",&car[i].SerialNumber,&car[i].SetOut.hour,&car[i].SetOut.minutes);
fscanf(fp,"%s%s%f%d%d",&car[i].DeparturePoint,&car[i].TerminalPoint,&car[i].LastTime,&car[i].FixNumber,&car[i].FixedNumber);
}
int count=i;
printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
for(i=0;i<count;i++)
{
printf("%d\t%d:%d\t\t",car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);
printf("%s\t%s\t\t%.1f\t %d\t\t%d\n",car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);
}
fclose(fp);
}
int ShowMessage(void)
{
int i;
FILE *fp;
if((fp=fopen("add.txt","r"))==NULL)
{
printf("读取数据失败,请检查文件add.txt是否存在.\n");
exit(-1);
}
for(i=0;!feof(fp)&&!ferror(fp);i++)
{
fscanf(fp,"%d%d%d",&car[i].SerialNumber,&car[i].SetOut.hour,&car[i].SetOut.minutes);
fscanf(fp,"%s%s%f%d%d",&car[i].DeparturePoint,&car[i].TerminalPoint,&car[i].LastTime,&car[i].FixNumber,&car[i].FixedNumber);
}
int count=i;
printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
for(i=0;i<count;i++)
{
printf("%d\t%d:%d\t\t",car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);
printf("%s\t%s\t\t%.1f\t %d\t\t%d\n",car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);
}
return count;
}
void SearchMenu(void)
{
system("color 1f");
system("mode con: cols=140 lines=130");
char functionNumber;
printf(" 查询子菜单\n");
printf("============================================================================\n");
printf(" 1.按班次号查询\t\n");
printf(" 2.按终点站查询\t\n");
printf(" 3.返回主菜单\t\n");
printf("============================================================================\n");
printf("请选择你所需要的功能:");
scanf("%*c%c",&functionNumber);
switch(functionNumber)
{
case '1':SearchByNumber();break;
case '2':SearchByAddress();break;
case '3':
getchar();
mainmenu();
break;
default:
printf("输入错误,请确保你的输入为1--3.\n");
printf("按任意键回查询子菜单......\n");
getchar();
getchar();
SearchMenu();
}
}
void SearchByNumber(void)
{
int SearchNumber;
printf("请输入要查询的班次号:");
scanf("%d",&SearchNumber);
printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
printf("%d\t%d:%d\t\t",car[SearchNumber-1].SerialNumber,car[SearchNumber-1].SetOut.hour,car[SearchNumber-1].SetOut.minutes);
printf("%s\t%s\t\t%.1f\t %d\t\t%d\n",car[SearchNumber-1].DeparturePoint,car[SearchNumber-1].TerminalPoint,car[SearchNumber-1].LastTime,car[SearchNumber-1].FixNumber,car[SearchNumber-1].FixedNumber);
}
void SearchByAddress(void)
{
int i;
char Address[MAX];
printf("请输入终点站的名称:");
scanf("%s",&Address);
printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
for(i=0;i<RecordNumber;i++)
{
//对比终点站记录,找到并输出
if((strcmp(Address,car[i].TerminalPoint))==0)
{
printf("%d\t%d:%d\t\t",car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);
printf("%s\t%s\t\t%.1f\t %d\t\t%d\n",car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);
}
}
}
void TicketManagement(void)
{
char functionNumber;
system("color 1f");
system("mode con: cols=140 lines=130");
printf(" 订票与退票菜单\n");
printf("============================================================================\n");
printf(" 1.订票\t\n");
printf(" 2.退票\t\n");
printf(" 3.返回主菜单.\n");
printf("============================================================================\n");
printf("选择你需要的功能:");
scanf("%*c%c",&functionNumber);

switch(functionNumber)
{
case '1':
{
TicketOrder();
//getchar();
//getchar();
}
break;
case '2':TicketDelete();break;
case '3':
{
getchar();
mainmenu();
}
break;
default:
{
printf("输入错误,请确保你的输入为1--3.\n");
printf("按任意键回主菜单......\n");
getchar();
getchar();
mainmenu();
}
}
}
void TicketOrder(void)
{
int i;
printf("请输入要订购的车票的班次:");
scanf("%d",&i);
if(i<0||i>RecordNumber)
{
printf("对不起,今天没有这趟车,请明天再来,谢谢使用!\n");
printf("按任意键回主菜单......\n");
getchar();//getchar();
TicketManagement();
}

time_t tval;
struct tm *now;
tval = time(NULL);
now = localtime(&tval);
if((now->tm_hour==car[i].SetOut.hour&&now->tm_min<car[i].SetOut.minutes)||(now->tm_hour<car[i].SetOut.hour))
{
if(car[i].FixedNumber<car[i].FixNumber)
{
car[i].FixedNumber++;
printf("你的订票成功,请按时上车,谢谢使用!\n");
}
else printf("对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作!\n");
}
else printf("对不起,今天的这趟车已发出,请明天再来,谢谢合作!\n");

printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
printf("%d\t%d:%d\t\t",car[i-1].SerialNumber,car[i-1].SetOut.hour,car[i-1].SetOut.minutes);
printf("%s\t%s\t\t%.1f\t %d\t\t%d\n",car[i-1].DeparturePoint,car[i-1].TerminalPoint,car[i-1].LastTime,car[i-1].FixNumber,car[i-1].FixedNumber);
//printf("按任意键回主菜单......\n");
//getchar();getchar();
}
void TicketDelete(void)
{
int i;
printf("请输入要退购的车票的班次:");
scanf("%d",&i);
if(i<0||i>RecordNumber)
{
printf("对不起,今天没有这趟车,无法完成退票.谢谢使用!\n");
getchar();
//getchar();
TicketManagement();
getchar();
}
time_t tval;
struct tm *now;
tval = time(NULL);
now = localtime(&tval);
if((now->tm_hour==car[i].SetOut.hour&&now->tm_min<car[i].SetOut.minutes)||(now->tm_hour<car[i].SetOut.hour))
{
if(car[i].FixedNumber>=1)
{
car[i].FixedNumber--;
printf("退订车票成功,谢谢使用!\n");
}
else printf("对不起,今天的这趟车的票尚未卖出,无法完成退票!\n");
}
else printf("对不起,今天的这趟车已发出,无法完成退票!\n");

printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
printf("%d\t%d:%d\t\t",car[i-1].SerialNumber,car[i-1].SetOut.hour,car[i-1].SetOut.minutes);
printf("%s\t%s\t\t%.1f\t %d\t\t%d\n",car[i-1].DeparturePoint,car[i-1].TerminalPoint,car[i-1].LastTime,car[i-1].FixNumber,car[i-1].FixedNumber);
getchar();//getchar();
}
void exit(void)
{
printf("\n\n*********************谢谢使用本系统,欢迎下次继续使用***********************\n");
exit(0);
}

F. c语言学习心得

我也在学C,《C程序设计》,清华大学出版社,谭浩强主编的,这本书挺好的,讲解的很细,挺适合你自学的,还有一本配套的题解和上机指导.

G. 帮忙写一份C语言课程实训报告

程序:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<dos.h>
#define swap(x,y,t) ((t)=(x),(x)=(y),(y)=(t))
#define N 30
#define C 15
#define ok 1
#define error 0
typedef int status;
typedef struct stud
{
long num;
char name[C];
int high_math;
int english;
int physics;
int program;
int database;
int total;
int ave;
}student;
student chengji[N];
int number,ave[N];
status assert(int x)
{
if(x>=0&&x<=100)
return ok;
else
return error;
}
status create_chengjilist()
{
int num,i;
print("\n正在创建学生成绩表,请稍等.........\n");
sleep(6);
print("请输入学生的数目(<30):");
scanformat("%d",&num);
while(num>N)
{
print("\n你输入的人数太多!");
print("\n请重新输入:");
scanformat("%d",&num);
}
for(i=0;i<num;i++)
{
print("\n输入第%d个学生的成绩信息:\n",i+1);
print("学号:");
scanformat("%ld",&chengji[i].num);
print("\n姓名:");
scanformat("%s",chengji[i].name);
print("\n高等数学:");
scanformat("%d",&chengji[i].high_math);
while(!assert(chengji[i].high_math))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji[i].high_math);
}
print("\n英语:");
scanformat("%d",&chengji[i].english);
while(!assert(chengji[i].english))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji[i].english);
}
print("\n物理:");
scanformat("%d",&chengji[i].physics);
while(!assert(chengji[i].physics))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji[i].physics);
}
print("\n程序设计:");
scanformat("%d",&chengji[i].program);
while(!assert(chengji[i].program))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji[i].program);
}
print("\n数据库:");
scanformat("%d",&chengji[i].database);
while(!assert(chengji[i].database))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji[i].database);
}
chengji[i].total=chengji[i].high_math+chengji[i].english+chengji[i].physics+chengji[i].program+chengji[i].database;
chengji[i].ave=chengji[i].total/5;
}
print("\n学生成绩表创建成功!!!\n");
return num;
}
void show(int data)
{
int i;
print("\n学生成绩表的所有信息:\n");
for(i=0;i<data;i++)
{
if(!(chengji[i].name[0]==''))
{
print("\n第%d个学生信息:",i+1);
print("\n学号:");
print("%ld",chengji[i].num);
print("\n姓名:");
print("%s",chengji[i].name);
print("\n高等数学:");
print("%d",chengji[i].high_math);
print("\n英语:");
print("%d",chengji[i].english);
print("\n物理:");
print("%d",chengji[i].physics);
print("\n程序设计:");
print("%d",chengji[i].program);
print("\n数据库:");
print("%d",chengji[i].database);
print("\n总分:");
print("%d",chengji[i].total);
print("\n平均分:");
print("%d",chengji[i].ave);
}
}
}
status search_num(int v,long d)
{
int i;
for(i=0;i<v;i++)
{
if(chengji[i].num==d)
break;
}
if(i==v)
{
print("\n成绩表中不存在该生.");
return;
}
else
{
print("\n查找学生的信息是:\n");
print("\n学号:");
print("%ld",chengji[i].num);
print("\n姓名:");
print("%s",chengji[i].name);
print("\n高等数学:");
print("%d",chengji[i].high_math);
print("\n英语:");
print("%d",chengji[i].english);
print("\n物理:");
print("%d",chengji[i].physics);
print("\n程序设计:");
print("%d",chengji[i].program);
print("\n数据库:");
print("%d",chengji[i].database);
print("\n总分:");
print("%d",chengji[i].total);
print("\n平均分:");
print("%d",chengji[i].ave);
return i;
}
}
void search_name(int s)
{
int i;
char string[C];
print("\n请输入要查找学生的姓名:");
scanformat("%s",string);
for(i=0;i<s;i++)
{
if(!strcmp(string,chengji[i].name))
break;
}
if(i==s)
{
print("\n成绩表中不存在该生.");
return;
}
else
{
print("\n该生的成绩记录:\n");
print("\n学号:");
print("%ld",chengji[i].num);
print("\n姓名:");
print("%s",chengji[i].name);
print("\n高等数学:");
print("%d",chengji[i].high_math);
print("\n英语:");
print("%d",chengji[i].english);
print("\n物理:");
print("%d",chengji[i].physics);
print("\n程序设计:");
print("%d",chengji[i].program);
print("\n数据库:");
print("%d",chengji[i].database);
print("\n总分:");
print("%d",chengji[i].total);
print("\n平均分:");
print("%d",chengji[i].ave);
}
}
void searchlist(int t)
{
int i;
long num;
char ch;
while(1)
{
print("\n1.学号.\n2.姓名");
print("\n你想通过什么查询.请选择:");
scanformat("%d",&i);
switch(i)
{
case 1:
print("\n请输入要查找学生的学号:");
scanformat("%ld",&num);
search_num(t,num);
break;
case 2:
search_name(t);
break;
default:
print("\n非法输入.");
break;
}
print("\n想继续查询吗?Y or N?:");
scanformat("%ch",&ch);
if(ch=='N'||ch=='n')
break;
}
}
void show_menu()
{
print("==================================");
print("\n1.显示成绩表中所有的学生成绩信息.");
print("\n2.查询学生的成绩信息.");
print("\n3.加入学生的成绩信息.");
print("\n4.删除学生的成绩信息.");
print("\n5.显示各科目的平均分.");
print("\n6.显示学生成绩排名情况.");
print("\n7.退出学生成绩管理系统.");
print("\n================================");
print("\n请选择你想要的操作:");
}
status insertlist(int m)
{
char ch;
print("\n请输入加入学生的成绩信息:\n");
while(1)
{
print("\n输入第%d个学生的成绩信息:\n",m+1);
print("学号:");
scanformat("%ld",&chengji ­.num);
print("\n姓名:");
scanformat("%s",chengji ­.name);
print("\n高等数学:");
scanformat("%d",&chengji ­.high_math);
while(!assert(chengji ­.high_math))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji ­.high_math);
}
print("\n英语:");
scanformat("%d",&chengji ­.english);
while(!assert(chengji ­.english))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji ­.english);
}
print("\n物理:");
scanformat("%d",&chengji ­.physics);
while(!assert(chengji ­.physics))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji ­.physics);
}
print("\n程序设计:");
scanformat("%d",&chengji ­.program);
while(!assert(chengji ­.program))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji ­.program);
}
print("\n数据库:");
scanformat("%d",&chengji ­.database);
while(!assert(chengji ­.database))
{
print("\n输入非法格式.");
print("\n请重新输入.");
scanformat("%d",&chengji ­.database);
}
chengji ­.total=chengji ­.high_math+chengji ­.english+chengji ­.physics+chengji ­.program+chengji ­.database;
chengji ­.ave=chengji ­.total/5;
print("\n成功的加入一个学生的成绩信息.");
m=m+1;
print("\n想继续吗?Y or n?:");
scanf("%c",&ch);
if(ch=='N'||ch=='n')
return m;
}
}
void deletelist(int n)
{
char ch,string[C];
int i;
long xuehao;
string[0]='\0';
print("\n请输入你想删去的学生的学号:");
scanf("%ld",&xuehao);
print("\n你要删去的学生的信息:\n");
i=search_num(n,xuehao);
print("\n你真的要删去该生的成绩信息吗?Y or N ?:");
scanformat("%c",&ch);
if(ch=='Y'||ch=='y')
{
strcpy(chengji[i].name,string);
print("\n你已经成功的删去了该生的成绩信息!!\n");
return;
}
else
return;
}
void show_average()
{
int sum1=0,sum2=0,sum3=0,sum4=0,sum5=0,i;
print("\n正在计算各科目的平均分,请稍等.........");
sleep(5);
for(i=0;i<number;i++)
if(!(chengji[i].name[0]==' '))
{
sum1+=chengji[i].high_math;
sum2+=chengji[i].english;
sum3+=chengji[i].physics;
sum4+=chengji[i].program;
sum5+=chengji[i].database;
}
print("\n高等数学:%d",sum1/number);
print("\n英语:%d",sum2/number);
print("\n物理:%d",sum3/number);
print("\n程序设计:%d",sum4/number);
print("\n数据库:%d",sum5/number);
}
status search_ave(int average)
{
int i;
for(i=0;i<number;i++)
{
if(chengji[i].name[0]==' ')
continue;
if(ave[i]==average)
{
ave[i]=0;
return i;
}
}
return -1;
}void search_paiming()
{
int numb[N],i,j,temp,k,m=0;/*??????*/
for(i=0;i<number;i++)
numb[i]=chengji[i].ave;
for(i=number;i>=0;i--)
{
for(j=i-1;j>=0;j--)
if(numb[j]<numb[i])
{
swap(numb[j],numb[i],temp);
i=j;
}
}
print("\n学生成绩排名:\n");
print("名次 学号 姓名 平均分");
for(i=0;i<number;i++)
{
k=search_ave(numb[i]);
if(k>=0&&chengji[k].name[0]!=' ')
{
print("\n第%d名:",m+1);
print(" %ld",chengji[k].num);
print(" %s",chengji[k].name);
print(" %d",chengji[k].ave);
m++;
}
}
print("\n");
}
main()
{
int choice,i;
number=create_chengjilist();
while(1)
{
print("\n");
show_menu();
scanformat("%d",&choice);
switch(choice)
{
case 1:
show(number);
break;
case 2:
searchlist(number);
break;
case 3:
number=insertlist(number);
break;
case 4:
deletelist(number);
break;
case 5:
show_average();
break;
case 6:
for(i=0;i<number;i++)
ave[i]=chengji[i].ave;
search_paiming();
break;
case 7:
saveconsole("student.txt");
return;
default:
print("\n非法输入!");
break;
}
}
}

H. c语言程序设计实验报告

五、 课程设计小结心得体会
1设计思想
1)、设定一个一维数组,可先按员工序号设定每位员工的工资
2)、利用While语句和Prinft语句完成用户菜单的设计
功能为:第1项 设为员工编号和工资数据
第2项 设为修改员工工资数据
第3项 设为查询员工工资数据
第4项 设为结束系统
3)、当用户选择1、2项时,需输入员工编号,所以需要设计编号校正功能,如果出错可输出“The error employe number”
4)、当选择2时,进行工资数据的修改,并将新数据存回该员工的工资数组中
5)、利用for循环中判断语句,将用户工资数与数组中的工资数进行比较,如相同则输出,将计数器加1,如此下去,直到把整个数组遍历一遍
6)、判断计数器是否为0, 是0表示找不到相符的工资,如果不为0,则输出共查出几比相符的工资
以上当然里面也涉及了“函数的模块化”理念,可以避免但需要重复打印头文件时重复编写打印信头的语句。像这样的程序是多见的,这样不但降低了程序还发效率,而且耗时浪费资源“共用体”的使用简化了程序的“复杂”性,正如(4)中,学号与姓名同时表示一个人,但在函数使用了“共用体”,从而程序的简单可以便于纠错,查找问题,避免了代码的重复,这样就给编译时带来了一定的难度与“量”的繁杂。一般不采取这样的做法,力求“简单、明了、清晰”。

I. C语言实训心得

通过这次C语言实训,提高了我掌握和利用C语言进行程设计的能力, 而且进一步理解和运用结构化程设计的思想和方法。初步掌握了开发一个小型实用系统的基本方法。学会了调试一个较长程序的基本方法。学会了利用流程图或N-S图表示算法。掌握了书写程设计开发文档的能力.为以后的实训打下坚实的基础。