学生管理系统 最新修改
来源:互联网 发布:逆袭网络剧1第一视频 编辑:程序博客网 时间:2024/05/22 06:23
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "conio.h"
#define LEN sizeof(struct student)
typedef struct student
{
char num[10];
char name[10];
int math,english,computer,yuwen;
int total;
struct student *next;
}student, *LinkList;
void Login();
void weixiu();
void menu() ;
int Open(LinkList L);
void printstart() ;
void Wrong() ;
void Nofind() ;
void printc();
void getinf(LinkList L);
void orderbyzongfen(LinkList L);
void deleteall(LinkList L);
void Developer();
void Sort(LinkList L);
void Save(LinkList L);
LinkList dingwei(LinkList L,char findmess[],char nameornum[]);
LinkList L;
int main(void)
{
Login();
return 0;
}
/*---------------------------------------------------输入学生成绩并计算-----------------------------------------------------*/
void getinf(LinkList L)
{
LinkList r,s;
r=(LinkList )malloc(LEN);
printf("请输入学号:");
scanf("%s",r->num);
printf("请输入名字");
scanf("%s",r->name);
printf("请输入语文成绩:");
scanf("%d",&r->yuwen);
printf("请输入数学成绩:");
scanf("%d",&r->math);
printf("请输入英语成绩:");
scanf("%d",&r->english);
printf("请输入电脑成绩:");
scanf("%d",&r->computer);
r->total=r->math+r->english+r->computer+r->yuwen;
s=L->next;
L->next=r;
r->next=s;
printf("追加记录成功!/n");
}
/*------------------------------该函数用于定位连表中符合要求的接点,并返回该指针---------------------------*/
LinkList dingwei(LinkList L,char findmess[],char nameornum[])
{
LinkList r;
if(strcmp(nameornum,"num")==0)
{
r=L->next;
while(r!=NULL)
{
if(strcmp(r->num,findmess)==0)
return r;
r=r->next;
}
r=NULL;
return r;
}
else if(strcmp(nameornum,"name")==0)
{
r=L->next;
while(r!=NULL)
{
if(strcmp(r->name,findmess)==0)
return r;
r=r->next;
}
r=NULL;
return r;
}
else return 0;
}
/*---------------------------------------------删除记录--------------------------------------------------*/
void deleteall(LinkList L)
{
char ch;
printf("确定您要清除文件里所有学生的信息,这样就无法恢复数据了( Y or N )/n");
getchar();
scanf("%c",&ch);
if(ch == 'y' || ch == 'Y')
{
L->next = NULL;
printf("文件里学生成绩信息已经被清除!/n");
}
else return;
}
/*-------------------------------------------------排序记录------------------------------------------------------------*/
void Sort(LinkList L)
{
LinkList p,r,s;
p = L;
r = p ->next;
s = p ->next->next;
while(s != NULL)
{
while(s ->total < p ->next->total)
p = p ->next;
if(p ->next == s)
{
printf("排序已完成!/n");return;
}
else
{
r ->next = s ->next;
s ->next = p ->next;
p ->next = s;
s = r ->next;
p = L;
}
}
printf("排序成功!/n");
}
/*--------------------------------------------------------- 排名---------------------------------------------------*/
void orderbyzongfen(LinkList L)
{
LinkList p;
p=L;
if(p->next!=NULL)
{
printstart();
printc();
for (p=p->next;p!=NULL;p=p->next)
printf("%3s/t%7d/t/t%5d/t/t%5d/t%7d/t%10d/n",p->num,p->yuwen,p->math,p->english,p->computer,p->total);
printstart();}
else Nofind();
}
/*-----------------------------------------------------------打开文件--------------------------------------------------------*/
int Open(LinkList L)
{
FILE *fp;
LinkList p1,p2;
char choose;
int count=0;
p1=L;
p1->next=NULL;
fp=fopen("E://student_score","rb");
if(fp==NULL)
{
printf("/n=====>提示:文件还不存在,是否创建?(y/n)/n");
scanf("%c",&choose);
if(choose=='y'||choose=='Y')
{
fp=fopen("E://student_score","wb");
printf("文件已创建,请按回车键关闭,然后重新打开软件/n");getchar();getchar();exit(0);
}
else exit(0);
}
p2=(LinkList)malloc(LEN);
while(fread(p2,LEN,1,fp))
{
p2->next=NULL;
p1->next=p2;
p1=p2;
p2=(LinkList)malloc(LEN);
count++;
}
p2->next=NULL;
fclose(fp);
return 1;
}
/*-----------------------------------------------------保存文件----------------------------------------------------*/
void Save(LinkList L)
{
FILE *fp;
LinkList p1;
char choose;
if(L ->next == NULL)
{printf("没有可以保存的信息!/n");
return;}
printf("确认保存?(y/n)/n");
getchar();
scanf("%c",&choose);
getchar();
if(choose == 'y' || choose == 'Y')
{
fp=fopen("E://student_score","wb");
p1=L;
p1=p1->next;
while(p1)
{
if(fwrite(p1,LEN,1,fp)==1)
{
p1=p1->next;
}
else
break;
}
fclose(fp);
printf("保存成功!/n");
}
else printf("没有保存!/n");
}
void weixiu()
{
printf("/n/n/n");
printf("/n **************************************************************");
printf("/n ");
printf("/n 欢迎使用成绩管理系统.本系统尚在试用阶段,有问题请与我联系! ");
printf("/n ");
printf("/n 我的qq是 810097972 ");
printf("/n **************************************************************");
}
/*----------------------------------------------------界面函数-------------------------------------------*/
void Login()
{
system("color 5f");
char ch[23];
int i=0;
char mima[45];
L=(LinkList)malloc(LEN);
int sel,count=0;
weixiu();
printf("/n/n/n");
printf("/n请选择您的登陆方式( 1 :管理员 2 :普通用户 )");
scanf("%d",&i);
switch(i)
{
case 1:
system("cls");
weixiu();
printf("/t/t/t/t用户名:");
scanf("%s",ch);
printf("/t/t密码:");
scanf("%s",mima);
if(strcmp(mima,"123456")==0 && strcmp(ch,"何涛")==0)
{
getchar();printf("/n按回车返回主菜单/n");getchar();
system("cls");
}
else
{
printf("您的用户名或密码有误,无法登陆!/n");
exit(0);
}
menu();
Open(L);
for (scanf("%d",&sel);sel!=0;system("cls"),menu(),scanf("%d",&sel))
{
switch (sel)
{
case 1:
getinf(L);
count++;Save(L);getchar();printf("/n按回车返回主菜单/n");getchar();
break;
case 2:Sort(L);orderbyzongfen(L);getchar();printf("/n按回车返回主菜单/n");getchar();
break;
case 3:
deleteall(L);getchar();printf("/n按回车返回主菜单/n");getchar();
count--;
break;
case 4:
Developer();getchar();printf("/n按回车返回主菜单/n");getchar();
break;
case 5:
printf("谢谢使用 !有问题可以与我联系/n/t/tqq810097972/n");
exit(0);
break;
default:
Wrong();getchar();printf("/n按回车返回主菜单/n");getchar();
}
}
break;
case 2:
system("cls");
Open(L);
printf("/n/t/t/t/t1:按高分排序并显示/n/t/t/t/t2:制作人员/n/t/t/t/t3:退出系统/n");
printf("请选择你要的操作:");
for (scanf("%d",&sel);sel!=0;system("cls"),menu(),scanf("%d",&sel))
{
switch (sel)
{
case 1:Sort(L);orderbyzongfen(L);getchar();printf("/n按回车返回主菜单/n");getchar();
break;
case 2:
Developer();getchar();printf("/n按回车返回主菜单/n");getchar();
break;
case 3:
printf("谢谢使用 !有问题可以与我联系/n/t/tqq810097972/n");
exit(0);
break;
default:
Wrong();getchar();printf("/n按回车返回主菜单/n");getchar();
}
}
break;
break;
}
printf("/n |************************************************************|");
}
void menu()
{
printf("/n/t/t/t/t欢迎进入成绩管理系统/t/t/t/n/n/t/t1:输入学生成绩并计算/n/t/t2:按高分排序并显示/n/t/t3:删除数据/n/t/t4:制作人员/n/t/t5:退出系统/n/n选择您要进入的菜单,请输入功能号(0~5):") ; //主界面)
}
void printstart()
{
printf("/n-------------------------------------------------------------------/n");
}
void Wrong()
{
printf("提示:输入错误!/n");
}
void Nofind()
{
printf("提示:没有找到该学生!/n");
}
void Developer()
{
printf("/n/n/n/t/t/t/t/t制作人员:/n/t/t/t/t/t/t ------何涛/n/n/n");
}
void printc()
{
printf("学号/t语文成绩 数学成绩 英语成绩 电脑成绩 总分/n");
}
- 学生管理系统 最新修改
- 学生管理系统修改
- MFC学生健康管理系统(修改版)
- 学生管理系统——修改部分
- 【php】4、学生管理系统-修改界面
- 学生管理系统(五)---修改窗体
- 学生管理系统Bug修改--Combo.AddItem 的运用
- 学生学籍管理系统_学生登陆系统查询与修改信息
- 一个学生管理系统
- 学生同学录管理系统
- 学生管理系统
- 销售学生管理系统
- 学生通讯管理系统
- 学生管理系统
- 学生管理系统
- 学生管理系统
- 学生管理系统
- 学生学籍管理系统
- 微软.net framework 核心库代码开源了,在VS2008中查看.net framework的源代码
- EXCEL某列长度超过255个字符导入SQL SERVER2005的处理方法
- C#获得汉字的首拼音
- 九张机
- September 16th Wednesday
- 学生管理系统 最新修改
- CSS中expression使用简介
- 惋惜
- B/S,C/S
- 安装MySQL-python(MySQLdb)时报错,找不到libmysqlclient_r.so.16动态连接库
- 如何在google中收录您的网站
- FLEX 解析XML
- 关于多个应用在同一个server中部署时出现cookies被覆盖的解决方案
- 笔试题收集-2