学生籍贯信息记录簿系统课程设计源代码

合集下载

学生信息管理系统java课程设计(含源代码)

学生信息管理系统java课程设计(含源代码)

JAVA 程序设计 课程设计陈述宇文皓月课 题: 学生信息管理系统 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间:目 录1、需要实现的功能32、设计目的3 1、功能模块划分32、数据库结构描述43、系统详细设计文档64、各个模块的实现方法描述95、测试数据及期望结果11一、系统描述1、需求实现的功能1.1、录入学生基本信息的功能学生基本信息主要包含:学号、姓名、年龄、出生地、专业、班级总学分,在拔出时,如果数据库已经存在该学号,则不克不及再拔出该学号。

1.2、修改学生基本信息的功能在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。

评阅意见:评定成绩:指导老师签名:年 月 日1.3、查询学生基本信息的功能可使用“姓名”对已存有的学生资料进行查询。

1.4、删除学生基本信息的功能在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。

1.5、用户登陆用分歧的登录权限可以进入分歧的后台界面,从而实现权限操纵。

1.6、用户登陆信息设置可以修改用户登陆密码2、设计目的学生信息管理系统是一个教育单位不成缺少的部分。

一个功能齐全、简单易用的信息管理系统不单能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。

所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将发生大量的文件和数据,这对于查找、更新和维护都带来了很多困难。

随着科学技术的不竭提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无法比较的优点。

例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。

学生信息管理系统系统源代码

学生信息管理系统系统源代码

学生信息管理系统系统源代码(总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"#include "stdlib.h"#include "conio.h"#include "string.h"#define N 20struct student//结构体,用于存储学生的籍贯信息{char studentID[20];char name[20];char sex[20];char age[20];char province[20];};void Menu1(){puts("\t\t-----欢迎进入学生籍贯信息记录簿系统-----");puts("\t\t 1----添加学生籍贯信息");puts("\t\t 2----显示学生籍贯信息");puts("\t\t 3----删除学生籍贯信息");puts("\t\t 4----修改学生籍贯信息");puts("\t\t 5----查询系统");puts("\t\t 6----退出");puts("\t\t 请选择……");}void Menu2(){puts("\t\t-----欢迎进入学生籍贯查询子系统-----");puts("\t\t 1---按姓名查询");//按学号或姓名查询其籍贯;puts("\t\t 2---按学号查询");puts("\t\t 3---按籍贯查询");//按籍贯查询并输出该籍贯的所有学生;puts("\t\t 4---返回");puts("\t\t 请选择……");}int reads(struct student stu[N]) // 读取文件中的内容{FILE *fp;int i=0;if((fp=fopen("学生籍贯信息记录簿.txt","r"))==NULL){printf("文件打开失败!\n");return 0;}else{for(i=0;!feof(fp);i++)fscanf(fp,"%s %s %s %s %s\n",stu[i].studentID,stu[i].name,stu[i].sex,stu[i].age,stu[i].province);}fclose(fp);return i;}void save(struct student stu[N],int n) // 学生籍贯信息改变后更新并保存文件{FILE *fp;int i=0;if((fp=fopen("学生籍贯信息记录簿.txt","w"))==NULL){printf("文件打开失败!\n");return ;}else{for(i=0;i<n;i++)fprintf(fp,"%s %s %s %s %s\n",stu[i].studentID,stu[i].name,stu[i].sex,stu[i].age,stu[i].provin ce);}fclose(fp);}void show() // 学生籍贯信息显示函数{struct student stu[N];int i,n;n=reads(stu);printf("*********************所有的学生信息如下**********************\n\n");printf(" 学号姓名性别年龄籍贯\n");printf("*************************************************************\n");for(i=0;i<n;i++)printf("%s\t%s\t\t%s\t%s\t\t%s\n",stu[i].studentID,stu[i].name,stu[i].sex,stu[i].age,stu[i].province) ;getch();}void add()/*添加学生籍贯信息*/{FILE *fp;int n,i;struct student stu;if((fp=fopen("学生籍贯信息记录簿.txt","a"))==NULL) //向文件中添加学生信息{printf("文件打开失败!\n");return;}printf("请输入要添加的学生信息数量,按回车键确认:");scanf("%d",&n);for(i=1;i<=n;i++){printf("\n请输入第%d个学生的学号、姓名,性别,年龄,籍贯,用空格分开,并按回车键确认:\n",i);scanf("%s%s%s%s%s",stu.studentID,,stu.sex,&stu.age,stu.province);fprintf(fp,"\n%s\t%s\t\t%s\t%s\t\t%s\n",stu.studentID,,stu.sex,stu.age,stu.province);}fclose(fp);}void del() /*删除学生籍贯信息*/{struct student stu[N];char number[20];int n,i,j;n=reads(stu);printf("\n请输入要删除学生信息的学号,按回车键确认:");scanf("%s",number);for(i=0;i<n;i++)if(strcmp(number,stu[i].studentID)==0) break;if(i>=n){printf("没有该学生信息!\n");return;}else{for(j=i+1;j<n;j++)stu[j-1]=stu[j];}save(stu,n-1);printf("删除成功!\n");}void change() //更改学生籍贯信息{struct student stu[N];int n,i;char number[20];printf("\n请输入要更改信息的学生学号,按回车键确认:");scanf("%s",number);n=reads(stu);for(i=0;i<n;i++)if(strcmp(number,stu[i].studentID)==0)break;if(i>=n){printf("没有该学生信息!");return;}printf("\n请输入更改后学生的学号,姓名,性别,年龄,籍贯按回车键确认:\n");scanf("%s %s %s %s %s\n",stu[i].studentID,stu[i].name,stu[i].sex,stu[i].age,stu[i].province);save(stu,n);}void find1()//按姓名查询籍贯{struct student stu[N];int n,i;char name[20];printf("\n请输入要查询的学生的姓名,按回车键确认:");scanf("%s",name);n=reads(stu);for(i=0;i<n;i++)if(strcmp(name,stu[i].name)==0)printf("该学生的籍贯为%s",stu[i].province);else if(i>=n){printf("没有该学生信息!");return;}}void find2()//按学号查询籍贯{struct student stu[N];int n,i;char xuehao[20];printf("\n请输入要查询的学生的学号,按回车键确认:");scanf("%s",xuehao);n=reads(stu);for(i=0;i<n;i++)if(strcmp(xuehao,stu[i].studentID)==0)printf("该学生的籍贯为%s",stu[i].province);else if(i>=n){printf("没有该学生信息!");return;}}//查询子函数void find3()//按籍贯查询并输出该籍贯的所有学生{struct student stu[N];int n,i;char pro[20];printf("\n请输入要查询籍贯,按回车键确认:");scanf("%s",pro);n=reads(stu);for(i=0;i<n;i++)if(strcmp(pro,stu[i].province)==0)printf("%s\t",stu[i].name);else if(i>=n){printf("无此学生信息!");return;}}void main(){int choice1,choice2;Menu1();while(12){scanf("%d",&choice1);switch(choice1){//调用子函数。

学生信息记录薄.

学生信息记录薄.
if (k == 1)
{
system("cls");
goto c;
}
else
{
system("pause");
}
return 0;
}
3.2 数据录入实现
StuNode *CreateList(StuNode *Head)
{
StuNode *pnew,*paid,*ps,*pe;
Head=NULL;
cout<<"开始创建学生链表,输入学号为0或负则停止:"<<endl;
实现修改学生信息;
StuNode *showscjg(StuNode *Head)
实现显示四川籍贯信息的学生信息;
StuNode *showfscjg(StuNode *Head)
实现显示非四川籍贯信息的学生信息;
3 详细设计
3.1 主函数的实现
int _tmain(int argc, _TCHAR* argv[])
//cout<<infile.tellg()<<endl;
if(Head==NULL)
{
Head=pnew;
paid=pnew;
paid->next=NULL;
}
else
{
paid->next=pnew;
paid=pnew;
paid->next=NULL;
}
}//while,读文件结束
infile.close();
关键词:学生籍贯信息、更快、更强、更加规范、更加方便

经过一个学期的学习,我们应掌握C++语言编程的基础知识。较熟练地编写C++语言应用程序。了解C语言的常用标准函数、编程技巧、异常处理。联系已学过的内容,巩固所学的理论,增强独立工作能力。通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

学生籍贯信息记录簿系统课程设计源代码样本

学生籍贯信息记录簿系统课程设计源代码样本

+64编制一种学生籍贯信息记录簿,每个学生信息涉及:学号、姓名、籍贯。

详细功能:(1)创立信息链表并以磁盘文献保存;(2)读取磁盘文献并显示输出所有学生籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯所有学生;(5)能添加、删除和修改学生籍贯信息;#include "dos.h"#include "stdio.h"#include "stdlib.h"#include "conio.h"#include "math.h"#include "string.h"/**********************建立链表******************************/struct hj{ int age;long number;char name[10],address[50],sex[2];struct hj *next;};/**************************文献操作函数******************************/FILE *fp;void openfile(char xx[20]){fp=fopen(xx,"ab+");if(fp==NULL)fp=fopen(xx,"wb");}/************************录入信息函数***********************************/void hjnew(void){system("cls");int n=0,xage;long xnumber;char xname[10];char xaddress[50];char xsex[2];struct hj *head;struct hj *x1,*x2;head=NULL;x2=NULL;printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★录入信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf("\n 请输入学号【15字内】:");scanf("%ld",&xnumber);if(xnumber==0)goto haha;printf("\n 请输入姓名【10字内】:");scanf("%s",xname);printf("\n 请输入年龄【|-__-|】:"); scanf("%d",&xage);printf("\n 请输入性别【男OR女】:");scanf("%s",xsex);printf("\n 请输入籍贯【25字内】:"); scanf("%s",xaddress);while(xnumber!=0){n++;x1=(struct hj *)malloc(sizeof(struct hj));x1->number=xnumber;strcpy(x1->name,xname);strcpy(x1->sex,xsex);x1->age=xage;strcpy(x1->address,xaddress);if(n==1)head=x1;elsex2->next=x1;x2=x1;printf("\n 请输入学号【15字内】:"); scanf("%ld",&xnumber);if(xnumber==0)break;printf("\n 请输入姓名【10字内】:"); scanf("%s",xname);printf("\n 请输入年龄【|-__-|】:"); scanf("%d",&xage);printf("\n 请输入性别【男OR女】:");scanf("%s",xsex);printf("\n 请输入籍贯【25字内】:"); scanf("%s",xaddress);}x2->next=NULL;x1=head;while(x1!=NULL){openfile("hj.txt");char d[5]="四川";fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);if(strstr(x1->address,d)!=NULL){openfile("schj.txt");fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);}else{openfile("qthj.txt");fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);}x1=x1->next;}haha:;}/*****************************查询函数*************************/void hjxmselect(void) //按学号方式查询函数{ssmmx:int n=0;long hh;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf(" 请您输入学号:");scanf("%ld",&hh);if(hh!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n没有记录,请输入记录然后再查询!"); getch();goto jjx;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(p->number==hh){int a;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询其她数据⑷返回上页⑸退出程序\n\n 请您选取操作:");ssmx:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1:hjedit(head,p);goto ssmmx;break;case 2:hjdelete(head,p);goto ssmmx;break;case 3:goto ssmmx;case 4:goto jjx;case 5:exit(0);default:printf("\n 错误选取,请重新选取:");goto ssmx;}}elsep=p->next;}int iiii=0;printf("\n 没有此记录1.重新查询2.返回上一页3.退出程序!");printf("\n 请选取:");qqqq:scanf("%d",&iiii);switch(iiii){case 1:goto ssmmx;case 2:goto jjx;case 3:exit(0);default:printf("\n 错误选取,请重新选取:");goto qqqq;}goto jjx;}jjx:;}void hjxhselect(void)//按姓名方式查询函数{ssmm:int n=0;char hh[10];system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf(" 请您输入姓名:");scanf("%s",hh);if(strcmp(hh,"0")!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n没有记录,请输入记录然后再查询!");getch();goto jjj;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(strcmp(p->name,hh)==0){int a;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询其她数据⑷返回上页⑸退出程序\n\n 请您选取操作:");ssm:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1:hjedit(head,p);goto ssmm;break;case 2:hjdelete(head,p);goto ssmm;break;case 3:goto ssmm;case 4:goto jjj;case 5:exit(0);default:printf("\n 错误选取,请重新选取:");goto ssm;}}elsep=p->next;}int iii=0;printf("\n 没有此记录1.重新查询2.返回上一页3.退出程序!");printf("\n 请选取:");qqq:scanf("%d",&iii);switch(iii){case 1:goto ssmm;case 2:goto jjj;case 3:exit(0);default:printf("\n 错误选取,请重新选取:");goto qqq;}goto jjj;}jjj:;}void hjjgselect(void)//按籍贯方式查询{yyy:int i;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★籍贯方式查询信息★★★\n\n\n"); printf("\n 一显示所有信息\n");printf("\n 二显示四川籍所有信息\n");printf("\n 三显示其他籍所有信息\n");printf("\n 四自定义查询信息\n");printf("\n 五←返回上级菜单\n");printf("\n 六↓退出程序\n");printf("\n\n 请选取:");scanf("%d",&i);switch(i){ void zdyselect(void);void allselect(char a[8]);case 1:allselect("hj.txt");goto yyy;break;case 2:allselect("schj.txt");goto yyy;break;case 3:allselect("qthj.txt");goto yyy;break;case 4:zdyselect();case 5:break;case 6:exit(0);}}void zdyselect(void){ssmmz:int n=0,j=0;char hh[10];system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★自定义查询信息★★★\n\n\n"); printf(" 请您输入地址核心字:");scanf("%s",hh);if(strcmp(hh,"0")!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n 没有记录,请输入记录然后再查询!");getch();goto jjz;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj)); fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(strstr(p->address,hh)!=NULL){int a;j++;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询下一条数据⑷返回上页⑸退出程序\n\n 请您选取操作:");ssmz:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1:hjedit(head,p);goto ssmmz;break;case 2:hjdelete(head,p);goto ssmmz;break;case 3:p=p->next;continue;case 4:goto jjz;case 5:exit(0);default:printf("\n 错误选取,请重新选取:");goto ssmz;}p=p->next;}elsep=p->next;}if(j==0){printf("\n\n\n没有匹配记录按任意键继续!");getch();fclose(fp);goto ssmmz;}else{ int xx;printf("\n\n查询完毕!⑴继续查询⑵返回上一级菜单⑶退出程序");printf("\n请选取:");scanf("%d",&xx);if(xx==2)goto jjz;else if(xx==3)exit(0);}goto ssmmz;jjz:;}}void allselect(char a[8])//所有查询{int n=0;int k=0;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★籍贯方式信息★★★\n\n\n");struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen(a,"rb");if(fp==NULL){printf("\n对不起,没有记录无法查询!");goto xxxx;}rewind(fp);while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;struct hj *h1,*p2,*q3,*r4,*s5;h1=p2=(hj *)malloc(sizeof(struct hj));p2->next=head;while(p2->next!=NULL){q3=p2->next;r4=p2;while(q3->next!=NULL){if(q3->next->number<p2->next->number) r4=q3;q3=q3->next;}if(r4!=p2){s5=r4->next;r4->next=s5->next;s5->next=p2->next;p2->next=s5;}p2=p2->next;}head=h1->next->next;free(h1);p=head;while(p!=NULL&&n>0){n--;printf("\n学号=%ld 姓名=%s 年龄=%d 性别=%s",p->number,p->name,p->age,p->sex);printf("\n地址=%s",p->address);p=p->next;}xxxx:printf("\n→显示完毕←\n⑴↑返回上级菜单⑵↓退出程序\n请选择:"); xxx:scanf("%d",&n);switch(n){case 1:break;case 2:exit(0);default:printf("\n错误选取,请重新选取:");goto xxx;}}void hjselect(void)//查询编辑信息函数{cxbegin:int a;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n\n\n"); printf("\n 一按学号方式查询\n");printf("\n 二按姓名方式查询\n");printf("\n 三按籍贯方式查询\n");printf("\n 四→显示所有信息\n");printf("\n 五←返回上级菜单\n");printf("\n 请选择查询方式:");cxmm:scanf("%d",&a);switch(a){case 1:hjxmselect();goto cxbegin;break;case 2:hjxhselect();goto cxbegin;break;case 3:hjjgselect();goto cxbegin;break;case 4:allselect("hj.txt");goto cxbegin;break;case 5:break;default:printf("\n错误选取,请重新选取:");goto cxmm;}}void hjde(void)//删除界面函数{cxxbegin:int a;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n"); printf("\n ★★★删除信息★★★\n\n\n");printf("\n 一按学号方式删除\n");printf("\n 二按姓名方式删除\n");printf("\n 三按籍贯方式删除\n");printf("\n 四→删除所有信息\n");printf("\n 五←返回上级菜单\n");printf("\n 请选择删除方式:");cxxmm:scanf("%d",&a);int i=0;switch(a){case 1:hjxmselect();goto cxxbegin;break;case 2:hjxhselect();goto cxxbegin;break;case 3:zdyselect();goto cxxbegin;break;case 4:fp=fopen("hj.txt","wb");if(fp!=NULL)i++;fp=fopen("schj.txt","wb");if(fp!=NULL)i++;fp=fopen("qthj.txt","wb");if(fp!=NULL)i++;if(i==3){printf("\n 所有数据已经删除敲任意键继续");getch();}goto cxxbegin;break;case 5:break;default:printf("\n错误选取,请重新选取:");goto cxxmm;}}//==============删除函数接口===============void hjdelete(struct hj *headdd,struct hj *ss){struct hj *q;char d[5]="四川";if(headdd==ss){headdd=headdd->next;goto gogo;}q=headdd;while(q!=NULL){if(q->next->number==ss->number) {break;}q=q->next;}q->next=ss->next;gogo:q=headdd;fp=fopen("hj.txt","wb");while(q!=NULL){fwrite(q,sizeof(struct hj),1,fp);q=q->next;}fclose(fp);q=headdd;fp=fopen("schj.txt","wb");while(q!=NULL){if(strstr(q->address,d)!=NULL){fwrite(q,sizeof(struct hj),1,fp);}q=q->next;}fclose(fp);q=headdd;fp=fopen("qthj.txt","wb");while(q!=NULL){if(strstr(q->address,d)==NULL){fwrite(q,sizeof(struct hj),1,fp);}q=q->next;}fclose(fp);}//===============编辑函数接口==============void hjedit(struct hj *headd,struct hj *pp) {int n=0;struct hj *p,*p1,*p2;char d[5]="四川";printf("\n 输入→ 学号="); scanf("%ld",&pp->number);printf("\n 姓名="); scanf("%s",pp->name);printf("\n 年龄="); scanf("%d",&pp->age);printf("\n 性别="); scanf("%s",pp->sex);printf("\n 地址="); scanf("%s",pp->address);p=headd;fp=fopen("hj.txt","wb");while(p!=NULL){fwrite(p,sizeof(struct hj),1,fp);p=p->next;}fclose(fp);p1=headd;fp=fopen("schj.txt","wb");while(p1!=NULL){if(strstr(p1->address,d)!=NULL){fwrite(p1,sizeof(struct hj),1,fp);}p1=p1->next;}fclose(fp);p2=headd;fp=fopen("qthj.txt","wb");while(p2!=NULL){if(strstr(p2->address,d)==NULL){fwrite(p2,sizeof(struct hj),1,fp);}p2=p2->next;}fclose(fp);}/*****************************主函数****************************************/ int main(int argc,char* argv[]){begin:int t;system("cls");printf("\n ★★★★★欢迎使顾客籍管理系统★★★★★\n\n\n\n\n");printf(" 一录入学生籍贯信息\n\n");printf(" 二查编学生籍贯信息\n\n");printf(" 三删除学生籍贯信息\n\n");printf(" 四退出程序\n\n");printf(" 请您选取:");mm:scanf("%d",&t);switch(t){case 1:hjnew();break;case 2:hjselect();break;case 3:hjde();break;case 4:exit(0);default:printf("\n 错误选取,请重新选取:");goto mm;}goto begin;return 0;}。

课程设计报告 学生籍贯信息记录簿(源程序)

课程设计报告 学生籍贯信息记录簿(源程序)
}
void () //读取文本文件student.dat的信息
{
FILE *fp;
if((fp=fopen("student.dat","r"))==NULL) return ;//以只读的方式打开student.dat文件
n=0;
scanf("%s",&choose);
switch(choose)
{
case '1':{Input();Save1();}break;
case '2':{Readfile();Display();}break;
case '3':{Readfile();Find(1);}break;
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<windows.h> //开始界面
#define MAX 50 //宏定义最多输入人数
fprintf(fp,"%s %s %s\n",stu[i].num,stu[i].name,stu[i].address);//用格式化输出函数输出内容到student.dat
}
fclose(fp);
}
void Display() //2.读取信息并显示
{
int i;
printf(" 学号 姓名 籍贯:\n");
for(i=0;i<n;i++)

学生籍贯管理系统c语言课程设计

学生籍贯管理系统c语言课程设计

学生籍贯管理系统c语言课程设计学生籍贯管理系统C语言课程设计一、引言学生籍贯管理系统是一种利用计算机技术来管理学生的籍贯信息的系统,通过该系统可以方便地记录、查询和更新学生的籍贯信息。

本文将介绍如何使用C语言来设计实现学生籍贯管理系统。

二、系统需求分析学生籍贯管理系统主要包括以下功能:1. 学生信息的录入:用户可以输入学生的基本信息和籍贯信息,包括学生的姓名、性别、年龄、学号等。

2. 学生信息的查询:用户可以根据学生的姓名、学号等信息来查询学生的籍贯信息。

3. 学生信息的修改:用户可以修改学生的籍贯信息,包括籍贯的省份、城市、详细地址等。

4. 学生信息的删除:用户可以删除学生的籍贯信息。

5. 学生信息的统计:系统可以统计学生的籍贯信息,包括各个省份的学生人数、男女比例等。

三、系统设计1. 数据结构设计:为了存储学生的信息,我们可以定义一个结构体来表示学生的籍贯信息,包括省份、城市和详细地址等字段。

2. 用户界面设计:可以使用命令行界面来实现用户和系统的交互,通过菜单来提供各种功能选项。

3. 功能模块设计:可以将系统的各种功能划分为不同的模块,如录入模块、查询模块、修改模块、删除模块和统计模块等。

四、系统实现1. 数据结构定义:可以使用C语言的结构体来定义学生的籍贯信息,例如:```struct Address {char province[20];char city[20];char detail[50];};struct Student {char name[20];char gender[10];int age;int studentId;struct Address address;};```2. 功能实现:(1) 录入功能:可以使用scanf函数来获取用户输入的学生信息,并将其保存到一个结构体数组中。

(2) 查询功能:可以通过遍历结构体数组,根据用户输入的姓名或学号来查找对应的学生信息,并输出。

C语言程序设计学生籍贯信息记录簿

C语言程序设计学生籍贯信息记录簿

C语言程序设计学生籍贯信息记录簿编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;#include<conio.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>typedef struct{char id[12];char name[21];char origin[101];}student;FILE *fp;student stu,cache;void Menu(){system("cls");time_t t = time(0);char tmp[64];strftime(tmp, sizeof(tmp), "%Y/%m/%d %A",localtime(&t));puts(tmp);printf("\n");printf("1 --输入信息\n");printf("2 --显示所有信息\n");printf("3 --按学号查询\n");printf("4 --按姓名查询\n");printf("5 --按籍贯查询\n");printf("0 --退出\n\n\n请输入选项:");}void Creat_add(){system("cls");fp=fopen("stu_origin.dat","rb+");if(fp==NULL){fp=fopen("stu_origin.dat","wb+");if(fp==NULL){printf("can't creat the filestu_origin.dat!\n");printf("Press any key to exit...");getch();} }fseek(fp,0,SEEK_END);char next='y';while(next=='y'||next=='Y'){printf("请输入学号:");scanf("%s",stu.id);printf("请输入姓名:");scanf("%s",);printf("请输入籍贯:");scanf("%s",stu.origin);printf("\n\n确定写入数据?(y/n)");if(getch()=='y'||getch()=='Y') fwrite(&stu,sizeof(stu),1,fp);printf("\n\n是否继续输入?(y/n)");next=getch();system("cls");}fclose(fp);}void Display_all(){system("cls");fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}else{rewind(fp);printf("\n\n学号\t\t姓名\t\t籍贯\n");while(fread(&stu,sizeof(stu),1,fp))printf("%s\t%s\t%s\n",stu.id,,stu.origin);fclose(fp);printf("\n\nPress any key to get back...");getch();}}int Check_Id(char *Id,char c){rewind(fp);while(fread(&cache,sizeof(stu),1,fp)){if(strcmp(Id,cache.id)==0){printf("\n\n学号\t\t姓名\t\t籍贯\n");printf("%s\t%s\t%s\n",cache.id,,cache.origin);return 0;}}printf("\n\n无此学生!\n");return 1;}int Check_Name(char *Name,char c){int n=0;rewind(fp);while(fread(&cache,sizeof(stu),1,fp)){if(strcmp(Name,)==0){if(++n==1)printf("\n\n学号\t\t姓名\t\t籍贯\n");printf("%s\t%s\t%s\n",cache.id,,cache.origin);}}if(!n){printf("\n\n无此学生!\n");return 1;}return 0;}int Check_Orgin(char *Origin,char c){int n=0;rewind(fp);while(fread(&cache,sizeof(stu),1,fp)){if(strcmp(Origin,cache.origin)==0){if(++n==1)printf("\n\n学号\t\t姓名\t\t籍贯\n");printf("%s\t%s\t%s\n",cache.id,,cache.origin);}}if(!n){printf("\n\n无此学生!\n");return 1;}return 0;}void Search_id(){fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}char k;do{system("cls");do{printf("请输入学号:");gets(stu.id);}while(Check_Id(stu.id,'s'));printf("\n\n继续查询?(y/n)");k=getch();}while(k=='y'||k=='Y');fclose(fp);printf("\nPress any key to get back...");getch();}void Search_name(){fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}do{system("cls");do{printf("请输入姓名:");gets();}while(Check_Name(,'s'));printf("\n\n继续查询?(y/n)");}while(getch()=='y'||getch()=='Y');fclose(fp);printf("\nPress any key to get back...");getch();}void Search_origin(){fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}do{system("cls");do{printf("请输入籍贯:");gets(stu.origin);}while(Check_Orgin(stu.origin,'s'));printf("\n\n继续查询?(y/n)");}while(getch()=='y'||getch()=='Y');fclose(fp);printf("\nPress any key to get back...");getch(); }void Call(){char key=getch();if(key=='1') Creat_add();if(key=='2') Display_all();if(key=='3') Search_id();if(key=='4') Search_name();if(key=='5') Search_origin();if(key=='0') exit(1);}void main(){while(1){Menu();Call();}}该程序还不能删除和修改信息。

程序设计--学生籍贯信息记录簿

程序设计--学生籍贯信息记录簿

程序设计--学生籍贯信息记录簿-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN程序设计报告( 2012 /2013 学年第二学期)题目:学生籍贯信息记录簿专业学生姓名班级学号指导教师指导单位日期学生籍贯信息记录簿一、课题内容和要求编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;(6)显示输出江苏籍和非江苏籍学生的信息并可分别存盘。

二、需求分析模块1:显示基本信息(创建信息链表并以磁盘文件保存,读取磁盘文件)模块2:输出籍贯信息(显示输出所有学生的籍贯信息)模块3:根据条件查询(按学号或姓名查询其籍贯,按籍贯查询)模块4:输出学生信息(输出该籍贯的所有学生)模块5:基本信息管理(添加、删除和修改学生的籍贯信息)模块6:分别显示存盘(显示输出江苏籍和非江苏籍学生的信息并可分别存盘)模块7:结束程序(退出系统)三、概要设计四、源程序代码#include<>#include<>#include<>#include<>#define MAX 100 取最初输入的信息并显示void Readfile(); 改第i个学生的姓名和籍贯void Save1(); 示输出江苏,非江苏学生信息void Find(int i); 学号或姓名查询籍贯void Finds(); 入信息并存档\n");printf("2.读取信息并显示\n");printf("3.按学号或姓名查询籍贯\n");printf("4.按籍贯查询学生\n");printf("5.修改(删除)指定姓名或学号的学生的姓名和籍贯\n");printf("6.显示输出江苏,非江苏学生信息\n");printf("**********************************************************\n");scanf("%s",&choose);switch(choose){case '1':{Input();Save1();}break;case '2':{Readfile();Display();}break;case '3':{Readfile();Find(1);}break;case '4':{Readfile();Finds();}break;case '5':{Readfile();Find(0);}break;case '6':{Readfile();Dis();}break;default:printf("输入错误,请重新输入:\n");}}while(1);}void Save2(int t) um,stu[t].name,stu[t].address);um);if(strcmp(stu[n].num,"Finish")==0) break;scanf("%s",stu[n].name);scanf("%s",stu[n].address);n++;}while(1);}void Save1() um,stu[i].name,stu[i].address);取信息并显示{int i;printf(" 学号姓名籍贯:\n");for(i=0;i<n;i++){printf("%5s %5s %5s\n",stu[i].num ,stu[i].name ,stu[i].address);}}void Find(int f) 学号或姓名查询籍贯{int i;int choose,k;char ans[50]; 学号查询\n");printf("2.按姓名查找\n");printf("3.返回主菜单\n");scanf("%d",&choose);if(choose==1){printf("请输入学号\n");scanf("%s",ans);k=-1;for(i=0;i<n;i++)if(strcmp(ans,stu[i].num)==0){k=i;break;}if(k==-1)printf("不存在该学生信息\n");else{if(f==1)printf("%s %s %s\n",stu[k].num,stu[k].name,stu[k].address);elseModify(k);ame)==0){k=i;break;}if(k==-1)printf("不存在该学生信息\n");else{if(f==1)printf("%s %s %s\n",stu[k].num,stu[k].name,stu[k].address);elseModify(k);改第t个学生的姓名和籍贯{int choose;int i;printf("1.删除\n");printf("2.修改\n");scanf("%d",&choose);if(choose==1){for(i=t;i<n-1;i++){stu[i]=stu[i+1];}n--;}else{printf(">>>>请重新输入该学生信息:\n");scanf("%s %s %s",stu[t].num,stu[t].name,&stu[t].address);}Save2(t); um,stu[n].name,&stu[n].address);示输出江苏,非江苏学生信息{int i;printf("江苏学生:\n");printf("学号姓名籍贯\n");for(i=0;i<n;i++){if(strcmp(stu[i].address,"江苏")==0)um,stu[i].name,stu[i].address);}}printf("\n");printf("\n");printf("非江苏学生:\n");printf("学号姓名籍贯\n");for(i=0;i<n;i++){if(strcmp(stu[i].address,"江苏")!=0){printf("%s %7s %5s\n",stu[i].num,stu[i].name,stu[i].address);}}}void Finds(){int i,k=-1;int choose;char ans[50];printf("请输入籍贯\n");scanf("%s",ans);for(i=0;i<n;i++)if(strcmp(ans,stu[i].address)==0){k=1;printf("%s %s %s\n",stu[i].num,stu[i].name,stu[i].address);}if(k=-1)printf("无此省份学生信息\n");return;}五、测试数据及其结果分析截取了调试时的图片,基本符合要求,但然后一些不人性化的地方值得修改。

学生籍贯信息记录簿设计c语言

学生籍贯信息记录簿设计c语言

学生籍贯信息记录簿设计c语言学生籍贯信息记录簿设计C语言随着教育水平的提高,学生的籍贯信息越来越重要。

籍贯信息记录簿是学生个人信息管理的一个重要组成部分,它既方便管理者查看学生人口分布情况,也方便学生查询自己的籍贯信息。

本文将介绍一个基于C语言的学生籍贯信息记录簿设计方案。

这个方案可以轻松地记录和查询学生的籍贯信息,还支持对信息进行排序和修改。

1、设计思路设计一个包含以下功能的学生籍贯信息记录簿:- 添加学生籍贯信息:输入学生的姓名和籍贯信息,将其加入记录簿中。

- 查询学生籍贯信息:按学生姓名查询学生籍贯信息。

- 修改学生籍贯信息:按学生姓名修改学生籍贯信息。

- 排序学生籍贯信息:按学生姓名或籍贯信息排序学生籍贯信息。

- 导出学生籍贯信息:将学生籍贯信息导出为文本文件。

2、数据结构设计为实现上述功能,需要以下数据结构:``` struct student { char name[20]; //学生姓名 char province[20]; //籍贯 };struct node { struct student data; //数据struct node *next; //指向下一个节点的指针 }; ```这里用链表来存储学生籍贯信息记录簿,每个节点表示一个学生的信息。

数据结构包含了学生姓名和籍贯信息,还有指向下一个节点的指针。

3、函数设计实现上述功能,需要以下函数:- `void menu()`: 显示功能菜单。

- `voidadd_node(struct node **head)`: 添加节点。

- `void search_node(struct node *head)`: 按学生姓名查询节点。

- `void modify_node(struct node *head)`: 按学生姓名修改节点。

- `void sort_node(struct node*head)`: 按学生姓名或籍贯信息排序节点。

C语言学籍管理系统(内含源代码)

C语言学籍管理系统(内含源代码)

学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作。

二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。

2、能根据输入的学号查询学生,进行信息的修改。

3、能根据输入的学号从结构体数组中删除学生的记录。

4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。

5、能在屏幕上以列表的方式输出所有学生的信息。

三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。

系统功能机构图如下:学生档案管理系统输出学生信息查询学生信息系退出系统删除学生信息修改学生信息 录入学生信息 按学号查询 按班级 查询2、重要数据的数据结构设计学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday分别代表学生的学号、专业、年级、性别和出生日期,其中birthday类型为自定义的结构体类型Date.Struct stumessage{Char stuno[11]: //学号Char name[9]: //姓名Char spec[2]: //专业Char grade: //年级Char sex://性别Stuct date birthday: //出生日期};日期类型date包括三个属性,分别代表年、月、日。

Struct date{int year : //年Int month: //月Int day: //日};3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h 头文件和3个C源文件组成。

程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。

数据库课程设计——户籍管理系统(由JAVA编写,附源代码)

数据库课程设计——户籍管理系统(由JAVA编写,附源代码)

户籍管理系统(由JAVA编写)软件支持:本软件开发是在eclipse-SDK-3.2-win32集成环境下编辑、调试与运行的;(Java 语言编写,需要装JDK)设备支持:WindowsXP,512内存;数据库:Microsoft SQL Server 2000系统管理员:(仅一个)帐号:admin 密码:admin123普通用户:(可由管理员创建)帐号:huang 密码:huang本系统主程序为: DengLu.java ,编译后运行bin 文件夹下的DengLu.class文件即可运行主程序,弹出登录界面:主界面:查看户口信息:查看户成员信息浏览户口信息添加户口信息修改户口信息删除户口信息:查询居民信息:浏览全部居民信息:添加居民信息:修改居民信息:删除居民信息:浏览所有用户信息:添加用户:删除用户:源代码:DengLu.javaimport javax.swing.JOptionPane;import javax.swing.SwingUtilities;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.JButton;import java.awt.Rectangle;import javax.swing.JLabel;import javax.swing.ImageIcon;import javax.swing.JTextField;import javax.swing.JPasswordField;import java.awt.*;import java.awt.event.KeyEvent;public class DengLu extends JFrame {private static final long serialVersionUID = 1L;private JPanel jContentPane = null;private JButton jButton = null;private JButton jButton1 = null;private JLabel jLabel = null;private JTextField 用户名= null;private JPasswordField 密码= null;private JLabel jLabel1 = null;private JLabel jLabel2 = null;private DBOperation db=new DBOperation(); // @jve:decl-index=0: private int i=0;private JButton jButton2 = null;/*** This method initializes jButton** @return javax.swing.JButton*/private JButton getJButton() {if (jButton == null) {jButton = new JButton();jButton.setBounds(new Rectangle(169, 227, 70, 23));jButton.setMnemonic(KeyEvent.VK_ENTER);jButton.setToolTipText("输入用户名、密码登陆");jButton.setText("登录");jButton.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {String user=用户名.getText();String password=new String(密码.getPassword());if(user.equals(""))JOptionPane.showMessageDialog(null,"用户名不能为空!");else{if(db.CheckUser(user, password)){if(db.IsAdmin(user)){MainMenu m= new MainMenu();m.setVisible(true);setVisible(false);}else{MainMenuUser m= new MainMenuUser();m.setVisible(true);setVisible(false);}}else{JOptionPane.showMessageDialog(null,"用户名不存在或密码错误!" +"剩余次数:"+(2-i));i++;if(i>=3){JOptionPane.showMessageDialog(null,"用户名密码尝试次数已达3次,系统将退出!");System.exit(0);}}}}});}return jButton;}/*** This method initializes jButton1** @return javax.swing.JButton*/private JButton getJButton1() {if (jButton1 == null) {jButton1 = new JButton();jButton1.setBounds(new Rectangle(263, 227, 70, 23));jButton1.setToolTipText("退出系统");jButton1.setText("退出");jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {System.exit(0);}});}return jButton1;}/*** This method initializes 用户名** @return javax.swing.JTextField*/private JTextField get用户名() {if (用户名== null) {用户名= new JTextField();用户名.setBounds(new Rectangle(227, 158, 110, 23));}return 用户名;}/*** This method initializes 密码** @return javax.swing.JPasswordField*/private JPasswordField get密码() {if (密码== null) {密码= new JPasswordField();密码.setBounds(new Rectangle(227, 198, 110, 23));}return 密码;}/*** This method initializes jButton2** @return javax.swing.JButton*/private JButton getJButton2() {if (jButton2 == null) {jButton2 = new JButton();jButton2.setBounds(new Rectangle(346, 160, 63, 19));jButton2.setText("注册");jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {Zhuce z= new Zhuce();z.setVisible(true);//setVisible(false);}});}return jButton2;}/*** @param args*/public static void main(String[] args) {// TODO 自动生成方法存根SwingUtilities.invokeLater(new Runnable() {public void run() {DengLu thisClass = new DengLu();thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);thisClass.setVisible(true);}});}/*** This is the default constructor*/public DengLu() {super();initialize();}/*** This method initializes this** @return void*/private void initialize() {this.setContentPane(getJContentPane());this.setSize(600, 400);this.setResizable(false);this.setTitle("登录到户籍管理系统");//得到当前屏幕大小this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//得到frame的大小Dimension frameSize = this.getSize();if (frameSize.height > screenSize.height) {frameSize.height = screenSize.height;}if (frameSize.width > screenSize.width) {frameSize.width = screenSize.width;}//设置frame在屏幕上显示的位置this.setLocation( (screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.height) / 2);}/*** This method initializes jContentPane** @return javax.swing.JPanel*/private JPanel getJContentPane() {if (jContentPane == null) {jLabel2 = new JLabel();jLabel2.setBounds(new Rectangle(0, 0, 600, 400));//jLabel2.setIcon(new ImageIcon(getClass().getResource("/DengLu.jpg")));jLabel2.setText("");jLabel1 = new JLabel();jLabel1.setBounds(new Rectangle(167, 198, 58, 23));jLabel1.setText("密码:");jLabel = new JLabel();jLabel.setBounds(new Rectangle(167, 158, 58, 23));jLabel.setText("用户名:");jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.add(getJButton(), null);jContentPane.add(getJButton1(), null);jContentPane.add(getJButton2(), null);jContentPane.add(jLabel, null);jContentPane.add(get用户名(), null);jContentPane.add(get密码(), null);jContentPane.add(jLabel1, null);jContentPane.add(jLabel2, null);}return jContentPane;}} // @jve:decl-index=0:visual-constraint="129,34"************************************************************* MainMenu.javaimport java.awt.Rectangle;import java.awt.Toolkit;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JMenuItem;import java.awt.Dimension;import javax.swing.JLabel;import javax.swing.ImageIcon;public class MainMenu extends JFrame {private static final long serialVersionUID = 1L;private JPanel jContentPane = null;private JMenuBar jJMenuBar = null;private JMenu jMenu = null;private JMenuItem 返回登录= null;private JMenuItem 退出系统= null;private JMenu jMenu1 = null;private JMenuItem 查询户口= null;private JMenuItem 添加户口= null;private DengLu denglu;private AddH addh = new AddH(); // @jve:decl-index=0:visual-constraint="188,630"private Search search= new Search(); // @jve:decl-index=0:visual-constraint="335,633"private JMenuItem 删除户口= null;private JMenuItem 修改户口= null;private DelH delh= new DelH(); // @jve:decl-index=0:visual-constraint="10,619"private ChangeH changeh= new ChangeH(); // @jve:decl-index=0:visual-constraint="464,678"private JMenu jMenu2 = null;private JMenuItem 查询居民= null;private JMenuItem 添加居民= null;private JMenuItem 删除居民= null;private JMenuItem 修改居民= null;private SearchP searchp= new SearchP(); // @jve:decl-index=0:visual-constraint="30,835"private AddP addp= new AddP(); // @jve:decl-index=0:visual-constraint="182,911"private DelP delp= new DelP(); // @jve:decl-index=0:visual-constraint="273,763"private ChangeP changep= new ChangeP(); // @jve:decl-index=0:visual-constraint="10,978"private JMenu jMenu3 = null;private JMenuItem 添加用户= null;private JMenuItem 删除用户= null;private JMenuItem 浏览所有用户= null;private AddU addu= new AddU(); // @jve:decl-index=0:visual-constraint="10,725"private SearchU searchu= new SearchU(); // @jve:decl-index=0:visual-constraint="398,794"private DelU delu= new DelU(); // @jve:decl-index=0:visual-constraint="149,752"private JLabel 菜单首页背景= null;private JMenu jMenu4 = null;private JMenuItem 关于户籍管理系统= null;private About about=new About();/*** This is the default constructor*/public MainMenu() {super();initialize();}/*** This method initializes this** @return void*/private void initialize() {searchu.setSize(new Dimension(96, 92));changep.setSize(new Dimension(117, 116));delp.setSize(new Dimension(79, 90));addu.setSize(new Dimension(104, 67));delu.setSize(new Dimension(86, 64));addp.setSize(new Dimension(96, 57));changeh.setSize(new Dimension(113, 80));searchp.setSize(new Dimension(129, 64));delh.setSize(new Dimension(103, 95));search.setSize(new Dimension(109, 75));addh.setSize(new Dimension(107, 85));this.setJMenuBar(getJJMenuBar());this.setContentPane(getJContentPane());this.setTitle("欢迎使用户籍管理系统");this.setResizable(false);this.setSize(900, 600);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//得到frame的大小Dimension frameSize = this.getSize();if (frameSize.height > screenSize.height) {frameSize.height = screenSize.height;}if (frameSize.width > screenSize.width) {frameSize.width = screenSize.width;}//设置frame在屏幕上显示的位置this.setLocation( (screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.height) / 2);}/*** This method initializes jContentPane** @return javax.swing.JPanel*/private JPanel getJContentPane() {if (jContentPane == null) {菜单首页背景= new JLabel();菜单首页背景.setBounds(new Rectangle(0, 0, 900, 600));//菜单首页背景.setIcon(new ImageIcon(getClass().getResource("/Mainmenu.jpg")));菜单首页背景.setText("JLabel");jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.add(菜单首页背景, null);}return jContentPane;}/*** This method initializes jJMenuBar** @return javax.swing.JMenuBar*/private JMenuBar getJJMenuBar() {if (jJMenuBar == null) {jJMenuBar = new JMenuBar();jJMenuBar.add(getJMenu());jJMenuBar.add(getJMenu1());jJMenuBar.add(getJMenu2());jJMenuBar.add(getJMenu3());jJMenuBar.add(getJMenu4());}return jJMenuBar;}/*** This method initializes jMenu** @return javax.swing.JMenu*/private JMenu getJMenu() {if (jMenu == null) {jMenu = new JMenu();jMenu.setText("菜单");jMenu.add(get返回登录());jMenu.add(get退出系统());}return jMenu;}/*** This method initializes 返回登录** @return javax.swing.JMenuItem*/private JMenuItem get返回登录() {if (返回登录== null) {返回登录= new JMenuItem("返回登录界面");返回登录.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {denglu = new DengLu();setVisible(false);denglu.setVisible(true);}});}return 返回登录;}/*** This method initializes 退出系统** @return javax.swing.JMenuItem*/private JMenuItem get退出系统() {if (退出系统== null) {退出系统= new JMenuItem("退出系统");退出系统.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {System.exit(0);}});}return 退出系统;}/*** This method initializes jMenu1** @return javax.swing.JMenu*/private JMenu getJMenu1() {if (jMenu1 == null) {jMenu1 = new JMenu();jMenu1.setText("户口管理");jMenu1.add(get查询户口());jMenu1.add(get添加户口());jMenu1.add(get删除户口());jMenu1.add(get修改户口());}return jMenu1;}/*** This method initializes 查询户口** @return javax.swing.JMenuItem*/private JMenuItem get查询户口() {if (查询户口== null) {查询户口= new JMenuItem("查询户口信息");查询户口.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();search=new Search();jContentPane.add(search,null);search.setVisible(true);setTitle("查询户口信息");search.setBounds(new Rectangle(0, 0, 900,600));}});}return 查询户口;}void hidepane(){addh.setVisible(false);addp.setVisible(false);addu.setVisible(false);about.setVisible(false);changeh.setVisible(false);changep.setVisible(false);delh.setVisible(false);delp.setVisible(false);delu.setVisible(false);search.setVisible(false);searchp.setVisible(false);searchu.setVisible(false);菜单首页背景.setVisible(false);}/*** This method initializes 添加户口** @return javax.swing.JMenuItem*/private JMenuItem get添加户口() {if (添加户口== null) {添加户口= new JMenuItem("添加户口信息");添加户口.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();addh=new AddH();jContentPane.add(addh,null);addh.setVisible(true);setTitle("添加户口信息");addh.setBounds(new Rectangle(0, 0, 900,600));}});}return 添加户口;}/*** This method initializes 删除户口** @return javax.swing.JMenuItem*/private JMenuItem get删除户口() {if (删除户口== null) {删除户口= new JMenuItem("删除户口信息");删除户口.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();delh=new DelH();jContentPane.add(delh,null);delh.setVisible(true);setTitle("删除户口信息");delh.setBounds(new Rectangle(0, 0, 900,600));}});}return 删除户口;}/*** This method initializes 修改户口** @return javax.swing.JMenuItem*/private JMenuItem get修改户口() {if (修改户口== null) {修改户口= new JMenuItem("修改户口信息");修改户口.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();changeh=new ChangeH();jContentPane.add(changeh,null);changeh.setVisible(true);setTitle("修改户口信息");changeh.setBounds(new Rectangle(0, 0, 900,600));}});}return 修改户口;}/*** This method initializes jMenu2** @return javax.swing.JMenu*/private JMenu getJMenu2() {if (jMenu2 == null) {jMenu2 = new JMenu();jMenu2.setText("居民管理");jMenu2.add(get查询居民());jMenu2.add(get添加居民());jMenu2.add(get删除居民());jMenu2.add(get修改居民());}return jMenu2;}/*** This method initializes 查询居民** @return javax.swing.JMenuItem*/private JMenuItem get查询居民() {if (查询居民== null) {查询居民= new JMenuItem("查询居民信息");查询居民.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();searchp=new SearchP();jContentPane.add(searchp,null);searchp.setVisible(true);setTitle("查询居民信息");searchp.setBounds(new Rectangle(0, 0, 900,600));}});}return 查询居民;}/*** This method initializes 添加居民** @return javax.swing.JMenuItem*/private JMenuItem get添加居民() {if (添加居民== null) {添加居民= new JMenuItem("添加居民信息");添加居民.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();addp=new AddP();jContentPane.add(addp,null);addp.setVisible(true);setTitle("添加居民信息");addp.setBounds(new Rectangle(0, 0,900,600));}});}return 添加居民;}/*** This method initializes 删除居民** @return javax.swing.JMenuItem*/private JMenuItem get删除居民() {if (删除居民== null) {删除居民= new JMenuItem("删除居民信息");删除居民.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();delp=new DelP();jContentPane.add(delp,null);delp.setVisible(true);setTitle("删除居民信息");delp.setBounds(new Rectangle(0, 0, 900,600));}});}return 删除居民;}/*** This method initializes 修改居民** @return javax.swing.JMenuItem*/private JMenuItem get修改居民() {if (修改居民== null) {修改居民= new JMenuItem("修改居民信息");修改居民.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();changep=new ChangeP();jContentPane.add(changep,null);changep.setVisible(true);setTitle("修改居民信息");changep.setBounds(new Rectangle(0, 0, 900,600));}});}return 修改居民;}/*** This method initializes jMenu3** @return javax.swing.JMenu*/private JMenu getJMenu3() {if (jMenu3 == null) {jMenu3 = new JMenu();jMenu3.setText("系统管理");jMenu3.add(get浏览所有用户());jMenu3.add(get添加用户());jMenu3.add(get删除用户());}return jMenu3;}/*** This method initializes 添加用户** @return javax.swing.JMenuItem*/private JMenuItem get添加用户() {if (添加用户== null) {添加用户= new JMenuItem("添加用户");添加用户.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();addu=new AddU();jContentPane.add(addu,null);addu.setVisible(true);setTitle("添加系统用户");addu.setBounds(new Rectangle(0, 0,900,600));}});}return 添加用户;}/*** This method initializes 删除用户** @return javax.swing.JMenuItem*/private JMenuItem get删除用户() {if (删除用户== null) {删除用户= new JMenuItem("删除用户");删除用户.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();delu=new DelU();jContentPane.add(delu,null);delu.setVisible(true);setTitle("删除系统用户");delu.setBounds(new Rectangle(0, 0, 900,600));}});}return 删除用户;}/*** This method initializes 浏览所有用户** @return javax.swing.JMenuItem*/private JMenuItem get浏览所有用户() {if (浏览所有用户== null) {浏览所有用户= new JMenuItem("浏览所有用户");浏览所有用户.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();searchu=new SearchU();jContentPane.add(searchu,null);searchu.setVisible(true);setTitle("浏览所有用户信息");searchu.setBounds(new Rectangle(0, 0, 890,540));}});}return 浏览所有用户;}/*** This method initializes jMenu4** @return javax.swing.JMenu*/private JMenu getJMenu4() {if (jMenu4 == null) {jMenu4 = new JMenu();jMenu4.setText("帮助");jMenu4.add(get关于户籍管理系统());}return jMenu4;}/*** This method initializes 关于户籍管理系统** @return javax.swing.JMenuItem*/private JMenuItem get关于户籍管理系统() {if (关于户籍管理系统== null) {关于户籍管理系统= new JMenuItem("关于户籍管理系统");关于户籍管理系统.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();about=new About();jContentPane.add(about,null);about.setVisible(true);setTitle("关于户籍管理系统");about.setBounds(new Rectangle(0, 0, 900,600));}});}return 关于户籍管理系统;}} // @jve:decl-index=0:visual-constraint="30,8"MainMenuUser.javaimport java.awt.Rectangle;import java.awt.Toolkit;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JMenuItem;import java.awt.Dimension;import javax.swing.JLabel;import javax.swing.ImageIcon;public class MainMenuUser extends JFrame {private static final long serialVersionUID = 1L;private JPanel jContentPane = null;private JMenuBar jJMenuBar = null;private JMenu jMenu = null;private JMenuItem 返回登录= null;private JMenuItem 退出系统= null;private JMenu jMenu1 = null;private JMenuItem 查询户口= null;private DengLu denglu;private Search search= new Search(); // @jve:decl-index=0:visual-constraint="280,689"private JMenu jMenu2 = null;private JMenuItem 查询居民= null;private SearchP searchp= new SearchP(); // @jve:decl-index=0:visual-constraint="30,835"private JMenu jMenu3 = null;private JMenuItem 浏览所有用户= null;private SearchU searchu= new SearchU(); //@jve:decl-index=0:visual-constraint="398,794"private JLabel 菜单首页背景= null;private JMenu jMenu4 = null;private JMenuItem 关于户籍管理系统= null;private About about=new About();/*** This is the default constructor*/public MainMenuUser() {super();initialize();}/*** This method initializes this** @return void*/private void initialize() {searchu.setSize(new Dimension(96, 92));searchp.setSize(new Dimension(129, 64));search.setSize(new Dimension(109, 75));this.setJMenuBar(getJJMenuBar());this.setContentPane(getJContentPane());this.setTitle("欢迎使用户籍管理系统");this.setResizable(false);this.setSize(900, 600);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//得到frame的大小Dimension frameSize = this.getSize();if (frameSize.height > screenSize.height) {frameSize.height = screenSize.height;}if (frameSize.width > screenSize.width) {frameSize.width = screenSize.width;}//设置frame在屏幕上显示的位置this.setLocation( (screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.height) / 2);}/*** This method initializes jContentPane** @return javax.swing.JPanel*/private JPanel getJContentPane() {if (jContentPane == null) {菜单首页背景= new JLabel();菜单首页背景.setBounds(new Rectangle(0, 0, 900, 600));//菜单首页背景.setIcon(new ImageIcon(getClass().getResource("/Mainmenu.jpg")));菜单首页背景.setText("JLabel");jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.add(菜单首页背景, null);}return jContentPane;}/*** This method initializes jJMenuBar** @return javax.swing.JMenuBar*/private JMenuBar getJJMenuBar() {if (jJMenuBar == null) {jJMenuBar = new JMenuBar();jJMenuBar.add(getJMenu());jJMenuBar.add(getJMenu1());jJMenuBar.add(getJMenu2());jJMenuBar.add(getJMenu3());jJMenuBar.add(getJMenu4());}return jJMenuBar;}/*** This method initializes jMenu** @return javax.swing.JMenu*/private JMenu getJMenu() {if (jMenu == null) {jMenu = new JMenu();jMenu.setText("菜单");jMenu.add(get返回登录());jMenu.add(get退出系统());}return jMenu;}/*** This method initializes 返回登录** @return javax.swing.JMenuItem*/private JMenuItem get返回登录() {if (返回登录== null) {返回登录= new JMenuItem("返回登录界面");返回登录.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {denglu = new DengLu();setVisible(false);denglu.setVisible(true);}});}return 返回登录;}/*** This method initializes 退出系统** @return javax.swing.JMenuItem*/private JMenuItem get退出系统() {if (退出系统== null) {退出系统= new JMenuItem("退出系统");退出系统.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {System.exit(0);}});}return 退出系统;}/*** This method initializes jMenu1** @return javax.swing.JMenu*/private JMenu getJMenu1() {if (jMenu1 == null) {jMenu1 = new JMenu();jMenu1.setText("户口管理");jMenu1.add(get查询户口());}return jMenu1;}/*** This method initializes 查询户口** @return javax.swing.JMenuItem*/private JMenuItem get查询户口() {if (查询户口== null) {查询户口= new JMenuItem("查询户口信息");查询户口.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();search=new Search();jContentPane.add(search,null);search.setVisible(true);setTitle("查询户口信息");search.setBounds(new Rectangle(0, 0, 900,600));}});}return 查询户口;}void hidepane(){about.setVisible(false);search.setVisible(false);searchp.setVisible(false);searchu.setVisible(false);菜单首页背景.setVisible(false);}/*** This method initializes jMenu2** @return javax.swing.JMenu*/private JMenu getJMenu2() {if (jMenu2 == null) {jMenu2 = new JMenu();jMenu2.setText("居民管理");jMenu2.add(get查询居民());}return jMenu2;}/*** This method initializes 查询居民** @return javax.swing.JMenuItem*/private JMenuItem get查询居民() {if (查询居民== null) {查询居民= new JMenuItem("查询居民信息");查询居民.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();searchp=new SearchP();jContentPane.add(searchp,null);searchp.setVisible(true);setTitle("查询居民信息");searchp.setBounds(new Rectangle(0, 0, 900,600));}});}return 查询居民;}/*** This method initializes jMenu3** @return javax.swing.JMenu*/private JMenu getJMenu3() {if (jMenu3 == null) {jMenu3 = new JMenu();jMenu3.setText("系统管理");jMenu3.add(get浏览所有用户());}return jMenu3;}/*** This method initializes 浏览所有用户** @return javax.swing.JMenuItem*/private JMenuItem get浏览所有用户() {if (浏览所有用户== null) {浏览所有用户= new JMenuItem("浏览所有用户");浏览所有用户.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();searchu=new SearchU();jContentPane.add(searchu,null);searchu.setVisible(true);setTitle("浏览所有用户信息");searchu.setBounds(new Rectangle(0, 0, 890,540));}});}return 浏览所有用户;}/*** This method initializes jMenu4** @return javax.swing.JMenu*/private JMenu getJMenu4() {if (jMenu4 == null) {jMenu4 = new JMenu();jMenu4.setText("帮助");jMenu4.add(get关于户籍管理系统());}return jMenu4;}/*** This method initializes 关于户籍管理系统** @return javax.swing.JMenuItem*/private JMenuItem get关于户籍管理系统() {if (关于户籍管理系统== null) {关于户籍管理系统= new JMenuItem("关于户籍管理系统");关于户籍管理系统.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {hidepane();about=new About();jContentPane.add(about,null);about.setVisible(true);setTitle("关于户籍管理系统");about.setBounds(new Rectangle(0, 0, 900,600));}});}return 关于户籍管理系统;}} // @jve:decl-index=0:visual-constraint="30,8"****************************************************Zhuce.javaimport java.awt.Toolkit;import javax.swing.JPanel;import javax.swing.JFrame;import java.awt.Dimension;import javax.swing.JLabel;import java.awt.Rectangle;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.JPasswordField;import javax.swing.JButton;import javax.swing.ImageIcon;public class Zhuce extends JFrame {。

C++程序设计课程设计人口户籍信息管理系统源程序

C++程序设计课程设计人口户籍信息管理系统源程序

九、源程序代码#include<iostream.h>#include<string.h>#include<fstream.h>#include<iomanip.h>//kj;lj;j;j;class population{private:int maxnum;//人口户籍编号最大值rint sno;//编号char name[20];char sex[2];int age;char birth[10];//出生日期char folk[2];//民族char mianmao[10];//政治面貌char department[10];//村组名char speciality[10];//家庭门牌号char address[30];//人口家庭详细地址public:population();~population();void enter();//户籍信息录入函数void display();//户籍信息输出函数void setsno(int temp);int getsno();char *getname();char *getspeciality();void read();void write();void change();};population::population(){}population::~population(){}int population::getsno(){return sno;}char *population::getspeciality(){return speciality;}void population::setsno(int temp){sno=temp;}char *population::getname(){return name;}void population::display(){cout<<setw(4)<<sno<<setw(4)<<name<<setw(4)<<sex<<setw(4)<<age<<setw(4)<<folk<<setw(8 )<<birth<<setw(8)<<mianmao<<setw(8)<<department<<setw(8)<<speciality<<setw(8)<<address<<e ndl;}void population::change(){char ch;cout<<" 请输入要修改人员的信息"<<endl;cout<<"*******************************************************"<<endl;cout<<"姓名是不是要改写(Y/N)"<<endl;cin>>ch;if(ch=='Y'||ch=='y'){cout<<"请输入新姓名:"<<endl;cin>>name;}cout<<"输入性别(男(n),女(m)):"<<endl;cin>>sex;if (strcmp(sex,"n")!=0&&strcmp(sex,"m")!=0){cout<<"错误请重新输入!:"<<endl;cin>>sex;}cout<<"输入年龄:"<<endl;cin>>age;while(age<1||age>=110){cout<<"错误请重新输入!"<<endl;cin>>age;}cout<<"输入出生日期:"<<endl;cin>>birth;cout<<"输入民族:"<<endl;cin>>folk;cout<<"输入政治面貌类别(党员(a),非党员(b)):"<<endl;cin>>mianmao;while(strcmp(mianmao,"a")!=0&&strcmp(mianmao,"b")!=0){cout<<"错误请重新输入!"<<endl;cin>>mianmao;}cout<<"输入村组名:"<<endl;cin>>department;cout<<"输入家庭门牌号:"<<endl;cin>>speciality;cout<<"输入家庭详细地址:"<<endl;cin>>address;cout<<"***************************************************"<<endl;cout<<"你刚刚输入的人员信息如下:"<<endl;display();}void population::enter(){ifstream tfile("max.txt",ios::binary|ios::nocreate);if(tfile){tfile.read((char *)&maxnum,sizeof maxnum);}else{maxnum=1000;//户籍编号初始化}tfile.close();sno=maxnum++;ofstream ofile("max.txt");ofile.write((char*)&maxnum,sizeof maxnum);tfile.close();cout<<"请输入人员信息"<<endl;cout<<"人员姓名:"<<endl;cin>>name;cout<<"性别(男(n),女(m)):"<<endl;cin>>sex;while(strcmp(sex,"n")!=0&&strcmp(sex,"m")!=0){cout<<"错误请重新输入!"<<endl;cin>>sex;}cout<<"出生日期:"<<endl;cin>>birth;cout<<"年龄:"<<endl;cin>>age;while(age<1||age>=110){cout<<"错误请重新输入!"<<endl;cin>>age;}cout<<"政治面貌类别(党员(a),非党员(b)):"<<endl;cin>>mianmao;while(strcmp(mianmao,"a")!=0&&strcmp(mianmao,"b")!=0) {cout<<"错误请重新输入!"<<endl;cin>>mianmao;}cout<<"民族:"<<endl;cin>>folk;cout<<"村组名:"<<endl;cin>>department;cout<<"家庭门牌号:"<<endl;cin>>speciality;cout<<"家庭详细地址:"<<endl;cin>>address;}//主程序部分:#include<iostream.h>#include<fstream.h>#include<string.h>#include<iomanip.h>#include<stdlib.h>//#include"population.h"population pop;//population 类的全局变量void read(){ifstream afile("population.txt",ios::nocreate);afile.read((char*)&pop,sizeof pop);}void write(){ofstream bfile("population.txt",ios::app);bfile.write((char*)&pop,sizeof pop);}void input(void)//录入函数{char ch;pop.enter();write();cout<<"你还要输入下一位人员的信息吗(Y/N)!"<<endl;cin>>ch;if(ch=='Y'||ch=='y'){input();}}void search()//查询函数{int j,k,i,m=0;char ch1[5],ch2[10];cout<<"请输入你的查找类型:(1.编号2.姓名3.门牌号)"<<endl;cin>>j;while(j<=0||j>=4){cout<<"错误请重新选择!"<<endl;cin>>j;}if(j==1){cout<<"请输入你要查找的人员的编号:"<<endl;cin>>i;}if(j==2){cout<<"请输入你要查找的人员的姓名:"<<endl;cin>>ch1;}if(j==3){cout<<"请输入你要查找的人员的家庭门牌号:"<<endl;cin>>ch2;}ifstream dfile("population.txt",ios::nocreate);while (dfile.good()){dfile.read((char *) &pop,sizeof pop);if(i==pop.getsno()||strcmp(pop.getname(),ch1)==0||strcmp(pop.getspeciality(),ch2)==0){cout<<"你要查找的人员信息如下:"<<endl;cout<<setw(4)<<"编号"<<setw(4)<<"姓名"<<setw(4)<<"性别"<<setw(4)<<"年龄"<<setw(4)<<"民族"<<setw(8)<<"出生日期"<<setw(8)<<"政治面貌"<<setw(8)<<"村组名"<<setw(8)<<"家庭门牌号"<<setw(8)<<"家庭详细地址"<<endl;pop.display();i=0;k=0;m=1;return;}}if(m!=1) cout<<"没有找到这名人员的信息!"<<endl;}void omit()//删除函数{int ch;cout<<"请输入要删除的人员的编号:"<<endl;cin>>ch;ifstream in("population.txt",ios::nocreate);//打开文件1,读数据ofstream out("population1.txt",ios::trunc);//打开文件写数据到文件2while(in)//循环读数据{if(in.read((char*)&pop,sizeof pop))//读后存在pop变量里,读pop这么大小if(ch!=pop.getsno())// 如果读出来的数据的pop取sno不等于刚才输入的学号,将这组数据写入文件{out.write((char*)&pop,sizeof pop);}elsecout<<"人员已成功删除!"<<endl;}in.close();//关闭文件out.close();ifstream ifile("population1.txt",ios::nocreate);//将文件2的内容弄到文件1上ofstream hfile("population.txt",ios::trunc);while(ifile){if(ifile.read((char*)&pop,sizeof pop))hfile.write((char *)&pop,sizeof pop);}ifile.close();hfile.close();}void change(){ int p=0,l=0;int ch;cout<<"请输入你要修改的人员编号:";cin>>ch;fstream efile("population.txt",ios::in|ios::out);while(efile.good()){ efile.seekg(sizeof(pop)*p);if(efile.read((char *) &pop,sizeof pop)){if(ch==pop.getsno()){pop.display();pop.change();efile.seekp(sizeof(pop)*p);efile.write((char *) &pop,sizeof pop);l++;return;}}p++;}efile.close();if(l!=1)cout<<"没有你所要修改的学生信息!"<<endl;}void output()//输出函数{int i=0;ifstream cfile("population.txt",ios::nocreate);//打开文件while(cfile)//循环读文件的数据到类或结构体里{if( cfile.read((char *)&pop,sizeof pop)){pop.display();//调用pop的成员函数打印i++;//为后面的一共文件里存了多少人的数据做累加,求人员个数。

C语言程序设计学生籍贯信息记录簿

C语言程序设计学生籍贯信息记录簿

学院程序设计工程训练报告C语言程序设计学生籍贯信息记录簿课程名称C语言程序设计工程训练姓名院(系)信息科学与技术学院专业班级学号指导教师教务处制目录1 需求分析 (1)2 系统总框图和功能模块说明 (1)2.1 系统总框图 (1)2.2 功能模块说明 (2)3 系统设计 (2)3.1 主要结构体 (2)3.2主要功能函数 (2)3.3 关键函数的流程图 (3)4 系统调试 (4)5 总结 (6)6 源程序清单 (8)1 需求分析编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:1、创建信息链表并以磁盘文件保存2、读取磁盘文件并显示输出所有学生的籍贯信息3、按学号或姓名查询其籍贯4、按籍贯查询并输出该籍贯的所有学生5、能添加、删除和修改学生的籍贯信息6、系统以菜单方式工作2 系统总框图和功能模块说明2.1 系统总框图图1 系统总框图2.2 功能模块说明系统初始化模块:完成系统初始化。

创建信息链表模块:在本地创建学生籍贯文件,保存学生籍贯信息。

输入学生信息模块:完成学生籍贯信息的录入。

修改学生信息模块:完成学生籍贯信息的修改。

查询学生信息模块:完成学生籍贯信息的查询。

删除学生信息模块:完成学生籍贯信息的删除。

重置学生信息模块:完成学生籍贯信息的重置。

保存学生信息模块:完成学生籍贯信息的保存。

3 系统设计3.1 主要结构体学生信息:学号、姓名、籍贯typedef struct{ short zhku_status;char zhku_number[12];char zhku_name[10];char zhku_address[20];}StuType;3.2主要功能函数void zhku_AddData(void) /*录入数据*/void wxw_ListData(void) /*显示所有数据*/void wp_Delete(void) /*做删除标记*/void wp_Pack(void) /*重置信息*/ void zhku_UpdateData(void) /*修改*/void SH_Search(void) /*查询*/3.3 关键函数的流程图4 系统调试打开程序后按任意键,将会出现上述界面。

c语言程序学生籍贯信息记录簿设计

c语言程序学生籍贯信息记录簿设计

c 语言程序学生籍贯信息记录簿设计学生籍贯信息记录簿课程设计报告书班级: 方0909-1 学号: 20096401 姓名: 苑小叶指导教师: 康亚男石家庄铁道大学四方学院2010年07月14日1课程设计报告内容1. 选择题目题目: 学生籍贯信息记录簿设计 2. 内容摘要摘要:学生籍贯信息管理系统是典型的信息管理系统, 根据开发要求,主要完成对学生姓名、学号、籍贯等管理。

随着学校办学规模的不断扩大、办学层次的多样化、在校生的不断增多。

开发这系统可以是教务处老师减轻工作压力,比较系统的对学生进行管理,加快速度、加强管理,使各项管理更加规范化。

本系统管理内容广泛,全面涉及管理学生资料信息的管理。

3. 索引关键词关键词:学生籍贯管理,结构体,循环,函数学生籍贯信息记录簿4. 目录目录1题目要求................................................ 4 2设计思想............................................. 4 3系统完成及功能.......................................... 44界面设计............................................ 5 5正文................................................. 5 6结论................................................. 14 7参考资料............................................ 14 8后记................................................. 15 9附录. (15)3学生籍贯信息记录簿 5. 正文1.1 课程设计题目要求1.要求利用C语言面向过程的编程思想来完成系统的设计;2.突出C语言的函数特征,以多个函数实现每一个子功能;3. 画出功能模块图;4. 进行简单界面设计,能够实现友好的交互;5. 具有清晰的程序流程图和数据结构的详细定义;6.熟练掌握C语言对文件的各种操作。

课程设计:学生学籍管理系统源代码

课程设计:学生学籍管理系统源代码

#include”stdio。

h”#include"conio。

h”#include"stdlib。

h”#include”string。

h"#define N 1000 //N为可输入的学生总人数,可根据需要更改#define M 2 //M为宏定义的(在创建密码函数中)可建立的登陆用户个数,可更改struct student //定义学生信息结构体数组{char num[9]; //学号char name[20]; //姓名char depar[15]; //院系char zhuanye[15];//专业char classes[5]; //班级char age[3];//年龄char sex[4]; //性别char nation[5]; //民族char birth[9]; //出生日期char add[10];//籍贯};struct code //定义密码结构体数组{char name[20];char code[7];}co[M],s0;//确认是否新创建密码文件模块int code(){FILE *fp;if((fp=fopen("学生学籍管理系统__code。

txt","rt"))==NULL){printf(”密码文件不存在,请输入新的用户名及密码:\n");//若不存在此密码文件,则提示用户创建密码printf("请输入任意键继续!”);getch();system("cls");return 1; //无密码文件返回1 }elsereturn 0; //已有密码文件返回0 }//新创建初始密码void code_input(){FILE *fp;int i;if((fp=fopen(”学生学籍管理系统__code。

txt”,"wt"))==NULL);//当建立密码文件成功时,进入for循环for(i=0;i〈M;i++) //M为宏定义的可建立的登陆用户个数,可更改{printf("请录入第%d个用户名:",i+1);//创建不同的用户名及密码scanf(”%s",co[i]。

C语言课程设计 学生籍贯信息记录簿设计教学教材

C语言课程设计 学生籍贯信息记录簿设计教学教材

C语言课程设计学生籍贯信息记录簿设计C语言与程序设计课程设计学生籍贯信息记录簿设计学院信息工程班级物联1301班学号 131408119姓名滕玲一.设计目的该软件主要是编辑一个学生籍贯信息记录簿记录每个学生信息,包括:学号、姓名、籍贯。

具体功能:1.创建信息链表并以磁盘文件保存;2.读取磁盘文件并显示输出所有学生的籍贯信息;3.按学号或姓名查询其籍贯;4.按籍贯查询并输出该籍贯的所有学生;5.能添加、删除和修改学生的籍贯信息;二.总体设计1.设置输入输出流及将程序由磁盘文件保存,构件类stu,其主要包括:学号,姓名,籍贯;2.构建无返回值main函数,输出由与程序相关操作构成的信息链表;3.根据链表设置利用switch函数和循环函数将链表中的内容一一实现;三.详细设计1.学生基本信息的录入这部分的功能主要包括信息的录入,首先按程序提示输入学生的学号,姓名,籍贯等。

在录入数据的同时,系统将对信息的合法性进行检验。

若用户输入不合法的信息,则被系统要求重新输入;若合法性成立则录入完毕后系统将返回主页面。

主页面还有显示学生的全部信息,并且这些信息都会写到你所指定的文本文件中。

2.显示学生信息此功能是将原录入的学生信息读出,并在屏幕上显示出来,并且录入到你所指定的文本文件中。

3.学生信息读取进入该项功能界面后,用户可以对学生的个人信息进行查看,并且录入到你所指定的文本文件中。

4.按学号或姓名查找学生信息此项功能可以根据用户输入的选择查处该学生的所有信息,并且录入到你所指定的文本文件中。

5.删除和修改个人信息选择此项功能后,系统将会自动在屏幕上显示按学号录入原来同学的个人信息,输入后进行修改,并且录入到你所指定的文本文件中。

6.退出系统,结束任务【注:main()主函数每一C 程序都必须有一main()函数, 可以根据自己的爱好把它放在程序某个地方。

程序之前输入学生信息,main()申明主函数,输出相应的功能函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

+64编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;#include "dos.h"#include "stdio.h"#include "stdlib.h"#include "conio.h"#include "math.h"#include "string.h"/**********************建立链表******************************/struct hj{ int age;long number;char name[10],address[50],sex[2];struct hj *next;};/**************************文件操作函数******************************/FILE *fp;void openfile(char xx[20]){fp=fopen(xx,"ab+");if(fp==NULL)fp=fopen(xx,"wb");}/************************录入信息函数***********************************/void hjnew(void){system("cls");int n=0,xage;long xnumber;char xname[10];char xaddress[50];char xsex[2];struct hj *head;struct hj *x1,*x2;head=NULL;x2=NULL;printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★录入信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf("\n 请输入学号【15字内】:");scanf("%ld",&xnumber);if(xnumber==0)goto haha;printf("\n 请输入姓名【10字内】:");scanf("%s",xname);printf("\n 请输入年龄【|-__-|】:");scanf("%d",&xage);printf("\n 请输入性别【男OR女】:");scanf("%s",xsex);printf("\n 请输入籍贯【25字内】:");scanf("%s",xaddress);while(xnumber!=0){n++;x1=(struct hj *)malloc(sizeof(struct hj));x1->number=xnumber;strcpy(x1->name,xname);strcpy(x1->sex,xsex);x1->age=xage;strcpy(x1->address,xaddress);if(n==1)head=x1;elsex2->next=x1;x2=x1;printf("\n 请输入学号【15字内】:");scanf("%ld",&xnumber);if(xnumber==0)break;printf("\n 请输入姓名【10字内】:");scanf("%s",xname);printf("\n 请输入年龄【|-__-|】:");scanf("%d",&xage);printf("\n 请输入性别【男OR女】:");scanf("%s",xsex);printf("\n 请输入籍贯【25字内】:");scanf("%s",xaddress);}x2->next=NULL;x1=head;while(x1!=NULL){openfile("hj.txt");char d[5]="四川";fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);if(strstr(x1->address,d)!=NULL){openfile("schj.txt");fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);}else{openfile("qthj.txt");fwrite(x1,sizeof(struct hj),1,fp);fclose(fp);}x1=x1->next;}haha:;}/*****************************查询函数*************************/void hjxmselect(void) //按学号方式查询函数{ssmmx:int n=0;long hh;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf(" 请您输入学号:");scanf("%ld",&hh);if(hh!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n没有记录,请输入记录然后再查询!");getch();goto jjx;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(p->number==hh){int a;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询其他数据⑷返回上页⑸退出程序\n\n 请您选择操作:");ssmx:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1: hjedit(head,p);goto ssmmx;break;case 2: hjdelete(head,p);goto ssmmx;break;case 3: goto ssmmx;case 4: goto jjx;case 5:exit(0);default:printf("\n 错误的选择,请重新选择:");goto ssmx;}}elsep=p->next;}int iiii=0;printf("\n 没有此记录1.重新查询2.返回上一页3.退出程序!");printf("\n 请选择:");qqqq:scanf("%d",&iiii);switch(iiii){case 1: goto ssmmx;case 2: goto jjx;case 3: exit(0);default: printf("\n 错误的选择,请重新选择:");goto qqqq;}goto jjx;}jjx:;}void hjxhselect(void)//按姓名方式查询函数{ssmm:int n=0;char hh[10];system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n");printf("\n 〓提示输入0返回上级菜单〓\n\n\n"); printf(" 请您输入姓名:");scanf("%s",hh);if(strcmp(hh,"0")!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n没有记录,请输入记录然后再查询!");getch();goto jjj;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(strcmp(p->name,hh)==0){int a;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询其他数据⑷返回上页⑸退出程序\n\n 请您选择操作:");ssm:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1: hjedit(head,p);goto ssmm;break;case 2: hjdelete(head,p);goto ssmm;break;case 3: goto ssmm;case 4: goto jjj;case 5:exit(0);default:printf("\n 错误的选择,请重新选择:");goto ssm;}}elsep=p->next;}int iii=0;printf("\n 没有此记录1.重新查询2.返回上一页3.退出程序!");printf("\n 请选择:");qqq:scanf("%d",&iii);switch(iii){case 1: goto ssmm;case 2: goto jjj;case 3: exit(0);default: printf("\n 错误的选择,请重新选择:");goto qqq;}goto jjj;}jjj: ;}void hjjgselect(void)//按籍贯方式查询{yyy:int i;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★籍贯方式查询信息★★★\n\n\n"); printf("\n 一显示所有信息\n");printf("\n 二显示四川籍所有信息\n");printf("\n 三显示其它籍所有信息\n");printf("\n 四自定义查询信息\n");printf("\n 五←返回上级菜单\n");printf("\n 六↓退出程序\n");printf("\n\n 请选择:");scanf("%d",&i);switch(i){ void zdyselect(void);void allselect(char a[8]);case 1:allselect("hj.txt");goto yyy;break;case 2: allselect("schj.txt");goto yyy;break;case 3: allselect("qthj.txt");goto yyy;break;case 4: zdyselect();case 5: break;case 6: exit(0);}}void zdyselect(void){ssmmz:int n=0,j=0;char hh[10];system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★自定义查询信息★★★\n\n\n"); printf(" 请您输入地址关键字:");scanf("%s",hh);if(strcmp(hh,"0")!=0){struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen("hj.txt","rb");if(fp==NULL){printf("\n 没有记录,请输入记录然后再查询!");getch();goto jjz;}while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj));fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;p=head;while(p!=NULL){if(strstr(p->address,hh)!=NULL){int a;j++;printf("\n 结果→ 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex);printf("\n 地址=%s",p->address);printf("\n\n 操作→ ⑴更改数据⑵删除数据⑶查询下一条数据⑷返回上页⑸退出程序\n\n 请您选择操作:");ssmz:scanf("%d",&a);switch(a){void hjedit(struct hj *headd,struct hj *pp);void hjdelete(struct hj *headdd,struct hj *ss);case 1: hjedit(head,p);goto ssmmz;break;case 2: hjdelete(head,p);goto ssmmz;break;case 3: p=p->next;continue;case 4: goto jjz;case 5:exit(0);default:printf("\n 错误的选择,请重新选择:");goto ssmz;}p=p->next;}elsep=p->next;}if(j==0){printf("\n\n\n没有匹配的记录按任意键继续!");getch();fclose(fp);goto ssmmz;}else{ int xx;printf("\n\n查询完毕! ⑴继续查询⑵返回上一级菜单⑶退出程序");printf("\n请选择:");scanf("%d",&xx);if(xx==2)goto jjz;else if(xx==3)exit(0);}goto ssmmz;jjz: ;}}void allselect(char a[8])//全部查询{int n=0;int k=0;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★籍贯方式信息★★★\n\n\n");struct hj *p;struct hj *q=NULL,*head=NULL;fp=fopen(a,"rb");if(fp==NULL){printf("\n对不起,没有记录无法查询!");goto xxxx;}rewind(fp);while(!feof(fp)){n++;p=(struct hj *)malloc(sizeof(struct hj)); fread(p,sizeof(struct hj),1,fp);if(n==1)head=p;elseq->next=p;q=p;}q->next=NULL;struct hj *h1,*p2,*q3,*r4,*s5;h1=p2=(hj *)malloc(sizeof(struct hj));p2->next=head;while(p2->next!=NULL){q3=p2->next;r4=p2;while(q3->next!=NULL){if(q3->next->number<p2->next->number) r4=q3;q3=q3->next;}if(r4!=p2){s5=r4->next;r4->next=s5->next;s5->next=p2->next;p2->next=s5;}p2=p2->next;}head=h1->next->next;free(h1);p=head;while(p!=NULL&&n>0){n--;printf("\n学号=%ld 姓名=%s 年龄=%d 性别=%s",p->number,p->name,p->age,p->sex);printf("\n地址=%s",p->address);p=p->next;}xxxx:printf("\n→显示完毕←\n⑴↑返回上级菜单⑵↓退出程序\n请选择:"); xxx:scanf("%d",&n);switch(n){case 1:break;case 2:exit(0);default:printf("\n错误的选择,请重新选择:");goto xxx;}}void hjselect(void)//查询编辑信息函数{cxbegin:int a;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★查询编辑信息★★★\n\n\n");printf("\n 一按学号方式查询\n");printf("\n 二按姓名方式查询\n");printf("\n 三按籍贯方式查询\n");printf("\n 四→显示全部信息\n");printf("\n 五←返回上级菜单\n");printf("\n 请选择查询方式:");cxmm:scanf("%d",&a);switch(a){case 1: hjxmselect();goto cxbegin;break;case 2: hjxhselect();goto cxbegin;break;case 3: hjjgselect();goto cxbegin;break;case 4: allselect("hj.txt");goto cxbegin;break;case 5: break;default:printf("\n错误的选择,请重新选择:");goto cxmm;}}void hjde(void)//删除界面函数{cxxbegin:int a;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n"); printf("\n ★★★删除信息★★★\n\n\n");printf("\n 一按学号方式删除\n");printf("\n 二按姓名方式删除\n");printf("\n 三按籍贯方式删除\n");printf("\n 四→删除全部信息\n");printf("\n 五←返回上级菜单\n");printf("\n 请选择删除方式:");cxxmm:scanf("%d",&a);int i=0;switch(a){case 1: hjxmselect();goto cxxbegin;break;case 2: hjxhselect();goto cxxbegin;break;case 3: zdyselect();goto cxxbegin;break;case 4:fp=fopen("hj.txt","wb");if(fp!=NULL)i++;fp=fopen("schj.txt","wb");if(fp!=NULL)i++;fp=fopen("qthj.txt","wb");if(fp!=NULL)i++;if(i==3){printf("\n 全部数据已经删除!!!!!!敲任意键继续");getch();}goto cxxbegin;break;case 5: break;default:printf("\n错误的选择,请重新选择:");goto cxxmm;}}//==============删除函数接口=============== void hjdelete(struct hj *headdd,struct hj *ss){struct hj *q;char d[5]="四川";if(headdd==ss){headdd=headdd->next;goto gogo;}q=headdd;while(q!=NULL){if(q->next->number==ss->number){break;}q=q->next;}q->next=ss->next;gogo:q=headdd;fp=fopen("hj.txt","wb");while(q!=NULL){fwrite(q,sizeof(struct hj),1,fp);q=q->next;}fclose(fp);q=headdd;fp=fopen("schj.txt","wb");while(q!=NULL){if(strstr(q->address,d)!=NULL){fwrite(q,sizeof(struct hj),1,fp);}q=q->next;}fclose(fp);q=headdd;fp=fopen("qthj.txt","wb");while(q!=NULL){if(strstr(q->address,d)==NULL){fwrite(q,sizeof(struct hj),1,fp);}q=q->next;}fclose(fp);}//===============编辑函数接口============== void hjedit(struct hj *headd,struct hj *pp){int n=0;struct hj *p,*p1,*p2;char d[5]="四川";printf("\n 输入→ 学号=");scanf("%ld",&pp->number);printf("\n 姓名=");scanf("%s",pp->name);printf("\n 年龄=");scanf("%d",&pp->age);printf("\n 性别=");scanf("%s",pp->sex);printf("\n 地址=");scanf("%s",pp->address);p=headd;fp=fopen("hj.txt","wb");while(p!=NULL){fwrite(p,sizeof(struct hj),1,fp);p=p->next;}fclose(fp);p1=headd;fp=fopen("schj.txt","wb");while(p1!=NULL){if(strstr(p1->address,d)!=NULL){fwrite(p1,sizeof(struct hj),1,fp);}p1=p1->next;}fclose(fp);p2=headd;fp=fopen("qthj.txt","wb");while(p2!=NULL){if(strstr(p2->address,d)==NULL){fwrite(p2,sizeof(struct hj),1,fp);}p2=p2->next;}fclose(fp);}/*****************************主函数****************************************/int main(int argc, char* argv[]){begin:int t;system("cls");printf("\n ★★★★★欢迎使用户籍管理系统★★★★★\n\n\n\n\n");printf(" 一录入学生籍贯信息\n\n");printf(" 二查编学生籍贯信息\n\n");printf(" 三删除学生籍贯信息\n\n");printf(" 四退出程序\n\n");printf(" 请您选择:");mm:scanf("%d",&t);switch(t){case 1: hjnew();break;case 2: hjselect();break;case 3: hjde();break;case 4:exit(0);default:printf("\n 错误的选择,请重新选择:");goto mm;}goto begin;return 0;}。

相关文档
最新文档