<span style="font-family: Arial, Helvetica, sans-serif;">/*</span>
******************************************************************
C语言的课程设计 现在开源 希望可以帮助到一些 测试文件没有附上 自己写一份就行
@课题设计:学生通讯录管理系统
@设计时间:2014.2.24
@设计人: 2012级软件工程专业 刘小洋
@设计题目:学生通讯录管理系统
@计算机配置:windows 7 旗舰版 32位操作系统 内存:4G CPU :i5--3210
@运行环境:Microsoft Visual C++ 6.0
@设计思路:建立8个子函数,分别用来添加、显示、删除、查询、修改、保存,读取和统计通讯录信息,完成通讯录的功能。
主函数采用密码,保护了通讯录数据,可以调用8个子函数,分别完成添加记录、显示记录、删除记录、查询记录、
修改记录、保存记录、读取记录、统计记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6、7、8、9、10、0数字
键分别可以执行某个功能模块。最后在对文件进行加密、解密功能。
@扩展功能:利用system系统函数,实现对程序功能的扩展,为了方便用户和大众软件的设计方法,利用系统函数system调用windows
dos 命令实现对计算机的关机,重启,定时关机,注销等功能。
@主要函数:int Menu_select() 系统用户登录后的菜单
int Input(Student stu[]) 添加记录函数
int sum(Student stu[]) 统计记录函数(男 女 总 人数)
void Display(Student stu[]) 显示记录函数
int Delete(Student stu[]) 删除记录函数
void Chick(Student stu[]) 查找记录函数
void Change(Student stu[]) 修改记录函数
void WritetoText(Student stu[]) 写入文件函数
void Read(Student stu[]) 读取文件函数
void Menu() 对应int Menu_select()函数的子菜单 他调用除主函数意外的所有函数
void encfile(char *in_filename,char *pwd,char *out_file) 文件加密函数
void unencfile(char *in_filename,char *pwd,char *out_file) 文件解密函数
int unpasswd() 解密函数
int passwd() 调用文件加密的函数
int main() 主函数设置密码功能 调用 Menu 函数
@通讯录密码:用户名:lhy 密码 :201314
******************************************************************
*/
//#include"stdafx.h"
#include"stdio.h"
#include<stdlib.h>
#include<conio.h>
#include<string.h> // 头文件
static int n=0; // 定义静态全局变量,存储已经读入记录的条数。
void encfile(char *in_filename,char *pwd,char *out_file) ; //函数声明
int passwd(); //函数声明
int unpasswd(); //函数声明
void shut(); //函数声明,c语言关机的函数。
//定义结构体用来存放学生的学号、姓名、性别、工作单位、电话号码、邮箱的信息。
typedef struct
{
long score; /*学号*/
char name[10]; /*姓名*/
char sex[8]; /*性别*/
char adds[20]; /*工作单位*/
char num[15]; /*电话号码*/
char email[20]; /*邮箱*/
}Student;
Student T[100];
/*
主菜单 利用 do while、printf简单实现 调用系统函数显示当前系统的时间和日期。
这个函数主要供void Mean函数调用。
*/
int Menu_Select()
{
char c;
do{
system("cls"); //清屏
system("date /T");//显示系统当前日期
system("time /T");//显示系统当前时间
system("color 0a");//改变控制台前景,背景颜色
printf("\t\t\t***学生通讯录***** \n");
printf("\t\t\t******************\n");
printf("\t\t\t* 1. 添加记录 *\n");
printf("\t\t\t* 2. 显示记录 *\n");
printf("\t\t\t* 3. 删除记录 *\n");
printf("\t\t\t* 4. 查询记录 *\n");
printf("\t\t\t* 5. 修改记录 *\n");
printf("\t\t\t* 6. 保存记录 *\n");
printf("\t\t\t* 7. 读取记录 *\n");
printf("\t\t\t* 8. 统计记录 *\n");
printf("\t\t\t* 9. 文件解密 *\n");
printf("\t\t\t* *. 其他功能 *\n");
printf("\t\t\t* 0. 退出程序 *\n");
printf("\t\t\t*****************\n");
printf("\t\t\t请您选择(0-9)选择 其他功能 请输入':':");
c=getchar();
}while(c<'0'||c>'10');
return(c-'0');
}
/*
添加记录功能函数,利用scanf 重复对结构体每一个要输入的学生信息添加,
最后输入Y N 是否要继续添加记录 利用 while对输入的内容比较。
这里需要的注意的是
** 如果已经有文件读入,对n+i是对当前文件的下一条进行添加。
*/
int Input(Student stu[])
{
int i=0;
char sign;
while(sign!='n'&&sign!