c语言机房收费系统

2022-08-01

第一篇:c语言机房收费系统

C语言课程设计学生选课系统

题目

一、学生选课管理系统

第一部分:课程设计名称、目的、要求

第二部分:程序总体设计思路

第三部分:程序功能划分、图示及流程图

第四部分:程序设计数据、运行结果

第五部分:程序的优缺点

第六部分:心得体会

第七部分:附录(源程序)

第八部分:附录(参考文献)

目录

... ........... . ..... ............... ................... ............. ...........

第一部分:课程设计名称、目的、要求

名称:学生选修课程系统设计

目的:运用C语言提高解决实际问题的能力 实验环境:Microsoft Visual C++ 6.0 内容:

假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。 【功能】

系统以菜单方式工作

课程信息录入功能(课程信息用文件保存)--输入 课程信息浏览功能--输出

查询功能:(至少一种查询方式)--算法 按学分查询 按课程性质查询 学生选修课程(可选项)

第二部分:程序总体设计思路

由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。

具体的设计思路如下:

程序的要求是设计学生选修课管理系统,对选修课程能够进行录入和修改操作等,要求有菜单界面和退出功能。首先,考虑到程序的数据输入,可以设置一个管理员登陆选项,通过该选项进入管理员界面,进行选修课的录入和修改操作,最后将录入的课程保存到相应的文件中。然后定义各种函数的功能包括查看,查询,删除等。另一个为学生登陆界面,该界面学生可以进行课程选择和浏览查询等操作。在进行该操作之前需要对管理员保存的文件进行读取,然后对其中的内容进行查询等,在学生选好课程以后,可以将其选好的课程保存于相应的文件中,以便下次进行修改。通过函数的层层调用来实现程序的逻辑结构。中间通过文件的打开和关闭实现对文件内部所包含的数据的操作。

整个程序的设计思路到此结束。

第三部分:程序功能划分、图示及流程图

【功能模块划分及其流程图】

本程序功能模块根据程序设计的需求,综合程序的实用性、人性化、智能化的考虑,将程序划分为6个部分分别编写,程序主体功能将由这9个部分来完成。这9个部分依次是:

1. 登录界面函数;void login() 2. 学生登录界面据函数:void stu_login() 3. 管理员登录界面函数:void man_login() 4. 退出界面函数:void bye_sys()

5. 课程选择函数:void c_select() 6. 课程浏览函数:void c_view() 7. 课程查询函数:void c_search() 8. 课程增加函数:void c_add() 9. 课程删除函数:void c_delete() 10. 菜单函数:void index() 11. 主函数部分; main()

总体设计:

学生选课系统管理员登录学生登录新增课程删除课程课程浏览查询课程学生选课课程浏览课程查询c_add函数c_delete函数c_view函数c_search函数c_select函数c_view函数c_search函数

系统功能模块图

部分函数流程图:

1、 课程选择函数:

开始输入要选择的课程的编号j=0;j

2、 课程查询函数

开始输入要查询的课程的编号j=0;j

3、 课程增加函数

开始输入要增加的课程的编号j=0;j

4、课程删除函数

开始输入要删除的课程的编号nj=0;j

本程序是一款应用软件,故数据设计、程序运行结果应在程序的

运用中得以体现,现在通过一个程序的运用事例来对程序运行结果进行演示与实现。 【软件运用举例】

1、程序开始界面如下:

选择某个选项,如进行管理员登录,进行课程的增加 进入管理员界面:

2、再选择所要进行的操作,如进行课程增加,结果如下:

下面可以进行继续增加课程或者退出:

3、选择课程浏览,可以分页查看相应的课程信息: 第一页:

第二页:

4、课程查询

查找结果:

4、 管理员课程删除操作:

删除后可以进行浏览,观察删除后的结果:

可见删除后只有一条记录。删除操作完成正确。 下面进行学生操作的使用方法:

1、学生登陆界面:

2、选择学生选课选项:

3、学生登陆也可进行课程浏览和查询函数,其结果与管理员登陆相同,不再演示。

第五部分:程序的优缺点

【程序的优点】

算法是程序的灵魂,程序的优点首先表现在算法上的优点,其次才是功能上的。

[算法上的优点]主要体现在以下三点:

1. 程序采用main主函数方式设计,程序的主体的功能大都由该功能

完成。程序如此设计有利于程序的进一步改进及有助于程序执行效率的提高。

2. 程序对文件数据的读写采用了fread和fwrite块读写函数,能够将文件中的数据完全读出,然后赋到定义的数组中,再在相应的数组中进行一系列操作,最终再写入文件。

3. 插入操作在本程序中将课程信息直接插入数组最后一个节点,从而减少了数据的相互移动,节省了时间。

[功能上的优点] 主要体现在以下两点:

1. 简洁明了的程序菜单。程序主要采用了层次不同的菜单,相互独立又相互联系,巧妙相接,符合用户的使用习惯与思维。 2. 人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑问句,而且提示明确,具有较强的明确的指导作用。程序提示不仅层次分明,提示方式多样,而且提示信息井然有序,更加有利于用户顺利、准确地看懂程序并进行操作。

【程序的缺点】 主要表现在以下两点:

1、 本程序没有进行相应的密码操作,所以对于使用者来说可能存在比较大的不保密性。需要改善。

2、 本程序没有使用文本读写函数fscanf和fprintf,所以的到的课程文件和选课文件都是二进制形式。

第六部分:心得体会

选课系统程序比起通讯录程序来讲好写一些,由于本程序用到了数组,对于数组的操作掌握的比较熟练,所以在编写程序的时候困难没有那么多。

本程序在编写的过程中用到了许多通讯录中的模块化设计和函数互相调用的思想,使得编写比较方便和好用。

通过该系统的课程设计分析,我掌握了模块化设计的方法,理解和运用了结构化程序设计的思想和方法,掌握和提高了运用C语言进行程序设计的能力。

程序设计的过程,实际上是确定解决问题的详细步骤,而这个步骤通常叫做流程,在程序设计过程中理清楚整个问题的流程很重要,然后采取逐步细化的方法实现整个程序。

对于一个较大的应用程序,一般不可能一次就设计出一个很完善的系统。通常要先设计满足基本要求的系统,然后再测试或者在使用的过程中不断完善,慢慢地做成一个功能很完善选修课程管理系统。所以在进行调试的时候需要对许多变量理解和掌握其变化规律等,这对于我更好的掌握visual C中调试的工具有很大的帮助。

总之经过这次课程设计,我对c语言的使用和理解都有了很大的加深,对于编程的思想也有了很多新的理解和感受。

第七部分:附录

一、参考文献:

1、李丽娟主编 ,C语言程序设计教程(第二版),人民邮电出版社

2、严蔚敏主编,数据结构(C语言),清华大学出版社

3、崔单主编,C语言程序设计案例精粹,电子工业出版社

4、谭浩强主编,程序设计(第三版),清华大学出版社

二、源程序

#include"stdio.h" #include"stdlib.h" #include"windows.h" #include"string.h"

void index();//首页 void login(); void bye_sys();//退出界面

void stu_login();//学生登录菜单

void c_select(); void c_view();//课程浏览

void c_add();//增加课程 void c_delete(); void c_searchs();//学生查询函数 void c_searchm();//管理员查询函数 void c_viewm();//管理员浏览函数 void c_views();//学生浏览函数

struct course//定义课程结构体

{

int c_num;

char c_name[20];

int c_score;

int c_nelepeo;//课程已选人数

int c_melepeo;//课程人数上限 }; struct student { char s_number[10];

char s_password[10]; }; struct manager { char m_name[10]; char m_password[10]; };

void index()//首页 {

char input;

printf(" ***************************** ");

printf("

湖南大学学生选课系统 ");

printf(" ***************************** ");

printf(" ***************************** ");

printf(" ***************************** ");

printf(" ***************************** ");

printf(" **********设计者:刘晓斌****** ");

input=getchar();

system("cls"); } void login()//登陆界面

{

void stu_login();

void man_login();

void bye_sys();

int input;

do

{

system("cls");

printf(" 1.学生登录 ");

printf(" 2.管理员登陆 ");

printf(" 3.退出本系统 ");

printf(" 请选择服务类别:");

scanf("%d",&input);

if (input!=1&&input!=2&&input!=3) //输入数不等于选项的时候打印画面

{

printf(" 输入出错!请重新选择~ ");

printf(" 按任意键返回选择页面~ ");

getchar();getchar();

system("cls");

}

if(input==3)//如果输入3退出系统

{

bye_sys();

}

}while(input!=1&&input!=2&&input!=3);

switch(input)

{

case 1:stu_login();break;

case 2:man_login();break;

} }

void bye_sys()//退出界面 { exit(0); }

void man_login() {

void c_add();

void c_delete();

void c_view();

void c_searchm();

int in;

do

{

system("cls");

printf(" 1.新增课程 ");

printf(" 2.删除课程 ");

printf(" 3.课程浏览 ");

printf(" 4.课程查询 ");

printf(" 5.退出 ");

printf(" 请选择服务种类:");

scanf("%d",&in);

if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5)

{

printf(" 没有这项服务 按任意重新选择");

getchar();getchar();

}

}while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5);

switch(in)

{

case 1:c_add();break;

case 2:c_delete();break;

case 3:c_viewm();break;

case 4:c_searchm();break;

case 5:login();break;

} }

void stu_login()//学生登录菜单

{

void c_select();

void c_view();

void c_searchs();

void login();

int input;

do

{

system("cls");

printf(" --学生登陆--");

printf(" 1.学生选课 ");

printf(" 2.课程浏览 ");

printf(" 3.课程查询 ");

printf(" 4.退出 ");

scanf("%d",&input);

if(input!=1&&input!=2&&input!=3&&input!=4)

{

printf(" 没有这项服务~ ");

printf(" 按任意键重新选择");

getchar();

getchar();

}

}while(input!=1&&input!=2&&input!=3&&input!=4);

switch(input)

{

case 1:c_select();break;

case 2:c_views();break;

case 3:c_searchs();break;

case 4:login();break;

} }

void c_select() {

int n,in,i=0,j;int flag=0;

FILE *fp;

FILE *fp1;

char input;

struct course courses[10];

if((fp=fopen("course.dat","rb"))==NULL) //判断是否存在课程

{

printf(" 课程不存在 ");

printf(" <按任意键返回管理菜单> ");

input=getchar();

input=getchar();

stu_login();//进入学生登陆菜单

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件读完后关闭

}

printf(" 请输入你要选课程的编号:");

scanf("%d",&n);

if((fp1=fopen("courseselect.dat","rb"))==NULL)

{

fp1=fopen("courseselect.dat","wb");

}

else

{

fclose(fp1);

fp1=fopen("courseselect.dat","ab");

}

for(j=0;j

if(courses[j].c_num==n)

flag++;

if(flag==0)

{

printf(" 不存在对应课程 ");

printf(" 继续选课请按1,退出请按2: ");

scanf("%d",&in);

switch(in)

{

case 1:c_select();break;

case 2:stu_login();break;

default:

printf("输入错误,将返回登录界面! ");

login();break;

}

}

else

{

fwrite(&courses[j],sizeof(struct course),1,fp1);

fclose(fp1);

printf(" 选课成功 请选择:");

printf(" 1.继续选课");

printf(" 2.退出,返回登录界面!");

scanf("%d",&in);

switch(in)

{

case 1:c_select();break;

case 2:stu_login();break;

default:break;

}

} }

void c_viewm()//课程浏览

{

void stu_login();

void c_view() ;

int

inp,i=0,n=0;

FILE *fp;

char input;

struct course courseview[10];

if((fp=fopen("course.dat","rb"))==NULL) //判断是否存在课程

{

system("cls");

printf(" 课程不存在 ");

printf(" <按任意键返回管理菜单> ");

getchar();getchar();

stu_login();//进入学生登陆菜单

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&courseview[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件读完后关闭

do

{

system("cls");

if(i==1)

{

printf(" 没有记录! ");

getchar();getchar();

man_login();

}

else

{

printf(" ------共有%d条记录-------",i-1);

printf(" 课程编号: %d ",courseview[n].c_num);

printf(" 课程名字: %s ",courseview[n].c_name);

printf(" 课程学分: %d ",courseview[n].c_score);

printf(" 课程已选人数: %d ",courseview[n].c_nelepeo);

printf(" 课程人数上限: %d ",courseview[n].c_melepeo);

printf(" 1.上一页 2.下一页 3.回目录");

printf(" 请选择:");

scanf ("%d",&inp);

switch(inp)

{

case 1:

{

if(n==0)

{

printf(" 已到达首页 按任意键返回");

input=getchar();

input=getchar();

}

else

{

n=n-1;

}

break;

}

case 2:

{

if(n==i-2)

{

printf(" 已到达尾页 按人意见返回");

input=getchar();

input=getchar();

}

else

{

n=n+1;

}

break;

}

case 3:{man_login();break;}

default:

{

printf(" 操作错误 按任意键返回");

getchar();getchar();

break;

}

}

}

}while(inp!=3);

} }

void c_views()//课程浏览

{

void stu_login();

void c_view() ;

int

inp,i=0,n=0;

FILE *fp;

char input;

struct course courseview[10];

if((fp=fopen("course.dat","rb"))==NULL) //判断是否存在课程

{

system("cls");

printf(" 课程不存在 ");

printf(" <按任意键返回管理菜单> ");

getchar();getchar();

stu_login();//进入学生登陆菜单

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&courseview[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件读完后关闭

do

{

system("cls");

if(i==1)

{

printf(" 没有记录! ");

getchar();getchar();

stu_login();

}

else

{

printf(" ------共有%d条记录-------",i-1);

printf(" 课程编号: %d ",courseview[n].c_num);

printf(" 课程名字: %s ",courseview[n].c_name);

printf(" 课程学分: %d ",courseview[n].c_score);

printf(" 课程已选人数: %d ",courseview[n].c_nelepeo);

printf(" 课程人数上限: %d ",courseview[n].c_melepeo);

printf(" 1.上一页 2.下一页 3.回目录");

printf(" 请选择:");

scanf ("%d",&inp);

switch(inp)

{

case 1:

{

if(n==0)

{

printf(" 已到达首页 按任意键返回");

input=getchar();

input=getchar();

}

else

{

n=n-1;

}

break;

}

case 2:

{

if(n==i-2)

{

printf(" 已到达尾页 按人意见返回");

input=getchar();

input=getchar();

}

else

{

n=n+1;

}

break;

}

case 3:{stu_login();break;}

default:

{

printf(" 操作错误 按任意键返回");

getchar();getchar();

break;

}

}

}

}while(inp!=3);

} }

void c_searchs() {

void stu_login();

void c_searchs();

int id,i=0,j,inp,k;

int flag=0;

FILE *fp;

struct course coursesear[10];

if ((fp=fopen("course.dat","rb"))==NULL)

//判断课程信息是否存在

{

system("cls");

printf(" 课程不存在 按任意键返回");

getchar();getchar();

stu_login();

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&coursesear[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

system("cls");

printf(" 请输入你要查询的课程编号:");

scanf("%d",&id);

do//检查输入是否符合要求

{

for(j=0;j

{

if(id==coursesear[j].c_num)

{

flag++;

k=j;

}

}

if(flag==1)

{

system("cls");

printf(" 课程编号:%d ",coursesear[k].c_num);

printf(" 课程名字:%s ",coursesear[k].c_name);

printf(" 课程学分:%d ",coursesear[k].c_score);

printf(" 课程已选人数:%d ",coursesear[k].c_nelepeo);

printf(" 课程人数上限:%d ",coursesear[k].c_melepeo);

getchar();getchar();

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchs();

case 2:stu_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

getchar();getchar();

}

}

}

else

{

system("cls");

printf(" 不存在对应记录 ");

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchs();

case 2:stu_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

getchar();getchar();

}

}

}

}while(inp!=1);

}

void c_searchm() {

void stu_login();

void c_searchm();

int id,i=0,j,inp,k;

int flag=0;

FILE *fp;

struct course coursesear[10];

if ((fp=fopen("course.dat","rb"))==NULL)

//判断课程信息是否存在

{

system("cls");

printf(" 课程不存在 按任意键返回");

getchar();getchar();

stu_login();

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&coursesear[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

system("cls");

printf(" 请输入你要查询的课程编号:");

scanf("%d",&id);

do//检查输入是否符合要求

{

for(j=0;j

{

if(id==coursesear[j].c_num)

{

flag++;

k=j;

}

}

if(flag==1)

{

system("cls");

printf(" 课程编号:%d ",coursesear[k].c_num);

printf(" 课程名字:%s ",coursesear[k].c_name);

printf(" 课程学分:%d ",coursesear[k].c_score);

printf(" 课程已选人数:%d ",coursesear[k].c_nelepeo);

printf(" 课程人数上限:%d ",coursesear[k].c_melepeo);

getchar();getchar();

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchm();

case 2:man_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

getchar();getchar();

}

}

}

else

{

system("cls");

printf(" 不存在对应记录 ");

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchm();

case 2:man_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

getchar();getchar();

}

}

}

}while(inp!=1); }

void c_add()//增加课程 {

void c_add();

void man_login();

int i=0,j,inp;

FILE *fp;

struct course course_new;

struct course courses[10];

system("cls");

printf(" 请输入课程信息");

printf(" 1.课程编号:");

scanf("%d",&course_new.c_num);

printf(" 2.课程名字:");

scanf("%s",course_new.c_name);

printf(" 3.课程学分:");

scanf("%d",&course_new.c_score);

printf(" 4.课程已选人数:");

scanf("%d",&course_new.c_nelepeo);

printf(" 5.课程人数上限:");

scanf("%d",&course_new.c_melepeo);

if((fp=fopen("course.dat","rb"))!=NULL)

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

for(j=0;j<=i-1;j++)

if(course_new.c_num==courses[j].c_num)

{

system("cls");

printf(" 对不起,这个编号已经使用过 按任意键返回管理菜单");

getchar();getchar();

man_login();

break;

}

}

if((fp=fopen("course.dat","rb"))==NULL)

{

fp=fopen("course.dat","wb");

}

else

{

fclose(fp);

fp=fopen("course.dat","ab");

}

fwrite(&course_new,sizeof(struct course),1,fp);

fclose(fp);

printf(" 信息输入完毕 按任意键继续");

getchar();getchar();

do

{

system("cls");

printf(" 1.继续输入");

printf(" 2.返回管理菜单");

printf(" 请选择");

scanf("%d",&inp);

if(inp!=1&&inp!=2)

{

printf("输入不符合要求 按任意键重新选择");

getchar();getchar();

}

}while(inp!=1&&inp!=2);

switch(inp)

{

case 1:c_add();break;

case 2:man_login();break;

} }

void c_delete()//查询后删除 {

FILE *fp;

int i=0,j,n,k,flag=0;

struct course courses[10];

void c_delete();

void man_login();

printf(" 请输入你要删除的课程编号:");

scanf("%d",&n);

if((fp=fopen("course.dat","rb"))!=NULL)

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

else

{

printf(" 不存在任何课程 按任意键返回");

getchar();getchar();

man_login();

}

for(j=0;j

{

if(courses[j].c_num==n)

{

flag=1;

fp=fopen("course.dat","wb");

for(k=0;k

fwrite(&courses[k],sizeof(struct course),1,fp);

fclose(fp);

fp=fopen("course.dat","ab");

for(k=j+1;k

{

fwrite(&courses[k],sizeof(struct course),1,fp);

}

printf(" 记录已删除! 按任意键返回 ");

getchar();getchar();

man_login();

fclose(fp);

}

}

if(flag==0)

{

printf(" 不存在对应的课程 按任意键返回");

getchar();getchar();

man_login();

} // printf(" 记录已删除! 按任意键返回 ");

}

int main() {

index(); login(); return 0; }

第二篇:代理商信息管理系统 c语言

C语言课程设计报告

班学号:

学号:

姓名:

指导教师:

C语言课程设计报告

题目要求

基本功能:代理商信息采集、浏览、查询;代理商信息的输入、浏览、修改、查询、统计等。

需求分析

实现代理商信息采集和代理商品信息输入功能,要提供结构体的输入操作;实现统计功能,要提供相应的统计操作;实现查询功能,要提供查找操作;实现修改弄能,要提供修改操作;另外,还要提供键盘式选择菜单以实现功能选择。

总体分析

整个系统应设计为代理商信息采集、浏览、查询;代理商信息输入、浏览、修改、查询、统计等模块。

数据结构

数据结构财通结构体数组。

算法设计

主菜单选择功能,通过判断输入的选择进入相应的处理模块,包括数据输入、数据统计、数据查询、数据删除等。程序流程如下图所示:

数据结构设计

程序定义了一个运营商加入日期的结构体: struct data

{

};

定义了运营商信息的结构体:

struct acmer

{

}; int number;

//运营商的编号; char name[20];

//运营商姓名; char agentnum[20];

//销售量; char phonum[20];

//电话号码; char goods[20];

//商品; struct data time;

//加入日期; int year;

//运营商加入的年份; int month;

//运营商加入的月份; int day;

//运营商加入的日期;

模块设计

1.主函数

Main函数通过调用menu函数输入一个数字来选择用什么函数以实现相应功能,同时这个功能通过switch选择结构来调用:

int main()

{

struct acmer agent[100]; int n,i,k; printf("请输入要统计的代理商数目:"); scanf("%d",&n); printf("请输入代理商信息: "); for(i=1;i<=n;i++) input(i,agent); menu(); while(scanf("%d",&k),k!=0) {

switch(k) { case 1:for(i=1;i<=n;i++)

{output(i,agent);}menu();break; case 2:stat(n,agent);menu();break; case 3:search(n,agent);menu();break; case 4:amend(n,agent);menu();break; case 5:sort(n,agent); for(i=1;i<=n;i++)

}

}

{

printf("[%d]",i); output(i,agent); }

menu();break; case 6:n=add(n,agent);menu();break; case 7:cancel(n,agent);menu();break; default:printf("error ");menu();break; } return 0; 2.menu函数

Menu函数是用来辅助main函数提供键盘是菜单以实现选择功能的:

void menu()

{

printf("1 输出 "); printf("2 统计 "); printf("3 查找 "); printf("4 代理商信息修改 "); printf("5 排名 "); printf("6 添加 ");

} printf("7 删除 "); printf("0 结束程序"); 3.代理商信息添加模块

首先调用add函数以确定输入代理商的数目,然后用input函数来输入代理商信息:

int add(int n,struct acmer agent[]) {

void input(int i,struct acmer agent[]) {

printf("姓名:"); scanf("%s",agent[i].name); printf("代理商编号:"); int k,i; printf("请输入添加代理商数目:"); scanf("%d",&k); for(i=n+1;i<=n+k;i++) { } return n+k; input(i,agent);

} scanf("%s",agent[i].agentnum); printf("联系方式:"); scanf("%s",agent[i].phonum); printf("销售量:"); scanf("%d",&agent[i].number); printf("代理商品信息:"); scanf("%s",agent[i].goods); printf("年:"); scanf("%d",&agent[i].time.year); printf("月:"); scanf("%d",&agent[i].time.month); printf("日:"); scanf("%d",&agent[i].time.day); 4.代理商信息浏览

代理商信息浏览使用了output函数,可以同时输出代理商以及商品的所有信息:

void output(int i,struct acmer agent[]) {

printf("姓名:%s",agent[i].name); printf("代理商编号:%s",agent[i].agentnum); printf("联系方式:%s",agent[i].phonum); printf("销售量:%d",agent[i].number); printf("代理商品信息:%s",agent[i].goods);

printf("间:%d %d %d ",agent[i].time.year,agent[i].time.month,agent[i].time.day); } 5.数据删除

数据删除也是先读取数据文件中所有现存代理商信息。如果没有读到代理商则表示本身无记录,删除功能无法继续。

删除功能的实现主要在重新写文件时。通过比对需要删除的那条记录与已读取出的存放于结构体数组中的记录,如果相同,则跳过该条记录的重新写入,即重新写文件时,就会少了该条记录,于是完成删除功能。

int cancel(int n,struct acmer agent[])

{

char x[20]; int i,j,flag,t; t=n; printf("请输入要删除代理商的编号(按000结束删除):"); while(scanf("%s,x")!=EOF) { flag=0;

}

} if(strcmp(x,"000")==0) break; for(i=1;i<=n;i++)

if(strcmp(x,agent[i].agentnum)==0) {

} if(flag==0)

printf("没有找到代理商信息 "); for(j=i+1;j<=n;j++)

agent[i]=agent[i+1];

flag=1; t--; break; return t; 6.统计功能

统计功能主要统计销售量超过一定数量的运营商,使用了stat函数。若运营商超过给定数值k则输出该运营商信息,若未超过则不输出。 void stat(int n,struct acmer agent[]) { int k,i,x;

} printf("1:销售量超过k的代理商 "); printf("2:排名前k的代理商 "); printf("3:请选择,按4结束统计:"); while(scanf("%d",&x),x!=4) {

} printf("请输入k:"); scanf("%d",&k); switch(x) { case 1:for(i=1;i<=n;i++)

if(agent[i].number>k)

output(i,agent);break; case 2:sort(n,agent); for(i=1;i<=k;i++) output(i,agent);break; default:printf("error "); } 7.修改模块

修改模块使用amend函数,当输入号码与已有号码一致时,输入新的商品信息,覆盖原有信息,若未发现输入号码,则输出“没有找到此人信息”。

void amend(int n,struct acmer agent[]) {

} int i,k,flag=0; char x[20]; printf("请输入要修改的代理商编号:"); scanf("%s",x); for(i=1;i<=n;i++) {

} if(flag==0) printf("没有找到此人信息 "); if(strcmp(x,agent[i].agentnum)==0) {

} break; flag=1; printf("代理商品信息:"); scanf("%s",agent[i].goods); else printf("修改成功 "); 8.查找模块

查找模块提供了两种查找方式,即按姓名查找和按编号查找。前者使用了if(strcmp(x,agent[i].name)==0)语句,后者使用了if(strcmp(x,agent[i].name)==0)语句来实现相应功能。 void search(int n,struct acmer agent[]) { int k,i,flag=1; char x[20]; printf("1 按姓名查找"); printf("2 按编号查找"); printf("请选择查找方式:"); scanf("%d",&k); if(k==1) {

printf("请输入要查找代理商姓名:

scanf("%s",x);

for(i=1;i<=n;i++)

if(strcmp(x,agent[i].name)==0)

{

flag=0;

output(i,agent); break;

");

}

if(flag==1)

printf("没有此人信息 "); } if(k==2) {

printf("请输入要查找代理商编号:

scanf("%s",x);

if(strcmp(x,agent[i].name)==0)

{

flag=0;

output(i,agent);

break;

}

if(flag==1)

printf("没有此人信息 "); } }

程序

#include #include struct data

"); {

}; struct acmer {

}; void menu() {

printf("1 输出 "); printf("2 统计 "); printf("3 查找 "); printf("4 代理商信息修改 "); printf("5 排名 "); printf("6 添加 "); int number; char name[20]; char agentnum[20]; char phonum[20]; char goods[20]; struct data time; int year; int month; int day;

} printf("7 删除 "); printf("0 结束程序"); void input(int i,struct acmer agent[]) {

} printf("姓名:"); scanf("%s",agent[i].name); printf("代理商编号:"); scanf("%s",agent[i].agentnum); printf("联系方式:"); scanf("%s",agent[i].phonum); printf("销售量:"); scanf("%d",&agent[i].number); printf("代理商品信息:"); scanf("%s",agent[i].goods); printf("年:"); scanf("%d",&agent[i].time.year); printf("月:"); scanf("%d",&agent[i].time.month); printf("日:"); scanf("%d",&agent[i].time.day); void output(int i,struct acmer agent[]) {

printf("姓名:%s",agent[i].name); printf("代理商编号:%s",agent[i].agentnum); printf("联系方式:%s",agent[i].phonum); printf("销售量:%d",agent[i].number); printf("代理商品信息:%s",agent[i].goods); printf("

时间:%d %d %d ",agent[i].time.year,agent[i].time.month,agent[i].time.day); } int add(int n,struct acmer agent[]) {

} int k,i; printf("请输入添加代理商数目:"); scanf("%d",&k); for(i=n+1;i<=n+k;i++) { } return n+k; input(i,agent); int cancel(int n,struct acmer agent[]) { char x[20]; int i,j,flag,t; t=n; printf("请输入要删除代理商的编号(按000结束删除): while(scanf("%s,x")!=EOF) {

flag=0;

if(strcmp(x,"000")==0)

break;

for(i=1;i<=n;i++)

if(strcmp(x,agent[i].agentnum)==0)

{

for(j=i+1;j<=n;j++)

agent[i]=agent[i+1];

flag=1;

t--;

break;

}

if(flag==0) printf("没有找到代理商信息 "); ");

} } return t; void sort(int n,struct acmer agent[]) {

} void stat(int n,struct acmer agent[]) {

int k,i,x; printf("1:销售量超过k的代理商 "); printf("2:排名前k的代理商 "); printf("3:请选择,按4结束统计:"); struct acmer t; int i,j; for(i=1;i<=n-1;i++)

for(j=1;j<=n-1;j++)

if(agent[j].number

} t=agent[j]; agent[j]=agent[j+1]; agent[j+1]=t;

} while(scanf("%d",&x),x!=4) {

} printf("请输入k:"); scanf("%d",&k); switch(x) { case 1:for(i=1;i<=n;i++)

if(agent[i].number>k)

output(i,agent);break; case 2:sort(n,agent); for(i=1;i<=k;i++) output(i,agent);break; default:printf("error "); } void amend(int n,struct acmer agent[]) {

int i,k,flag=0; char x[20]; printf("请输入要修改的代理商编号:"); scanf("%s",x);

} for(i=1;i<=n;i++) {

} if(flag==0) printf("没有找到此人信息 "); if(strcmp(x,agent[i].agentnum)==0) {

} break; flag=1; printf("代理商品信息:"); scanf("%s",agent[i].goods); else printf("修改成功 "); void search(int n,struct acmer agent[]) {

int k,i,flag=1; char x[20]; printf("1 按姓名查找"); printf("2 按编号查找"); printf("请选择查找方式:");

scanf("%d",&k); if(k==1) { printf("请输入要查找代理商姓名:"); scanf("%s",x); for(i=1;i<=n;i++)

if(strcmp(x,agent[i].name)==0)

{

flag=0;

output(i,agent);

break;

}

if(flag==1) printf("没有此人信息 "); } if(k==2) { printf("请输入要查找代理商编号: scanf("%s",x); if(strcmp(x,agent[i].name)==0)

{ flag=0;

");

} output(i,agent); break; if(flag==1) printf("没有此人信息 "); } } int main() { struct acmer agent[100]; int n,i,k; printf("请输入要统计的代理商数目: scanf("%d",&n); printf("请输入代理商信息: "); for(i=1;i<=n;i++) input(i,agent); menu(); while(scanf("%d",&k),k!=0) {

switch(k)

{ case 1:for(i=1;i<=n;i++)

");

}

}

{output(i,agent);}menu();break; case 2:stat(n,agent);menu();break; case 3:search(n,agent);menu();break; case 4:amend(n,agent);menu();break; case 5:sort(n,agent);

for(i=1;i<=n;i++) { printf("[%d]",i); output(i,agent); }

menu();break; case 6:n=add(n,agent);menu();break; case 7:cancel(n,agent);menu();break; default:printf("error ");menu();break; } return 0;

上机操作

1. 数据源

2. 编译、链接和运行 3. 运行结果

下为各界面图: 主函数

输入板块

浏览板块

在主界面输入1后按enter键

统计板块

在主界面输入2后按enter键

查找板块

在主界面输入后按enter键

添加板块

小结

通过本次实习,我对C语言有了更一步的理解与掌握,这一切离不开老师的教育和同学们的帮助,所以我十分感谢我的老师。本次实习过程中,遇到了不少困难,但本着一颗执着的心,加上老师耐心的帮助,我克服了一个个困难,并最终完成了任务,所以这次的实习对我的帮助很大,不仅在学习上取得了更多了收货,也进一步锻炼了我克服困难的勇气和决心,另外我发现自己C语言的兴趣越来越浓厚,希望在以后的学习生活中能更多机会的接触C语言,并能对C语言有更深一步的了解和掌握。也许会遇到困难,但只要做好每一个步骤,保证每个步骤的准确性,就一定会取得成功。再次谢谢老师的教育和同学们的帮助。

第三篇:c语言系统开发设计实习报告

信息管理与系统开发设计综合模拟实习

一、实习目的

通过模拟实习,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。信管07级学生的模拟实习主要是复杂程序和简单软件的实现。通过该模拟实习,可以将学生课堂上掌握的理论知识与处理数据的业务相结合,以检验我们同学们掌握知识的宽度、深度及对知识的综合运用能力。

二、实习环境

计算机硬件配置:cpu 内存 硬盘操作系统:windows xp 开发环境:visual c++ 6.0

三、实习内容

内容一:运动会分数统计

任务:参加运动会有n个学校,学校编号为1„„n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1„„m,女子m+1„„m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:

7、

5、

3、

2、1,前三名的积分分别为:

5、

3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)

功能要求:

(1)可以输入各个项目的前三名或前五名的成绩; (2)能统计各学校总分;

(3)可以按学校编号、学校总分、男女团体总分排序输出;

(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)

输出形式:有中文提示,各学校分数为整形

1 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用

1、全部合法数据;

2、整体非法数据;

3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;

内容二:纸牌游戏

任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后„从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?

内容三:设计学生成绩管理系统。该系统中存储学生的学号、姓名、性别、年龄、课程成绩等信息。

要求:(1)浏览学生信息

(2)添加学生信息 (3)删除学生信息 (4)查找学生信息 (5)修改学生信息 (6)对成绩的处理

①求出每个学生各门课程的总成绩、平均成绩、最高分和最低分。 ②求出某一门课程所有学生总成绩、平均成绩、最高分和最低分。 (7)按照学生某门课程的成绩对学生排序

四、算法分析、设计与描述

1.算法分析和设计 内容一:

运动会分数统计是对运动会信息的基本管理与统计,它包括:运动会信息的输入、运动会总体成绩的查询、指定学校成绩的查询、以及各种要求的排列。

使用模块化编程的方法每项功能有一个函数来完成,对应如下: 按学校编号排序void bianhao( )

按学校总分排序void zongfen( ) 按学校男总分排序void malezf( )

按学校女总分排序void femalezf( ) 查询某个学校成绩void cxsch( )

查询某个项目成绩void cxxm( ) 为了把数据封装起来更方便使用,创建了表示项目结构体的struct item和表示学校的结构体struct school。

struct item { char name[15]; int snum[5]; int s; }p[21];

struct school { int num; char name[15]; int score; int mscore; int wscore; }sch[21];

内容二:

此题算法比较简单,按题目要求相当于从第一张牌算起,若这张牌是二的倍数,则翻面,是三的倍数则再翻一次,是四的倍数则再翻一次,循环直到52为止,则此张牌结算完成。翻完第一张牌后,再继续算第二张牌,直到52张牌都结算完成。

3 内容三:

学生信息管理系统是对学生信息的基本管理,它包括:浏览学生信息、添加学生信息、删除学生信息、查找学生信息、修改学生信息、对成绩的处理、按照学生某门课程的成绩对学生排序

使用模块化编程的方法每项功能有一个函数来完成,对应如下:

(1)浏览学生信息以及读取数据 void print(ID *head) (2)添加学生信息以及对成绩的处理ID *insert(ID *head) (3)删除学生信息 ID *delet(ID *head) (4)查找学生信息ID *search(ID *head) (5)修改信息 ID *amend(ID *head) (6)按照学生某门课程的成绩对学生排序ID *sort(ID *head) (7)存储数据以及退出系统ID *breaksys(ID *head) 为了把数据封装起来更方便使用,创建了表示学生信息的结构体struct id struct id { char name[20]; int num; int a; int b; int c; double ave; ID *next; };

2.算法描述 内容一:

开始输入数据选择操作按学校编号排序按学校总分排序按学校男总分排序按学校女总分排序查询某学校成绩查询某个项目成绩退出结束 图4.1 计分系统总体模块流程图

开始N输入学校的个数nYn>=1&&n<=20输入学校的名称输入男子项目数m和女子项目数wYN输入项目的名称m<=20&&m>=1&&w<=20&&w>=1输入项目选取的名次sN输入项目的前s名的学校编号x>=1&&x<=nY储存数据结束

图4.2 数据输入保存流程图

开始i=0isNsch[j];sch[j]=tch[j].numi++i=1i<=nY输出成绩i++N结束图4.3按编号排列流程图

开始i=1Ni<=52Yj=2j<=52Yi%j=0YNNa=-aj++a==1YN输出ii++结束图4.4 流程图

内容二:

内容三:

开始输入zZ=2Z=1Z=3Z=4Z=5Z=6Z=7Z=8浏览学生信息添加学生信息删除学生信息查找学生信息修改学生信息对成绩的处理按照学生某门课程的成绩对学生排序退出结束 图4.5总体模块流程图

开始输入删除的学号p1=headnum!=p1->num && p1!=NULLNYp2=p1p1=p1->nextYhead==NULLN输出没有记录结束num==p1->numYp1==headNhead=p1->nextYp2->next=p1->nextpc--结束

图4.6 删除数据流程图

五、程序设计

1.程序设计的基本思路 内容一:

(1)主函数的程序设计

首先输入运动会成绩,进入菜单,然后选择操作(运用swith语句),调用各子函数,同时保存文件。最后选择退出程序。

(2)各子函数的程序设计 保存信息:

fp=fopen("运动会分数统计.txt","wb"); fprintf(fp,"编号 学校名称 总分 男子总分 女子总分 "); for(i=1;i<=n;i++) {

fprintf(fp," %d%10s%7d%7d%7d ",sch[i].num,sch[i].name,sch[i].score, sch[i].mscore,sch[i].wscore); } fclose(fp);

按学校编号排序

for(i=0;i

} for(j=i;j

if(sch[i].num>sch[j].num) { } t=sch[i];sch[i]=sch[j];sch[j]=t; 按学校总分排序

for(i=1;i

for(j=i;j<=n;j++)

if(sch[i].score

} t=sch[i]; sch[i]=sch[j]; sch[j]=t; 8 }

按学校男总分排序

school t; for(i=1;i

} for(j=i;j<=n;j++)

{ if(sch[i].mscore

for(i=1;i

} for(j=i;j<=n;j++)

if(sch[i].wscore

for(i=1;i<=n;i++) {

} if(sch[i].num==s) {

} printf(" %d%10s%7d%7d%7d ",sch[i].num,sch[i].name, sch[i].score,sch[i].mscore,sch[i].wscore); break; 查询某个项目成绩

for(i=1;i<=5;i++) printf(" %d%6d%10s ",i,p[s].snum[i],sch[ p[s].snum[i] ].name); printf(" ");

9 内容二:

主要算法是两次for循环

for(i=1;i<=52;i++) {

} a=1; for(j=2;j<=52;j++) {

} if(a==1) printf("%d ",i); if(i%j==0) a=-a;

内容三:

(1)主函数的程序设计

首先,进入菜单,然后选择操作(运用swith语句),调用各子函数,调用完后自动返回主菜单。在退出程序时自动保存文件。

(2)各子函数的程序设计 显示信息:

fp=fopen("学生成绩管理.txt","a+"); printf("显示结果是: "); printf("学号 姓名 性别 年龄 语文 数学 英语 总成绩 平均成绩 最高分 最低分 "); while(p!=NULL) { &p->min); } fclose(fp); if(head!=NULL) {

fscanf(fp,"%3d%5s%5s%5d%5d%5d%5d%5d%5d%5d%5d ",&p->num, &p->name,&p->sex, &p->age,&p->a,&p->b,&p->c,&p->sum,&p->ave,&p->max, p++; do {

}

10 printf("%3d%5s%5s%5d%5d%5d%5d%6d%9.2f%7d%7d ",p->num, p=p->next; p->name,p->sex, p->age,p->a,p->b,p->c,p->sum,p->ave,p->max,p->min); } while(p!=NULL); printf("总体成绩: "); printf("语文的总成绩是%4d 平均成绩是%5.2f 最高分是%3d 最低分是%3d ",asum,aave,amax,amin); printf("数学的总成绩是%4d 平均成绩是%5.2f 最高分是%3d 最低分是%3d ",bsum,bave,bmax,bmin); printf("英语的总成绩是%4d 平均成绩是%5.2f 最高分是%3d 最低分是%3d ",csum,cave,cmax,cmin);

添加记录

printf("插入操作开始!!! "); temp=(ID *)malloc(sizeof(ID)); printf("请输入学生的学号: ");scanf("%d",&temp->num); printf("请输入学生的姓名: ");scanf("%s",&temp->name); printf("请输入学生的性别: ");scanf("%s",&temp->sex); printf("请输入学生的年龄: ");scanf("%d",&temp->age); printf("请输入学生的语文成绩: ");scanf("%d",&temp->a); printf("请输入学生的数学成绩: ");scanf("%d",&temp->b); printf("请输入学生的英语成绩: ");scanf("%d",&temp->c);

查找记录

查找记录中需要看记录中是否有与输入数据匹配的数据。有则输出数据,没有则提示没有找到数据。

while(str!=p1->num && p1!=NULL) {

} p2=p1; p1=p1->next; 保存记录

fp=fopen("学生成绩管理.txt","a+"); fprintf(fp,"学号 姓名 性别 年龄 语文 数学 英语 总成绩 平均成绩 最高分 最低分 "); while(p->next!=NULL) {

} fclose(fp);

11 fprintf(fp,"%3d%5s%5s%5d%5d%5d%5d%5d%5d%5d%5d ", p++; p->num,p->name,p->sex, p->age,p->a,p->b,p->c,p->sum,p->ave,p->max, p->min);

2.程序代码 内容一:

#include #include int n,m,w; FILE *fp; struct item { char name[15]; int snum[5]; int s; }p[21]; struct school { int num; char name[15]; int score; int mscore; int wscore; }sch[21]; int integral1[5]={7,5,3,2,1};//前五名得分 int integral2[3]={5,3,2};//前三名得分 void input() { int i,j=0,y,x; printf("请输入学校个数:"); while(1) {

} for(i=1;i<=n;i++) {

scanf("%d",&n); if(n>=1&&n<=20)y=1; if(y)break; else printf("输入错误,请重新输入: "); printf("请输入第%d个学校的名称:",i); scanf("%s",&sch[i].name); sch[i].score=0; sch[i].wscore=0; sch[i].mscore=0; sch[i].num=i;

12 } printf("请输入男子项目数和女子项目数: "); y=0; while(1) {

} for(i=1;i<=m+w;i++) {

scanf("%d%d",&m,&w); if(m<=20&&m>=1&&w<=20&&w>=1)y=1; if(y)break; else printf("输入错误,请重新输入: "); printf("请输入第%d个项目的名称:",i); scanf("%s",& p[i].name); while(1) {

} printf("请输入第%d个项目的前%d名的学校编号: ",i,p[i].s); if(p[i].s==5) {

} else { for(j=1;j<=5&&j<=n;j++)

13 printf("请输入第%d个项目选取的名次:",i); scanf("%d",& p[i].s); if(p[i].s==3||p[i].s==5)break; else printf("输入错误,请重新输入: "); for(j=1;j<=5&&j<=n;j++) {

} y=0; while(1) {

} p[i].snum[j]=x; sch[x].score+=integral1[j-1]; if(i<=m)sch[x].mscore+=integral1[j-1]; else sch[x].wscore+=integral1[j-1];

scanf("%d",&x); if(x>=1&&x<=n)y=1; if(y)break;

else printf("输入错误,请重新输入: ");

}

} {

} y=0; while(1) {

} p[i].snum[j]=x; sch[x].score+=integral2[j-1]; if(i<=m)sch[x].mscore+=integral2[j-1]; else sch[x].wscore+=integral2[j-1];

scanf("%d",&x); if(x>=1&&x<=n)y=1; if(y)break;

else printf("输入错误,请重新输入: "); fp=fopen("运动会分数统计.txt","wb"); fprintf(fp,"编号 学校名称 总分 男子总分 女子总分 "); for(i=1;i<=n;i++) {

fprintf(fp," %d%10s%7d%7d%7d ",sch[i].num,sch[i].name,sch[i].score, sch[i].mscore,sch[i].wscore); } fclose(fp); } void bianhao() //按编号排序 { int i,j; school t; for(i=0;i

} printf(" 按编号排列: "); printf("编号 学校名称 总分 男子总分 女子总分 "); for(i=1;i<=n;i++)

printf(" %d%10s%7d%7d%7d ",sch[i].num,sch[i].name,sch[i].score, sch[i].mscore,sch[i].wscore);

14 for(j=i;j

if(sch[i].num>sch[j].num) { } t=sch[i];sch[i]=sch[j];sch[j]=t; } void zongfen() //按学校总分排序 { int i,j; school t; for(i=1;i

} printf(" 按学校总分排列: "); printf("编号 学校名称 总分 男子总分 女子总分 "); for(i=1;i<=n;i++)

printf(" %d%10s%7d%7d%7d ",sch[i].num,sch[i].name,sch[i].score, sch[i].mscore,sch[i].wscore); }

void malezf() //按学校男总分排序 { int i,j; school t; for(i=1;i

} printf(" 按学校男子总分排列: "); printf("编号 学校名称 总分 男子总分 女子总分 "); for(i=1;i<=n;i++)

printf(" %d%10s%7d%7d%7d ",sch[i].num,sch[i].name,sch[i].score, sch[i].mscore,sch[i].wscore); } void femalezf() //按学校女总分排序 {

15 for(j=i;j<=n;j++)

if(sch[i].score

} t=sch[i]; sch[i]=sch[j]; sch[j]=t; for(j=i;j<=n;j++)

if(sch[i].mscore

} printf(" 按学校女子总分排列: "); printf("编号 学校名称 总分 男子总分 女子总分 "); for(i=1;i<=n;i++)

printf(" %d%10s%7d%7d%7d ",sch[i].num,sch[i].name,sch[i].score, sch[i].mscore,sch[i].wscore); printf(" "); } void cxsch() //查询某个学校成绩 { int i,y,s; printf("输入需要查询的学校编号:"); y=0; while(1) {

} printf("该学校相关信息: "); printf("编号 学校名称 总分 男子总分 女子总分 "); for(i=1;i<=n;i++) {

} printf(" "); }

16 for(j=i;j<=n;j++)

if(sch[i].wscore=1&&s<=n)y=1; if(y)break; else printf("输入数据有误,请重新输入:"); if(sch[i].num==s) {

} printf(" %d%10s%7d%7d%7d ",sch[i].num,sch[i].name, sch[i].score,sch[i].mscore,sch[i].wscore); break;

void cxxm() //查询某个项目成绩 { int i,y,s; printf("输入需要查询的项目编号:"); y=0; while(1) {

} printf("%s前5名学校编号及名称为 ",p[s].name); printf("名次 编号 学校名称 "); for(i=1;i<=5;i++)

}

void main() { input(); int z; while(1) {

scanf("%d",&s); if(s>=1&&s<=n)y=1; if(y)break; else printf("输入数据有误,请重新输入:"); printf(" %d%6d%10s ",i,p[s].snum[i],sch[ p[s].snum[i] ].name); printf(" "); printf(" 请选择: "); printf("1.按学校编号排序 "); printf("2.按学校总分排序 "); printf("3.按学校男总分排序 "); printf("4.按学校女总分排序 "); printf("5.查询某个学校成绩 "); printf("6.查询某个项目成绩 "); printf("7.退出 "); scanf("%d",&z); switch(z) { case 1: bianhao(); break; case 2:zongfen(); break; case 3:malezf(); break; case 4:femalezf(); break; case 5:cxsch(); break; case 6:cxxm(); break;

case 7: exit(0); break; default :printf("输入错误,请重新输入! ");

} } }

内容二:

#include void main() { int i,j,a; printf("正面向上的牌有: "); for(i=1;i<=52;i++) {

a=1;

for(j=2;j<=52;j++)

{

if(i%j==0)

a=-a;

}

if(a==1)

{

printf("%d ",i);

} } }

内容三:

#include #include #include #include #define ID struct id struct id { char name[20]; int num; char sex[2]; int age; int a; int b; int c; int sum;

18 double ave; int min; int max; ID *next; }stu[100]; int pc=1; FILE *fp; int asum=0,bsum=0,csum=0; int amax=0,bmax=0,cmax=0; int amin=100,bmin=100,cmin=100; float aave,bave,cave;

void print(ID *head)//显示记录 { ID *p; p=head; int temp; printf("显示结果是: "); printf("学号 姓名 性别 年龄 语文 数学 英语 总成绩 平均成绩 最高分 最低分 "); if(head!=NULL) {

} printf("总体成绩: "); printf("语文的总成绩是%4d 平均成绩是%5.2f 最高分是%3d 最低分是%3d ",asum,aave,amax,amin); printf("数学的总成绩是%4d 平均成绩是%5.2f 最高分是%3d 最低分是%3d ",bsum,bave,bmax,bmin); printf("英语的总成绩是%4d 平均成绩是%5.2f 最高分是%3d 最低分是%3d ",csum,cave,cmax,cmin); }

ID *insert(ID *head) //添加记录 { ID *sort(ID *head); ID *temp,*p1,*p2,*p;

19 do {

} while(p!=NULL); printf("%3d%5s%5s%5d%5d%5d%5d%6d%9.2f%7d%7d ",p->num, p=p->next; p->name,p->sex, p->age,p->a,p->b,p->c,p->sum,p->ave,p->max,p->min); int t; p=head; printf("插入操作开始!!! "); temp=(ID *)malloc(sizeof(ID)); printf("请输入学生的学号: ");scanf("%d",&temp->num); printf("请输入学生的姓名: ");scanf("%s",&temp->name); printf("请输入学生的性别: ");scanf("%s",&temp->sex); printf("请输入学生的年龄: ");scanf("%d",&temp->age); printf("请输入学生的语文成绩: ");scanf("%d",&temp->a); printf("请输入学生的数学成绩: ");scanf("%d",&temp->b); printf("请输入学生的英语成绩: ");scanf("%d",&temp->c); temp->sum=temp->a+temp->b+temp->c; temp->ave=(temp->sum)/3.0; temp->min=((temp->ab)?temp->a:temp->b)c?((temp->ab)?temp->a:temp->b):temp->c; temp->max=((temp->a>temp->b)?temp->a:temp->b)>temp->c?((temp->a>temp->b)?temp->a:temp->b):temp->c;

if (head==NULL) {

} else {

head=temp; temp->next=NULL; p1=head; p2=p1; p1=p1->next; p2->next=temp; temp->next=p1; p=head; do {

asum=asum+p->a; bsum=bsum+p->b; csum=csum+p->c; if(amin > p->a) {

} if(amax < p->a) {

20 t=amin; amin=p->a;

}

} t=amax; amax=p->a; if(bmin > p->b) {

} if(bmax < p->b) {

} if(cmin > p->c) {

} if(cmax < p->c) {

} p=p->next; t=cmax; cmax=p->c; t=cmin; cmin=p->c; t=bmax; bmax=p->b; t=bmin; bmin=p->b; while(p!=NULL); aave=float(asum/pc); bave=float(bsum/pc); cave=float(csum/pc); } printf("添加成功!!"); pc++; return (head); }

ID *search(ID *head) //查找记录 { ID *p1,*p2; int str; printf("请输入要查找的学生的学号:"); scanf("%d",&str); p1=head; while(str!=p1->num && p1!=NULL)

21 {

} if(str==p1->num) {

} else

}

ID *sort(ID *head)//排序 { int temp; char str[100]; double dbl; ID *p1,*p2; for(p1=head;p1!=NULL;p1=p1->next) {

p2=p1; p1=p1->next; printf("学生的学号:%d ",p1->num); printf("学生的姓名:%s ",p1->name); printf("学生的性别:%s ",p1->sex); printf("学生的年龄:%d ",p1->age); printf("学生的语文成绩:%d ",p1->a); printf("学生的数学成绩:%d ",p1->b); printf("学生的外语成绩:%d ",p1->c); printf("学生的总成绩:%d ",p1->sum); printf("学生的平均成绩:%.2lf ",p1->ave); printf("学生的最高分:%d ",p1->max); printf("学生的最低分:%d ",p1->min); printf("没有找到记录"); return head; for(p2=p1->next;p2!=NULL;p2=p2->next) {

if(p1->aveave) {

temp=p1->num; p1->num=p2->num; p2->num=temp; strcpy(str,p1->name); strcpy(p1->name,p2->name); strcpy(p2->name,str); temp=p1->a; p1->a=p2->a;

22

}

}

} p2->a=temp; temp=p1->b; p1->b=p2->b; p2->b=temp; temp=p1->c; p1->c=p2->c; p2->c=temp; dbl=p1->ave; p1->ave=p2->ave; p2->ave=dbl; printf("排序成功!!! "); return (head); }

ID *delet(ID *head) //删除记录 { ID *p1,*p2; int num; printf("请输入要删除的学生的学号:"); scanf("%d",&num); p1=head; if (head==NULL) {

} while(num!=p1->num && p1!=NULL) {

} if(num==p1->num) {

}

23 printf("没有记录 "); goto end; p2=p1; p1=p1->next; if (p1==head) head=p1->next; p2->next=p1->next; else printf("删除成功!!! "); pc--; else

}

ID *amend(ID *head)//修改信息 { ID *p; p=head; int findmess; if(!head) {

} printf("请你输入要修改的学生学号:"); scanf("%d",&findmess); while(findmess!=p->num) {

} if(p) {

printf("请你输入新学号(原来是%d):",p->num); scanf("%d",&p->num); printf("请你输入新姓名(原来是%s):",p->name); scanf("%s",&p->name); getchar(); printf("请你输入新性别(原来是%s):",p->sex); scanf("%s",&p->sex); printf("请你输入新年龄(原来是%d):",p->age); scanf("%d",&p->age); printf("请你输入新的语文成绩(原来是%d分):",p->a); scanf("%d",&p->a); getchar(); printf("请你输入新的数学成绩(原来是%d分):",p->b); scanf("%d",&p->b); getchar(); printf("请你输入新的英语成绩(原来是%d分):",p->c); scanf("%d",&p->c); p->sum=(p->a+p->b+p->c); p->ave=p->sum/3.0; p++; printf(" =====>提示:没有资料可以修改! "); exit(0); printf("没有这个记录"); end:return head; p->min=((p->ab)?p->a:p->b)c?((p->ab)?p->a:p->b):p->c;

24 p->max=((p->a>p->b)?p->a:p->b)>p->c?((p->a>p->b)?p->a:p->b):p->c;

} else {

} }

ID *breaksys(ID *head) { ID *p; p=head; fp=fopen("学生成绩管理.txt","a+"); fprintf(fp,"学号 姓名 性别 年龄 语文 数学 英语 总成绩 平均成绩 最高分 最低分 "); while(p->next!=NULL) {

} fclose(fp); return(head); } void main() { ID *head=NULL; int choise; printf(" * * * * * 信息管理与系统开发设计综合模拟实习 * * * * * "); printf(" "); while(1) {

printf(" 提示:资料修改成功! "); return (head); printf("没有这个学号!"); fprintf(fp,"%3d%5s%5s%5d%5d%5d%5d%5d%5d%5d%5d ",p->num, p++; p->name,p->sex, p->age,p->a,p->b,p->c,p->sum,p->ave,p->max,p->min); printf(" 学生信息管理系统 "); printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "); printf(" 1 . 浏 览 学 生 信 息 "); printf(" 2 . 添 加 学 生 信 息 "); printf(" 3 . 删 除 学 生 信 息 "); printf(" 4 . 查 找 学 生 信 息 "); printf(" 5 . 修 改 学 生 信 息 "); printf(" 6 . 学 生 成 绩 排 序 "); printf(" 0 . 退 出 系 统 ");

25

} } printf(" "); printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "); printf("请选择(0-6):"); scanf("%d",&choise); switch(choise) { case 1: print(head); break; case 2: head=insert(head); break; case 3: head=delet(head); break; case 4: head=search(head); break; case 5: head=amend(head);break; case 6: head=sort(head); break; case 0: breaksys(head);exit(0); break; default :printf("输入错误,请重新输入! "); }

六、程序运行、调试和结果分析

1.程序运行中出现的问题及调试手段

在调试过程中出现了比较多的错误,也耗费了大量的时间和精力修改。 在运行程序一是出现了图6.1问题。经过检查发现问题出现在代码printf("%d%s%d%d%d",sch[i].num,sch[i].name,sch[i].score,sch[i].male,sch[i]. female)上,并且是sch[i].name出现了问题。由此发现了在结构体中name定义为string name,改为char name[15]后,程序可以正常运行。

26

图6.1 应用程序错误

在运行程序三时,储存的文件中出现乱码,经过检查发现储存的数据的格式不对导致出现乱码。修改以后,这个问题就解决了。

2.程序运行结果分析 内容一 (1)输入数据

27

图6.2输入数据

(2)选择操作

28

图6.3主界面

图6.4 按编号排列

29

图6.5 按学校总分排列

图6.6按学校男子总分排列

30

图6.6按学校查询

图6.7按项目查询

31

储存文件中的数据如下

图6.8 存储的数据

内容二

图6.9 运行结果

内容三

(1)程序主界面

图6.10 程序主界面

32

(2)选择操作

图6.11 添加学生信息

图6.12 浏览学生信息

图6.13 删除学生信息

图6.14 删除3号信息后的结果

33

图6.15 查找学生信息

图6.16 删除学生信息

图6.17 学生排序

图6.18排序后的学生信息

图6.19退出系统

34

七、实习总结

通过这次模拟实习,我的C语言编程的能力有了很大的提高,特别是在指针、数组、函数和结构体方面,还学习了课本没有讲到的知识,学会了使用模块化编程的简单方法,另外在对话框的编程要求美观、方面也有了体会。

指针是C语言的灵魂,它在本次实习也起到了非常大的作用,本次实习在使用指针过程中对指针进行了简化也是一个“亮点”,它使程序变得通俗易懂,也降低了程序的难度。以后要对这种方法进行深刻的体会。

数组在程序中有着很重要的作用,对数据的贮存、输入、读取起着很重要的作用,本程序几乎所有数据都以数组进行输入、贮存、读取方便了对数据的处理和输入,数组的的使用在本程序中有很大的好处。

函数是实现模块化编程的基础,它使程序变得方面易懂,对修改起了很大作用,也降低了编程的难度,一个函数就是一个功能,它使各个功能之间有了一定的独立性,一个函数的错误,不会导致整个程序的失败(主函数除外),对函数的良好应用时在本程序中又以深刻的体会。也有了很大提高。

结构体的使用,为本次实习提供了很大方便,同时提高了本程序的可读性,结构数组方便了对数据的管理。

文件的读取与存贮使数据可以保存下来,这也是在以前的学习过程中没有掌握的内容,在开始时遇到了不小的困难。

另外,感觉到自己能编写的程序都非常的简短,系统性也不强。我还需要在编程方面进一步提高。

从这次编程序的过程中,我学到了编程所必须具备的专业技能,更领会编译程序所需要的细心和耐心。同时也提高了自己对编程的兴趣,使自己对编程有了更深的理解,体会到编程的乐趣。

35

第四篇:C语言机票订票管理系统源代码

#include //标准输入、输出头文件 #include //包含字符串函数处理头文件 #include //包含access函数的头文件 #include #include #include #include #define N 9999

//定义最多的航班数 #define PRINT "%d %s %s 星",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count

//宏定义输出格式

struct air

{ int num;

char start[20]; char over[20]; char time[10]; int count;

}s[N];

int i,a,m=0; char ii[10]; //定义结构体数组

//定义航班号 //航班起始站

//终点站

//飞行时间

//机票数量

期%s %d //定义全局变量

void add(); //函数声明增加航班信息函数

void print();

//显示航班信息 void search(); //查找航班信息 void dingpiao(); //订票业务 void tuipiao(); //退票 void read(); //读取文件

void save(); //保存文件 void output(); //输出格式 void paixu(); //航班排序 void chushihua(); //系统初始化 void build(); //建立数据文件 void paixu1(); //按航班号从小到大排序 void paixu2(); //从大到小 int head (); //进入订票系统

int main() //主函数 { int j;

system("color b0"); chushihua(); //系统初始化判断是否存在原始数据文件

system("cls");

head(); //打印出系统主界面

system("cls"); do {

printf("================================== ");

printf("1.增加航班信息 "

" 2.浏览航班信息 "

" 3.查找航班信息(按航班号) "

" 4.航班排序(按航班号) "

" 5.订票业务 "

" 6.退票业务 "

" 0.退出 "); printf("================================== ");

printf("请在0-6中选择以回车键结束: "); scanf("%d",&j); switch(j) {

}

case 1: add(); system("cls");

break;

//调用增加航班函数

case 2:print(); system("cls");//调用显示模块

break; case 3:search();system("cls"); //调用查找模块

break; case 4:paixu(); system("cls"); //调用排序函数

break; case 5:dingpiao();system("cls"); break;

//调用订票模块

case 6:tuipiao();system("cls"); //调用退票模块

break;

case 0:

//退出系统

save();system("cls");

printf(" 谢谢使用,再见! ");

printf(" ");

break; } }while(j!=0); //判断是否调用其他函数

void chushihua() //定义系统初始化函数 { if(access("hangban.dat",0)) {

build(); } else

read(); }

void build() {

//定义建立数据文件函数

FILE *fp; //定义文件指针

if((fp=fopen("hangban.dat","wb"))==NULL) {

//打开文件并判定是否出错

printf("创建文件失败! "); //打印出错提示

getchar(); return; } printf("请依次输入航班信息(以回车键结束): ");

//打印提示信息 printf("------------ "); for(i=0;i

printf("请输入航班号: ");

scanf("%d",&s[i].num); //输入航班号 printf("请输入起始站: "); scanf("%s",s[i].start); //输入起始站 printf("请输入终点站: "); scanf("%s",s[i].over); //输入终点站 printf("请输入时间(星期几): "); scanf("%s",s[i].time); //输入时间 printf("请输入机票数: "); scanf("%d",&s[i].count); //输入机票数 fwrite(&s[i],sizeof(struct air),1,fp); m++; printf("添加完毕,是否继续添加?请键入y或n以回车键结束:"); scanf("%s",ii); if(strcmp(ii,"y")!=0) //判断是否继续添加航班信息 { fclose(fp);

//关闭文件

return; } } }

void read()

//定义读取文件函数 { FILE *fp; if((fp=fopen("hangban.dat","r"))==NULL) {

} printf("创建文件失败! "); getchar(); return; } i=0; while(!feof(fp)) { fread(&s[i],sizeof(struct air),1,fp);

i++; m++; //计算存在航班数 } m--; fclose(fp); printf("请稍候,正在初始化"); for(a=0;a<3;a++) {

printf(".");

Sleep(600); } printf(" ");

//逐块读取数据

void save() //定义保存函数 { FILE *fp; if((fp=fopen("hangban.dat","wb"))==NULL)

{

printf("创建文件失败! "); getchar(); return; } for(i=0;i

//逐块保存数据

fwrite(&s[i],sizeof(struct air),1,fp); fclose(fp); printf("正在保存数据并退出"); for(a=0;a<3;a++)

} {

printf(".");

Sleep(600); } printf(" "); printf(" "); void add() { do{

//定义增加航班信息函数

printf("请依次输入您要增加的航班信息(以回车键结束): ");

//打印提示信printf("------------ ");

printf("请输入航班号: ");

scanf("%d",&s[m].num); //读取航班号 printf("请输入起始站: "); scanf("%s",s[m].start); //读取起始站 printf("请输入终点站: "); scanf("%s",s[m].over); //读取终点站 printf("请输入时间(星期几): "); scanf("%s",s[m].time); //读取时间 printf("请输入机票数: "); scanf("%d",&s[m].count); //读取机票数 m++;

printf("添加完毕,是否继续添加?请键入y或n以回车键结束:");

scanf("%s",ii); }while(!strcmp(ii,"y")); //判断是否继续添加

printf("正在保存,请稍候"); for(a=0;a<5;a++)

{

printf(".");

Sleep(600);

}

printf(" "); }

void output() //定义输出格式函数 {

printf("航班号 起始站 终点站 时间 机票数 "); //信息标题

for(i=0;i

} printf(PRINT);//打印出信息

void print() //定义显示航班信息函数 { printf("正在加载,请稍候");

for(a=0;a<5;a++)

{

printf(".");

Sleep(400);

}

printf(" ");

system("cls"); printf(" 目前我们有如下航班: "); output();

//调用输出格式函数

printf(" 请按回车键返回上层菜单 "); getchar(); getchar(); }

void search() //定义查询函数 { int n;

do {

printf(" 请输入航班号: ");

scanf("%d",&n); //输入查询的航班号

printf("正在查询");

for(a=0;a<5;a++)

{

printf(".");

Sleep(400);

}

printf(" ");

for(i=0;i

{

if(s[i].num==n)//按航班号判定输出条件

{

printf(" 您所查找的航班信息为: ");

printf("航班号 起始站 终点站 时间 机票数 ");

printf(PRINT); //显示信息

printf(" 查询完毕,按回车键继续");

getchar();

getchar();

return;

} } printf(" 对不起,没有您需要的信息! "); printf("是否重新查找?请键入y或n以回车键结束 "); scanf("%s",ii); }while(!strcmp(ii,"y"));//判定是否重新查找

}

void dingpiao() //定义订票业务函数 { int n,x; char a[10]="y"; do {

search(); //调用查询模块

if(!strcmp(ii,"n"))

{

printf("对不起!没有找到您所需要的航班,所以不能订票。 "); 所需航班

printf(" 请按回车键返回上层菜单 ");

getchar();

getchar();

strcpy(ii,"n");

break;

}

do

{

printf("请输入您要订的机票数(以回车键结束): ");

scanf("%d",&n); //输入所订机票数

printf("请稍候,正在订票");

for(x=0;x<3;x++)

{

printf(".");

Sleep(600);

}

printf(" ");

if(n<=0)

//判定机票数是否出错

//未查找到

{ printf("输入错误!至少需订1张机票。 "); } else if(s[i].count==0)//判定机票是否售完 {

} printf("对不起,你所选择的航班的机票已售完! "); break; else if(s[i].count!=0&&s[i].count>=n) //判定机票数是否大于等于订票数 { s[i].count=s[i].count-n; printf("订票成功! "); break; } else if(s[i].count

printf("对不起,你所选择的航班只剩 %d张机票 ", s[i].count);

printf("是否需要重新输入机票数? 请输入y或n以回车键结束: ");//判定是否重新输入订票数

scanf("%s",a);

}

printf("请稍候,正在订票");

for(x=0;x<3;x++)

{

printf(".");

Sleep(600);

}

printf(" ");

} }while(!strcmp(a,"y")); printf("是否需要订其他航班的机票? 请输入y或n以回车键结束: "); scanf("%s",a); }while(!strcmp(a,"y")); //判定是否继续订票

void tuipiao() //定义退票函数 { int n,x; char a[10]; do {

search(); //调用查询函数

if(!strcmp(ii,"n"))

{

printf("对不起!没有找到您所需要的航班,所以不能退票。 "); printf(" 请按回车键返回上层菜单 "); getchar(); getchar(); strcpy(ii,"n"); break; } printf("请输入您要退的机票数目: "); scanf("%d",&n);

//输入所退票数 printf("请稍候,正在退票"); for(x=0;x<3;x++) {

printf(".");

Sleep(600); } printf(" "); if(n<=0)

//判定票数是否有效

printf("输入错误!至少需退1张机票。 "); else { s[i].count=s[i].count+n; printf("退票成功! "); }

printf("是否继续? 请键入y或n以回车键结束: "); scanf("%s",a);

//判定是否继续退票

}while(!strcmp(a,"y")); //判定并跳出循环

}

void paixu() //定义排序函数 { int n;

printf(" ******************************************************************************** ");

printf("1.按航班号从小到大排序 "

" 2.按航班号从大到小排序 "); printf("******************************************************************************** ");

printf("请在1-2中选择以回车键结束: "); scanf("%d",&n); //输入排序方式

switch(n) {

case 1:paixu1();//调用从小到大排序函数

break;

case 2:paixu2();//调用从大到小排序函数

break; } printf("排序后的航班信息为: "); output();

//显示排序后航班信息

printf(" 请按回车键返回上层菜单 ");

getchar(); getchar(); /*for(a=0;a<5;a++)

{

printf(".");

Sleep(400);

}

printf(" ");*/ }

void paixu1() //定义从小到大排序函数 { int k,j; struct air t; for(i=0;i

{

k=i;

for(j=i+1;j

if(s[k].num>s[j].num)

k=j;

if(i!=k)

{

t=s[k];

s[k]=s[i];

s[i]=t;

} } printf("正在排序,请稍后");

for(a=0;a<5;a++)

{

printf(".");

Sleep(400);

}

printf(" "); }

void paixu2() //定义从大到小排序函数 { int k,j; struct air t; for(i=0;i

k=i;

for(j=i+1;j

if(s[k].num

k=j;

if(i!=k)

{

t=s[k];

s[k]=s[i];

s[i]=t;

} } printf("正在排序,请稍后");

for(a=0;a<5;a++) {

printf(".");

Sleep(400); } printf(" "); }

int head ()

//进入订票系统

{ printf("=================== "); printf("*

* ");

printf("*

欢迎使用机票订票管理系统

* "); printf("*

* "); printf("*

此处可以适当的加点文字

* "); printf("*

* "); printf("=================== "); printf("请按回车键进入界面"); getchar(); printf("正在进入系统选项"); for(a=0;a<3;a++) { printf("."); Sleep(600);

} } printf(" "); return 0;

第五篇:C语言课程设计学生成绩管理系统个人总结

C语言课程设计——学生成绩管理系统

个人心得体会

(徐州工程学院 14计嵌1班 07组 张凯)

这一周以来的课程设计,不仅让我明白了C语言的确是一门很有用的,但是又是不容易的一门课程。起初刚开始做课程设计时,以为这个课程设计不会有多难,只不过是把多个函数组合起来就好了,但是,经过这一星期的编程,发现要完完整整把程序按照要求编出来是一件很不容易的事情。然而在这一周以来的学习中,也对C语言这门课程有了更加的了解和学习。

在整个编程的过程中,可以说遇到了很多难题,但是让我印象最深刻的是在编写从某文件中读取学生信息这个程序时所遇到的困难。起初,程序时编写出来了,在组建时也没有错误,但是就是实现不了这个功能,接着就是整整一天的苦战;终于,能够读取文件中的信息了,可是,新问题又来了,在显示读取的信息时出现了乱序。另外在编写加密代码的时候竟然忘记了将其放在主函数中运行闹了笑话,在指导老师的帮助下最后解决了这个问题。

每天看到一行行代码着实有时让人头大。然而在这个程序完整地编写下来,我觉得编写程序需要很大的耐心,一个稍微大点的程序就有个几百甚至上千行,没有耐心是很难做得成功的。当然细心也很需要,在编程的过程中有很多错误都是自己的粗心造成的,有时甚至自己多次检查都看不出来,这样一来,会造成时间的大量浪费。

这次的课程设计也是一次很好的对自我的检查。它让我知道了自己在C语言的学习上还不够认真刻苦,很多知识点还是没有很好的掌握,甚至有些知识点很生疏,这也许就是我在编写从某文件中读取学生信息这一函数时老碰壁的原因所在!从这一点上来看,发现我对待学习的态度还不够端正,有待加强。

不管怎么说,经过这一次课程设计,在C语言方面的收获最大,让我读代码的能力大大提升了不少,也巩固了很多知识。同时也受到了指导老师刘云、邹文辉的细心指导,非常感谢!

上一篇:发改局工作总结下一篇:党风廉政建设制度

本站热搜