人人范文网 范文大全

C语言课程设计报告——教务管理系统

发布时间:2020-03-02 13:49:11 来源:范文大全 收藏本文 下载本文 手机版

功能说明:实现两种权限的身份登陆的教务管理系统 */ #include \"stdio.h\" #include \"stdlib.h\" #include \"string.h\" #include \"time.h\" #include \"memory.h\" #define share \"d:\\share.dat\"

//定义邮件地址

#define manager \"d:\\manager.dat\"

#define outmsg

\"d:\\outmsg.dat\" //定义管理员邮件地址

//定义公告邮件地址 //定义用户登录时间信息 //定义学生起始文件信息

//定义学生成绩信息地址 #define logtimemsg \"d:\\used login time.dat\" #define star_stu

\"d:\\stu_scname.dat\"

#define stu_msg

#define ma_key \"3110008758\" typedef struct student stu; #define sc_num 4

#define uint unsigned int

\"d:\\stu.dat\"

//定义文件头部密码

//只设定4门科目,不允许改动

/*学生成绩管理系统结构*/ struct student {

char num[10]; /*学生学号*/ char name[10]; /*学生姓名*/ uint score[sc_num]; /*科目分数*/ uint average; /*科目平均分*/ stu *next;

}st; char gettemp=0; /*管理员身份识别结构*/ typedef struct username user; struct username { char username[20];// char paword[20]; }use; /*时间登录信息*/ struct Logtime { char userlogin[20]; struct tm; }; char logc;//登录次数

typedef struct Logtime logtime; //============ //定义通讯协议

//============

#define ma_max 200 struct Maage {

//定义信息量

int cont;

//文件数量 char username[15]; //发送人

char ma[ma_max];//信息 }mas; typedef struct Maage maage;

//============ //============ char userlogin[10]; char sc_name[sc_num][10]; /*以上是学生信息*/

char welcome(void);/*用户界面,返回0,则表示退出系统*/ /* ====================== 学生信息操作

====================== */ stu*creat();/*建立链表*/ void display(stu *head);/*显示用户信息*/ void insert(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);/*输出指定学生学号的学生信息*/ void changsc_name(stu *head,char *name);/*修改用户成绩*/ void changsc_num(stu *head,char *num);/*修改用户成绩*/ void waring(void);/*产生警告信息*/ char cheknum(char *num);/*检查学生学号是否符合格式*/ char chekname(char *name);/*检查学生姓名是否符合格式*/ char chekscore(char score);/*检查学生分数是否符合格式*/ stu* sortscore(stu *head);/*学生按平均成绩排序*/ stu* sortnum(stu *head);/*学生信息按学号排序*/ /* ====================== 学生用户登录

====================== */ char stulogin(void);/*进入普通用户登录界面*/ char stucheck(char *nam,char *stnum);/*查找是否存在该学生信息*/ char newlogin(char *nam,char *stnum);/*注册学生信息*/ void disnewst(void);/*获得学生信息*/ /* ====================== 系统管理选择,管理员权限

====================== */ void stu_system(void);/*对各种操作集中管理*/ void sentmsg(void);/*发送公告*/ char readmsg(void);/*浏览信息*/ char delemsg(void);//删除信息

void chagesbject(void);/*修改课程信息*/ /* ====================== 用户登录信息

====================== */ void setlogintime(void);/*记录用户登录时间*/ void dislogintime(void);/*显示用户登录信息*/ void setused(void);/*注册新用户资料*/ char usedcheckname(char *name);/*用户信息检查,若存在用户,则返回1,否则返回0*/ char usedcheckpa(char *name,char *paword);/*查看用户名密码是否符合*/ /* ====================== 存储操作

====================== */ char save(stu *head);/*保存用户数据*/ char disload();/*显示用户信息*/ stu* load(void);/*加载用户数据*/ void clrtxt(char *str);/*清除文本信息*/ char* creat_txt(char *username);/*根据用户名,创建一个用户文件*/ FILE* chekuser(char *username);/*根据用户名,查找是否有此用户信息,若无,返回NULL*/ /* ====================== ---------------main函数---------- ====================== */ void main() {

FILE *fp; char i,j; char name[15]; system(\"color b5\"); 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,ma_key)!=0) {

printf(\"文件载入出错!\\t N为退出 回车键继续...:\"); i=getchar(); if((i==\'n\')||(i==\'N\')) {

} else { 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,ma_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);

if(fp==NULL) printf(\"\\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\"); fclose(fp); fp=fopen(manager,\"w\"); fclose(fp); fp=fopen(outmsg,\"w\"); fclose(fp); do { j=welcome(); if(j==1) {

system(\"cls\"); printf(\"\\t\\t欢迎进入学生用户中心系统!\"); setlogintime();

//为防止文件在后面打开错误

j=stulogin(); } else if(j==2)

{ setlogintime(); stu_system(); } }while(j!=0);

//为防止文件未关闭,倒置文件内容 fp=fopen(share,\"w\"); 丢失

} fclose(fp); fp=fopen(manager,\"w\"); fclose(fp); fp=fopen(outmsg,\"w\"); fclose(fp); fp=fopen(logtimemsg,\"w\"); fclose(fp); fp=fopen(star_stu,\"w\"); fclose(fp); fp=fopen(stu_msg,\"w\"); fclose(fp); /* ====================== ---------------------------初始化用户界面--------------------------- ====================== */ //返回1,则进入stu用户界面 //返回0,则表示退出

//返回2,则表示进入管理员界面 char welcome(void) { char username[20];

char userpa[20]; char i,wrong_cont=0,key=0,weling=1,back=0; char temp; system(\"color b5\"); while(weling) { do{ system(\"cls\"); printf(\"\\t*********************欢迎进入教务管理系统********************\\n\"); printf(\"\\t*

*\\n\"); printf(\"\\t*

1.用户登录

*\\n\"); printf(\"\\t*

*\\n\"); printf(\"\\t*

2.用户注册

*\\n\"); printf(\"\\t*

*\\n\");

printf(\"\\t*

3.管理员登陆

*\\n\"); printf(\"\\t*

*\\n\"); printf(\"\\t*

4.管理员注册

*\\n\"); printf(\"\\t*

*\\n\"); printf(\"\\t*

5.退出系统

*\\n\"); printf(\"\\t*

*\\n\"); printf(\"\\t===============\\n\"); printf(\"\\t

请按命令提示操作\\n\"); printf(\"\\n\\n\\n\"); printf(\"\\n\\n\\n\"); printf(\"您输入的命令为:\\t\"); i=getchar(); if((i!=\'1\')&&(i!=\'2\')&&(i!=\'3\')&&(i!=\'4\')&&(i!=\'5\')) { printf(\"\\n输入错误的指令!请按命令提示操作 1-3\\n\"); getchar(); } }while((i!=\'1\')&&(i!=\'2\')&&(i!=\'3\')&&(i!=\'4\')&&(i!=\'5\')); switch(i) {

case \'1\': {

system(\"cls\"); memset(username,\'\\0\',sizeof(username)); memset(userpa,\'\\0\',sizeof(userpa)); printf(\"\\n\\t请输入用户名 :\\t\"); scanf(\"%s\",username); printf(\"\\n\\t请输入学号 :\\t\"); scanf(\"%s\",userpa); temp=stucheck(username,userpa); if(temp==0) {

} {

} printf(\"没有学生档案信息!请注册...\\n\"); getchar(); break; else if(temp==1) memset(userlogin,\'\\0\',sizeof(userlogin)); strcpy(userlogin,username);

printf(\"\\n\\t学生成绩登录有效!\"); getchar(); return 1;

getchar(); //======================= break; } case \'2\': {

} system(\"cls\"); memset(username,\'\\0\',sizeof(username)); memset(userpa,\'\\0\',sizeof(userpa)); printf(\"\\n\\t请输入用户名 :\\t\"); scanf(\"%s\",username); printf(\"\\n\\t请输入学号 :\\t\"); scanf(\"%s\",userpa); while(cheknum(userpa)!=1) {

printf(\"您的输入格式有误,请重新输入!\\n\"); printf(\"按回车键继续...\\n\"); getchar(); memset(userpa,\'\\0\',sizeof(userpa)); printf(\"\\n\\t请输入学号 :\\t\"); scanf(\"%s\",userpa); } if(newlogin(username,userpa)) printf(\"\\n\\t注册成功!用户名:%s\\t学号:%s\",username,userpa); getchar(); break; case \'3\': {

do

{

system(\"cls\"); memset(username,\'\\0\',sizeof(username)); memset(userpa,\'\\0\',sizeof(userpa)); printf(\"\\n\\t请输入用户名 :\\t\"); scanf(\"%s\",username); printf(\"\\n\\t请输入密码 :\\t\"); scanf(\"%s\",userpa); if(usedcheckpa(username,userpa)==0) {

wrong_cont++; if(wrong_cont==3) { printf(\"\\n\\t输入次数大于3次!请按回车键退出系统!\\n\");

getchar(); weling=0; return 0; } key=1; printf(\"\\n\\t按1选择返回主菜单\\n\\t按0继续输入用户验证码\\n\"); do {

back=getchar();

if((back!=\'1\')&&(back!=\'0\')) {

}

printf(\"\\n\\t输入错误!按回车键继续...\"); getchar(); }while((back!=\'1\')&&(back!=\'0\')); if(back==\'1\') key=0; } else {

key=0; weling =0; system(\"cls\"); printf(\"\\n\\n\\t\\t欢迎%s进入学生管理系统\\n\",username); memset(userlogin,\'\\0\',sizeof(userlogin)); strcpy(userlogin,username);

//记录用户

登录信息

return 2; } }while(key); back=0; weling=1; break; return 2; } case \'4\': {

} setused();/*注册新管理员资料*/ weling=1; break; case \'5\': { weling=0;

} /*

return 0; }

} } return 1; ====================== ---------------建立链表---------- ====================== */ stu*creat()/*建立链表*/ {

char i,j; char stu_num; stu *p1, *p2; stu *head; FILE *fp; fp=fopen(stu_msg,\"w+\"); head=(stu*)malloc(sizeof(stu)); head->next=NULL; p1=p2=(stu*)malloc(sizeof(stu)); i=0,j=0; system(\"cls\"); printf(\"\\n\\n请输入要录入的学生人数: \"); scanf(\"%d\",&stu_num); for(i=0;i

system(\"cls\"); p1->average=0; printf(\"\\n\\n请输入学生学号: \"); scanf(\"%s\",p1->num); while(!cheknum(p1->num)) { printf(\"\\n\\n输入格式错误!请重新输入学号 : \"); scanf(\"%s\",p1->num); } printf(\"\\n\\n请输入学生姓名 : \"); scanf(\"%s\",p1->name); while(!chekname(p1->name)) { printf(\"\\n\\n输入格式出错!不能带数字或下划线!\\n\");

printf(\"\\n\\n请重新输入学生姓名: \"); scanf(\"%s\",p1->name); }

do

{

printf(\"\\n\\n请输入学生%s成绩 :\",sc_name[j]);

scanf(\"%d\",&p1->score[j]);

while((100score[j])||(p1->score[j]

{

printf(\"\\n\\n成绩格式出错!\\n \"); getchar(); printf(\"\\n\\n请重新输入学生成绩 : \"); scanf(\"%d\",&p1->score[j]);

} p1->average+=p1->score[j]; j++; }while(javerage=p1->average/4; if(i==0)

/*分清楚是head->next=p还是

{

head->next=p1; head=p*/

p2=p1;

}

} p1->next=NULL; } else { p2->next=p1; p2=p1; p2->next=NULL;

/*产生新的节点*/ } fwrite(p1,sizeof(stu),1,fp); p1=(stu*)malloc(sizeof(stu)); display(head); getchar(); fclose(fp); return head; /* ====================== 检查学生学号是否符合格式,若正确,则返回1,否则返回0 ====================== */ char cheknum(char *num)/*检查学生学号是否符合格式*/ { char i;

/*获取字符串长度*/

} char j=strlen(num); for(i=0;i

} if((\'0\'>num[i])||(\'9\'

}

/* ====================== 显示学生成绩情况

====================== */ void display(stu *head)/*显示用户信息*/ { for(i=0;i

} /*if((\'A\'>name[i])||((\'Z\'name[i]))||(\'z\'next; system(\"cls\"); if(p1!=NULL) {

while(p1!=NULL)

{

if(i==0)

{

printf(\"姓名\\t学号\\t

%s\\t

%s\\t

%s\\t%s\\t

平均\\n\",sc_name[0],sc_name[1],sc_name[2],sc_name[3]);

i++;

}

printf(\"%s\\t%s\\t %d\\t %d\\t%d\\t%d\\t%d\\n\",\\

p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);

p1=p1->next;

}

getchar(); } else {

printf(\"\\t\\t\\t链表为空!\\n\\n\\n请按回车键继续...\\n\");

getchar(); } } /* ====================== 插入学生信息

====================== */ void insert(stu *head)/*增加学生信息*/ { stu *p1,*p2; char j=0; p1=head->next; p2=(stu*)malloc(sizeof(stu)); /*创建新的学生信息*/

p2->average=0;

system(\"cls\");

printf(\"\\n\\n请输入要增加的学生学号: \");

scanf(\"%s\",p2->num);

while(!cheknum(p2->num)) {

printf(\"\\n\\n输入格式错误!请重新输入学号 : \"); scanf(\"%s\",p2->num); } printf(\"\\n\\n请输入学生的姓名 : \"); scanf(\"%s\",p2->name); while(!chekname(p2->name)) {

}

do

{

printf(\"\\n\\n请输入学生%s成绩 :\",sc_name[j]);

scanf(\"%d\",&p2->score[j]); while((100score[j])||(p2->score[j]

{

printf(\"\\n\\n成绩格式出错!\\n \"); getchar(); printf(\"\\n\\n请重新输入学生成绩 : \"); scanf(\"%d\",&p2->score[j]); printf(\"\\n\\n输入格式出错!不能带数字或下划线!\\n\"); printf(\"\\n\\n请重新输入学生姓名: \"); scanf(\"%s\",p2->name); } p2->average+=p2->score[j]; j++; }while(javerage=p2->average/4; if(head->next==NULL) {

} else {

} while(p1->next!=NULL) p1=p1->next; p1->next=p2; p2->next=NULL; printf(\"\\n原链表为空!\"); getchar(); head->next=p2; display(head); getchar(); } /* ====================== 删除学生信息

====================== */ stu* delname(stu*head,char *stu_name)/*根据学生姓名删除用户信息*/ {

stu *p1,*p2; char i,j=0; system(\"cls\"); if(head->next==NULL) { printf(\"\\n\\n没有学生信息!\\t操作错误!\\n\"); return head; } p1=head->next; p2=p1; while(p1!=NULL) {

if(strcmp(p1->name,stu_name)==0) {

printf(\"\\n\\n你所删除的学生姓名为: %s\\t学号为:%s\\n\",p1->name,p1->num); printf(\"\\n\\n确定为:y,取消为n\\t:\"); i=getchar();

while(!((i==\'y\')||(i==\'Y\')||(i==\'n\')||(i==\'N\'))) {

printf(\"\\n\\n输入错误!\\t请重新输入 :\"); } i=getchar(); if((i==\'y\')||(i==\'Y\')) { if(j==0)

} { } else { } printf(\"\\n\\n\\t\\t\\t\\t成功删除用户信息!\\n\\n\\t\\t\\t按回车键继续...\\n\"); free(p1); return head; p2->next=p1->next; head->next=p1->next;/*删除头部接点*/ else { return head;

}

} } j++; p2=p1; p1=p1->next; } printf(\"\\n\\n\\t\\t没有此用户记录信息!\\n按回车键继续\\n\"); getchar(); system(\"cls\"); display(head); getchar(); return head; /* ====================== 删除学生信息(以学号为对象) ====================== */ stu* delnum(stu *head,char *stu_num)/*根据学生学号删除用户信息*/ {

stu *p1,*p2; char i,j=0; system(\"cls\"); if(head->next==NULL) { printf(\"\\n\\n\\t\\t没有存储学生信息!\\n\\n\\t\\t操作错误!\\n\"); return head; } p1=head->next; p2=p1; while(p1->next!=NULL) {

if(strcmp(p1->num,stu_num)==0) {

printf(\"\\n\\n你所删除的学生姓名为: %s\\t学号为:%s\\n\",p1->name,p1->num); printf(\"\\n\\n确定为:y,取消为n\\t:\"); i=getchar();

{

} while(!((i==\'y\')||(i==\'Y\')||(i==\'n\')||(i==\'N\'))) printf(\"\\n\\n输入错误!\\t请重新输入 :\"); i=getchar();

}

}

if((i==\'y\')||(i==\'Y\')) {

} if(j==0) { head->next=p1->next; } else { }

printf(\"\\n\\n\\t\\t\\t\\t成功删除用户信息!\\n\\n\\t\\t\\t按回车键继续...\\n\"); free(p1); return head; p2->next=p1->next; else

return head; } p2=p1; p1=p1->next; j++; printf(\"\\n\\n没有此用户信息!\\n按回车键继续...\\n\"); getchar(); system(\"cls\"); display(head); getchar(); return head; /* ====================== 输出指定学生信息(以学生姓名为对象) ====================== */ stu* checkname(stu *head,char *stu_name)/*输出指定学生的信息*/ {

stu *p1; system(\"cls\"); if(head==NULL) {

printf(\"\\n\\n\\t\\t没有存储学生信息!\\t操作错误!\\n\"); getchar(); return head;

} } p1=head; while(p1->next!=NULL) { if(strcmp(p1->name,stu_name)==0)

{

printf(\"\\n\\n你所查找的学生信息如下\\n\"); printf(\" \\n\\n%s\\t学号为:%s\\n\",p1->name,p1->num); printf(\"姓名\\t学号\\t\\t %s\\t %s\\t %s\\t%s\\t平均分 \\n\",\\ sc_name[0],sc_name[1],sc_name[2],sc_name[3]); printf(\"%s\\t%s\\t\\t %d\\t %d\\t%d\\t%d\\t%d\\n\",\\

p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);

} getchar(); return p1; } p1=p1->next; printf(\"\\n\\n\\t\\t找不到相关用户信息!\\n按回车键继续...\\n\"); getchar(); system(\"cls\"); display(head); getchar(); return (stu*)NULL; /* ====================== 输出指定学生信息(以学生学号为对象) ====================== */ stu* checknum(stu *head,char *stu_num)/*输出指定学生学号的学生信息*/ {

stu *p1,*p2; p2=(stu*)malloc(sizeof(stu)); system(\"cls\"); if(head==NULL) { printf(\"\\n\\n\\t\\t没有存储学生信息!\\t操作错误!\\n\"); return head; } p1=head;

} while(p1->next!=NULL) {

p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);

getchar(); return p1; if(strcmp(p1->num,stu_num)==0) {

printf(\"\\n\\n你所查找的学生信息如下\\n\"); printf(\" %s\\t学号为:%s\\n\",p1->name,p1->num); printf(\"姓名\\t学号\\t\\t %s\\t %s\\t %s\\t%s\\t平均分 \\n\",\\ sc_name[0],sc_name[1],sc_name[2],sc_name[3]); printf(\"%s\\t%s\\t\\t %d\\t %d\\t%d\\t%d\\t%d\\n\",\\ } p1=p1->next; } printf(\"\\n\\n\\t\\t找不到相关用户信息!\\n按回车键继续...\\n\"); getchar(); return (stu*)NULL; /* ====================== 修改指定学生信息(以学生姓名为对象) ====================== */ void changsc_name(stu *head,char *name)/*修改用户成绩*/ { stu *p;

char j=0; system(\"cls\"); p=checkname(head,name); if(p!=NULL) {

p->average=0; printf(\"\\n\\n请输入学生新的学号: \"); scanf(\"%s\",p->num); while(!cheknum(p->num)) { printf(\"\\n\\n输入格式错误!请重新输入学号 :\\n \"); scanf(\"%s\",p->num); }

do

}

{

printf(\"\\n\\n请输入学生成绩%s :\",sc_name[j]);

scanf(\"%d\",&p->score[j]); while((100score[j])||(p->score[j]

{

j++;

} printf(\"\\n\\n成绩格式出错!\\n \"); getchar(); printf(\"\\n\\n请重新输入学生成绩 : \"); scanf(\"%d\",&p->score[j]);

p->average+=p->score[j];

}while(j

p->average=p->average/4;

printf(\"\\n\\n\\t\\t用户数据更新完毕!\\n请按回车键退出...\\n\");

getchar(); system(\"cls\"); display(head);

getchar(); } /* ====================== 修改指定学生信息(以学生学号为对象) ====================== */ void changsc_num(stu *head,char *num)/*修改用户成绩*/ {

stu *p2; char j=0; system(\"cls\"); p2=checknum(head,num); if(p2!=NULL) {

p2->average=0; printf(\"\\n\\n请输入学生姓名: \"); scanf(\"%s\",p2->name); while(!chekname(p2->name)) { printf(\"\\n\\n输入格式错误!请重新输入学号 : \"); scanf(\"%s\",p2->name); }

do

{

}

printf(\"\\n\\n请输入学生成绩%s :\",sc_name[j]);

scanf(\"%d\",&p2->score[j]); while((100score[j])||(p2->score[j]

{

printf(\"\\n\\n成绩格式出错!\\n \");

j++;

} getchar(); printf(\"\\n\\n请重新输入学生成绩 : \"); scanf(\"%d\",&p2->score[j]);

p2->average+=p2->score[j];

}while(j

p2->average=p2->average/4;

printf(\"\\n\\n\\t\\t用户数据更新完毕!请按回车键退出...\\n\");

getchar(); } /* ====================== ====================== ============================存储操作类函数========================== ====================== ====================== */ /* ====================== 加载学生信息

====================== */ stu* load(void)/*加载用户数据*/ {

FILE *fp; stu *p,*head,*p1; char i=0,j=0; fp=fopen(stu_msg,\"r\"); rewind(fp); head=(stu*)malloc(sizeof(stu)); p1=p=(stu *)malloc(sizeof(stu)); while(fread(p,sizeof(stu),1,fp)==1) {

if(i==0) { head->next=p; p1=p;

}

} } else { p1->next=p; p1=p; p1->next=NULL; } i++; p=(stu*)malloc(sizeof(stu)); j++; if(j==0) {

printf(\"\\n\\n\\t\\t\\t没有数据信息可载入!\\n\"); head=NULL; free(p); getchar(); } fclose(fp); return head; /* ====================== 显示学生信息

====================== */ char disload()/*显示用户信息*/ {

FILE *fp; stu *p1; char i=0; p1=(stu*)malloc(sizeof(stu)); if((fp=fopen(stu_msg,\"r+\"))==NULL)fp=fopen(stu_msg,\"w+\"); rewind(fp); while(fread(p1,sizeof(stu),1,fp)==1) { printf(\"%s\\t%s\\t %d\\t %d\\t%d\\t%d\\t%d\\n\",\\

p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);

i++;

//fread(p1,sizeof(stu),1,fp); } fclose(fp); if(i==0)

} /* { printf(\"\\n\\t\\t\\t文件中不含学生信息!\\n\\t\\t\\t按回车键继续...\\n\"); getchar(); } else {

} printf(\"\\n\\t\\t\\t一共记录了%d名学生信息!\\n\\t\\t\\t按回车键继续...\\n\",i); getchar(); ====================== 保存学生信息

====================== */ char save(stu *head)/*保存用户数据*/ {

stu *p; FILE *fp; stu stt; char i=0; p=head->next; system(\"cls\"); clrtxt(stu_msg); fp=fopen(stu_msg,\"w\"); rewind(fp); // if(head->next!=NULL) { while(p!=NULL)

{

fwrite(p,sizeof(stu),1,fp); p=p->next; i++; } if(i==0) {

} else { printf(\"没有保存数据!\\n\"); getchar(); fclose(fp); return 0;

} fclose(fp); return 1; } } else {

} fclose(fp); return 0;

fclose(fp); return 0; /* ====================== 创建文本信息

====================== */ char* creat_txt(char *username)/*根据用户名,创建一个用户文件*/ {

char name[20]; FILE *fp; strcpy(name,\"d:\"); strcat(name,username); strcat(name,\".txt\"); fp=fopen(name,\"w+\"); system(\"cls\"); if(fp!=NULL) {

} else {

} printf(\"\\n\\n\\t\\t无法创建用户文件!\\n\\n\\t\\t请按回车键继续...\\n\"); getchar(); fclose(fp); return name; //printf(\"\\n\\n文件路径为:%s\\n\\n\",name); //printf(\"\\n\\n\\t\\t用户文件创建成功!\\n\\n\\t\\t请按回车键继续...\\n\"); //getchar(); fclose(fp); return name; } /* ====================== 清除文本信息

====================== */ FILE* chekuser(char *username)/*根据用户名,查找是否有此用户信息,若无,返回NULL*/ { }

/* ====================== 清除文本信息

====================== */ void clrtxt(char *str)/*清除文本信息*/ {

char clrmem[10]; char semem[40]; FILE *fp; int i=0,j=0; if((fp=fopen(str,\"r\"))==NULL) { printf(\"\\n\\t无此文件!\"); getchar(); } else {

fclose(fp); fp=fopen(str,\"w\"); memset(clrmem,\'\\0\',sizeof(clrmem)); rewind(fp); for(i=0;i

if(fwrite(clrmem,sizeof(clrmem),1,fp)!=1) {

if(j==0) { printf(\"\\n\\n\\t\\t文件清除失败!\\n\\n\\t\\t请按回车键继续...\\n\"); getchar(); break; } else { //printf(\"\\n\\n\\t\\t文件清除成功!\\n\\n\\t\\t请按回车键继续...\\n\"); //getchar(); break;

} /*

}

} } else j++; } fclose(fp); ====================== 用户登录信息

====================== */ void setlogintime(void)/*记录用户登录时间*/ {

FILE *fp; int y,m,d,hour,min,sec; time_t T;

struct tm *timeinfo;

// 一个可以包含时间信息的长整型

// 得到机器的日历时间 time( &T );

if((fp=fopen(logtimemsg,\"a+\"))==NULL) { fp=fopen(logtimemsg,\"w\"); } time( &T );

// 得到机器的日历时间

timeinfo = localtime( &T ); 时间格式的指针

} /*

// 将日历时间转换为当地时间,timeinfo 是一个// 年份

// 月份 // 日期 y=timeinfo->tm_year + 1900; m=timeinfo->tm_mon + 1; d=timeinfo->tm_mday;

hour=timeinfo->tm_hour; min=timeinfo->tm_min; sec=timeinfo->tm_sec; fwrite(userlogin,sizeof(userlogin),1,fp); fwrite(timeinfo,sizeof(struct tm),1,fp);//写入用户登陆信息

printf(\"\\n\\n\\n\\t\\t登陆时间为:\\n\\t\\t%d年 %d月 %d日 %d时 %d分 %d秒\\n\\n\\n\", y, m, fclose(fp); d,hour,min,sec); ====================== 用户登录信息

====================== */ void dislogintime(void)/*显示用户登录信息*/ { FILE *fp; int y,m,d,hour,min,sec;

struct tm *timeinfo; char name[10]; int i=0; timeinfo=(struct tm*)malloc(sizeof(struct tm)); fp=fopen(logtimemsg,\"r+\"); if(fp==NULL) {

} else { memset(name,\'\\0\',sizeof(name)); while(fread(name,sizeof(name),1,fp)==1) { fread(timeinfo,sizeof(struct tm),1,fp); y=timeinfo->tm_year + 1900; m=timeinfo->tm_mon + 1; d=timeinfo->tm_mday;

hour=timeinfo->tm_hour; min=timeinfo->tm_min; sec=timeinfo->tm_sec;

// 年份ins // 月份 // 日期 printf(\"\\n\\n\\t\\t找不到文件信息!\\n\\n\\t\\t按回车键继续...\\n\"); getchar(); i++; printf(\"\\n\\t第%d次登陆时间为:%d年 %d月 %d日 %d时 %d分 %d秒\\t%s用户登录\",i,y, m, d,hour,min,sec,name);

} memset(name,\'\\0\',sizeof(name)); } if(i==0) printf(\"\\n没有记录用户登录时间!\\n\"); getchar(); free(timeinfo); fclose(fp); } /* ====================== 用户登录信息

====================== */ void setused(void)/*注册新用户资料*/ {

FILE *fp; char chekpaword[20]; char lgway[20]; char i=0; system(\"cls\"); memset(use.paword,\'\\0\',sizeof(use.paword)); memset(chekpaword,\'\\0\',sizeof(chekpaword)); memset(use.username,\'\\0\',sizeof(use.username)); do{ printf(\"\\n\\n请输入用户名:\\t\"); scanf(\"%s\",use.username); printf(\"\\n\\n请输入用户密码:\\t\"); scanf(\"%s\",use.paword); printf(\"\\n\\n请再次输入密码:\\t\"); scanf(\"%s\",chekpaword); if(strcmp(use.paword,chekpaword)!=0) {

printf(\"\\n\\n\\t\\t密码不匹配!\\n按回车键继续\\n\"); getchar(); i=1; memset(use.paword,\'\\0\',sizeof(use.paword)); memset(chekpaword,\'\\0\',sizeof(chekpaword)); memset(use.username,\'\\0\',sizeof(use.username));

//10检查用户密码输入

} else i=0; } while(i); strcpy(lgway,creat_txt(use.username)); clrtxt(lgway); fp=fopen(lgway,\"w+\"); if(fp!=NULL) {

rewind(fp);/*清除文本信息*/ if(fwrite(&use,sizeof(use),1,fp)==1) {

rewind(fp); memset(use.username,\'\\0\',sizeof(use.username)); memset(use.paword,\'\\0\',sizeof(use.paword)); fscanf(fp,\"%s%s\",use.username,use.paword);/////////////////////////////////此处写有问题!

//fread(&use,sizeof(use),1,fp);

//printf(\"您保存的用户名为:%s\\n\",use.username);

} /*

} else {

} else {

//printf(\"您保存的密码是:%s\\n\",use.paword); //printf(\"\\n\\n\\t\\t数据保存成功!\\n按回车键继续...\\n\"); //getchar(); fclose(fp); printf(\"\\n数据保存失败!\\n按回车键继续...\\n\"); getchar(); fclose(fp); } printf(\"\\n用户注册失败!\\n按回车键继续...\\n\"); getchar(); fclose(fp); } fclose(fp); ====================== 用户登录信息

====================== */ char usedcheckname(char *username)/*用户信息检查*/ {

char name[20]; FILE *fp; system(\"color b5\"); strcpy(name,\"d:\"); strcat(name,username); strcat(name,\".txt\"); fp=fopen(name,\"r+\"); rewind(fp); if(fp!=NULL) {

} else { printf(\"\\n\\n\\t\\t用户名输入错误!\\n\\n\\t\\t请按回车键继续...\\n\"); getchar(); fclose(fp); return 1;

return 0; } } /* ====================== 检查输入密码是否正确

====================== */ char usedcheckpa(char *user,char *pa)/*查看用户名密码是否符合*/ {

char filename[20]; FILE *fp; memset(filename,\'\\0\',sizeof(filename)); strcpy(filename,\"d:\"); strcat(filename,user); strcat(filename,\".txt\"); if((fp=fopen(filename,\"r\"))==NULL) { printf(\"\\n操作错误!不存在此用户!\\n\"); getchar(); return 0; } //printf(\"\\n文件名为:%s\\n\",filename); getchar(); memset(use.username,\'\\0\',sizeof(use.username)); memset(use.paword,\'\\0\',sizeof(use.paword)); if(fp==NULL) {

printf(\"\\n\\n\\t\\t用户名错误!\\n\\n\\t\\t请按回车键继续...\\n\"); getchar(); fclose(fp); return 0; } rewind(fp); fread(&use,sizeof(use),1,fp); //printf(\"用户名:%s\\t密码:%s\\n\",use.username,use.paword); //getchar(); if(strcmp(use.paword,pa)==0) {

system(\"cls\"); printf(\"\\n\\n\\t\\t密码输入正确!\\n\\n\\t\\t请按回车键继续...\\n\"); getchar(); fclose(fp); return 1;

} /* } else { printf(\"\\n\\n\\t\\t密码输入错误!\\n\\n\\t\\t请按回车键继续...\\n\"); getchar();

} fclose(fp); return 0; ====================== 系统管理选择

====================== */ void stu_system(void)/*对各种操作集中管理*/ {

FILE *fp; stu *head,*temp_str; char menue[8],reg[8],temp[10]; char key=0,i=0,quet=0,insert_num; char str3[10]; char loginout=0; system(\"color b4\"); head=load(); do { quet=0; loginout=0; system(\"color b5\");

getchar(); while(head==NULL) {

} while(!quet) { do{ system(\"cls\"); printf(\"\\t\\t学生成绩管理系统\\t\\t\\t管理员%s登录\\n\",userlogin); printf(\"\\t==============\\n\"); printf(\"\\t||\\t\\t0.修改课程信息\\n\"); system(\"cls\"); printf(\"数表为空,请至少输入一个学生信息!\\n\"); head=creat();

printf(\"\\t||\\n\"); printf(\"\\t||\\t\\t1.查看学生信息\\t\\t2.增加学生信息\\n\"); printf(\"\\t||\\n\"); printf(\"\\t||\\t\\t3.删除学生信息\\t\\t4.修改学生信息\\n\"); printf(\"\\t||\\n\"); printf(\"\\t||\\t\\t5.查找学生信息\\t\\t6.广播信息管理\\n\"); printf(\"\\t||\\n\"); printf(\"\\t||\\t\\t7.历史登录信息\\t\\t8.注销用户信息\\n\"); printf(\"\\t||\\n\"); printf(\"\\t||\\t\\t9.整理学生信息\\t\\ta.退出系统\\n\"); printf(\"\\t==============\\n\"); printf(\"\\t\\t\\t\\t\\t\\t请按命令操作\\n\"); printf(\"您输入的命令是:\\t\"); i=getchar(); if(!((i>=\'0\')||(i=\'0\')||(i

case \'0\': { chagesbject(); break; } case \'1\': {

} system(\"cls\"); printf(\"姓名\\t学号\\t %s\\t %s\\t %s\\t%s\\t平均分 \\n\",\\ sc_name[0],sc_name[1],sc_name[2],sc_name[3]); disload(head); printf(\"\\n\\n\\t\\t按回车键返回...\\n\\n\"); getchar(); break; case \'2\': {

system(\"cls\"); printf(\"\\n请输入要增加学生的个数:\\t\"); scanf(\"%d\",&insert_num); for(temp[2]=0;temp[2]

break; } case \'3\': { do

{ system(\"cls\"); display(head); printf(\"\\t==============================\"); printf(\"\\n\\t请输入删除方式:\\t\"); printf(\"\\n\\t1.以学号方式\"); printf(\"\\n\\t2.以姓名方式\"); printf(\"\\n\\t3.退出\"); printf(\"\\n\\t==============================\"); printf(\"\\n\"); printf(\"您的选择是: \\t\"); temp[3]=getchar(); if(!((temp[3]==\'1\')||(temp[3]==\'2\')||(temp[3]==\'3\'))) { printf(\"\\n您的输入格式不正确,请重新输入!\\n按回车键继续...\"); getchar(); } }while(!((temp[3]==\'1\')||(temp[3]==\'2\')||(temp[3]==\'3\'))); if(temp[3]==\'1\') {

} else {

memset(str3,\'\\0\',sizeof(str3)); printf(\"\\n请输入您要删除的学生姓名:\\t\"); scanf(\"%s\",str3); head=delname(head,str3); system(\"cls\"); display(head); save(head); getchar(); memset(str3,\'\\0\',sizeof(str3)); printf(\"\\n请输入您要删除的学生学号:\\t\"); scanf(\"%s\",str3); head=delnum(head,str3); system(\"cls\"); display(head); save(head); getchar();

} break; } case \'4\': {

do { system(\"cls\"); display(head); printf(\"==============================\"); printf(\"\\n\\t请输入修改方式:\\t\"); printf(\"\\n\\t1.以学号方式\"); printf(\"\\n\\t2.以姓名方式\"); printf(\"\\n\\t3.退出\"); printf(\"\\n==============================\"); printf(\"\\n\\n\\n\\n\\n\"); printf(\"您的选择是: \\t\"); temp[4]=getchar(); if(!((temp[4]==\'1\')||(temp[4]==\'2\')||(temp[4]==\'3\'))) { printf(\"\\n您的输入格式不正确,请重新输入!\\n按回车键继续...\"); getchar(); } }while(!((temp[4]==\'1\')||(temp[4]==\'2\')||(temp[4]==\'3\'))); if(temp[4]==\'1\') {

} memset(str3,\'\\0\',sizeof(str3)); printf(\"\\n请输入您要修改的学生学号:\\t\"); scanf(\"%s\",str3); changsc_num(head,str3); save(head); else if(temp[4]==\'2\') {

memset(str3,\'\\0\',sizeof(str3)); printf(\"\\n请输入您要修改的学生姓名:\\t\"); scanf(\"%s\",str3); changsc_name(head,str3); save(head); } break; } case \'5\': {

} {

do { system(\"cls\"); printf(\"\\t==============================\"); printf(\"\\n\\t\\t请输入查找方式:\\t\"); printf(\"\\n\\t\\t1.以学号方式\"); printf(\"\\n\\t\\t2.以姓名方式\"); printf(\"\\n\\t\\t3.退出\"); printf(\"\\t\\n==============================\"); printf(\"\\n\"); printf(\"您的选择是: \\t\"); temp[5]=getchar(); if(!((temp[5]==\'1\')||(temp[5]==\'2\')||(temp[5]==\'3\'))) { printf(\"\\n您的输入格式不正确,请重新输入!\\n按回车键继续...\"); getchar(); } }while(!((temp[5]==\'1\')||(temp[5]==\'2\')||(temp[5]==\'3\'))); if(temp[5]==\'1\') {

memset(str3,\'\\0\',sizeof(str3)); printf(\"\\n请输入您要查找的学生学号:\\t\"); scanf(\"%s\",str3); checknum(head,str3); getchar(); } else if(temp[5]==\'2\') { memset(str3,\'\\0\',sizeof(str3)); printf(\"\\n请输入您要查找的学生姓名:\\t\"); scanf(\"%s\",str3);

checkname(head,str3);

getchar(); } break; case \'6\': do { system(\"cls\"); printf(\"\\t==============================\"); printf(\"\\n\\t请输入信息管理操作:\\n\"); printf(\"\\n\\t1.发布公告\\n\");

} printf(\"\\n\\t2.删除信息\\n\"); printf(\"\\n\\t3.查看信息\\n\"); printf(\"\\n\\t4.退出\"); printf(\"\\n\\t==============================\"); printf(\"\\n\"); printf(\"您的选择是: \\t\"); temp[6]=getchar(); if(!((temp[6]>\'0\')&&(temp[6]

printf(\"\\n您的输入格式不正确,请重新输入!\\n按回车键继续...\"); getchar(); } }while(!((temp[6]>\'0\')&&(temp[6]

case \'1\': {

sentmsg(); break; } case \'2\': {

}

while(delemsg()); break; case \'3\': {

}

while(readmsg()); break; case \'4\': { }

break; //disload(); break; } break; case \'7\': {

system(\"cls\"); dislogintime(); getchar();

getchar(); break; } case \'8\': {

} case \'9\': {

do { system(\"cls\"); printf(\"\\t==============================\"); printf(\"\\n\\t请输入信息管理操作:\\n\"); printf(\"\\n\\t1.学号排序\\n\"); printf(\"\\n\\t2.平均分信息\\n\"); printf(\"\\n\\t3.退出\"); printf(\"\\n\\t==============================\"); printf(\"\\n\"); printf(\"您的选择是: \\t\"); temp[9]=getchar(); if(!((temp[9]>\'0\')&&(temp[9]

//先退出系统,然后进入用户登录界面

} }while(!((temp[9]>\'0\')&&(temp[9]

case \'1\': {

head=sortnum(head); save(head); disload(head); getchar(); break; } case \'2\': {

}

}

}

head=sortscore(head); save(head); disload(head); getchar(); break; break; case \'a\': {

} quet=1; loginout=0; do {

system(\"cls\"); printf(\"\\n\\n\\t您将退出教务管理系统...\\n\"); printf(\"\\n\\n\\tY:确认退出\\t\\tN:返回\\n\"); printf(\"\\n\\n\\n\"); printf(\"您的选择是:\\t\"); i=getchar(); if(!((i==\'y\')||(i==\'Y\')||(i==\'n\')||(i==\'N\'))) {

printf(\"\\n您的输入有误!请按回车键继续...\"); getchar(); menue[7]=1; } else menue[7]=0; } while(menue[7]); if((i==\'N\')||(i==\'n\')) quet=0; break; } } if(quet==1) {

} }while(loginout); }

/* ====================== 学生用户登录

====================== */ char stulogin(void)/*进入普通用户登录界面*/ {

char temp[6];//定义数据项的变量 int tem[6]; char going[6]; FILE *fp; maage *msg;//定义信息载体 char key,i,logout=0; while(!logout) { do { system(\"cls\"); printf(\"

%s学生登录\\n\",userlogin); printf(\"\\t=============================================\\n\"); printf(\"\\t\\t欢迎进入学生信息中心\\n\"); printf(\"\\n\"); printf(\"\\t\\t1.查看学生信息\\n\"); printf(\"\\n\"); printf(\"\\t\\t2.给管理员留言\\n\"); printf(\"\\n\"); printf(\"\\t\\t3.查看广播\\n\"); printf(\"\\n\"); printf(\"\\t\\t4.发送广播\\n\"); printf(\"\\n\"); printf(\"\\t\\t5.查看公告\\n\"); printf(\"\\n\"); printf(\"\\t\\t6.注销用户\\n\"); printf(\"\\t=============================================\\n\"); printf(\"

请按数字进行菜单选择\\n\"); printf(\"\\n您的选择是:\\t\"); key=getchar(); if(!((key>\'0\')&&(key

} printf(\"\\n您的输入有误,请重新输入!\"); printf(\"\\n\\n请按回车键继续...\"); getchar();

//如果不是选择退出

}while(!((key>\'0\')&&(key

} case \'2\': {

system(\"cls\"); msg=(maage*)malloc(sizeof(maage));

memset(msg->username,\'\\0\',sizeof(msg->username));//清除数组内容 strcpy(msg->username,\"学生\"); strcpy(msg->username,userlogin);

//加载用户名 printf(\"\\n您最大能留言的字数不超过ma_max个英文字符\"); printf(\"\\n\\n\\t请输入您要留言的信息,按回车键结束:\\t\"); scanf(\"%s\",msg->ma); fp=fopen(manager,\"a+\"); fwrite(msg,sizeof(maage),1,fp); fclose(fp);

printf(\"\\n留言成功!按回车键继续...\"); getchar(); getchar(); free(msg);

//结束操作 disnewst(); getchar(); getchar(); break;

//显示学生信息

break; } case \'3\': {

system(\"cls\"); msg=(maage*)malloc(sizeof(maage)); fp=fopen(share,\"r\"); memset(msg,\'\\0\',sizeof(maage));//清除信息内容 going[5]=1; rewind(fp); while((fread(msg,sizeof(maage),1,fp)!=0)) { printf(\"%s用户:\\t\",msg->username); printf(\"%s:\\n\\n\",msg->ma);

//结束操作 } fclose(fp);

printf(\"\\n退出成功!按回车键继续...\");

} getchar(); getchar(); free(msg); break; case \'4\': {

} system(\"cls\"); msg=(maage*)malloc(sizeof(maage));

memset(msg->username,\'\\0\',sizeof(msg->username));//清除数组内容 strcpy(msg->username,\"学生\"); strcpy(msg->username,userlogin);

//加载用户名

system(\"cls\"); printf(\"\\n\\t您最大能留言的字数不能超过200个英文字符\"); printf(\"\\n\\n请输入您要留言的信息,按回车键结束:\\t\"); scanf(\"%s\",msg->ma); fp=fopen(share,\"a+\"); fwrite(msg,sizeof(maage),1,fp); fclose(fp);

//结束操作

printf(\"\\n信息发送成功!按回车键继续...\"); getchar(); getchar(); free(msg); break; case \'5\': {

system(\"cls\"); msg=(maage*)malloc(sizeof(maage)); fp=fopen(outmsg,\"r\"); memset(msg,\'\\0\',sizeof(maage));//清除信息内容 going[5]=1; rewind(fp); while((fread(msg,sizeof(maage),1,fp)!=0)) { printf(\"%s用户:\\t\",msg->username); printf(\"%s:\\n\\n\",msg->ma);

//结束操作 } fclose(fp); printf(\"\\n退出成功!按回车键继续...\"); getchar(); getchar(); free(msg); break;

}

} } } case \'6\': { system(\"cls\"); do{

} printf(\"\\n\\t\\t您将退出学生用户中心\\n\"); printf(\"\\n\\t\\tY:确认\\tN:取消\"); printf(\"\\n\\n您的选择是:\\t\"); temp[5]=getchar(); }while(!((temp[5]==\'y\')||(temp[5]==\'Y\')||(temp[5]==\'n\')||(temp[5]==\'N\'))); if(temp[5]==\'y\'||temp[5]==\'Y\') { } return 1; break; /* ====================== 学生用户登录返回0,则说明文件不存在,返回1,则说明找到用户信息,返回2,说明刚注册了该用户信息

====================== */ char stucheck(char *nam,char *stnum)/*查找是否存在该学生信息*/ {

FILE *fp; /*用于打开用户数据库*/ stu *st; /*目的用于寻找学生信息*/ st=(stu*)malloc(sizeof(stu)); fp=fopen(stu_msg,\"r\"); if(fp==NULL) {

} rewind(fp); while((fread(st,sizeof(stu),1,fp))==1) { if((strcmp(st->name,nam)==0)&&(strcmp(st->num,stnum)==0)) /*核实用户名和学号printf(\"\\n\\t\\t没有用户数据!请重新注册用户信息...\"); getchar(); return 0; 是否正确*/

{

memset(userlogin,\'\\0\',sizeof(userlogin));

} strcpy(userlogin,st->name);

/*存在该学生用户,保存用户姓名*/

}

printf(\"\\n\\t\\t用户存在!请按回车键继续...\"); getchar(); fclose(fp);

return 1;

/*关闭学生文件*/

/*操作成功*/ if(strcmp(st->name,nam)==0) {

} printf(\"\\n\\t\\t用户名存在,学号错误!请按回车键继续...\\n\"); getchar(); fclose(fp); return 2; } fclose(fp); printf(\"\\n\\t\\t学生用户不存在\\n\"); getchar(); return 3;

/* ====================== 学生用户登录返回0,则说明文件不存在,返回1,则说明找到用户信息,返回2,说明刚注册了该用户信息

====================== */ char newlogin(char *nam,char *stnum)/*注册学生信息*/ {

char i=0; FILE *fp; stu *st; st=(stu*)malloc(sizeof(stu)); i=stucheck(nam,stnum); switch(i) {

case 0: {

fp=fopen(stu_msg,\"w\"); printf(\"\\n\\t\\t%s信息将被注册...\",nam); getchar(); memset(st->num,\'\\0\',sizeof(st->num)); memset(st->name,\'\\0\',sizeof(st->name));

/*对数据进行清零*/ /*对数据进行清零*/

strcpy(st->name,nam);

strcpy(st->num,stnum);

st->score[0]=0;

st->score[1]=0;

st->score[2]=0;

st->score[3]=0;

st->average=0;

fwrite(st,sizeof(stu),1,fp);

fclose(fp);

return 1;

}

case 1:

{

return 0;

break;

}

case 2:

{

return 0;

break;

}

case 3:

{

memset(userlogin,\'\\0\',sizeof(userlogin));

strcpy(userlogin,st->name);

fp=fopen(stu_msg,\"a\");

printf(\"\\n\\t\\t%s信息将被注册...\");

memset(st->num,\'\\0\',sizeof(st->num));

memset(st->name,\'\\0\',sizeof(st->name));

strcpy(st->name,nam);

strcpy(st->num,stnum);

st->score[0]=0;

st->score[1]=0;

st->score[2]=0;

st->score[3]=0;

st->average=0;

fwrite(st,sizeof(stu),1,fp);

fclose(fp);

return 1;

}

default :return 0; } }

/*保存学生信息*/

/*对数据进行清零*/ /*对数据进行清零*/

/*保存学生信息*/ /* ====================== 显示学生用户信息

====================== */ void disnewst(void)/*获得学生信息*/ {

stu *p; FILE *fp; char temp,full=0; printf(\"姓名\\t学号\\t %s\\t %s\\t %s\\t%s\\t平均分 \\n\",\\ sc_name[0],sc_name[1],sc_name[2],sc_name[3]);

fp=fopen(stu_msg,\"r\"); p=(stu*)malloc(sizeof(stu)); do {

if(fread(p,sizeof(stu),1,fp)==1) { if(strcmp(userlogin,p->name)==0)

{ full=1;

/*已找到用户信息*/ /*退出循环*/

} else { temp=0;

full =0; temp =1; } } else { temp=0; } }while(temp); if(full==1) { printf(\"%s\\t%s\\t %d\\t %d\\t%d\\t%d\\t%d\\n\",\\

p->name,p->num,p->score[0],p->score[1],p->score[2],p->score[3],p->average); } getchar(); else { printf(\"\\n\\n\\t\\t找不到学生用户信息!按回车键继续...\");

} /* getchar(); getchar(); } fclose(fp);

/*关闭文件信息*/ ====================== 发送公告

====================== */ void sentmsg(void)/*发送公告*/ {

} /* ====================== 浏览公告

====================== */ char readmsg(void)/*浏览信息*/ { FILE *fp; maage *msg; FILE *fp; maage *msg; int i=0; fp=fopen(outmsg,\"a+\"); if(fp==NULL) { } fp=fopen(outmsg,\"w+\"); msg=(maage*)malloc(sizeof(maage)); system(\"cls\"); printf(\"\\n\\n请输入您要公布的信息,按回车键结束:\\t\"); memset(msg,\'\\0\',sizeof(maage));//清除 scanf(\"%s\",msg->ma); strcpy(msg->username,\"管理员\"); strcpy(msg->username,userlogin); fwrite(msg,sizeof(maage),1,fp); printf(\"\\n\\n公告发布成功!\"); getchar(); getchar(); free(msg); fclose(fp);

int i=0; char key=0; char chose,temp=1; do{ system(\"cls\"); printf(\"======================================\\n\"); printf(\"请输入您要浏览的信息:\"); printf(\" \\n\"); printf(\"1.管理员邮箱\\n\"); printf(\"\\n\"); printf(\"2.学生共享信息\\n\"); printf(\"\\n\"); printf(\"3.公告邮箱信息\\n\"); printf(\"\\n\"); printf(\"4.退出\"); printf(\"\\n======================================\\n\"); printf(\"\\t\\t\\t\\t请按照提示选择\\n\\n\"); printf(\"\\n\\n您的选择是:\\t\"); key=getchar(); if(!((key>\'0\')&&(key\'0\')&&(key

case \'1\': { fp=fopen(manager,\"r\");

msg=(maage*)malloc(sizeof(maage)); memset(msg,\'\\0\',sizeof(maage)); rewind(fp); while((fread(msg,sizeof(maage),1,fp)==1)) {

} printf(\"%s用户:\\t\",msg->username); printf(\"%s\\n\",msg->ma); memset(msg,\'\\0\',sizeof(maage)); getchar(); getchar(); free(msg); fclose(fp); return 1;

break; } case \'2\': { msg=(maage*)malloc(sizeof(maage));

} fp=fopen(share,\"r\"); memset(msg,\'\\0\',sizeof(maage));//清除信息内容 rewind(fp); while((fread(msg,sizeof(maage),1,fp))!=0) { printf(\"%s用户:\\t\",msg->username); printf(\"%s:\\n\\n\",msg->ma);

} fclose(fp); printf(\"\\n\\n信息读取完毕!按回车键继续...\");//结束操作 getchar(); getchar(); free(msg); return 1; break; case \'3\': { fp=fopen(outmsg,\"r\"); msg=(maage*)malloc(sizeof(maage));

memset(msg,\'\\0\',sizeof(maage)); rewind(fp); while((fread(msg,sizeof(maage),1,fp)==1)&&temp) { printf(\"%s用户:\\t\",msg->username); printf(\"%s\\n\",msg->ma); memset(msg,\'\\0\',sizeof(maage)); } getchar(); getchar(); free(msg); fclose(fp); return 1; break; } case \'4\': { return 0; break;

}

/* } } ====================== 浏览公告

====================== */ char delemsg(void)//删除信息 {

FILE *fp; maage *msg; int i=0; char key=0; char chose,temp=1; do{ system(\"cls\"); printf(\"======================================\\n\"); printf(\"请输入您要删除的信息:\"); printf(\" \\n\"); printf(\"1.管理员邮箱\\n\"); printf(\"\\n\"); printf(\"2.学生共享信息\\n\"); printf(\"\\n\"); printf(\"3.公告信息\\n\"); printf(\"\\n\"); printf(\"4.退出\"); printf(\"\\n======================================\\n\"); printf(\"\\t\\t\\t\\t请按照提示选择\\n\\n\"); printf(\"\\n\\n您的选择是:\\t\"); key=getchar(); if(!((key>\'0\')&&(key

printf(\"\\n您的输入有误,请按回车键继续...\\n\"); getchar(); } }while(!((key>\'0\')&&(key

C语言课程设计销售管理系统报告

C语言课程设计 仓库管理系统

课程设计报告 C语言

C语言课程设计报告

C语言课程设计报告

C语言课程设计报告

C语言课程设计报告

C语言课程设计报告

C语言课程设计报告学生成绩管理系统(vc)

C++课程设计(教务管理系统)

C语言课程设计报告——教务管理系统
《C语言课程设计报告——教务管理系统.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档