写c语言学生信息管理系统 求前辈指点一二 大恩不言谢 没有赏金了

写c语言学生信息管理系统 求前辈指点一二 大恩不言谢 没有赏金了,第1张

#include <stdioh>

#include <ioh>

#include <conioh>

#include <stdlibh>

#include <stringh>

#define MAX 200

struct student

{

char no[10];  // 学号

char name[50]; // 姓名

float score[3];      // 分数

float math;

float eng;

float phy;

};

struct data

{

int count;   // 当前学生数组中学生的个数

struct student stu[MAX]; // 学生数组

}dd;

// 显示主菜单

void menu()

{

system("cls");//清屏 

printf("\n\n\n");

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

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

printf("\t\t\t     学生成绩管理系统       \n");

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

printf("\t\t\t    [1]   查看所有学生信息      \n");

printf("\t\t\t    [2]   输入学生记录        \n");

printf("\t\t\t    [3]   删除学生记录         \n");

printf("\t\t\t    [4]   修改学生记录        \n");

printf("\t\t\t    [5]   查询学生成绩(学号)     \n");

printf("\t\t\t    [6]   查询成学生绩(姓名)      \n");

printf("\t\t\t    [7]   查看成绩排序(学号)      \n");

printf("\t\t\t    [0]   退出                 \n");

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

}

// 等待用户按回车后回到主菜单

void to_menu()

{

char c1,c2;

printf("\n\n\n按回车键返回主菜单");

scanf("%c%c",&c1,&c2);//第一个字符吸收上次的确认回车键 

menu();

}

//统计信息

void ren()

{

int A=0,B=0,C=0,D=0,E=0,s;

int i;

for(i=0;i<ddcount;i++)

{

s=(int)(ddstu[i]math/10);

switch(s)

{

case 10:

case 9:

A++;

break;

case 8:

B++;

break;

case 7:

C++;

break;

case 6:

D++;

break;

default :

E++;

break;

}

}

printf("总人数:%d\n",ddcount); 

printf("获得“优秀”的人数:%d\n",A);

printf("获得“良”的人数:%d\n",B);

printf("获得“中”的人数:%d\n",C);

printf("获得“及格”的人数:%d\n",D);

printf("不及格的人数:%d\n",E);

}

// 查看所有学生信息

void view_data()

{

int i;

printf("学号\t姓名\t数学\t英语\t物理");

printf("\n-------------------------------------------------------------------\n");

for(i=0;i<ddcount;i++)

printf("%s\t%s\t%-71f\t%-71f\t%-71f\n",ddstu[i]no,ddstu[i]name,ddstu[i]math,ddstu[i]eng,ddstu[i]phy);

printf("\n-------------------------------------------------------------------\n");

ren();

}

// 将数据从结构体数组保存到文件中

void save_data()

{

FILE fp;//文件指针 

int i,k;

k = ddcount; //其实k没有什么实际的意义,直接在fwrite里使用&ddcount就可以了。

fp=fopen("D:\\datatxt","w");//文件存储位置:当前文件夹 

fwrite(&k,sizeof(int),1,fp);

for(i=0;i<ddcount;i++)

fwrite(&ddstu[i],sizeof(struct student),1,fp);

fclose(fp);

}

// 输入学生记录

void add_data()

{

int b;

int k = ddcount;

while(k<MAX)

{

printf("请输入学生学号:");  scanf("%s",ddstu[k]no);

printf("请输入学生姓名:");  scanf("%s",ddstu[k]name);

printf("请输入数学成绩:");  scanf("%f",&ddstu[k]math);

printf("请输入英语成绩:");  scanf("%f",&ddstu[k]eng);

printf("请输入物理成绩:");  scanf("%f",&ddstu[k]phy);

ddcount++; //需要提前置0,在主函数中。

k = ddcount;

printf("\n\n继续添加学生信息[1-yes 0-no]:");

scanf("%d",&b);

if(b==0) break;

}

save_data();

}

// 将数据从文件读到结构体数组中

void read_data()

{

FILE fp;

int i,k;

k=0;

if((fp=fopen("D:\\datatxt","r"))==NULL) // 如果文件不存在

{

ddcount = 0;

}

else

{

fread(&k,sizeof(int),1,fp);

ddcount = k;

for(i=0;i<k;i++)

{

fread(&ddstu[i],sizeof(struct student),1,fp);

}

fclose(fp);

}

}

// 删除学生记录

void delete_data()

{

int i,k;

char no[10];

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

scanf("%s",no);

k = -1;

for(i=0;i<ddcount;i++)

{

if(strcmp(ddstu[i]no,no)==0)

{

k = i;

break;

}

}

if(k==-1)

{

printf("\n\n没有找到该学生(学号-%s)!",no);

}

else

{

//你没有写删除的 *** 作啊

for(i=k; i<ddcount-1; i++) //将后面的数据前移一位

ddstu[i] = ddstu[i+1];

memset(&ddstu[ddcount-1],0,sizeof(struct student)); //将ddstu[ddcount-1]数据置0

ddcount--;

save_data();

printf("\n\n删除学生(学号-%s)记录成功!",no);

}

}

// 修改学生记录

void edit_data()

{

int i,k;

char no[10],name[50];

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

scanf("%s",no);

k=-1;

for(i=0;i<ddcount;i++)

{

if(strcmp(ddstu[i]no,no)==0)

{

k=i;

break;

}

}

if(k==-1)

{

printf("\n\n没有找到该学生(学号-%s)!",no);

}

else

{

printf("\n请输入学生数据:");

printf("\n姓名");

printf("\n--------------------------------------------------------------------\n");

scanf("%s",name);

strcpy(ddstu[k]name,name);

save_data();

printf("\n\n修改学生记录(学号-%s)成功!",no);

}

}

// 查询学生成绩(学号)

void query_data_no()

{

int i,k;

char no[10];

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

scanf("%s",no);

k=-1;

for(i=0;i<ddcount;i++)

{

if(strcmp(ddstu[i]no,no)==0)

{

printf("\n\n学号\t姓名\t数学\t英语\t物理");

printf("\n-----------------------------------------------------------------\n");

k=i;

printf("%s\t%s\t%-71f\t%-71f\t%-71f\n",ddstu[i]no,ddstu[i]name,ddstu[i]math,ddstu[i]eng,ddstu[i]phy);

break; // 学号应该是唯一的,找到了一个就代表以后的没有了。

}

}

if(k==-1)

{

printf("\n\n没有找到该学生(学号-%s)!",no);

}

}

// 查询学生成绩(姓名)

void query_data_name()

{

int i,k;

char name[10];

printf("\n请输入要查询学生的姓名:");

scanf("%s",name);

k=-1;

for(i=0;i<ddcount;i++)

{

if(strcmp(ddstu[i]name,name)==0)

{

printf("\n\n学号\t姓名\t数学\t英语\t物理");

printf("\n-----------------------------------------------------------------\n");

k=i;

printf("%s\t%s\t%-71f\t%-71f\t%-71f\n",ddstu[i]no,ddstu[i]name,ddstu[i]math,ddstu[i]eng,ddstu[i]phy);

break;

}

}

if(k==-1)

{

printf("\n\n没有找到该学生(姓名-%s)!",name);

}

}

// 排序(学号)

void sort_data_no(struct data Buff)

{

int i;

    int j;

int k;

int h;

struct student temp;

FILE fp;

    if((fp=fopen("D:\\datatxt","w+"))==NULL)

{

printf("cannot open file!\n");

exit(0);

}

printf("请输入要查询的科目:1-数学,2-英语,3-物理:");

scanf("%d",&k);

    switch(k)

{

case 1:

for(i=0; i<Buffcount-1; i++)

for(j=i+1; j<Buffcount; j++)

if(Buffstu[i]math > Buffstu[j]math)

{

temp=Buffstu[i];

Buffstu[i]=Buffstu[j];

Buffstu[j]=temp;

}

            printf("名次\t学号\t 姓名\t数学\n");

for(i=0; i<Buffcount; i++)

printf("%d\t%s\t%s\t%-71f\n",i+1,Buffstu[i]no,Buffstu[i]name,Buffstu[i]math);

break;

case 2:

for(i=0; i<Buffcount-1; i++)

for(j=i+1; j<Buffcount; j++)

if(Buffstu[i]eng > Buffstu[j]eng)

{

temp=Buffstu[i];

Buffstu[i]=Buffstu[j];

Buffstu[j]=temp;

}

printf("名次\t学号\t 姓名\t英语\n");

for(i=0; i<Buffcount; i++)

printf("%d\t%s\t%s\t%-71f\n",i+1,Buffstu[i]no,Buffstu[i]name,Buffstu[i]eng);

break;

case 3:

for(i=0; i<Buffcount-1; i++)

for(j=i+1; j<Buffcount; j++)

if(Buffstu[i]phy > Buffstu[j]phy)

{

temp=Buffstu[i];

Buffstu[i]=Buffstu[j];

Buffstu[j]=temp;

}

printf("名次\t学号\t 姓名\t物理\n");

for(i=0; i<Buffcount; i++)

printf("%d\t%s\t%s\t%-71f\n",i+1,Buffstu[i]no,Buffstu[i]name,Buffstu[i]phy);

break;

default :

printf("输入错误!");

exit(0);

}

printf("请按任意键继续");

getch();

fclose(fp);

}

// 主函数

void main()

{

int fun;

ddcount = 0;

read_data();

menu();

while(1)

{

printf("请输入功能号[0-7]:");//这里不需要什么&fun,

scanf("%d",&fun);

switch(fun)

{

case 1: view_data();break;        // 查看所有学生信息 

case 2: add_data(); break;       // 输入学生记录  

case 3: delete_data();break;      // 删除学生记录

case 4: edit_data();break;    // 修改学生记录

case 5: query_data_no();break;   // 查询学生成绩(学号)

case 6: query_data_name();break;   //  查询成学生绩(姓名)   

case 7: sort_data_no(dd); break;   // 查看成绩排序(学号) //直接将结构体dd发送过去就可以了

case 0: break;                   // 退出

}

if(fun==0) break;  

to_menu();

}

return;

}

/好吧,其实你可以上网看看,那么多的,你可以自己修改下/

#include <stdioh>

#include <malloch>

#include <stringh>

#include <stdlibh>

#define NULL 0

#define LEN sizeof(struct student)

struct student

{

char name[20];

long int num;

char sex[4];

int age;

char address[30];

double tele_num;

char aihao[20];

struct student next;

};//定义一个结构题

int TOTAL_NUM = 0;//学生总数

struct student head = NULL;

void welcome (); //欢迎界面

void mainmenu (); //主界面

void record (); //记录数据

void insert(struct student stu); //插入数据

void display(struct student stu); //显示一个学生的信息

void displayAll (); //显示所有学生的信息

void query_by_num (); //按学号查询学生信息

void readData (); //读取文件里学生的信息

void writeData (); //向文件写入学生信息

void freeAll (); //清空链表内容

void del (); //删除学生信息

void change (); //更改学生信息

void devise (struct student p); //选择更改内容

int main (void)

{

welcome ();

//显示主菜单

mainmenu ();

return 0;

}

//显示欢迎信息

void welcome ()

{

printf ("+----------------------------------------------------+\n");

printf ("| |\n");

printf ("| 欢迎使用网络工程学院信息安全092班学生信息管理系统 |\n");

printf ("| |\n");

printf ("+----------------------------------------------------+\n");

}

//系统主菜单

void mainmenu ()

{

int choice;

choice = -1;

readData ();

printf ("\n温馨提示:为保证您的 *** 作得到保存,请按正常顺序退出系统^_^\n");

do

{

printf ("\n\n\n");

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

printf ("\t\t\t+ 信息安全092班学生信息管理系统 |\n");

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

printf ("\t\t\t+ [1]----录入学生信息 |\n");

printf ("\t\t\t+ [2]----浏览学生信息 |\n");

printf ("\t\t\t+ [3]----查询学生信息 |\n");

printf ("\t\t\t+ [4]----删除学生信息 |\n");

printf ("\t\t\t+ [5]----修改学生信息 |\n");

printf ("\t\t\t+ [0]----退出系统 |\n");

printf ("\t\t\t+··············|\n");

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

printf ("请输入您的选择:");

scanf ("%d", &choice);

switch (choice)

{

case 0:

writeData ();

freeAll ();

exit (0);

case 1:

record ();

break;

case 2:

displayAll ();

break;

case 3:

query_by_num ();

break;

case 4:

del ();

break;

case 5:

change ();

break;

default:

printf ("\n无效选项!");

break;

}

}

while (choice != 0);

}

//录入学生信息

void record ()

{

struct student p0;

p0 = (struct student )malloc(LEN);

printf ("请输入学生的姓名:");

scanf ("%s",p0->name);

printf ("请输入学生的学号:");

scanf ("%ld",&p0->num);

printf ("请输入学生的性别:");

scanf ("%s",p0->sex);

printf ("请输入学生的年龄:");

scanf ("%d",&p0->age);

printf ("请输入学生的地址:");

scanf ("%s",p0->address);

printf ("请输入学生的电话:");

scanf ("%lf",&p0->tele_num);

printf ("请输入学生的爱好:");

scanf ("%s",p0->aihao);

insert (p0);

printf ("该学生的信息为:\n");

printf ("-------------------------------------------------------------------------------\n");

printf ("姓名\t学号\t\t年龄\t性别\t地址\t\t电话\t\t爱好\n");

display (p0);

}

void insert (struct student stu)

{

struct student p0, p1, p2;

p1 = head;

p0 = stu;

if (head == NULL)

{

head = p0;

p0->next = NULL;

}

else

{

while ((p0->num > p1->num)&&(p1->next != NULL))

{

p2 = p1;

p1 = p1->next;

}

if (p0->num <= p1->num)

{

if (head == p1)

head = p0;

else

p2->next = p0;

p0->next = p1;

}

else

{

p1->next = p0;

p0->next = NULL;

}

}

TOTAL_NUM++;

}

void display (struct student p)

{

printf ("%s\t%ld\t%d\t%s\t%s\t\t%0f\t%s\n", p->name, p->num, p->age, p->sex, p->address, p->tele_num, p->aihao);

}

//浏览学生信息

void displayAll()

{

struct student p;

printf("学生总数:%d\n", TOTAL_NUM);

p = head;

if (head != NULL)

{

printf("\n姓名\t学号\t\t年龄\t性别\t地址\t\t电话\t\t爱好\n");

printf("-------------------------------------------------------------------------------\n");

do

{

display(p);

p = p->next;

}

while(p != NULL);

}

printf ("\n");

}

//按学号查询学生信息

void query_by_num ()

{

int num;

struct student p1;

printf("请输入学生的学号:");

scanf("%ld", &num);

if(head==NULL)

{

printf("无学生记录!\n");

return;

}

p1 = head;

while (num!=p1->num && p1->next!=NULL)

p1 = p1->next;

if (num == p1->num)

{

printf ("姓名\t学号\t\t年龄\t性别\t地址\t\t电话\t\t爱好\n");

printf ("-------------------------------------------------------------------------------\n");

display (p1);

}

else

printf ("没有该学生记录,请核对!");

}

//写入文件

void writeData ()

{

FILE fp;//文件指针

struct student p;

fp = fopen("1txt", "w");

if (!fp)

{

printf("文件打开错误!");

return;

}

fprintf(fp,"%d\n", TOTAL_NUM);

for(p = head; p!= NULL; p= p->next)

{

fprintf(fp,"%s\t%ld\t%s\t%d\t%s\t%0f\t%s\n", p->name, p->num, p->sex, p->age, p->address, p->tele_num, p->aihao);

}

fclose (fp);

}

void freeAll ()

{

struct student p1, p2;

p1 = p2=head;

while(p1)

{

p2=p1->next;

free (p1);

p1 = p2;

}

}

//读取文件

void readData ()

{

FILE fp;//文件指针

struct student p1, p2;

fp = fopen("1txt", "r");

if (!fp)

{

printf("文件打开错误!");

return;

}

fscanf(fp,"%d\n", &TOTAL_NUM);

head = p1 = p2 = (struct student )malloc(LEN);

fscanf(fp,"%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n", p1->name, &p1->num, p1->sex, &p1->age, p1->address, &p1->tele_num, p1->aihao);

while(!feof(fp))

{

p1 = (struct student )malloc(LEN);

fscanf(fp,"%s\t%ld\t%s\t%d\t%s\t%lf\t%s\n", p1->name, &p1->num, p1->sex, &p1->age, p1->address, &p1->tele_num, p1->aihao);

p2->next = p1;

p2 = p1;

}

p2->next = NULL;

fclose(fp);

}

//删除学生信息

void del ()

{

struct student p1, p2;

long int num;

if (head == NULL)

{

printf("无学生记录!\n");

return;

}

printf("请输入您要删除的学生的学号:");

scanf("%ld", &num);

p1 = head;

while (num != p1->num && p1->next != NULL)

{

p2 = p1;

p1 = p1->next;

}

if(num == p1->num)

{

if(p1 == head)

head = p1->next;

else p2->next = p1->next;

free(p1);

TOTAL_NUM--;

}

else

printf("没有该学生记录,请核对!\n");

}

//修改学生信息

void change ()

{

struct student p1, p2;

long int num;

if (head == NULL)

{

printf ("无学生记录!\n");

return;

}

printf ("请输入您要修改的学生的学号:");

scanf ("%ld", &num);

p1 = head;

while (num != p1->num && p1->next != NULL)

{

p2 = p1;

p1 = p1->next;

}

if(num == p1->num)

devise (p1);

else

printf("没有该学生记录,请核对!\n");

}

void devise (struct student p)

{

int choice;

choice = -1;

do

{

printf("请选择您要修改的学生的信息内容:\n");

printf("+----------------------+\n");

printf("| 姓名 请按 1 |\n");

printf("| 学号 请按 2 |\n");

printf("| 性别 请按 3 |\n");

printf("| 年龄 请按 4 |\n");

printf("| 地址 请按 5 |\n");

printf("| 电话 请按 6 |\n");

printf("| 爱好 请按 7 |\n");

printf("| 取消 请按 0 |\n");

printf("+----------------------+\n");

printf("请输入您的选择:");

scanf("%d", &choice);

switch (choice)

{

case 0:

return;

case 1:

printf("请输入新姓名:");

scanf("%s", p->name);

break;

case 2:

printf("请输入新学号:");

scanf("%d", &p->num);

break;

case 3:

printf("请输入新性别:");

scanf("%s", p->sex);

break;

case 4:

printf("请输入新年龄:");

scanf("%s", &p->age);

break;

case 5:

printf("请输入新地址:");

scanf("%s", p->address);

break;

case 6:

printf("请输入新电话:");

scanf("%lf", &p->tele_num);

break;

case 7:

printf("请输入新爱好:");

scanf("%s", p->aihao);

break;

default:

printf("\n无效选项!");

break;

}

}

while(choice != 0);

}

给你一个看看

#include<stdioh>

#include <timeh>

#include<conioh> /清屏/

#include <stdlibh> /显示目录/

#include<stringh>

#define MAX 80

void input(); /输入数据函数/

void sort();/排序数据函数/

void sort1();

void sort2();

void sort3();

void display();/显示数据函数/

void display1();

void insert(); /插入数据函数/

void del(); /删除数据函数/

void average(); /平均值函数/

void find();/查找数据函数/

void find1();

void find2();

void save(); /保存数据函数/

void read(); /读出数据函数/

void del_file(); /删除文件函数/

void modify(); /修改文件函数/

int now_no=0;

struct student

{

int no;

char name[20];

char sex[4];

float score1;

float score2;

float score3;

float sort;

float ave;

float sum;

};

struct student stu[MAX],p;

main()/主函数/

{

int as;

char ch;

do{

start: printf("\n\n\n\t\t\t欢迎使用学生成绩管理系统\n");

printf("\n\n\n\n\n\n\t\t按任意键继续");

ch=getch();

}

while(!ch);

system("cls");

/一下为功能选择模块/

do

{

printf("\n\t\t\t\t1录入学员信息\n\t\t\t\t2显示学员总成绩信息\n\t\t\t\t3对总成绩排序\n\t\t\t\t4显示学员单科成绩排序\n\t\t\t\t5添加学员信息\n\t\t\t\t6删除学员信息\n\t\t\t\t7修改学员信息\n\t\t\t\t8查询学员信息\n\t\t\t\t9从文件读入学员信息\n\t\t\t\t10删除文件中学员信息\n\t\t\t\t11保存学员信息\n\t\t\t\t12退出\n");

printf("\t\t\t\t选择功能选项(输入所选功能前的数字):");

fflush(stdin);

/可用可不用,用于清除缓存防止下次用scanf输入是出现错误/

scanf("%d",&as);

switch(as)

{

case 1:system("cls");

input();

break;

case 2:system("cls");

display();

break;

case 3:system("cls");

sort();

break;

case 4:system("cls");

display1();

break;

case 5:system("cls");

insert();

break;

case 6:system("cls");

del();

break;

case 7:system("cls");

modify();

break;

case 8:system("cls");

find();

break;

case 9:system("cls");

read();

break;

case 10:system("cls");

del_file();

break;

case 11:system("cls");

save();

break;

case 12:system("exit");

exit(0);

default:system("cls");

goto start;

}

}while(1);/while(1),1表示真,所以while(1)表示永远循环下去,一般在while(1)的循环体内都有break 或者return 跳出循环/

/至此功能选择结束/

}

void input()/原始数据录入模块/

{

int i=0;

char ch;

do

{

printf("\t\t\t\t1录入学员信息\n输入第%d个学员的信息\n",i+1);

printf("\n输入学生编号:");

scanf("%d",&stu[i]no);

fflush(stdin);

printf("\n输入学员姓名:");

fflush(stdin);

gets(stu[i]name);

printf("\n输入学员性别:");

fflush(stdin);

gets(stu[i]sex);

printf("\n输入学员成绩1:");

scanf("%f",&stu[i]score1);

printf("\n输入学员成绩2:");

fflush(stdin);

scanf("%f",&stu[i]score2);

printf("\n输入学员成绩3:");

fflush(stdin);

scanf("%f",&stu[i]score3);

printf("\n\n");

i++;

now_no=i;

printf("是否继续输入(Y/N)");

fflush(stdin);

ch=getch();

system("cls");

}

while(ch!='n'&&ch!='N');

system("cls");

}

void sort()/排序数据函数/

{

struct student temp;

int i,j;

average();

for(i=1;i<now_no;i++)

{

for(j=1;j<=now_no-i;j++)

{

if(stu[j-1]ave<stu[j]ave)

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

printf("排序以完成进入功能2可进行显示\n");

system("pause");

system("cls");

}

void sort1()/排序数据函数/

{

struct student temp;

int i,j;

for(i=1;i<now_no;i++)

{

for(j=1;j<=now_no-i;j++)

{

if(stu[j-1]score1<stu[j]score1)

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

}

void sort2()/排序数据函数/

{

struct student temp;

int i,j;

for(i=1;i<now_no;i++)

{

for(j=1;j<=now_no-i;j++)

{

if(stu[j-1]score2<stu[j]score2)

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

}

void sort3()/排序数据函数/

{

struct student temp;

int i,j;

for(i=1;i<now_no;i++)

{

for(j=1;j<=now_no-i;j++)

{

if(stu[j-1]score3<stu[j]score3)

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

}

void display()/显示数据函数/

{

int i;

char as;

average();

do

{

printf("\t\t\t班级学员信息列表\n");

printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");

for(i=0;i<now_no&&stu[i]name[0];i++)

printf("\t%d\t%s\t%s\t%2f\t%2f\t%2f\t%2f\n",stu[i]no,stu[i]name,stu[i]sex,stu[i]score1,stu[i]score2,stu[i]score3,stu[i]ave);

printf("\t\t按任意键返回主菜单");

fflush(stdin);

as=getch();

}

while(!as);

system("cls");

}

void display1()/显示数据函数/

{

int i;

char as;

do

{

printf("\t\t\t班级学员score1成绩排序\n");

printf("\t编号\t姓名\t性别\t成绩1\n");

sort1();

for(i=0;i<now_no&&stu[i]name[0];i++)

printf("\t%d\t%s\t%s\t%2f\t\n",stu[i]no,stu[i]name,stu[i]sex,stu[i]score1);

printf("\t\t\t班级学员score2成绩排序\n");

printf("\t编号\t姓名\t性别\t成绩2\n");

sort2();

for(i=0;i<now_no&&stu[i]name[0];i++)

printf("\t%d\t%s\t%s\t%2f\t\n",stu[i]no,stu[i]name,stu[i]sex,stu[i]score2);

printf("\t\t\t班级学员score3成绩排序\n");

printf("\t编号\t姓名\t性别\t成绩3\n");

sort3();

for(i=0;i<now_no&&stu[i]name[0];i++)

printf("\t%d\t%s\t%s\t%2f\t\n",stu[i]no,stu[i]name,stu[i]sex,stu[i]score3);

printf("\t\t按任意键返回主菜单");

fflush(stdin);

as=getch();

}

while(!as);

system("cls");

}

void insert()/插入数据函数/

{

char ch;

do

{

printf("\n\t\t输入新插入学员队信息\n");

printf("\n输入学生编号:");

scanf("%d",&stu[now_no]no);

fflush(stdin);

printf("\n输入学员姓名:");

fflush(stdin);

gets(stu[now_no]name);

printf("\n输入学员性别:");

fflush(stdin);

gets(stu[now_no]sex);

printf("\n输入学员成绩1:");

fflush(stdin);

scanf("%f",&stu[now_no]score1);

printf("\n输入学员成绩2:");

fflush(stdin);

scanf("%f",&stu[now_no]score2);

printf("\n输入学员成绩3:");

fflush(stdin);

scanf("%f",&stu[now_no]score3);

printf("\n\n");

now_no=now_no+1;

sort();

printf("是否继续输入(Y/N)");

fflush(stdin);

ch=getch();

system("cls");

}

while(ch!='n'&&ch!='N');

}

void del()/删除数据函数/

{

int inum,i;

printf("输入要删除学员的编号:");

fflush(stdin);

scanf("%d",&inum);

for(i=0;i<now_no;i++)

{

if(stu[i]no==inum)

{

if(i==now_no)now_no-=1;

else

{

stu[i]=stu[now_no-1];

now_no-=1;

}

sort();

break;

}

}

system("cls");

}

void save()/保存数据函数/

{

FILE fp;

int i;

char filepath[20];

printf("输入要保存的文件路径:");

fflush(stdin);

gets(filepath);

if((fp=fopen(filepath,"w"))==NULL)

{

printf("\n保存失败!");

exit(0);

}

for(i=0;i<now_no;i++)

{

stu[i]sum=stu[i]score1+stu[i]score2+stu[i]score3;

stu[i]ave=stu[i]sum/3;

fprintf(fp,"\t%d\t%s\t%s\t%2f\t%2f\t%2f\t%2f\n",stu[i]no,stu[i]name,stu[i]sex,stu[i]score1,stu[i]score2,stu[i]score3,stu[i]ave);

}

fclose(fp);

printf("学生信息已保存在%s中!\n",filepath);

system("pause");

system("cls");

}

void find()/查询函数/

{

int i;

char str[20],as;

do

{

printf("输入要查询的学生姓名:");

fflush(stdin);

gets(str);

for(i=0;i<now_no;i++)

if(!strcmp(stu[i]name,str))

{

printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");

printf("\t%d\t%s\t%s\t%2f\t%2f\t%2f\t%2f\n",stu[i]no,stu[i]name,stu[i]sex,stu[i]score1,stu[i]score2,stu[i]score3,stu[i]ave);

}

printf("\t\t按任意键返回主菜单");

fflush(stdin);

as=getch();

}

while(!as);

system("cls");

}

void average()/求平均数/

{

int i;

for(i=0;i<now_no;i++)

{

stu[i]sum=stu[i]score1+stu[i]score2+stu[i]score3;

stu[i]ave=stu[i]sum/3;

}

}

void modify()/修改数据函数/

{

int i;

char str[20];

printf("输入要修改的学生姓名:");

fflush(stdin);

gets(str);

for(i=0;i<now_no;i++)

{

if(!strcmp(stu[i]name,str))

{

system("cls");

printf("\n\t\t输入新插入学员队信息\n");

printf("\n输入学生编号:");

fflush(stdin);

scanf("%d",&stu[i]no);

printf("\n输入学员性别:");

fflush(stdin);

gets(stu[i]sex);

printf("\n输入学员成绩1:");

fflush(stdin);

scanf("%f",&stu[i]score1);

printf("\n输入学员成绩2:");

fflush(stdin);

scanf("%f",&stu[i]score2);

printf("\n输入学员成绩3:");

fflush(stdin);

scanf("%f",&stu[i]score3);

printf("\n\n");

sort();

break;

}

}

system("cls");

}

void read()

{

FILE fp;

int i;

char filepath[20];

printf("输入要读入的文件路径:");

fflush(stdin);

gets(filepath);

if((fp=fopen(filepath,"r"))==NULL)

{

printf("找不到%s文件!\n",filepath);

system("pause");

exit(0);

}

now_no=0;

for(i=0;i<MAX&&!feof(fp);i++)

{

fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu[i]no,stu[i]name,stu[i]sex,&stu[i]score1,&stu[i]score2,&stu[i]score3,&stu[i]ave);

now_no++;

}

fclose(fp);

printf("保存的在文件%s中的所有信息已经读入!\n",filepath);

system("pause"); /按任意键继续/

system("cls");

}

void del_file()

{

FILE fp;

char filepath[20];

printf("输入要删除的文件路径:");

fflush(stdin);

gets(filepath);

fp=fopen(filepath,"w");

fclose(fp);

printf("保存的在文件%s中的所有信息已经删除!\n",filepath);

system("pause");

system("cls");

}

#includenbsp;“stdioh“#definenbsp;SIZEnbsp;50intnbsp;sum=0;staticnbsp;charnbsp;str[]={“C“,“Math“,“English“};structnbsp;studentnbsp;nbsp;{nbsp;intnbsp;n;nbsp;nbsp;nbsp;nbsp;longnbsp;num;nbsp;nbsp;nbsp;nbsp;charnbsp;name[10];nbsp;nbsp;nbsp;nbsp;intnbsp;age;nbsp;nbsp;nbsp;nbsp;charnbsp;addr[10];nbsp;nbsp;nbsp;nbsp;intnbsp;score[3];nbsp;nbsp;nbsp;nbsp;floatnbsp;avr;nbsp;nbsp;}nbsp;stu[SIZE];/nbsp;1--Inputnbsp;/voidnbsp;fin(){nbsp;intnbsp;i,j,s;charnbsp;f;nbsp;nbsp;FILEnbsp;fp;nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Warring!nbsp;Inputnbsp;(nbsp;y/nnbsp;)nbsp;:nbsp;777“);nbsp;nbsp;f=getchar();f=getchar();nbsp;nbsp;if(f!=‘y‘)nbsp;nbsp;nbsp;nbsp;return;nbsp;nbsp;fp=fopen(“fstu“,“wb“);nbsp;nbsp;for(i=0;iamp;lt;SIZE;i++)nbsp;nbsp;nbsp;nbsp;{nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i=%dnbsp;Inputnbsp;Nonbsp;(i=-1,return)nbsp;i=nbsp;“,i+1);nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;scanf(“%d“,amp;j);nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;ifnbsp;(j==-1)nbsp;{nbsp;printf(“

nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Pressnbsp;anynbsp;keynbsp;return!nbsp;nbsp;nbsp;

“,j);nbsp;nbsp;nbsp;fclose(fp);getch();return;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;elsenbsp;{nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Inputnbsp;num,name,age,addrnbsp;:nbsp;“);nbsp;nbsp;nbsp;stu[i]n=i+1;nbsp;nbsp;nbsp;scanf(“%ld%s%d%s“,amp;stu[i]num,stu[i]name,amp;stu[i]age,stu[i]addr);nbsp;nbsp;nbsp;s=0;nbsp;nbsp;nbsp;for(j=0;jamp;lt;3;j++)nbsp;nbsp;nbsp;nbsp;{nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Inputnbsp;%-7snbsp;scorenbsp;:nbsp;“,str[j]);nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;scanf(“%d“,amp;stu[i]score[j]);nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if(stu[i]score[j]amp;gt;100)nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;{nbsp;j--;continue;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;s+=stu[i]score[j];nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;stu[i]avr=s/30;nbsp;nbsp;nbsp;fwrite(amp;stu[i],sizeof(structnbsp;student),1,fp);nbsp;}nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;fclose(fp);}/nbsp;2--Findnbsp;/voidnbsp;ffind(){nbsp;intnbsp;i,j;nbsp;nbsp;FILEnbsp;fp;nbsp;nbsp;fp=fopen(“fstu“,“rb“);nbsp;nbsp;for(i=0;fread(amp;stu[i],sizeof(structnbsp;student),1,fp)!=0;i++);nbsp;nbsp;sum=i;nbsp;nbsp;rewind(fp);nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Findnbsp;studentnbsp;datanbsp;nbsp;nbsp;

“);nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Inputnbsp;n=1nbsp;--nbsp;%dnbsp;:nbsp;“,sum);nbsp;nbsp;scanf(“%d“,amp;j);nbsp;nbsp;fseek(fp,(j-1)sizeof(structnbsp;student),0);nbsp;nbsp;printf(“

nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Displaynbsp;studentnbsp;%dnbsp;datanbsp;:nbsp;

“,j);nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;

“);nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Nonbsp;Numnbsp;nbsp;nbsp;nbsp;Namenbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Agenbsp;Addrnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Cnbsp;nbsp;Mathnbsp;Ennbsp;Aver

“);nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;-----------------------------------------------------

“);nbsp;nbsp;fread(amp;stu[i],sizeof(structnbsp;student),1,fp);nbsp;nbsp;printf(“%12d%7

挺好的一个题目啊

但我可不愿意帮人写作业

网上很多类似的,你可以参考下:

#include <stdioh>

#include <stringh> struct student {

char name[30];

float math;

float chinese;

float english;

float average;

};

int MenuChoice(void);

int EnterAccount(void);

void Enter(struct student fst);

void Amend(struct student src);

void Delete(struct student next);

void Print(struct student out);

main()

{

struct student one[100] = {0}, look = one;

int menu, t;

while ((menu = MenuChoice()) != 0)

if (menu >= 1 && menu <= 4 && (t = EnterAccount())) {

look = one + t;

switch (menu) {

case 1:

Enter(look);

break;

case 2:

if (strcmp(look->name, ""))

printf("学号:%d\n姓名: %s\n语文成绩: %1f\n数学成绩:%1f\n英语成绩: %f\n平均"成绩:%1f\n",

t, look->name, look->chinese, look->math, look->english, look->average);

else

printf("对不起,该学号不存在!\n");

break;

case 3:

Amend(look);

break;

case 4:

Delete(look);

break;

}

}

else if (menu == 5)

Print(one);

else

printf("错误的请求!\n");

return 0;

}

int MenuChoice(void)

{

int choice;

printf("请选择:\n"

"1 - 新建学生信息\n"

"2 - 查找学生信息\n"

"3 - 修改学生信息\n"

"4 - 删除学生信息\n"

"5 - 打印学生信息\n"

"0 - 退出\n");

scanf("%d", &choice);

return choice;

}

int EnterAccount(void)

{

int ret;

printf("请输入学号:\n");

scanf("%d", &ret);

if (ret >= 1 && ret <= 100)

return ret -1;

return 0;

}

void Enter(struct student fst)

{

printf("请输入学生姓名、语文成绩、数学成绩、英语成绩和平均成绩\n");

scanf("%s%f%f%f%f", fst->name, &fst->chinese, &fst->math, &fst->english, &fst->average);

}

void Amend(struct student src)

{

int t;

printf("请选择:\n"

"1 - 修改学生姓名\n"

"2 - 修改学生语文成绩\n"

"3 - 修改学生数学成绩\n"

"4 - 修改学生英语成绩\n"

"5 - 修改学生平均成绩\n");

scanf("%d", &t);

switch (t) {

case 1:

printf("请输入学生的新名字\n");

scanf("%s", src->name);

break;

case 2:

printf("请输入学生新的语文成绩\n");

scanf("%f", &src->chinese);

break;

case 3:

printf("请输入学生新的数学成绩\n");

scanf("%f", &src->math);

break;

case 4:

printf("请输入学生新的英语成绩\n");

scanf("%f", &src->english);

break;

case 5:

printf("请输入学生新的平均成绩\n");

scanf("%f", &src->average);

break;

}

}

void Delete(struct student next)

{

strcpy(next->name, "");

next->math = next->english = next->chinese = next->average = 00;

}

void Print(struct student out)

{

struct student up;

for (up = out; out < &up[100]; out++)

if (strcmp(out->name, ""))

printf("学号:%d\n姓名: %s\n语文成绩: %1f\n数学成绩:%1f\n英语成绩: %1f\n平均成绩:%1f\n",

out-up + 1, out->name, out->chinese, out->math, out->english, out->average);

}

以上就是关于写c语言学生信息管理系统 求前辈指点一二 大恩不言谢 没有赏金了全部的内容,包括:写c语言学生信息管理系统 求前辈指点一二 大恩不言谢 没有赏金了、c语言编写学生信息管理系统、C语言程序设计 学生信息管理系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10120288.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存