内容发布更新时间 : 2024/12/23 13:12:49星期一 下面是文章的全部内容请认真阅读。
C语言课程设计论文
学生姓名:学生学号:所在班级:任课教师:
陈丹
20091020101
信息与计算科学一班
马老师
通讯录管理系统
【设计目的】
设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。 (1) 数据包括:人名、工作单位、电话号码和E-mail地址。 (2) 可对记录中的姓名和电话号码进行修改。 (3) 可增加或删除记录。 (4) 可显示所有保存的记录。
(5) 可按人名或电话号码进行查询。
【设计思路】
根据要求,电话簿数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。
【总体设计】
通讯录管理系统 数据输入 数据添加 数据修改 查找 删除 浏览
图1 系统功能模块图
【详细设计】
1. 主函数
主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】
开始 显示一系列功能选项 n 输入n,判断n是否是1~7 ? 根据n的值调用各功能模块函数 结束
图2. 主函数流程图
Void menu() /*主界面*/ {
int n, w1;
void enter(); void add(); void modify(); void browse(); void deleter(); void search(); do {
puts(\菜单*****************************\\t\\n\\n\ puts(\新建联系人\ puts(\添加联系人\ puts(\修改\ puts(\删除\ puts(\浏览\ puts(\查找\ puts(\退出\
puts(\通讯录******************************\\t\\n\ printf(\请选择服务种类(1-7) : [ ]\\b\\b\ scanf(\ if(n<1||n>7)
{w1=1;getchar();} else w1=0;
}while(w1==1); switch(n) {
case 1: enter(); break; /*输入模块*/ case 2: add(); break; /*添加模块*/
附录:源代码
#define N 50
#include
{char name[20]; char company[50]; char num[15]; char mail[20];}peop[N];
void printf_face()
{ printf(\姓名\\t单位\\t电话号码\\t邮箱\\n\
void printf_one(int i)
{ printf(\
void printf_n(int n) { int j;
for(j=0;j { if((j!=0)&&(j==0)) {printf(\ printf_one(j); } getchar(); } int load() { FILE *fp; int i; if((fp=fopen(\{ printf(\ exit(0); } for(i=0;!feof(fp);i++) fread(&peop[i],sizeof(struct people),1,fp); fclose(fp); return(i-1); } int modify_data(int i,int n) { int c,w1; void input(int i); void menu(); do { puts(\修改选项=>\\n\\n 1).姓名 2).单位 3).电话号码 4).邮箱 5).所有数据 6).取消并返回\ printf(\请选择?: [ ]\\b\\b\ scanf(\ if(c>6||c<1) {puts(\ }while(c>6||c<1); do { switch(c) { case 1: printf(\ case 2: printf(\ case 3: printf(\ case 4: printf(\ case 5: input(i); break; case 6: menu(); } puts(\ printf_face(); printf_one(i); printf(\确定?\\n\\n\\t1).是 2).不,重新修改 3).返回不保存 [ ]\\b\\b\ scanf(\ }while(w1==2); return(w1); } void input(int i) { printf_face(); printf(\ scanf(\ void save(int n) { FILE *fp; int i; if((fp=fopen(\ { printf(\ exit(0); } for(i=0;i if(peop[i].name[0]!='\\0') if(fwrite(&peop[i],sizeof(struct people),1,fp)!=1) printf(\ fclose(fp); } void printf_back() { int w; void browse(); void menu(); printf(\ printf(\浏览所有\\t2).返回: [ ]\\b\\b\ scanf(\ if(w==1) browse(); else menu(); }