计算机综合大作业C语言选课系统Word下载.docx
《计算机综合大作业C语言选课系统Word下载.docx》由会员分享,可在线阅读,更多相关《计算机综合大作业C语言选课系统Word下载.docx(40页珍藏版)》请在冰豆网上搜索。
(四)退出系统。
2.界面设计和函数的使用
(1)main函数。
(2)check函数:
检验所输入的类别,用户名和密码是否正确。
(3)she【管理员函数】
管理员调用函数.add,del,edits:
管理员对用户进行添加,删除,编辑的操作。
(4)teacher【教师函数】
教师调用函数addkc;
kccxtea【kcxxtea,kccxtea1,kccxtea2,kccxtea3,】依次为教师添加课程,教师查询课程(包括查询全部课程,按照课程名称查询,按照课程性质查询,按照学分查询)
(5),student【学生函数】
学生调用函数
1查询课程函数kccx【kcxx,kccx1,kccx2,kccx3,】
学生查询课程(包括查询全部课程,按照课程名称查询,按照课程性质查询,按照学分查询)
2选课函数choose【调用choosexuanxiu】
且选修课学分加必修课学分不少于40分。
3退课函数tuixuan
学生只能对选修课进行退选,必修课不能退选。
登录界面
管理员界面
教师界面
录入课程界面
查询课程界面
退出系统界面
学生界面
主界面
查询界面
选课界面
查询退课界面
退课界面
3.成员分工
:
choose,choosexuanxiu,tuixuan,cxxx,addkc函数。
:
kccx,kccxtea,kccx2,kccx2tea,kccx3,kcxs函数。
kccx1,kccx1tea,kcxs,kcxstea,kccx3tea,kcxstea函数。
add,edits,check,del函数及美化工作。
main,student,teacher函数及整合工作。
4.程序中的数据结构
1.存放课程信息的结构体
structcouse
{
intnum1;
charname1[20];
intscore;
chartype[20];
};
2.存放用户信息的结构体
structyh
{charname[20];
charpass[10];
intf;
};
5.源代码
#include"
stdio.h"
string.h"
stdlib.h"
intM=0;
structcouse//课程信息结构体
voidadd()//添加用户
{
charusname[20];
charuspw[10];
intclas;
FILE*fp;
if((fp=fopen("
uhn.txt"
"
a"
))==NULL)
{
printf("
不能打开文件\n"
);
exit(0);
}
printf("
请输入用户名,密码和类别"
gets(usname);
gets(uspw);
scanf("
%d"
&
clas);
getchar();
fprintf(fp,"
%s%s%d\n"
usname,uspw,clas);
fclose(fp);
}
voiddel(charname[])//删除用户
{structyh
{charname[20];
charpass[10];
intf;
}stdl[100];
FILE*fp;
inti=0,n;
r"
{printf("
exit(0);
while(!
feof(fp))
{fscanf(fp,"
%s%s%d"
stdl[i].name,stdl[i].pass,&
stdl[i].f);
if(strcmp(name,stdl[i].name)!
=0)i++;
w"
{printf("
for(n=0;
n<
i;
n++)
stdl[n].name,stdl[n].pass,stdl[n].f);
voidedits(charname[])//修改用户
{structyh
}std1[100];
inti=0,n,lb;
charyhm[20],pw[10];
输入修改后的用户名,密码和类别"
gets(yhm);
gets(pw);
lb);
feof(fp))
{fscanf(fp,"
std1[i].name,std1[i].pass,&
std1[i].f);
if(strcmp(name,std1[i].name)==0)
{strcpy(std1[i].name,yhm);
strcpy(std1[i].pass,pw);
std1[i].f=lb;
i++;
{printf("
i-1;
std1[n].name,std1[n].pass,std1[n].f);
voidshe()//管理员函数
intsele,mark;
charusername[20];
charpassword[10];
\n\t************\n管理员系统\n************\n\n"
┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n"
┃┃用户管理┃┃\n"
┃┗━━━━━━━━━━━━━━━━━━━┛┃\n"
┃●[1]添加用户┃\n"
┃┃\n"
┃●[2]删除用户┃\n"
┃●[3]修改用户┃\n"
┃●[0]退出系统┃\n"
┗━━━━━━━━━━━━━━━━━━━━━━━┛\n"
请选择:
"
do
0-3\n"
sele);
getchar();
switch(sele)
{case1:
printf("
输入添加用户的信息\n"
add();
break;
case2:
输入要删除的用户的信息\n"
gets(username);
del(username);
case3:
输入要修改的用户信息\n"
edits(username);
case0:
exit(0);
default:
0~4\n"
}while
(1);
intcheck(charna[],charpa[],intcl)
charfname[20];
charfpass[10];
intfound=0,fclas;
fname,fpass,&
fclas);
if(strcmp(fname,na)==0&
&
strcmp(fpass,pa)==0&
fclas==cl)
{found=1;
returnfound;
//添加课程函数
voidaddkc()
voidteacher();
structcouses[100];
请输入要录入的课程数\n"
n);
kecheng.dat"
ab+"
for(i=0;
i<
n;
i++)
\n\t请输入课程编号:
scanf("
%4d"
s[i].num1);
\n\t请输入课程名称:
scanf("
%s"
s[i].name1);
\n\t请输入课程学分:
s[i].score);
\n\t请输入课程课程性质:
s[i].type);
fwrite(&
s[i],sizeof(structcouse),1,fp);
\t\t\t继续录入课程请按1返回上一页面请按2\t\n"
i);
switch(i)
case1:
addkc();
teacher();
voidteacher()//教师主页面
{inti;
voidaddkc();
voidkccxtea();
\n\t************\n老师课程系统\n************\n\n"
┃┃教师管理┃┃\n"
┃●[1]录入课程┃\n"
┃●[2]查询课程┃\n"
┃●[3]退出系统┃\n"
;
kccxtea();
voidstudent()//学生主页面
{intm,i;
voidkccx();
voidchoosexuanxiu();
voidkcxs();
voidtuixuan();
voidchoose();
voidcxxx();
\n\t************\n学生课程系统\n************\n\n"
┃┃学生主页面┃┃\n"
┃●[1]课程信息┃\n"
┃●[3]学生选课┃\n"
┃●[4]查询已选课┃\n"
┃●[5]学生退课┃\n"
┃●[6]退出系统┃\n"
kcxs();
kccx();
choose();
case4:
cxxx();
case5:
tuixuan();
case6:
voidkcxstea()//显示所有课程
FILE*fp;
structcousecou;
intm;
if((fp=fopen("
rb"
cannotopenthisfile.\n"
while(fread(&
cou,sizeof(cou),1,fp)==1)
{/*每读取一个结构体数据,分别输出4个成员*/
课程编号:
%d"
cou.num1);
课程名称:
%s"
cou.name1);
课程学分:
%ld"
cou.score);
printf("
课程类型:
%s\n"
cou.type);
按任何数字返回上一界面\n"
m);
teacher();
voidkcxs()//显示所有课程
按任意数字返回上一界面\n"
student();
voidkccxtea()//老师课程查询主页面
inti,m;
voidkccx1tea();
voidkccx2tea();
voidkccx3tea();
voidkcxstea();
┃┃查询主页面┃┃\n"
┃●[0]查询所有课程┃\n"
┃●[1]按课程名称查询┃\n"
┃●[2]按课程性质查询┃\n"
┃●[3]按课程学分查询┃\n"
┃●[4]返回到上一页面┃\n"
case0:
kcxstea();
kccx1tea();
kccx2tea();
kccx3tea();
voidkccx()//学生课程查询主页面
voidkccx1();
voidkccx2();
voidstudent();
voidkccx3();
kccx1();
kccx2();
kccx3();
student();
voidkccx1tea()//老师按课程名称查询
{
voidkccxtea();
charfeature[10];
inti=0,t=0,inp;
请输入所查询的课程名称:
gets(feature);
if((fp=fopen("
{
未输入任何信息,请返回进行课程信息录入!
}
do
fread(&
if(strcmp(s[i].name1,feature)==0)
{t=1;
s[i].num1);
s[i].name1);
学分:
s[i].score);
课程性质:
}i++;
}while(!
feof(fp));
if(t==0)printf("
Nosuchcourse\n"
┃┃课程页面┃┃\n"
┃●[1]返回课程查询页面┃\n"
┃●[2]退出程序┃\n"
inp);
switch(inp)
{
case1:
kccxtea();
}//返回的