C语言课程设计报告教务管理系统Word文档格式.docx
- 文档编号:6033420
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:92
- 大小:127.23KB
C语言课程设计报告教务管理系统Word文档格式.docx
《C语言课程设计报告教务管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告教务管理系统Word文档格式.docx(92页珍藏版)》请在冰点文库上搜索。
/*学生*/
uintscore[sc_num];
/*科目分数*/
uintaverage;
/*科目平均分*/
stu*next;
}st;
chargettemp=0;
/*管理员身份识别结构*/
typedefstructusernameuser;
structusername
charusername[20];
//
charpassword[20];
}use;
/*时间登录信息*/
structLogtime
charuserlogin[20];
structtm;
};
charlogc;
//登录次数
typedefstructLogtimelogtime;
//==========================================================
//定义通讯协议
#definemass_max200//定义信息量
structMassage
intcont;
//文件数量
charusername[15];
//发送人
charmass[mass_max];
//信息
}mas;
typedefstructMassagemassage;
charuserlogin[10];
charsc_name[sc_num][10];
/*以上是学生信息*/
charwelcome(void);
/*用户界面,返回0,则表示退出系统*/
/*
====================================================================
学生信息操作
stu*creat();
/*建立链表*/
voiddisplay(stu*head);
/*显示用户信息*/
voidinsert(stu*head);
/*增加学生信息*/
stu*delname(stu*head,char*stu_name);
/*根据学生删除用户信息*/
stu*delnum(stu*head,char*stu_num);
/*根据删除用户信息*/
stu*checkname(stu*head,char*stu_name);
/*输出指定学生的信息*/
stu*checknum(stu*head,char*stu_num);
/*输出指定的学生信息*/
voidchangsc_name(stu*head,char*name);
/*修改用户成绩*/
voidchangsc_num(stu*head,char*num);
voidwaring(void);
/*产生警告信息*/
charcheknum(char*num);
/*检查是否符合格式*/
charchekname(char*name);
/*检查学生是否符合格式*/
charchekscore(charscore);
/*检查学生分数是否符合格式*/
stu*sortscore(stu*head);
/*学生按平均成绩排序*/
stu*sortnum(stu*head);
/*学生信息按学号排序*/
学生用户登录
charstulogin(void);
/*进入普通用户登录界面*/
charstucheck(char*nam,char*stnum);
/*查找是否存在该学生信息*/
charnewlogin(char*nam,char*stnum);
/*注册学生信息*/
voiddisnewst(void);
/*获得学生信息*/
系统管理选择,管理员权限
voidstu_system(void);
/*对各种操作集中管理*/
voidsentmsg(void);
/*发送公告*/
charreadmsg(void);
/*浏览信息*/
chardelemsg(void);
//删除信息
voidchagesbject(void);
/*修改课程信息*/
用户登录信息
voidsetlogintime(void);
/*记录用户登录时间*/
voiddislogintime(void);
/*显示用户登录信息*/
voidsetused(void);
/*注册新用户资料*/
charusedcheckname(char*name);
/*用户信息检查,若存在用户,则返回1,否则返回0*/
charusedcheckpass(char*name,char*password);
/*查看用户名密码是否符合*/
存储操作
charsave(stu*head);
/*保存用户数据*/
chardisload();
stu*load(void);
/*加载用户数据*/
voidclrtxt(char*str);
/*清除文本信息*/
char*creat_txt(char*username);
/*根据用户名,创建一个用户文件*/
FILE*chekuser(char*username);
/*根据用户名,查找是否有此用户信息,若无,返回NULL*/
---------------main函数----------
voidmain()
FILE*fp;
chari,j;
charname[15];
system("
colorb5"
);
memset(name,'
\0'
sizeof(name));
if((fp=fopen(star_stu,"
r+"
))==NULL)
{
printf("
将新建文件!
\n"
fp=fopen(star_stu,"
w+"
}
fread(name,sizeof(name),1,fp);
if(strcmp(name,mass_key)!
=0)
文件载入出错!
\tN为退出回车键继续...:
"
i=getchar();
if((i=='
n'
)||(i=='
N'
))
{
fclose(fp);
exit
(1);
}
else
printf("
\n\n数据将重新初始化!
\n\n请输入4门科目名称\n"
memset(name,'
fwrite(name,sizeof(name),5,fp);
strcpy(name,mass_key);
rewind(fp);
fwrite(name,sizeof(name),1,fp);
for(i=0;
i<
sc_num;
i++)
{
printf("
\n\n第%d门科目名称:
"
i+1);
scanf("
%s"
sc_name[i]);
if(fwrite(sc_name[i],sizeof(sc_name[i]),1,fp)!
=1)
{
printf("
\n\n\t\t\t\t保存出错!
getchar();
exit
(1);
}
}
else
if(fp==NULL)
\n文件错误!
fscanf(fp,"
%s%s%s%s"
sc_name[0],sc_name[1],sc_name[2],sc_name[3]);
fclose(fp);
fp=fopen(share,"
w"
//为防止文件在后面打开错误
fp=fopen(manager,"
fp=fopen(outmsg,"
do
j=welcome();
if(j==1)
system("
cls"
\t\t欢迎进入学生用户中心系统!
setlogintime();
j=stulogin();
elseif(j==2)
stu_system();
}while(j!
=0);
//为防止文件未关闭,倒置文件容丢失
fp=fopen(logtimemsg,"
fp=fopen(star_stu,"
fp=fopen(stu_msg,"
}
---------------------------初始化用户界面---------------------------
//返回1,则进入stu用户界面
//返回0,则表示退出
//返回2,则表示进入管理员界面
charwelcome(void)
charuserpass[20];
chari,wrong_cont=0,key=0,weling=1,back=0;
chartemp;
while(weling)
do{
printf("
\t*********************欢迎进入教务管理系统********************\n"
\t**\n"
\t*1.用户登录*\n"
\t*2.用户注册*\n"
\t**\n"
\t*3.管理员登陆*\n"
\t*4.管理员注册*\n"
\t*5.退出系统*\n"
\t=============================================================\n"
\t请按命令提示操作\n"
\n\n\n"
您输入的命令为:
\t"
i=getchar();
if((i!
='
1'
)&
&
(i!
2'
3'
4'
5'
\n输入错误的指令!
请按命令提示操作1-3\n"
getchar();
}while((i!
));
switch(i)
case'
:
system("
memset(username,'
sizeof(username));
memset(userpass,'
sizeof(userpass));
\n\t请输入用户名:
username);
\n\t请输入学号:
userpass);
temp=stucheck(username,userpass);
if(temp==0)
没有学生档案信息!
请注册...\n"
break;
}
elseif(temp==1)
memset(userlogin,'
sizeof(userlogin));
strcpy(userlogin,username);
\n\t学生成绩登录有效!
return1;
getchar();
//=======================
break;
system("
memset(username,'
memset(userpass,'
scanf("
while(cheknum(userpass)!
您的输入格式有误,请重新输入!
按回车键继续...\n"
if(newlogin(username,userpass))
\n\t注册成功!
用户名:
%s\t学号:
username,userpass);
getchar();
{
do
\n\t请输入密码:
if(usedcheckpass(username,userpass)==0)
wrong_cont++;
if(wrong_cont==3)
{
printf("
\n\t输入次数大于3次!
请按回车键退出系统!
getchar();
weling=0;
return0;
}
key=1;
\n\t按1选择返回主菜单\n\t按0继续输入用户验证码\n"
do
back=getchar();
if((back!
(back!
0'
{
printf("
\n\t输入错误!
按回车键继续..."
getchar();
}
}while((back!
if(back=='
)
key=0;
else
weling=0;
system("
\n\n\t\t欢迎%s进入学生管理系统\n"
//记录用户登录信息
return2;
}while(key);
back=0;
weling=1;
return2;
setused();
/*注册新管理员资料*/
weling=0;
return0;
return1;
---------------建立链表----------
stu*creat()/*建立链表*/
charstu_num;
stu*p1,*p2;
stu*head;
head=(stu*)malloc(sizeof(stu));
head->
next=NULL;
p1=p2=(stu*)malloc(sizeof(stu));
i=0,j=0;
\n\n请输入要录入的学生人数:
scanf("
%d"
&
stu_num);
for(i=0;
stu_num;
p1->
average=0;
\n\n请输入:
scanf("
p1->
num);
while(!
cheknum(p1->
num))
\n\n输入格式错误!
请重新输入学号:
\n\n请输入学生:
name);
chekname(p1->
name))
\n\n输入格式出错!
不能带数字或下划线!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 教务 管理 系统