C语言程序设计实验课程设计结果汇报Word文件下载.docx

上传人:b****5 文档编号:17760397 上传时间:2022-12-09 格式:DOCX 页数:25 大小:323.04KB
下载 相关 举报
C语言程序设计实验课程设计结果汇报Word文件下载.docx_第1页
第1页 / 共25页
C语言程序设计实验课程设计结果汇报Word文件下载.docx_第2页
第2页 / 共25页
C语言程序设计实验课程设计结果汇报Word文件下载.docx_第3页
第3页 / 共25页
C语言程序设计实验课程设计结果汇报Word文件下载.docx_第4页
第4页 / 共25页
C语言程序设计实验课程设计结果汇报Word文件下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C语言程序设计实验课程设计结果汇报Word文件下载.docx

《C语言程序设计实验课程设计结果汇报Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验课程设计结果汇报Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。

C语言程序设计实验课程设计结果汇报Word文件下载.docx

3、查询功能:

按条件(班级、学号、姓名)显示学生的上机时间。

4、机器使用情况的显示(显示方式不限但要一目了然)

模块二:

程序分析

说明分析思路:

概括:

总体上应该非为六个大部分,包括上机登陆,信息查询,计费查询,机器使用情况,登陆下机,退出系统

1.登陆上机:

学生信息包括学号,班级,姓名,还有上机时间,机器编号,机器使用情况等,应该采用结构体来含括并引用这些信息如:

Structstudent

{

Charnum;

Charname;

……..

}student[30];

并且结构体必须至少可以保存30个学生的信息;

2.信息查询,采用for循环以及dowhile语句嵌套使用,根据多种情况查询使用switch语句;

3.计费查询,通过获取系统时间,再与上机时间作比较,按每小时1元计费.(注意:

获取系统时间的程序从网上查询得知)

4.机器使用情况,模仿逻辑运算的知识,无人使用的机器可以标记为mark=0,反之则mark=1;

采用循环语句写较为方便,通过比较机器的标记mark的值,再用另外的变量来记录未使用的机器和已经在使用的机器

5.登陆下机,输入用户的信息即可

6.退出系统:

正在退出系统,感谢您的使用

模块三:

流程图如下:

CxStudent()函数流程图

模块四:

程序代码如下:

#include<

stdio.h>

time.h>

string.h>

Windows.h>

structstudent

charnum[15];

chartheClass[8];

charname[20];

charonTime[8];

intmark;

intno;

voidadd()

for(intm=0,x=0;

m<

30;

m++)

{

if(student[m].mark==0)

x++;

}

printf("

\n\t目前空闲可用的机器共有%d台,学生人数不能多于可用机器总数"

x);

intn,i;

\n请输入要上机的学生的总数:

"

);

for(i=0;

i<

10;

i++)

scanf("

%d"

&

n);

if(n>

x)

{

printf("

空闲机器不够用,请重新输入总数:

continue;

}

else

break;

inta[30];

i=0;

for(intf=0;

f<

f++)

if(student[f].mark==0)

a[i]=f;

i++;

if(i==n)

n;

i++)

printf("

\t请输入第%d个学生学号:

i+1);

do

scanf("

%s"

student[a[i]].num);

if(strlen(student[a[i]].num)!

=12)

{

printf("

输入学号出错,请重新输入:

m=31;

}

else

for(f=0;

f++)

{

if(a[i]==f)

f=f+1;

if(strcmp(student[a[i]].num,student[f].num)==0)

{

printf("

当前有此学号学生在上机,检查是否输入有误,重新输入:

m=31;

break;

}

else

m=32;

}

}while(m==31);

\t请输入第%d个学生班级:

student[a[i]].theClass);

if(strlen(student[a[i]].theClass)!

=7)

班级输入错误,请重新输入:

continue;

m=32;

\t请输入第%d个学生姓名:

scanf("

student[a[i]].name);

\t请输入第%d个学生上机时间(如08:

02,“:

”要用英文输入法输入):

student[a[i]].onTime);

if(strlen(student[a[i]].onTime)!

=5)

输入时间错误,请重新输入(如08:

”要用英文输入法输入):

elseif(student[a[i]].onTime[2]!

='

:

'

输入有误,请重新输入(如08:

elseif(student[a[i]].onTime[0]<

3'

if((student[a[i]].onTime[0]=='

2'

)&

&

(student[a[i]].onTime[1]>

))

printf("

02):

m=31;

continue;

elseif(student[a[i]].onTime[3]>

5'

else

m=32;

elseif(student[a[i]].onTime[0]>

student[a[i]].mark=1;

您已经成功输入%d个学生的信息"

//system("

cls"

}

voidsearchStudent()

inti=0,b,c,d;

m++)

if(student[m].mark==1)

a[i]=m;

do

charfind[20];

\n查询方式:

1.根据学号查询2.根据班级查询3.根据姓名查询\n请选择:

b);

if(b<

1||b>

3)

选择出错,请重新选择:

switch(b)

case1:

d=0;

\t请输入学生的学号:

find);

for(i=0;

x;

if(strcmp(student[a[i]].num,find)==0)

if(d==0)

\n学生姓名\t学生班级\t学生学号\t上机时间\t所用机号\n"

%s\t%s\t%s%s%d"

student[a[i]].name,student[a[i]].theClass,student[a[i]].num,student[a[i]].onTime,student[a[i]].no);

d++;

if(d==0)

\n提示:

没有这个学生\n"

\n\t1.继续查询\n\t0.返回主菜单"

\n\t请输入您的选择:

do

scanf("

c);

if(c<

0||c>

1)

}while(m==31);

case2:

\t请输入学生的班级:

if(strcmp(student[a[i]].theClass,find)==0)

if(d==0)

没有这个班的学生\n"

\n\t1.继续查询\n\t2.返回主菜单"

1||c>

2)

case3:

\t请输入学生的姓名:

if(strcmp(student[a[i]].name,find)==0)

default:

printf("

提示:

输入错误"

}while(c);

voidcalculate()

intfee;

chartimes[30];

time_trawtime;

structtm*timeinfo;

time(&

rawtime);

timeinfo=localtime(&

strcpy(times,asctime(timeinfo));

inti=0;

if(i==0)

当前没有学生在上机\n"

else

所有学生上机费用如下:

\n"

for(i=0;

%d号机\t学生:

\t%s\t%s"

student[a[i]].no,student[a[i]].num,student[a[i]].name);

if((student[a[i]].onTime[3]-48)*10+(student[a[i]].onTime[4]-48)>

(times[14]-48)*10+(times[15]-48))

fee=(times[11]-48)*10+times[12]-(student[a[i]].onTime[0]-48)*10-student[a[i]].onTime[1];

else

fee=(times[11]-48)*10+times[12]-(student[a[i]].onTime[0]-48)*10-student[a[i]].onTime[1]+1;

if(fee<

0)

\t费用为:

%d元\n"

fee+24);

elseprintf("

fee);

voidsearchPC()

intn,m=0;

\n目前可用的机器为:

for(inti=0;

if(student[i].mark==0)

n=student[i].no;

%d号\t"

n);

m++;

\n\t共%d台机器可用\n"

m);

voidOut()

charfind[10];

rawtime=time(NULL);

strftime(times,29,"

%H:

%M"

localtime(&

rawtime));

\n\t请输入要下机同学的学号:

if(strcmp(student[a[i]].num,find)==0)

(times[3]-48)*10+(times[4]-48))

fee=(times[0]-48)*10+times[1]-(student[a[i]].onTime[0]-48)*10-student[a[i]].onTime[1];

fee=(times[0]-48)*10+times[1]-(student[a[i]].onTime[0]-48)*10-student[a[i]].onTime[1]+1;

\n学生学号学生姓名所用机号上机时间下机时间费用\n"

%s%s%d%s%s%d\n"

student[a[i]].num,student[a[i]].name,student[a[i]].no,student[a[i]].onTime,times,fee);

student[a[i]].mark=0;

m=31;

//system("

if(m!

=31)

学号可能输入错误,找不到该生\n"

intmanu()

intd;

\t|-------------欢迎进入机房收费管理系统-------------|\n"

\t|您的操作已成功,请继续选择,可供选择的操作有:

|\n"

\t|1.登记上机2.学生查询|\n"

\t|3.计费查询4.机器使用情况|\n"

\t|5.下机登记6.退出系统|\n"

\t|--------------------------------------------------|\n"

\n\t请输入您的选择:

d);

if(d<

1||d>

6)

输入错误,请重新输入选择:

return(d);

voidchoice()

\n\t\t\t\t提示\n\t学生学号为12个字符(如012345671111)\n\t班级为七位数字(如:

1121813)\n\t姓名为20个字符(中英文均可)\n\t输入时间要用英文输入法,特别时间格式中的“:

”必须用英文输入如00:

00\n"

intquit=0;

student[i].mark=0;

student[i].no=i+1;

while(!

quit)

switch(manu())

add();

break;

searchStudent();

calculate();

case4:

searchPC();

case5:

Out();

case6:

\n\t正在退出系统\t谢谢使用\t再见\n"

quit=1;

voidmain()

{intch;

请自觉遵守校纪校规,严禁通宵上网\n"

同意,请按1,不同意请按2"

\n请选择"

ch);

system("

switch(ch)

case1:

choice();

break;

case2:

\t\t\t\t感谢您的使用,再见\n"

模块五:

实验心得:

通过此次试验,我认识到对于c语言这门课程的学习还存在着许多的问题,拿到一个程序,感觉到无法下手,这应该是我还是缺少足够的实践能力,无法将所学到的知识运用到实际的编程问题中,打个比方,int指的是整型常量,大家都应该知道,但是在编程中,往往会由于实际需求,数字的大小超过了int的最大数字,这就会导致了一些莫名的问题,而且呢这些问题往往很容易被我们所忽略,这样导致的问题往往比较难找到,找出并且将问题纠正,这样一来就导致了浪费时间,打击了自信心,认为自己很笨,以后也不敢下手去写程序,这样就形成了一个恶性循环,导致这门课程学的很差,甚至挂科,补考,重修,还是不过,后面的结果我就不说了。

所以了,我们应该敢于动手去写程序,这样才会发现问题,发现并改正问题,学到没有学过的或者忘记或者没有学好的知识,还能将所学的知识熟练地运用到实际编程中去,从中获得许多益处。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1