public class complie {
int i,j;
public complie(int i,int j)//构建一个复数类
{
thisi=i;
thisj=j;
}
complie add(complie c)//复数加法
{
int l,k;
l=ci+i;
k=cj+j;
return (new complie(l,k));
}
complie cut(complie c)//复数减法
{
int l,k;
l=i-ci;
k=j-cj;
return (new complie(l,k));
}
void ToString()//将复数输出
{
Systemoutprintln("复数为:"+i+"+"+j+"i");
}
public static void main(String[] args)
{
complie a=new complie(4,5);
complie b=new complie(2,3);
Systemoutprintln("构造的复数类为:");
aToString();
bToString();
Systemoutprintln("运算复数a+b=:");
aadd(b)ToString();
Systemoutprintln("运算复数a-b=:");
acut(b)ToString();
}
}
头文件:::
#ifndef H_STUDENT_HH
#define H_STUDENT_HH
#include "stdioh"
#include "stringh"
#include "malloch"
#define LEN sizeof(struct message_student) /一个结构体数组元素的长度/
#define numsubs 5 /学科数目/
typedef struct message_student /结构体定义/
{
char number[6];
char name[20];
char sex[4];
float subject[numsubs];
float score;
float average;
int index;
}student;
extern int numstus; /学生数目/
extern student pointer; /指向结构体数组/
extern int lens;
int menu_select(); /函数声明/
int openfile(student stu[]);
int findrecord(student stud[]);
int writetotext(student stud[]);
void welcome();
void display1();
void showtable();
void sort(student stu[]);
void deleterecord(student stu[],int i);
void addrecord(student stud[]);
void display(student stud[],int n1,int n2);
void amendrecord(student stud[]);
void count(student stud[]);
void sortnum(student stud[]);
void sortnum2(student stud[]);
void sortname(student stud[]);
void sortname2(student stud[]);
void sortcount(student stud[]);
void sortcount2(student stud[]);
void statistic(student stud[]);
void display1();
#endif
#include "headh"
int menu_select()
{
char c;
printf("\n\n");
printf(" | 1 增加学生记录 5统计信息 |\n");
printf(" | 2 查询学生记录 6打开文件 |\n");
printf(" | 3 修改学生记录 7保存文件 |\n");
printf(" | 4 学生纪录排序 8显示记录 |\n");
printf(" | 0退出系统 |\n");
printf("\n\n");
printf("请选择(0-8):");
c=getchar();
getchar();
return (c-'0');
}
#include "headh"
int findrecord(student stud[]) /查找信息/
{
char str[2];
int i,num;
if(numstus==0)
{
printf("没有可被查找的记录\n");
return -1;
}
else
{
printf("以何种方式查找?\n1学号\t2姓名\t3名次\n");
gets(str);
if(str[0]=='1') /按学号查找/
{
printf("请输入学号:");
gets(str);
for(i=0;i<=numstus;i++)
if(strcmp(str,stud[i]number)==0)
{
display(stud,i,i);
break;
}
else continue;
}
else if(str[0]=='2') /按姓名查找/
{
printf("请输入姓名:");
gets(str);
for(i=0;i<=numstus;i++)
if(strcmp(str,stud[i]name)==0)
{
display(stud,i,i);
break;
}
else continue;
}
else if(str[0]=='3') /按名次查找/
{
printf("请输入名次:");
scanf("%d",&num);
getchar();
for(i=0;i<=numstus;i++)
if(num==stud[i]index)
{
display(stud,i,i);
break;
}
else continue;
}
if(i>numstus)
{
printf("没有查找所要的信息。\n");
return -1;
}
return i;
}
}
#include"headh"
int openfile(student stu[])
{
int i=0,j;
FILE fp;
char filename[20],str[2];
if(numstus!=0)
{
printf("已经有记录存在,是否保存(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
writetotext(stu);
}
printf("请输入文件名:");
gets(filename);
numstus=0;
if((fp=fopen(filename,"rb+"))==NULL)
{
printf("无法打开该文件\n");
return(-1);
}
fscanf(fp,"%d",&numstus);
fgetc(fp);
while(i<numstus)
{
fscanf(fp,"%s",stu[i]number);
fscanf(fp,"%s",stu[i]name);
fscanf(fp,"%s",stu[i]sex);
for(j=0;j<numsubs;j++)
fscanf(fp,"%f",&stu[i]subject[j]);
fscanf(fp,"%f",&stu[i]score);
fscanf(fp,"%f",&stu[i]average);
fscanf(fp,"%d",&stu[i]index);
i++;
}
fclose(fp);
printf("文件读取成功\n");
printf("是否显示纪录(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
display(stu,0,numstus-1);
return(0);
}
#include "headh"
void sort(student stud[])
{
int i,j=0;
char str[5];
student p;
p=stud;
if(numstus==0)
{
printf("没有可供查询的记录!");
}
while(1)
{
for(i=0;;i++)
{
printf(" 请输入查询方式:");
printf("(直接输入回车则结束查询 *** 作)\n");
printf("1按照学号\t");
printf("2按照姓名\t");
printf("3按照名次\n");
gets(str);
if(strlen(str)==0) break;
if(str[0]=='1')
{
printf("请输入排序次序:\n");
printf("1升序排列\t");
printf("2降序排列\n");
gets(str);
if(str[0]=='1')
sortnum2(p);
else
sortnum(p);
display(stud,0,numstus-1);
}
else if(str[0]=='2')
{
printf("请输入排序次序:\n");
printf("1升序排列\t");
printf("2降序排列\n");
gets(str);
if(str[0]=='1')
sortname2(p);
else
sortname(p);
display(stud,0,numstus-1);
}
else if(str[0]=='3')
{
printf("请输入排序次序:\n");
printf("1升序排列\t");
printf("2降序排列\n");
gets(str);
if(str[0]=='1')
sortcount2(p);
else
sortcount(p);
display(stud,0,numstus-1);
}
else printf("请输入1~3");
printf("是否退出排序(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y') break;
}
return;
}
}
void sortnum(student stud[])
{
int i,j;
student temp;
student p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j+1]number,stud[j]number)>0)
{
temp=(p+j);
(p+j)=(p+j+1);
(p+j+1)=temp;
}
}
}
void sortnum2(student stud[])
{
int i,j;
student temp;
student p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j]number,stud[j+1]number)>0)
{
temp=(p+j);
(p+j)=(p+j+1);
(p+j+1)=temp;
}
}
}
void sortname(student stud[])
{
int i,j;
student temp;
student p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j+1]name,stud[j]name)>0)
{
temp=(p+j);
(p+j)=(p+j+1);
(p+j+1)=temp;
}
}
}
void sortname2(student stud[])
{
int i,j;
student temp;
student p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j]name,stud[j+1]name)>0)
{
temp=(p+j);
(p+j)=(p+j+1);
(p+j+1)=temp;
}
}
}
void sortcount(student stud[])
{
int i,j;
student temp;
student p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(stud[j+1]index>stud[j]index)
{
temp=(p+j);
(p+j)=(p+j+1);
(p+j+1)=temp;
}
}
}
void sortcount2(student stud[])
{
int i,j;
student temp;
student p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(stud[j]index>stud[j+1]index)
{
temp=(p+j);
(p+j)=(p+j+1);
(p+j+1)=temp;
}
}
}
#include"headh"
void statistic(student stud[]) /新增功能,输出统计信息/
{
int i,j=0,k=0;
char c1,str[2];
float average[numsubs],sum=0;
if(numstus==0)
printf("没有可被查找的记录\n");
else
{
while(1)
{
printf("下面将统计考试成绩\n");
printf("请选择你要统计哪科的成绩 1A\t2B\t3C\t4D\t5E\n");
c1=getchar();
printf("\t一共有个%d记录\n",numstus); /总共记录数/
switch(c1)
{
case '1':
for(i=0;i<numstus;i++) /循环输入判断/
{
sum+=stud[i]subject[0];
if(stud[k]subject[0]>stud[i]subject[0]) k=i;
if(stud[j]subject[0]<stud[i]subject[0]) j=i;
}
average[0]=sum/numstus;
printf("\t科目A的最高分:\n"); /最高分/
printf("\t\t学号:%s 姓名:%s 分数:%2f\n",stud[j]number,stud[j]name,stud[j]subject[0]);
printf("\t科目A的最低分是:\n"); /最低分/
printf("\t\t学号:%s 姓名:%s 分数:%2f\n",stud[k]number,stud[k]name,stud[k]subject[0]);
printf("\t科目A的平均分是 %52f\n",average[0]); /平均分/
break;
case '2':
for(i=0;i<numstus;i++) /循环输入判断/
{
sum+=stud[i]subject[1];
if(stud[k]subject[1]>stud[i]subject[1]) k=i;
if(stud[j]subject[1]<stud[i]subject[1]) j=i;
}
average[1]=sum/numstus;
printf("\t科目B的最高分:\n"); /最高分/
printf("\t\t学号:%s 姓名:%s 分数:%2f\n",stud[j]number,stud[j]name,stud[j]subject[1]);
printf("\t科目B的最低分是:\n"); /最低分/
printf("\t\t学号:%s 姓名:%s 分数:%2f\n",stud[k]number,stud[k]name,stud[k]subject[1]);
printf("\t科目B的平均分是 %52f\n",average[1]); /平均分/
break;
case '3':
for(i=0;i<numstus;i++) /循环输入判断/
{
sum+=stud[i]subject[2];
if(stud[k]subject[2]>stud[i]subject[2]) k=i;
if(stud[j]subject[2]<stud[i]subject[2]) j=i;
}
average[2]=sum/numstus;
printf("\t科目C的最高分:\n"); /最高分/
printf("\t\t学号:%s 姓名:%s 分数:%2f\n",stud[j]number,stud[j]name,stud[j]subject[2]);
printf("\t科目C的最低分是:\n"); /最低分/
printf("\t\t学号:%s 姓名:%s 分数:%2f\n",stud[k]number,stud[k]name,stud[k]subject[2]);
printf("\t科目C的平均分是 %52f\n",average[2]); /平均分/
break;
case '4':
for(i=0;i<numstus;i++) /循环输入判断/
{
sum+=stud[i]subject[3];
if(stud[k]subject[3]>stud[i]subject[3]) k=i;
if(stud[j]subject[3]<stud[i]subject[3]) j=i;
}
average[3]=sum/numstus;
printf("\t科目D的最高分:\n"); /最高分/
printf("\t\t学号:%s 姓名:%s 分数:%2f\n",stud[j]number,stud[j]name,stud[j]subject[3]);
printf("\t科目D的最低分是:\n"); /最低分/
printf("\t\t学号:%s 姓名:%s 分数:%2f\n",stud[k]number,stud[k]name,stud[k]subject[3]);
printf("\t科目D的平均分是 %52f\n",average[3]); /平均分/
break;
case '5':
for(i=0;i<numstus;i++) /循环输入判断/
{
sum+=stud[i]subject[4];
if(stud[k]subject[4]>stud[i]subject[4]) k=i;
if(stud[j]subject[4]<stud[i]subject[4]) j=i;
}
average[4]=sum/numstus;
printf("\t科目E的最高分:\n"); /最高分/
printf("\t\t学号:%s 姓名:%s 分数:%2f\n",stud[j]number,stud[j]name,stud[j]subject[4]);
printf("\t科目E的最低分是:\n"); /最低分/
printf("\t\t学号:%s 姓名:%s 分数:%2f\n",stud[k]number,stud[k]name,stud[k]subject[4]);
printf("\t科目E的平均分是 %52f\n",average[4]); /平均分/
break;
default:printf("输入错误!请输入1~5之间的数\n");
}
sum=0;
getchar();
printf("是否继续进行统计(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y') ;
else break;
}
}
}
#include"headh"
int writetotext(student stud[]) /将所有记录写入文件/
{
int i=0,j;
FILE fp;
char filename[20];
printf("输入文件名称:");
gets(filename);
fp=fopen(filename,"w");
fprintf(fp,"%d\n",numstus);
while(i<numstus)
{
fprintf(fp,"%s %s %s ",stud[i]number,stud[i]name,stud[i]sex);
for(j=0;j<numsubs;j++)
fprintf(fp,"%f ",stud[i]subject[j]);
fprintf(fp,"%f %f %d ",stud[i]score,stud[i]average,stud[i]index);
i++;
}
fclose(fp);
printf("已成功存储!\n");
display(stud,0,numstus-1);
numstus=0;
return 0;
}
#include"headh"
void welcome()
{
printf("\t\n");
printf("\t\t\t\t这是一个学生成绩管理系统\n\t\t\t\t 倾情奉献 欢迎使用!\n");
printf("\t\n");
}
void showtable()
{
printf("---------------------------------------------------------------------------------------\n");
printf("学号\t姓名\t性别\tA\tB\tC\tD\tE\t总分\t平均分\t名次\n");
printf("---------------------------------------------------------------------------------------\n");
}
void display(student stud[],int n1,int n2)
{
int i;
showtable(); /显示表头/
for(i=n1;i<=n2;i++)
printf("%s\t%s\t%s\t%2f\t%2f\t%2f\t%2f\t%2f\t%2f\t%2f\t%d\t\n",stud[i]number,stud[i]name,stud[i]sex,stud[i]subject[0],stud[i]subject[1],stud[i]subject[2],stud[i]subject[3],stud[i]subject[4],stud[i]score,stud[i]average,stud[i]index);
/通过循环输出数据/
}
void display1()
{
printf("\t\t本系统由计应精英一组亲情制作\n\n");
printf("\t\t制作人员列表: (按比划)\n");
printf("\t\t王庆斌\t\t\t张威\n\t\t李智\t\t\t周在峰\n\t\t杨凯\t\t\t胡杨\n");
printf("\n\n");
getchar();
}
#include"headh"
#include<stringh>
void amendrecord(student stud[])
{
char str[5]; /供用户输入/
int i=-1,j;
if(numstus==0) /没有记录返回/
printf("没有可供修改的记录!");
while(i<0)
{
i=findrecord(stud);
if(i>=0)
{
printf("要删除这个学生的信息吗(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
{
deleterecord(stud,i);
count(stud);
}
else
{
printf("确定要修改这个学生的信息吗(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
{
printf("下面请重新输入学生的信息:\n");
printf("请输入学号:");
gets(stud[i]number);
printf("请输入姓名:");
gets(stud[i]name);
printf("请输入性别(男/女 1/0):");
gets(str);
if(str[0]=='0')
strcpy(stud[i]sex,"女");
else
strcpy(stud[i]sex,"男");
stud[i]score=0;
printf("请按顺序输入成绩:");
for(j=0;j<numsubs;j++)
{
scanf("%f",&stud[i]subject[j]);
stud[i]score+=stud[i]subject[j];
}
getchar();
stud[i]average=stud[i]score/numsubs;
}
count(stud);
}
display(stud,0,numstus-1);
}
printf("是否继续进行其他修改(y/n)\n");
gets(str);
if(str[0]=='y'||str[0]=='Y')
i=-1;
else i=1;
}
}
void deleterecord(student stu[],int i) /删除信息/
{
int j;
while(i>=0)
{
for(j=i;j<numstus;j++)
stu[j]=stu[j+1];
numstus--;
printf("删除成功!\n");
}
}
void count(student stud[])
{
int i,j;
for(i=0;i<numstus;i++)
{
stud[i]index=1;
for(j=0;j<numstus;j++)
if(stud[j]score>stud[i]score)
stud[i]index++;
}
}
#include "headh"
void addrecord(student stud[])
{
int i=0,j,num;
char str[5];
if(numstus!=0)
{
printf("已有记录存在是否覆盖(y/n)\n");
gets(str);
if(str[0]=='Y'||str[0]=='y')
i=0;
else i=numstus;
}
printf("请输入增加的学生信息条目数:");
scanf("%d",&num);
if(i==0)
numstus=num;
else numstus+=num;
if(numstus>lens)
{
lens+=50;
pointer=(student )realloc(pointer,lensLEN);
}
printf("请输入学生信息:\n");
for(;i<numstus;i++)
{
getchar();
printf("请输入学号:");
gets(pointer[i]number);
printf("请输入姓名:");
gets(pointer[i]name);
printf("请输入性别(男/女 1/0):");
gets(pointer[i]sex);
if(pointer[i]sex[0]=='0') strcpy(pointer[i]sex,"女");
else strcpy(pointer[i]sex,"男");
printf("请输入各科成绩:(按ABCDE的顺序):");
stud[i]score=0;
for(j=0;j<numsubs;j++)
{
scanf("%f",&stud[i]subject[j]); /计算总分/
stud[i]score+=stud[i]subject[j];
}
stud[i]average=stud[i]score/numsubs; /计算平均分/
}
count(stud); /附名次/
display(stud,0,numstus-1);
getchar();
}#include "headh"
int numstus;
int lens;
student pointer;
void main()
{
int i=1;
char str[2];
lens=100;
pointer=(student )malloc(lensLEN); /分配内存/
numstus=0;
welcome(); /欢迎界面/
while(i>0)
{
i=menu_select(); /控制菜单/
switch(i)
{
case 1:addrecord(pointer);break; /增加学生信息/
case 2:findrecord(pointer);break; /查询学生信息/
case 3:amendrecord(pointer);break; /修改学生信息/
case 4:sort(pointer);break; /学生信息排序/
case 5:statistic(pointer);break; /统计信息/
case 6:openfile(pointer);break; /打开文件/
case 7:writetotext(pointer);break; /保存文件/
case 8:display(pointer,0,numstus-1);break; /显示记录/
case 0:
if(numstus!=0) printf("是否保存当前记录(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
writetotext(pointer);
i=-1;break; /退出系统/
default:printf("请输入数字0~8:\n");i=1; /输入错误/
}
}
printf("\t\t欢迎再次使用本系统。\n\n");
display1();
}
自己一改就能用,给我加分哈!
向源代码管理中添加项目的方式取决于项目所属的解决方案是否处于源代码管理下。如果解决方案处于源代码管理下,则签入解决方案时会自动向源代码管理中添加项目。有关签入解决方案的详细信息,请参阅
如果该项目所属的解决方案未处于源代码管理下,则可将该解决方案添加到源代码管理中,这样会自动添加解决方案的项目。有关将解决方案添加到源代码管理中的详细信息,请参阅
如果不想将解决方案添加到源代码管理中,则可使用
“将选定内容添加到源代码管理中”
命令手动添加项目。
数据库对象不直接受源代码管理提供程序的保护,但是可以创建数据库对象脚本并将脚本保存在源代码管理中。
以上就是关于求一个简单的用java语言编写的文件管理器的源代码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)