C语言课程设计报告教务管理系统.docx
《C语言课程设计报告教务管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告教务管理系统.docx(79页珍藏版)》请在冰豆网上搜索。
C语言课程设计报告教务管理系统
功能说明:
实现两种权限的身份登陆的教务管理系统
*/
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"time.h"
#include"memory.h"
#defineshare"d:
\\share.dat"//定义邮件地址
#definemanager"d:
\\manager.dat"//定义管理员邮件地址
#defineoutmsg"d:
\\outmsg.dat"//定义公告邮件地址
#definelogtimemsg"d:
\\usedlogintime.dat"//定义用户登录时间信息
#definestar_stu"d:
\\stu_scname.dat"//定义学生起始文件信息
#definestu_msg"d:
\\stu.dat"//定义学生成绩信息地址
#definemass_key"3110008758"//定义文件头部密码
typedefstructstudentstu;
#definesc_num4//只设定4门科目,不允许改动
#defineuintunsignedint
/*学生成绩管理系统结构*/
structstudent
{
charnum[10];/*学生学号*/
charname[10];/*学生姓名*/
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)
{
printf("文件载入出错!
\tN为退出回车键继续...:
");
i=getchar();
if((i=='n')||(i=='N'))
{
fclose(fp);
exit
(1);
}
else
{
printf("\n\n数据将重新初始化!
\n");
printf("\n\n请输入4门科目名称\n");
memset(name,'\0',sizeof(name));
fwrite(name,sizeof(name),5,fp);
strcpy(name,mass_key);
rewind(fp);
fwrite(name,sizeof(name),1,fp);
for(i=0;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保存出错!
\n");
getchar();
exit
(1);
}
}
}
}
else
{
if(fp==NULL)
printf("\n文件错误!
");
fscanf(fp,"%s%s%s%s",sc_name[0],sc_name[1],sc_name[2],sc_name[3]);
}
fclose(