您好,欢迎来到客趣旅游网。
搜索
您的当前位置:首页工会成员信息管理系统设计课程设计

工会成员信息管理系统设计课程设计

来源:客趣旅游网
工会成员信息管理系统设计课程设计

电子工程系 课设计报告

课 程 名 称:程序设计综合应用

设 计 题 目:工会成员信息管理系统设计 指导 教师 组: 组长学号姓名: 组员学号姓名: 第一章:引言: 问题分析:

由于题目要求是录入工会成员信息,并写入文件中,所以应提供文件的输入输出等操作:在过程中需有浏览、录入、修改、查找、删除工会成员信息等操作,顾应分别建立个功能模块;另外还应提供键盘式选择菜单实现程序运行。

设计目标:

(1) 加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。

(2) 学会设计数据结构。其中包括对结构数组、数据文件等知识的运用。 (3) 提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。 (4) 训练C程序调试能力,能将一个中小型各级组织系统联调通过。 (5) 开发一个中小型系统,掌握系统研发全过程。 (6) 培养分析问题、解决实际问题的能力。 基本功能:

(1). 工会成员信息录入功能(职工信息用文件保存),,输入

(2). 工会成员信息浏览功能 (3). 工会成员信息查询功能 查询方式 按婚否查询 按子女个数查询

(4). 修改工会成员信息并保存 (5). 删除工会成员信息 扩展功能:

在基本要求达到后,可进行创新设计,如对菜单进行美化。 研究思路:

主要是根据资料的方法,进行修改,改进而做出来的程序。 此程序的主要功能有一个菜单将在实现的功能显示出来,并有选择提示;系统包含姓名,性别,出生年月,学历,是否婚配,子女个数,电话;有错误提示功能;有输入功能;能够输出所有联系人的信息清单;能够按姓名或号码查询某一个联系人的信息;能够修改某一个联系人的信息;能够删除某个联系人的信息等功能。

第二章:总体设计 程序功能结构图: 工会成员信息管理系统 浏查删添修退录

览询除加改出入 信信信信信信 息息息息息息 程序的功能分析:

(1). 工会成员信息录入功能(职工信息用文件保存),,输入 (2). 工会成员信息浏览功能 (3). 工会成员信息查询功能 查询方式

按婚否查询 按子女个数查询

(4). 修改工会成员信息并保存

(5). 删除工会成员信息 系统体系结构:

#include #include #include #define N 100

struct employee { int num; char name[20]; char sex; int age; char xueli[30]; int wage; char addr[30]; char tel[20]; }em[100]; void menu(); void input();

void save(int); void display(); void del(); void add(); void search();

void search_num(); void search_xueli(); void search_tel(); void modify();

void main()

{ menu(); int n,flag; char a; do {

printf(\"请选择你需要操作的步骤(1--7):\\n\"); scanf(\"%d\if(n>=1&&n<=7) { flag=1; break; } else { flag=0;

printf(\"您输入有误,请重新选择!\"); } }

while(flag==0); while(flag==1) { switch(n) {

case 1:printf(\"输入工会成员信息\\n\");printf(\"\\n\");input();break; case 2:printf(\"浏览工会成员信息\\n\");printf(\"\\n\");display();break; case 3:printf(\"按公会工号查询工会成员信息\\n\");printf(\"\\n\");search();break;

case 4:printf(\"删除工会成员信息\\n\");printf(\"\\n\");del();break; case 5:printf(\"添加公会工会成员信息\\n\");printf(\"\\n\");add();break; case 6:printf(\"修改工会成员信息\\n\");printf(\"\\n\");modify();break; case 7:exit(0);break; default :break; }

getchar(); printf(\"\\n\");

printf(\"是否继续进行(y or n):\\n\"); scanf(\"%c\if(a=='y') { flag=1; system(\"cls\"); menu();

printf(\"请再次选择你需要操作的步骤(1--7):\\n\"); scanf(\"%d\printf(\"\\n\"); } else

exit(0); } }

void menu() {

printf(\" ************欢迎进入工会成员信息管理系统**********\\n\"); printf(\" 1.录入工会成员信息\"); printf(\" 2.浏览工会成员信息\\n\"); printf(\" 3.查询工会成员信息\"); printf(\" 4.删除工会成员信息\\n\"); printf(\" 5.添加工会成员信息\"); printf(\" 6.修改工会成员信息\\n\"); printf(\" 7.退出\\n\");

printf(\" ********************谢谢使用******************\\n\"); printf(\"\\n\"); printf(\"\\n\"); }

void input() { int i,m;

printf(\"请输入需要创建信息的公会数(1--100):\\n\"); scanf(\"%d\for (i=0;iprintf(\"请输入工会成员工号: \"); scanf(\"%d\printf(\"请输入姓名: \"); scanf(\"%s\getchar();

printf(\"请输入性别(f--女 m--男): \"); scanf(\"%c\printf(\"请输入出生年月: \"); scanf(\"%d\printf(\"请输入学历: \"); scanf(\"%s\printf(\"是否婚配: \"); scanf(\"%d\printf(\"请输入子女个数: \"); scanf(\"%s\printf(\"请输入电话: \"); scanf(\"%s\printf(\"\\n\"); }

printf(\"\\n创建完毕!\\n\"); save(m); }

void save(int m) {

int i; FILE*fp;

if ((fp=fopen(\"employee_list\{

printf (\"cannot open file\\n\"); exit(0); }

for (i=0;iif (fwrite(&em[i],sizeof(struct employee),1,fp)!=1) printf(\"file write error\\n\"); fclose(fp); }

int load() { FILE*fp; int i=0;

if((fp=fopen(\"employee_list\{

printf (\"cannot open file\\n\"); exit(0); } else { do

{

fread(&em[i],sizeof(struct employee),1,fp); i++; }

while(feof(fp)==0); }

fclose(fp); return(i-1); }

void display() { int i; int m=load();

printf(\" 职工号\\t姓名\\t\\t性别\\t\\t出生年月\\n\"); for(i=0;i%d\\t\\t%s\\t%c\\t\\t%d\\t\\n\

printf(\"\\n 学历\\t\\t婚配\\t\\t子女个数\\t\\t电话 \\n\"); for(i=0;i%s\\t%d\\t\\t%s\\t%s\\n\

}

void del() {

int m=load(); int i,j,n,t,flag; char name[20];

printf(\"\\n 原来的工会成员信息:\\n\"); display(); printf(\"\\n\");

printf(\"请输入要删除的工会成员的姓名:\\n\"); scanf(\"%s\

for(flag=1,i=0;flag&&iif(strcmp(em[i].name,name)==0) {

printf(\"\\n已找到此工会成员,原始记录为:\\n\"); printf(\" 工会成员号\\t姓名\\t\\t性别\\t\\t出生年月 \\n\"); printf(\"\\n

%d\\t\\t%s\\t%c\\t\\t%d\\t\\n\

printf(\"\\n 学历\\t\\t婚配\\t\\t子女个数\\t\\t电话 \\n\"); printf(\"\\n

%s\\t%d\\t\\t%s\\t%s\\n\

printf(\"\\n确实要删除此人信息请按1,不删除请按0\\n\"); scanf(\"%d\if(n==1) {

for(j=i;j{

strcpy(em[j].name,em[j+1].name); em[j].num=em[j+1].num; em[j].sex=em[j+1].sex; em[j].age=em[j+1].age;

strcpy(em[j].xueli,em[j+1].xueli); em[j].wage=em[j+1].wage; strcpy(em[j].addr,em[j+1].addr); strcpy(em[j].tel,em[j+1].tel); } flag=0; } } } if(!flag) m=m-1; else

printf(\"\\n对不起,查无此人!\\n\");

printf(\"\\n 浏览删除后的所有工会成员信息:\\n\"); save(m); display();

printf(\"\\n继续删除请按1,不再删除请按0\\n\"); scanf(\"%d\switch(t)

{

case 1:del();break; case 0:break; default :break; } }

void add() { FILE*fp; int n; int count=0; int i; int m=load();

printf(\"\\n 原来的工会成员信息:\\n\"); display(); printf(\"\\n\");

fp=fopen(\"emploee_list\

printf(\"请输入想增加的工会成员数:\\n\"); scanf(\"%d\for (i=m;i<(m+n);i++) {

printf(\"\\n 请输入新增加工会成员的信息:\\n\"); printf(\"请输入职工号: \"); scanf(\"%d\

printf(\"\\n\");

printf(\"请输入姓名: \"); scanf(\"%s\getchar();

printf(\"请输入性别(f--女 m--男): \"); scanf(\"%c\printf(\"请输入年龄: \"); scanf(\"%d\printf(\"请输入学历: \"); scanf(\"%s\printf(\"是否婚配: \"); scanf(\"%d\printf(\"请输入子女个数: \"); scanf(\"%s\printf(\"请输入电话: \"); scanf(\"%s\printf(\"\\n\"); count=count+1;

printf(\"已增加的工会成员:\\n\"); printf(\"%d\\n\}

printf(\"\\n添加完毕!\\n\"); m=m+count;

printf(\"\\n浏览增加后的所有工会成员信息:\\n\");

printf(\"\\n\"); save(m); display(); fclose(fp); }

void search() {

int t,flag; do {

printf(\"\\n按工会成员号查询请按1; 按工会成员学历查询请按2; 按工会成员电话号

码查询请按3; 进入主函数请按4\\n\"); scanf(\"%d\if(t>=1&&t<=4) { flag=1; break; } else { flag=0;

printf(\"您输入有误,请重新选择!\"); }

}

while(flag==0); while(flag==1) { switch(t) {

case 1:printf(\"按工会成员号查询\\n\");search_num();break; case 2:printf(\"按工会成员学历查询\\n\");search_xueli();break; case 3:printf(\"按工会成员电话号码查询\\n\");search_tel();break; case 4:main();break; default:break; } } }

void search_num() { int num; int i,t; int m=load();

printf(\"请输入要查找的职工号:\\n\"); scanf(\"%d\for(i=0;iprintf(\"\\n已找到此人,其记录为:\\n\");

printf(\" 职工号\\t姓名\\t\\t性别\\t\\t出生年月 \\n\"); printf(\"\\n

%d\\t\\t%s\\t%c\\t\\t%d\\t\\n\

printf(\"\\n 学历\\t\\t婚配\\t\\t子女个数\\t\\t电话 \\n\"); printf(\"\\n

%s\\t%d\\t\\t%s\\t%s\\n\

break; } if(i==m)

printf(\"\\n对不起,查无此人\\n\"); printf(\"\\n\");

printf(\"返回查询函数请按1,继续查询职工号请按2\\n\"); scanf(\"%d\switch(t) {

case 1:search();break; case 2: break; default:break; } }

void search_xueli() {

char xueli[30];

int i,t; int m=load();

printf(\"请输入要查找的工会成员学历:\\n\"); scanf(\"%s\for(i=0;iif(strcmp(em[i].xueli,xueli)==0) {

printf(\"\\n已找到,其记录为:\\n\");

printf(\" 职工号\\t姓名\\t\\t性别\\t\\t出生年月 \\n\"); printf(\"\\n

%d\\t\\t%s\\t%c\\t\\t%d\\t\\n\

printf(\"\\n 学历\\t\\t婚配\\t\\t子女个数\\t\\t电话 \\n\"); printf(\"\\n

%s\\t%d\\t\\t%s\\t%s\\n\

} if(i==m)

printf(\"\\n对不起,查无此人\\n\"); printf(\"\\n\");

printf(\"返回查询函数请按1,继续查询学历请按2\\n\"); scanf(\"%d\switch(t) {

case 1:search();break; case 2:break;

default :break; } }

void search_tel() {

char tel[20]; int i, t; int m=load();

printf(\"请输入要查找的电话号码:\\n\"); scanf(\"%s\for(i=0;iif(strcmp(tel,em[i].tel)==0) {

printf(\"\\n已找到此人,其记录为:\\n\");

printf(\" 职工号\\t姓名\\t\\t性别\\t\\t出生年月 \\n\"); printf(\"\\n

%d\\t\\t%s\\t%c\\t\\t%d\\t\\n\

printf(\"\\n 学历\\t\\t婚配\\t\\t子女个数\\t\\t电话 \\n\"); printf(\"\\n

%s\\t%d\\t\\t%s\\t%s\\n\

break; } if(i==m)

printf(\"\\n对不起,查无此人\\n\");

printf(\"\\n\");

printf(\"返回查询函数请按1,继续查询电话号码请按2\\n\"); scanf(\"%d\switch(t) {

case 1:search();break; case 2:break; default :break; } }

void modify() { int num; char name[20]; char sex; int age; char xueli[30]; int wage; char addr[30]; char tel[20]; int b,c,i,n,t,flag; int m=load();

printf(\"\\n 原来的工会成员信息:\\n\"); display();

printf(\"\\n\");

printf(\"请输入要修改的工会成员的姓名:\\n\"); scanf(\"%s\

for(flag=1,i=0;flag&&iif(strcmp(em[i].name,name)==0) {

printf(\"\\n已找到此人,原始记录为:\\n\");

printf(\" 职工号\\t姓名\\t\\t性别\\t\\t出生年月 \\n\"); printf(\"\\n

%d\\t\\t%s\\t%c\\t\\t%d\\t\\n\

printf(\"\\n 学历\\t\\t婚配\\t\\t子女个数\\t\\t电话 \\n\"); printf(\"\\n

%s\\t%d\\t\\t%s\\t%s\\n\

printf(\"\\n确实要修改此人信息请按1 ; 不修改请按0\\n\"); scanf(\"%d\if(n==1) {

printf(\"\\n需要进行修改的选项\\n 1.职工号 2.姓名 3.性别 4.出生年月 5. 学历 6.婚配 7.子女个数 8.电话\\n\"); printf(\"请输入你想修改的那一项序号:\\n\"); scanf(\"%d\if(c>8||c<1)

printf(\"\\n选择错误,请重新选择!\\n\");

} flag=0; } }

if(flag==1)

printf(\"\\n对不起,查无此人!\\n\"); do { switch(c) {

case 1:printf(\"工会成员号改为: \"); scanf(\"%d\em[i-1].num=num; break;

case 2:printf(\"姓名改为: \"); scanf(\"%s\

strcpy(em[i-1].name,name); break;

case 3:printf(\"性别改为: \"); getchar(); scanf(\"%c\em[i-1].sex=sex; break;

case 4:printf(\"出生年月改为: \");

scanf(\"%d\em[i-1].age=age; break;

case 5:printf(\"学历改为: \"); scanf(\"%s\

strcpy(em[i-1].xueli,xueli); break;

case 6:printf(\"婚配改为: \"); scanf(\"%d\break;

case 7:printf(\"子女个数改为: \"); scanf(\"%s\

strcpy(em[i-1].addr,addr); break;

case 8:printf(\"电话改为: \"); scanf(\"%s\strcpy(em[i-1].tel,tel); break; }

printf(\"\\n\");

printf(\"\\n是否确定所修改的信息?\\n 是 请按1 ; 不,重新修改 请按2: \\n\");

scanf(\"%d\}

while(b==2);

printf(\"\\n浏览修改后的所有工会成员信息:\\n\"); printf(\"\\n\"); save(m); display();

printf(\"\\n继续修改请按1,不再修改请按0\\n\"); scanf(\"%d\switch(t) {

case 1:modify();break; case 0:break; default :break; } }

第三章:详细设计 数据库分析与设计:

***********欢迎进入工会成员信息管理系统*********** 1.录入工会成员信息 2.浏览工会成员信息 3.查询工会成员信息 4.删除工会成员信息 5.添加工会成员信息 6.修改工会成员信息 7.退出

***********************谢谢使用******************** 请选择你需要操作的步骤<1-7>: 模块功能及算法设计:

电子科技大学成都学院电子工程系 课设计报告

课 程 名 称:程序设计综合应用

设 计 题 目:工会成员信息管理系统设计 指导 教师 组:陈芳

组长学号姓名:伍小琴1140820429 组员学号姓名:徐楚1140820428 系统主界面:

***********欢迎进入工会成员信息管理系统*********** 1.录入工会成员信息 2.浏览工会成员信息

3.查询工会成员信息 4.删除工会成员信息 5.添加工会成员信息 6.修改工会成员信息 7.退出

***********************谢谢使用******************** 请选择你需要操作的步骤<1-7>:

工会成员信息录入功能:

选择1,首先输入需要创建信息的公会数,然后输入工号数,对应工号数的姓名,性别,出生年月,学历,是否婚配,子女个数,电话,创建完毕,依次输入。 工会成员信息浏览功能:

录入信息后选择2,显示刚才录入的信息 工会成员信息查询功能:

输入3,显示按工会成员号查询请按1,按工会成员学历查询请按2,按工会成员电话号码查询请按3,进入主函数请按4

修改工会成员信息功能:

输入6,显示浏览信息,输入要修改工会成员姓名进行修改,确认后选择1按选项修改,修改完毕仍需确认。

删除工会成员信息功能:

输入4,显示浏览信息,按工会成员姓名删除成员,选择好后需要确认,删除后,只显示各项名称。

测试和调试:

系统存在的问题及解决方案:

我用的是visual C++ 6.0进行编译和测试的,主要观察程序运行的错误及找出错误发生的原因,还有各函数的功能的实现以及部分变量在程序运行时的变化。采取逐个函数测验的方法 ,虽然比较耗时间,但是我实在没有找到可以检查我的海量错误的方法 收获及心得体会:

通过学习和练习C程序的设计基础,学习到了很多关于C的知识。在这次学习过程中,毫无疑问的遇到了很多困惑、疑问,难免心情沮丧,失去耐心,信心受挫,但同学的帮助,老师的解惑和自己的坚持。终于做了出来。看着这一页页的程序,我感受到了成功的喜悦。用一句话来形容一下这几天就是:苦并快乐着。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- kqyc.cn 版权所有 赣ICP备2024042808号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务