学生来源代码完整版本
- 格式:doc
- 大小:219.50 KB
- 文档页数:10
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>插入信息</title></head><body><%sno=request.Form("sno")'response.write(Len(sno) & "<br/>")sname=request.Form("sname")'response.write(sname & "<br/>")sex=request.Form("sex")'response.write(UCase(sex) & "<br/>")classID=request.Form("classID")'response.write(classID & "<br/>")If sno <> "" ThenIf Len(sno)=11 thenSet OBJConn=Server.CreateObject("ADODB.connection") '创建一个数据库连接对象OBJConn.Open "driver={microsoft access driver (*.mdb)};" &_"dbq="& server.mappath("database\cqe.mdb")Set Rs=Server.CreateObject("ADODB.RecordSet")sqlstr="select * from student where sno ='" & sno & "'"Rs.Open sqlstr, OBJConn, 3,3If Not Rs.eof Thenresponse.write("该生已经存在,请重新输入。
#include <stdio.h>#include <string.h> #include <stdlib.h> #include <conio.h> #define N 1000 typedef struct student {int number;char name[20];int grade;int gaoshu;int yingyu;int jisuanji;int sum;}STUDENT; STUDENT student[N]; int shuliang=0;void menu();void fhzjm(){char biaozhi[20]; printf("\n");printf("还需要操作么?如果需要操作请输入:yes,否则请输入:no\n");scanf("%s",biaozhi);if(strcmp(biaozhi,"yes")==0){menu();}else if(strcmp(biaozhi,"no")==0)exit(0);else{printf("请输入正确的字符,谢谢!\n");fhzjm();}}void DengJi(){int rs;int i,k=1;system("CLS");printf("请输入需要输入几个学生信息:"); scanf("%d",&rs);for(i=shuliang;i<shuliang+rs;i++,k++){printf("请输入第%d个学生的学号:",k); scanf("%d",&student[i].number); printf("请输入学生的姓名:");scanf("%s",student[i].name);printf("请输入学生3门课的成绩:"); printf("请输入第1门课的成绩:"); scanf("%d",&student[i].gaoshu); printf("请输入第2门课的成绩:"); scanf("%d",&student[i].yingyu); printf("请输入第3门课的成绩:");scanf("%d",&student[i].jisuanji);}shuliang=shuliang+rs;fhzjm();}void ShanChu(){char shanchuinfo[10];system("CLS");printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0){int j;printf("你删除的学生信息如下:\n");printf("-----------学号-------------姓名-------------高数--------------英语--------------计算机\t\n");for(j=0;j<shuliang;j++)printf("----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaos hu,student[j].jisuanji);shuliang=0;printf("删除成功\n\n");}else if(strcmp(shanchuinfo,"one")==0) {struct student *p=NULL;int choice;int i,j,k=0;printf("请输入你要删除的人的学号:"); scanf("%d",&choice);for(i=0;i<shuliang;i++){if(choice==student[i].number){k=1;j=i;break; }}if(k){if(shuliang==1) {p=&student[0]; free(p); shuliang=0;}else{for(i=j;i<shuliang;i++) {student[i]=student[i+1]; }shuliang=shuliang-1; }printf("删除成功\n\n"); }else{printf("输入数据错误!\n"); }}fhzjm();}void LiuLan(){int i;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息!\n");}else{for(i=0;i<shuliang;i++){printf("第%d个学生的学号为:%d\n",i+1,student[i].number); printf("第%d个学生的姓名为:%s\n",i+1,student[i].name); printf("第%d个学生的第一门课的成绩为:%d\n",i+1,student[i].gaoshu);printf("第%d个学生的第二门课的成绩为:%d\n",i+1,student[i].yingyu);printf("第%d个学生的第三门课的成绩为:%d\n",i+1,student[i].jisuanji);student[i].sum=student[i].gaoshu+student[i].yingyu+stude nt[i].jisuanji;printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum);}}fhzjm();}void ChaZhao(){int xx;char choice,yy[20];int i,j,k=0;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息!\n"); fhzjm();}printf("三种查找方式:学号,姓名,成绩\n");printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");printf("请输入您查找的方式:");scanf("%s",&choice);if(choice=='1'){printf("请输入需要查找学生的学号:");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].number){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,st udent[j].yingyu,student[i].jisuanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='2'){printf("请输入需要查找学生的姓名:\n");scanf("%s",yy);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(strcmp(yy,student[i].name)==0){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,st udent[j].yingyu,student[j].jisuanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='3'){printf("请输入需要查找学生的成绩:\n");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数----英语----计算机----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].grade){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,st udent[j].yingyu,student[i].jisuanji);}}if(k==0)printf("输入信息有误:\n");}fhzjm();}void PaiXu(){struct student *p1[N],**p2,*temp; int i,j;system("CLS");p2=p1;for( i=0;i<shuliang;i++){p1[i]=student+i;}for( i=0;i<shuliang;i++){for( j=i+1;j<shuliang;j++){if((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;}}printf("按照总成绩排序之后的信息为:\n");printf("----学号----姓名----总成绩----\t\n");for( i=0;i<shuliang;i++){student[i].sum=student[i].gaoshu+student[i].yingyu+stude nt[i].jisuanji;printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum);}fhzjm();void CunChu(){int i;FILE *rs;if((rs=fopen("student.txt","w"))==NULL) {printf("not open");exit(0);}for(i=0;i<shuliang;i++)fwrite(&student[i], sizeof(student[i]), 1, rs); }if(ferror(rs)){fclose(rs);perror("写文件失败!\n");return;}printf("存储文件成功!\n");fclose(rs);}void DaoChu(){struct student t;int i=0;FILE* fp = fopen("student.txt", "r"); shuliang=0;if(NULL==fp){perror("读取文件打开失败!\n");}memset(student,0x0,sizeof(student)); while(1){fread(&t,sizeof(t),1,fp);if(ferror(fp)){fclose(fp);perror("读文件过程失败!\n"); return;}if(feof(fp)){break;}student[i]=t;i++;}fclose(fp);shuliang=i;printf("导出文件成功!\n");fhzjm();}void menu(){int n=0;system("CLS");printf(" 学生信息管理系统\n");printf(" 作者:陈椿\n");printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n");printf(" 2.删除学生信息\n");printf(" 3.浏览所有已经登记的学生\n"); printf(" 4.查找\n");printf(" 4.1按学号查找\n");printf(" 4.2按姓名查找\n");printf(" 4.3按成绩查找\n");printf(" 5.根据总成绩排序\n");printf(" 6.存储到文件\n");printf(" 7.从文件导出\n");printf(" 8.退出系统\n");a: printf(" 请选择:");scanf("%d",&n);switch (n){case 1:DengJi();break; case 2: ShanChu();break; case 3:LiuLan();break; case 4: ChaZhao();break; case 5:PaiXu();break;case 6:CunChu();break;case 7:DaoChu();break;case 8:exit(0);break;default:{printf("请输入1-8之间的数字,谢谢!\n"); goto a;}}}main() { menu(); }。
学生信息管理系统系统源代码(总34页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--系统源代码一、登录界面代码using System;using ;using ;using ;using ;using partial class login : protected void txtid_Click(object sender, EventArgs e){= "";= "";}protected void Button1_Click(object sender, EventArgs e){string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);();DataSet ds=new DataSet () ;SqlDataAdapter da = new SqlDataAdapter("select * from users where userid='" + + "' and userpwd='" + + "'", conn);(ds);if [0].==0){Label3 .Text ="账号或密码错误,请重新输入!";}else{Session ["userid"]=txtid .Text ;Session["userpwd"] = ;Session["username"] = [0].Rows[0]["username"].ToString(); Session["userpower"] = [0].Rows[0]["userpower"].ToString(); if (Session["userpower"].ToString () == "0"){("admin/");}else if (Session["userpower"].ToString() == "1"){("student/");}else{= "对不起,权限验证失败";}}();();}}二、添加课程页面代码using System;using ;using ;using ;using ;using partial class addcourse : SqlCommand mycmd;SqlConnection conn;protected void Page_Load(object sender, EventArgs e){"onblur", "checkcourseid()");string strconn = ["connStr"];conn = new SqlConnection(strconn);}protected void Button1_Click(object sender, EventArgs e){if == ""){= "课程号不能为空";}else{string sqlstr = "";sqlstr = "insert intocourse(courseid,coursename,coursetime,fen,type,teacher)values('" + + "','" + + "','" + + "','" + + "','" + + "','" + + "')";();mycmd = new SqlCommand(sqlstr, conn);();try{();("<script>javascript:alert('添加成功!!!');</script>");}catch (SqlException){("<script>javascript:alert('添加失败!!!');</script>");}finally{();sqlstr = "";}}}protected void Button2_Click(object sender, EventArgs e) {= "";= "";= "";= "";= "";}protected void Button3_Click(object sender, EventArgs e) {("");}}三、添加成绩程序代码using System;using ;using ;using ;using ;using partial class addscore : SqlCommand mycmd; SqlConnection conn;protected void Page_Load(object sender, EventArgs e){string strconn = ["connStr"];conn = new SqlConnection(strconn);}{if .ToString ()== ""){= "学号不能为空";}else{string sqlstr = "";sqlstr = "insert intoscore(userid,username,courseid,coursename,score,[year])values('" + + "','" + + "','" + + "','" + + "','" + + "','" + + "')";();mycmd = new SqlCommand(sqlstr, conn);();try{();("<script>javascript:alert('添加成功!!!');</script>");}catch (SqlException){("<script>javascript:alert('添加失败!!!');</script>");}finally{();sqlstr = "";}}}{= "";= "";= "";= "";}protected void Button3_Click(object sender, EventArgs e){("");}protected void userid_SelectedIndexChanged(object sender, EventArgs e){string sqlstr = "";sqlstr = "select username from students where userid='" + + "'";();mycmd = new SqlCommand(sqlstr, conn);();SqlDataReader da;da = ();while ()){= da["username"].ToString();}}protected void txtcourseid_SelectedIndexChanged(object sender, EventArgs e){string sqlstr = "";sqlstr = "select coursename from course where courseid='" + + "'";();mycmd = new SqlCommand(sqlstr, conn);();SqlDataReader da;da = ();while ()){= da["coursename"].ToString();}}}四、添加学生程序代码using System;using ;using ;using ;using ;using ;using ;using partial class addstudent : SqlComman d mycmd; protected void Page_Load(object sender, EventArgs e){"onblur", "checkuserid()");string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);}protected void Button1_Click(object sender, EventArgs e) {if == "")return;string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);string sqlstr = "";string sql = "";sqlstr = "insert intostudents(userid,username,sex,minzu,birthday,class,comefrom,beizhu,xuey,zhua ny,tel,idc,zhengzmm,zhiw,huoj,weij)values('" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "','" + + "')";();mycmd = new SqlCommand(sqlstr, conn);();string name = 获取上传文件的名称string type = ("\\") + 1);alue = wpath;();oString();string sql = "select courseid from course where courseid='" + nam + "'"; SqlCommand DBHelper;DBHelper = new SqlCommand(sql, conn);();SqlDataReader dr = ();if ()){("<b class='Error'>该课程号已经存在,请换一个</b>");}else{("<b class='Right'>该课程号可以使用</b>");}();}}六、检查学号唯一性程序代码using System;using ;using ;using ;using ;using partial class checkuser : protected void Page_Load(object sen der, EventArgs e){= 0;string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);string nam = ["name"].ToString();string sql = "select userid from students where userid='" + nam + "'";SqlCommand DBHelper;DBHelper = new SqlCommand(sql, conn);();SqlDataReader dr = ();if ()){("<b class='Error'>该学号已经存在,请换一个</b>");}else{("<b class='Right'>该学号可以使用</b>");}();}}七、课程信息程序代码using System;using ;using ;using ;using ;using partial class course : SqlConnection conn;SqlDataReader getdata;protected void Page_Load(object sender, EventArgs e){string strconn = ["connStr"];conn = new SqlConnection(strconn);SqlDataReader getdata;SqlCommand mycmd;DataSet ds = new DataSet();string sql = "";sql = "select * from course order by courseid";mycmd = new SqlCommand(sql, conn);();getdata = ();= getdata;();();();}protected void Button1_Click(object sender, EventArgs e) {DataSet ds;SqlDataReader da;string strsql = "";SqlCommand cmd;();strsql = "select * from course where courseid='" + + "'or coursename like '" + + "'";cmd = new SqlCommand(strsql, conn);da = ();= da;();();();}}八、编辑、删除学生信息程序代码using System;using ;using ;using ;using ;using partial class images_editstudent : SqlCommand cmd;SqlCommand cmd2;protected void Page_Load(object sender, EventArgs e){if (!{string sql = "";SqlDataReader reader;string uid = "";uid = ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);sql = "select * from students where userid='" + uid + "'";SqlCommand cmd;cmd = new SqlCommand(sql, conn);();reader = ();while ()){= reader["userId"].ToString();= reader["username"].ToString();= reader["sex"].ToString();= reader["minzu"].ToString();= reader["birthday"].ToString();= reader["class"].ToString();= reader["comefrom"].ToString();= reader["xuey"].ToString();= reader["zhuany"].ToString();= reader["tel"].ToString();= reader["idc"].ToString();}();sql = "";();}}protected void Button1_Click(object sender, EventArgs e) {string uid="";uid=Page .Request ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);string sql="";sql = "update students set userid='" + + "',username='" + + "',minzu='" + + "',sex='" + + "',birthday='" + + "',class='" + + "',comefrom='" + + "',beizhu='" + + "',xuey='" + + "',zhuany='" + + "',tel='" + + "',idc='" + + "',zhengzmm='" + + "'where userid='" + uid + "'";cmd=new SqlCommand (sql,conn );();try{();["color"] = "blue";= "编辑成功";("<script>javascript:alert('编辑成功!!!');</script>");}catch(SqlException ){= "编辑失败";["color"] = "red";}();();}protected void Button2_Click(object sender, EventArgs e){string sql = "";string uid = "";string sqlall = "";uid = ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);sql = "delete from students where userid='" + uid + "'";sqlall = "delete from images where userid='" + uid + "'";cmd = new SqlCommand(sql, conn);cmd2 = new SqlCommand(sqlall,conn);();try{();string sql1 = "";sql1 = "delete from users where userid='" + uid + "'"; SqlCommand cmd1 = new SqlCommand(sql1, conn); ();try{();["color"] = "blue";= "删除成功";("<script>javascript:alert('删除成功!!!');</script>");}catch (SqlException){= "删除失败";("<script>javascript:alert('删除失败!!!');</script>"); }finally{sql1 = "";}}catch(SqlException ){= "删除失败";["color"] = "red";}();();= "";= "";= "";= "";= "";= "";= "";= "";= "";= "";= "";}protected void Button3_Click(object sender, EventArgs e) {("");}}九、编辑、删除课程信息程序代码using System;using ;using ;using ;using ;using partial class editcourse : SqlCommand cmd;protected void Page_Load(object sender, EventArgs e){if (!{string sql = "";SqlDataReader reader;string uid = "";uid = ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);sql = "select * from course where courseid='" + uid + "'"; SqlCommand cmd;cmd = new SqlCommand(sql, conn);();reader = ();while ()){= reader["courseid"].ToString();= reader["coursename"].ToString();= reader["coursetime"].ToString();= reader["fen"].ToString();= reader["type"].ToString();= reader["teacher"].ToString();}();sql = "";();}}protected void Button1_Click(object sender, Even tArgs e){string uid = "";uid = ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);string sql = "";sql = "update course set courseid='" + + "',coursename='" + +"',coursetime='" + + "',fen='" + + "',type='" + + "',teacher='" + + "' where courseid='" + uid + "'";cmd = new SqlCommand(sql, conn);();try{();= "编辑成功";("<script>javascript:alert('编辑成功!!!');</script>");}catch (SqlException){= "编辑失败";}();();}protected void Button2_Click(object sender, EventArgs e){string sql = "";string uid = "";uid = ["id"];string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);sql = "delete from course where courseid='" + uid + "'";cmd = new SqlCommand(sql, conn);();try{();= "删除成功";("<script>javascript:alert('删除成功!!!');</script>"); }catch (SqlException){= "删除失败";}();();= "";= "";= "";= "";= "";}protected void Button3_Click(object sender, EventArgs e) {("");}}十、编辑、删除成绩信息程序代码using System;using ;using ;using ;using ;using partial class editscore : SqlCommand cmd;SqlConnection conn;protected void Page_Load(object sender, EventArgs e) {if (!{string sql = "";SqlDataReader reader;string uid = "";uid = ["id"];string strconn = ["connStr"];conn = new SqlConnection(strconn);sql = "select * from score where id='" + uid + "'"; SqlCommand cmd;cmd = new SqlCommand(sql, conn);();reader = ();while ()){= reader["id"].ToString();= reader["userid"].ToString();= reader["username"].ToString();= reader["courseid"].ToString();= reader["coursename"].ToString();= reader["score"].ToString();}();sql = "";();}}protected void Button1_Click(object sender, EventArgs e){string uid = "";uid = ["id"];string sql = "";string strconn = ["connStr"];conn = new SqlConnection(strconn);sql = "update score set userid='" + + "',username='" + + "',courseid='" + + "',coursename='" + + "',score='" + + "',[year]='" + + "'where id='" + uid + "'";cmd = new SqlCommand(sql,conn );();try{();= "编辑成功";("<script>javascript:alert('编辑成功!!!');</script>");}catch (SqlException){= "编辑失败";}();();}protected void Button2_Click(object sender, EventArgs e){string sql = "";string uid = "";uid = ["id"];string strconn = ["connStr"];conn = new SqlConnection(strconn);sql = "delete from score where id='" + uid + "'";cmd = new SqlCommand(sql, conn);();try{();= "删除成功";("<script>javascript:alert('删除成功!!!');</script>");}catch (SqlException){= "删除失败";}();();= "";= "";= "";= "";}protected void Button3_Click(object sender, EventArgs e){("");}protected void userid_SelectedIndexChanged(object sender, EventArgs e) {string strconn = ["connStr"];conn = new SqlConnection(strconn);string sqlstr = "";sqlstr = "select username from students where userid='" + + "'";cmd = new SqlCommand(sqlstr, conn);();SqlDataReader da;da = ();while ()){= da["username"].ToString();}}protected void txtcourseid_SelectedIndexChanged(object sender, EventArgs e){string strconn = ["connStr"];conn = new SqlConnection(strconn);string sqlstr = "";sqlstr = "select coursename from course where courseid='" + + "'";();cmd = new SqlCommand(sqlstr, c onn);();SqlDataReader da;da = ();while ()){= da["coursename"].ToString();}}}十一、修改密码程序代码using System;using ;using ;using ;using partial class modify_pwd : Sql Connection conn; protected void Page_Load(object sender, EventArgs e){string strconn = ["connStr"];conn = new SqlConnection(strconn);}protected void Button1_Click(object sender, EventArgs e) {string sql="";SqlCommand cmd;string uid;string pwd;uid = Session["userid"].ToString ();pwd = Session["userpwd"].ToString();if == ""){= "原密码不能为空";}else if == ""){= "新密码不能为空";}else if !={= "新密码和确认密码不一致";}else if != pwd)= "原密码不正确";}else{sql = "";sql = "update users set userpwd='" + + "'where userid='" + uid + "'"; cmd = new SqlCommand(sql, conn);();try{();= "密码修改成功";}catch (SqlException){= "密码修改失败";}finally{();}}}protected void Button2_Click(object sender, EventArgs e){("");}}十二、学生身份操作主界面程序代码using System;using ;using ;using ;using ;using partial class student : protected void Page_Load(object sender, EventArgs e){string strconn = ["connStr"];SqlConnection conn = new SqlConnection(strconn);string strsql = "";string a = Session["userid"].ToString();();strsql = "select * from students where userid='"+a+"'";DataSet ds=new DataSet () ;SqlDataAdapter da= new SqlDataAdapter(strsql, conn);(ds);if [0]. == 0){Response .Write ("没有记录");}else{= [0].Rows[0]["userid"].ToString();= [0].Rows[0]["username"].ToString();= [0].Rows[0]["sex"].ToString();= [0].Rows[0]["minzu"].ToString();= DateTime .Parse [0].Rows[0]["birthday"].ToString()).ToShortDateString ();= [0].Rows[0]["class"].ToString();= [0].Rows[0]["comefrom"].ToString();= [0].Rows[0]["beizhu"].ToString();}();}}十三、学生身份成绩信息程序代码using System;using ;using ;using ;using ;using partial class score : SqlConnection conn;protected void Page_Load(object sender, EventArgs e){string strconn = ["connStr"];conn = new SqlConnection(strconn);SqlDataReader getdata;SqlDataAdapter da = new SqlDataAdapter();SqlCommand mycmd;DataSet ds = new DataSet();string Sql;Sql = "select * from score where userid='" + Session["user id"] + "'"; mycmd = new SqlCommand(Sql, conn);= mycmd;(ds, "login");();// getdata = ();// = getdata;= ["login"]; ;();();}protected void Button1_Click(object sender, EventArgs e){= 0;SqlDataReader getdata;SqlDataAdapter da = new SqlDataAdapter();SqlCommand mycmd;DataSet ds = new DataSet();string Sql;Sql = "select * from score where userid='" + + "'or year='" + + "'"; mycmd = new SqlCommand(Sql, conn);= mycmd;(ds, "login");();//getdata = ();// = getdata;= ["login"]; ;();();}protected void datagrid1_PageIndexC hanged(object source, DataGridPageChangedEventArgs e){= ;();}}。
#include "stdio.h" /*I/O函数*/#include "stdlib.h" /*其它说明*/#include "string.h" /*字符串函数*/#include "conio.h" /*屏幕操作函数*/#include "mem.h" /*内存操作函数*/#include "ctype.h" /*字符操作函数*/#include "malloc.h" /*动态地址分配函数*/#define N 9 /*定义常数*/typedef struct stu /*定义数据结构*/{int grade[10];int class[10];char No[20];char name[15];char sex[2];int age;int score[N];float sum;float average;int order;struct stu *next;}STUDENT;/*以下是函数原型*/STUDENT *init(); /*初始化函数*/ STUDENT *create(); /*创建链表*/STUDENT *delete(STUDENT *h); /*删除记录*/ void print(STUDENT *h); /* 显示所有记录*/ void search(STUDENT *h); /*查找*/void save(STUDENT *h); /*保存*/ STUDENT *load(); /*读入记录*/void computer(STUDENT *h); /*计算总分和均分*/ STUDENT *insert(STUDENT *h); /*插入记录*/ void append(); /*追加记录*/void copy(); /*复制文件*/ STUDENT *sort(STUDENT *h); /*排序*/ STUDENT *index(STUDENT *h); /*索引*/void total(STUDENT *h); /*分类合计*/int menu_select(); /*菜单函数*//******主函数开始*******/main(){int I;STUDENT *head; /*链表定义头指针*/head=init(); /*初始化链表*/clrscr(); /*清屏*/for(;;) /*无限循环*/{switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/{ /*值不同,执行的函数不同,break 不能省略*/case 0:head=init();break; /*执行初始化*/case 1:head=create();break; /*创建链表*/case 2:head=delete(head);break; /*删除记录*/case 3:print(head);break; /*显示全部记录*/case 4:search(head);break; /*查找记录*/case 5:save(head);break; /*保存文件*/case 6:head=load(); break; /*读文件*/case 7:computer(head);break; /*计算总分和均分*/case 8:head=insert(head); break; /*插入记录*/case 9:copy();break; /*复制文件*/case 10:head=sort(head);break; /*排序*/case 12:append();break; /*追加记录*/case 13:head=index(head);break; /*索引*/case 14:total(head);break; /*分类合计*/case 15:exit(0); /*如菜单返回值为15程序结束*/}}}/*菜单函数,返回值为整数*/menu_select(){char *menu[]={"***************MENU***************", /*定义菜单字符串数组*/ " 0. init list", /*初始化*/" 1. Enter list", /*输入记录*/" 2. Delete a record from list", /*从表中删除记录*/" 3. print list ", /*显示单链表中所有记录*/" 4. Search record on name", /*按照姓名查找记录*/" 5. Save the file", /*将单链表中记录保存到文件中*/" 6. Load the file", /*从文件中读入记录*/" 7. compute the score", /*计算所有学生的总分和均分*/" 8. insert record to list ", /*插入记录到表中*/" 9. copy the file to new file", /*复制文件*/" 10. sort to make new file", /*排序*/" 11. Classification the score"," 12. append record to file", /*追加记录到文件中*/" 13. index on nomber", /*索引*/" 14. total on nomber", /*分类合计*/" 15. Quit"}; /*退出*/char s[3]; /*以字符形式保存选择号*/int c,i; /*定义整形变量*/gotoxy(1,25); /*移动光标*/printf("press any key enter menu……\n"); /*压任一键进入主菜单*/getch(); /*输入任一键*/clrscr(); /*清屏幕*/gotoxy(1,1); /*移动光标*/textcolor(YELLOW); /*设置文本显示颜色为黄色*/textbackground(BLUE); /*设置背景颜色为蓝色*/gotoxy(10,2); /*移动光标*/putch(0xc9); /*输出左上角边框┏*/for(i=1;i<44;i++)putch(0xcd); /*输出上边框水平线*/putch(0xbb); /*输出右上角边框┓*/for(i=3;i<20;i++){gotoxy(10,i);putch(0xba); /*输出左垂直线*/gotoxy(54,i);putch(0xba);} /*输出右垂直线*/gotoxy(10,20);putch(0xc8); /*输出左上角边框┗*/for(i=1;i<44;i++)putch(0xcd); /*输出下边框水平线*/putch(0xbc); /*输出右下角边框┛*/window(11,3,53,19); /* 制作显示菜单的窗口,大小根据菜单条数设计*/ clrscr(); /*清屏*/for(i=0;i<16;i++) /*输出主菜单数组*/{gotoxy(10,i+1);cprintf("%s",menu[i]);}textbackground(BLACK); /*设置背景颜色为黑色*/window(1,1,80,25); /*恢复原窗口大小*/gotoxy(10,21); /*移动光标*/do{printf("\n Enter you choice(0~14):"); /*在菜单窗口外显示提示信息*/scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整形数*/}while(c<0||c>14); /*选择项不在0~14之间重输*/return c; /*返回选择项,主程序根据该数调用相应的函数*/}STUDENT *init(){return NULL;}/*创建链表*/STUDENT *create(){int i;int s;STUDENT *h=NULL,*info; /* STUDENT指向结构体的指针*/for(;;){info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/if(!info) /*如果指针info为空*/{printf("\nout of memory"); /*输出内存溢出*/return NULL; /*返回空指针*/}inputs("enter grade:",info->grade,10);inputs("enter class:",info->class,10);inputs("enter No:",info->No,20); /*输入学号并校验*/if(info->No[0]=='@') break; /*如果学号首字符为@则结束输入*/ inputs("enter name:",info->name,15); /*输入姓名,并进行校验*/inputs("Enter the sex M(ale) or F(emale):",info->sex,2);printf("Enter the age of the student:");scanf("%d",&info->age);printf("please input %d score \n",N); /*提示开始输入成绩*/s=0; /*计算每个学生的总分,初值为0*/do{printf("Chinese:\n");scanf("%d",&info->score[1]);printf("Maths:\n");scanf("%d",&info->score[2]);printf("English:\n");scanf("%d",&info->score[3]);printf("Physics:\n");scanf("%d",&info->score[4]);printf("chemistr:\n");scanf("%d",&info->score[5]);printf("biology:\n");scanf("%d",&info->score[6]);printf("politics:\n");scanf("%d",&info->score[7]);printf("history:\n");scanf("%d",&info->score[8]);printf("geography:\n");scanf("%d",&info->score[9]); /*输入成绩*/if(info->score[i]>100||info->score[i]<0) /*确保成绩在0~100之间*/printf("bad data,repeat input\n"); /*出错提示信息*/}while(info->score[i]>100||info->score[i]<0);s=s+info->score[i]; /*累加各门课程成绩*/info->sum=s; /*将总分保存*/info->average=(float)s/N; /*求出平均值*/info->order=0; /*未排序前此值为0*/info->next=h; /*将头结点做为新输入结点的后继结点*/h=info; /*新输入结点为新的头结点*/}return(h); /*返回头指针*/}/*输入字符串,并进行长度验证*/inputs(char *prompt, char *s, int count){char p[255];do{printf(prompt); /*显示提示信息*/scanf("%s",p); /*输入字符串*/if(strlen(p)>count)printf("\n too long! \n"); /*进行长度校验,超过count值重输入*/ }while(strlen(p)>count);strcpy(s,p); /*将输入的字符串拷贝到字符串s中*/}/*输出链表中结点信息*/void print(STUDENT *h){int i=0; /* 统计记录条数*/STUDENT *p; /*移动指针*/clrscr(); /*清屏*/p=h; /*初值为头指针*/printf("\n\n\n****************************STUDENT******************************** \n");printf("|rec|NO | name | sc1| sc2| sc3| sc4| sc5| sc6| sc7| sc8| sc9| sum | ave |order|\n");printf("|---|----------|---------------|----|----|----|----|----|----|----|----|----|-------|-------|-----|\n");while(p!=NULL){i++;printf("|%3d| %-10s | %-15s |%4d |%4d |%4d |%4d |%4d |%4d |%4d |%4d |%4d | %4.2f | %4.2f | %3d |\n", i, p->No,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);p=p->next;}printf("**********************************end*********************************\n")}/*删除记录*/STUDENT *delete(STUDENT *h){STUDENT *p,*q; /*p为查找到要删除的结点指针,q为其前驱指针*/char s[11]; /*存放学号*/clrscr(); /*清屏*/printf("please deleted no\n"); /*显示提示信息*/scanf("%s",s); /*输入要删除记录的学号*/q=p=h; /*给q和p赋初值头指针*/while(strcmp(p->No,s)&&p!=NULL) /*当记录的学号不是要找的,或指针不为空时*/ {q=p; /*将p指针值赋给q作为p的前驱指针*/p=p->next; /*将p指针指向下一条记录*/}if(p==NULL) /*如果p为空,说明链表中没有该结点*/printf("\nlist no %s student\n",s);else /*p不为空,显示找到的记录信息*/{printf("*****************************havefound***************************\n");printf("|No | name | sc1| sc2| sc3| sc4| sc5| sc6| sc7| sc8| sc9| sum | ave |order|\n");printf("|----------|---------------|----|----|----|----|----|----|----|----|----|--------|-------|-----|\n");printf("|%-10s | %-15s | %4d| %4d| %4d| %4d| %4d| %4d| %4d| %4d| %4d| %4.2f | %4.2f | %3d |\n", p->No, p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);printf("********************************end*******************************\n");getch(); /*压任一键后,开始删除*/if(p==h) /*如果p==h,说明被删结点是头结点*/h=p->next; /*修改头指针指向下一条记录*/elseq->next=p->next; /*不是头指针,将p的后继结点作为q的后继结点*/free(p); /*释放p所指结点空间*/printf("\n have deleted No %s student\n",s);printf("Don't forget save\n");/*提示删除后不要忘记保存文件*/}return(h); /*返回头指针*/}/*查找记录*/void search(STUDENT *h)STUDENT *p; /* 移动指针*/char s[15]; /*存放姓名的字符数组*/clrscr(); /*清屏幕*/printf("please enter name for search\n");scanf("%s",s); /*输入姓名*/p=h; /*将头指针赋给p*/while(strcmp(p->name,s)&&p!=NULL) /*当记录的姓名不是要找的,或指针不为空时*/ p=p->next; /*移动指针,指向下一结点*/if(p==NULL) /*如果指针为空*/printf("\nlist no %s student\n",s); /*显示没有该学生*/else /*显示找到的记录信息*/{printf("\n\n*****************************havefound***************************\n");printf("|NO | name | sc1| sc2| sc3| sc4| sc5 | sc6 | sc7| sc8| sc9| sum | ave |order|\n");printf("|----------|---------------|----|----|----|----|---- |---- |--- |----|----|------|-------|-----|\n");printf("|%-10s | %-15s | %4d| %4d| %4d| %4d| %4d | %4d | %4d| %4d| %4d| %4.2f| %4.2f | %3d |\n", p->No,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);printf("********************************end*******************************\n");}}/*插入记录*/STUDENT *insert(STUDENT *h){STUDENT *p,*q,*info; /*p指向插入位置,q是其前驱,info指新插入记录*/char s[11]; /*保存插入点位置的学号*/int s1,i;printf("please enter location before the no\n");scanf("%s",s); /*输入插入点学号*/printf("\nplease new record\n"); /*提示输入记录信息*/info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/if(!info){printf("\nout of memory"); /*如没有申请到,内存溢出*/return NULL; /*返回空指针*/}inputs("enter No:",info->No,11); /*输入学号*/inputs("enter name:",info->name,15); /*输入姓名*/printf("please input %d score \n",N); /*提示输入分数*/s1=0; /*保存新记录的总分,初值为0*/do{printf("Chinese:\n");scanf("%d",&info->score[1]);printf("Maths:\n");scanf("%d",&info->score[2]);printf("English:\n");scanf("%d",&info->score[3]);printf("Physics:\n");scanf("%d",&info->score[4]);printf("chemistr:\n");scanf("%d",&info->score[5]);printf("biology:\n");scanf("%d",&info->score[6]);printf("politics:\n");scanf("%d",&info->score[7]);printf("history:\n");scanf("%d",&info->score[8]);printf("geography:\n");scanf("%d",&info->score[9]); /*输入成绩*/if(info->score[i]>100||info->score[i]<0)printf("bad data,repeat input\n");}while(info->score[i]>100||info->score[i]<0);s1=s1+info->score[i]; /*计算总分*/info->sum=s1; /*将总分存入新记录中*/info->average=(float)s1/N; /*计算均分*/info->order=0; /*名次赋值0*/info->next=NULL; /*设后继指针为空*/p=h; /*将指针赋值给p*/q=h; /*将指针赋值给q*/while(strcmp(p->No,s)&&p!=NULL) /*查找插入位置*/{q=p; /*保存指针p,作为下一个p的前驱*/ p=p->next; /*将指针p后移*/}if(p==NULL) /*如果p指针为空,说明没有指定结点*/ if(p==h) /*同时p等于h,说明链表为空*/h=info; /*新记录则为头结点*/elseq->next=info; /*p为空,但p不等于h,将新结点插在表尾*/elseif(p==h) /*p不为空,则找到了指定结点*/{info->next=p; /*如果p等于h,则新结点插入在第一个结点之前*/h=info; /*新结点为新的头结点*/}else{info->next=p; /*不是头结点,则是中间某个位置,新结点的后继为p*/q->next=info; /*新结点作为q的后继结点*/}printf("\n ----have inserted %s student----\n",info->name);printf("---Don't forget save---\n"); /*提示存盘*/return(h); /*返回头指针*/}/*保存数据到文件*/void save(STUDENT *h){FILE *fp; /*定义指向文件的指针*/STUDENT *p; /* 定义移动指针*/char outfile[10]; /*保存输出文件名*/printf("Enter outfile name,for example c:\\f1\\te.txt:\n"); /*提示文件名格式信息*/scanf("%s",outfile);if((fp=fopen(outfile,"wb"))==NULL) /*为输出打开一个二进制文件,如没有则建立*/{printf("can not open file\n");exit(1);}printf("\nSaving file……\n"); /*打开文件,提示正在保存*/p=h; /*移动指针从头指针开始*/while(p!=NULL) /*如p不为空*/{fwrite(p,sizeof(STUDENT),1,fp);/*写入一条记录*/p=p->next; /*指针后移*/}fclose(fp); /*关闭文件*/printf("-----save success!!-----\n"); /*显示保存成功*/}/* 从文件读数据*/STUDENT *load(){STUDENT *p,*q,*h=NULL; /*定义记录指针变量*/FILE *fp; /* 定义指向文件的指针*/char infile[10]; /*保存文件名*/printf("Enter infile name,for example c:\\f1\\te.txt:\n"); scanf("%s",infile); /*输入文件名*/if((fp=fopen(infile,"rb"))==NULL) /*打开一个二进制文件,为读方式*/{printf("can not open file\n"); /*如不能打开,则结束程序*/exit(1);}printf("\n -----Loading file!-----\n");p=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/if(!p){printf("out of memory!\n"); /*如没有申请到,则内存溢出*/return h; /*返回空头指针*/}h=p; /*申请到空间,将其作为头指针*/while(!feof(fp)) /*循环读数据直到文件尾结束*/{if(1!=fread(p,sizeof(STUDENT),1,fp))break; /*如果没读到数据,跳出循环*/p->next=(STUDENT *)malloc(sizeof(STUDENT)); /*为下一个结点申请空间*/ if(!p->next){printf("out of memory!\n"); /*如没有申请到,则内存溢出*/return h;}q=p; /*保存当前结点的指针,作为下一结点的前驱*/p=p->next; /*指针后移,新读入数据链到当前表尾*/}q->next=NULL; /*最后一个结点的后继指针为空*/fclose(fp); /*关闭文件*/printf("---You have success read data from file!!!---\n");return h; /*返回头指针*/}/*追加记录到文件*/void append(){FILE *fp; /*定义指向文件的指针*/STUDENT *info; /*新记录指针*/int s1,i;char infile[10]; /*保存文件名*/printf("\nplease new record\n");info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/if(!info){printf("\nout of memory"); /*没有申请到,内存溢出本函数结束*/return ;}inputs("enter No:",info->No,11); /*调用inputs输入学号*/inputs("enter name:",info->name,15); /*调用inputs输入姓名*/printf("please input %d score \n",N); /*提示输入成绩*/s1=0;do{printf("Chinese:\n");scanf("%d",&info->score[1]);printf("Maths:\n");scanf("%d",&info->score[2]);printf("English:\n");scanf("%d",&info->score[3]);printf("Physics:\n");scanf("%d",&info->score[4]);printf("chemistr:\n");scanf("%d",&info->score[5]);printf("biology:\n");scanf("%d",&info->score[6]);printf("politics:\n");scanf("%d",&info->score[7]);printf("history:\n");scanf("%d",&info->score[8]);printf("geography:\n");scanf("%d",&info->score[9]); /*输入成绩*/if(info->score[i]>100||info->score[i]<0)printf("bad data,repeat input\n");}while(info->score[i]>100||info->score[i]<0); /*成绩数据验证*/s1=s1+info->score[i]; /*求总分*/info->sum=s1; /*保存总分*/info->average=(float)s1/N; /*求均分*/info->order=0; /*名次初始值为0*/info->next=NULL; /*将新记录后继指针赋值为空*/printf("Enter infile name,for example c:\\f1\\te.txt:\n"); scanf("%s",infile); /*输入文件名*/if((fp=fopen(infile,"ab"))==NULL) /*向二进制文件尾增加数据方式打开文件*/ {printf("can not open file\n"); /*显示不能打开*/exit(1); /*退出程序*/}printf("\n -----Appending record!-----\n");if(1!=fwrite(info,sizeof(STUDENT),1,fp)) /*写文件操作*/{printf("-----file write error!-----\n");return; /*返回*/}printf("-----append success!!----\n");fclose(fp); /*关闭文件*/}/*文件拷贝*/void copy(){char outfile[10],infile[10];FILE *sfp,*tfp; /*源和目标文件指针*/STUDENT *p=NULL; /*移动指针*/clrscr(); /*清屏*/printf("Enter infile name,for example c:\\f1\\te.txt:\n");scanf("%s",infile); /*输入源文件名*/if((sfp=fopen(infile,"rb"))==NULL) /*二进制读方式打开源文件*/{printf("can not open input file\n");exit(0);}printf("Enter outfile name,for example c:\\f1\\te.txt:\n"); /*提示输入目标文件名*/ scanf("%s",outfile); /*输入目标文件名*/if((tfp=fopen(outfile,"wb"))==NULL) /*二进制写方式打开目标文件*/{printf("can not open output file \n");exit(0);}while(!feof(sfp)) /*读文件直到文件尾*/{if(1!=fread(p,sizeof(STUDENT),1,sfp))break; /*块读*/fwrite(p,sizeof(STUDENT),1,tfp); /*块写*/}fclose(sfp); /*关闭源文件*/fclose(tfp); /*关闭目标文件*/printf("you have success copy file!!!\n"); /*显示成功拷贝*/}/*排序*/STUDENT *sort(STUDENT *h){int i=0; /*保存名次*/STUDENT *p,*q,*t,*h1; /*定义临时指针*/h1=h->next; /*将原表的头指针所指的下一个结点作头指针*/h->next=NULL; /*第一个结点为新表的头结点*/while(h1!=NULL) /*当原表不为空时,进行排序*/{t=h1; /*取原表的头结点*/h1=h1->next; /*原表头结点指针后移*/p=h; /*设定移动指针p,从头指针开始*/q=h; /*设定移动指针q做为p的前驱,初值为头指针*/while(t->sum<p->sum&&p!=NULL) /*作总分比较*/{q=p; /*待排序点值小,则新表指针后移*/p=p->next;}if(p==q) /*p==q,说明待排序点值大,应排在首位*/{t->next=p; /*待排序点的后继为p*/h=t; /*新头结点为待排序点*/}else /*待排序点应插入在中间某个位置q和p之间,如p为空则是尾部*/ {t->next=p; /*t的后继是p*/q->next=t; /*q的后继是t*/}}p=h; /*已排好序的头指针赋给p,准备填写名次*/while(p!=NULL) /*当p不为空时,进行下列操作*/{i++; /*结点序号*/p->order=i; /*将名次赋值*/p=p->next; /*指针后移*/}printf("sort success!!!\n"); /*排序成功*/return h; /*返回头指针*/}/*计算总分和均值*/void computer(STUDENT *h){STUDENT *p; /*定义移动指针*/int i=0; /*保存记录条数初值为0*/long s=0; /*总分初值为0*/float average=0; /*均分初值为0*/p=h; /*从头指针开始*/while(p!=NULL) /*当p不为空时处理*/{s+=p->sum; /*累加总分*/i++; /*统计记录条数*/p=p->next; /*指针后移*/}average=(float)s/i;/* 求均分,均分为浮点数,总分为整数,所以做类型转换*/printf("\n--All students sum score is:%ld average is %5.2f\n",s,average);}/*索引*/STUDENT *index(STUDENT *h){STUDENT *p,*q,*t,*h1; /*定义临时指针*/h1=h->next; /*将原表的头指针所指的下一个结点作头指针*/h->next=NULL; /*第一个结点为新表的头结点*/while(h1!=NULL) /*当原表不为空时,进行排序*/{t=h1; /*取原表的头结点*/h1=h1->next; /*原表头结点指针后移*/p=h; /*设定移动指针p,从头指针开始*/q=h; /*设定移动指针q做为p的前驱,初值为头指针*/while(strcmp(t->No,p->No)>0&&p!=NULL) /*作学号比较*/{q=p; /*待排序点值大,应往后插,所以新表指针后移*/p=p->next;}if(p==q) /*p==q,说明待排序点值小,应排在首位*/{t->next=p; /*待排序点的后继为p*/h=t; /*新头结点为待排序点*/}else /*待排序点应插入在中间某个位置q和p之间,如p为空则是尾部*/ {t->next=p; /*t的后继是p*/q->next=t; /*q的后继是t*/}}printf("index success!!!\n"); /*索引排序成功*/return h; /*返回头指针*/}/*分类合计*/void total(STUDENT *h){STUDENT *p,*q; /*定义临时指针变量*/char sno[9],qno[9],*ptr; /*保存班级号的*/float s1,ave; /*保存总分和均分*/int i; /*保存班级人数*/clrscr(); /*清屏*/printf("\n\n *******************Total*****************\n");printf("---class---------sum--------------average----\n");p=h; /*从头指针开始*/while(p!=NULL) /*当p不为空时做下面的处理*/{memcpy(sno,p->No,8); /*从学号中取出班级号*/sno[8]='\0'; /*做字符串结束标记*/q=p->next; /*将指针指向待比较的记录*/s1=p->sum; /*当前班级的总分初值为该班级的第一条记录总分*/ ave=p->average; /*当前班级的均分初值为该班级的第一条记录均分*/ i=1; /*统计当前班级人数*/while(q!=NULL) /*内循环开始*/{memcpy(qno,q->No,8); /*读取班级号*/qno[8]='\0'; /*做字符串结束标记*/if(strcmp(qno,sno)==0) /*比较班级号*/{s1+=q->sum; /*累加总分*/ave+=q->average; /*累加均分*/i++; /*累加班级人数*/q=q->next; /*指针指向下一条记录*/}elsebreak; /*不是一个班级的结束本次内循环*/}printf("%s %10.2f %5.2f\n",sno,s1,ave/i);if(q==NULL)break; /*如果当前指针为空,外循环结束,程序结束*/elsep=q; /*否则,将当前记录作为新的班级的第一条记录开始新的比较*/}printf("---------------------------------------------\n");}。
全国各中小学学生来源代码表2015年:学生来源编码110000北京120000天津130000河北省130 100 石家庄市130700张家口市130 200 唐山市130800承德市130 300 秦皇岛市130900沧州市130 400 邯郸市131000廊坊市130 500 邢台市131100衡水市130 600 保定市139000华北石油教育培训中心140000山西省140 100 太原市140700晋中市140 200 大同市140800运城市140 300 阳泉市140900忻州市140 400 长治市141000临汾市140 500 晋城市141100吕梁市140600朔州市150000内蒙古自治区150 100 呼和浩特市150700呼伦贝尔市150 200 包头市150800巴彦淖尔市150 300 乌海市150900乌兰察布市150 400 赤峰市152200兴安盟150 500 通辽市152500锡林郭勒盟150 600 鄂尔多斯市152900阿拉善盟210000辽宁省210 100 沈阳市210800营口市210 200 大连市210900阜新市210 300 鞍山市211000辽阳市210 400 抚顺市211100盘锦市210 500 本溪市211200铁岭市210 600 丹东市211300朝阳市210 700 锦州市211400葫芦岛市220000吉林省220 100 长春市220600白山市220 200 吉林市220700松原市220 300 四平市220800白城市220 400 辽源市222400延边朝鲜族自治州220500通化市230000黑龙江省230 100 哈尔滨市230800佳木斯市230 200 齐齐哈尔市230900七台河市230 300 鸡西市231000牡丹江市230 400 鹤岗市231100黑河市230 500 双鸭山市231200绥化市230 600 大庆市232700大兴安岭地区230700伊春市310000上海320000江苏省320 100 南京市320800淮安市320 200 无锡市320900盐城市320 300 徐州市321000扬州市320 400 常州市321100镇江市320 500 苏州市321200泰州市320 600 南通市321300宿迁市320700连云港市330000浙江省330 100 杭州市330700金华市330 200 宁波市330800衢州市330 300 温州市330900舟山市330 400 嘉兴市331000台州市330 500 湖州市331100丽水市330600绍兴市340000安徽省340 100 合肥市341100滁州市340 200 芜湖市341200阜阳市340 300 蚌埠市341300宿州市340 400 淮南市341400巢湖市340 500 马鞍山市341500六安市340 600 淮北市341600亳州市340 700 铜陵市341700池州市340 800 安庆市341800宣城市341000黄山市350000福建省350 100 福州市350600漳州市350 200 厦门市350700南平市350 300 莆田市350800龙岩市350 400 三明市350900宁德市350500泉州市360000江西省360 100 南昌市360700赣州市360 200 景德镇市360800吉安市360 300 萍乡市360900宜春市360 400 九江市361000抚州市360 500 新余市361100上饶市360600鹰潭市370000山东省370 100 济南市371000威海市370 200 青岛市371100日照市370 300 淄博市371200莱芜市370 400 枣庄市371300临沂市370 500 东营市371400德州市370 600 烟台市371500聊城市370 700 潍坊市371600滨州市370 800 济宁市371700荷泽市370900泰安市410000河南省410 100 郑州市411000许昌市410 200 开封市411100漯河市410 300 洛阳市411200三门峡市410 400 平顶山市411300南阳市410 500 安阳市411400商丘市410 600 鹤壁市411500信阳市410 700 新乡市411600周口市410 800 焦作市411700驻马店市410900濮阳市420000湖北省420 100 武汉市420900孝感市420 200 黄石市421000荆州市420 300 十堰市421100黄冈市420 500 宜昌市421200咸宁市420 600 襄樊市421300随州市420 700 鄂州市422800恩施土家族苗族自治州420 800 荆门市429000省直辖行政单位430000湖南省430 100 长沙市430800张家界市430 200 株洲市430900益阳市430 300 湘潭市431000郴州市430 400 衡阳市431100永州市430 500 邵阳市431200怀化市430 600 岳阳市431300娄底市430 700 常德市433100湘西土家族苗族自治州440000广东省440 100 广州市441400梅州市440 200 韶关市441500汕尾市440 300 深圳市441600河源市440 400 珠海市441700阳江市440 500 汕头市441800清远市440 600 佛山市441900东莞市440 700 江门市442000中山市440 800 湛江市445100潮州市440 900 茂名市445200揭阳市441 200 肇庆市445300云浮市441300惠州市450000广西壮族自治区450 100 南宁市450800贵港市450 200 柳州市450900玉林市450 300 桂林市451000百色市450 400 梧州市451100贺州市450 500 北海市451200河池市450 600 防城港市451300来宾市450 700 钦州市451400崇左市460000海南省460 100 海口市469000省直辖县级行政单位200三亚市500000重庆市510000四川省510 100 成都市511400眉山市510 300 自贡市511500宜宾市510 400 攀枝花市511600广安市510 500 泸州市511700达州市510 600 德阳市511800雅安市510 700 绵阳市511900巴中市510 800 广元市512000资阳市510 900 遂宁市513200阿坝藏族羌族自治州511 000 内江市513300甘孜藏族自治州511 100 乐山市513400凉山彝族自治州300南充市520000贵州省520 100 贵阳市522300黔西南布依族苗族自治州520 200 六盘水市522400毕节地区520 300 遵义市522600黔东南苗族侗族自治州520 400 安顺市522700黔南布依族苗族自治州522200铜仁地区530000云南省530 100 昆明市532300楚雄彝族自治州530 300 曲靖市532500红河哈尼族彝族自治州530 400 玉溪市532600文山壮族苗族自治州530 500 保山市532800西双版纳傣族自治州530 600 昭通市532900大理白族自治州530 700 丽江市533100德宏傣族景颇族自治州530 800 思茅市533300怒江傈僳族自治州530 900 临沧市533400迪庆藏族自治州540000西藏自治区540 100 拉萨市542400那曲地区542 100 昌都地区542500阿里地区542 200 山南地区542600林芝地区542300日喀则地区610000陕西省610 100 西安市610600延安市610 200 铜川市610700汉中市610 300 宝鸡市610800榆林市610 400 咸阳市610900安康市610 500 渭南市611000商洛市620000甘肃省620 100 兰州市620800平凉市620 200 嘉峪关市620900酒泉市620 300 金昌市621000庆阳市620 400 白银市621100定西市620 500 天水市622900临夏回族自治州620 600 武威市623000甘南藏族自治州620 700 张掖市621200陇南市630000青海省630 100 西宁市632600果洛藏族自治州632 100 海东地区632700玉树藏族自治州632 200 海北藏族自治州632800海西蒙古族藏族自治州632 300 黄南藏族自治州632900青海省油田教育管理中心632500海南藏族自治州640000宁夏回族自治区640 100 银川市640400固原市640 200 石嘴山市640500中卫市640300吴忠市650000新疆维吾尔自治区650 100 乌鲁木齐市653000克孜勒苏柯尔克孜自治州650 200 克拉玛依市653100喀什地区652 100 吐鲁番地区653200和田地区652 200 哈密地区654000伊犁哈萨克自治州652 300 昌吉回族自治州654200塔城地区652 700 博尔塔拉蒙古自治州654300阿勒泰地区652 800 巴音郭楞蒙古自治州659000省直辖行政单位652900阿克苏地区660000新疆生产建设兵团660 100 农一师660800农八师660 200 农二师660900农九师660 300 农三师661000农十师660 400 农四师661100建工师660 500 农五师661200农十二师660 600 农六师661300农十三师660 700 农七师661400农十四师民族代码代码民族代码民族代码民族代码民族01 汉族 15 土家族 29 柯尔克孜族 43乌孜别克族02 蒙古族 16 哈尼族 30 土族 44俄罗斯族03 回族 17 哈萨克族 31 达斡尔族 45鄂温克族04 藏族 18 傣族 32 仫佬族 46 德昂族05 维吾尔族19 黎族 33 羌族 47 保安族06 苗族 20 傈僳族 34 布朗族 48 裕固族 07 彝族 21 佤族 35 撒拉族 49 京族08 壮族 22 畲族 36 毛南族 50塔塔尔族09 布依族 23 高山族 37 仡佬族 51 独龙族10 朝鲜族 24 拉祜族 38 锡伯族 52鄂伦春族11 满族 25 水族 39 阿昌族 53 赫哲族 12 侗族 26 东乡族 40 普米族 54 门巴族13 瑶族 27 纳西族 41 塔吉克族55 珞巴族14 白族 28 景颇族 42 怒族 56 基诺族。
JA V A学生管理系统源代码一、程序import java.util.*;public class Test {//主程序public static void main(String[] args){Scanner in = new Scanner(System.in);System.out.println("------请定义学生的人数:------");Student[] stuArr = new Student[in.nextInt()];Admin adminStu = new Admin();while(true){System.out.println("-----请选择你要执行的功能-----");System.out.println("10:添加一个学生");System.out.println("11:查找一个学生");System.out.println("12:根据学生编号更新学生基本信息");System.out.println("13:根据学生编号删除学生");System.out.println("14:根据编号输入学生各门成绩");System.out.println("15:根据某门成绩进行排序");System.out.println("16:根据总分进行排序");System.out.println("99:退出系统");String number = in.next();if(number.equals("10")){System.out.println("请输入学生的编号:");int num = in.nextInt();System.out.println("请输入学生的姓名:");String name = in.next();System.out.println("请输入学生的年龄:");int age = in.nextInt();adminStu.Create(num,name,age,stuArr);//添加学生}else if(number.equals("11")){System.out.println("执行查找学生基本信息的操作");System.out.println("请输入学生的编号进行查找:");int num = in.nextInt();adminStu.find(num,stuArr);//查找学生}else if(number.equals("12")){System.out.println("执行更新学员的基本信息操作");System.out.println("请输入学生的编号:");int num = in.nextInt();System.out.println("请输入学生的姓名:");String name = in.next();System.out.println("请输入学生的年龄:");int age = in.nextInt();adminStu.update(num,name,age,stuArr);//更新学生基本信息}else if(number.equals("13")){System.out.println("执行删除学生操作");System.out.println("请输入学生编号:");int num = in.nextInt();adminStu.delete(num,stuArr);//删除学生}else if(number.equals("14")){System.out.println("执行输入成绩操作");System.out.println("请输入学生编号:");int num = in.nextInt();adminStu.input(num, stuArr);//输入成绩}else if(number.equals("15")){System.out.println("执行根据某科目成绩排序操作");System.out.println("请选择需要排序的科目名(1.java 2.C# 3.html 4.sql):");int num = in.nextInt();adminStu.courseSort(num,stuArr);//按科目排序}else if(number.equals("16")){System.out.println("执行根据总分排序操作");adminStu.sumSort(stuArr);//按总分排序}else if(number.equals("99")){System.out.println("--------程序已退出--------");//break;System.exit(0);}}}}二、学生类public class Student {//学生类private int num;private String name;private int age;private int java;private int C;private int html;private int sql;private int sum;private int avg;public int getNum() {return num;}public void setNum(int num) { this.num = num;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) { this.age = age;}public int getJava() {return java;}public void setJava(int java) { this.java = java;}public int getC() {return C;}public void setC(int c) {C = c;}public int getHtml() {return html;}public void setHtml(int html) { this.html = html;}public int getSql() {return sql;}public void setSql(int sql) { this.sql = sql;}public int getSum() {return sum;}public void setSum() {this.sum = this.java+this.C+this.html+this.sql;}public int getAvg() {return avg;}public void setAvg() {this.avg = this.sum/4;}public String toString(){String str= "\t"+this.num+"\t"++"\t"+this.age+"\t"+this.java+"\t"+this.C+"\t"+this.html+"\t"+this.sql+"\t"+this.sum+"\t"+this.avg;return str;}}三、管理学生类import java.util.*;public class Admin {//用来管理学生的一个类String msg = "\t编号\t姓名\t年龄\tjava\tC#\thtml\tsql\t总分\t 平均分";public void print(Student[] arr){//刷新数据的方法System.out.println(msg);for(int i=0;i<arr.length;i++){if(arr[i]!=null){arr[i].setSum();arr[i].setAvg();System.out.println(arr[i]);}}}public boolean exist(int num,Student stu){//判断学生是否存在的方法if(stu!=null){if(stu.getNum()==num){return true;}else{return false;}}return false;}public void Create(int num,String name,int age,Student[] arr){//添加学生的方法Student stu = new Student();stu.setNum(num);stu.setName(name);stu.setAge(age);int i = this.setIndex(arr);if(i==99999){System.out.println("学生人数已添满,不能再添加了");}else{arr[i]=stu;}this.print(arr);}public int setIndex(Student[] arr){//返回数组为空的下标for(int i=0;i<arr.length;i++){if(arr[i]==null){return i;}}return 99999;}public void find(int num,Student[] arr){//查询学生的方法for(int i=0;i<arr.length;i++){//判断学生是否存在if(this.exist(num,arr[i])==true){System.out.println(msg);System.out.println(arr[i]);return;}}System.out.println("-----没有这个学生的存在-----");}public void update(int num,String name,int age,Student[] arr){//更新学生基本信息的方法for(int i=0;i<arr.length;i++){if(this.exist(num, arr[i])==true){arr[i].setName(name);arr[i].setAge(age);System.out.println("--------更新学生信息成功!-------");this.print(arr);return;}}System.out.println("------没找到这个学生更新信息失败------");}public void delete(int num,Student[] arr){//删除学生的方法for(int i=0;i<arr.length;i++){if(this.exist(num,arr[i])){arr[i] = null;this.print(arr);return;}}System.out.println("您所指定编号的学生不存在");}public void input(int num,Student[] arr){//输入学生成绩的方法for(int i=0;i<arr.length;i++){if(this.exist(num, arr[i])){Scanner in = new Scanner(System.in);System.out.println("请输入"+arr[i].getName()+"java 的成绩:");if(in.hasNextInt()){//输入非整形数则不执行arr[i].setJava(in.nextInt());}else{return;}System.out.println("请输入"+arr[i].getName()+"C#的成绩:");if(in.hasNextInt()){arr[i].setC(in.nextInt());}else{return;}System.out.println("请输入"+arr[i].getName()+"html 的成绩:");if(in.hasNextInt()){arr[i].setHtml(in.nextInt());}else{return;}System.out.println("请输入"+arr[i].getName()+"sql 的成绩:");if(in.hasNextInt()){arr[i].setSql(in.nextInt());}else{return;}this.print(arr);return;}}}public void courseSort(int num,Student[] arr){//根据指定科目排序的方法if(num==1){//这里不能用冒泡排序(因为冒泡排序是相邻的比较,而相邻的可能不存在,那么相隔的两个就不能交换)for(int i=0;i<arr.length;i++){for(int j=i+1;j<arr.length;j++){if(arr[i]!=null&&arr[j]!=null){if(arr[i].getJava()<arr[j].getJava()){Student t = arr[i];arr[i] = arr[j];arr[j] = t;}}}}}else if(num==2){for(int i=0;i<arr.length;i++){for(int j=i+1;j<arr.length;j++){if(arr[i]!=null&&arr[j]!=null){if(arr[i].getC()<arr[j].getC()){Student t = arr[i];arr[i] = arr[j];arr[j] = t;}}}}}else if(num==3){for(int i=0;i<arr.length;i++){for(int j=i+1;j<arr.length;j++){if(arr[i]!=null&&arr[j]!=null){if(arr[i].getHtml()<arr[j].getHtml()){Student t = arr[i];arr[i] = arr[j];arr[j] = t;}}}}}else if(num==4){for(int i=0;i<arr.length;i++){for(int j=i+1;j<arr.length;j++){if(arr[i]!=null&&arr[j]!=null){if(arr[i].getSql()<arr[j].getSql()){Student t = arr[i];arr[i] = arr[j];arr[j] = t;}}}}}this.print(arr);}public void sumSort(Student[] arr){//根据总分排序的方法for(int i=0;i<arr.length;i++){for(int j=i+1;j<arr.length;j++){if(arr[i]!=null&&arr[j]!=null){if(arr[i].getSum()<arr[j].getSum()){Student t = arr[i];arr[i] = arr[j];arr[j] = t;}}}}this.print(arr);}}。