学生成绩管理系统代码整合
❶ 学生成绩管理系统代码200行
这可能是不行的哦
❷ 学生成绩管理系统的源代码
#include "stdio.h"
/*定义学生结构体*/
struct Student
{
char ID[20];
char Name[20];
float Mark1;
float Mark2;
float Mark3;
float Average;
};
/*声明学生数组及学生数量*/
struct Student students[1000];
int num=0;
/*求平均值*/
float Avg(struct Student stu)
{
return (stu.Mark1+stu.Mark2+stu.Mark3)/3;
}
/*通过学号返回数组下标*/
int Student_SearchByIndex(char id[])
{
int i;
for (i=0;i<num;i++)
{
if (strcmp(students[i].ID,id)==0)
{
return i;
}
}
return -1;
}
/*通过姓名返回数组下标*/
int Student_SearchByName(char name[])
{
int i;
for (i=0;i<num;i++)
{
if (strcmp(students[i].Name,name)==0)
{
return i;
}
}
return -1;
}
/*显示单条学生记录*/
void Student_DisplaySingle(int index)
{
printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("-------------------------------------------------------------\n");
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[index].ID,students[index].Name,
students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);
}
/*插入学生信息*/
void Student_Insert()
{
while(1)
{
printf("请输入学号:");
scanf("%s",&students[num].ID);
getchar();
printf("请输入姓名:");
scanf("%s",&students[num].Name);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark3);
getchar();
students[num].Average=Avg(students[num]);
num++;
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*修改学生信息*/
void Student_Modify()
{
float mark1,mark2,mark3;
while(1)
{
char id[20];
int index;
printf("请输入要修改的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要修改的学生信息为:\n");
Student_DisplaySingle(index);
printf("-- 请输入新值--\n");
printf("请输入学号:");
scanf("%s",&students[index].ID);
getchar();
printf("请输入姓名:");
scanf("%s",&students[index].Name);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark3);
getchar();
students[index].Average=Avg(students[index]);
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*删除学生信息*/
void Student_Delete()
{
int i;
while(1)
{
char id[20];
int index;
printf("请输入要删除的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要删除的学生信息为:\n");
Student_DisplaySingle(index);
printf("是否真的要删除?(y/n)");
if (getchar()=='y')
{
for (i=index;i<num-1;i++)
{
students[i]=students[i+1];
}
num--;
}
getchar();
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*按姓名查询*/
void Student_Select()
{
while(1)
{
char name[20];
int index;
printf("请输入要查询的学生的姓名:");
scanf("%s",&name);
getchar();
index=Student_SearchByName(name);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要查询的学生信息为:\n");
Student_DisplaySingle(index);
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*按平均值排序*/
void Student_SortByAverage()
{
int i,j;
struct Student tmp;
for (i=0;i<num;i++)
{
for (j=1;j<num-i;j++)
{
if (students[j-1].Average<students[j].Average)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}
}
/*显示学生信息*/
void Student_Display()
{
int i;
printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("-------------------------------------------------------------\n");
for (i=0;i<num;i++)
{
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[i].ID,students[i].Name,
students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average);
}
}
/*将学生信息从文件读出*/
void IO_ReadInfo()
{
FILE *fp;
int i;
if ((fp=fopen("Database.txt","rb"))==NULL)
{
printf("不能打开文件!\n");
return;
}
if (fread(&num,sizeof(int),1,fp)!=1)
{
num=-1;
}
else
{
for(i=0;i<num;i++)
{
fread(&students[i],sizeof(struct Student),1,fp);
}
}
fclose(fp);
}
/*将学生信息写入文件*/
void IO_WriteInfo()
{
FILE *fp;
int i;
if ((fp=fopen("Database.txt","wb"))==NULL)
{
printf("不能打开文件!\n");
return;
}
if (fwrite(&num,sizeof(int),1,fp)!=1)
{
printf("写入文件错误!\n");
}
for (i=0;i<num;i++)
{
if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1)
{
printf("写入文件错误!\n");
}
}
fclose(fp);
}
/*主程序*/
main()
{
int choice;
IO_ReadInfo();
while(1)
{
/*主菜单*/
printf("\n------ 学生成绩管理系统------\n");
printf("1. 增加学生记录\n");
printf("2. 修改学生记录\n");
printf("3. 删除学生记录\n");
printf("4. 按姓名查询学生记录\n");
printf("5. 按平均成绩排序\n");
printf("6. 退出\n");
printf("请选择(1-6):");
scanf("%d",&choice);
getchar();
switch(choice)
{
case 1:
Student_Insert();
break;
case 2:
Student_Modify();
break;
case 3:
Student_Delete();
break;
case 4:
Student_Select();
break;
case 5:
Student_SortByAverage();
Student_Display();
break;
case 6:
exit();
break;
}
IO_WriteInfo();
}
}
❸ 学生成绩管理系统的代码
实现了楼主要求功能,楼主可以参考一下,另外希望楼主采纳哦,嘿嘿嘿~~~
唉,白写这么多代码了,你都不看的,以后不来网络喽~~~
#include<iostream.h>
#include<stdio.h>
#include<iomanip.h>
#include<string.h>
#include<stdlib.h>
struct student
{
int number; //学号
char name[10]; //学生姓名
int common; //平时成绩
int mid; //期中成绩
int end; //期末成绩
int sum; //总成绩
}stud[50];
int menu() //菜单选项
{
char c;
cout<<"***************成绩管理系统*****************"<<endl;
cout<<"输入1输入学生成绩数据"<<endl;
cout<<"输入2显示学生成绩数据"<<endl;
cout<<"输入3查找学生成绩数据"<<endl;
cout<<"输入4显示不合格学生数据"<<endl;
cout<<"输入5排序并且评定奖学金获得情况"<<endl;
cout<<"输入0程序运行结束界面"<<endl;
cout<<"请输入编号"<<endl;
cin>>c;
do
{
cout<<"***************成绩管理系统*****************"<<endl;
cout<<"输入1输入学生成绩数据"<<endl;
cout<<"输入2显示学生成绩数据"<<endl;
cout<<"输入3查找学生成绩数据"<<endl;
cout<<"输入4显示不合格学生数据"<<endl;
cout<<"输入5排序并且评定奖学金获得情况"<<endl;
cout<<"输入0程序运行结束界面"<<endl;
}while(c>'5'||c<'0');
system("cls");
return c-'0';
}
void input(int num) //输入学生数据
{
int i;
cout<<"请输入学生数据:"<<endl;
for(i=0;i<num;i++)
{
cout<<"学号 姓名 平时成绩 期中成绩 期末成绩 "<<endl;
cin>>stud[i].number;
cin>>stud[i].name;
cin>>stud[i].common;
cin>>stud[i].mid;
cin>>stud[i].end;
}
}
void display(int num) //显示输入的数据
{
int i;
cout<<"输入的数据为:"<<endl;
for(i=0;i<num;i++)
{
cout<<"学号 姓名 平时成绩 期中成绩 期末成绩 总成绩"<<endl;
stud[i].sum=stud[i].common+stud[i].mid+stud[i].end;
cout<<setw(4)<<stud[i].number<<setw(4)<<stud[i].name;
cout<<setw(4)<<stud[i].number<<setw(4)<<stud[i].mid;
cout<<setw(4)<<stud[i].end<<setw(4)<<stud[i].sum<<endl;
}
}
void charge(int num) //补考学生数据
{
int i;
for(i=0;i<num;i++)
{
if(stud[i].mid<60||stud[i].end<60||stud[i].common<60)
cout<<"需要补考学生数据"<<endl;
cout<<"学号:"<<stud[i].number<<"姓名"<<stud[i].sum<<endl;
}
}
void search(int num) //查询一个学生的数据
{
int i;
int m;
cin>>m;
for(i=0;i<num;i++)
{
if(m==stud[i].number)
cout<<"学号"<<stud[i].number<<"姓名"<<stud[i].name<<endl;
else
cout<<"没有该生信息"<<endl;
break;
}
}
void order(int num) //排序并且评出获得奖学金的学生
{
int i,j,temp;
for(i=0;i<num-1;i++)
for(j=1;j<num;j++)
{
if(stud[i].sum<stud[j].sum)
{
temp=stud[i].sum;
stud[i].sum=stud[j].sum;
stud[j].sum=temp;
}
}
cout<<"1-2名为A等奖学金"<<endl;
cout<<"3-5名为B等奖学金"<<endl;
cout<<"6-9名为C等奖学金"<<endl;
for(i=0;i<num;i++)
{
cout<<"学生的名次为:"<<endl;
cout<<"第"<<i+1<<"名为:"<<stud[i].name<<endl;
if(i+1==2||i+1==1)
cout<<"A等奖学金"<<endl;
else
if(i+1<=5&&i+1>=3)
cout<<"B等奖学金"<<endl;
else
if(i+1<=9&&i+1>=6)
cout<<"C等奖学金"<<endl;
else
cout<<"没有获得奖学金"<<endl;
}
}
void main()
{
int num,n;
cout<<"请输入学生的人数:";
cin>>num;
menu();
for(;;)
{
switch(n=menu())
{
case 1:
input(num);
break;
case 2:
display(num);
break;
case 3:
search(num);
break;
case 4:
charge(num);
break;
case 5:
order(num);
break;
default:
cout<<"欢迎使用O(∩_∩)O"<<endl;
break;
}
}
system("pause");
}
❹ 学生信息管理系统最简单源代码。
方法一:
1、创建抄一个c语言项目。然后右键头文件,创建一个Stu的头文件。
❺ 求用Java编写的学生成绩管理系统的完整代码,要能运行的
以下方法实现了用户界面登陆
import java.awt.*;
import java.awt.event.*;
public class DengLuJieMian extends Frame implements ActionListener
{
Label username=new Label("用户名:");//使用文本创建一个用户名标签
TextField t1=new TextField();//创建一个文本框对象
Label password=new Label("密码:");//创建一个密码标签
TextField t2=new TextField();
Button b1=new Button("登陆");//创建登陆按钮
Button b2=new Button("取消");//创建取消按钮
public DengLuJieMian()
{
this.setTitle("学生信息管理系统");//设置窗口标题
this.setLayout(null);//设置窗口布局管理器
username.setBounds(50,40,60,20);//设置姓名标签的初始位置
this.add(username);// 将姓名标签组件添加到容器
t1.setBounds(120,40,80,20);// 设置文本框的初始位置
this.add(t1);// 将文本框组件添加到容器
password.setBounds(50,100,60,20);//密码标签的初始位置
this.add(password);//将密码标签组件添加到容器
t2.setBounds(120,100,80,20);//设置密码标签的初始位置
this.add(t2);//将密码标签组件添加到容器
b1.setBounds(50,150,60,20);//设置登陆按钮的初始位置
this.add(b1);//将登陆按钮组件添加到容器
b2.setBounds(120,150,60,20);//设置取消按钮的初始位置
this.add(b2);// 将取消按钮组件添加到容器
b1.addActionListener(this);//给登陆按钮添加监听器
b2.addActionListener(this);// 给取消按钮添加监听器
this.setVisible(true);//设置窗口的可见性
this.setSize(300,200);//设置窗口的大小
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});//通过内部类重写关闭窗体的方法
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)//处理登陆事件
{
String name=t1.getText();
String pass=t2.getText();
if(name!=null&&pass.equals("000123"))//判断语句
{
new StudentJieMian();
}
}
}
public static void main(String args[])//主函数
{
new DengLuJieMian();
}
}
以下方法实现了学生界面设计
import java.awt.*;
import java.awt.event.*;
class StudentJieMian extends Frame implements ActionListener
{
MenuBar m=new MenuBar();//创建菜单栏
Menu m1=new Menu("信息");//创建菜单“信息”
MenuItem m11=new MenuItem("插入");//创建“插入”的菜单项
MenuItem m12=new MenuItem("查询");
Menu m2=new Menu("成绩");//创建菜单“成绩”
MenuItem m21=new MenuItem("查询");
public StudentJieMian()
{
this.setTitle("学生界面");//设置窗口标题
this.setLayout(new CardLayout());//设置窗口布局管理器
this.setMenuBar(m);//将菜单栏组件添加到容器
m.add(m1);//将信息菜单放入菜单栏
m.add(m2);
m1.add(m11);//将“插入”菜单项添加到“信息”菜单
m1.add(m12); //将“查询”菜单项添加到“信息”菜单
m2.add(m21); //将“查询”菜单项添加到“成绩”菜单
m11.addActionListener(this); //给“插入”菜单项添加监听器
m12.addActionListener(this); //给“查询”菜单项添加监听器
m21.addActionListener(this); //给“查询”菜单项添加监听器
this.setVisible(true); //设置窗口的可见性
this.setSize(300,200); //设置窗口的大小
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);//关闭窗口
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==m11) //处理“添加信息”事件
{
new AddStudent();
}
if(e.getSource()==m12) //处理“查询信息”事件
{
new SelectStudent();
}
if(e.getSource()==m21) //处理“查询成绩”事件
{
new ChengJiStudent();
}
}
public static void main(String args[])
{ new StudentJieMian(); //创建一个对象 }
❻ 学生成绩管理系统C语言代码
#include"stdio.h"
#include<string.h>
#include<stdlib.h>
#define N 30
struct student
{
int num;
char name[20];
int age;
int Math;
int English;
int Physical;
long int sum;
}stu[N];
enter()
{int i,n;
printf("How many students(1-%d)?:",N);
scanf("%d",&n);
printf("\nEnter data now\n\n");
for(i=0;i<n;i++)
{printf("\n Input %dth student record.\n",i+1);
input(i);
}
if(i!=0) save(n);
printf_back(); /* browse or back */
}
add()
{int i,n,m,k;
FILE *fp;
n=load();
printf("How many students are you want to add(1-%d)?:",N-n);
scanf("%d",&m);
k=m+n;
for(i=n;i<k;i++)
{printf("\n Input %dth student record.\n",i+1);
input(i);
}
if((fp=fopen("score.txt","ab"))==NULL)
{printf("Cannot open file.\n");
}
for(i=n;i<k;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error.\n");
fclose(fp);
printf_back();
}
/* insert()
{int n,c;
struct student s;
n=load();
puts("\n Input one data.\n");
do
{input(n);
printf_face();
printf_one(n);
printf("\n\nAre you sure?\n\n\t 1.Sure\t2.cancel and again\t3.Back without save [ ]\b\b");
scanf("%d",&c);
if(c==1)
{
save(n+1);
printf_back();
}
else if(c!=2) menu();
}
while(c==2);
} */
modify()
{struct student s;
FILE *fp;
int i,n,k,w0=1,w1,w2=0;
n=load();
do
{
k=-1;
printf_face();
for(i=0;i<n;i++)
{if((i!=0)&&(i%10==0))
{printf("\n\nRemember NO.031073- which needed modify.Pass any key to continue ...");
getch();
puts("\n\n");
}
printf_one(i);
printf("\n");
}
do
{printf("\n\nEnter NO.031073- that you want to modify! NO.:031073-");
scanf("%d",&s.num);
for(i=0;i<n;i++)
if(s.num==stu[i].num)
{k=i;
s=stu[i]; /* chengji beifei */
}
if(k==-1) printf("\n\nNO exist!please again");
}
while(k==-1);
printf_face();
printf_one(k);
w1=modify_data(k,n);
if(w1==1)
{printf("\nSuccessful ^_^.\n\nAre you modify another?\n\n\t1.Yes2.Back with save\t[ ]\b\b");
scanf("%d",&w0);
w2=1;
}
else
{w0=0; /* end */
if(w2==1)
stu[k]=s;
}
if(w0!=1&&w2==1) save(n); /* w0!=1 return w2==1 modify */
}
while(w0==1);
menu();
}
delete()
{struct student s;
FILE *fp;
int i,n,k,w0=1,w1,w2=0;
n=load();
do
{
k=-1;
printf_face();
for(i=0;i<n;i++)
{if((i!=0)&&(i%10==0))
{printf("\n\nRemember NO.031073- which needed delete.Pass any key to continue ...");
getch();
puts("\n\n");
}
printf_one(i);
printf("\n");
}
do
{printf("\n\nEnter NO.031073- that you want to delete! NO.:031073-");
scanf("%d",&s.num);
for(i=0;i<n;i++)
if(s.num==stu[i].num)
{k=i;
s=stu[i]; /* chengji beifei */
}
if(k==-1) printf("\n\nNO exist!please again");
}
while(k==-1);
printf_face();
printf_one(k);
printf("\nAre you sure?\n\n\t1.Sure2.Back without save in this time [ ]\b\b");
scanf("%d",&w1);
if(w1==1)
{
stu[k].sum=0;
printf("\nSuccessful ^_^.\n\nAre you delete another?\n\n\t1.Yes2.Back with save\t[ ]\b\b");
scanf("%d",&w0);
w2=1;
}
else
{w0=0; /* end */
if(w2==1)
stu[k]=s;
}
if(w0!=1&&w2==1) save(n);
}
while(w0==1);
menu();
}
modify_score()
{struct student s;
FILE *fp;
int i,n,k,w0=1,w1,w2=0;
n=load();
do
{
k=-1;
printf_face();
for(i=0;i<n;i++)
{if((i!=0)&&(i%10==0))
{printf("\n\nRemember NO.031073 which score needed modify.Pass any key to continue ...");
getch();
puts("\n\n");
}
printf_one(i);
printf("\n");
}
do
{printf("\n\nEnter NO.031073- that you want to modify! NO.:031073-");
scanf("%d",&s.num);
for(i=0;i<n;i++)
if(s.num==stu[i].num)
{k=i;
s=stu[i]; /* chengji beifei */
}
if(k==-1) printf("\n\nNO exist!please again");
}
while(k==-1);
printf_face();
printf_one(k);
w1=modify_score1(k);
if(w1==1)
{printf("\nSuccessful ^_^.\n\nAre you modify another score?\n\n\t1.Yes2.Back with save\t[ ]\b\b");
scanf("%d",&w0);
w2=1;
}
else
{w0=0; /* end */
if(w2==1)
stu[k]=s;
}
if(w0!=1&&w2==1) save(n); /* w0!=1 return w2==1 modify */
}
while(w0==1);
menu();
}
order()
{int i,j,k,n;
struct student s;
n=load();
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(stu[j].num<stu[k].num) k=j;
s=stu[i];stu[i]=stu[k];stu[k]=s;
}
save(n);
puts("\n\n");
printf_back();
}
browse()
{int i,j,n;
n=load();
printf_face();
for(i=0;i<n;i++)
{if((i!=0)&&(i%10==0))
{printf("\n\nPass any key to contiune ...");
getch();
puts("\n\n");
}
printf_one(i);
printf("\n");
}
printf("\tThere are %d record.\n",n);
printf("\nPass any key to back...");
getch();
menu();
}
save(int n)
{FILE *fp;
int i;
if((fp=fopen("score.txt","wb"))==NULL)
{printf("\nCannot open file\n");
return NULL;
}
for(i=0;i<n;i++)
if(stu[i].sum!=0)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
load()
{FILE *fp;
int i;
if((fp=fopen("score.txt","rb"))==NULL)
{printf("\nCannot open file\n");
return NULL;
}
for(i=0;!feof(fp);i++)
fread(&stu[i],sizeof(struct student),1,fp);
fclose(fp);
return(i-1);
}
no_input(int i,int n)
{int k,w1;
do
{w1=0;
printf("NO.:031073-");
scanf("%d",&stu[i].num);
if(stu[i].num<1 || stu[i].num>N)
{puts("Input error! Only be made up of(1-N).Please reinput!\n");
w1=1;
}
if(w1!=1)
for(k=0;k<n;k++)
if(k!=i&&(stu[k].num==stu[i].num))
{puts("This record is exist. Please reinput!\n");
w1=1;break;
}
}
while(w1==1);
}
enter_score(int i)
{printf("Math English Physical");
scanf("%d %d %d",&stu[i].Math,&stu[i].English,&stu[i].Physical);
}
sum(int i)
{
stu[i].sum=stu[i].Math+stu[i].English+stu[i].Physical;
}
input(int i)
{no_input(i,i);
printf("name: age:");
scanf("%s %d",stu[i].name,&stu[i].age);
enter_score(i);
sum(i);
}
modify_score1(int i)
{int c,w1;
do
{
puts("\nmodify by=>\n\n 1.Math 2.English 3.Physical4.all score 5.cancel and back");
printf("Which you needed?:[ ]\b\b");
scanf("%d",&c);
if(c>5||c<1)
{puts("\nChoice error! Please again!");
getchar();
}
}
while(c>5||c<1);
do
{switch(c)
{
case 1:printf("Math:");scanf("%d",&stu[i].Math);break;
case 2:printf("English:");scanf("%d",&stu[i].English);break;
case 3:printf("Physical:");scanf("%d",&stu[i].Physical);break;
case 4:enter_score(i);break;
case 5:break;
}
if(c>0&&c<5) sum(i);
puts("\nNow:\n");
printf_face();
printf_one(i);
printf("\nAre you sure?\n\n\t1.Sure 2.No and remodify3.Back without save in this time [ ]\b\b");
scanf("%d",&w1);
}
while(w1==2);
return(w1);
}
modify_data(int i,int n)
{int c,w1;
do
{
puts("\nmodify by=>\n\n 1.NO. 2.name 3.age 4.Math 5.English 6.Physical7.all score 8.all data 9.cancel and back");
printf("Which you needed?:[ ]\b\b");
scanf("%d",&c);
if(c>9||c<1)
{puts("\nChoice error! Please again!");
getchar();
}
}
while(c>9||c<1);
do
{switch(c)
{case 1:no_input(i,n);break;
case 2:printf("name:");scanf("%s",stu[i].name);break;
case 3:printf("age:");scanf("%d",&stu[i].age);break;
case 4:printf("Math:");scanf("%d",&stu[i].Math);break;
case 5:printf("English:");scanf("%d",&stu[i].English);break;
case 6:printf("Physical:");scanf("%d",&stu[i].Physical);break;
case 7:enter_score(i);break;
case 8:input(i);break;
case 9:break;
}
if(c>3&&c<8) sum(i);
puts("\nNow:\n");
printf_face();
printf_one(i);
printf("\nAre you sure?\n\n\t1.Sure 2.No and remodify3.Back without save in this time [ ]\b\b");
scanf("%d",&w1);
}
while(w1==2);
return(w1);
}
printf_face()
{printf("\nNO.031073 name age Math English Physical sum\n");
}
printf_one(int i)
{
printf("%6d %8s %4d",stu[i].num,stu[i].name,stu[i].age);
printf("%5d %5d %8d %10d",stu[i].Math,stu[i].English,stu[i].Physical,stu[i].sum);
}
printf_back()
{int k,w;
printf("\n\n\tSuccessful.^_^\n\n");
printf("What do you want to do?\n\n\t1.Browse all now\t2.Back:[ ]\b\b");
scanf("%d",&w);
if(w==1) browse();
else menu();
}
menu()
{int w1;
char n;
do
{
puts("\t\t****************MENU****************\n\n");
puts("\t\t\t\tA.Enter new data");
puts("\t\t\t\tB.Addition data");
puts("\t\t\t\tC.Modify data");
puts("\t\t\t\tD.Delete data");
puts("\t\t\t\tE.Modify score");
puts("\t\t\t\tF.Order by number");
puts("\t\t\t\tG.Browse all");
puts("\t\t\t\tH.Exit");
puts("\n\n\t\t************************************\n");
printf("Choice your number(A-H):[ ]\b\b");
n=getchar();
printf("\n");
if(n<'A'||n>'H')
w1=1;
else w1=0;
}
while(w1==1);
switch(n)
{case 'A':enter();break;
case 'B':add();break;
case 'C':modify();break;
case 'D':delete();break;
case 'E':modify_score();break;
case 'F':order();break;
case 'G':browse();break;
case 'H':exit(0);
}
}
char password[7]="123456";
main()
{
char s[7];
printf("\t\t请输入密码:\n\t\t\n\t\t");
scanf("%s",s);
if(!strcmp(s,password))
{
printf("\n\t\t恭喜你进入学生成绩管理系统\n");
menu();
}
else
{
printf("\t\t 密码错误\n\n");
main();
}
}
❼ 求用Java编写的学生成绩管理系统的完整代码
packagejdbcproj;
importjava.sql.*;
importjava.awt.BorderLayout;
importjava.awt.EventQueue;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.border.EmptyBorder;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JTextField;
importjavax.swing.JButton;
importjava.awt.event.ActionListener;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.SQLException;
importjava.awt.event.ActionEvent;
{
privateJPanelcontentPane;
privateJTextFieldtxtname;
privateJTextFieldtxtpassword;
/**
*Launchtheapplication.
*/
publicstaticvoidmain(String[]args){
.invokeLater(newRunnable(){
publicvoidrun(){
try{
MainFrameframe=newMainFrame();
frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
}
});
}
/**
*Createtheframe.
*/
publicMainFrame(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,661,399);
contentPane=newJPanel();
contentPane.setBorder(newEmptyBorder(5,5,5,5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabellblNewLabel=newJLabel("u7528u6237u540D");
lblNewLabel.setBounds(114,51,72,18);
contentPane.add(lblNewLabel);
JLabellblNewLabel_1=newJLabel("u5BC6u7801");
lblNewLabel_1.setBounds(114,106,72,18);
contentPane.add(lblNewLabel_1);
txtname=newJTextField();
txtname.setBounds(261,48,86,24);
contentPane.add(txtname);
txtname.setColumns(10);
txtpassword=newJTextField();
txtpassword.setBounds(261,103,86,24);
contentPane.add(txtpassword);
txtpassword.setColumns(10);
JButtonbtnadd=newJButton("u589Eu52A0");
btnadd.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
if(txtname.getText().equals("")||txtpassword.getText().equals(""))
{
JOptionPane.showMessageDialog(getContentPane(),"用户名和密码不能为空","提示信息框",JOptionPane.WARNING_MESSAGE);
}
else{
Usersu=newUsers();
u.setPwd(txtpassword.getText());
u.setUsername(txtname.getText());
UserDAOusdo=newUserDAO();
usdo.addUser(u);
}
}
});
btnadd.setBounds(45,205,113,27);
contentPane.add(btnadd);
JButtonbtndelete=newJButton("u5220u9664");
btndelete.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
if(txtname.getText().equals(""))
{
JOptionPane.showMessageDialog(getContentPane(),"用户名不能为空","提示信息框",JOptionPane.WARNING_MESSAGE);
}
else{
UserDAOusdo=newUserDAO();
usdo.delUser(txtname.getText());;
}
}
});
btndelete.setBounds(172,205,113,27);
contentPane.add(btndelete);
JButtonbtnupdate=newJButton("u4FEEu6539");
btnupdate.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
if(txtname.getText().equals("")||txtpassword.getText().equals(""))
{
JOptionPane.showMessageDialog(getContentPane(),"用户名和密码不能为空","提示信息框",JOptionPane.WARNING_MESSAGE);
}
else{
Usersu=newUsers();
u.setPwd(txtpassword.getText());
u.setUsername(txtname.getText());
UserDAOusdo=newUserDAO();
usdo.updateUser(u);;
}
}
});
btnupdate.setBounds(300,205,113,27);
contentPane.add(btnupdate);
JButtonbtnfind=newJButton("u67E5u8BE2");
btnfind.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
if(txtname.getText().equals(""))
{
JOptionPane.showMessageDialog(getContentPane(),"用户名不能为空","提示信息框",JOptionPane.WARNING_MESSAGE);
}
else{
Usersu=newUsers();
UserDAOusdo=newUserDAO();
u=usdo.findUser(txtname.getText(),txtpassword.getText());
if(u!=null){
JOptionPane.showMessageDialog(getContentPane(),"该用户存在!","提示信息框",JOptionPane.WARNING_MESSAGE);
}
else{
JOptionPane.showMessageDialog(getContentPane(),"该用户不存在!","提示信息框",JOptionPane.WARNING_MESSAGE);
}
}
}
});
btnfind.setBounds(427,205,113,27);
contentPane.add(btnfind);
//记得要写这个
setVisible(true);
}
}
❽ 学生成绩管理系统代码
#include<iostream>
#include<string>
#include<fstream>
#include<cstdlib>
#include<iomanip>
using namespace std;
class student
{ private:
char name[20]; //姓名
double cpro,english,math,sport,law,hbpro,computer;//课程
int order, number; //名次,学号
public:
student(){}
student(char n[20],int nu,double cc,double eng,double ma,double sp,double l,double hb,double com)
{strcpy(name,n);
number=nu;
cpro=cc; english=eng;math=ma;sport=sp;law=l;hbpro=hb;computer=com;
}
friend void main();
};
void main()
{
cout<<" 欢迎进入**学生成绩管理系统**!"<<endl;
cout<<" ******************************************"<<endl;
cout<<" **** 学生成绩管理系统 ****"<<endl;
cout<<" ******************************************"<<endl;
cout<<" **************************"<<endl;
cout<<" **0、输入数据 **"<<endl;
cout<<" **1、增加数据 **"<<endl;
cout<<" **2、修改数据 **"<<endl;
cout<<" **3、按姓名查询 **"<<endl;
cout<<" **4、按学号查询 **"<<endl;
cout<<" **5、输出所有学生的成绩 **"<<endl;
cout<<" **6、退出系统 **"<<endl;
cout<<" **************************"<<endl;
cout<<" 选择0-6数字进行操作"<<endl;
char p;char w;
student *s[50]; //指针对象,最多存50个学生数据
ofstream *file[50]; //负责对文件插入操作
int i=0;
int j=0;
int flag=0;
do //flag判断输入是否有效
{
cin>>p;
if((p>='0'&&p<='6'))
flag=1;
else
cout<<" 指令错误!请重新输入:"<<endl;
}while(flag==0);
do{
switch(p) //接收功能选项
{
case '0': //输入数据
{
char c;
char name[20];int number;double cpro,english,math,sport,law,hbpro,computer;
do{
cout<<" 请输入姓名:";
cin>>name;
cout<<endl<<" 请输入学号:";
cin>>number;
cout<<" 请输入C++成绩:";
cin>>cpro;
cout<<endl<<" 请输入英语成绩:";
cin>>english;
cout<<endl<<" 请输入数学成绩:";
cin>>math;
cout<<endl<<" 请输入体育成绩:";
cin>>sport;
cout<<endl<<" 请输入网络基础成绩:";
cin>>law;
cout<<endl<<" 请输入C语言成绩:";
cin>>hbpro;
cout<<endl<<" 请输入数据库成绩:";
cin>>computer;
cout<<endl;
file[j]=new ofstream("D:\document",ios::ate);
*file[j]<<" 姓名 "<<name<<" 学号 "<<number<<" C++成绩 "<<cpro
<<" 英语成绩 "<<english<<" 数学成绩 "<<math<<" 体育成绩 "
<<sport<<" 网络基础成绩 "<<law<<" C成绩 "<<hbpro<<" 数据库成绩 "<<computer<<endl;
j++;
s[i]=new student(name, number,cpro,english,math,sport,law,hbpro,computer);
i++;
cout<<" 数据输入成功,想继续输入吗(y/n):";
cin>>c;
cout<<endl;
do
{
if(c!='y'&&c!='n')
{
cout<<" 指令错误!请重新输入!"<<endl<<" ";
cin>>c;
}
else
flag=1;
}while(flag==0);
}while(c=='y');
break;
}
case '1': //增加数据
{
char name[20];
int number;double cpro,english,math,sport,law,hbpro,computer;
char c;
do
{
cout<<" 请输入您要增加的学生的姓名:";
cin>>name;
cout<<endl<<" 请输入学号:";
cin>>number;
cout<<endl<<" 请输入C++成绩:";
cin>>cpro;
cout<<endl<<" 请输入英语成绩:";
cin>>english;
cout<<endl<<" 请输入数学成绩:";
cin>>math;
cout<<endl<<" 请输入体育成绩:";
cin>>sport;
cout<<endl<<" 请输入网络基础成绩:";
cin>>law;
cout<<endl<<" 请输入C语言成绩:";
cin>>hbpro;
cout<<endl<<" 请输入数据库成绩:";
cin>>computer;
cout<<endl;
file[j]=new ofstream("d:\document",ios::ate);
*file[j]<<" 姓名 "<<name<<" 学号 "<<number<<" C++成绩 "<<cpro<<" 英语成绩 "<<english<<" 数学成绩 "<<math<<" 体育成绩 "<<sport<<" 网络基础成绩 "<<law<<" C成绩 "<<hbpro<<" 数据库成绩 "<<computer<<endl;
j++;
s[i]=new student(name, number, cpro,english,math,sport,law,hbpro,computer);
i++;
cout<<" 数据输入成功,想继续数入吗(y/n):";
cin>>c;
cout<<endl;
if(c!='y'&&c!='n')
{
cout<<" 指令错误!请重新输入!"<<endl<<" ";
cin>>c;
}
}while(c=='y');
break;
}
case '2': //修改数据
{
char name[20];int nu;double cc,eng,ma,sp,l,hb,com;flag=0;
char c;
if(i==0)
{
cout<<" 管理系统中没有输入数据!"<<endl;break;
}
do
{
cout<<" 请输入您要修改的学生的姓名:";
cin>>name;
cout<<endl;
for(int h=0;h<i;h++) //h纪录要修改学生的位置
{
if(strcmp(name,s[h]->name)==0)
{
flag=1;
cout<<" 请输入新的学号:";
cin>>nu;
cout<<endl<<" 请输入C++成绩:";
cin>>cc;
cout<<endl<<" 请输入英语成绩:";
cin>>eng;
cout<<endl<<" 请输入数学成绩:";
cin>>ma;
cout<<endl<<" 请输入体育成绩:";
cin>>sp;
cout<<endl<<" 请输入网络基础成绩:";
cin>>l;
cout<<endl<<" 请输入C语言成绩:";
cin>>hb;
cout<<endl<<" 请输入数据库成绩:";
cin>>com;
cout<<endl;
s[h]->cpro=cc;
s[h]->english=eng;
s[h]->math=ma;
s[h]->sport=sp;
s[h]->law=l;
s[h]->hbpro=hb;
s[h]->computer=com;
s[h]->number=nu;
cout<<" 数据修改成功!"<<endl;
}
}
if(flag==0)
{
cout<<" 您要修改的学生本来就不存在!请检查重新输入!"<<endl;
}
cout<<" 想继续修改吗(y/n):";
cin>>c;
cout<<endl;
if(c!='y'&&c!='n')
{
cout<<" 指令错误!请重新输入!"<<endl<<" ";
cin>>c;
}
}while(c=='y');
break;
}
case '3': //按姓名查询
{
char n[20];int j=0;char c;
if(i==0)
{
cout<<" 管理系统中没有输入数据!"<<endl;break;
}
do{
int flag=0;
cout<<" 请输入你要查询的学生姓名:";
cin>>n;
cout<<endl;
for(int j=0;j<i;j++)
{
if(strcmp(n,(*s[j]).name)==0)
{
flag=1;
cout<<" 您要查询的学生是:"<<(*s[j]).name<<endl;
cout<<(*s[j]).name<<"的成绩是: "<<" C++: "<<(*s[j]).cpro<<" 英语: "<<(*s[j]).english<<" 数学:"<<(*s[j]).math<<" 体育:"<<(*s[j]).sport<<" 法律:"<<(*s[j]).law<<" C:"<<(*s[j]).hbpro<<" 数据库 "<<(*s[j]).computer<<endl;
}
}
if(flag==0)
cout<<" 对不起!您要查询的学生不存在!"<<endl;
cout<<" 您想继续查询吗?(y/n):";
cin>>c;
cout<<endl;
if(c!='y'&&c!='n')
{
cout<<" 指令错误!请重新输入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case '4': //按学号查询
{
int n,j=0;char c;
if(i==0){
cout<<" 管理系统中没有输入数据!"<<endl;break;
}
do{
int flag=0;
cout<<" 请输入你要查询的学生的学号:";
cin>>n;
cout<<endl;
for(int j=0;j<i;j++)
{
if(s[j]->number==n)
{
flag=1;
cout<<" 您要查询的学生是:"<<(*s[j]).name<<endl;
cout<<(*s[j]).name<<"的成绩是: "<<" C++:"<<(*s[j]).cpro<<" 英语:"<<(*s[j]).english<<" 数学:"<<(*s[j]).math<<" 体育:"<<(*s[j]).sport<<" 法律:"<<(*s[j]).law<<" C:"<<(*s[j]).hbpro<<" 数据库 "<<(*s[j]).computer<<endl;
}
}
if(flag==0)
cout<<" 对不起!您要查询的学生不存在!"<<endl;
cout<<" 您想继续查询吗?(y/n):";
cin>>c;
cout<<endl;
if(c!='y'&&c!='n')
{
cout<<" 指令错误!请重新输入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case '5': //输出
{
cout<<" 本系统所有学生数据如下:"<<endl;
if(i==0)
cout<<" 管理系统中没有输入数据!"<<endl;
cout<<" 姓名 学号 c++ 英语 数学 体育 网络基础 C语言 数据库 "<<endl;
for(int k=0;k<i;k++)
{
cout<<s[k]->name<<setw(7)<<s[k]->number<<setw(6)
<<(*s[k]).cpro<<setw(6)<<(*s[k]).english<<setw(6)
<<(*s[k]).math<<setw(6)<<(*s[k]).sport<<setw(7)
<<(*s[k]).law <<setw(10)<<(*s[k]).hbpro<<setw(10)<<(*s[k]).computer<<setw(10)<<endl;
}
break;
}
case'6'://退出
{exit(0); cout<<"Bye bye!"<<endl;}
}
cout<<" 您想继续进行其他操作吗?(y/n):";
int flag=0;
do
{
cin>>w;
cout<<endl;
if(w!='y'&&w!='n')
cout<<" 指令错误!请重新输入!"<<endl;
else
flag=1;
}while(flag==0);
if(w=='y')
cout<<" 请输入操作代码:0 输入数据"<<endl;
cout<<" 1 增加数据"<<endl;
cout<<" 2 修改数据"<<endl;
cout<<" 3 按姓名查询"<<endl;
cout<<" 4 按学号查找"<<endl;
cout<<" 5 输出所有学生成绩"<<endl;
cout<<" 6 退出系统"<<endl;
cin>>p;
}while(w=='y');
}
❾ 求学生成绩管理系统的源代码
#include<stdio.h>
#include<stdlib.h>
#defineFILENAME"student.dat"
typedefenum{MAN,WOMAN}SEX;
typedefstructtagStudent
{
intnum; //学生的编号
charname[20]; //学生的姓名
SEX sex; //学生的性别
intage; //学生的年龄
charmajor[20]; //学生的专业
structtagStudent*next;//下一个节点的指针
}STUDENT,*PSTUDENT;
STUDENTg_head; //头节点
//1.显示菜单
voidShowMenu();
//2.获取用户选择的菜单的编号
intGetMenuChoose();
//3.创建一个节点,它会返回一个新创建的学生信息节点的指针
PSTUDENTCreateStudent();
//4.把学生信息节点加入到链表中
intAddStudent(PSTUDENTpstu);
//5.返回指定编号学生节点的上一个节点的指针
PSTUDENTGetPrevAddr(intnum);
//6.显示所有学生信息
voidShowAll();
//7.显示信息数量
intShowStudentCount();
//8.修改学生信息,参数为要修改的学生的编号
voidModityStudent(intnum);
//9.获取用户的选择
intQuestion(constchar*pstr);
//10.获取用户输入的学生的编号
intGetInputNum();
//11.删除编号为num的学生信息
voidDelStudent(intnum);
//12.删除所有的学生信息
voidDelAll();
//13.把学生信息保存到文件当中
voidSaveToFile();
//14.从文件中读取学生信息
voidLoadFromFile();
intmain()
{
intrunning=1;
while(running)
{
switch(GetMenuChoose())
{
case0:
running=0;
break;
case1:
// printf("你选择了菜单1 ");
AddStudent(CreateStudent());
break;
case2:
// printf("你选择了菜单2 ");
DelStudent(GetInputNum());
break;
case3:
printf("你选择了菜单3 ");
break;
case4:
// printf("你选择了菜单4 ");
ModityStudent(GetInputNum());
break;
case5:
// printf("你选择了菜单5 ");
DelAll();
break;
case6:
// printf("你选择了菜单6 ");
ShowAll();
break;
case7:
// printf("你选择了菜单7 ");
ShowStudentCount();
break;
case8:
// printf("你选择了菜单8 ");
LoadFromFile();
break;
case9:
// printf("你选择了菜单9 ");
SaveToFile();
break;
}
system("pause");
}
return0;
}
//1.显示菜单
voidShowMenu()
{
system("cls");
printf("-----------------------------学生管理系统-------------------------------- ");
printf(" 1.添加学生信息2.删除某个学生信息3.显示某个学生信息 ");
printf(" 4.修改学生信息5.删除所有学生信息6.显示所有学生信息 ");
printf(" 7.显示信息数量8.读取文件学生信息9.保存学生信息至文件 ");
printf(" 0.退出系统 ");
printf(" ------------------------------------------------------------------------- ");
}
//2.获取用户选择的菜单的编号
intGetMenuChoose()
{
intnum;//保存用户选择的菜单编号
ShowMenu();
printf("请选择菜单(0~9):");
while(1!=scanf("%d",&num)||num<0||num>9)
{
ShowMenu();
printf("选择菜单错误,请重新选择(0~9):");
fflush(stdin);//清空输入缓冲区
}
returnnum;
}
//3.创建一个节点,它会返回一个新创建的学生信息节点的指针
PSTUDENTCreateStudent()
{
intsex;
PSTUDENTpstu=(PSTUDENT)malloc(sizeof(STUDENT));//在堆内存申请空间,存储学生信息
if(!pstu)
{
printf("申请内存空间失败! ");
returnNULL;
}
printf("请输入学生的编号(整型):");
while(1!=scanf("%d",&pstu->num)||GetPrevAddr(pstu->num))
{
printf("学生编号输入错误或已经存在,请重新输入学生的编号(整型):");
fflush(stdin);
}
printf("请输入学生的姓名(小于20字符):");
scanf("%20s",pstu->name);//(*pstu).name
printf("请选择学生的性别(1.男2.女):");
while(1!=scanf("%d",&sex)||sex<1||sex>2)
{
printf("性别选择错误,请重新选择学生的性别(1.男2.女):");
fflush(stdin);
}
if(1==sex)
pstu->sex=MAN;
else
pstu->sex=WOMAN;
printf("请输入学生的年龄(10~40):");
while(1!=scanf("%d",&pstu->age)||pstu->age<10||pstu->age>40)
{
printf("年龄输入错误!请重新输入学生的年龄(10~40):");
fflush(stdin);
}
printf("请输入学生的专业(小于20字符):");
scanf("%20s",pstu->major);
pstu->next=NULL;
returnpstu;
}
//4.把学生信息节点加入到链表中
intAddStudent(PSTUDENTpstu)
{
PSTUDENTps=&g_head;
if(!pstu)
{
return0;
}
//判断一下该学生信息是不是已经存在
if(GetPrevAddr(pstu->num))
{
printf("编号为%d的学生信息已经存在! ",pstu->num);
free(pstu);//释放该节点内存空间
return0;
}
//while循环的作用是找到当前链表的最后一个节点
while(ps->next)
ps=ps->next;
//把新节点加入到最后那个节点的后面
ps->next=pstu;
pstu->next=NULL;
return1;
}
//5.返回指定编号学生节点的上一个节点的指针
PSTUDENTGetPrevAddr(intnum)
{
PSTUDENTpstu=&g_head;
while(pstu->next)
{
if(pstu->next->num==num)
returnpstu;
pstu=pstu->next;
}
returnNULL;
}
//6.显示所有学生信息
voidShowAll()
{
PSTUDENTpstu=&g_head;
printf("-------------------------------------------------------------------- ");
printf("编号姓名性别年龄专业 ");
printf("-------------------------------------------------------------------- ");
while(pstu->next)
{
printf("%-8d",pstu->next->num);
printf("%-20s",pstu->next->name);
printf("%-6s",pstu->next->sex==MAN?"男":"女");
printf("%4d",pstu->next->age);
printf("%20s ",pstu->next->major);
pstu=pstu->next;//让指针指向下一个节点
}
printf("-------------------------------------------------------------------- ");
}
//7.显示信息数量
intShowStudentCount()
{
intcount=0;
PSTUDENTpstu=&g_head;
while(pstu->next)
{
++count;
pstu=pstu->next;
}
printf(" 当前共有%d位学生信息。 ",count);
returncount;
}
//8.修改学生信息,参数为要修改的学生的编号
voidModityStudent(intnum)
{
PSTUDENTpstu=GetPrevAddr(num);//获取要修改的学生节点的上一个节点
intchoose;
if(!pstu)
{
printf("没有编号为%d的学生信息。 ",num);
return;
}
pstu=pstu->next;//将要修改的学员节点的指针改为指向自己的
printf("当前学生的姓名为%s,",pstu->name);
if(Question("确定要修改吗?"))
{
printf("请输入学生的姓名(小于20字符):");
scanf("%20s",pstu->name);
}
printf("当前学生的性别为%s,",pstu->sex==MAN?"男":"女");
if(Question("确定要修改吗?"))
{
printf("请输入学生的性别(1.男2.女):");
while(1!=scanf("%d",&choose)||choose<1||choose>2)
{
printf("输入错误,请重新输入学生的性别(1.男2.女):");
fflush(stdin);
}
if(1==choose)
pstu->sex=MAN;
else
pstu->sex=WOMAN;
}
printf("当前学生的年龄为%d,",pstu->age);
if(Question("确定要修改吗?"))
{
printf("请输入学生的年龄(10~40):");
while(1!=scanf("%d",&pstu->age)||pstu->age<10||pstu->age>40)
{
printf("年龄输入错误!请重新输入学生的年龄(10~40):");
fflush(stdin);
}
}
printf("当前学生的专业为%s,",pstu->major);
if(Question("确定要修改吗?"))
{
printf("请输入学生的专业(小于20字符):");
scanf("%20s",pstu->major);
}
printf("修改完毕! ");
}
//9.获取用户的选择
intQuestion(constchar*pstr)
{
charanswer;
printf("%s请选择(yorn):",pstr);
while(1!=scanf("%c",&answer)||(answer!='y'&&answer!='n'))
{
printf("输入错误!%s请重新选择(yorn):",pstr);
fflush(stdin);//清空输入缓冲区,C库函数
}
if('y'==answer)
return1;
else
return0;
}
//10.获取用户输入的学生的编号
intGetInputNum()
{
intnum;
printf("请输入学生的编号(整型):");
while(1!=scanf("%d",&num))
{
printf("编号输入错误!请重新输入学生的编号(整型):");
fflush(stdin);
}
returnnum;
}
//11.删除编号为num的学生信息
voidDelStudent(intnum)
{
PSTUDENTpstu,ptmp;
if(pstu=GetPrevAddr(num))
{
if(!Question("确定要删除该学生信息吗?"))
{
return;
}
ptmp=pstu->next;
pstu->next=ptmp->next;
free(ptmp);
printf("删除了编号为%d的学生信息。 ",num);
}
else
{
printf("没有找到编号为%d的学生信息。 ",num);
}
}
//12.删除所有的学生信息
voidDelAll()
{
PSTUDENTpstu=g_head.next,ptmp;
intcount=0;
if(!Question("确定要删除当前所有的学生信息吗?"))
{
return;
}
while(pstu)
{
ptmp=pstu;
pstu=pstu->next;
free(ptmp);
++count;
}
printf("共删除了%d位学生信息。 ",count);
g_head.next=NULL;
}
//13.把学生信息保存到文件当中
voidSaveToFile()
{
FILE*pf=fopen(FILENAME,"wb");
PSTUDENTpstu=&g_head;
inti=0,count=ShowStudentCount();
if(!pf)
{
printf("打开待写入的文件失败! ");
return;
}
if(!Question("确定要将当前学生信息保存到文件中吗?"))
{
fclose(pf);
return;
}
fwrite(&count,1,sizeof(count),pf);//把学生信息的数量先写入到文件头
while(pstu->next)
{
fwrite(pstu->next,1,sizeof(STUDENT),pf);//把每位学生信息写入文件
++i;
pstu=pstu->next;
}
fclose(pf);
if(i==count)
{
printf("成功的写入了%d条学生信息。 ",count);
}
else
{
printf("应写入%d条学生信息,实际写入%d条学生信息。 ",count,i);
}
}
//14.从文件中读取学生信息
voidLoadFromFile()
{
inti,count=0,repeat=0;
FILE*pf;
PSTUDENTpstu;
printf("提示:从文件中读取学生信息会询问是否清空当前学生信息(不清空表示合并所有信息)。 ");
if((pf=fopen(FILENAME,"rb"))==NULL)
{
printf("文件还没有创建,请手工输入学生信息并保存吧! ");
return;
}
DelAll();//删除之前的所有学生信息,然后从文件中读取
fread(&count,1,sizeofcount,pf);//获取学生信息的数量
for(i=0;i<count;++i)
{
pstu=(PSTUDENT)malloc(sizeof(STUDENT));
fread(pstu,1,sizeof(STUDENT),pf);
if(!AddStudent(pstu))
{
++repeat;//保持有多少个和当前链表中相重复的学生信息
}
}
fclose(pf);
printf("文件读取完毕!新增学生信息%d条。 ",count-repeat);
}
这个累死我了,我要财富值。。。为了这个不容易啊
❿ 学生成绩管理系统的代码是什么
代码如下:
for(i=0;i<66;i++)
printf("*");
printf(" ");
printf("1.Input record ");
printf("2.Caculate totel and average score of every course ");
printf("3.Caculate totel and average score of every student ");
printf("4.Sort in descending order by total score of every student ");
printf("5.Sort in ascending order by total score of every student ");
printf("6.Sort in ascending order by number ");
printf("7.Sort in ascending order by name ");
printf("8.Search by number ");
printf("9.Search by name ");
printf("10.Statistic analysis for every course ");
printf("11.List record ");
printf("12.Write to a file ");
printf("13.Read from a file ");
printf("0.Exit ");
for(i=0;i<66;i++)
printf("*");
printf(" ");
printf("Please enter your choice:");
printf(" ");