《学生信息管理系统C++课程设计(14页).doc》由会员分享,可在线阅读,更多相关《学生信息管理系统C++课程设计(14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-学生信息管理系统C+课程设计-第 14 页中 州 大 学课程设计 学 院: 信息工程学院 班 级: 14级软件技术(普招) 题 目: 学生信息管理系统 学生姓名: 熊建 学号: 201427050124 指导教师: 马 芳 学 期: 2014-2015学年第二学期 2015年 6 月 20 日课程设计一、 设计思路1. 程序名称为:学生信息管理系统。该程序能实现的功能:程序密码、录入学生信息、读取学生信息、删除学生信息、修改密码、查看作者信息。2. 初次打开程序,程序自动生成“默认密码”文件,储存在用户电脑D:stusystemkey文件夹中。并在程序目录下生成一个“old”文件夹,在下次进
2、入程序时,系统自动检测“old”文件及是否存在,以判断是否是第一次使用。若已存在,则要求用户输入密码,以进入程序主菜单,并提示用户剩余密码输入次数,若用户连续五次密码输入错误,则程序自动关闭。3. 进入程序主菜单,用户输入通过数字选择菜单项。3.1信息录入系统:用户进入“信息录入系统”即开始输入第一个学生的姓名、性别、学号等信息,一个学生信息录入完毕,程序自动为该学生生成一个以该学生姓名命名,无扩展名的文件,将该学生的信息储存在程序根目录下,调用Windows系统的拷贝功能,将文件拷贝到用户电脑D:stusystemstudent文件夹中,并删除原文件。程序继续让用户录入第二个学生信息。在任意
3、项目输入过程中输入“m”(无论大小写)即返回程序主菜单。3.2信息查询系统:用户进入“信息查询系统”即开始输入要查询的学生姓名,回车即可显示该学生的详细信息。输入“m”(无论大小写)即返回程序主菜单。3.3 .删除系统中储存的学生信息:进入之后用户可选择“清空全部学生信息”、“删除单个学生信息”。清空全部学生信息,则调用windows系统命令,清空用户电脑D:stusystemstudent文件夹中的所有文件,在真正清空之前,再次提醒用户是否确认删除。清空完成后,给用户一个“清空完成”的反馈,程序回到主菜单。删除单个学生信息,则要用户输入要删除的学生姓名,并提醒用户是否确认删除,删除完成继续在
4、删除学生信息界面,至用户输入“m”,程序返回主菜单。3.4 修改密码:用户需两次输入相同密码后才能修改成功,系统会新建一个名为“”的文件储存在用户电脑D:stusystemkey文件夹中,以替换程序原密码。完成后提示用户密码修改成功。3.5 关于:此选项会打开一个文本文档来介绍程序及作者的相关信息,并根据用户的需要,可选择是否访问该程序及作者的相关网站。3.6 退出程序二、 设计过程设计程序中遇到的不常用的代码:1.判断文件是否存在,不存在则生成一个文件夹:以“old”文件为例char ifkey=old;/-自定义文件名 if( !CreateDirectory(ifkey, NULL) )
5、/-如果文件存在2.判断输入的内容与预设的内容是否相符:char key50;cinkey;if(!strcmp(oldkey,key)/-如果相同3.打开指定文件,并将其内容赋给一个形参key为例:ifstream inFile;inFile.open(D:stusystemkeykey.mle);/-打开原密码char oldkey50;inFile oldkey;/-赋给oldkey4.在电脑中新建文件夹system(mkdir D:stusystemkey);system(mkdir D:stusystemstudent);5.在电脑指定目录生成文件,并编辑内容:ofstream ou
6、tfile(D:stusystemkeykey.mle);/-定义文件名及文件位置outfile米灵尔name;ofstream outfile(stuname.c_str();outfile姓名:namedelname;ofstream outfile(D:stusystemstudent1.bat);/新建批处理文件到指定位置outfiledel D:stusystemstudentdelname;/-编辑批处理文件内容outfile.close();/-生成批处理文件调用程序运行char *p=D:stusystemstudent1.bat;system(p);/-运行批处理文件运行结果
7、:三、总结 编写一个程序最主要的,是始终要明确自己的思路。任何一个程序在编写的时候都会出现很多种问题,通常在几百行的代码里找问题很让人头疼,但是只要始终明确自己的思路,就不怕程序出现问题,程序的运行与否很大部分受逻辑限制,出现问题了,根据自己的思路来研究程序中的逻辑,很快就能找到问题所在。 编写一个复杂点的程序可能会遇到靠自己编写的代码不能实现的功能,这时候好好地利用下网络,可以从中学到很多东西。附程序代码附:#include#include#include#include#include#includeusing namespace std;class stusystempublic:voi
8、d get();void make(char name50,char sex50,char num20,string filename);char name50;char sex50;char num20;ofstream outfile;string stuname;void read(string stuname);void menu();void readxinxi();void keypanduan();char key50;void welcome();void about();void changekey();void maketxt();void del();void stusy
9、stem :get()system(cls);cout =n;cout | |n;cout | 欢迎进入米灵尔学生信息录入系统 |n;cout | |n;cout =nn;cout -输入“m”,可返回菜单-nnn;coutname;char back150=m;char back250=M;if(!strcmp(back1,name)|!strcmp(back2,name)system(cls);stusystem a;a.menu();coutsex;if(!strcmp(back1,sex)|!strcmp(back2,sex)system(cls);stusystem a;a.menu
10、();coutnum;if(!strcmp(back1,num)|!strcmp(back2,name)system(cls);stusystem a;a.menu();stusystem a;a.make(name,sex,num,name);/-以下是生成文件的程序-void stusystem :make(char name50,char sex50,char num20,string stuname)ofstream outfile(stuname.c_str();outfile姓名:name n性别:sexn学号:num;outfile.close();system(copy *.
11、D:stusystemstudent);/将学生信息文件拷贝到D盘 system(del *.);stusystem b;b.get();/-以上是生成文件的程序-void stusystem :readxinxi()cout -输入“m”,可返回菜单-nnn;coutname;system(cls);cout =n;cout | |n;cout | 欢迎进入米灵尔学生信息查询系统 |n;cout | |n;cout =nn;char back150=m;char back250=M;if(!strcmp(back1,name)|!strcmp(back2,name)stusystem a;a
12、.menu();coutendlendl;stusystem a;a.read(name);void stusystem :read(string stuname)/-以下是读取文件的程序-ifstream in(stuname.c_str();string line;while(getline(in,line)coutlineendl;stusystem a;a.readxinxi();/-以上是读取文件的程序-void stusystem :about()cout =n;cout | |n;cout | 关于 About |n;cout | |n;cout =nnn;cout 此程序完全由
13、米灵尔_熊建编写,如与某同学的程序有相似之处纯属缘分!nn;cout 编写时间:2015年6月22日,星期二nn 程序版本号:15.3.1n;/15年第3次功能改动,第1次修改coutyes;if(yes=y|yes=Y)stusystem a;a.maketxt();char *p=米灵尔.txt;system(p);char *b=mle.html;system(b);elseif(yes!=n&yes!=N)cout输入有误,请重新输入nn;stusystem a;a.about();system(del 米灵尔.txt);system(cls);yes=0;coutyes;if(yes
14、=y|yes=Y)ShellExecute(NULL,open,NULL,NULL,SW_SHOW); elseif(yes!=n&yes!=N)coutn输入有误,请重新输入nn;stusystem a;a.about();system(del 米灵尔.txt);system(cls);system(del 米灵尔.txt);system(cls);stusystem a;a.menu();void stusystem :maketxt()ofstream outfile(米灵尔.txt);/-自定义目录生成文件,名为“key”outfile 米灵尔是一个仍处于“幼年期”的团队。n 团队是2
15、013年由两个高中生创立,一直持续到今天。团队没有多么n发达,强大,但有着不断学习进取的心态。我们不怕别人的嘲讽,与蔑视,n只为让加入我们的人掌握更多的本领;认识我们的人,从我们这里学到n有用的东西。 我们没有定向发展,是因为我们还在成长。我们会像当今的中国一样:n 走着“米灵尔特色,团队主义”道路。我们也处于初级发展阶段。n 要问米灵尔到底是做什么的?答:学习,服务。nn米灵尔网址:n邮箱:postmasternendl;/-文件内容 outfile.close(); void stusystem :del()system(cls);cout =n;cout | |n;cout | 删除学生
16、信息 |n;cout | |n;cout =nnn;cout 请选择:nt1.清空全部学生信息nt2.删除单个学生信息ntm.返回菜单a;char a110=1;char a210=2;if(!strcmp(a1,a)|!strcmp(a2,a)if(!strcmp(a1,a)coutdel;if(del=y|del=Y)cout正在清理;system(del D:stusystemstudent);system(del *.);cout学生信息文件已全部清空endl;_sleep(2000);stusystem a;a.menu();elsesystem(cls);stusystem a;a
17、.del();elsechar delname50;cout请输入要删除的学生姓名:endldelname;coutn确定删除delname学生的信息? 是Y/否Nndel;if(del=y|del=Y)ofstream outfile(D:stusystemstudent1.bat);/利用批处理文件删除outfiledel D:stusystemstudentdelname;outfile.close();/-生成批处理文件char *p=D:stusystemstudent1.bat;system(p);system(del D:stusystemstudent1.bat);system
18、(cls);coutn学生:delname的信息已删除完成;_sleep(2000);system(cls);stusystem a;a.del();elsesystem(cls);stusystem a;a.del();elsestusystem a;a.menu();void stusystem :menu()system(del *.);/删除本地学生信息文件system(cls);cout =n;cout | |n;cout | 米灵尔学生信息管理系统菜单 |n;cout | |n;cout =nn;char choose10;char c110=1;char c210=2;char
19、c310=3;char c410=4;char c510=5;char c010=0;char cM10=M;char cm10=m;coutn 系统菜单:nn 1.进入信息录入系统nn 2.进入信息查询系统nn 3.删除系统中储存的学生信息nn;cout 4.修改密码nn 5.关于nn 0.退出系统nn;cout 操作过程中输入m进入菜单nn;coutchoose;coutendl;if(!strcmp(c1,choose)|!strcmp(c2,choose)|!strcmp(c3,choose)|!strcmp(c4,choose)|!strcmp(c5,choose)|!strcmp(
20、c0,choose)|!strcmp(cM,choose)|!strcmp(cm,choose)if(!strcmp(c1,choose)system(cls);cout =n;cout | |n;cout | 欢迎进入米灵尔学生信息录入系统 |n;cout | |n;cout =nnn;stusystem a;a.get();if(!strcmp(c2,choose)system(copy D:stusystemstudent*. );/把文件拷贝回来system(cls);cout =n;cout | |n;cout | 欢迎进入米灵尔学生信息查询系统 |n;cout | |n;cout
21、=nn;stusystem a;a.readxinxi();if(!strcmp(c3,choose)stusystem a;a.del();if(!strcmp(c4,choose)stusystem a;a.changekey();if(!strcmp(c5,choose)system(cls);stusystem a;a.about();if(!strcmp(c0,choose)cout系统正在关闭,再见!;_sleep(1000);exit(3);if(!strcmp(cM,choose)|!strcmp(cm,choose)stusystem a;a.menu();elsecoutn
22、输入有误,请重新输入nn;_sleep(1000);stusystem a;a.menu();void stusystem :keypanduan() char ifkey=old;/-判断是否第一次使用(第一次生成文件)- if( !CreateDirectory(ifkey, NULL) )/-判断是否第一次使用- coutkey; ifstream inFile;/-打开原密码 inFile.open(D:stusystemkeykey.mle);/-打开原密码 char oldkey50; char off10=0; inFile oldkey;/-将原密码赋给“oldkey” int
23、 i=4,n=5; for(i=5;i!=0;i-) n-;/n=4 if(!strcmp(oldkey,key)|n=0|!strcmp(off,key) if(n=0) cout=n; cout| 密码输入错误,系统即将关闭! |n; cout=nn; _sleep(3000); exit(3); if(!strcmp(oldkey,key) stusystem a; a.welcome(); if(!strcmp(off,key) cout系统正在关闭,再见!; _sleep(1000); exit(3); else coutn密码输入错误,您还有n次机会,nkey; coutendl;
24、 else cout初次使用,正在生成系统密码:nn; _sleep(800); cout初始密码为“米灵尔”,下次进入系统请先输入密码nn; system(mkdir D:stusystemkey); system(mkdir D:stusystemstudent);/-生成文件夹- ofstream outfile(D:stusystemkeykey.mle);/-生成原密码,储存为名为“key”的文件里 outfile米灵尔endl;/-原密码为“米灵尔” outfile.close(); /-关闭生成文件程序 _sleep(8000); stusystem a; a.welcome()
25、;void stusystem :welcome()system(cls);cout =n;cout | |n;cout | 欢迎使用米灵尔学生信息管理系统 |n;cout | |n;cout =nnn;_sleep(1000);stusystem a;a.menu();void stusystem :changekey()char newkey150;char newkey250;coutnewkey1;coutnewkey2;if(!strcmp(newkey1,newkey2)ofstream outfile(D:stusystemkeykey.mle);outfilenewkey1endl;outfile.close(); system(cls);coutn 新密码设置成功,请牢记密码!n;stusystem a;a.menu();elsecout两次输入不一样,请重新输入nn;stusystem a;a.changekey();void main()char key50;cout =n;cout | |n;cout | 米灵尔学生信息管理系统 |n;cout | |n;cout =nnn;stusystem a;a.keypanduan();/-此程序由米灵尔_熊建于2015年5月14日编写,最后修改时间2015年6月22日3点48分-/-请尊重别人的劳动成果,谢谢!-