C语言课程设计报告选课管理系统文档格式.docx

上传人:b****5 文档编号:16958956 上传时间:2022-11-27 格式:DOCX 页数:15 大小:50.24KB
下载 相关 举报
C语言课程设计报告选课管理系统文档格式.docx_第1页
第1页 / 共15页
C语言课程设计报告选课管理系统文档格式.docx_第2页
第2页 / 共15页
C语言课程设计报告选课管理系统文档格式.docx_第3页
第3页 / 共15页
C语言课程设计报告选课管理系统文档格式.docx_第4页
第4页 / 共15页
C语言课程设计报告选课管理系统文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C语言课程设计报告选课管理系统文档格式.docx

《C语言课程设计报告选课管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告选课管理系统文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

C语言课程设计报告选课管理系统文档格式.docx

stdlib.h>

#defineM20

#defineN100

intx;

//x为供选课程数

/*****主主菜单函数开始*****/

voidmenu()

{intn,w;

voidenter_linformation();

voidbrowse_linformation();

voidenter_sinformation();

voidsearch_num();

voidsearch_score();

voidl_choice_num();

do

{

puts("

\t\t*******************MENU******************\n\n"

);

\t\t\t\t1.课程信息录入"

\t\t\t\t2.学生选课信息录入"

\t\t\t\t3.课程信息浏览"

\t\t\t\t4.按课程号查询"

\t\t\t\t5.按学分查询"

\t\t\t\t6.某门课程学生选修情况"

\t\t\t\t7.退出"

\n\n\t\t*****************************************\n"

printf("

Choiceyournumber(1-7):

[]\b\b"

scanf("

%d"

&

n);

if(n<

1||n>

7)

w=1;

getchar();

}

elsew=0;

while(w==1);

switch(n)

case1:

enter_linformation();

break;

//课程信息录入

case2:

enter_sinformation();

//学生选课信息录入

case3:

browse_linformation();

//课程信息浏览

case4:

search_num();

//按课程号查询

case5:

search_score();

//按学分查询

case6:

l_choice_num();

//某门课程学生选修情况

case7:

exit(0);

//退出

voidmain()

menu();

}

/*****主函数结束*****/

structlesson

intnum;

//课程编号

charname[20];

//课程名称

charkind[10];

//课程性质

intstime;

//总学时

intttime;

//授课学时

intetime;

//实验或上机学时

intscore;

//学分

intterm;

//开课学期

intchoice_num;

//选修该课的学生人数

}les[M];

//les[M]中每个数组元素对应一条课程信息

structstudent

intnumber;

//学号

intnum[20];

}stu[N];

//stu[n]中每个数组元素对应一条学生选课信息

voidprintf_face()//公共函数1:

显示数据结构项目函数

printf("

\n\tnumbernamekindstimeetimettimescoreterm\n"

voidprintf_one(inti)//公共函数2:

显示一个课程信息记录

{printf("

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

les[i].num,les[i].name,les[i].kind,les[i].stime,

les[i].ttime,les[i].etime,les[i].score,les[i].term);

//课程信息录入模块

voidl_input(inti)//输入一个记录到函数

{

scanf("

les[i].num);

%s"

les[i].name);

les[i].kind);

les[i].stime);

les[i].ttime);

les[i].etime);

les[i].score);

les[i].term);

l_save(intn)//保存课程信息到文件函数

FILE*fp;

inti;

if((fp=fopen("

lesrecord.txt"

"

wb"

))==NULL)

{

printf("

\nCannotopenfile\n"

returnNULL;

}

for(i=0;

i<

n;

i++)

fprintf(fp,"

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

fclose(fp);

voidenter_linformation()//课程信息录入函数

inti,m,k,w1;

总共多少门课(0-%d)?

"

M-1);

m);

printf_face();

m;

\n请输入第%d条课程信息\n"

i+1);

l_input(i);

//调用输入函数

if(i!

=0)l_save(m);

//调用保存函数

请选择下一步操作:

<

1>

返回继续录入课程信息<

2>

回到主菜单<

3>

退出程序[]\b\b"

k);

if(k<

1||k>

3)

w1=1;

elsew1=0;

while(w1==1);

switch(k)

case1:

case2:

case3:

//课程信息浏览模块

voidbrowse_linformation()//课程信息浏览函数

{intk,w1;

intload_lesson();

voidprintf_n(intn);

x=load_lesson();

//从文件读入课程信息

printf_n(x);

//显示课程信息

2)

///////////////

intload_lesson()//加载课程信息记录并可以计算记录个数

{FILE*fp;

inti;

if((fp=fopen("

r"

{printf("

\ncannotopenfile\n"

return0;

for(i=0;

!

feof(fp);

fscanf(fp,"

%d%s%s%d%d%d%d%d"

les[i].num,&

les[i].name,&

les[i].kind,&

les[i].stime,

&

les[i].ttime,&

les[i].etime,&

les[i].score,&

fclose(fp);

return(i);

voidprintf_n(intx)//显示所有课程信息记录

{intj;

for(j=0;

j<

x;

j++)

{if(j%10==0)

\n\npassanykeytocontinue>

..."

getchar();

\n\n"

printf_one(j);

}getchar();

//选课信息录入模块

voidenter_sinformation()//学生选课信息录入函数

voids_input(inti);

inti,n,k,w1;

\n总共有多少学生(0-%d)?

:

N-1);

{printf("

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

\n"

s_input(i);

<

返回继续录入选课信息<

voids_input(inti)//输入一个记录到函数

intj,k,m,n,w1,total=0;

stu[i].number);

\n你想选多少门课[]\b\b"

现在输入课程编号,依次用空格隔开!

for(j=0;

scanf("

stu[i].num[j]);

for(k=0;

k<

k++)

if(les[k].num==stu[i].num[j])

{total+=les[k].score;

les[k].choice_num++;

}

if(total<

60)

警告:

你所选课程总学分不到60!

返回重新录入选课信息<

if(n<

{

}

switch(n)

请重新输入你的学号:

s_input(i);

};

voiddele()//删除模块

inti,j,num;

chara[8],b;

system("

cls"

请输入删除的姓名:

gets(a);

num;

if(strcmp(stu[i].name,a)==0)break;

for(j=i;

stu[i]=stu[i+1];

num--;

是否继续删除(y/n)?

b=getchar();

if(b=='

y'

dele();

else

{menu();

//按课程号查询模块

//按课程号查询函数

voidsearch_num()

inti,k,flag=0,w1;

structlessons;

\n\n输入你要查询的课程编号:

s.num);

load_lesson();

if(s.num==les[i].num)

{flag=1;

printf_one(i);

if(flag==1)

Found!

else

Notfound!

返回继续查找课程信息<

//按学分查询模块

//按学分查询函数

voidsearch_score()

intmark;

\n\n输入你要查询的课程学分:

mark);

if(mark==les[i].score)

//某门课程学生选修情况查询模块

voidl_choice_num()

inti,k,flag=0,w1;

选修这门课的总人数为:

%d\n"

les[i].choice_num);

实验总结:

1、实验中应多注意指针、数组、动态链表以及结构体类型的搭配和使用。

2、实验中各模块看似简单,但应注意其之间的搭配灵活的使用。

 

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

当前位置:首页 > 小学教育 > 数学

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

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